From 18ffe1a49d2a2d60e0d9d64e543d033eb988f8bb Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandre.savard@savoirfairelinux.net>
Date: Thu, 3 Sep 2009 18:27:05 -0400
Subject: [PATCH 001/188] [#2006] Fix rtp session deletion

---
 sflphone-common/src/sip/sipvoiplink.cpp | 25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index afaa83d7fb..5cf7132756 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -730,6 +730,12 @@ SIPVoIPLink::hangup (const CallID& id)
         return false;
     }
 
+    // Release RTP thread
+    if (Manager::instance().isCurrentCall (id)) {
+        _debug ("* SIP Info: Stopping AudioRTP for hangup\n");
+        _audiortp->stop();
+    }
+
     // User hangup current call. Notify peer
     status = pjsip_inv_end_session (call->getInvSession(), 404, NULL, &tdata);
 
@@ -750,13 +756,6 @@ SIPVoIPLink::hangup (const CallID& id)
 
     call->getInvSession()->mod_data[getModId() ] = NULL;
 
-
-    // Release RTP thread
-    if (Manager::instance().isCurrentCall (id)) {
-        _debug ("* SIP Info: Stopping AudioRTP for hangup\n");
-        _audiortp->stop();
-    }
-
     terminateOneCall (id);
 
     removeCall (id);
@@ -778,6 +777,12 @@ SIPVoIPLink::peerHungup (const CallID& id)
         return false;
     }
 
+    // Release RTP thread
+    if (Manager::instance().isCurrentCall (id)) {
+        _debug ("* SIP Info: Stopping AudioRTP for hangup\n");
+        _audiortp->stop();
+    }
+
     // User hangup current call. Notify peer
     status = pjsip_inv_end_session (call->getInvSession(), 404, NULL, &tdata);
 
@@ -794,12 +799,6 @@ SIPVoIPLink::peerHungup (const CallID& id)
 
     call->getInvSession()->mod_data[getModId() ] = NULL;
 
-    // Release RTP thread
-    if (Manager::instance().isCurrentCall (id)) {
-        _debug ("* SIP Info: Stopping AudioRTP for hangup\n");
-        _audiortp->stop();
-    }
-
     terminateOneCall (id);
 
     removeCall (id);
-- 
GitLab


From 807ae2aff04fa0674cd402d9df3c8ee27441d690 Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Wed, 11 Nov 2009 19:17:08 -0500
Subject: [PATCH 002/188] [#1671] NetworkManager support: first shot

---
 sflphone-common/src/dbus/Makefile.am          |  5 +-
 sflphone-common/src/dbus/dbusmanagerimpl.cpp  | 14 ++--
 sflphone-common/src/dbus/dbusmanagerimpl.h    |  2 +
 sflphone-common/src/dbus/networkmanager.cpp   | 21 ++++++
 sflphone-common/src/dbus/networkmanager.h     | 31 +++++++++
 .../src/dbus/networkmanager_proxy.h           | 65 +++++++++++++++++++
 .../dbus/org.freedesktop.NetworkManager.xml   | 13 ++++
 7 files changed, 145 insertions(+), 6 deletions(-)
 create mode 100644 sflphone-common/src/dbus/networkmanager.cpp
 create mode 100644 sflphone-common/src/dbus/networkmanager.h
 create mode 100644 sflphone-common/src/dbus/networkmanager_proxy.h
 create mode 100644 sflphone-common/src/dbus/org.freedesktop.NetworkManager.xml

diff --git a/sflphone-common/src/dbus/Makefile.am b/sflphone-common/src/dbus/Makefile.am
index 5ca2e42eeb..7ee673bcb3 100644
--- a/sflphone-common/src/dbus/Makefile.am
+++ b/sflphone-common/src/dbus/Makefile.am
@@ -17,7 +17,8 @@ libdbus_la_SOURCES = \
     callmanager.cpp \
     configurationmanager.cpp  \
     instance.cpp  \
-    dbusmanagerimpl.cpp
+    dbusmanagerimpl.cpp  \
+    networkmanager.cpp
 
 libdbus_la_CXXFLAGS = -DPREFIX=\"$(prefix)\" -DPROGSHAREDIR=\"${datadir}/sflphone\"
 
@@ -29,6 +30,8 @@ noinst_HEADERS =            \
     instance.h              \
     dbusmanager.h           \
     dbusmanagerimpl.h       \
+    networkmanager_proxy.h  \
+    networkmanager.h        \
     $(BUILT_SOURCES)
 
 # Dbus service file
diff --git a/sflphone-common/src/dbus/dbusmanagerimpl.cpp b/sflphone-common/src/dbus/dbusmanagerimpl.cpp
index e87c1001f0..fbe35e56f9 100644
--- a/sflphone-common/src/dbus/dbusmanagerimpl.cpp
+++ b/sflphone-common/src/dbus/dbusmanagerimpl.cpp
@@ -23,6 +23,7 @@
 
 #include "callmanager.h"
 #include "configurationmanager.h"
+#include "networkmanager.h"
 
 const char* DBusManagerImpl::SERVER_NAME = "org.sflphone.SFLphone";
 
@@ -32,12 +33,15 @@ DBusManagerImpl::exec()
 
     DBus::default_dispatcher = &_dispatcher;
 
-    DBus::Connection conn = DBus::Connection::SessionBus();
-    conn.request_name (SERVER_NAME);
+    DBus::Connection sessionConnection = DBus::Connection::SessionBus();
+    DBus::Connection systemConnection = DBus::Connection::SystemBus();
+    sessionConnection.request_name (SERVER_NAME);
 
-    _callManager = new CallManager (conn);
-    _configurationManager = new ConfigurationManager (conn);
-    _instanceManager = new Instance (conn);
+    _callManager = new CallManager (sessionConnection);
+    _configurationManager = new ConfigurationManager (sessionConnection);
+    _instanceManager = new Instance (sessionConnection);
+
+    _networkManager = new NetworkManager(systemConnection, "/org/freedesktop/NetworkManager", "");
 
     // Register accounts
     Manager::instance().initRegisterAccounts(); //getEvents();
diff --git a/sflphone-common/src/dbus/dbusmanagerimpl.h b/sflphone-common/src/dbus/dbusmanagerimpl.h
index 157b8118ce..c68d440fa3 100644
--- a/sflphone-common/src/dbus/dbusmanagerimpl.h
+++ b/sflphone-common/src/dbus/dbusmanagerimpl.h
@@ -24,6 +24,7 @@
 
 class ConfigurationManager;
 class CallManager;
+class NetworkManager;
 
 class DBusManagerImpl {
     public:
@@ -38,6 +39,7 @@ class DBusManagerImpl {
         ConfigurationManager* _configurationManager;
         Instance*             _instanceManager;
         DBus::BusDispatcher   _dispatcher;
+	NetworkManager* _networkManager;
 };
 
 #endif
diff --git a/sflphone-common/src/dbus/networkmanager.cpp b/sflphone-common/src/dbus/networkmanager.cpp
new file mode 100644
index 0000000000..0b055c3614
--- /dev/null
+++ b/sflphone-common/src/dbus/networkmanager.cpp
@@ -0,0 +1,21 @@
+#include "networkmanager.h"
+#include <iostream>
+
+using namespace std;
+
+const string NetworkManager::statesString[5] = {"unknown", "asleep", "connecting", "connected", "disconnected"};
+
+string NetworkManager::stateAsString(const uint32_t& state)
+{
+	return statesString[state];
+}
+
+void NetworkManager::StateChanged(const uint32_t& state)
+{
+	std::cout << "state changed: " << stateAsString(state) << std::endl;
+}
+	
+NetworkManager::NetworkManager(DBus::Connection& connection, const DBus::Path& path, const char* destination): DBus::ObjectProxy (connection, path, destination)
+{
+}
+
diff --git a/sflphone-common/src/dbus/networkmanager.h b/sflphone-common/src/dbus/networkmanager.h
new file mode 100644
index 0000000000..258be17c8a
--- /dev/null
+++ b/sflphone-common/src/dbus/networkmanager.h
@@ -0,0 +1,31 @@
+#ifndef NETWORKMANAGER_H
+#define NETWORKMANAGER_H
+
+#include "networkmanager_proxy.h"
+
+using namespace std;
+
+class NetworkManager
+: public org::freedesktop::NetworkManager_proxy,
+  public DBus::IntrospectableProxy,
+  public DBus::ObjectProxy
+{
+public:
+
+    NetworkManager(DBus::Connection&, const DBus::Path&, const char*);
+    void StateChanged(const uint32_t& state);
+    string stateAsString(const uint32_t& state);
+
+    typedef enum NMState
+    {
+        NM_STATE_UNKNOWN = 0,
+        NM_STATE_ASLEEP,
+        NM_STATE_CONNECTING,
+        NM_STATE_CONNECTED,
+        NM_STATE_DISCONNECTED
+    } NMState;
+
+   static const string statesString[5];
+};
+#endif
+
diff --git a/sflphone-common/src/dbus/networkmanager_proxy.h b/sflphone-common/src/dbus/networkmanager_proxy.h
new file mode 100644
index 0000000000..d34f456d23
--- /dev/null
+++ b/sflphone-common/src/dbus/networkmanager_proxy.h
@@ -0,0 +1,65 @@
+#ifndef __dbusxx__networkmanager_proxy_h__PROXY_MARSHAL_H
+#define __dbusxx__networkmanager_proxy_h__PROXY_MARSHAL_H
+
+#include <dbus-c++/dbus.h>
+#include <cassert>
+#include <iostream>
+
+namespace org {
+namespace freedesktop {
+
+class NetworkManager_proxy
+: public ::DBus::InterfaceProxy
+{
+public:
+
+    NetworkManager_proxy()
+    : ::DBus::InterfaceProxy("org.freedesktop.NetworkManager")
+    {
+        connect_signal(NetworkManager_proxy, StateChanged, _StateChanged_stub);
+    }
+
+public:
+
+    /* properties exported by this interface */
+public:
+
+    /* methods exported by this interface,
+     * this functions will invoke the corresponding methods on the remote objects
+     */
+/*
+    std::vector< ::DBus::Path > GetDevices()
+    {
+        ::DBus::CallMessage call;
+        call.member("GetDevices");
+        ::DBus::Message ret = invoke_method (call);
+        ::DBus::MessageIter ri = ret.reader();
+
+        std::vector< ::DBus::Path > argout;
+        ri >> argout;
+        return argout;
+    }
+*/
+
+public:
+
+    /* signal handlers for this interface
+     */
+    virtual void StateChanged(const uint32_t& argin0) = 0;
+
+private:
+
+    /* unmarshalers (to unpack the DBus message before calling the actual signal handler)
+     */
+    void _StateChanged_stub(const ::DBus::SignalMessage &sig)
+    {
+        ::DBus::MessageIter ri = sig.reader();
+
+        uint32_t arg0;
+        ri >> arg0;
+        StateChanged(arg0);
+    }
+};
+
+} } 
+#endif //__dbusxx__networkmanager_proxy_h__PROXY_MARSHAL_H
diff --git a/sflphone-common/src/dbus/org.freedesktop.NetworkManager.xml b/sflphone-common/src/dbus/org.freedesktop.NetworkManager.xml
new file mode 100644
index 0000000000..a26cc046ab
--- /dev/null
+++ b/sflphone-common/src/dbus/org.freedesktop.NetworkManager.xml
@@ -0,0 +1,13 @@
+<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
+"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
+<node>
+  <interface name="org.freedesktop.NetworkManager">
+    <method name="GetDevices">
+      <arg name="devices" type="ao" direction="out"/>
+    </method>
+    <signal name="StateChanged">
+      <arg type="u"/>
+    </signal>
+  </interface>
+</node>
+
-- 
GitLab


From e6cb60de2205222a1b80177dea7241e2caba1677 Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Thu, 12 Nov 2009 10:27:38 -0500
Subject: [PATCH 003/188] [#1671] Updated files

---
 sflphone-common/src/dbus/networkmanager.cpp | 17 ++++++++++++-----
 sflphone-common/src/dbus/networkmanager.h   |  4 ++--
 2 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/sflphone-common/src/dbus/networkmanager.cpp b/sflphone-common/src/dbus/networkmanager.cpp
index 0b055c3614..6a2a59e656 100644
--- a/sflphone-common/src/dbus/networkmanager.cpp
+++ b/sflphone-common/src/dbus/networkmanager.cpp
@@ -1,20 +1,27 @@
+#include <global.h>
 #include "networkmanager.h"
 #include <iostream>
+#include <instance.h>
+#include "../manager.h"
+#include "sip/sipvoiplink.h"
 
-using namespace std;
+//using namespace std;
 
-const string NetworkManager::statesString[5] = {"unknown", "asleep", "connecting", "connected", "disconnected"};
+const std::string NetworkManager::statesString[5] = {"unknown", "asleep", "connecting", "connected", "disconnected"};
 
-string NetworkManager::stateAsString(const uint32_t& state)
+std::string NetworkManager::stateAsString(const uint32_t& state)
 {
 	return statesString[state];
 }
 
 void NetworkManager::StateChanged(const uint32_t& state)
 {
-	std::cout << "state changed: " << stateAsString(state) << std::endl;
+	_debug("Network state changed: %s", stateAsString(state));
+
+	if(state == NM_STATE_CONNECTED)
+		Manager::instance().restartPJSIP();
 }
-	
+
 NetworkManager::NetworkManager(DBus::Connection& connection, const DBus::Path& path, const char* destination): DBus::ObjectProxy (connection, path, destination)
 {
 }
diff --git a/sflphone-common/src/dbus/networkmanager.h b/sflphone-common/src/dbus/networkmanager.h
index 258be17c8a..073bfafebc 100644
--- a/sflphone-common/src/dbus/networkmanager.h
+++ b/sflphone-common/src/dbus/networkmanager.h
@@ -16,14 +16,14 @@ public:
     void StateChanged(const uint32_t& state);
     string stateAsString(const uint32_t& state);
 
-    typedef enum NMState
+    enum NMState
     {
         NM_STATE_UNKNOWN = 0,
         NM_STATE_ASLEEP,
         NM_STATE_CONNECTING,
         NM_STATE_CONNECTED,
         NM_STATE_DISCONNECTED
-    } NMState;
+    };
 
    static const string statesString[5];
 };
-- 
GitLab


From f3c80c4bdf9c7af8033b98ffbe1fa9869a53a491 Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Fri, 13 Nov 2009 09:34:34 -0500
Subject: [PATCH 004/188] [#1671] Removed \n

---
 sflphone-common/src/account.cpp               |   2 +-
 sflphone-common/src/audio/alsa/alsalayer.cpp  | 142 +++---
 sflphone-common/src/audio/audiolayer.cpp      |   4 +-
 sflphone-common/src/audio/audiortp.cpp        |  88 ++--
 .../src/audio/audiortp/AudioRtpFactory.cpp    |  18 +-
 .../src/audio/audiortp/AudioZrtpSession.cpp   |  12 +-
 .../audio/audiortp/ZrtpSessionCallback.cpp    |  32 +-
 sflphone-common/src/audio/codecs/alaw.cpp     |   4 +-
 .../src/audio/codecs/celtcodec.cpp            |   4 +-
 .../src/audio/codecs/codecDescriptor.cpp      |  16 +-
 sflphone-common/src/audio/codecs/gsmcodec.cpp |  10 +-
 sflphone-common/src/audio/mainbuffer.cpp      |  78 ++--
 .../src/audio/pulseaudio/audiostream.cpp      |  22 +-
 .../src/audio/pulseaudio/pulselayer.cpp       | 122 ++---
 sflphone-common/src/audio/ringbuffer.cpp      |  52 +--
 .../src/audio/samplerateconverter.cpp         |  20 +-
 sflphone-common/src/audio/sound/audiofile.cpp |   4 +-
 sflphone-common/src/conference.cpp            |   8 +-
 sflphone-common/src/config/config.cpp         |   9 +-
 sflphone-common/src/dbus/callmanager.cpp      |  72 +--
 .../src/dbus/configurationmanager.cpp         |  90 ++--
 sflphone-common/src/dbus/dbusmanagerimpl.cpp  |   2 +-
 sflphone-common/src/dbus/instance.cpp         |   4 +-
 .../src/history/historymanager.cpp            |   4 +-
 sflphone-common/src/iax/iaxcall.cpp           |  28 +-
 sflphone-common/src/iax/iaxvoiplink.cpp       |  78 ++--
 sflphone-common/src/main.cpp                  |  18 +-
 sflphone-common/src/managerimpl.cpp           | 429 ++++++++++--------
 sflphone-common/src/managerimpl.h             |   8 +
 .../src/plug-in/audiorecorder/audiodsp.cpp    |   8 +-
 .../src/plug-in/audiorecorder/audiorecord.cpp |  88 ++--
 .../src/plug-in/librarymanager.cpp            |  10 +-
 sflphone-common/src/plug-in/pluginmanager.cpp |  12 +-
 sflphone-common/src/sip/sdp.cpp               |  52 +--
 sflphone-common/src/sip/sipaccount.cpp        |  14 +-
 sflphone-common/src/sip/sipcall.cpp           |   4 +-
 sflphone-common/src/sip/sipvoiplink.cpp       | 376 +++++++--------
 sflphone-common/src/util/Pattern.cpp          |  10 +-
 sflphone-common/test/audiolayerTest.cpp       |  12 +-
 sflphone-common/test/audiorecorderTest.cpp    |   2 +-
 sflphone-common/test/mainbufferTest.cpp       |  34 +-
 sflphone-common/test/rtpTest.cpp              |  44 +-
 42 files changed, 1046 insertions(+), 1000 deletions(-)

diff --git a/sflphone-common/src/account.cpp b/sflphone-common/src/account.cpp
index f5b542f57f..e916ac6875 100644
--- a/sflphone-common/src/account.cpp
+++ b/sflphone-common/src/account.cpp
@@ -56,7 +56,7 @@ void Account::setRegistrationState (RegistrationState state)
 {
 
     if (state != _registrationState) {
-        _debug ("Account::setRegistrationState\n");
+        _debug ("Account::setRegistrationState");
         _registrationState = state;
 
         // Notify the client
diff --git a/sflphone-common/src/audio/alsa/alsalayer.cpp b/sflphone-common/src/audio/alsa/alsalayer.cpp
index bdbc27ed2d..920ab666b3 100644
--- a/sflphone-common/src/audio/alsa/alsalayer.cpp
+++ b/sflphone-common/src/audio/alsa/alsalayer.cpp
@@ -41,7 +41,7 @@ AlsaLayer::AlsaLayer (ManagerImpl* manager)
         , _audioThread (NULL)
 
 {
-    _debug (" Constructor of AlsaLayer called\n");
+    _debug (" Constructor of AlsaLayer called");
     /* Instanciate the audio thread */
     // _audioThread = new AudioThread (this);
     // _audioThread = NULL;
@@ -53,7 +53,7 @@ AlsaLayer::AlsaLayer (ManagerImpl* manager)
 // Destructor
 AlsaLayer::~AlsaLayer (void)
 {
-    _debug ("Destructor of AlsaLayer called\n");
+    _debug ("Destructor of AlsaLayer called");
     closeLayer();
 
     if (_converter) {
@@ -70,17 +70,17 @@ AlsaLayer::~AlsaLayer (void)
 bool
 AlsaLayer::closeLayer()
 {
-    _debugAlsa ("Close ALSA streams\n");
+    _debugAlsa ("Close ALSA streams");
 
     try {
         /* Stop the audio thread first */
         if (_audioThread) {
-            _debug ("Stop Audio Thread\n");
+            _debug ("Stop Audio Thread");
             delete _audioThread;
             _audioThread=NULL;
         }
     } catch (...) {
-        _debugException ("! ARTP Exception: when stopping audiortp\n");
+        _debugException ("! ARTP Exception: when stopping audiortp");
         throw;
     }
 
@@ -119,13 +119,13 @@ AlsaLayer::openDevice (int indexIn, int indexOut, int sampleRate, int frameSize,
 
     _audioPlugin = std::string (plugin);
 
-    _debugAlsa (" Setting AlsaLayer: device     in=%2d, out=%2d\n", _indexIn, _indexOut);
+    _debugAlsa (" Setting AlsaLayer: device     in=%2d, out=%2d", _indexIn, _indexOut);
 
-    _debugAlsa ("                   : alsa plugin=%s\n", _audioPlugin.c_str());
+    _debugAlsa ("                   : alsa plugin=%s", _audioPlugin.c_str());
 
-    _debugAlsa ("                   : nb channel in=%2d, out=%2d\n", _inChannel, _outChannel);
+    _debugAlsa ("                   : nb channel in=%2d, out=%2d", _inChannel, _outChannel);
 
-    _debugAlsa ("                   : sample rate=%5d, format=%s\n", _audioSampleRate, SFLDataFormatString);
+    _debugAlsa ("                   : sample rate=%5d, format=%s", _audioSampleRate, SFLDataFormatString);
 
     _audioThread = NULL;
 
@@ -144,7 +144,7 @@ AlsaLayer::openDevice (int indexIn, int indexOut, int sampleRate, int frameSize,
 void
 AlsaLayer::startStream (void)
 {
-    _debug ("AlsaLayer:: startStream\n");
+    _debug ("AlsaLayer:: startStream");
 
     std::string pcmp = buildDeviceTopo (_audioPlugin, _indexOut, 0);
     std::string pcmc = buildDeviceTopo (_audioPlugin, _indexIn, 0);
@@ -171,11 +171,11 @@ AlsaLayer::startStream (void)
 
     if (_audioThread == NULL) {
         try {
-            _debug ("Start Audio Thread\n");
+            _debug ("Start Audio Thread");
             _audioThread = new AudioThread (this);
             _audioThread->start();
         } catch (...) {
-            _debugException ("Fail to start audio thread\n");
+            _debugException ("Fail to start audio thread");
         }
     }
 
@@ -184,17 +184,17 @@ AlsaLayer::startStream (void)
 void
 AlsaLayer::stopStream (void)
 {
-    _debug ("AlsaLayer:: stopStream\n");
+    _debug ("AlsaLayer:: stopStream");
 
     try {
         /* Stop the audio thread first */
         if (_audioThread) {
-            _debug ("Stop Audio Thread\n");
+            _debug ("Stop Audio Thread");
             delete _audioThread;
             _audioThread=NULL;
         }
     } catch (...) {
-        _debugException ("! ARTP Exception: when stopping audiortp\n");
+        _debugException ("! ARTP Exception: when stopping audiortp");
         throw;
     }
 
@@ -228,10 +228,10 @@ void AlsaLayer::stopCaptureStream (void)
     int err;
 
     if (_CaptureHandle) {
-        _debug ("AlsaLayer:: stop Alsa capture\n");
+        _debug ("AlsaLayer:: stop Alsa capture");
 
         if ( (err = snd_pcm_drop (_CaptureHandle)) < 0)
-            _debug ("AlsaLayer:: Error stopping ALSA capture: %s\n", snd_strerror (err));
+            _debug ("AlsaLayer:: Error stopping ALSA capture: %s", snd_strerror (err));
         else
             stop_capture ();
 
@@ -246,10 +246,10 @@ void AlsaLayer::closeCaptureStream (void)
         stopCaptureStream ();
 
     if (is_capture_open()) {
-        _debug ("AlsaLayer:: close ALSA capture\n");
+        _debug ("AlsaLayer:: close ALSA capture");
 
         if ( (err = snd_pcm_close (_CaptureHandle)) < 0)
-            _debug ("Error closing ALSA capture: %s\n", snd_strerror (err));
+            _debug ("Error closing ALSA capture: %s", snd_strerror (err));
         else
             close_capture ();
     }
@@ -260,10 +260,10 @@ void AlsaLayer::startCaptureStream (void)
     int err;
 
     if (_CaptureHandle && !is_capture_running()) {
-        _debug ("AlsaLayer:: start ALSA capture\n");
+        _debug ("AlsaLayer:: start ALSA capture");
 
         if ( (err = snd_pcm_start (_CaptureHandle)) < 0)
-            _debug ("Error starting ALSA capture: %s\n",  snd_strerror (err));
+            _debug ("Error starting ALSA capture: %s",  snd_strerror (err));
         else
             start_capture();
     }
@@ -274,10 +274,10 @@ void AlsaLayer::prepareCaptureStream (void)
     int err;
 
     if (is_capture_open() && !is_capture_prepared()) {
-        _debug ("AlsaLayer:: prepare ALSA capture\n");
+        _debug ("AlsaLayer:: prepare ALSA capture");
 
         if ( (err = snd_pcm_prepare (_CaptureHandle)) < 0)
-            _debug ("Error preparing ALSA capture: %s\n", snd_strerror (err));
+            _debug ("Error preparing ALSA capture: %s", snd_strerror (err));
         else
             prepare_capture ();
     }
@@ -288,10 +288,10 @@ void AlsaLayer::stopPlaybackStream (void)
     int err;
 
     if (_PlaybackHandle && is_playback_running()) {
-        _debug ("AlsaLayer:: stop ALSA playback\n");
+        _debug ("AlsaLayer:: stop ALSA playback");
 
         if ( (err = snd_pcm_drop (_PlaybackHandle)) < 0)
-            _debug ("Error stopping ALSA playback: %s\n", snd_strerror (err));
+            _debug ("Error stopping ALSA playback: %s", snd_strerror (err));
         else
             stop_playback ();
     }
@@ -306,10 +306,10 @@ void AlsaLayer::closePlaybackStream (void)
         stopPlaybackStream ();
 
     if (is_playback_open()) {
-        _debug ("AlsaLayer:: close ALSA playback\n");
+        _debug ("AlsaLayer:: close ALSA playback");
 
         if ( (err = snd_pcm_close (_PlaybackHandle)) < 0)
-            _debug ("Error closing ALSA playback: %s\n", snd_strerror (err));
+            _debug ("Error closing ALSA playback: %s", snd_strerror (err));
         else
             close_playback ();
     }
@@ -320,10 +320,10 @@ void AlsaLayer::startPlaybackStream (void)
     int err;
 
     if (_PlaybackHandle && !is_playback_running()) {
-        _debug ("AlsaLayer:: start ALSA playback\n");
+        _debug ("AlsaLayer:: start ALSA playback");
 
         if ( (err = snd_pcm_start (_PlaybackHandle)) < 0)
-            _debug ("Error starting ALSA playback: %s\n", snd_strerror (err));
+            _debug ("Error starting ALSA playback: %s", snd_strerror (err));
         else
             start_playback();
     }
@@ -334,10 +334,10 @@ void AlsaLayer::preparePlaybackStream (void)
     int err;
 
     if (is_playback_open() && !is_playback_prepared()) {
-        _debug ("AlsaLayer:: prepare playback stream\n");
+        _debug ("AlsaLayer:: prepare playback stream");
 
         if ( (err = snd_pcm_prepare (_PlaybackHandle)) < 0)
-            _debug ("Error preparing the device: %s\n", snd_strerror (err));
+            _debug ("Error preparing the device: %s", snd_strerror (err));
         else
             prepare_playback ();
     }
@@ -350,9 +350,9 @@ void AlsaLayer::recoverPlaybackStream(int error)
     int err;
 
     if (is_playback_open() && is_playback_running()) {
-	_debug("AlsaLayer:: recover playback stream\n");
+	_debug("AlsaLayer:: recover playback stream");
 	if((err = snd_pcm_recover(_PlaybackHandle, error, 0)) < 0 )
-	    _debug("Error recovering the device: %s\n", snd_strerror(err));
+	    _debug("Error recovering the device: %s", snd_strerror(err));
     }
 }
 */
@@ -364,9 +364,9 @@ void AlsaLayer::recoverPlaybackStream(int error)
     int err;
 
     if (is_capture_open() && is_capture_running()) {
-	_debug("AlsaLayer:: recover capture stream\n");
+	_debug("AlsaLayer:: recover capture stream");
 	if((err = snd_pcm_recover(_PlaybackHandle, error, 0)) < 0 )
-	    _debug("Error recovering the device: %s\n", snd_strerror(err));
+	    _debug("Error recovering the device: %s", snd_strerror(err));
     }
 }
 */
@@ -392,12 +392,12 @@ bool AlsaLayer::alsa_set_params (snd_pcm_t *pcm_handle, int type, int rate)
     /* Full configuration space */
 
     if ( (err = snd_pcm_hw_params_any (pcm_handle, hwparams)) < 0) {
-        _debugAlsa (" Cannot initialize hardware parameter structure (%s)\n", snd_strerror (err));
+        _debugAlsa (" Cannot initialize hardware parameter structure (%s)", snd_strerror (err));
         return false;
     }
 
     if ( (err = snd_pcm_hw_params_set_access (pcm_handle, hwparams, SND_PCM_ACCESS_RW_INTERLEAVED)) < 0) {
-        _debugAlsa (" Cannot set access type (%s)\n", snd_strerror (err));
+        _debugAlsa (" Cannot set access type (%s)", snd_strerror (err));
         return false;
     }
 
@@ -405,7 +405,7 @@ bool AlsaLayer::alsa_set_params (snd_pcm_t *pcm_handle, int type, int rate)
     format = SND_PCM_FORMAT_S16_LE;
 
     if ( (err = snd_pcm_hw_params_set_format (pcm_handle, hwparams, (snd_pcm_format_t) format)) < 0) {
-        _debugAlsa (" Cannot set sample format (%s)\n", snd_strerror (err));
+        _debugAlsa (" Cannot set sample format (%s)", snd_strerror (err));
         return false;
     }
 
@@ -417,17 +417,17 @@ bool AlsaLayer::alsa_set_params (snd_pcm_t *pcm_handle, int type, int rate)
     exact_ivalue = rate;
 
     if ( (err = snd_pcm_hw_params_set_rate_near (pcm_handle, hwparams, &exact_ivalue, &dir) < 0)) {
-        _debugAlsa (" Cannot set sample rate (%s)\n", snd_strerror (err));
+        _debugAlsa (" Cannot set sample rate (%s)", snd_strerror (err));
         return false;
     }
 
     if (dir!= 0) {
-        _debugAlsa (" (%i) The choosen rate %d Hz is not supported by your hardware.\nUsing %d Hz instead.\n ",type ,rate, exact_ivalue);
+        _debugAlsa (" (%i) The choosen rate %d Hz is not supported by your hardware.Using %d Hz instead. ",type ,rate, exact_ivalue);
     }
 
     /* Set the number of channels */
     if ( (err = snd_pcm_hw_params_set_channels (pcm_handle, hwparams, 1)) < 0) {
-        _debugAlsa (" Cannot set channel count (%s)\n", snd_strerror (err));
+        _debugAlsa (" Cannot set channel count (%s)", snd_strerror (err));
         return false;
     }
 
@@ -437,12 +437,12 @@ bool AlsaLayer::alsa_set_params (snd_pcm_t *pcm_handle, int type, int rate)
     dir=0;
 
     if ( (err = snd_pcm_hw_params_set_period_size_near (pcm_handle, hwparams, &exact_lvalue , &dir)) < 0) {
-        _debugAlsa (" Cannot set period time (%s)\n", snd_strerror (err));
+        _debugAlsa (" Cannot set period time (%s)", snd_strerror (err));
         return false;
     }
 
     if (dir!=0) {
-        _debugAlsa ("(%i) The choosen period size %d bytes is not supported by your hardware.\nUsing %d instead.\n ", type, (int) periodsize, (int) exact_lvalue);
+        _debugAlsa ("(%i) The choosen period size %d bytes is not supported by your hardware.Using %d instead. ", type, (int) periodsize, (int) exact_lvalue);
     }
 
     periodsize = exact_lvalue;
@@ -453,12 +453,12 @@ bool AlsaLayer::alsa_set_params (snd_pcm_t *pcm_handle, int type, int rate)
     dir=0;
 
     if ( (err = snd_pcm_hw_params_set_periods_near (pcm_handle, hwparams, &exact_ivalue, &dir)) < 0) {
-        _debugAlsa (" Cannot set periods number (%s)\n", snd_strerror (err));
+        _debugAlsa (" Cannot set periods number (%s)", snd_strerror (err));
         return false;
     }
 
     if (dir!=0) {
-        _debugAlsa (" The choosen period number %i bytes is not supported by your hardware.\nUsing %i instead.\n ", periods, exact_ivalue);
+        _debugAlsa (" The choosen period number %i bytes is not supported by your hardware.Using %i instead. ", periods, exact_ivalue);
     }
 
     periods=exact_ivalue;
@@ -466,7 +466,7 @@ bool AlsaLayer::alsa_set_params (snd_pcm_t *pcm_handle, int type, int rate)
     /* Set the hw parameters */
 
     if ( (err = snd_pcm_hw_params (pcm_handle, hwparams)) < 0) {
-        _debugAlsa (" Cannot set hw parameters (%s)\n", snd_strerror (err));
+        _debugAlsa (" Cannot set hw parameters (%s)", snd_strerror (err));
         return false;
     }
 
@@ -479,12 +479,12 @@ bool AlsaLayer::alsa_set_params (snd_pcm_t *pcm_handle, int type, int rate)
     /* Set the start threshold */
 
     if ( (err = snd_pcm_sw_params_set_start_threshold (pcm_handle, swparams, 2700 /*periodsize*2*/)) < 0) {
-        _debugAlsa (" Cannot set start threshold (%s)\n", snd_strerror (err));
+        _debugAlsa (" Cannot set start threshold (%s)", snd_strerror (err));
         return false;
     }
 
     if ( (err = snd_pcm_sw_params (pcm_handle, swparams)) < 0) {
-        _debugAlsa (" Cannot set sw parameters (%s)\n", snd_strerror (err));
+        _debugAlsa (" Cannot set sw parameters (%s)", snd_strerror (err));
         return false;
     }
 
@@ -503,18 +503,18 @@ AlsaLayer::open_device (std::string pcm_p, std::string pcm_c, int flag)
 
     if (flag == SFL_PCM_BOTH || flag == SFL_PCM_PLAYBACK) {
 
-        _debug ("AlsaLayer:: open playback device\n");
+        _debug ("AlsaLayer:: open playback device");
         // if((err = snd_pcm_open(&_PlaybackHandle, pcm_p.c_str(),  SND_PCM_STREAM_PLAYBACK, 0 )) < 0){
 
         if ( (err = snd_pcm_open (&_PlaybackHandle, pcm_p.c_str(),  SND_PCM_STREAM_PLAYBACK, 0)) < 0) {
-            _debugAlsa ("Error while opening playback device %s\n",  pcm_p.c_str());
+            _debugAlsa ("Error while opening playback device %s",  pcm_p.c_str());
             setErrorMessage (ALSA_PLAYBACK_DEVICE);
             close_playback ();
             return false;
         }
 
         if (!alsa_set_params (_PlaybackHandle, 1, getSampleRate())) {
-            _debug ("playback failed\n");
+            _debug ("playback failed");
             snd_pcm_close (_PlaybackHandle);
             close_playback ();
             return false;
@@ -525,17 +525,17 @@ AlsaLayer::open_device (std::string pcm_p, std::string pcm_c, int flag)
 
     if (flag == SFL_PCM_BOTH || flag == SFL_PCM_CAPTURE) {
 
-        _debug ("AlsaLayer:: open capture device\n");
+        _debug ("AlsaLayer:: open capture device");
 
         if ( (err = snd_pcm_open (&_CaptureHandle,  pcm_c.c_str(),  SND_PCM_STREAM_CAPTURE, 0)) < 0) {
-            _debugAlsa ("Error while opening capture device %s\n",  pcm_c.c_str());
+            _debugAlsa ("Error while opening capture device %s",  pcm_c.c_str());
             setErrorMessage (ALSA_CAPTURE_DEVICE);
             close_capture ();
             return false;
         }
 
         if (!alsa_set_params (_CaptureHandle, 0, 8000)) {
-            _debug ("capture failed\n");
+            _debug ("capture failed");
             snd_pcm_close (_CaptureHandle);
             close_capture ();
             return false;
@@ -551,7 +551,7 @@ AlsaLayer::open_device (std::string pcm_p, std::string pcm_c, int flag)
     try {
         _audioThread->start();
     } catch (...) {
-        _debugException ("Fail to start audio thread\n");
+        _debugException ("Fail to start audio thread");
     }
     */
 
@@ -579,18 +579,18 @@ AlsaLayer::write (void* buffer, int length)
             case -ESTRPIPE:
 
             case -EIO:
-                //_debugAlsa(" XRUN playback ignored (%s)\n", snd_strerror(err));
+                //_debugAlsa(" XRUN playback ignored (%s)", snd_strerror(err));
                 handle_xrun_playback();
 
                 if (snd_pcm_writei (_PlaybackHandle , buffer , frames) <0)
-                    _debugAlsa ("XRUN handling failed\n");
+                    _debugAlsa ("XRUN handling failed");
 
                 _trigger_request = true;
 
                 break;
 
             default:
-                _debugAlsa ("Write error unknown - dropping frames **********************************: %s\n", snd_strerror (err));
+                _debugAlsa ("Write error unknown - dropping frames **********************************: %s", snd_strerror (err));
 
                 stopPlaybackStream ();
 
@@ -623,20 +623,20 @@ AlsaLayer::read (void* buffer, int toCopy)
             case -ESTRPIPE:
 
             case -EIO:
-                _debugAlsa (" XRUN capture ignored (%s)\n", snd_strerror (samples));
+                _debugAlsa (" XRUN capture ignored (%s)", snd_strerror (samples));
                 handle_xrun_capture();
                 //samples = snd_pcm_readi( _CaptureHandle, buffer, frames);
                 //if (samples<0)  samples=0;
                 break;
 
             case EPERM:
-                _debugAlsa (" Capture EPERM (%s)\n", snd_strerror (samples));
+                _debugAlsa (" Capture EPERM (%s)", snd_strerror (samples));
                 prepareCaptureStream ();
                 startCaptureStream ();
                 break;
 
             default:
-                //_debugAlsa("%s\n", snd_strerror(samples));
+                //_debugAlsa("%s", snd_strerror(samples));
                 break;
         }
 
@@ -650,7 +650,7 @@ AlsaLayer::read (void* buffer, int toCopy)
 void
 AlsaLayer::handle_xrun_capture (void)
 {
-    _debugAlsa ("handle_xrun_capture\n");
+    _debugAlsa ("handle_xrun_capture");
 
     snd_pcm_status_t* status;
     snd_pcm_status_alloca (&status);
@@ -664,19 +664,19 @@ AlsaLayer::handle_xrun_capture (void)
             startCaptureStream ();
         }
     } else
-        _debugAlsa (" Get status failed\n");
+        _debugAlsa (" Get status failed");
 }
 
 void
 AlsaLayer::handle_xrun_playback (void)
 {
-    _debugAlsa ("AlsaLayer:: handle_xrun_playback\n");
+    _debugAlsa ("AlsaLayer:: handle_xrun_playback");
 
     int state;
     snd_pcm_status_t* status;
     snd_pcm_status_alloca (&status);
 
-    if ( (state = snd_pcm_status (_PlaybackHandle, status)) < 0)   _debugAlsa (" Error: Cannot get playback handle status (%s)\n" , snd_strerror (state));
+    if ( (state = snd_pcm_status (_PlaybackHandle, status)) < 0)   _debugAlsa (" Error: Cannot get playback handle status (%s)" , snd_strerror (state));
     else {
         state = snd_pcm_status_get_state (status);
 
@@ -743,9 +743,9 @@ AlsaLayer::getSoundCardsInfo (int stream)
                 snd_pcm_info_set_device (pcminfo , 0);
                 snd_pcm_info_set_stream (pcminfo, (stream == SFL_PCM_CAPTURE) ? SND_PCM_STREAM_CAPTURE : SND_PCM_STREAM_PLAYBACK);
 
-                if (snd_ctl_pcm_info (handle ,pcminfo) < 0) _debugAlsa (" Cannot get info\n");
+                if (snd_ctl_pcm_info (handle ,pcminfo) < 0) _debugAlsa (" Cannot get info");
                 else {
-                    _debugAlsa ("card %i : %s [%s]\n",
+                    _debugAlsa ("card %i : %s [%s]",
                                 numCard,
                                 snd_ctl_card_info_get_id (info),
                                 snd_ctl_card_info_get_name (info));
@@ -825,7 +825,7 @@ void AlsaLayer::audioCallback (void)
 
     /*
     int writeableSize = snd_pcm_avail_update(_PlaybackHandle);
-    _debug("writeableSize %i\n", writeableSize);
+    _debug("writeableSize %i", writeableSize);
     */
 
     // AvailForGet tell the number of chars inside the buffer
@@ -970,7 +970,7 @@ void AlsaLayer::audioCallback (void)
     if (is_capture_running()) {
 
         micAvailBytes = snd_pcm_avail_update (_CaptureHandle);
-        // _debug("micAvailBytes %i\n", micAvailBytes);
+        // _debug("micAvailBytes %i", micAvailBytes);
 
         if (micAvailBytes > 0) {
             micAvailPut = getMainBuffer()->availForPut();
@@ -990,7 +990,7 @@ void AlsaLayer::audioCallback (void)
                     int nbSample = toPut / sizeof (SFLDataFormat);
                     int nb_sample_up = nbSample;
 
-                    // _debug("nb_sample_up %i\n", nb_sample_up);
+                    // _debug("nb_sample_up %i", nb_sample_up);
                     nbSample = _converter->downsampleData ( (SFLDataFormat*) in, rsmpl_out, _mainBufferSampleRate, _audioSampleRate, nb_sample_up);
 
                     dcblocker->filter_signal (rsmpl_out, nbSample);
@@ -1010,7 +1010,7 @@ void AlsaLayer::audioCallback (void)
 
             in=0;
         } else if (micAvailBytes < 0) {
-            _debug ("AlsaLayer::audioCallback (mic): error: %s\n", snd_strerror (micAvailBytes));
+            _debug ("AlsaLayer::audioCallback (mic): error: %s", snd_strerror (micAvailBytes));
         }
 
     }
diff --git a/sflphone-common/src/audio/audiolayer.cpp b/sflphone-common/src/audio/audiolayer.cpp
index 0687dfa3b4..e0a84d4848 100644
--- a/sflphone-common/src/audio/audiolayer.cpp
+++ b/sflphone-common/src/audio/audiolayer.cpp
@@ -40,7 +40,7 @@ void AudioLayer::flushUrgent (void)
 
 int AudioLayer::putUrgent (void* buffer, int toCopy)
 {
-    _debug ("------------------- AudioLayer::putUrgent --------------------\n");
+    _debug ("------------------- AudioLayer::putUrgent --------------------");
     int a;
 
     ost::MutexLock guard (_mutex);
@@ -65,7 +65,7 @@ int AudioLayer::putMain (void *buffer, int toCopy, CallID call_id)
     if (a >= toCopy) {
         return getMainBuffer()->putData (buffer, toCopy, _defaultVolume, call_id);
     } else {
-        _debug ("Chopping sound, Ouch! RingBuffer full ?\n");
+        _debug ("Chopping sound, Ouch! RingBuffer full ?");
         return getMainBuffer()->putData (buffer, a, _defaultVolume, call_id);
     }
 
diff --git a/sflphone-common/src/audio/audiortp.cpp b/sflphone-common/src/audio/audiortp.cpp
index 3887a21f63..26615888a7 100644
--- a/sflphone-common/src/audio/audiortp.cpp
+++ b/sflphone-common/src/audio/audiortp.cpp
@@ -68,14 +68,14 @@ AudioRtp::createNewSession (SIPCall *ca)
 
     ost::MutexLock m (_rtpMutex);
 
-    _debug ("AudioRtp::Create new rtp session\n");
+    _debug ("AudioRtp::Create new rtp session");
 
     // something should stop the thread before...
 
     if (_RTXThread != 0) {
-        _debug ("**********************************************************\n");
-        _debug ("! ARTP Failure: Thread already exists..., stopping it\n");
-        _debug ("**********************************************************\n");
+        _debug ("**********************************************************");
+        _debug ("! ARTP Failure: Thread already exists..., stopping it");
+        _debug ("**********************************************************");
         delete _RTXThread;
         _RTXThread = 0;
     }
@@ -93,14 +93,14 @@ AudioRtp::start (void)
     ost::MutexLock m (_rtpMutex);
 
     if (_RTXThread == 0) {
-        _debug ("! ARTP Failure: Cannot start audiortp thread since not yet created\n");
+        _debug ("! ARTP Failure: Cannot start audiortp thread since not yet created");
         throw AudioRtpException();
     }
 
 
     try {
         if (_RTXThread->start() != 0) {
-            _debug ("! ARTP Failure: unable to start RTX Thread\n");
+            _debug ("! ARTP Failure: unable to start RTX Thread");
             return -1;
         }
     } catch (...) {
@@ -118,7 +118,7 @@ AudioRtp::closeRtpSession ()
 
     ost::MutexLock m (_rtpMutex);
     // This will make RTP threads finish.
-    _debug ("AudioRtp::Stopping rtp session\n");
+    _debug ("AudioRtp::Stopping rtp session");
 
     try {
         if (_RTXThread != 0) {
@@ -126,11 +126,11 @@ AudioRtp::closeRtpSession ()
             _RTXThread = 0;
         }
     } catch (...) {
-        _debugException ("! ARTP Exception: when stopping audiortp\n");
+        _debugException ("! ARTP Exception: when stopping audiortp");
         throw;
     }
 
-    _debug ("AudioRtp::Audio rtp stopped\n");
+    _debug ("AudioRtp::Audio rtp stopped");
 
     return true;
 }
@@ -140,7 +140,7 @@ void
 AudioRtp::setRecording()
 {
 
-    _debug ("AudioRtp::setRecording\n");
+    _debug ("AudioRtp::setRecording");
     _RTXThread->_ca->setRecording();
 
 }
@@ -161,7 +161,7 @@ AudioRtpRTX::AudioRtpRTX (SIPCall *sipcall, bool sym) : time (new ost::Time()),
     std::string localipConfig = _ca->getLocalIp(); // _ca->getLocalIp();
     ost::InetHostAddress local_ip (localipConfig.c_str());
 
-    _debug ("%i\n", _ca->getLocalAudioPort());
+    _debug ("%i", _ca->getLocalAudioPort());
     _session = new ost::SymmetricRTPSession (local_ip, _ca->getLocalAudioPort());
     // _session = new ost::RTPSessionBase(local_ip, _ca->getLocalAudioPort());
     _sessionRecv = NULL;
@@ -209,7 +209,7 @@ AudioRtpRTX::~AudioRtpRTX ()
 
     ost::MutexLock m (_rtpRtxMutex);
 
-    _debug ("Delete AudioRtpRTX instance in callid %s\n", _ca->getCallId().c_str());
+    _debug ("Delete AudioRtpRTX instance in callid %s", _ca->getCallId().c_str());
 
     try {
         this->terminate();
@@ -218,12 +218,12 @@ AudioRtpRTX::~AudioRtpRTX ()
         throw;
     }
 
-    _debug ("Remove audio stream for call id %s\n", _ca->getCallId().c_str());
+    _debug ("Remove audio stream for call id %s", _ca->getCallId().c_str());
 
     _audiolayer->getMainBuffer()->unBindAll (_ca->getCallId());
     // Manager::instance().removeStream(_ca->getCallId());
 
-    _debug ("DELETE print micData address %p\n", micData);
+    _debug ("DELETE print micData address %p", micData);
     delete [] micData;
     micData = NULL;
     delete [] micDataConverted;
@@ -248,7 +248,7 @@ AudioRtpRTX::~AudioRtpRTX ()
     delete _session;
     _session = NULL;
 
-    _debug ("AudioRtpRTX instance deleted\n");
+    _debug ("AudioRtpRTX instance deleted");
 
     rtp_input_rec->close();
     rtp_output_rec->close();
@@ -261,17 +261,17 @@ AudioRtpRTX::initBuffers()
 {
     ost::MutexLock m (_rtpRtxMutex);
 
-    _debug ("AudioRtpRTX::initBuffers Init RTP buffers for %s\n", _ca->getCallId().c_str());
+    _debug ("AudioRtpRTX::initBuffers Init RTP buffers for %s", _ca->getCallId().c_str());
 
     converter = new SamplerateConverter (_layerSampleRate , _layerFrameSize);
 
     nbSamplesMax = (int) (_layerSampleRate * _layerFrameSize /1000);
 
 
-    _debug ("AudioRtpRTX::initBuffers NBSAMPLEMAX %i\n", nbSamplesMax);
+    _debug ("AudioRtpRTX::initBuffers NBSAMPLEMAX %i", nbSamplesMax);
 
     micData = new SFLDataFormat[nbSamplesMax];
-    _debug ("CREATE print micData address %p\n", micData);
+    _debug ("CREATE print micData address %p", micData);
     micDataConverted = new SFLDataFormat[nbSamplesMax];
     micDataEncoded = new unsigned char[nbSamplesMax];
 
@@ -305,7 +305,7 @@ AudioRtpRTX::setRtpSessionMedia (void)
 {
 
     if (_ca == 0) {
-        _debug (" !ARTP: No call, can't init RTP media\n");
+        _debug (" !ARTP: No call, can't init RTP media");
         return;
     }
 
@@ -314,11 +314,11 @@ AudioRtpRTX::setRtpSessionMedia (void)
     _audiocodec = Manager::instance().getCodecDescriptorMap().instantiateCodec (pl);
 
     if (_audiocodec == NULL) {
-        _debug (" !ARTP: No audiocodec, can't init RTP media\n");
+        _debug (" !ARTP: No audiocodec, can't init RTP media");
         return;
     }
 
-    _debug ("Init audio RTP session: codec payload %i\n", _audiocodec->getPayload());
+    _debug ("Init audio RTP session: codec payload %i", _audiocodec->getPayload());
 
     // _audioCodecInstance = *_audiocodec;
 
@@ -344,34 +344,34 @@ AudioRtpRTX::setRtpSessionRemoteIp (void)
 
     if (!_remoteIpIsSet) {
 
-        _debug ("++++++++++++++++++++++++++ SET IP ADDRESS ++++++++++++++++++++++++++++\n");
+        _debug ("++++++++++++++++++++++++++ SET IP ADDRESS ++++++++++++++++++++++++++++");
 
         if (_ca == 0) {
-            _debug (" !ARTP: No call, can't init RTP media \n");
+            _debug (" !ARTP: No call, can't init RTP media ");
             return;
         }
 
         ost::InetHostAddress remote_ip (_ca->getLocalSDP()->get_remote_ip().c_str());
 
-        _debug ("Init audio RTP session: remote ip %s\n", _ca->getLocalSDP()->get_remote_ip().data());
+        _debug ("Init audio RTP session: remote ip %s", _ca->getLocalSDP()->get_remote_ip().data());
 
         if (!remote_ip) {
-            _debug (" !ARTP Thread Error: Target IP address [%s] is not correct!\n", _ca->getLocalSDP()->get_remote_ip().data());
+            _debug (" !ARTP Thread Error: Target IP address [%s] is not correct!", _ca->getLocalSDP()->get_remote_ip().data());
             return;
         }
 
-        _debug ("++++Address: %s, audioport: %d\n", _ca->getLocalSDP()->get_remote_ip().c_str(), _ca->getLocalSDP()->get_remote_audio_port());
+        _debug ("++++Address: %s, audioport: %d", _ca->getLocalSDP()->get_remote_ip().c_str(), _ca->getLocalSDP()->get_remote_audio_port());
 
-        _debug ("++++Audioport: %d\n", (int) _ca->getLocalSDP()->get_remote_audio_port());
+        _debug ("++++Audioport: %d", (int) _ca->getLocalSDP()->get_remote_audio_port());
 
         if (!_session->addDestination (remote_ip, (unsigned short) _ca->getLocalSDP()->get_remote_audio_port())) {
-            _debug (" !ARTP Thread Error: can't add destination to session!\n");
+            _debug (" !ARTP Thread Error: can't add destination to session!");
             return;
         }
 
         _remoteIpIsSet = true;
     } else {
-        _debug ("+++++++++++++++++++++++ IP ADDRESS ALREADY SET ++++++++++++++++++++++++\n");
+        _debug ("+++++++++++++++++++++++ IP ADDRESS ALREADY SET ++++++++++++++++++++++++");
     }
 
 }
@@ -404,23 +404,23 @@ AudioRtpRTX::processDataEncode()
     // available bytes inside ringbuffer
     int availBytesFromMic = _audiolayer->getMainBuffer()->availForGet (_ca->getCallId());
 
-    // _debug("AudioRtpRTX::processDataEncode() callid: %s availBytesFromMic %i\n", _ca->getCallId().c_str(), availBytesFromMic);
+    // _debug("AudioRtpRTX::processDataEncode() callid: %s availBytesFromMic %i", _ca->getCallId().c_str(), availBytesFromMic);
 
-    // _debug("AudioRtpRTX::processDataEncode: availBytesFromMic: %i\n", availBytesFromMic);
+    // _debug("AudioRtpRTX::processDataEncode: availBytesFromMic: %i", availBytesFromMic);
     // set available byte to maxByteToGet
     int bytesAvail = (availBytesFromMic < maxBytesToGet) ? availBytesFromMic : maxBytesToGet;
-    // _debug("bytesAvail %i\n", bytesAvail);
+    // _debug("bytesAvail %i", bytesAvail);
 
     if (bytesAvail == 0)
         return 0;
 
-    // _debug("AudioRtpRTX::processDataEncode: bytesAvail: %i\n", bytesAvail);
+    // _debug("AudioRtpRTX::processDataEncode: bytesAvail: %i", bytesAvail);
     // Get bytes from micRingBuffer to data_from_mic
     int nbSample = _audiolayer->getMainBuffer()->getData (micData , bytesAvail, 100, _ca->getCallId()) / sizeof (SFLDataFormat);
 
     rtp_output_rec->write ( (char*) micData, bytesAvail);
 
-    // _debug("AudioRtpRTX::processDataEncode: nbSample: %i\n", nbSample);
+    // _debug("AudioRtpRTX::processDataEncode: nbSample: %i", nbSample);
 
     // nb bytes to be sent over RTP
     int compSize = 0;
@@ -429,7 +429,7 @@ AudioRtpRTX::processDataEncode()
     if (_audiocodec->getClockRate() != _layerSampleRate) {
 
         int nb_sample_up = nbSample;
-        //_debug("_nbSample audiolayer->getMic(): %i \n", nbSample);
+        //_debug("_nbSample audiolayer->getMic(): %i ", nbSample);
 
         // Store the length of the mic buffer in samples for recording
         _nSamplesMic = nbSample;
@@ -514,18 +514,18 @@ AudioRtpRTX::sendSessionFromMic (int timestamp)
     // no call, so we do nothing
 
     if (_ca==0) {
-        _debug (" !ARTP: No call associated (mic)\n");
+        _debug (" !ARTP: No call associated (mic)");
         return;
     }
 
     // AudioLayer* audiolayer = Manager::instance().getAudioDriver();
     if (!_audiolayer) {
-        _debug (" !ARTP: No audiolayer available for MIC\n");
+        _debug (" !ARTP: No audiolayer available for MIC");
         return;
     }
 
     if (!_audiocodec) {
-        _debug (" !ARTP: No audiocodec available for MIC\n");
+        _debug (" !ARTP: No audiocodec available for MIC");
         return;
     }
 
@@ -534,7 +534,7 @@ AudioRtpRTX::sendSessionFromMic (int timestamp)
     int compSize = processDataEncode();
 
     // putData put the data on RTP queue, sendImmediate bypass this queue
-    // _debug("AudioRtpRTX::sendSessionFromMic: timestamp: %i, compsize: %i\n", timestamp, compSize);
+    // _debug("AudioRtpRTX::sendSessionFromMic: timestamp: %i, compsize: %i", timestamp, compSize);
 
     if ( (compSize != 0) && (micDataEncoded != NULL))
         _session->putData (timestamp, micDataEncoded, compSize);
@@ -554,12 +554,12 @@ AudioRtpRTX::receiveSessionForSpkr (int& countTime)
     }
 
     if (!_audiolayer) {
-        _debug (" !ARTP: No audiolayer available for SPEAKER\n");
+        _debug (" !ARTP: No audiolayer available for SPEAKER");
         return;
     }
 
     if (!_audiocodec) {
-        _debug (" !ARTP: No audiocodec available for SPEAKER\n");
+        _debug (" !ARTP: No audiocodec available for SPEAKER");
         return;
     }
 
@@ -638,12 +638,12 @@ AudioRtpRTX::run ()
 
     int timestamp = _session->getCurrentTimestamp(); // for mic
 
-    _debug ("- ARTP Action: Start call %s\n",_ca->getCallId().c_str());
+    _debug ("- ARTP Action: Start call %s",_ca->getCallId().c_str());
 
     while (!testCancel()) {
 
 
-        // _debug("Main while loop for call: %s\n", _ca->getCallId().c_str());
+        // _debug("Main while loop for call: %s", _ca->getCallId().c_str());
         // Send session
         sessionWaiting = _session->isWaiting();
 
@@ -676,7 +676,7 @@ AudioRtpRTX::run ()
     }
 
     // _audiolayer->stopStream();
-    _debug ("- ARTP Action: Stop call %s\n",_ca->getCallId().c_str());
+    _debug ("- ARTP Action: Stop call %s",_ca->getCallId().c_str());
 
 
 }
diff --git a/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp b/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
index 6785f286e9..bf9a9bf6c8 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
@@ -60,7 +60,7 @@ void AudioRtpFactory::initAudioRtpSession (SIPCall * ca)
 
     if (_rtpSession != NULL) {
         _debugException ("An audio rtp thread was already created but not" \
-                         "destroyed. Forcing it before continuing.\n");
+                         "destroyed. Forcing it before continuing.");
         stop();
     }
 
@@ -75,16 +75,16 @@ void AudioRtpFactory::initAudioRtpSession (SIPCall * ca)
     if (accountId == AccountNULL) {
         srtpEnabled = Manager::instance().getConfigBool (IP2IP_PROFILE, SRTP_ENABLE);
         keyExchangeProtocol = Manager::instance().getConfigInt (IP2IP_PROFILE, SRTP_KEY_EXCHANGE);
-        _debug ("Ip-to-ip profile selected with key exchange protocol number %d\n", keyExchangeProtocol);
+        _debug ("Ip-to-ip profile selected with key exchange protocol number %d", keyExchangeProtocol);
         helloHashEnabled = Manager::instance().getConfigBool (IP2IP_PROFILE, ZRTP_HELLO_HASH);
     } else {
         srtpEnabled = Manager::instance().getConfigBool (accountId, SRTP_ENABLE);
         keyExchangeProtocol = Manager::instance().getConfigInt (accountId, SRTP_KEY_EXCHANGE);
-        _debug ("Registered account %s profile selected with key exchange protocol number %d\n", accountId.c_str(), keyExchangeProtocol);
+        _debug ("Registered account %s profile selected with key exchange protocol number %d", accountId.c_str(), keyExchangeProtocol);
         helloHashEnabled = Manager::instance().getConfigBool (accountId, ZRTP_HELLO_HASH);
     }
 
-    _debug ("Srtp enable: %d \n", srtpEnabled);
+    _debug ("Srtp enable: %d ", srtpEnabled);
 
     if (srtpEnabled) {
         std::string zidFilename (Manager::instance().getConfigString (SIGNALISATION, ZRTP_ZIDFILE));
@@ -99,7 +99,7 @@ void AudioRtpFactory::initAudioRtpSession (SIPCall * ca)
                     // TODO: be careful with that. The hello hash is computed asynchronously. Maybe it's
                     // not even available at that point.
                     ca->getLocalSDP()->set_zrtp_hash (static_cast<AudioZrtpSession *> (_rtpSession)->getHelloHash());
-                    _debug ("Zrtp hello hash fed to SDP\n");
+                    _debug ("Zrtp hello hash fed to SDP");
                 }
 
                 break;
@@ -112,7 +112,7 @@ void AudioRtpFactory::initAudioRtpSession (SIPCall * ca)
     } else {
         _rtpSessionType = Symmetric;
         _rtpSession = new AudioSymmetricRtpSession (&Manager::instance(), ca);
-        _debug ("Starting a symmetric unencrypted rtp session\n");
+        _debug ("Starting a symmetric unencrypted rtp session");
     }
 }
 
@@ -127,7 +127,7 @@ void AudioRtpFactory::start (void)
         case Sdes:
 
         case Symmetric:
-            _debug ("Starting symmetric rtp thread\n");
+            _debug ("Starting symmetric rtp thread");
 
             if (static_cast<AudioSymmetricRtpSession *> (_rtpSession)->startRtpThread() != 0) {
                 throw AudioRtpFactoryException ("Failed to start AudioSymmetricRtpSession thread");
@@ -148,7 +148,7 @@ void AudioRtpFactory::start (void)
 void AudioRtpFactory::stop (void)
 {
     ost::MutexLock mutex (_audioRtpThreadMutex);
-    _debug ("Stopping audio rtp session\n");
+    _debug ("Stopping audio rtp session");
 
     if (_rtpSession == NULL) {
         _debugException ("_rtpSession is null when trying to stop. Returning.");
@@ -171,7 +171,7 @@ void AudioRtpFactory::stop (void)
 
         _rtpSession = NULL;
     } catch (...) {
-        _debugException ("Exception caught when stopping the audio rtp session\n");
+        _debugException ("Exception caught when stopping the audio rtp session");
         throw AudioRtpFactoryException();
     }
 }
diff --git a/sflphone-common/src/audio/audiortp/AudioZrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioZrtpSession.cpp
index cec4dd3ff7..cdd2a11821 100644
--- a/sflphone-common/src/audio/audiortp/AudioZrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioZrtpSession.cpp
@@ -36,7 +36,7 @@ AudioZrtpSession::AudioZrtpSession (ManagerImpl * manager, SIPCall * sipcall, co
         AudioRtpSession<AudioZrtpSession> (manager, sipcall),
         _zidFilename (zidFilename)
 {
-    _debug ("AudioZrtpSession initialized\n");
+    _debug ("AudioZrtpSession initialized");
     initializeZid();
     startZrtp();
 }
@@ -54,24 +54,24 @@ void AudioZrtpSession::initializeZid (void)
 
     std::string xdg_config = std::string (HOMEDIR) + DIR_SEPARATOR_STR + ".cache" + DIR_SEPARATOR_STR + PROGDIR + "/" + _zidFilename;
 
-    _debug ("    xdg_config %s\n", xdg_config.c_str());
+    _debug ("    xdg_config %s", xdg_config.c_str());
 
     if (XDG_CACHE_HOME != NULL) {
         std::string xdg_env = std::string (XDG_CACHE_HOME) + _zidFilename;
-        _debug ("    xdg_env %s\n", xdg_env.c_str());
+        _debug ("    xdg_env %s", xdg_env.c_str());
         (xdg_env.length() > 0) ? zidCompleteFilename = xdg_env : zidCompleteFilename = xdg_config;
     } else
         zidCompleteFilename = xdg_config;
 
 
     if (initialize (zidCompleteFilename.c_str()) >= 0) {
-        _debug ("Register callbacks\n");
+        _debug ("Register callbacks");
         setEnableZrtp (true);
         setUserCallback (new ZrtpSessionCallback (_ca));
         return;
     }
 
-    _debug ("Initialization from ZID file failed. Trying to remove...\n");
+    _debug ("Initialization from ZID file failed. Trying to remove...");
 
     if (remove (zidCompleteFilename.c_str()) !=0) {
         _debug ("Failed to remove zid file because of: %s", strerror (errno));
@@ -79,7 +79,7 @@ void AudioZrtpSession::initializeZid (void)
     }
 
     if (initialize (zidCompleteFilename.c_str()) < 0) {
-        _debug ("ZRTP initialization failed\n");
+        _debug ("ZRTP initialization failed");
         throw ZrtpZidException();
     }
 
diff --git a/sflphone-common/src/audio/audiortp/ZrtpSessionCallback.cpp b/sflphone-common/src/audio/audiortp/ZrtpSessionCallback.cpp
index 1648112382..ebdcd8f95e 100644
--- a/sflphone-common/src/audio/audiortp/ZrtpSessionCallback.cpp
+++ b/sflphone-common/src/audio/audiortp/ZrtpSessionCallback.cpp
@@ -44,7 +44,7 @@ ZrtpSessionCallback::ZrtpSessionCallback (SIPCall *sipcall) :
         return;
     }
 
-    _debug ("Initialize callbacks\n");
+    _debug ("Initialize callbacks");
 
     /**
      * Information Map
@@ -114,28 +114,28 @@ ZrtpSessionCallback::ZrtpSessionCallback (SIPCall *sipcall) :
 void
 ZrtpSessionCallback::secureOn (std::string cipher)
 {
-    _debug ("Secure mode is on with cipher %s\n", cipher.c_str());
+    _debug ("Secure mode is on with cipher %s", cipher.c_str());
     DBusManager::instance().getCallManager()->secureOn (_sipcall->getCallId(), cipher);
 }
 
 void
 ZrtpSessionCallback::secureOff (void)
 {
-    _debug ("Secure mode is off\n");
+    _debug ("Secure mode is off");
     DBusManager::instance().getCallManager()->secureOff (_sipcall->getCallId());
 }
 
 void
 ZrtpSessionCallback::showSAS (std::string sas, bool verified)
 {
-    _debug ("SAS is: %s\n", sas.c_str());
+    _debug ("SAS is: %s", sas.c_str());
     DBusManager::instance().getCallManager()->showSAS (_sipcall->getCallId(), sas, verified);
 }
 
 void
 ZrtpSessionCallback::zrtpNotSuppOther()
 {
-    _debug ("Callee does not support ZRTP\n");
+    _debug ("Callee does not support ZRTP");
     DBusManager::instance().getCallManager()->zrtpNotSuppOther (_sipcall->getCallId());
 }
 
@@ -148,7 +148,7 @@ ZrtpSessionCallback::showMessage (GnuZrtpCodes::MessageSeverity sev, int32_t sub
         msg = _infoMap[subCode];
 
         if (msg != NULL) {
-            _debug ("ZRTP Debug:\n");
+            _debug ("ZRTP Debug:");
         }
     }
 
@@ -156,7 +156,7 @@ ZrtpSessionCallback::showMessage (GnuZrtpCodes::MessageSeverity sev, int32_t sub
         msg = _warningMap[subCode];
 
         if (msg != NULL) {
-            _debug ("ZRTP Debug:\n");
+            _debug ("ZRTP Debug:");
         }
     }
 
@@ -164,22 +164,22 @@ ZrtpSessionCallback::showMessage (GnuZrtpCodes::MessageSeverity sev, int32_t sub
         msg = _severeMap[subCode];
 
         if (msg != NULL) {
-            _debug ("ZRTP Debug:\n");
+            _debug ("ZRTP Debug:");
         }
     }
 
     if (sev == ZrtpError) {
         if (subCode < 0) {  // received an error packet from peer
             subCode *= -1;
-            _debug ("Received an error packet from peer:\n");
+            _debug ("Received an error packet from peer:");
         } else {
-            _debug ("Sent error packet to peer:\n");
+            _debug ("Sent error packet to peer:");
         }
 
         msg = _zrtpMap[subCode];
 
         if (msg != NULL) {
-            _debug ("ZRTP Debug: %s\n", msg->c_str());
+            _debug ("ZRTP Debug: %s", msg->c_str());
         }
     }
 }
@@ -192,20 +192,20 @@ ZrtpSessionCallback::zrtpNegotiationFailed (MessageSeverity severity, int subCod
     if (severity == ZrtpError) {
         if (subCode < 0) {  // received an error packet from peer
             subCode *= -1;
-            _debug ("Received error packet: \n");
+            _debug ("Received error packet: ");
         } else {
-            _debug ("Sent error packet: \n");
+            _debug ("Sent error packet: ");
         }
 
         msg = _zrtpMap[subCode];
 
         if (msg != NULL) {
-            _debug ("%s\n", msg->c_str());
+            _debug ("%s", msg->c_str());
             DBusManager::instance().getCallManager()->zrtpNegotiationFailed (_sipcall->getCallId(), *msg, "ZRTP");
         }
     } else {
         msg = _severeMap[subCode];
-        _debug ("%s\n", msg->c_str());
+        _debug ("%s", msg->c_str());
         DBusManager::instance().getCallManager()->zrtpNegotiationFailed (_sipcall->getCallId(), *msg, "severe");
     }
 }
@@ -213,7 +213,7 @@ ZrtpSessionCallback::zrtpNegotiationFailed (MessageSeverity severity, int subCod
 void
 ZrtpSessionCallback::confirmGoClear()
 {
-    _debug ("Received go clear message. Until confirmation, ZRTP won't send any data\n");
+    _debug ("Received go clear message. Until confirmation, ZRTP won't send any data");
     DBusManager::instance().getCallManager()->zrtpNotSuppOther (_sipcall->getCallId());
 }
 
diff --git a/sflphone-common/src/audio/codecs/alaw.cpp b/sflphone-common/src/audio/codecs/alaw.cpp
index e8a3928a72..9ed3cd56de 100644
--- a/sflphone-common/src/audio/codecs/alaw.cpp
+++ b/sflphone-common/src/audio/codecs/alaw.cpp
@@ -38,7 +38,7 @@ class Alaw : public AudioCodec
         virtual ~Alaw() {}
 
         virtual int codecDecode (short *dst, unsigned char *src, unsigned int size) {
-            // _debug("Decoded by alaw \n");
+            // _debug("Decoded by alaw ");
             int16* end = dst+size;
 
             while (dst<end)
@@ -48,7 +48,7 @@ class Alaw : public AudioCodec
         }
 
         virtual int codecEncode (unsigned char *dst, short *src, unsigned int size) {
-            // _debug("Encoded by alaw \n");
+            // _debug("Encoded by alaw ");
             size >>= 1;
             uint8* end = dst+size;
 
diff --git a/sflphone-common/src/audio/codecs/celtcodec.cpp b/sflphone-common/src/audio/codecs/celtcodec.cpp
index 93cf4470d4..8787bd6b6b 100644
--- a/sflphone-common/src/audio/codecs/celtcodec.cpp
+++ b/sflphone-common/src/audio/codecs/celtcodec.cpp
@@ -46,13 +46,13 @@ class Celt : public AudioCodec
             // celt_mode_info(mode, CELT_GET_LOOKAHEAD, &skip);
 
             if (mode == NULL) {
-                printf ("failed to create a mode\n");
+                printf ("failed to create a mode");
             }
 
             // bytes_per_packet = 1024;
             // if (bytes_per_packet < 0 || bytes_per_packet > MAX_PACKET)
             // {
-            //     printf ("bytes per packet must be between 0 and %d\n");
+            //     printf ("bytes per packet must be between 0 and %d");
             // }
 
             // celt_mode_info(mode, CELT_GET_FRAME_SIZE, &frame_size);
diff --git a/sflphone-common/src/audio/codecs/codecDescriptor.cpp b/sflphone-common/src/audio/codecs/codecDescriptor.cpp
index 8c9ca56006..87a3c8c3d3 100644
--- a/sflphone-common/src/audio/codecs/codecDescriptor.cpp
+++ b/sflphone-common/src/audio/codecs/codecDescriptor.cpp
@@ -51,14 +51,14 @@ CodecDescriptor::init()
     _nbCodecs = CodecDynamicList.size();
 
     if (_nbCodecs <= 0) {
-        _debug (" Error - No codecs available in directory %s\n" , CODECS_DIR);
+        _debug (" Error - No codecs available in directory %s" , CODECS_DIR);
     }
 
     int i;
 
     for (i = 0 ; i < _nbCodecs ; i++) {
         _CodecsMap[ (AudioCodecType) CodecDynamicList[i]->getPayload() ] = CodecDynamicList[i];
-        _debug ("%s\n" , CodecDynamicList[i]->getCodecName().c_str());
+        _debug ("%s" , CodecDynamicList[i]->getCodecName().c_str());
     }
 }
 
@@ -94,11 +94,11 @@ CodecDescriptor::getCodec (AudioCodecType payload)
     CodecsMap::iterator iter = _CodecsMap.find (payload);
 
     if (iter!=_CodecsMap.end()) {
-        // _debug("Found codec %i _CodecsMap from codec descriptor\n", payload);
+        // _debug("Found codec %i _CodecsMap from codec descriptor", payload);
         return (iter->second);
     }
 
-    _debug ("Error cannont found codec %i in _CodecsMap from codec descriptor\n", payload);
+    _debug ("Error cannont found codec %i in _CodecsMap from codec descriptor", payload);
 
     return NULL;
 }
@@ -207,7 +207,7 @@ CodecDescriptor::scanCodecDirectory (void)
 
     for (i = 0 ; (unsigned int) i < dirToScan.size() ; i++) {
         std::string dirStr = dirToScan[i];
-        _debug ("Scanning %s to find audio codecs....\n",  dirStr.c_str());
+        _debug ("Scanning %s to find audio codecs....",  dirStr.c_str());
         DIR *dir = opendir (dirStr.c_str());
         AudioCodec* audioCodec;
 
@@ -218,7 +218,7 @@ CodecDescriptor::scanCodecDirectory (void)
                 tmp =  dirStruct -> d_name ;
                 if (tmp == CURRENT_DIR || tmp == PARENT_DIR) {} else {
                     if (seemsValid (tmp) && !alreadyInCache (tmp)) {
-                        //_debug("Codec : %s\n", tmp.c_str());
+                        //_debug("Codec : %s", tmp.c_str());
                         _Cache.push_back (tmp);
                         audioCodec = loadCodec (dirStr.append (tmp));
                         codecs.push_back (audioCodec);
@@ -237,7 +237,7 @@ CodecDescriptor::scanCodecDirectory (void)
 AudioCodec*
 CodecDescriptor::loadCodec (std::string path)
 {
-    //_debug("Load path %s\n", path.c_str());
+    //_debug("Load path %s", path.c_str());
     CodecHandlePointer p;
     using std::cerr;
     void * codecHandle = dlopen (path.c_str() , RTLD_LAZY);
@@ -265,7 +265,7 @@ CodecDescriptor::loadCodec (std::string path)
 void
 CodecDescriptor::unloadCodec (CodecHandlePointer p)
 {
-    // _debug("Unload codec %s\n", p.first->getCodecName().c_str());
+    // _debug("Unload codec %s", p.first->getCodecName().c_str());
     using std::cerr;
     destroy_t* destroyCodec = (destroy_t*) dlsym (p.second , "destroy");
 
diff --git a/sflphone-common/src/audio/codecs/gsmcodec.cpp b/sflphone-common/src/audio/codecs/gsmcodec.cpp
index 8543dec2b5..9116d76a94 100644
--- a/sflphone-common/src/audio/codecs/gsmcodec.cpp
+++ b/sflphone-common/src/audio/codecs/gsmcodec.cpp
@@ -42,10 +42,10 @@ class Gsm : public AudioCodec
             _bandwidth = 29.2;
 
             if (! (_decode_gsmhandle = gsm_create()))
-                printf ("ERROR: decode_gsm_create\n");
+                printf ("ERROR: decode_gsm_create");
 
             if (! (_encode_gsmhandle = gsm_create()))
-                printf ("AudioCodec: ERROR: encode_gsm_create\n");
+                printf ("AudioCodec: ERROR: encode_gsm_create");
         }
 
         Gsm (const Gsm&);
@@ -58,18 +58,18 @@ class Gsm : public AudioCodec
         }
 
         virtual int	codecDecode	(short * dst, unsigned char * src, unsigned int size) {
-            // _debug("Decoded by gsm \n");
+            // _debug("Decoded by gsm ");
             (void) size;
 
             if (gsm_decode (_decode_gsmhandle, (gsm_byte*) src, (gsm_signal*) dst) < 0)
-                printf ("ERROR: gsm_decode\n");
+                printf ("ERROR: gsm_decode");
 
             return 320;
         }
 
         virtual int	codecEncode	(unsigned char * dst, short * src, unsigned int size) {
 
-            // _debug("Encoded by gsm \n");
+            // _debug("Encoded by gsm ");
             (void) size;
             gsm_encode (_encode_gsmhandle, (gsm_signal*) src, (gsm_byte*) dst);
             return 33;
diff --git a/sflphone-common/src/audio/mainbuffer.cpp b/sflphone-common/src/audio/mainbuffer.cpp
index 3f2751b6ba..052e729259 100644
--- a/sflphone-common/src/audio/mainbuffer.cpp
+++ b/sflphone-common/src/audio/mainbuffer.cpp
@@ -63,7 +63,7 @@ CallIDSet* MainBuffer::getCallIDSet (CallID call_id)
 
 bool MainBuffer::createCallIDSet (CallID set_id)
 {
-    _debug ("---- MainBuffer::createCallIDSet %s\n", set_id.c_str());
+    _debug ("---- MainBuffer::createCallIDSet %s", set_id.c_str());
 
     CallIDSet* newCallIDSet = new CallIDSet;
 
@@ -77,21 +77,21 @@ bool MainBuffer::createCallIDSet (CallID set_id)
 bool MainBuffer::removeCallIDSet (CallID set_id)
 {
 
-    _debug ("---- MainBuffer::removeCallIDSet %s\n", set_id.c_str());
+    _debug ("---- MainBuffer::removeCallIDSet %s", set_id.c_str());
 
 
     CallIDSet* callid_set = getCallIDSet (set_id);
 
     if (callid_set != NULL) {
         if (_callIDMap.erase (set_id) != 0) {
-            _debug ("          callid set %s erased!\n", set_id.c_str());
+            _debug ("          callid set %s erased!", set_id.c_str());
             return true;
         } else {
-            _debug ("          error while removing callid set %s!\n", set_id.c_str());
+            _debug ("          error while removing callid set %s!", set_id.c_str());
             return false;
         }
     } else {
-        _debug ("          callid set %s does not exist!\n", set_id.c_str());
+        _debug ("          callid set %s does not exist!", set_id.c_str());
         return false;
     }
 
@@ -99,7 +99,7 @@ bool MainBuffer::removeCallIDSet (CallID set_id)
 
 void MainBuffer::addCallIDtoSet (CallID set_id, CallID call_id)
 {
-    _debug ("---- MainBuffer::addCallIDtoSet %s in %s\n", set_id.c_str(), call_id.c_str());
+    _debug ("---- MainBuffer::addCallIDtoSet %s in %s", set_id.c_str(), call_id.c_str());
 
     CallIDSet* callid_set = getCallIDSet (set_id);
     callid_set->insert (call_id);
@@ -108,18 +108,18 @@ void MainBuffer::addCallIDtoSet (CallID set_id, CallID call_id)
 
 void MainBuffer::removeCallIDfromSet (CallID set_id, CallID call_id)
 {
-    _debug ("---- MainBuffer::removeCallIDfromSet element %s from %s\n", call_id.c_str(), set_id.c_str());
+    _debug ("---- MainBuffer::removeCallIDfromSet element %s from %s", call_id.c_str(), set_id.c_str());
 
     CallIDSet* callid_set = getCallIDSet (set_id);
 
     if (callid_set != NULL) {
         if (callid_set->erase (call_id) != 0) {
-            _debug ("          callid %s erased from set %s!\n", call_id.c_str(), set_id.c_str());
+            _debug ("          callid %s erased from set %s!", call_id.c_str(), set_id.c_str());
         } else {
-            _debug ("          error while removing callid %s from set %s!\n", call_id.c_str(), set_id.c_str());
+            _debug ("          error while removing callid %s from set %s!", call_id.c_str(), set_id.c_str());
         }
     } else {
-        _debug ("          callid set %s does not exist!\n", set_id.c_str());
+        _debug ("          callid set %s does not exist!", set_id.c_str());
     }
 }
 
@@ -130,7 +130,7 @@ RingBuffer* MainBuffer::getRingBuffer (CallID call_id)
     RingBufferMap::iterator iter = _ringBufferMap.find (call_id);
 
     if (iter == _ringBufferMap.end()) {
-        // _debug("ringBuffer with ID: \"%s\" doesn't exist! \n", call_id.c_str());
+        // _debug("ringBuffer with ID: \"%s\" doesn't exist! ", call_id.c_str());
         return NULL;
     } else
         return iter->second;
@@ -140,7 +140,7 @@ RingBuffer* MainBuffer::getRingBuffer (CallID call_id)
 RingBuffer* MainBuffer::createRingBuffer (CallID call_id)
 {
 
-    _debug ("---- MainBuffer::createRingBuffer callid %s\n", call_id.c_str());
+    _debug ("---- MainBuffer::createRingBuffer callid %s", call_id.c_str());
 
     RingBuffer* newRingBuffer = new RingBuffer (SIZEBUF, call_id);
 
@@ -153,20 +153,20 @@ RingBuffer* MainBuffer::createRingBuffer (CallID call_id)
 bool MainBuffer::removeRingBuffer (CallID call_id)
 {
 
-    _debug ("---- MainBuffer::removeRingBuffer call_id %s\n", call_id.c_str());
+    _debug ("---- MainBuffer::removeRingBuffer call_id %s", call_id.c_str());
 
     RingBuffer* ring_buffer = getRingBuffer (call_id);
 
     if (ring_buffer != NULL) {
         if (_ringBufferMap.erase (call_id) != 0) {
-            _debug ("          ringbuffer %s removed!\n", call_id.c_str());
+            _debug ("          ringbuffer %s removed!", call_id.c_str());
             return true;
         } else {
-            _debug ("          error while deleting ringbuffer %s!\n", call_id.c_str());
+            _debug ("          error while deleting ringbuffer %s!", call_id.c_str());
             return false;
         }
     } else {
-        _debug ("          error ringbuffer %s does not exist!\n", call_id.c_str());
+        _debug ("          error ringbuffer %s does not exist!", call_id.c_str());
         return true;
     }
 }
@@ -177,7 +177,7 @@ void MainBuffer::bindCallID (CallID call_id1, CallID call_id2)
 
     ost::MutexLock guard (_mutex);
 
-    _debug ("---- MainBuffer::bindCallID %s and callid %s\n", call_id1.c_str(), call_id2.c_str());
+    _debug ("---- MainBuffer::bindCallID %s and callid %s", call_id1.c_str(), call_id2.c_str());
 
     RingBuffer* ring_buffer;
     CallIDSet* callid_set;
@@ -210,7 +210,7 @@ void MainBuffer::unBindCallID (CallID call_id1, CallID call_id2)
 
     ost::MutexLock guard (_mutex);
 
-    _debug ("---- MainBuffer::unBindCallID %s and callid %s\n", call_id1.c_str(), call_id2.c_str());
+    _debug ("---- MainBuffer::unBindCallID %s and callid %s", call_id1.c_str(), call_id2.c_str());
 
     removeCallIDfromSet (call_id1, call_id2);
     removeCallIDfromSet (call_id2, call_id1);
@@ -261,7 +261,7 @@ void MainBuffer::unBindAll (CallID call_id)
 
     CallIDSet::iterator iter_set = temp_set.begin();
 
-    _debug ("MainBuffer::unBindAll\n");
+    _debug ("MainBuffer::unBindAll");
 
     while (iter_set != temp_set.end()) {
         CallID call_id_in_set = *iter_set;
@@ -369,12 +369,12 @@ int MainBuffer::getData (void *buffer, int toCopy, unsigned short volume, CallID
 int MainBuffer::getDataByID (void *buffer, int toCopy, unsigned short volume, CallID call_id, CallID reader_id)
 {
 
-    // _debug("MainBuffer::getDataByID in buffer %s by %s \n", call_id.c_str(), reader_id.c_str());
+    // _debug("MainBuffer::getDataByID in buffer %s by %s ", call_id.c_str(), reader_id.c_str());
 
     RingBuffer* ring_buffer = getRingBuffer (call_id);
 
     if (ring_buffer == NULL) {
-        // _debug("Output RingBuffer ID: \"%s\" does not exist!\n", call_id.c_str());
+        // _debug("Output RingBuffer ID: \"%s\" does not exist!", call_id.c_str());
         return 0;
     }
 
@@ -396,22 +396,22 @@ int MainBuffer::availForGet (CallID call_id)
         return 0;
 
     if (callid_set->empty()) {
-        _debug ("CallIDSet with ID: \"%s\" is empty!\n", call_id.c_str());
+        _debug ("CallIDSet with ID: \"%s\" is empty!", call_id.c_str());
         return 0;
     }
 
     if (callid_set->size() == 1) {
         CallIDSet::iterator iter_id = callid_set->begin();
-        // _debug("MainBuffer::availForGet availForGetByID(%s,%s)\n", (*iter_id).c_str(), call_id.c_str());
+        // _debug("MainBuffer::availForGet availForGetByID(%s,%s)", (*iter_id).c_str(), call_id.c_str());
 
         if ( (call_id != default_id) && (*iter_id == call_id)) {
-            _debug ("This problem should not occur since we have %i element\n", (int) callid_set->size());
+            _debug ("This problem should not occur since we have %i element", (int) callid_set->size());
         }
 
         // else
         return availForGetByID (*iter_id, call_id);
     } else {
-        // _debug("CallIDSet with ID: \"%s\" is a conference!\n", call_id.c_str());
+        // _debug("CallIDSet with ID: \"%s\" is a conference!", call_id.c_str());
         int avail_bytes = 99999;
         int nb_bytes;
         CallIDSet::iterator iter_id = callid_set->begin();
@@ -433,14 +433,14 @@ int MainBuffer::availForGetByID (CallID call_id, CallID reader_id)
 {
 
     if ( (call_id != default_id) && (reader_id == call_id)) {
-        _debug ("**********************************************************************\n");
-        _debug ("Error an RTP session ring buffer is not supposed to have a readpointer on tiself\n");
+        _debug ("**********************************************************************");
+        _debug ("Error an RTP session ring buffer is not supposed to have a readpointer on tiself");
     }
 
     RingBuffer* ringbuffer = getRingBuffer (call_id);
 
     if (ringbuffer == NULL) {
-        _debug ("Error: ring buffer does not exist\n");
+        _debug ("Error: ring buffer does not exist");
         return 0;
     } else
         return ringbuffer->AvailForGet (reader_id);
@@ -450,7 +450,7 @@ int MainBuffer::availForGetByID (CallID call_id, CallID reader_id)
 
 int MainBuffer::discard (int toDiscard, CallID call_id)
 {
-    // _debug("MainBuffer::discard\n");
+    // _debug("MainBuffer::discard");
 
     ost::MutexLock guard (_mutex);
 
@@ -460,17 +460,17 @@ int MainBuffer::discard (int toDiscard, CallID call_id)
         return 0;
 
     if (callid_set->empty()) {
-        // _debug("CallIDSet with ID: \"%s\" is empty!\n", call_id.c_str());
+        // _debug("CallIDSet with ID: \"%s\" is empty!", call_id.c_str());
         return 0;
     }
 
 
     if (callid_set->size() == 1) {
         CallIDSet::iterator iter_id = callid_set->begin();
-        // _debug("Discard Data in \"%s\" RingBuffer for \"%s\" ReaderPointer\n",(*iter_id).c_str(),call_id.c_str());
+        // _debug("Discard Data in \"%s\" RingBuffer for \"%s\" ReaderPointer",(*iter_id).c_str(),call_id.c_str());
         return discardByID (toDiscard, *iter_id, call_id);
     } else {
-        // _debug("CallIDSet with ID: \"%s\" is a conference!\n", call_id.c_str());
+        // _debug("CallIDSet with ID: \"%s\" is a conference!", call_id.c_str());
         CallIDSet::iterator iter_id;
 
         for (iter_id = callid_set->begin(); iter_id != callid_set->end(); iter_id++) {
@@ -501,7 +501,7 @@ void MainBuffer::flush (CallID call_id)
 {
     ost::MutexLock guard (_mutex);
 
-    // _debug("MainBuffer::flush\n");
+    // _debug("MainBuffer::flush");
 
     CallIDSet* callid_set = getCallIDSet (call_id);
 
@@ -509,14 +509,14 @@ void MainBuffer::flush (CallID call_id)
         return;
 
     if (callid_set->empty()) {
-        // _debug("CallIDSet with ID: \"%s\" is empty!\n", call_id.c_str());
+        // _debug("CallIDSet with ID: \"%s\" is empty!", call_id.c_str());
     }
 
     if (callid_set->size() == 1) {
         CallIDSet::iterator iter_id = callid_set->begin();
         flushByID (*iter_id, call_id);
     } else {
-        // _debug("CallIDSet with ID: \"%s\" is a conference!\n", call_id.c_str());
+        // _debug("CallIDSet with ID: \"%s\" is a conference!", call_id.c_str());
         CallIDSet::iterator iter_id;
 
         for (iter_id = callid_set->begin(); iter_id != callid_set->end(); iter_id++) {
@@ -548,12 +548,12 @@ void MainBuffer::flushByID (CallID call_id, CallID reader_id)
 void MainBuffer::flushAllBuffers()
 {
 
-    // _debug("-------------------------- flushAllBuffers()\n");
+    // _debug("-------------------------- flushAllBuffers()");
 
     RingBufferMap::iterator iter_buffer = _ringBufferMap.begin();
 
     while (iter_buffer != _ringBufferMap.end()) {
-        // _debug("--------------------------    flushing: %s\n",iter_buffer->second->getBufferId().c_str());
+        // _debug("--------------------------    flushing: %s",iter_buffer->second->getBufferId().c_str());
 
         iter_buffer->second->flushAll();
 
@@ -564,7 +564,7 @@ void MainBuffer::flushAllBuffers()
 
 void MainBuffer::stateInfo()
 {
-    _debug ("MainBuffer state info\n");
+    _debug ("MainBuffer state info");
 
     CallIDMap::iterator iter_map = _callIDMap.begin();
 
@@ -585,7 +585,7 @@ void MainBuffer::stateInfo()
             }
         }
 
-        _debug ("%s\n", dbg_str.c_str());
+        _debug ("%s", dbg_str.c_str());
 
         iter_map++;
     }
diff --git a/sflphone-common/src/audio/pulseaudio/audiostream.cpp b/sflphone-common/src/audio/pulseaudio/audiostream.cpp
index 89986506ee..521574dca3 100644
--- a/sflphone-common/src/audio/pulseaudio/audiostream.cpp
+++ b/sflphone-common/src/audio/pulseaudio/audiostream.cpp
@@ -73,7 +73,7 @@ bool
 AudioStream::drainStream (void)
 {
     if (_audiostream) {
-        _debug ("Draining stream\n");
+        _debug ("Draining stream");
         pa_operation * operation;
 
         pa_threaded_mainloop_lock (_mainloop);
@@ -81,7 +81,7 @@ AudioStream::drainStream (void)
         if ( (operation = pa_stream_drain (_audiostream, success_cb, _mainloop))) {
             while (pa_operation_get_state (operation) != PA_OPERATION_DONE) {
                 if (!_context || pa_context_get_state (_context) != PA_CONTEXT_READY || !_audiostream || pa_stream_get_state (_audiostream) != PA_STREAM_READY) {
-                    _debug ("Connection died: %s\n", _context ? pa_strerror (pa_context_errno (_context)) : "NULL");
+                    _debug ("Connection died: %s", _context ? pa_strerror (pa_context_errno (_context)) : "NULL");
                     pa_operation_unref (operation);
                     break;
                 } else {
@@ -99,7 +99,7 @@ AudioStream::drainStream (void)
 bool
 AudioStream::disconnectStream (void)
 {
-    _debug ("Destroy audio streams\n");
+    _debug ("Destroy audio streams");
 
     // pa_threaded_mainloop_lock (_mainloop);
 
@@ -121,7 +121,7 @@ AudioStream::stream_state_callback (pa_stream* s, void* user_data)
 {
     pa_threaded_mainloop *m;
 
-    _debug ("AudioStream::stream_state_callback :: The state of the stream changed\n");
+    _debug ("AudioStream::stream_state_callback :: The state of the stream changed");
     assert (s);
 
     m = (pa_threaded_mainloop*) user_data;
@@ -130,26 +130,26 @@ AudioStream::stream_state_callback (pa_stream* s, void* user_data)
     switch (pa_stream_get_state (s)) {
 
         case PA_STREAM_CREATING:
-            _debug ("Stream is creating...\n");
+            _debug ("Stream is creating...");
             break;
 
         case PA_STREAM_TERMINATED:
-            _debug ("Stream is terminating...\n");
+            _debug ("Stream is terminating...");
             break;
 
         case PA_STREAM_READY:
-            _debug ("Stream successfully created, connected to %s\n", pa_stream_get_device_name (s));
+            _debug ("Stream successfully created, connected to %s", pa_stream_get_device_name (s));
             // pa_stream_cork( s, 0, NULL, NULL);
             break;
 
         case PA_STREAM_UNCONNECTED:
-            _debug ("Stream unconnected\n");
+            _debug ("Stream unconnected");
             break;
 
         case PA_STREAM_FAILED:
 
         default:
-            _debug ("Stream error - Sink/Source doesn't exists: %s\n" , pa_strerror (pa_context_errno (pa_stream_get_context (s))));
+            _debug ("Stream error - Sink/Source doesn't exists: %s" , pa_strerror (pa_context_errno (pa_stream_get_context (s))));
             exit (0);
             break;
     }
@@ -185,7 +185,7 @@ AudioStream::createStream (pa_context* c)
     pa_buffer_attr* attributes = (pa_buffer_attr*) malloc (sizeof (pa_buffer_attr));
 
     if (! (s = pa_stream_new (c, _streamDescription.c_str() , &sample_spec, &channel_map)))
-        _debug ("%s: pa_stream_new() failed : %s\n" , _streamDescription.c_str(), pa_strerror (pa_context_errno (c)));
+        _debug ("%s: pa_stream_new() failed : %s" , _streamDescription.c_str(), pa_strerror (pa_context_errno (c)));
 
     assert (s);
 
@@ -216,7 +216,7 @@ AudioStream::createStream (pa_context* c)
     } else if (_streamType == UPLOAD_STREAM) {
         pa_stream_connect_upload (s , 1024);
     } else {
-        _debug ("Stream type unknown \n");
+        _debug ("Stream type unknown ");
     }
 
     pa_stream_set_state_callback (s , stream_state_callback, _mainloop);
diff --git a/sflphone-common/src/audio/pulseaudio/pulselayer.cpp b/sflphone-common/src/audio/pulseaudio/pulselayer.cpp
index 8f5b94c5a0..b82a15428d 100644
--- a/sflphone-common/src/audio/pulseaudio/pulselayer.cpp
+++ b/sflphone-common/src/audio/pulseaudio/pulselayer.cpp
@@ -25,7 +25,7 @@ int framesPerBuffer = 2048;
 
 static  void playback_callback (pa_stream* s, size_t bytes, void* userdata)
 {
-    // _debug("playback_callback\n");
+    // _debug("playback_callback");
 
     assert (s && bytes);
     assert (bytes > 0);
@@ -35,7 +35,7 @@ static  void playback_callback (pa_stream* s, size_t bytes, void* userdata)
 
 static void capture_callback (pa_stream* s, size_t bytes, void* userdata)
 {
-    // _debug("capture_callback\n");
+    // _debug("capture_callback");
 
     assert (s && bytes);
     assert (bytes > 0);
@@ -46,25 +46,25 @@ static void capture_callback (pa_stream* s, size_t bytes, void* userdata)
 /*
 static void stream_suspended_callback (pa_stream *s UNUSED, void *userdata UNUSED)
 {
-    _debug("PulseLayer::Stream Suspended\n");
+    _debug("PulseLayer::Stream Suspended");
 }
 */
 
 /*
 static void stream_moved_callback(pa_stream *s UNUSED, void *userdata UNUSED)
 {
-    _debug("PulseLayer::Stream Moved\n");
+    _debug("PulseLayer::Stream Moved");
 }
 */
 
 static void playback_underflow_callback (pa_stream* s,  void* userdata UNUSED)
 {
-    _debug ("PulseLayer::Buffer Underflow\n");
+    _debug ("PulseLayer::Buffer Underflow");
     // const pa_timing_info* info = pa_stream_get_timing_info(s);
-    // _debug("         pa write_index: %l\n", (long)(info->write_index));
-    // _debug("         pa write_index_corupt (if not 0): %i\n",  info->write_index_corrupt);
-    // _debug("         pa read_index: %l\n", (long)(info->read_index));
-    // _debug("         pa read_index_corrupt (if not 0): %i\n", info->read_index_corrupt);
+    // _debug("         pa write_index: %l", (long)(info->write_index));
+    // _debug("         pa write_index_corupt (if not 0): %i",  info->write_index_corrupt);
+    // _debug("         pa read_index: %l", (long)(info->read_index));
+    // _debug("         pa read_index_corrupt (if not 0): %i", info->read_index_corrupt);
 
 
     // fill in audio buffer twice the prebuffering value to restart playback
@@ -77,7 +77,7 @@ static void playback_underflow_callback (pa_stream* s,  void* userdata UNUSED)
 
 static void playback_overflow_callback (pa_stream* s UNUSED, void* userdata UNUSED)
 {
-    _debug ("PulseLayer::Buffer OverFlow\n");
+    _debug ("PulseLayer::Buffer OverFlow");
     //PulseLayer* pulse = (PulseLayer*) userdata;
     // pa_stream_drop (s);
     // pa_stream_trigger (s, NULL, NULL);
@@ -91,7 +91,7 @@ PulseLayer::PulseLayer (ManagerImpl* manager)
         , playback()
         , record()
 {
-    _debug ("PulseLayer::Pulse audio constructor: Create context\n");
+    _debug ("PulseLayer::Pulse audio constructor: Create context");
 
     _urgentRingBuffer.createReadPointer();
     dcblocker = new DcBlocker();
@@ -116,7 +116,7 @@ PulseLayer::~PulseLayer (void)
 bool
 PulseLayer::closeLayer (void)
 {
-    _debug ("PulseLayer::closeLayer :: Destroy pulselayer\n");
+    _debug ("PulseLayer::closeLayer :: Destroy pulselayer");
 
     // Commenting the line below will make the
     // PulseLayer to close immediately, not
@@ -153,7 +153,7 @@ PulseLayer::closeLayer (void)
 void
 PulseLayer::connectPulseAudioServer (void)
 {
-    _debug ("PulseLayer::connectPulseAudioServer \n");
+    _debug ("PulseLayer::connectPulseAudioServer ");
 
     setenv ("PULSE_PROP_media.role", "phone", 1);
 
@@ -161,7 +161,7 @@ PulseLayer::connectPulseAudioServer (void)
 
     pa_threaded_mainloop_lock (m);
 
-    _debug ("Connect the context to the server\n");
+    _debug ("Connect the context to the server");
     pa_context_connect (context, NULL , flag , NULL);
 
     pa_context_set_state_callback (context, context_state_callback, this);
@@ -170,7 +170,7 @@ PulseLayer::connectPulseAudioServer (void)
     // Run the main loop
 
     if (pa_context_get_state (context) != PA_CONTEXT_READY) {
-        _debug ("Error connecting to pulse audio server\n");
+        _debug ("Error connecting to pulse audio server");
         // pa_threaded_mainloop_unlock (m);
     }
 
@@ -178,13 +178,13 @@ PulseLayer::connectPulseAudioServer (void)
 
     //serverinfo();
     //muteAudioApps(99);
-    _debug ("Context creation done\n");
+    _debug ("Context creation done");
 
 }
 
 void PulseLayer::context_state_callback (pa_context* c, void* user_data)
 {
-    _debug ("PulseLayer::context_state_callback ::The state of the context changed\n");
+    _debug ("PulseLayer::context_state_callback ::The state of the context changed");
     PulseLayer* pulse = (PulseLayer*) user_data;
     assert (c && pulse->m);
 
@@ -195,22 +195,22 @@ void PulseLayer::context_state_callback (pa_context* c, void* user_data)
         case PA_CONTEXT_AUTHORIZING:
 
         case PA_CONTEXT_SETTING_NAME:
-            _debug ("Waiting....\n");
+            _debug ("Waiting....");
             break;
 
         case PA_CONTEXT_READY:
             pulse->createStreams (c);
-            _debug ("Connection to PulseAudio server established\n");
+            _debug ("Connection to PulseAudio server established");
             break;
 
         case PA_CONTEXT_TERMINATED:
-            _debug ("Context terminated\n");
+            _debug ("Context terminated");
             break;
 
         case PA_CONTEXT_FAILED:
 
         default:
-            _debug (" Error : %s\n" , pa_strerror (pa_context_errno (c)));
+            _debug (" Error : %s" , pa_strerror (pa_context_errno (c)));
             pulse->disconnectAudioStream();
             exit (0);
             break;
@@ -219,7 +219,7 @@ void PulseLayer::context_state_callback (pa_context* c, void* user_data)
 
 bool PulseLayer::disconnectAudioStream (void)
 {
-    _debug (" PulseLayer::disconnectAudioStream( void ) \n");
+    _debug (" PulseLayer::disconnectAudioStream( void ) ");
 
     closePlaybackStream();
 
@@ -234,7 +234,7 @@ bool PulseLayer::disconnectAudioStream (void)
 
 bool PulseLayer::createStreams (pa_context* c)
 {
-    _debug ("PulseLayer::createStreams\n");
+    _debug ("PulseLayer::createStreams");
 
     PulseLayerType * playbackParam = new PulseLayerType();
     playbackParam->context = c;
@@ -334,27 +334,27 @@ void PulseLayer::startStream (void)
 
     if (!is_started) {
 
-        _debug ("PulseLayer::Start Stream\n");
+        _debug ("PulseLayer::Start Stream");
 
         if (!m) {
 
-            _debug ("Creating PulseAudio MainLoop\n");
+            _debug ("Creating PulseAudio MainLoop");
             m = pa_threaded_mainloop_new();
             assert (m);
 
             if (pa_threaded_mainloop_start (m) < 0) {
-                _debug ("Failed starting the mainloop\n");
+                _debug ("Failed starting the mainloop");
             }
         }
 
         if (!context) {
 
-            _debug ("Creating new PulseAudio Context\n");
+            _debug ("Creating new PulseAudio Context");
             pa_threaded_mainloop_lock (m);
             // Instanciate a context
 
             if (! (context = pa_context_new (pa_threaded_mainloop_get_api (m) , "SFLphone")))
-                _debug ("Error while creating the context\n");
+                _debug ("Error while creating the context");
 
             pa_threaded_mainloop_unlock (m);
 
@@ -381,7 +381,7 @@ PulseLayer::stopStream (void)
 
     if (is_started) {
 
-        _debug ("PulseLayer::Stop Audio Stream\n");
+        _debug ("PulseLayer::Stop Audio Stream");
         pa_stream_flush (playback->pulseStream(), NULL, NULL);
         pa_stream_flush (record->pulseStream(), NULL, NULL);
 
@@ -391,7 +391,7 @@ PulseLayer::stopStream (void)
 
         disconnectAudioStream();
 
-        _debug ("Disconnecting PulseAudio context\n");
+        _debug ("Disconnecting PulseAudio context");
 
         if (context) {
 
@@ -402,7 +402,7 @@ PulseLayer::stopStream (void)
             context = NULL;
         }
 
-        _debug ("Freeing Pulseaudio mainloop\n");
+        _debug ("Freeing Pulseaudio mainloop");
 
         if (m) {
             pa_threaded_mainloop_free (m);
@@ -420,7 +420,7 @@ PulseLayer::stopStream (void)
 
 // void PulseLayer::underflow (pa_stream* s UNUSED,  void* userdata UNUSED)
 //{
-//    _debug ("PulseLayer::Buffer Underflow\n");
+//    _debug ("PulseLayer::Buffer Underflow");
 //}
 
 /*
@@ -438,7 +438,7 @@ void PulseLayer::processPlaybackData (void)
     // Handle the data for the speakers
     if (playback && (playback->pulseStream()) && (pa_stream_get_state (playback->pulseStream()) == PA_STREAM_READY)) {
 
-        // _debug("PulseLayer::processPlaybackData()\n");
+        // _debug("PulseLayer::processPlaybackData()");
 
         // If the playback buffer is full, we don't overflow it; wait for it to have free space
         if (pa_stream_writable_size (playback->pulseStream()) == 0)
@@ -467,7 +467,7 @@ void PulseLayer::processData (void)
     // Handle the data for the speakers
     if (playback && (playback->pulseStream()) && (pa_stream_get_state (playback->pulseStream()) == PA_STREAM_READY)) {
 
-        // _debug("PulseLayer::processPlaybackData()\n");
+        // _debug("PulseLayer::processPlaybackData()");
 
         // If the playback buffer is full, we don't overflow it; wait for it to have free space
         if (pa_stream_writable_size (playback->pulseStream()) == 0)
@@ -499,17 +499,17 @@ void PulseLayer::writeToSpeaker (void)
 
 
     int writeableSize = pa_stream_writable_size (playback->pulseStream());
-    // _debug("PulseLayer writablesize : %i\n", writeableSize);
+    // _debug("PulseLayer writablesize : %i", writeableSize);
 
     if (writeableSize < 0)
-        _debug ("PulseLayer playback error : %s\n", pa_strerror (writeableSize));
+        _debug ("PulseLayer playback error : %s", pa_strerror (writeableSize));
 
 
     if (urgentAvailBytes > writeableSize) {
 
-        // _debug("urgentAvailBytes: %i\n", urgentAvailBytes);
+        // _debug("urgentAvailBytes: %i", urgentAvailBytes);
 
-        // _debug("Play Urgent!\n");
+        // _debug("Play Urgent!");
 
         out = (SFLDataFormat*) pa_xmalloc (writeableSize);
         _urgentRingBuffer.Get (out, writeableSize, 100);
@@ -533,11 +533,11 @@ void PulseLayer::writeToSpeaker (void)
 
         if (tone != 0) {
 
-            // _debug("PlayTone writeableSize: %i\n", writeableSize);
+            // _debug("PlayTone writeableSize: %i", writeableSize);
 
             if (playback->getStreamState() == PA_STREAM_READY) {
 
-                // _debug("Play Sine Tone!\n");
+                // _debug("Play Sine Tone!");
 
                 out = (SFLDataFormat*) pa_xmalloc (writeableSize);
                 int copied = tone->getNext (out, writeableSize / sizeof (SFLDataFormat), 100);
@@ -553,7 +553,7 @@ void PulseLayer::writeToSpeaker (void)
         else if (file_tone != 0) {
 
             if (playback->getStreamState() == PA_STREAM_READY) {
-                // _debug("Play File Tone!\n");
+                // _debug("Play File Tone!");
 
                 out = (SFLDataFormat*) pa_xmalloc (writeableSize);
                 int copied = file_tone->getNext (out, writeableSize / sizeof (SFLDataFormat), 100);
@@ -614,7 +614,7 @@ void PulseLayer::writeToSpeaker (void)
                     int nbSample = _converter->upsampleData ( (SFLDataFormat*) out, rsmpl_out, _mainBufferSampleRate, _audioSampleRate, nb_sample_down);
 
                     if ( (nbSample*sizeof (SFLDataFormat)) > (unsigned int) writeableSize)
-                        _debug ("Error: nbsbyte exceed buffer length\n");
+                        _debug ("Error: nbsbyte exceed buffer length");
 
                     // pa_threaded_mainloop_lock (m);
                     pa_stream_write (playback->pulseStream(), rsmpl_out, nbSample*sizeof (SFLDataFormat), NULL, 0, PA_SEEK_RELATIVE);
@@ -666,10 +666,10 @@ void PulseLayer::readFromMic (void)
 
     int readableSize = pa_stream_readable_size (record->pulseStream());
 
-    // _debug("readableSize: %i\n", readableSize);
+    // _debug("readableSize: %i", readableSize);
 
     if (pa_stream_peek (record->pulseStream() , (const void**) &data , &r) < 0 || !data) {
-        _debug ("pa_stream_peek() failed: %s\n" , pa_strerror (pa_context_errno (context)));
+        _debug ("pa_stream_peek() failed: %s" , pa_strerror (pa_context_errno (context)));
     }
 
     if (data != 0) {
@@ -683,7 +683,7 @@ void PulseLayer::readFromMic (void)
 
 
             SFLDataFormat* rsmpl_out = (SFLDataFormat*) pa_xmalloc (readableSize);
-            // _debug("Byte read: %i\n", r);
+            // _debug("Byte read: %i", r);
             int nbSample = r / sizeof (SFLDataFormat);
 
             int nb_sample_up = nbSample;
@@ -709,7 +709,7 @@ void PulseLayer::readFromMic (void)
     }
 
     if (pa_stream_drop (record->pulseStream()) < 0) {
-        //_debug("pa_stream_drop() failed: %s\n" , pa_strerror( pa_context_errno( context) ));
+        //_debug("pa_stream_drop() failed: %s" , pa_strerror( pa_context_errno( context) ));
     }
 
     // pa_threaded_mainloop_unlock (m);
@@ -717,10 +717,10 @@ void PulseLayer::readFromMic (void)
 
 static void retrieve_server_info (pa_context *c UNUSED, const pa_server_info *i, void *userdata UNUSED)
 {
-    _debug ("Server Info: Process owner : %s\n" , i->user_name);
-    _debug ("\t\tServer name : %s - Server version = %s\n" , i->server_name, i->server_version);
-    _debug ("\t\tDefault sink name : %s\n" , i->default_sink_name);
-    _debug ("\t\tDefault source name : %s\n" , i->default_source_name);
+    _debug ("Server Info: Process owner : %s" , i->user_name);
+    _debug ("\t\tServer name : %s - Server version = %s" , i->server_name, i->server_version);
+    _debug ("\t\tDefault sink name : %s" , i->default_sink_name);
+    _debug ("\t\tDefault source name : %s" , i->default_source_name);
 }
 
 static void reduce_sink_list_cb (pa_context *c UNUSED, const pa_sink_input_info *i, int eol, void *userdata)
@@ -728,10 +728,10 @@ static void reduce_sink_list_cb (pa_context *c UNUSED, const pa_sink_input_info
     PulseLayer* pulse = (PulseLayer*) userdata;
 
     if (!eol) {
-        //_debug("Sink Info: index : %i\n" , i->index);
-        //_debug("\t\tClient : %i\n" , i->client);
-        //_debug("\t\tVolume : %i\n" , i->volume.values[0]);
-        //_debug("\t\tChannels : %i\n" , i->volume.channels);
+        //_debug("Sink Info: index : %i" , i->index);
+        //_debug("\t\tClient : %i" , i->client);
+        //_debug("\t\tVolume : %i" , i->volume.values[0]);
+        //_debug("\t\tChannels : %i" , i->volume.channels);
         if (strcmp (i->name , PLAYBACK_STREAM_NAME) != 0)
             pulse->setSinkVolume (i->index , i->volume.channels, 10);
     }
@@ -742,11 +742,11 @@ static void restore_sink_list_cb (pa_context *c UNUSED, const pa_sink_input_info
     PulseLayer* pulse = (PulseLayer*) userdata;
 
     if (!eol) {
-        //_debug("Sink Info: index : %i\n" , i->index);
-        //_debug("\t\tSink name : -%s-\n" , i->name);
-        //_debug("\t\tClient : %i\n" , i->client);
-        //_debug("\t\tVolume : %i\n" , i->volume.values[0]);
-        //_debug("\t\tChannels : %i\n" , i->volume.channels);
+        //_debug("Sink Info: index : %i" , i->index);
+        //_debug("\t\tSink name : -%s-" , i->name);
+        //_debug("\t\tClient : %i" , i->client);
+        //_debug("\t\tVolume : %i" , i->volume.values[0]);
+        //_debug("\t\tChannels : %i" , i->volume.channels);
         if (strcmp (i->name , PLAYBACK_STREAM_NAME) != 0)
             pulse->setSinkVolume (i->index , i->volume.channels, 100);
     }
@@ -806,7 +806,7 @@ void PulseLayer::setSinkVolume (int index, int channels, int volume)
     pa_volume_t vol = PA_VOLUME_NORM * ( (double) volume / 100) ;
 
     pa_cvolume_set (&cvolume , channels , vol);
-    _debug ("Set sink volume of index %i\n" , index);
+    _debug ("Set sink volume of index %i" , index);
     pa_context_set_sink_input_volume (context, index, &cvolume, NULL, NULL) ;
 
 }
@@ -818,7 +818,7 @@ void PulseLayer::setSourceVolume (int index, int channels, int volume)
     pa_volume_t vol = PA_VOLUME_NORM * ( (double) volume / 100) ;
 
     pa_cvolume_set (&cvolume , channels , vol);
-    _debug ("Set source volume of index %i\n" , index);
+    _debug ("Set source volume of index %i" , index);
     pa_context_set_source_volume_by_index (context, index, &cvolume, NULL, NULL);
 
 }
diff --git a/sflphone-common/src/audio/ringbuffer.cpp b/sflphone-common/src/audio/ringbuffer.cpp
index 0eb146f397..6e08859c70 100644
--- a/sflphone-common/src/audio/ringbuffer.cpp
+++ b/sflphone-common/src/audio/ringbuffer.cpp
@@ -54,7 +54,7 @@ RingBuffer::~RingBuffer()
 void
 RingBuffer::flush (CallID call_id)
 {
-    _debug ("flush: reinit \"%s\" readpointer in \"%s\" ringbuffer\n", call_id.c_str(), buffer_id.c_str());
+    _debug ("flush: reinit \"%s\" readpointer in \"%s\" ringbuffer", call_id.c_str(), buffer_id.c_str());
     storeReadPointer (mEnd, call_id);
 }
 
@@ -62,14 +62,14 @@ RingBuffer::flush (CallID call_id)
 void
 RingBuffer::flushAll ()
 {
-    // _debug("flushall: reinit all readpointer in \"%s\" ringbuffer\n", buffer_id.c_str());
+    // _debug("flushall: reinit all readpointer in \"%s\" ringbuffer", buffer_id.c_str());
 
-    // _debug("------------------------------ flushAll() in \"%s\" ringbuffer\n", buffer_id.c_str());
+    // _debug("------------------------------ flushAll() in \"%s\" ringbuffer", buffer_id.c_str());
 
     ReadPointer::iterator iter_pointer = _readpointer.begin();
 
     while (iter_pointer != _readpointer.end()) {
-        // _debug("------------------------------     reinit readpointer %s\n", iter_pointer->first.c_str());
+        // _debug("------------------------------     reinit readpointer %s", iter_pointer->first.c_str());
         iter_pointer->second = mEnd;
 
         iter_pointer++;
@@ -89,8 +89,8 @@ RingBuffer::putLen()
 
     int length = (mEnd + mBufferSize - mStart) % mBufferSize;
 
-    // _debug("RingBuffer::putLen length %i\n", length);
-    // _debug("    *RingBuffer::putLen: buffer_id %s, mStart %i, mEnd %i, length %i, buffersie %i\n", buffer_id.c_str(), mStart, mEnd, length, mBufferSize);
+    // _debug("RingBuffer::putLen length %i", length);
+    // _debug("    *RingBuffer::putLen: buffer_id %s, mStart %i, mEnd %i, length %i, buffersie %i", buffer_id.c_str(), mStart, mEnd, length, mBufferSize);
     return length;
 }
 
@@ -101,7 +101,7 @@ RingBuffer::getLen (CallID call_id)
     int mStart = getReadPointer (call_id);
 
     int length = (mEnd + mBufferSize - mStart) % mBufferSize;
-    // _debug("    *RingBuffer::getLen: buffer_id %s, call_id %s, mStart %i, mEnd %i, length %i, buffersie %i\n", buffer_id.c_str(), call_id.c_str(), mStart, mEnd, length, mBufferSize);
+    // _debug("    *RingBuffer::getLen: buffer_id %s, call_id %s, mStart %i, mEnd %i, length %i, buffersie %i", buffer_id.c_str(), call_id.c_str(), mStart, mEnd, length, mBufferSize);
     return length;
 
 }
@@ -111,7 +111,7 @@ RingBuffer::debug()
 {
     int mStart = getSmallestReadPointer();
 
-    _debug ("Start=%d; End=%d; BufferSize=%d\n", mStart, mEnd, mBufferSize);
+    _debug ("Start=%d; End=%d; BufferSize=%d", mStart, mEnd, mBufferSize);
 }
 
 int
@@ -121,17 +121,17 @@ RingBuffer::getReadPointer (CallID call_id)
     if (getNbReadPointer() == 0)
         return 0;
 
-    // _debug("RingBuffer::getReadPointer() id %s\n", call_id.c_str());
+    // _debug("RingBuffer::getReadPointer() id %s", call_id.c_str());
 
     ReadPointer::iterator iter = _readpointer.find (call_id);
 
     if (iter == _readpointer.end()) {
-        // _debug("                RingBuffer::getReadPointer Error read pointer size: %i\n", _readpointer.size());
-        // _debug("                RingBuffer::getReadPointer Error read pointer \"%s\" is null\n", call_id.c_str());
+        // _debug("                RingBuffer::getReadPointer Error read pointer size: %i", _readpointer.size());
+        // _debug("                RingBuffer::getReadPointer Error read pointer \"%s\" is null", call_id.c_str());
         ReadPointer::iterator iter2;
 
         for (iter2 = _readpointer.begin(); iter2 != _readpointer.end(); iter2++) {
-            // x_debug("                RingBuffer::getReadPointer list avail pointer \"%s\"\n", iter2->first.c_str());
+            // x_debug("                RingBuffer::getReadPointer list avail pointer \"%s\"", iter2->first.c_str());
         }
 
         return 0;
@@ -169,9 +169,9 @@ RingBuffer::storeReadPointer (int pointer_value, CallID call_id)
 
     if (iter != _readpointer.end()) {
         iter->second = pointer_value;
-        // _debug("store read pointer call_id %s, size: %i \n",call_id.c_str(), _readpointer.size());
+        // _debug("store read pointer call_id %s, size: %i ",call_id.c_str(), _readpointer.size());
     } else {
-        _debug ("storeReadPointer: Cannot find \"%s\" readPointer in \"%s\" ringbuffer\n", call_id.c_str(), buffer_id.c_str());
+        _debug ("storeReadPointer: Cannot find \"%s\" readPointer in \"%s\" ringbuffer", call_id.c_str(), buffer_id.c_str());
     }
 
 }
@@ -181,10 +181,10 @@ void
 RingBuffer::createReadPointer (CallID call_id)
 {
 
-    _debug ("---- createReadPointer ringbuffer_id %s, call_id %s\n", buffer_id.c_str(), call_id.c_str());
+    _debug ("---- createReadPointer ringbuffer_id %s, call_id %s", buffer_id.c_str(), call_id.c_str());
 
     _readpointer.insert (pair<CallID, int> (call_id, mEnd));
-    _debug ("---- createReadPointer ringbuffer_id %s, size %i\n", buffer_id.c_str(), (int) _readpointer.size());
+    _debug ("---- createReadPointer ringbuffer_id %s, size %i", buffer_id.c_str(), (int) _readpointer.size());
 
 }
 
@@ -193,10 +193,10 @@ void
 RingBuffer::removeReadPointer (CallID call_id)
 {
 
-    _debug ("---- removeReadPointer ringbuffer_id %s, call_id %s\n", buffer_id.c_str(), call_id.c_str());
+    _debug ("---- removeReadPointer ringbuffer_id %s, call_id %s", buffer_id.c_str(), call_id.c_str());
 
     _readpointer.erase (call_id);
-    _debug ("---- removeReadPointer ringbuffer_id %s, size %i\n", buffer_id.c_str(), (int) _readpointer.size());
+    _debug ("---- removeReadPointer ringbuffer_id %s, size %i", buffer_id.c_str(), (int) _readpointer.size());
 
 }
 
@@ -227,8 +227,8 @@ int
 RingBuffer::AvailForPut()
 {
     // Always keep 4 bytes safe (?)
-    // z_debug("RingBuffer::AvailForPut: putLen %i\n", putLen());
-    // _debug("RingBuffer::AvailForPut %s --------------------\n", buffer_id.c_str());
+    // z_debug("RingBuffer::AvailForPut: putLen %i", putLen());
+    // _debug("RingBuffer::AvailForPut %s --------------------", buffer_id.c_str());
     return (mBufferSize-4) - putLen();
 }
 
@@ -241,9 +241,9 @@ RingBuffer::Put (void* buffer, int toCopy, unsigned short volume)
     int block;
     int copied;
     int pos;
-    // _debug("RingBuffer::Put buffer_id %s, call_id %s --------------------\n", buffer_id.c_str(), call_id.c_str());
+    // _debug("RingBuffer::Put buffer_id %s, call_id %s --------------------", buffer_id.c_str(), call_id.c_str());
     int len = putLen();
-    // _debug("    RingBuffer::Put bufferid %s, putlen %i\n", buffer_id.c_str(), len);
+    // _debug("    RingBuffer::Put bufferid %s, putlen %i", buffer_id.c_str(), len);
 
     if (toCopy > (mBufferSize-4) - len)
         toCopy = (mBufferSize-4) - len;
@@ -302,7 +302,7 @@ int
 RingBuffer::AvailForGet (CallID call_id)
 {
     // Used space
-    // _debug("RingBuffer::AvailForGet buffer_id %s, call_id %s --------------------\n", buffer_id.c_str(), call_id.c_str());
+    // _debug("RingBuffer::AvailForGet buffer_id %s, call_id %s --------------------", buffer_id.c_str(), call_id.c_str());
     return getLen (call_id);
 }
 
@@ -323,10 +323,10 @@ RingBuffer::Get (void *buffer, int toCopy, unsigned short volume, CallID call_id
 
     int copied;
 
-    // _debug("RingBuffer::Get buffer_id %s, call_id %s --------------------\n", buffer_id.c_str(), call_id.c_str());
+    // _debug("RingBuffer::Get buffer_id %s, call_id %s --------------------", buffer_id.c_str(), call_id.c_str());
     int len = getLen (call_id);
 
-    // _debug("    RingBuffer::Get bufferid %s, getlen %i\n", buffer_id.c_str(), len);
+    // _debug("    RingBuffer::Get bufferid %s, getlen %i", buffer_id.c_str(), len);
 
     if (toCopy > len)
         toCopy = len;
@@ -375,7 +375,7 @@ RingBuffer::Get (void *buffer, int toCopy, unsigned short volume, CallID call_id
 int
 RingBuffer::Discard (int toDiscard, CallID call_id)
 {
-    // _debug("RingBuffer::Discard buffer_id %s, call_id %s --------------------\n", buffer_id.c_str(), call_id.c_str());
+    // _debug("RingBuffer::Discard buffer_id %s, call_id %s --------------------", buffer_id.c_str(), call_id.c_str());
     int len = getLen (call_id);
 
     int mStart = getReadPointer (call_id);
diff --git a/sflphone-common/src/audio/samplerateconverter.cpp b/sflphone-common/src/audio/samplerateconverter.cpp
index 29a3cc286b..8d115a2556 100644
--- a/sflphone-common/src/audio/samplerateconverter.cpp
+++ b/sflphone-common/src/audio/samplerateconverter.cpp
@@ -104,7 +104,7 @@ int SamplerateConverter::upsampleData (SFLDataFormat* dataIn , SFLDataFormat* da
 {
 
     double upsampleFactor = (double) samplerate2 / samplerate1 ;
-    //_debug("factor = %f\n" , upsampleFactor);
+    //_debug("factor = %f" , upsampleFactor);
     int nbSamplesMax = (int) (samplerate2 * getFramesize() / 1000);
     nbSamplesMax = nbSamplesMax*4;
 
@@ -116,16 +116,16 @@ int SamplerateConverter::upsampleData (SFLDataFormat* dataIn , SFLDataFormat* da
         src_data.output_frames = (int) floor (upsampleFactor * nbSamples);
         src_data.src_ratio = upsampleFactor;
         src_data.end_of_input = 0; // More data will come
-        // _debug("    upsample %d %d %f %d\n" , src_data.input_frames , src_data.output_frames, src_data.src_ratio , nbSamples);
+        // _debug("    upsample %d %d %f %d" , src_data.input_frames , src_data.output_frames, src_data.src_ratio , nbSamples);
         // Override libsamplerate conversion function
         Short2FloatArray (dataIn , _floatBufferDownSpkr, nbSamples);
         //src_short_to_float_array (dataIn , _floatBufferDownSpkr, nbSamples);
-        //_debug("upsample %d %f %d\n" ,  src_data.output_frames, src_data.src_ratio , nbSamples);
+        //_debug("upsample %d %f %d" ,  src_data.output_frames, src_data.src_ratio , nbSamples);
         src_process (_src_state_spkr, &src_data);
-        // _debug("    upsample %d %d %d\n" , samplerate1, samplerate2 , nbSamples);
+        // _debug("    upsample %d %d %d" , samplerate1, samplerate2 , nbSamples);
         nbSamples  = (src_data.output_frames_gen > nbSamplesMax) ? nbSamplesMax : src_data.output_frames_gen;
         src_float_to_short_array (_floatBufferUpSpkr, dataOut, nbSamples);
-        //_debug("upsample %d %d %d\n" , samplerate1, samplerate2 , nbSamples);
+        //_debug("upsample %d %d %d" , samplerate1, samplerate2 , nbSamples);
     }
 
     return nbSamples;
@@ -136,7 +136,7 @@ int SamplerateConverter::downsampleData (SFLDataFormat* dataIn , SFLDataFormat*
 {
 
     double downsampleFactor = (double) samplerate1 / samplerate2;
-    //_debug("factor = %f\n" , downsampleFactor);
+    //_debug("factor = %f" , downsampleFactor);
     int nbSamplesMax = (int) (samplerate1 * getFramesize() / 1000);
 
     nbSamplesMax = nbSamplesMax*4;
@@ -149,15 +149,15 @@ int SamplerateConverter::downsampleData (SFLDataFormat* dataIn , SFLDataFormat*
         src_data.output_frames = (int) floor (downsampleFactor * nbSamples);
         src_data.src_ratio = downsampleFactor;
         src_data.end_of_input = 0; // More data will come
-        //_debug("downsample %d %f %d\n" ,  src_data.output_frames, src_data.src_ratio , nbSamples);
+        //_debug("downsample %d %f %d" ,  src_data.output_frames, src_data.src_ratio , nbSamples);
         // Override libsamplerate conversion function
         Short2FloatArray (dataIn , _floatBufferUpMic, nbSamples);
         //src_short_to_float_array (dataIn, _floatBufferUpMic, nbSamples);
-        //_debug("downsample %d %f %d\n" ,  src_data.output_frames, src_data.src_ratio , nbSamples);
+        //_debug("downsample %d %f %d" ,  src_data.output_frames, src_data.src_ratio , nbSamples);
         src_process (_src_state_mic, &src_data);
-        //_debug("downsample %d %f %d\n" ,  src_data.output_frames, src_data.src_ratio , nbSamples);
+        //_debug("downsample %d %f %d" ,  src_data.output_frames, src_data.src_ratio , nbSamples);
         nbSamples  = (src_data.output_frames_gen > nbSamplesMax) ? nbSamplesMax : src_data.output_frames_gen;
-        //_debug("downsample %d %f %d\n" ,  src_data.output_frames, src_data.src_ratio , nbSamples);
+        //_debug("downsample %d %f %d" ,  src_data.output_frames, src_data.src_ratio , nbSamples);
         src_float_to_short_array (_floatBufferDownMic , dataOut , nbSamples);
     }
 
diff --git a/sflphone-common/src/audio/sound/audiofile.cpp b/sflphone-common/src/audio/sound/audiofile.cpp
index 136938a1a5..f11b43cbe6 100644
--- a/sflphone-common/src/audio/sound/audiofile.cpp
+++ b/sflphone-common/src/audio/sound/audiofile.cpp
@@ -63,7 +63,7 @@ AudioFile::loadFile (const std::string& filename, AudioCodec* codec , unsigned i
 
     // no filename to load
     if (filename.empty()) {
-        _debug ("Unable to open audio file: filename is empty\n");
+        _debug ("Unable to open audio file: filename is empty");
         return false;
     }
 
@@ -73,7 +73,7 @@ AudioFile::loadFile (const std::string& filename, AudioCodec* codec , unsigned i
 
     if (!file.is_open()) {
         // unable to load the file
-        _debug ("Unable to open audio file %s\n", filename.c_str());
+        _debug ("Unable to open audio file %s", filename.c_str());
         return false;
     }
 
diff --git a/sflphone-common/src/conference.cpp b/sflphone-common/src/conference.cpp
index 6266a30323..667664dfb6 100644
--- a/sflphone-common/src/conference.cpp
+++ b/sflphone-common/src/conference.cpp
@@ -71,7 +71,7 @@ void Conference::setState (ConferenceState state)
 void Conference::add (CallID participant_id)
 {
 
-    _debug ("---- Conference:: add participant %s\n", participant_id.c_str());
+    _debug ("---- Conference:: add participant %s", participant_id.c_str());
 
     _participants.insert (participant_id);
 
@@ -82,7 +82,7 @@ void Conference::add (CallID participant_id)
 void Conference::remove (CallID participant_id)
 {
 
-    _debug ("---- Conference::remove participant %s\n", participant_id.c_str());
+    _debug ("---- Conference::remove participant %s", participant_id.c_str());
 
     _participants.erase (participant_id);
 
@@ -100,7 +100,7 @@ void Conference::bindParticipant (CallID participant_id)
 
             if (participant_id != (*iter)) {
 
-                _debug ("---- Conference:: bind callid %s with %s in conference add\n", participant_id.c_str(), (*iter).c_str());
+                _debug ("---- Conference:: bind callid %s with %s in conference add", participant_id.c_str(), (*iter).c_str());
                 Manager::instance().getAudioDriver()->getMainBuffer()->bindCallID (participant_id, *iter);
             }
 
@@ -109,7 +109,7 @@ void Conference::bindParticipant (CallID participant_id)
 
     }
 
-    _debug ("---- Conference::bind callid %s with default_id in conference add\n", participant_id.c_str());
+    _debug ("---- Conference::bind callid %s with default_id in conference add", participant_id.c_str());
 
     Manager::instance().getAudioDriver()->getMainBuffer()->bindCallID (participant_id);
 
diff --git a/sflphone-common/src/config/config.cpp b/sflphone-common/src/config/config.cpp
index ec3f7bab8d..80ede64799 100644
--- a/sflphone-common/src/config/config.cpp
+++ b/sflphone-common/src/config/config.cpp
@@ -26,6 +26,7 @@
 #include <sys/stat.h>
 #include <errno.h>
 #include <iostream>
+#include <string.h>
 
 namespace Conf
 {
@@ -59,7 +60,7 @@ void ConfigTree::addDefaultValue (const std::pair<std::string, std::string>& tok
 
 std::string ConfigTree::getDefaultValue (const std::string& key)
 {
-    _debug ("Getting default value for %s\n", key.c_str());
+    _debug ("Getting default value for %s", key.c_str());
     std::map<std::string, std::string>::iterator it;
     it = _defaultValueMap.find (key);
 
@@ -147,7 +148,7 @@ ConfigTree::getConfigTreeItemValue (const std::string& section, const std::strin
         return item->getValue();
     }
 
-    _debug ("Option doesn't exist: [%s] %s\n", section.c_str(), itemName.c_str());
+    _debug ("Option doesn't exist: [%s] %s", section.c_str(), itemName.c_str());
 
     return getDefaultValue (itemName);
 }
@@ -292,7 +293,7 @@ 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));
+        _debug ("Failed to set permission on configuration file because: %s",strerror (errno));
     }
 
     return true;
@@ -373,7 +374,7 @@ 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));
+        _debug ("Failed to set permission on configuration file because: %s",strerror (errno));
     }
 
     return 1;
diff --git a/sflphone-common/src/dbus/callmanager.cpp b/sflphone-common/src/dbus/callmanager.cpp
index b57968d698..805731809d 100644
--- a/sflphone-common/src/dbus/callmanager.cpp
+++ b/sflphone-common/src/dbus/callmanager.cpp
@@ -39,31 +39,31 @@ CallManager::placeCall (const std::string& accountID,
                         const std::string& callID,
                         const std::string& to)
 {
-    _debug ("CallManager::placeCall received\n");
+    _debug ("CallManager::placeCall received");
     // Check if a destination number is available
 
-    if (to == "")   _debug ("No number entered - Call stopped\n");
+    if (to == "")   _debug ("No number entered - Call stopped");
     else            Manager::instance().outgoingCall (accountID, callID, to);
 }
 
 void
 CallManager::refuse (const std::string& callID)
 {
-    _debug ("CallManager::refuse received\n");
+    _debug ("CallManager::refuse received");
     Manager::instance().refuseCall (callID);
 }
 
 void
 CallManager::accept (const std::string& callID)
 {
-    _debug ("CallManager::accept received\n");
+    _debug ("CallManager::accept received");
     Manager::instance().answerCall (callID);
 }
 
 void
 CallManager::hangUp (const std::string& callID)
 {
-    _debug ("CallManager::hangUp received %s\n", callID.c_str());
+    _debug ("CallManager::hangUp received %s", callID.c_str());
     Manager::instance().hangupCall (callID);
 
 }
@@ -71,7 +71,7 @@ CallManager::hangUp (const std::string& callID)
 void
 CallManager::hangUpConference (const std::string& confID)
 {
-    _debug ("CallManager::hangUpConference received %s\n", confID.c_str());
+    _debug ("CallManager::hangUpConference received %s", confID.c_str());
     Manager::instance().hangupConference (confID);
 
 }
@@ -80,7 +80,7 @@ CallManager::hangUpConference (const std::string& confID)
 void
 CallManager::hold (const std::string& callID)
 {
-    _debug ("CallManager::hold received %s\n", callID.c_str());
+    _debug ("CallManager::hold received %s", callID.c_str());
     Manager::instance().onHoldCall (callID);
 
 }
@@ -88,14 +88,14 @@ CallManager::hold (const std::string& callID)
 void
 CallManager::unhold (const std::string& callID)
 {
-    _debug ("CallManager::unhold received %s\n", callID.c_str());
+    _debug ("CallManager::unhold received %s", callID.c_str());
     Manager::instance().offHoldCall (callID);
 }
 
 void
 CallManager::transfert (const std::string& callID, const std::string& to)
 {
-    _debug ("CallManager::transfert received\n");
+    _debug ("CallManager::transfert received");
     Manager::instance().transferCall (callID, to);
 }
 
@@ -104,7 +104,7 @@ CallManager::transfert (const std::string& callID, const std::string& to)
 void
 CallManager::setVolume (const std::string& device, const double& value)
 {
-    _debug ("CallManager::setVolume received\n");
+    _debug ("CallManager::setVolume received");
 
     if (device == "speaker") {
         Manager::instance().setSpkrVolume ( (int) (value*100.0));
@@ -118,13 +118,13 @@ CallManager::setVolume (const std::string& device, const double& value)
 double
 CallManager::getVolume (const std::string& device)
 {
-    _debug ("CallManager::getVolume received \n");
+    _debug ("CallManager::getVolume received ");
 
     if (device == "speaker") {
-        _debug ("Current speaker = %d\n", Manager::instance().getSpkrVolume());
+        _debug ("Current speaker = %d", Manager::instance().getSpkrVolume());
         return Manager::instance().getSpkrVolume() /100.0;
     } else if (device == "mic") {
-        _debug ("Current mic = %d\n", Manager::instance().getMicVolume());
+        _debug ("Current mic = %d", Manager::instance().getMicVolume());
         return Manager::instance().getMicVolume() /100.0;
     }
 
@@ -134,63 +134,63 @@ CallManager::getVolume (const std::string& device)
 void
 CallManager::joinParticipant (const std::string& sel_callID, const std::string& drag_callID)
 {
-    _debug ("CallManager::joinParticipant received %s, %s\n", sel_callID.c_str(), drag_callID.c_str());
+    _debug ("CallManager::joinParticipant received %s, %s", sel_callID.c_str(), drag_callID.c_str());
     Manager::instance().joinParticipant (sel_callID, drag_callID);
 }
 
 void
 CallManager::addParticipant (const std::string& callID, const std::string& confID)
 {
-    _debug ("CallManager::addParticipant received %s, %s\n", callID.c_str(), confID.c_str());
+    _debug ("CallManager::addParticipant received %s, %s", callID.c_str(), confID.c_str());
     Manager::instance().addParticipant (callID, confID);
 }
 
 void
 CallManager::addMainParticipant (const std::string& confID)
 {
-    _debug ("CallManager::addMainParticipant received %s\n", confID.c_str());
+    _debug ("CallManager::addMainParticipant received %s", confID.c_str());
     Manager::instance().addMainParticipant (confID);
 }
 
 void
 CallManager::detachParticipant (const std::string& callID)
 {
-    _debug ("CallManager::detachParticipant received %s\n", callID.c_str());
+    _debug ("CallManager::detachParticipant received %s", callID.c_str());
     Manager::instance().detachParticipant (callID, "");
 }
 
 void
 CallManager::joinConference (const std::string& sel_confID, const std::string& drag_confID)
 {
-    _debug ("CallManager::joinConference received %s, %s\n", sel_confID.c_str(), drag_confID.c_str());
+    _debug ("CallManager::joinConference received %s, %s", sel_confID.c_str(), drag_confID.c_str());
     Manager::instance().joinConference (sel_confID, drag_confID);
 }
 
 void
 CallManager::holdConference (const std::string& confID)
 {
-    _debug ("CallManager::holdConference received %s\n", confID.c_str());
+    _debug ("CallManager::holdConference received %s", confID.c_str());
     Manager::instance().holdConference (confID);
 }
 
 void
 CallManager::unholdConference (const std::string& confID)
 {
-    _debug ("CallManager::unHoldConference received %s\n", confID.c_str());
+    _debug ("CallManager::unHoldConference received %s", confID.c_str());
     Manager::instance().unHoldConference (confID);
 }
 
 std::map< std::string, std::string >
 CallManager::getConferenceDetails (const std::string& callID)
 {
-    _debug ("CallManager::getCallDetails received\n");
+    _debug ("CallManager::getCallDetails received");
     return Manager::instance().getConferenceDetails (callID);
 }
 
 std::vector< std::string >
 CallManager::getConferenceList (void)
 {
-    _debug ("CallManager::getConferenceList\n");
+    _debug ("CallManager::getConferenceList");
     return Manager::instance().getConferenceList();
 }
 
@@ -203,14 +203,14 @@ CallManager::getParticipantList (const std::string& confID)
 void
 CallManager::setRecording (const std::string& callID)
 {
-    _debug ("CallManager::setRecording received\n");
+    _debug ("CallManager::setRecording received");
     Manager::instance().setRecordingCall (callID);
 }
 
 bool
 CallManager::getIsRecording (const std::string& callID)
 {
-    _debug ("CallManager::getIsRecording received \n");
+    _debug ("CallManager::getIsRecording received ");
     return Manager::instance().isRecording (callID);
 }
 
@@ -218,7 +218,7 @@ CallManager::getIsRecording (const std::string& callID)
 std::string
 CallManager::getCurrentCodecName (const std::string& callID)
 {
-    _debug ("CallManager::getCurrentCodecName received %s \n",Manager::instance().getCurrentCodecName (callID).c_str());
+    _debug ("CallManager::getCurrentCodecName received %s ",Manager::instance().getCurrentCodecName (callID).c_str());
     return Manager::instance().getCurrentCodecName (callID).c_str();
 }
 
@@ -226,7 +226,7 @@ CallManager::getCurrentCodecName (const std::string& callID)
 std::map< std::string, std::string >
 CallManager::getCallDetails (const std::string& callID)
 {
-    _debug ("CallManager::getCallDetails received\n");
+    _debug ("CallManager::getCallDetails received");
     return Manager::instance().getCallDetails (callID);
 }
 
@@ -239,7 +239,7 @@ CallManager::getCallList (void)
 std::string
 CallManager::getCurrentCallID()
 {
-    _debug ("CallManager::getCurrentCallID received\n");
+    _debug ("CallManager::getCurrentCallID received");
     return Manager::instance().getCurrentCallId();
 }
 
@@ -271,7 +271,7 @@ sfl::AudioZrtpSession * CallManager::getAudioZrtpSession (const std::string& cal
     link = dynamic_cast<SIPVoIPLink *> (Manager::instance().getAccountLink (AccountNULL));
 
     if (link == NULL) {
-        _debug ("Failed to get sip link\n");
+        _debug ("Failed to get sip link");
         throw CallManagerException();
     }
 
@@ -281,7 +281,7 @@ sfl::AudioZrtpSession * CallManager::getAudioZrtpSession (const std::string& cal
     audioRtp = call->getAudioRtp();
 
     if (audioRtp == NULL) {
-        _debug ("Failed to get AudioRtpFactory\n");
+        _debug ("Failed to get AudioRtpFactory");
         throw CallManagerException();
     }
 
@@ -290,7 +290,7 @@ sfl::AudioZrtpSession * CallManager::getAudioZrtpSession (const std::string& cal
     zSession = audioRtp->getAudioZrtpSession();
 
     if (zSession == NULL) {
-        _debug ("Failed to get AudioZrtpSession\n");
+        _debug ("Failed to get AudioZrtpSession");
         throw CallManagerException();
     }
 
@@ -300,7 +300,7 @@ sfl::AudioZrtpSession * CallManager::getAudioZrtpSession (const std::string& cal
 void
 CallManager::setSASVerified (const std::string& callID)
 {
-    _debug ("CallManager::setSASVerified received for account %s\n", callID.c_str());
+    _debug ("CallManager::setSASVerified received for account %s", callID.c_str());
 
     try {
         sfl::AudioZrtpSession * zSession;
@@ -315,7 +315,7 @@ CallManager::setSASVerified (const std::string& callID)
 void
 CallManager::resetSASVerified (const std::string& callID)
 {
-    _debug ("CallManager::resetSASVerified received for account %s\n", callID.c_str());
+    _debug ("CallManager::resetSASVerified received for account %s", callID.c_str());
 
     try {
         sfl::AudioZrtpSession * zSession;
@@ -330,7 +330,7 @@ CallManager::resetSASVerified (const std::string& callID)
 void
 CallManager::setConfirmGoClear (const std::string& callID)
 {
-    _debug ("CallManager::setConfirmGoClear received for account %s\n", callID.c_str());
+    _debug ("CallManager::setConfirmGoClear received for account %s", callID.c_str());
 
     try {
         sfl::AudioZrtpSession * zSession;
@@ -345,7 +345,7 @@ CallManager::setConfirmGoClear (const std::string& callID)
 void
 CallManager::requestGoClear (const std::string& callID)
 {
-    _debug ("CallManager::requestGoClear received for account %s\n", callID.c_str());
+    _debug ("CallManager::requestGoClear received for account %s", callID.c_str());
 
     try {
         sfl::AudioZrtpSession * zSession;
@@ -361,7 +361,7 @@ void
 CallManager::acceptEnrollment (const std::string& callID, const bool& accepted)
 {
 
-    _debug ("CallManager::acceptEnrollment received for account %s\n", callID.c_str());
+    _debug ("CallManager::acceptEnrollment received for account %s", callID.c_str());
 
     try {
         sfl::AudioZrtpSession * zSession;
@@ -377,7 +377,7 @@ void
 CallManager::setPBXEnrollment (const std::string& callID, const bool& yesNo)
 {
 
-    _debug ("CallManager::setPBXEnrollment received for account %s\n", callID.c_str());
+    _debug ("CallManager::setPBXEnrollment received for account %s", callID.c_str());
 
     try {
         sfl::AudioZrtpSession * zSession;
diff --git a/sflphone-common/src/dbus/configurationmanager.cpp b/sflphone-common/src/dbus/configurationmanager.cpp
index 4f5e23df47..34fefc5316 100644
--- a/sflphone-common/src/dbus/configurationmanager.cpp
+++ b/sflphone-common/src/dbus/configurationmanager.cpp
@@ -38,14 +38,14 @@ ConfigurationManager::ConfigurationManager (DBus::Connection& connection)
 std::map< std::string, std::string >
 ConfigurationManager::getAccountDetails (const std::string& accountID)
 {
-    _debug ("ConfigurationManager::getAccountDetails\n");
+    _debug ("ConfigurationManager::getAccountDetails");
     return Manager::instance().getAccountDetails (accountID);
 }
 
 std::map< std::string, std::string >
 ConfigurationManager::getTlsSettingsDefault (void)
 {
-    _debug ("ConfigurationManager::getTlsDefaultSettings\n");
+    _debug ("ConfigurationManager::getTlsDefaultSettings");
 
     std::map<std::string, std::string> tlsSettingsDefault;
     tlsSettingsDefault.insert (std::pair<std::string, std::string> (TLS_CA_LIST_FILE, ""));
@@ -270,7 +270,7 @@ ConfigurationManager::setTlsSettings (const std::string& section, const std::map
 std::map< std::string, std::string >
 ConfigurationManager::getCredential (const std::string& accountID, const int32_t& index)
 {
-    _debug ("ConfigurationManager::getCredential number %i for accountID %s\n", index, accountID.c_str());
+    _debug ("ConfigurationManager::getCredential number %i for accountID %s", index, accountID.c_str());
 
     std::string credentialIndex;
     std::stringstream streamOut;
@@ -294,7 +294,7 @@ ConfigurationManager::getCredential (const std::string& accountID, const int32_t
 int32_t
 ConfigurationManager::getNumberOfCredential (const std::string& accountID)
 {
-    _debug ("ConfigurationManager::getNumberOfCredential\n");
+    _debug ("ConfigurationManager::getNumberOfCredential");
     return Manager::instance().getConfigInt (accountID, CONFIG_CREDENTIAL_NUMBER);
 }
 
@@ -310,14 +310,14 @@ void
 ConfigurationManager::setCredential (const std::string& accountID, const int32_t& index,
                                      const std::map< std::string, std::string >& details)
 {
-    _debug ("ConfigurationManager::setCredential received\n");
+    _debug ("ConfigurationManager::setCredential received");
     Manager::instance().setCredential (accountID, index, details);
 }
 
 void
 ConfigurationManager::deleteAllCredential (const std::string& accountID)
 {
-    _debug ("ConfigurationManager::deleteAllCredential received\n");
+    _debug ("ConfigurationManager::deleteAllCredential received");
     Manager::instance().deleteAllCredential (accountID);
 }
 
@@ -325,21 +325,21 @@ void
 ConfigurationManager::setAccountDetails (const std::string& accountID,
         const std::map< std::string, std::string >& details)
 {
-    _debug ("ConfigurationManager::setAccountDetails received\n");
+    _debug ("ConfigurationManager::setAccountDetails received");
     Manager::instance().setAccountDetails (accountID, details);
 }
 
 void
 ConfigurationManager::sendRegister (const std::string& accountID, const int32_t& expire)
 {
-    _debug ("ConfigurationManager::sendRegister received\n");
+    _debug ("ConfigurationManager::sendRegister received");
     Manager::instance().sendRegister (accountID, expire);
 }
 
 std::string
 ConfigurationManager::addAccount (const std::map< std::string, std::string >& details)
 {
-    _debug ("ConfigurationManager::addAccount received\n");
+    _debug ("ConfigurationManager::addAccount received");
     return Manager::instance().addAccount (details);
 }
 
@@ -347,14 +347,14 @@ ConfigurationManager::addAccount (const std::map< std::string, std::string >& de
 void
 ConfigurationManager::removeAccount (const std::string& accoundID)
 {
-    _debug ("ConfigurationManager::removeAccount received\n");
+    _debug ("ConfigurationManager::removeAccount received");
     return Manager::instance().removeAccount (accoundID);
 }
 
 std::vector< std::string >
 ConfigurationManager::getAccountList()
 {
-    _debug ("ConfigurationManager::getAccountList received\n");
+    _debug ("ConfigurationManager::getAccountList received");
     return Manager::instance().getAccountList();
 }
 
@@ -363,7 +363,7 @@ std::vector< std::string >
 ConfigurationManager::getToneLocaleList()
 {
     std::vector< std::string > ret;
-    _debug ("ConfigurationManager::getToneLocaleList received\n");
+    _debug ("ConfigurationManager::getToneLocaleList received");
     return ret;
 }
 
@@ -372,7 +372,7 @@ std::string
 ConfigurationManager::getVersion()
 {
     std::string ret ("");
-    _debug ("ConfigurationManager::getVersion received\n");
+    _debug ("ConfigurationManager::getVersion received");
     return ret;
 }
 
@@ -381,7 +381,7 @@ std::vector< std::string >
 ConfigurationManager::getRingtoneList()
 {
     std::vector< std::string >  ret;
-    _debug ("ConfigurationManager::getRingtoneList received\n");
+    _debug ("ConfigurationManager::getRingtoneList received");
     return ret;
 }
 
@@ -390,14 +390,14 @@ ConfigurationManager::getRingtoneList()
 std::vector< std::string  >
 ConfigurationManager::getCodecList (void)
 {
-    _debug ("ConfigurationManager::getCodecList received\n");
+    _debug ("ConfigurationManager::getCodecList received");
     return Manager::instance().getCodecList();
 }
 
 std::vector<std::string>
 ConfigurationManager::getSupportedTlsMethod (void)
 {
-    _debug ("ConfigurationManager::getSupportedTlsMethod received\n");
+    _debug ("ConfigurationManager::getSupportedTlsMethod received");
     std::vector<std::string> method;
     method.push_back ("Default");
     method.push_back ("TLSv1");
@@ -410,21 +410,21 @@ ConfigurationManager::getSupportedTlsMethod (void)
 std::vector< std::string >
 ConfigurationManager::getCodecDetails (const int32_t& payload)
 {
-    _debug ("ConfigurationManager::getCodecDetails received\n");
+    _debug ("ConfigurationManager::getCodecDetails received");
     return Manager::instance().getCodecDetails (payload);
 }
 
 std::vector< std::string >
 ConfigurationManager::getActiveCodecList()
 {
-    _debug ("ConfigurationManager::getActiveCodecList received\n");
+    _debug ("ConfigurationManager::getActiveCodecList received");
     return Manager::instance().getActiveCodecList();
 }
 
 void
 ConfigurationManager::setActiveCodecList (const std::vector< std::string >& list)
 {
-    _debug ("ConfigurationManager::setActiveCodecList received\n");
+    _debug ("ConfigurationManager::setActiveCodecList received");
     Manager::instance().setActiveCodecList (list);
 }
 
@@ -432,77 +432,77 @@ ConfigurationManager::setActiveCodecList (const std::vector< std::string >& list
 std::vector< std::string >
 ConfigurationManager::getInputAudioPluginList()
 {
-    _debug ("ConfigurationManager::getInputAudioPluginList received\n");
+    _debug ("ConfigurationManager::getInputAudioPluginList received");
     return Manager::instance().getInputAudioPluginList();
 }
 
 std::vector< std::string >
 ConfigurationManager::getOutputAudioPluginList()
 {
-    _debug ("ConfigurationManager::getOutputAudioPluginList received\n");
+    _debug ("ConfigurationManager::getOutputAudioPluginList received");
     return Manager::instance().getOutputAudioPluginList();
 }
 
 void
 ConfigurationManager::setInputAudioPlugin (const std::string& audioPlugin)
 {
-    _debug ("ConfigurationManager::setInputAudioPlugin received\n");
+    _debug ("ConfigurationManager::setInputAudioPlugin received");
     return Manager::instance().setInputAudioPlugin (audioPlugin);
 }
 
 void
 ConfigurationManager::setOutputAudioPlugin (const std::string& audioPlugin)
 {
-    _debug ("ConfigurationManager::setOutputAudioPlugin received\n");
+    _debug ("ConfigurationManager::setOutputAudioPlugin received");
     return Manager::instance().setOutputAudioPlugin (audioPlugin);
 }
 
 std::vector< std::string >
 ConfigurationManager::getAudioOutputDeviceList()
 {
-    _debug ("ConfigurationManager::getAudioOutputDeviceList received\n");
+    _debug ("ConfigurationManager::getAudioOutputDeviceList received");
     return Manager::instance().getAudioOutputDeviceList();
 }
 
 void
 ConfigurationManager::setAudioOutputDevice (const int32_t& index)
 {
-    _debug ("ConfigurationManager::setAudioOutputDevice received\n");
+    _debug ("ConfigurationManager::setAudioOutputDevice received");
     return Manager::instance().setAudioOutputDevice (index);
 }
 
 std::vector< std::string >
 ConfigurationManager::getAudioInputDeviceList()
 {
-    _debug ("ConfigurationManager::getAudioInputDeviceList received\n");
+    _debug ("ConfigurationManager::getAudioInputDeviceList received");
     return Manager::instance().getAudioInputDeviceList();
 }
 
 void
 ConfigurationManager::setAudioInputDevice (const int32_t& index)
 {
-    _debug ("ConfigurationManager::setAudioInputDevice received\n");
+    _debug ("ConfigurationManager::setAudioInputDevice received");
     return Manager::instance().setAudioInputDevice (index);
 }
 
 std::vector< std::string >
 ConfigurationManager::getCurrentAudioDevicesIndex()
 {
-    _debug ("ConfigurationManager::getCurrentAudioDeviceIndex received\n");
+    _debug ("ConfigurationManager::getCurrentAudioDeviceIndex received");
     return Manager::instance().getCurrentAudioDevicesIndex();
 }
 
 int32_t
 ConfigurationManager::getAudioDeviceIndex (const std::string& name)
 {
-    _debug ("ConfigurationManager::getAudioDeviceIndex received\n");
+    _debug ("ConfigurationManager::getAudioDeviceIndex received");
     return Manager::instance().getAudioDeviceIndex (name);
 }
 
 std::string
 ConfigurationManager::getCurrentAudioOutputPlugin (void)
 {
-    _debug ("ConfigurationManager::getCurrentAudioOutputPlugin received\n");
+    _debug ("ConfigurationManager::getCurrentAudioOutputPlugin received");
     return Manager::instance().getCurrentAudioOutputPlugin();
 }
 
@@ -511,7 +511,7 @@ std::vector< std::string >
 ConfigurationManager::getPlaybackDeviceList()
 {
     std::vector< std::string >  ret;
-    _debug ("ConfigurationManager::getPlaybackDeviceList received\n");
+    _debug ("ConfigurationManager::getPlaybackDeviceList received");
     return ret;
 }
 
@@ -519,7 +519,7 @@ std::vector< std::string >
 ConfigurationManager::getRecordDeviceList()
 {
     std::vector< std::string >  ret;
-    _debug ("ConfigurationManager::getRecordDeviceList received\n");
+    _debug ("ConfigurationManager::getRecordDeviceList received");
     return ret;
 
 }
@@ -645,70 +645,70 @@ std::string ConfigurationManager::getHistoryEnabled (void)
 void
 ConfigurationManager::startHidden (void)
 {
-    _debug ("Manager received startHidden\n");
+    _debug ("Manager received startHidden");
     Manager::instance().startHidden();
 }
 
 int32_t
 ConfigurationManager::isStartHidden (void)
 {
-    _debug ("Manager received isStartHidden\n");
+    _debug ("Manager received isStartHidden");
     return Manager::instance().isStartHidden();
 }
 
 void
 ConfigurationManager::switchPopupMode (void)
 {
-    _debug ("Manager received switchPopupMode\n");
+    _debug ("Manager received switchPopupMode");
     Manager::instance().switchPopupMode();
 }
 
 int32_t
 ConfigurationManager::popupMode (void)
 {
-    _debug ("Manager received popupMode\n");
+    _debug ("Manager received popupMode");
     return Manager::instance().popupMode();
 }
 
 void
 ConfigurationManager::setNotify (void)
 {
-    _debug ("Manager received setNotify\n");
+    _debug ("Manager received setNotify");
     Manager::instance().setNotify();
 }
 
 int32_t
 ConfigurationManager::getNotify (void)
 {
-    _debug ("Manager received getNotify\n");
+    _debug ("Manager received getNotify");
     return Manager::instance().getNotify();
 }
 
 void
 ConfigurationManager::setAudioManager (const int32_t& api)
 {
-    _debug ("Manager received setAudioManager\n");
+    _debug ("Manager received setAudioManager");
     Manager::instance().setAudioManager (api);
 }
 
 int32_t
 ConfigurationManager::getAudioManager (void)
 {
-    _debug ("Manager received getAudioManager\n");
+    _debug ("Manager received getAudioManager");
     return Manager::instance().getAudioManager();
 }
 
 void
 ConfigurationManager::setMailNotify (void)
 {
-    _debug ("Manager received setMailNotify\n");
+    _debug ("Manager received setMailNotify");
     Manager::instance().setMailNotify();
 }
 
 int32_t
 ConfigurationManager::getMailNotify (void)
 {
-    _debug ("Manager received getMailNotify\n");
+    _debug ("Manager received getMailNotify");
     return Manager::instance().getMailNotify();
 }
 
@@ -723,7 +723,7 @@ ConfigurationManager::getSipAddress (void)
 void
 ConfigurationManager::setSipAddress (const std::string& address)
 {
-    _debug ("Manager received setSipAddress: %s\n", address.c_str());
+    _debug ("Manager received setSipAddress: %s", address.c_str());
     Manager::instance().setSipAddress (address);
 }
 
@@ -744,7 +744,7 @@ std::vector< std::string > ConfigurationManager::getAddressbookList (void)
 
 void ConfigurationManager::setAddressbookList (const std::vector< std::string >& list)
 {
-    _debug ("Manager received setAddressbookList\n") ;
+    _debug ("Manager received setAddressbookList") ;
     Manager::instance().setAddressbookList (list);
 }
 
@@ -775,7 +775,7 @@ void ConfigurationManager::setHistory (const std::map <std::string, std::string>
 
 std::vector<std::string> ConfigurationManager::getAllIpInterface (void)
 {
-    _debug ("ConfigurationManager::getAllIpInterface received\n");
+    _debug ("ConfigurationManager::getAllIpInterface received");
 
     std::vector<std::string> vector;
     SIPVoIPLink * sipLink = NULL;
diff --git a/sflphone-common/src/dbus/dbusmanagerimpl.cpp b/sflphone-common/src/dbus/dbusmanagerimpl.cpp
index fbe35e56f9..61504e8782 100644
--- a/sflphone-common/src/dbus/dbusmanagerimpl.cpp
+++ b/sflphone-common/src/dbus/dbusmanagerimpl.cpp
@@ -46,7 +46,7 @@ DBusManagerImpl::exec()
     // Register accounts
     Manager::instance().initRegisterAccounts(); //getEvents();
 
-    _debug ("Starting DBus event loop\n");
+    _debug ("Starting DBus event loop");
     _dispatcher.enter();
 
     return 1;
diff --git a/sflphone-common/src/dbus/instance.cpp b/sflphone-common/src/dbus/instance.cpp
index 233978ae63..e70322d6fc 100644
--- a/sflphone-common/src/dbus/instance.cpp
+++ b/sflphone-common/src/dbus/instance.cpp
@@ -32,7 +32,7 @@ void
 Instance::Register (const int32_t& pid UNUSED,
                     const std::string& name UNUSED)
 {
-    _debug ("Instance::register received\n");
+    _debug ("Instance::register received");
     count++;
 }
 
@@ -40,7 +40,7 @@ Instance::Register (const int32_t& pid UNUSED,
 void
 Instance::Unregister (const int32_t& pid UNUSED)
 {
-    _debug ("Instance::unregister received\n");
+    _debug ("Instance::unregister received");
     count --;
 
     if (count <= 0) {
diff --git a/sflphone-common/src/history/historymanager.cpp b/sflphone-common/src/history/historymanager.cpp
index d56d3f6715..9ea8f933d3 100644
--- a/sflphone-common/src/history/historymanager.cpp
+++ b/sflphone-common/src/history/historymanager.cpp
@@ -109,7 +109,7 @@ int HistoryManager::load_history_items_map (Conf::ConfigTree *history_list, int
 
 bool HistoryManager::save_history_to_file (Conf::ConfigTree *history_list)
 {
-    _debug ("Saving history in XDG directory: %s\n", _history_path.data());
+    _debug ("Saving history in XDG directory: %s", _history_path.data());
     return  history_list->saveConfigTree (_history_path.data());
 }
 
@@ -165,7 +165,7 @@ int HistoryManager::create_history_path (std::string path)
         if (mkdir (userdata.data(), 0755) != 0) {
             // If directory	creation failed
             if (errno != EEXIST) {
-                _debug ("Cannot create directory: %s\n", strerror (errno));
+                _debug ("Cannot create directory: %s", strerror (errno));
                 return -1;
             }
         }
diff --git a/sflphone-common/src/iax/iaxcall.cpp b/sflphone-common/src/iax/iaxcall.cpp
index 93ecdcdfdb..04899f17bc 100644
--- a/sflphone-common/src/iax/iaxcall.cpp
+++ b/sflphone-common/src/iax/iaxcall.cpp
@@ -40,37 +40,37 @@ IAXCall::setFormat (int format)
     switch (format) {
 
         case AST_FORMAT_ULAW:
-            printf ("PCMU\n");
+            printf ("PCMU");
             setAudioCodec (PAYLOAD_CODEC_ULAW);
             break;
 
         case AST_FORMAT_GSM:
-            printf ("GSM\n");
+            printf ("GSM");
             setAudioCodec (PAYLOAD_CODEC_GSM);
             break;
 
         case AST_FORMAT_ALAW:
-            printf ("ALAW\n");
+            printf ("ALAW");
             setAudioCodec (PAYLOAD_CODEC_ALAW);
             break;
 
         case AST_FORMAT_ILBC:
-            printf ("ILBC\n");
+            printf ("ILBC");
             setAudioCodec (PAYLOAD_CODEC_ILBC_20);
             break;
 
         case AST_FORMAT_SPEEX:
-            printf ("SPEEX\n");
+            printf ("SPEEX");
             setAudioCodec (PAYLOAD_CODEC_SPEEX_8000);
             break;
 
         default:
-            printf ("Error audio codec type %i not supported!\n", format);
+            printf ("Error audio codec type %i not supported!", format);
             setAudioCodec ( (AudioCodecType) -1);
             break;
     }
 
-    printf ("\n");
+    printf ("");
 }
 
 
@@ -118,7 +118,7 @@ IAXCall::getSupportedFormat()
         }
     }
 
-    printf ("\n");
+    printf ("");
 
     return format;
 
@@ -137,27 +137,27 @@ IAXCall::getFirstMatchingFormat (int needles)
         switch (map[iter]) {
 
             case PAYLOAD_CODEC_ULAW:
-                printf ("PCMU\n");
+                printf ("PCMU");
                 format = AST_FORMAT_ULAW;
                 break;
 
             case PAYLOAD_CODEC_GSM:
-                printf ("GSM\n");
+                printf ("GSM");
                 format = AST_FORMAT_GSM;
                 break;
 
             case PAYLOAD_CODEC_ALAW:
-                printf ("PCMA\n");
+                printf ("PCMA");
                 format = AST_FORMAT_ALAW;
                 break;
 
             case PAYLOAD_CODEC_ILBC_20:
-                printf ("ILBC\n");
+                printf ("ILBC");
                 format = AST_FORMAT_ILBC;
                 break;
 
             case PAYLOAD_CODEC_SPEEX_8000:
-                printf ("SPEEX\n");
+                printf ("SPEEX");
                 format = AST_FORMAT_SPEEX;
                 break;
 
@@ -171,7 +171,7 @@ IAXCall::getFirstMatchingFormat (int needles)
 
     }
 
-    printf ("\n");
+    printf ("");
 
     return 0;
 }
diff --git a/sflphone-common/src/iax/iaxvoiplink.cpp b/sflphone-common/src/iax/iaxvoiplink.cpp
index fd486a14fe..bc41b6e166 100644
--- a/sflphone-common/src/iax/iaxvoiplink.cpp
+++ b/sflphone-common/src/iax/iaxvoiplink.cpp
@@ -37,13 +37,13 @@
 
 #define MUSIC_ONHOLD true
 
-#define CHK_VALID_CALL   if (call == NULL) { _debug("IAX: Call doesn't exists\n"); \
+#define CHK_VALID_CALL   if (call == NULL) { _debug("IAX: Call doesn't exists"); \
 	return false; }
 
 IAXVoIPLink::IAXVoIPLink (const AccountID& accountID)
         : VoIPLink (accountID)
 {
-    // _debug("IAXVoIPLink::IAXVoIPLink : creating eventhread \n ");
+    // _debug("IAXVoIPLink::IAXVoIPLink : creating eventhread  ");
     _evThread = new EventThread (this);
     _regSession = NULL;
     _nextRefreshStamp = 0;
@@ -116,13 +116,13 @@ IAXVoIPLink::init()
         port = iax_init (port);
 
         if (port < 0) {
-            _debug ("IAX Warning: already initialize on port %d\n", last_port);
+            _debug ("IAX Warning: already initialize on port %d", last_port);
             port = RANDOM_IAX_PORT;
         } else if (port == IAX_FAILURE) {
             _debug ("IAX Fail to start on port %d", last_port);
             port = RANDOM_IAX_PORT;
         } else {
-            _debug ("IAX Info: listening on port %d\n", last_port);
+            _debug ("IAX Info: listening on port %d", last_port);
             _localPort = last_port;
             returnValue = true;
             _evThread->start();
@@ -141,7 +141,7 @@ IAXVoIPLink::init()
     }
 
     if (port == IAX_FAILURE || nbTry==0) {
-        _debug ("Fail to initialize iax\n");
+        _debug ("Fail to initialize iax");
 
         initDone (false);
     }
@@ -195,7 +195,7 @@ void IAXVoIPLink::terminateOneCall (const CallID& id)
     IAXCall* call = getIAXCall (id);
 
     if (call) {
-        _debug ("IAXVoIPLink::terminateOneCall()::the call is deleted, should close recording file \n");
+        _debug ("IAXVoIPLink::terminateOneCall()::the call is deleted, should close recording file ");
         delete call;
         call = 0;
     }
@@ -218,7 +218,7 @@ IAXVoIPLink::getEvent()
             continue;
         }
 
-        //_debug ("Receive IAX Event: %d (0x%x)\n", event->etype, event->etype);
+        //_debug ("Receive IAX Event: %d (0x%x)", event->etype, event->etype);
 
         call = iaxFindCallBySession (event->session);
 
@@ -234,7 +234,7 @@ IAXVoIPLink::getEvent()
             iaxHandlePrecallEvent (event);
         }
 
-        // _debug("IAXVoIPLink::getEvent() : timestamp %i \n",event->ts);
+        // _debug("IAXVoIPLink::getEvent() : timestamp %i ",event->ts);
 
         iax_event_free (event);
     }
@@ -263,8 +263,8 @@ IAXVoIPLink::getEvent()
     if ( (Manager::instance().incomingCallWaiting() > 0) && Manager::instance().hasCurrentCall()) {
 
         int countTime_modulo = countTime % 4000;
-        // _debug("countTime: %i\n", countTime);
-        // _debug("countTime_modulo: %i\n", countTime_modulo);
+        // _debug("countTime: %i", countTime);
+        // _debug("countTime_modulo: %i", countTime_modulo);
 
         if ( (countTime_modulo - countTime) < 0) {
             Manager::instance().notificationIncomingCall();
@@ -317,7 +317,7 @@ IAXVoIPLink::sendAudioFromMic (void)
 
                 if (ac && audiolayer) {
 
-                    // _debug("Send sound\n");
+                    // _debug("Send sound");
                     // audiolayer->getMainBuffer()->flush(currentCall->getCallId());
 
                     audiolayer->getMainBuffer()->setInternalSamplingRate (ac->getClockRate());
@@ -366,7 +366,7 @@ IAXVoIPLink::sendAudioFromMic (void)
                         // Make sure the session and the call still exists.
                         if (currentCall->getSession() && micDataEncoded != NULL) {
                             if (iax_send_voice (currentCall->getSession(), currentCall->getFormat(), micDataEncoded, compSize, nbSample_) == -1) {
-                                _debug ("IAX: Error sending voice data.\n");
+                                _debug ("IAX: Error sending voice data.");
                             }
                         }
 
@@ -426,9 +426,9 @@ IAXVoIPLink::sendRegister (AccountID id)
     if (!_regSession) {
         _debug ("Error when generating new session for register");
     } else {
-        _debug ("IAX Sending registration to %s with user %s\n", account->getHostname().c_str() , account->getUsername().c_str());
+        _debug ("IAX Sending registration to %s with user %s", account->getHostname().c_str() , account->getUsername().c_str());
         int val = iax_register (_regSession, account->getHostname().data(), account->getUsername().data(), account->getPassword().data(), 120);
-        _debug ("Return value: %d\n", val);
+        _debug ("Return value: %d", val);
         // set the time-out to 15 seconds, after that, resend a registration request.
         // until we unregister.
         _nextRefreshStamp = time (NULL) + 10;
@@ -466,7 +466,7 @@ IAXVoIPLink::sendUnregister (AccountID id)
 
     _nextRefreshStamp = 0;
 
-    _debug ("IAX2 send unregister\n");
+    _debug ("IAX2 send unregister");
     account->setRegistrationState (Unregistered);
 
     return SUCCESS;
@@ -522,7 +522,7 @@ IAXVoIPLink::answer (const CallID& id)
 bool
 IAXVoIPLink::hangup (const CallID& id)
 {
-    _debug ("IAXVoIPLink::hangup() : function called once hangup \n");
+    _debug ("IAXVoIPLink::hangup() : function called once hangup ");
     IAXCall* call = getIAXCall (id);
     std::string reason = "Dumped Call";
     CHK_VALID_CALL;
@@ -550,7 +550,7 @@ IAXVoIPLink::hangup (const CallID& id)
 bool
 IAXVoIPLink::peerHungup (const CallID& id)
 {
-    _debug ("IAXVoIPLink::peerHangup() : function called once hangup \n");
+    _debug ("IAXVoIPLink::peerHangup() : function called once hangup ");
     IAXCall* call = getIAXCall (id);
     std::string reason = "Dumped Call";
     CHK_VALID_CALL;
@@ -584,7 +584,7 @@ IAXVoIPLink::onhold (const CallID& id)
 
     audiolayer->getMainBuffer()->unBindAll (call->getCallId());
 
-    //if (call->getState() == Call::Hold) { _debug("Call is already on hold\n"); return false; }
+    //if (call->getState() == Call::Hold) { _debug("Call is already on hold"); return false; }
 
     _mutexIAX.enterMutex();
     iax_quelch_moh (call->getSession() , MUSIC_ONHOLD);
@@ -603,7 +603,7 @@ IAXVoIPLink::offhold (const CallID& id)
 
     Manager::instance().addStream (call->getCallId());
 
-    //if (call->getState() == Call::Active) { _debug("Call is already active\n"); return false; }
+    //if (call->getState() == Call::Active) { _debug("Call is already active"); return false; }
     _mutexIAX.enterMutex();
     iax_unquelch (call->getSession());
     _mutexIAX.leaveMutex();
@@ -700,7 +700,7 @@ IAXVoIPLink::iaxOutgoingInvite (IAXCall* call)
     newsession = iax_session_new();
 
     if (!newsession) {
-        _debug ("IAX Error: Can't make new session for a new call\n");
+        _debug ("IAX Error: Can't make new session for a new call");
         return false;
     }
 
@@ -715,7 +715,7 @@ IAXVoIPLink::iaxOutgoingInvite (IAXCall* call)
     audio_format_preferred =  call->getFirstMatchingFormat (call->getSupportedFormat());
     audio_format_capability = call->getSupportedFormat();
 
-    _debug ("IAX New call: %s\n", strNum.c_str());
+    _debug ("IAX New call: %s", strNum.c_str());
     iax_call (newsession, username.c_str(), username.c_str(), strNum.c_str(), lang, wait, audio_format_preferred, audio_format_capability);
 
     return true;
@@ -798,10 +798,10 @@ IAXVoIPLink::iaxHandleCallEvent (iax_event* event, IAXCall* call)
             _debug ("IAX_EVENT_ACCEPT: codec format: ");
 
             if (event->ies.format) {
-                printf ("%i\n", event->ies.format);
+                printf ("%i", event->ies.format);
                 call->setFormat (event->ies.format);
             } else {
-                printf ("no codec format\n");
+                printf ("no codec format");
             }
 
             break;
@@ -820,12 +820,12 @@ IAXVoIPLink::iaxHandleCallEvent (iax_event* event, IAXCall* call)
 
                 if (event->ies.format) {
                     // Should not get here, should have been set in EVENT_ACCEPT
-                    printf ("%i\n", event->ies.format);
+                    printf ("%i", event->ies.format);
                     call->setFormat (event->ies.format);
                 }
 
                 {
-                    printf ("no codec format\n");
+                    printf ("no codec format");
                 }
 
                 Manager::instance().peerAnsweredCall (id);
@@ -849,7 +849,7 @@ IAXVoIPLink::iaxHandleCallEvent (iax_event* event, IAXCall* call)
         case IAX_EVENT_VOICE:
             //if (!audiolayer->isCaptureActive ())
             //  audiolayer->startStream ();
-            // _debug("IAX_EVENT_VOICE: \n");
+            // _debug("IAX_EVENT_VOICE: ");
             iaxHandleVoiceEvent (event, call);
             break;
 
@@ -871,7 +871,7 @@ IAXVoIPLink::iaxHandleCallEvent (iax_event* event, IAXCall* call)
 
             if (Manager::instance().getConfigString (HOOKS, URLHOOK_IAX2_ENABLED) == "1") {
                 if (strcmp ( (char*) event->data, "") != 0) {
-                    _debug ("> IAX_EVENT_URL received: %s\n", event->data);
+                    _debug ("> IAX_EVENT_URL received: %s", event->data);
                     urlhook->addAction ( (char*) event->data, Manager::instance().getConfigString (HOOKS, URLHOOK_COMMAND));
                 }
             }
@@ -885,7 +885,7 @@ IAXVoIPLink::iaxHandleCallEvent (iax_event* event, IAXCall* call)
             break;
 
         default:
-            _debug ("iaxHandleCallEvent: Unknown event type (in call event): %d\n", event->etype);
+            _debug ("iaxHandleCallEvent: Unknown event type (in call event): %d", event->etype);
 
     }
 }
@@ -906,7 +906,7 @@ IAXVoIPLink::iaxHandleVoiceEvent (iax_event* event, IAXCall* call)
 
     if (!event->datalen) {
         // Skip this empty packet.
-        //_debug("IAX: Skipping empty jitter-buffer interpolated packet\n");
+        //_debug("IAX: Skipping empty jitter-buffer interpolated packet");
         return;
     }
 
@@ -929,11 +929,11 @@ IAXVoIPLink::iaxHandleVoiceEvent (iax_event* event, IAXCall* call)
         // - subclass holds the voiceformat property.
 
         if (event->subclass && event->subclass != call->getFormat()) {
-            _debug ("iaxHandleVoiceEvent: no format found in call setting it to %i\n", event->subclass);
+            _debug ("iaxHandleVoiceEvent: no format found in call setting it to %i", event->subclass);
             call->setFormat (event->subclass);
         }
 
-        //_debug("Receive: len=%d, format=%d, _receiveDataDecoded=%p\n", event->datalen, call->getFormat(), _receiveDataDecoded);
+        //_debug("Receive: len=%d, format=%d, _receiveDataDecoded=%p", event->datalen, call->getFormat(), _receiveDataDecoded);
         // ac = call->getCodecMap().getCodec (call -> getAudioCodec());
 
         data = (unsigned char*) event->data;
@@ -944,7 +944,7 @@ IAXVoIPLink::iaxHandleVoiceEvent (iax_event* event, IAXCall* call)
         max = (int) (ac->getClockRate() * audiolayer->getFrameSize() / 1000);
 
         if (size > max) {
-            _debug ("The size %d is bigger than expected %d. Packet cropped. Ouch!\n", size, max);
+            _debug ("The size %d is bigger than expected %d. Packet cropped. Ouch!", size, max);
             size = max;
         }
 
@@ -953,7 +953,7 @@ IAXVoIPLink::iaxHandleVoiceEvent (iax_event* event, IAXCall* call)
         nbInt16      = expandedSize/sizeof (int16);
 
         if (nbInt16 > max) {
-            _debug ("We have decoded an IAX VOICE packet larger than expected: %i VS %i. Cropping.\n", nbInt16, max);
+            _debug ("We have decoded an IAX VOICE packet larger than expected: %i VS %i. Cropping.", nbInt16, max);
             nbInt16 = max;
         }
 
@@ -1012,7 +1012,7 @@ IAXVoIPLink::iaxHandleRegReply (iax_event* event)
         // Looking for the voicemail information
         //if( event->ies != 0 )
         //new_voicemails = processIAXMsgCount(event->ies.msgcount);
-        //_debug("iax voicemail number notification: %i\n", new_voicemails);
+        //_debug("iax voicemail number notification: %i", new_voicemails);
         // Notify the client if new voicemail waiting for the current account
         //account_id = getAccountID();
         //Manager::instance().startVoiceMessageNotification(account_id.c_str(), new_voicemails);
@@ -1062,18 +1062,18 @@ IAXVoIPLink::iaxHandlePrecallEvent (iax_event* event)
         case IAX_EVENT_REGACK:
 
         case IAX_EVENT_REGREJ:
-            _debug ("IAX Registration Event in a pre-call setup\n");
+            _debug ("IAX Registration Event in a pre-call setup");
             break;
 
         case IAX_EVENT_REGREQ:
             // Received when someone wants to register to us!?!
             // Asterisk receives and answers to that, not us, we're a phone.
-            _debug ("Registration by a peer, don't allow it\n");
+            _debug ("Registration by a peer, don't allow it");
             break;
 
         case IAX_EVENT_CONNECT:
             // We've got an incoming call! Yikes!
-            _debug ("> IAX_EVENT_CONNECT (receive)\n");
+            _debug ("> IAX_EVENT_CONNECT (receive)");
 
             id = Manager::instance().getNewCallID();
 
@@ -1152,11 +1152,11 @@ IAXVoIPLink::iaxHandlePrecallEvent (iax_event* event)
             break;
 
         case IAX_IE_MSGCOUNT:
-            //_debug("messssssssssssssssssssssssssssssssssssssssssssssssages\n");
+            //_debug("messssssssssssssssssssssssssssssssssssssssssssssssages");
             break;
 
         default:
-            _debug ("IAXVoIPLink::iaxHandlePrecallEvent: Unknown event type (in precall): %d\n", event->etype);
+            _debug ("IAXVoIPLink::iaxHandlePrecallEvent: Unknown event type (in precall): %d", event->etype);
     }
 
 }
diff --git a/sflphone-common/src/main.cpp b/sflphone-common/src/main.cpp
index d023997021..72e2714e40 100644
--- a/sflphone-common/src/main.cpp
+++ b/sflphone-common/src/main.cpp
@@ -46,11 +46,11 @@ main (int argc, char **argv)
     if (argc == 2 && strcmp (argv[1], "--help") == 0) {
 
 
-        printf ("%1$s Daemon %2$s, by Savoir-Faire Linux 2004-2009\n\n",
+        printf ("%1$s Daemon %2$s, by Savoir-Faire Linux 2004-2009",
                 PROGNAME,
                 SFLPHONED_VERSION);
-        printf ("USAGE: sflphoned [--help]\nParameters: \n  --help\tfor this message\n\n  --port=3999\tchange the session port\n\n");
-        printf ("See http://www.sflphone.org/ for more information\n");
+        printf ("USAGE: sflphoned [--help]Parameters:   --help\tfor this message  --port=3999\tchange the session port");
+        printf ("See http://www.sflphone.org/ for more information");
 
     } else {
         FILE *fp;
@@ -84,7 +84,7 @@ main (int argc, char **argv)
             if ( (dir = opendir (sfldir)) == NULL) {
                 //Create it
                 if (mkdir (sfldir, 0755) != 0) {
-                    fprintf (stderr, "Creating directory %s failed. Exited.\n", sfldir);
+                    fprintf (stderr, "Creating directory %s failed. Exited.", sfldir);
                     exit (-1);
                 }
             }
@@ -95,14 +95,14 @@ main (int argc, char **argv)
             if ( (dir = opendir (sfldir)) == NULL) {
                 //Create it
                 if (mkdir (sfldir, 0755) != 0) {
-                    fprintf (stderr, "Creating directory %s failed. Exited.\n", sfldir);
+                    fprintf (stderr, "Creating directory %s failed. Exited.", sfldir);
                     exit (-1);
                 }
             }
 
             // PID file doesn't exists, create and write pid in it
             if ( (fp = fopen (homepid,"w")) == NULL) {
-                fprintf (stderr, "Creating PID file %s failed. Exited.\n", homepid);
+                fprintf (stderr, "Creating PID file %s failed. Exited.", homepid);
                 exit (-1);
             } else {
                 fputs (cPid , fp);
@@ -119,11 +119,11 @@ main (int argc, char **argv)
                 fclose (fp);
 
                 if (kill (atoi (cOldPid), 0) == SUCCESS) {
-                    fprintf (stderr, "There is already a sflphoned daemon running in the system. Starting Failed.\n");
+                    fprintf (stderr, "There is already a sflphoned daemon running in the system. Starting Failed.");
                     exit (-1);
                 } else {
                     if ( (fp = fopen (homepid,"w")) == NULL) {
-                        fprintf (stderr, "Writing to PID file %s failed. Exited.\n", homepid);
+                        fprintf (stderr, "Writing to PID file %s failed. Exited.", homepid);
                         exit (-1);
                     } else {
                         fputs (cPid , fp);
@@ -155,7 +155,7 @@ main (int argc, char **argv)
             std::cerr << e.what() << std::endl;
             exit_code = -1;
         } catch (...) {
-            fprintf (stderr, "An exception occured when initializing the system.\n");
+            fprintf (stderr, "An exception occured when initializing the system.");
             exit_code = -1;
         }
 
diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index e8df4d0c8d..324ca8c76f 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -114,7 +114,7 @@ ManagerImpl::~ManagerImpl (void)
     // terminate();
     delete _cleaner;
     _cleaner=0;
-    _debug ("%s stop correctly.\n", PROGNAME);
+    _debug ("%s stop correctly.", PROGNAME);
 }
 
 void
@@ -126,7 +126,7 @@ ManagerImpl::init()
     initVolume();
 
     if (_exist == 0) {
-        _debug ("Cannot create config file in your home directory\n");
+        _debug ("Cannot create config file in your home directory");
     }
 
     initAudioDriver();
@@ -159,23 +159,23 @@ ManagerImpl::init()
 
 void ManagerImpl::terminate()
 {
-    _debug ("ManagerImpl::terminate \n");
+    _debug ("ManagerImpl::terminate ");
     saveConfig();
 
     unloadAccountMap();
 
-    _debug ("Unload DTMF Key \n");
+    _debug ("Unload DTMF Key ");
     delete _dtmfKey;
 
-    _debug ("Unload Audio Driver \n");
+    _debug ("Unload Audio Driver ");
     delete _audiodriver;
     _audiodriver = NULL;
 
-    _debug ("Unload Telephone Tone \n");
+    _debug ("Unload Telephone Tone ");
     delete _telephoneTone;
     _telephoneTone = NULL;
 
-    _debug ("Unload Audio Codecs \n");
+    _debug ("Unload Audio Codecs ");
     _codecDescriptorMap.deleteHandlePointer();
 
 }
@@ -189,7 +189,7 @@ ManagerImpl::isCurrentCall (const CallID& callId)
 bool
 ManagerImpl::hasCurrentCall()
 {
-    // _debug ("ManagerImpl::hasCurrentCall current call ID = %s\n", _currentCallId2.c_str());
+    // _debug ("ManagerImpl::hasCurrentCall current call ID = %s", _currentCallId2.c_str());
 
     if (_currentCallId2 != "") {
         return true;
@@ -208,7 +208,7 @@ void
 ManagerImpl::switchCall (const CallID& id)
 {
     ost::MutexLock m (_currentCallMutex);
-    _debug ("----- Switch current call id to %s -----\n", id.c_str());
+    _debug ("----- Switch current call id to %s -----", id.c_str());
     _currentCallId2 = id;
 
     /*
@@ -223,7 +223,7 @@ ManagerImpl::switchCall (const CallID& id)
         ConferenceMap::iterator iter = _conferencemap.find(id);
         if(iter != _conferencemap.end())
         {
-    	_debug("    set call recordable in audio layer\n");
+    	_debug("    set call recordable in audio layer");
     	conf = iter->second;
     	al->setRecorderInstance((Recordable*)conf);
         }
@@ -237,7 +237,7 @@ ManagerImpl::switchCall (const CallID& id)
         Call *call = NULL;
         call = getAccountLink (account_id)->getCall(id);
 
-        _debug("    set call recordable in audio layer\n");
+        _debug("    set call recordable in audio layer");
         al->setRecorderInstance((Recordable*)call);
     }
     }
@@ -257,7 +257,7 @@ ManagerImpl::outgoingCall (const std::string& account_id, const CallID& call_id,
     Call::CallConfiguration callConfig;
     SIPVoIPLink *siplink;
 
-    _debug ("ManagerImpl::outgoingCall(%s)\n", call_id.c_str());
+    _debug ("ManagerImpl::outgoingCall(%s)", call_id.c_str());
 
     CallID current_call_id = getCurrentCallId();
 
@@ -274,21 +274,21 @@ ManagerImpl::outgoingCall (const std::string& account_id, const CallID& call_id,
     // in any cases we have to detach from current communication
     if (hasCurrentCall()) {
 
-        _debug ("    outgoingCall: Has current call (%s) put it onhold\n", current_call_id.c_str());
+        _debug ("    outgoingCall: Has current call (%s) put it onhold", current_call_id.c_str());
 
         // if this is not a conferenceand this and is not a conference participant
 
         if (!isConference (current_call_id) && !participToConference (current_call_id)) {
-            _debug ("    outgoingCall: Put the current call (%s) on hold\n", current_call_id.c_str());
+            _debug ("    outgoingCall: Put the current call (%s) on hold", current_call_id.c_str());
             onHoldCall (current_call_id);
         } else if (isConference (current_call_id) && !participToConference (call_id)) {
-            _debug ("    outgoingCall: detach main participant from conference\n");
+            _debug ("    outgoingCall: detach main participant from conference");
             detachParticipant (default_id, current_call_id);
         }
     }
 
     if (callConfig == Call::IPtoIP) {
-        _debug ("    outgoingCall: Start IP to IP call\n");
+        _debug ("    outgoingCall: Start IP to IP call");
         /* We need to retrieve the sip voiplink instance */
         siplink = SIPVoIPLink::instance ("");
 
@@ -303,17 +303,17 @@ ManagerImpl::outgoingCall (const std::string& account_id, const CallID& call_id,
     }
 
     if (!accountExists (account_id)) {
-        _debug ("! Manager Error: Outgoing Call: account doesn't exist\n");
+        _debug ("! Manager Error: Outgoing Call: account doesn't exist");
         return false;
     }
 
     if (getAccountFromCall (call_id) != AccountNULL) {
-        _debug ("! Manager Error: Outgoing Call: call id already exists\n");
+        _debug ("! Manager Error: Outgoing Call: call id already exists");
         return false;
     }
 
 
-    _debug ("- Manager Action: Adding Outgoing Call %s on account %s\n", call_id.data(), account_id.data());
+    _debug ("- Manager Action: Adding Outgoing Call %s on account %s", call_id.data(), account_id.data());
 
     associateCallToAccount (call_id, account_id);
 
@@ -322,7 +322,7 @@ ManagerImpl::outgoingCall (const std::string& account_id, const CallID& call_id,
         return true;
     } else {
         callFailure (call_id);
-        _debug ("! Manager Error: An error occur, the call was not created\n");
+        _debug ("! Manager Error: An error occur, the call was not created");
     }
 
     return false;
@@ -333,7 +333,7 @@ bool
 ManagerImpl::answerCall (const CallID& call_id)
 {
 
-    _debug ("ManagerImpl::answerCall(%s)\n", call_id.c_str());
+    _debug ("ManagerImpl::answerCall(%s)", call_id.c_str());
 
     stopTone (true);
 
@@ -343,7 +343,7 @@ ManagerImpl::answerCall (const CallID& call_id)
     AccountID account_id = getAccountFromCall (call_id);
 
     if (account_id == AccountNULL) {
-        _debug ("    answerCall: AccountId is null\n");
+        _debug ("    answerCall: AccountId is null");
     }
 
     Call* call = NULL;
@@ -351,23 +351,23 @@ ManagerImpl::answerCall (const CallID& call_id)
     call = getAccountLink (account_id)->getCall (call_id);
 
     if (call == NULL) {
-        _debug ("    answerCall: Call is null\n");
+        _debug ("    answerCall: Call is null");
     }
 
     // in any cases we have to detach from current communication
     if (hasCurrentCall()) {
 
-        _debug ("    answerCall: Currently conversing with %s\n", current_call_id.c_str());
+        _debug ("    answerCall: Currently conversing with %s", current_call_id.c_str());
         // if it is not a conference and is not a conference participant
 
         if (!isConference (current_call_id) && !participToConference (current_call_id)) {
-            _debug ("    answerCall: Put the current call (%s) on hold\n", current_call_id.c_str());
+            _debug ("    answerCall: Put the current call (%s) on hold", current_call_id.c_str());
             onHoldCall (current_call_id);
         }
 
         // if we are talking to a conference and we are answering an incoming call
         else if (isConference (current_call_id) && !participToConference (call_id)) {
-            _debug ("    answerCall: Detach main participant from conference\n");
+            _debug ("    answerCall: Detach main participant from conference");
             detachParticipant (default_id, current_call_id);
         }
 
@@ -409,7 +409,7 @@ ManagerImpl::answerCall (const CallID& call_id)
 bool
 ManagerImpl::hangupCall (const CallID& call_id)
 {
-    _debug ("ManagerImpl::hangupCall(%s)\n", call_id.c_str());
+    _debug ("ManagerImpl::hangupCall(%s)", call_id.c_str());
     PulseLayer *pulselayer;
     AccountID account_id;
     bool returnValue;
@@ -422,7 +422,7 @@ ManagerImpl::hangupCall (const CallID& call_id)
     // switchCall (call_id);
 
     /* Broadcast a signal over DBus */
-    _debug ("    hangupCall: Send DBUS call state change (HUNGUP) for id %s\n", call_id.c_str());
+    _debug ("    hangupCall: Send DBUS call state change (HUNGUP) for id %s", call_id.c_str());
 
     if (_dbus) _dbus->getCallManager()->callStateChanged (call_id, "HUNGUP");
 
@@ -432,7 +432,7 @@ ManagerImpl::hangupCall (const CallID& call_id)
 
     // stop streams
     if (audiolayer && (nbCalls <= 1)) {
-        _debug ("    hangupCall: stop audio stream, ther is only %i call(s) remaining\n", nbCalls);
+        _debug ("    hangupCall: stop audio stream, ther is only %i call(s) remaining", nbCalls);
         audiolayer->stopStream();
     }
 
@@ -463,7 +463,7 @@ ManagerImpl::hangupCall (const CallID& call_id)
         account_id = getAccountFromCall (call_id);
 
         if (account_id == AccountNULL) {
-            _debug ("! Manager Hangup Call: Call doesn't exists\n");
+            _debug ("! Manager Hangup Call: Call doesn't exists");
             return false;
         }
 
@@ -483,7 +483,7 @@ ManagerImpl::hangupCall (const CallID& call_id)
 bool
 ManagerImpl::hangupConference (const ConfID& id)
 {
-    _debug ("ManagerImpl::hangupConference()\n");
+    _debug ("ManagerImpl::hangupConference()");
 
     Conference *conf;
     ConferenceMap::iterator iter_conf = _conferencemap.find (id);
@@ -500,7 +500,7 @@ ManagerImpl::hangupConference (const ConfID& id)
         ParticipantSet::iterator iter_participant = participants.begin();
 
         while (iter_participant != participants.end()) {
-            _debug ("ManagerImpl::hangupConference participant %s\n", (*iter_participant).c_str());
+            _debug ("ManagerImpl::hangupConference participant %s", (*iter_participant).c_str());
 
             hangupCall (*iter_participant);
 
@@ -536,7 +536,7 @@ ManagerImpl::cancelCall (const CallID& id)
         accountid = getAccountFromCall (id);
 
         if (accountid == AccountNULL) {
-            _debug ("! Manager Cancel Call: Call doesn't exists\n");
+            _debug ("! Manager Cancel Call: Call doesn't exists");
             return false;
         }
 
@@ -560,13 +560,13 @@ ManagerImpl::onHoldCall (const CallID& call_id)
     AccountID account_id;
     bool returnValue;
 
-    _debug ("ManagerImpl::onHoldCall(%s)\n", call_id.c_str());
+    _debug ("ManagerImpl::onHoldCall(%s)", call_id.c_str());
 
     stopTone (true);
 
     CallID current_call_id = getCurrentCallId();
 
-    _debug ("    onHoldCall: try to put call %s on hold\n", call_id.c_str());
+    _debug ("    onHoldCall: try to put call %s on hold", call_id.c_str());
 
     /* Direct IP to IP call */
 
@@ -579,7 +579,7 @@ ManagerImpl::onHoldCall (const CallID& call_id)
         account_id = getAccountFromCall (call_id);
 
         if (account_id == AccountNULL) {
-            _debug ("    onHoldCall: Account ID %s or callid %s doesn't exists\n", account_id.c_str(), call_id.c_str());
+            _debug ("    onHoldCall: Account ID %s or callid %s doesn't exists", account_id.c_str(), call_id.c_str());
             return false;
         }
 
@@ -611,7 +611,7 @@ ManagerImpl::offHoldCall (const CallID& call_id)
 
     is_rec = false;
 
-    _debug ("ManagerImpl::offHoldCall(%s)\n", call_id.c_str());
+    _debug ("ManagerImpl::offHoldCall(%s)", call_id.c_str());
 
     stopTone (false);
 
@@ -622,10 +622,10 @@ ManagerImpl::offHoldCall (const CallID& call_id)
     if (hasCurrentCall()) {
         // if this is not a conferenceand this and is not a conference participant
         if (!isConference (current_call_id) && !participToConference (current_call_id)) {
-            _debug ("    offHoldCall: put current call (%s) on hold\n", current_call_id.c_str());
+            _debug ("    offHoldCall: put current call (%s) on hold", current_call_id.c_str());
             onHoldCall (current_call_id);
         } else if (isConference (current_call_id) && !participToConference (call_id)) {
-            _debug ("    offHoldCall Put current conference (%s) on hold\n", current_call_id.c_str());
+            _debug ("    offHoldCall Put current conference (%s) on hold", current_call_id.c_str());
             detachParticipant (default_id, current_call_id);
         }
     }
@@ -644,11 +644,11 @@ ManagerImpl::offHoldCall (const CallID& call_id)
         account_id = getAccountFromCall (call_id);
 
         if (account_id == AccountNULL) {
-            _debug ("Manager OffHold Call: Call doesn't exists\n");
+            _debug ("Manager OffHold Call: Call doesn't exists");
             return false;
         }
 
-        _debug ("Setting OFFHOLD, Account %s, callid %s\n", account_id.c_str(), call_id.c_str());
+        _debug ("Setting OFFHOLD, Account %s, callid %s", account_id.c_str(), call_id.c_str());
 
         is_rec = getAccountLink (account_id)->getCall (call_id)->isRecording();
         returnValue = getAccountLink (account_id)->offhold (call_id);
@@ -680,7 +680,7 @@ ManagerImpl::offHoldCall (const CallID& call_id)
 
 
     // codecName = getCurrentCodecName (call_id);
-    // _debug("ManagerImpl::hangupCall(): broadcast codec name %s \n",codecName.c_str());
+    // _debug("ManagerImpl::hangupCall(): broadcast codec name %s ",codecName.c_str());
 
     // if (_dbus) _dbus->getCallManager()->currentSelectedCodec (call_id,codecName.c_str());
 
@@ -710,7 +710,7 @@ ManagerImpl::transferCall (const CallID& call_id, const std::string& to)
         accountid = getAccountFromCall (call_id);
 
         if (accountid == AccountNULL) {
-            _debug ("! Manager Transfer Call: Call doesn't exists\n");
+            _debug ("! Manager Transfer Call: Call doesn't exists");
             return false;
         }
 
@@ -771,7 +771,7 @@ ManagerImpl::refuseCall (const CallID& id)
     // AudioLayer* audiolayer = getAudioDriver();
 
     if (nbCalls <= 1) {
-        _debug ("    hangupCall: stop audio stream, ther is only %i call(s) remaining\n", nbCalls);
+        _debug ("    hangupCall: stop audio stream, ther is only %i call(s) remaining", nbCalls);
 
         AudioLayer* audiolayer = getAudioDriver();
         audiolayer->stopStream();
@@ -788,7 +788,7 @@ ManagerImpl::refuseCall (const CallID& id)
         accountid = getAccountFromCall (id);
 
         if (accountid == AccountNULL) {
-            _debug ("! Manager OffHold Call: Call doesn't exists\n");
+            _debug ("! Manager OffHold Call: Call doesn't exists");
             return false;
         }
 
@@ -817,7 +817,7 @@ ManagerImpl::refuseCall (const CallID& id)
 Conference*
 ManagerImpl::createConference (const CallID& id1, const CallID& id2)
 {
-    _debug ("ManagerImpl::createConference()\n");
+    _debug ("ManagerImpl::createConference()");
 
     Conference* conf = new Conference();
 
@@ -838,21 +838,21 @@ void
 ManagerImpl::removeConference (const ConfID& conference_id)
 {
 
-    _debug ("ManagerImpl::removeConference(%s)\n", conference_id.c_str());
+    _debug ("ManagerImpl::removeConference(%s)", conference_id.c_str());
 
     Conference* conf = NULL;
 
-    _debug ("    removeConference: _conferencemap.size: %i\n", (int) _conferencemap.size());
+    _debug ("    removeConference: _conferencemap.size: %i", (int) _conferencemap.size());
     ConferenceMap::iterator iter = _conferencemap.find (conference_id);
 
     if (iter != _conferencemap.end()) {
-        _debug ("    removeConference: Found conference id %s in conferencemap\n", conference_id.c_str());
+        _debug ("    removeConference: Found conference id %s in conferencemap", conference_id.c_str());
         conf = iter->second;
     }
 
     if (conf == NULL) {
 
-        _debug ("    removeConference: Error conference not found\n");
+        _debug ("    removeConference: Error conference not found");
         return;
     }
 
@@ -875,15 +875,15 @@ ManagerImpl::removeConference (const ConfID& conference_id)
     }
 
     // Then remove the conference from the conference map
-    _debug ("ManagerImpl:: remove conference %s\n", conference_id.c_str());
+    _debug ("ManagerImpl:: remove conference %s", conference_id.c_str());
 
     if (_conferencemap.erase (conference_id) == 1)
-        _debug ("ManagerImpl:: conference %s removed succesfully\n", conference_id.c_str());
+        _debug ("ManagerImpl:: conference %s removed succesfully", conference_id.c_str());
     else
-        _debug ("ManagerImpl:: error cannot remove conference id: %s\n", conference_id.c_str());
+        _debug ("ManagerImpl:: error cannot remove conference id: %s", conference_id.c_str());
 
     // broadcast a signal over dbus
-    _debug ("ManagerImpl::removeConference broadcast call removed on dbus: %s\n", conference_id.c_str());
+    _debug ("ManagerImpl::removeConference broadcast call removed on dbus: %s", conference_id.c_str());
 
     _dbus->getCallManager()->conferenceRemoved (conference_id);
 
@@ -911,7 +911,7 @@ ManagerImpl::getConferenceFromCallID (const CallID& call_id)
 void
 ManagerImpl::holdConference (const CallID& id)
 {
-    _debug ("ManagerImpl::holdConference()\n");
+    _debug ("ManagerImpl::holdConference()");
 
     Conference *conf;
     ConferenceMap::iterator iter_conf = _conferencemap.find (id);
@@ -927,7 +927,7 @@ ManagerImpl::holdConference (const CallID& id)
         ParticipantSet::iterator iter_participant = participants.begin();
 
         while (iter_participant != participants.end()) {
-            _debug ("    holdConference: participant %s\n", (*iter_participant).c_str());
+            _debug ("    holdConference: participant %s", (*iter_participant).c_str());
             currentAccountId = getAccountFromCall (*iter_participant);
             call = getAccountLink (currentAccountId)->getCall (*iter_participant);
 
@@ -954,7 +954,7 @@ void
 ManagerImpl::unHoldConference (const CallID& id)
 {
 
-    _debug ("ManagerImpl::unHoldConference()\n");
+    _debug ("ManagerImpl::unHoldConference()");
 
     Conference *conf;
     ConferenceMap::iterator iter_conf = _conferencemap.find (id);
@@ -970,7 +970,7 @@ ManagerImpl::unHoldConference (const CallID& id)
         ParticipantSet::iterator iter_participant = participants.begin();
 
         while (iter_participant != participants.end()) {
-            _debug ("    unholdConference: participant %s\n", (*iter_participant).c_str());
+            _debug ("    unholdConference: participant %s", (*iter_participant).c_str());
             currentAccountId = getAccountFromCall (*iter_participant);
             call = getAccountLink (currentAccountId)->getCall (*iter_participant);
 
@@ -1025,7 +1025,7 @@ ManagerImpl::participToConference (const CallID& call_id)
 void
 ManagerImpl::addParticipant (const CallID& call_id, const CallID& conference_id)
 {
-    _debug ("ManagerImpl::addParticipant(%s, %s)\n", call_id.c_str(), conference_id.c_str());
+    _debug ("ManagerImpl::addParticipant(%s, %s)", call_id.c_str(), conference_id.c_str());
 
     std::map<std::string, std::string> call_details = getCallDetails (call_id);
 
@@ -1051,7 +1051,7 @@ ManagerImpl::addParticipant (const CallID& call_id, const CallID& conference_id)
 
     addMainParticipant (conference_id);
 
-    _debug ("    addParticipant: enter main process\n");
+    _debug ("    addParticipant: enter main process");
 
     if (iter != _conferencemap.end()) {
 
@@ -1069,15 +1069,15 @@ ManagerImpl::addParticipant (const CallID& call_id, const CallID& conference_id)
 
         iter_details = call_details.find ("CALL_STATE");
 
-        _debug ("    addParticipant: call state: %s\n", iter_details->second.c_str());
+        _debug ("    addParticipant: call state: %s", iter_details->second.c_str());
 
         if (iter_details->second == "HOLD") {
-            _debug ("    OFFHOLD %s\n", call_id.c_str());
+            _debug ("    OFFHOLD %s", call_id.c_str());
 
             // offHoldCall create a new rtp session which use addStream to bind participant
             offHoldCall (call_id);
         } else if (iter_details->second == "INCOMING") {
-            _debug ("    ANSWER %s\n", call_id.c_str());
+            _debug ("    ANSWER %s", call_id.c_str());
             // answerCall create a new rtp session which use addStream to bind participant
             answerCall (call_id);
         } else if (iter_details->second == "CURRENT") {
@@ -1103,7 +1103,7 @@ ManagerImpl::addParticipant (const CallID& call_id, const CallID& conference_id)
 
         _audiodriver->getMainBuffer()->flush (default_id);
     } else {
-        _debug ("    addParticipant: Error, conference %s conference_id not found!\n", conference_id.c_str());
+        _debug ("    addParticipant: Error, conference %s conference_id not found!", conference_id.c_str());
     }
 
 }
@@ -1162,8 +1162,8 @@ ManagerImpl::addMainParticipant (const CallID& conference_id)
 void
 ManagerImpl::joinParticipant (const CallID& call_id1, const CallID& call_id2)
 {
-    _debug ("ManagerImpl::joinParticipant(%s, %s)\n", call_id1.c_str(), call_id2.c_str());
-    // _debug("    Current call ID %s\n", getCurrentCallId().c_str());
+    _debug ("ManagerImpl::joinParticipant(%s, %s)", call_id1.c_str(), call_id2.c_str());
+    // _debug("    Current call ID %s", getCurrentCallId().c_str());
 
     std::map<std::string, std::string> call1_details = getCallDetails (call_id1);
     std::map<std::string, std::string> call2_details = getCallDetails (call_id2);
@@ -1174,7 +1174,7 @@ ManagerImpl::joinParticipant (const CallID& call_id1, const CallID& call_id2)
     Call* call = NULL;
 
     CallID current_call_id = getCurrentCallId();
-    _debug ("    joinParticipant: current_call_id %s\n", current_call_id.c_str());
+    _debug ("    joinParticipant: current_call_id %s", current_call_id.c_str());
 
 
     // detach from the conference and switch to this conference
@@ -1186,7 +1186,7 @@ ManagerImpl::joinParticipant (const CallID& call_id1, const CallID& call_id2)
             onHoldCall (current_call_id);
     }
 
-    _debug ("    joinParticipant: create a conference\n");
+    _debug ("    joinParticipant: create a conference");
 
     Conference *conf = createConference (call_id1, call_id2);
     switchCall (conf->getConfID());
@@ -1196,23 +1196,23 @@ ManagerImpl::joinParticipant (const CallID& call_id1, const CallID& call_id2)
     call->setConfId (conf->getConfID());
 
     iter_details = call1_details.find ("CALL_STATE");
-    _debug ("    joinParticipant: call1 %s state: %s\n", call_id1.c_str(), iter_details->second.c_str());
+    _debug ("    joinParticipant: call1 %s state: %s", call_id1.c_str(), iter_details->second.c_str());
 
     if (iter_details->second == "HOLD") {
-        _debug ("    OFFHOLD %s\n", call_id1.c_str());
+        _debug ("    OFFHOLD %s", call_id1.c_str());
         offHoldCall (call_id1);
     } else if (iter_details->second == "INCOMING") {
-        _debug ("    ANSWER %s\n", call_id1.c_str());
+        _debug ("    ANSWER %s", call_id1.c_str());
         answerCall (call_id1);
     } else if (iter_details->second == "CURRENT") {
-        _debug ("    CURRENT %s\n", call_id1.c_str());
+        _debug ("    CURRENT %s", call_id1.c_str());
         _audiodriver->getMainBuffer()->unBindAll (call_id1);
         conf->bindParticipant (call_id1);
     } else if (iter_details->second == "INACTIVE") {
-        _debug ("    INACTIVE %s\n", call_id1.c_str());
+        _debug ("    INACTIVE %s", call_id1.c_str());
         answerCall (call_id1);
     } else {
-        _debug ("    CAll State not recognized\n");
+        _debug ("    CAll State not recognized");
     }
 
     currentAccountId = getAccountFromCall (call_id2);
@@ -1221,23 +1221,23 @@ ManagerImpl::joinParticipant (const CallID& call_id1, const CallID& call_id2)
     call->setConfId (conf->getConfID());
 
     iter_details = call2_details.find ("CALL_STATE");
-    _debug ("    joinParticipant: call2 %s state: %s\n", call_id2.c_str(), iter_details->second.c_str());
+    _debug ("    joinParticipant: call2 %s state: %s", call_id2.c_str(), iter_details->second.c_str());
 
     if (iter_details->second == "HOLD") {
-        _debug ("    OFFHOLD %s\n", call_id2.c_str());
+        _debug ("    OFFHOLD %s", call_id2.c_str());
         offHoldCall (call_id2);
     } else if (iter_details->second == "INCOMING") {
-        _debug ("    ANSWER %s\n", call_id2.c_str());
+        _debug ("    ANSWER %s", call_id2.c_str());
         answerCall (call_id2);
     } else if (iter_details->second == "CURRENT") {
-        _debug ("    CURRENT %s\n", call_id2.c_str());
+        _debug ("    CURRENT %s", call_id2.c_str());
         _audiodriver->getMainBuffer()->unBindAll (call_id2);
         conf->bindParticipant (call_id2);
     } else if (iter_details->second == "INACTIVE") {
-        _debug ("    INACTIVE %s\n", call_id2.c_str());
+        _debug ("    INACTIVE %s", call_id2.c_str());
         answerCall (call_id2);
     } else {
-        _debug ("    CAll State not recognized\n");
+        _debug ("    CAll State not recognized");
     }
 
     // finally bind main participant to conference
@@ -1252,7 +1252,7 @@ ManagerImpl::joinParticipant (const CallID& call_id1, const CallID& call_id2)
 void
 ManagerImpl::detachParticipant (const CallID& call_id, const CallID& current_id)
 {
-    _debug ("ManagerImpl::detachParticipant(%s)\n", call_id.c_str());
+    _debug ("ManagerImpl::detachParticipant(%s)", call_id.c_str());
 
     CallID current_call_id = current_id;
 
@@ -1274,7 +1274,7 @@ ManagerImpl::detachParticipant (const CallID& call_id, const CallID& current_id)
 
         if (conf != NULL) {
 
-            _debug ("    detachParticipant: detaching participant %s\n", call_id.c_str());
+            _debug ("    detachParticipant: detaching participant %s", call_id.c_str());
 
             std::map<std::string, std::string> call_details = getCallDetails (call_id);
             std::map<std::string, std::string>::iterator iter_details;
@@ -1284,7 +1284,7 @@ ManagerImpl::detachParticipant (const CallID& call_id, const CallID& current_id)
             if (iter_details->second == "RINGING") {
                 removeParticipant (call_id);
             } else {
-                _debug ("    ONHOLD %s\n", call_id.c_str());
+                _debug ("    ONHOLD %s", call_id.c_str());
                 onHoldCall (call_id);
 
                 removeParticipant (call_id);
@@ -1294,11 +1294,11 @@ ManagerImpl::detachParticipant (const CallID& call_id, const CallID& current_id)
         } else {
 
 
-            _debug ("    detachParticipant: call is not conferencing, cannot detach\n");
+            _debug ("    detachParticipant: call is not conferencing, cannot detach");
 
         }
     } else {
-        _debug ("    detachParticipant: unbind main participant from all\n");
+        _debug ("    detachParticipant: unbind main participant from all");
         _audiodriver->getMainBuffer()->unBindAll (default_id);
 
         if (isConference (current_call_id)) {
@@ -1321,7 +1321,7 @@ ManagerImpl::detachParticipant (const CallID& call_id, const CallID& current_id)
 void
 ManagerImpl::removeParticipant (const CallID& call_id)
 {
-    _debug ("ManagerImpl::removeParticipant(%s)\n", call_id.c_str());
+    _debug ("ManagerImpl::removeParticipant(%s)", call_id.c_str());
 
     // TODO: add conference_id as a second parameter
     Conference* conf;
@@ -1337,12 +1337,12 @@ ManagerImpl::removeParticipant (const CallID& call_id)
     ConferenceMap::iterator iter = conf_map.find (call->getConfId());
 
     if (iter == conf_map.end()) {
-        _debug ("    no conference created, cannot remove participant \n");
+        _debug ("    no conference created, cannot remove participant ");
     } else {
 
         conf = iter->second;
 
-        _debug ("    removeParticipant %s\n", call_id.c_str());
+        _debug ("    removeParticipant %s", call_id.c_str());
         conf->remove (call_id);
         call->setConfId ("");
 
@@ -1355,7 +1355,7 @@ void
 ManagerImpl::processRemainingParticipant (CallID current_call_id, Conference *conf)
 {
 
-    _debug ("ManagerImpl::processRemainingParticipant()\n");
+    _debug ("ManagerImpl::processRemainingParticipant()");
 
     if (conf->getNbParticipants() > 1) {
 
@@ -1410,7 +1410,7 @@ ManagerImpl::processRemainingParticipant (CallID current_call_id, Conference *co
 void
 ManagerImpl::joinConference (const CallID& conf_id1, const CallID& conf_id2)
 {
-    _debug ("ManagerImpl::joinConference(%s, %s)\n", conf_id1.c_str(), conf_id2.c_str());
+    _debug ("ManagerImpl::joinConference(%s, %s)", conf_id1.c_str(), conf_id2.c_str());
 
     ConferenceMap::iterator iter;
 
@@ -1445,7 +1445,7 @@ ManagerImpl::joinConference (const CallID& conf_id1, const CallID& conf_id2)
 void
 ManagerImpl::addStream (const CallID& call_id)
 {
-    _debug ("ManagerImpl::addStream %s\n", call_id.c_str());
+    _debug ("ManagerImpl::addStream %s", call_id.c_str());
 
     AccountID currentAccountId;
     Call* call = NULL;
@@ -1461,7 +1461,7 @@ ManagerImpl::addStream (const CallID& call_id)
         if (iter != _conferencemap.end()) {
             Conference* conf = iter->second;
 
-            _debug ("    addStream: bind call %s to conference %s\n", call_id.c_str(), conf->getConfID().c_str());
+            _debug ("    addStream: bind call %s to conference %s", call_id.c_str(), conf->getConfID().c_str());
 
             conf->bindParticipant (call_id);
 
@@ -1483,7 +1483,7 @@ ManagerImpl::addStream (const CallID& call_id)
 
     } else {
 
-        _debug ("    addStream: bind call %s to main\n", call_id.c_str());
+        _debug ("    addStream: bind call %s to main", call_id.c_str());
 
         // bind to main
         getAudioDriver()->getMainBuffer()->bindCallID (call_id);
@@ -1498,7 +1498,7 @@ ManagerImpl::addStream (const CallID& call_id)
 void
 ManagerImpl::removeStream (const CallID& call_id)
 {
-    _debug ("ManagerImpl::removeStream %s\n", call_id.c_str());
+    _debug ("ManagerImpl::removeStream %s", call_id.c_str());
 
     getAudioDriver()->getMainBuffer()->unBindAll (call_id);
 
@@ -1512,7 +1512,7 @@ ManagerImpl::removeStream (const CallID& call_id)
 bool
 ManagerImpl::saveConfig (void)
 {
-    _debug ("Saving Configuration to XDG directory %s ... \n", _path.c_str());
+    _debug ("Saving Configuration to XDG directory %s ... ", _path.c_str());
     setConfig (AUDIO, VOLUME_SPKR, getSpkrVolume());
     setConfig (AUDIO, VOLUME_MICRO, getMicVolume());
 
@@ -1603,14 +1603,14 @@ ManagerImpl::playDtmf (char code, bool isTalking)
     AudioLayer *audiolayer;
     SFLDataFormat *buf;
 
-    _debug ("ManagerImpl::playDtmf\n");
+    _debug ("ManagerImpl::playDtmf");
 
     stopTone (false);
 
     bool hasToPlayTone = getConfigBool (SIGNALISATION, PLAY_DTMF);
 
     if (!hasToPlayTone) {
-        _debug ("    playDtmf: Do not have to play a tone...\n");
+        _debug ("    playDtmf: Do not have to play a tone...");
         return false;
     }
 
@@ -1618,7 +1618,7 @@ ManagerImpl::playDtmf (char code, bool isTalking)
     pulselen = getConfigInt (SIGNALISATION, PULSE_LENGTH);
 
     if (!pulselen) {
-        _debug ("    playDtmf: Pulse length is not set...\n");
+        _debug ("    playDtmf: Pulse length is not set...");
         return false;
     }
 
@@ -1630,7 +1630,7 @@ ManagerImpl::playDtmf (char code, bool isTalking)
 
     // fast return, no sound, so no dtmf
     if (audiolayer==0 || _dtmfKey == 0) {
-        _debug ("    playDtmf: Error no audio layer...\n");
+        _debug ("    playDtmf: Error no audio layer...");
         return false;
     }
 
@@ -1640,9 +1640,9 @@ ManagerImpl::playDtmf (char code, bool isTalking)
     //                            ms/s
     size = (int) ( (pulselen * (float) audiolayer->getSampleRate()) / 1000);
 
-    _debug ("DTMF pulselen: %i\n", pulselen);
+    _debug ("DTMF pulselen: %i", pulselen);
 
-    _debug ("DTMF size: %i\n", size);
+    _debug ("DTMF size: %i", size);
 
     // this buffer is for mono
     // TODO <-- this should be global and hide if same size
@@ -1660,7 +1660,7 @@ ManagerImpl::playDtmf (char code, bool isTalking)
         audiolayer->startStream();
         audiolayer->putUrgent (buf, size * sizeof (SFLDataFormat));
     } else {
-        _debug ("    playDtmf: Error cannot play dtmf\n");
+        _debug ("    playDtmf: Error cannot play dtmf");
     }
 
     ret = true;
@@ -1723,7 +1723,7 @@ ManagerImpl::incomingCall (Call* call, const AccountID& accountId)
 
     stopTone (false);
 
-    _debug ("Incoming call %s for account %s\n", call->getCallId().data(), accountId.c_str());
+    _debug ("Incoming call %s for account %s", call->getCallId().data(), accountId.c_str());
 
     associateCallToAccount (call->getCallId(), accountId);
 
@@ -1748,7 +1748,7 @@ ManagerImpl::incomingCall (Call* call, const AccountID& accountId)
 
     }
 
-    _debug ("ManagerImpl::incomingCall :: hasCurrentCall() %i \n", hasCurrentCall());
+    _debug ("ManagerImpl::incomingCall :: hasCurrentCall() %i ", hasCurrentCall());
 
     if (!hasCurrentCall()) {
 
@@ -1772,7 +1772,7 @@ ManagerImpl::incomingCall (Call* call, const AccountID& accountId)
 
     display_name = call->getDisplayName();
 
-    // _debug(    "incomingCall from: %s, number: %s, display_name: %s\n", from.c_str(), number.c_str(), display_name.c_str());
+    // _debug(    "incomingCall from: %s, number: %s, display_name: %s", from.c_str(), number.c_str(), display_name.c_str());
 
     if (from != "" && number != "") {
         from.append (" <");
@@ -1788,13 +1788,13 @@ ManagerImpl::incomingCall (Call* call, const AccountID& accountId)
     CallIDSet::iterator iter = _waitingCall.begin();
     while (iter != _waitingCall.end()) {
         CallID ident = *iter;
-        _debug("ManagerImpl::incomingCall :: CALL iteration: %s \n",ident.c_str());
+        _debug("ManagerImpl::incomingCall :: CALL iteration: %s ",ident.c_str());
         ++iter;
     }
     */
 
     /* Broadcast a signal over DBus */
-    _debug ("From: %s, Number: %s, DisplayName: %s\n", from.c_str(), number.c_str(), display_name.c_str());
+    _debug ("From: %s, Number: %s, DisplayName: %s", from.c_str(), number.c_str(), display_name.c_str());
 
     display = display_name;
 
@@ -1836,7 +1836,7 @@ ManagerImpl::peerAnsweredCall (const CallID& id)
 
     // std::string codecName = getCurrentCodecName (id);
 
-    // _debug("ManagerImpl::hangupCall(): broadcast codec name %s \n",codecName.c_str());
+    // _debug("ManagerImpl::hangupCall(): broadcast codec name %s ",codecName.c_str());
     // if (_dbus) _dbus->getCallManager()->currentSelectedCodec (id,codecName.c_str());
 
     // Required if there have been no sip reinvite, in this case we must reinit buffers since the
@@ -1864,7 +1864,7 @@ ManagerImpl::peerHungupCall (const CallID& call_id)
     AccountID account_id;
     bool returnValue;
 
-    _debug ("ManagerImpl::peerHungupCall(%s)\n", call_id.c_str());
+    _debug ("ManagerImpl::peerHungupCall(%s)", call_id.c_str());
 
     // store the current call id
     CallID current_call_id = getCurrentCallId();
@@ -1893,7 +1893,7 @@ ManagerImpl::peerHungupCall (const CallID& call_id)
     // stop streams
 
     if (nbCalls <= 1) {
-        _debug ("    hangupCall: stop audio stream, ther is only %i call(s) remaining\n", nbCalls);
+        _debug ("    hangupCall: stop audio stream, ther is only %i call(s) remaining", nbCalls);
 
         AudioLayer* audiolayer = getAudioDriver();
         audiolayer->stopStream();
@@ -1909,7 +1909,7 @@ ManagerImpl::peerHungupCall (const CallID& call_id)
         account_id = getAccountFromCall (call_id);
 
         if (account_id == AccountNULL) {
-            _debug ("peerHungupCall: Call doesn't exists\n");
+            _debug ("peerHungupCall: Call doesn't exists");
             return;
         }
 
@@ -1932,7 +1932,7 @@ ManagerImpl::peerHungupCall (const CallID& call_id)
 void
 ManagerImpl::callBusy (const CallID& id)
 {
-    _debug ("Call busy\n");
+    _debug ("Call busy");
 
     if (_dbus) _dbus->getCallManager()->callStateChanged (id, "BUSY");
 
@@ -1952,7 +1952,7 @@ ManagerImpl::callFailure (const CallID& id)
 {
     if (_dbus) _dbus->getCallManager()->callStateChanged (id, "FAILURE");
 
-    _debug ("CALL ID = %s\n" , id.c_str());
+    _debug ("CALL ID = %s" , id.c_str());
 
     if (isCurrentCall (id)) {
         playATone (Tone::TONE_BUSY);
@@ -1989,7 +1989,7 @@ bool ManagerImpl::playATone (Tone::TONEID toneId)
     AudioLayer *audiolayer;
     // unsigned int nbSamples;
 
-    _debug ("ManagerImpl::playATone\n");
+    _debug ("ManagerImpl::playATone");
 
     hasToPlayTone = getConfigBool (SIGNALISATION, PLAY_TONES);
 
@@ -2032,7 +2032,7 @@ void ManagerImpl::stopTone (bool stopAudio=true)
 {
     bool hasToPlayTone;
 
-    _debug ("ManagerImpl::stopTone\n");
+    _debug ("ManagerImpl::stopTone");
 
     hasToPlayTone = getConfigBool (SIGNALISATION, PLAY_TONES);
 
@@ -2088,7 +2088,7 @@ ManagerImpl::congestion ()
 void
 ManagerImpl::ringback ()
 {
-    _debug ("ManagerImpl::ringback\n");
+    _debug ("ManagerImpl::ringback");
 
     playATone (Tone::TONE_RINGTONE);
 }
@@ -2099,7 +2099,7 @@ ManagerImpl::ringback ()
 void
 ManagerImpl::ringtone()
 {
-    _debug ("ManagerImpl::ringtone\n");
+    _debug ("ManagerImpl::ringtone");
     std::string ringchoice;
     AudioLayer *audiolayer;
     AudioCodec *codecForTone;
@@ -2110,7 +2110,7 @@ ManagerImpl::ringtone()
 
     if (isRingtoneEnabled()) {
 
-        _debug ("  Tone is enabled\n");
+        _debug ("  Tone is enabled");
         //TODO Comment this because it makes the daemon crashes since the main thread
         //synchronizes the ringtone thread.
 
@@ -2161,7 +2161,7 @@ ManagerImpl::ringtone()
 AudioLoop*
 ManagerImpl::getTelephoneTone()
 {
-    // _debug("ManagerImpl::getTelephoneTone()\n");
+    // _debug("ManagerImpl::getTelephoneTone()");
     if (_telephoneTone != 0) {
         ost::MutexLock m (_toneMutex);
         return _telephoneTone->getCurrentTone();
@@ -2173,7 +2173,7 @@ ManagerImpl::getTelephoneTone()
 AudioLoop*
 ManagerImpl::getTelephoneFile()
 {
-    // _debug("ManagerImpl::getTelephoneFile()\n");
+    // _debug("ManagerImpl::getTelephoneFile()");
     ost::MutexLock m (_toneMutex);
 
     if (_audiofile.isStarted()) {
@@ -2191,7 +2191,7 @@ void ManagerImpl::notificationIncomingCall (void)
 
     audiolayer = getAudioDriver();
 
-    _debug ("ManagerImpl::notificationIncomingCall\n");
+    _debug ("ManagerImpl::notificationIncomingCall");
 
     if (audiolayer != 0) {
         samplerate = audiolayer->getSampleRate();
@@ -2221,7 +2221,7 @@ ManagerImpl::createSettingsPath (void)
 
     std::string xdg_config, xdg_env;
 
-    _debug ("XDG_CONFIG_HOME: %s\n", XDG_CONFIG_HOME);
+    _debug ("XDG_CONFIG_HOME: %s", XDG_CONFIG_HOME);
 
     xdg_config = std::string (HOMEDIR) + DIR_SEPARATOR_STR + ".config" + DIR_SEPARATOR_STR + PROGDIR;
 
@@ -2235,7 +2235,7 @@ ManagerImpl::createSettingsPath (void)
     if (mkdir (_path.data(), 0700) != 0) {
         // If directory	creation failed
         if (errno != EEXIST) {
-            _debug ("Cannot create directory: %s\n", strerror (errno));
+            _debug ("Cannot create directory: %s", strerror (errno));
             return -1;
         }
     }
@@ -2252,7 +2252,7 @@ ManagerImpl::createSettingsPath (void)
 void
 ManagerImpl::initConfigFile (bool load_user_value, std::string alternate)
 {
-    _debug ("ManagerImpl::InitConfigFile\n");
+    _debug ("ManagerImpl::InitConfigFile");
 
     // Default values, that will be overwritten by the call to
     // 'populateFromFile' below.
@@ -2414,11 +2414,11 @@ ManagerImpl::initAudioCodec (void)
 void
 ManagerImpl::setActiveCodecList (const std::vector<  std::string >& list)
 {
-    _debug ("Set active codecs list\n");
+    _debug ("Set active codecs list");
     _codecDescriptorMap.saveActiveCodecs (list);
     // setConfig
     std::string s = serialize (list);
-    _debug ("Setting codec with payload number %s to the active list\n", s.c_str());
+    _debug ("Setting codec with payload number %s to the active list", s.c_str());
     setConfig ("Audio", "ActiveCodecs", s);
 }
 
@@ -2463,7 +2463,7 @@ ManagerImpl::serialize (std::vector<std::string> v)
 std::vector <std::string>
 ManagerImpl::getActiveCodecList (void)
 {
-    _debug ("ManagerImpl::getActiveCodecList\n");
+    _debug ("ManagerImpl::getActiveCodecList");
     std::vector< std::string > v;
     CodecOrder active = _codecDescriptorMap.getActiveCodecs();
     unsigned int i=0;
@@ -2473,7 +2473,7 @@ ManagerImpl::getActiveCodecList (void)
         std::stringstream ss;
         ss << active[i];
         v.push_back ( (ss.str()).data());
-        _debug ("Codec with payload number %s is active\n", ss.str().data());
+        _debug ("Codec with payload number %s is active", ss.str().data());
         i++;
     }
 
@@ -2552,7 +2552,7 @@ std::vector<std::string>
 ManagerImpl::getInputAudioPluginList (void)
 {
     std::vector<std::string> v;
-    _debug ("Get input audio plugin list\n");
+    _debug ("Get input audio plugin list");
 
     v.push_back ("default");
     v.push_back ("surround40");
@@ -2568,7 +2568,7 @@ std::vector<std::string>
 ManagerImpl::getOutputAudioPluginList (void)
 {
     std::vector<std::string> v;
-    _debug ("Get output audio plugin list\n");
+    _debug ("Get output audio plugin list");
 
     v.push_back (PCM_DEFAULT);
     v.push_back (PCM_DMIX);
@@ -2585,7 +2585,7 @@ ManagerImpl::setInputAudioPlugin (const std::string& audioPlugin)
     int layer = _audiodriver -> getLayerType();
 
     if (CHECK_INTERFACE (layer , ALSA)) {
-        _debug ("Set input audio plugin\n");
+        _debug ("Set input audio plugin");
         _audiodriver -> setErrorMessage (-1);
         _audiodriver -> openDevice (_audiodriver -> getIndexIn(),
                                     _audiodriver -> getIndexOut(),
@@ -2609,7 +2609,7 @@ ManagerImpl::setOutputAudioPlugin (const std::string& audioPlugin)
 
     int res;
 
-    _debug ("Set output audio plugin\n");
+    _debug ("Set output audio plugin");
     _audiodriver -> setErrorMessage (-1);
     res = _audiodriver -> openDevice (_audiodriver -> getIndexIn(),
                                       _audiodriver -> getIndexOut(),
@@ -2631,7 +2631,7 @@ ManagerImpl::setOutputAudioPlugin (const std::string& audioPlugin)
 std::vector<std::string>
 ManagerImpl::getAudioOutputDeviceList (void)
 {
-    _debug ("Get audio output device list\n");
+    _debug ("Get audio output device list");
     AlsaLayer *layer;
     std::vector <std::string> devices;
 
@@ -2651,14 +2651,14 @@ ManagerImpl::setAudioOutputDevice (const int index)
 {
     AlsaLayer *alsalayer;
     std::string alsaplugin;
-    _debug ("Set audio output device: %i\n", index);
+    _debug ("Set audio output device: %i", index);
 
     _audiodriver -> setErrorMessage (-1);
 
     alsalayer = dynamic_cast<AlsaLayer*> (getAudioDriver ());
     alsaplugin = alsalayer->getAudioPlugin ();
 
-    _debug ("  set output plugin: %s\n", alsaplugin.c_str());
+    _debug ("  set output plugin: %s", alsaplugin.c_str());
 
     _audiodriver->openDevice (_audiodriver->getIndexIn(), index, _audiodriver->getSampleRate(), _audiodriver->getFrameSize(), SFL_PCM_PLAYBACK, alsaplugin);
 
@@ -2696,14 +2696,14 @@ ManagerImpl::setAudioInputDevice (const int index)
     AlsaLayer *alsalayer;
     std::string alsaplugin;
 
-    _debug ("Set audio input device %i\n", index);
+    _debug ("Set audio input device %i", index);
 
     _audiodriver -> setErrorMessage (-1);
 
     alsalayer = dynamic_cast<AlsaLayer*> (getAudioDriver ());
     alsaplugin = alsalayer->getAudioPlugin ();
 
-    _debug ("  set input plugin: %s\n", alsaplugin.c_str());
+    _debug ("  set input plugin: %s", alsaplugin.c_str());
 
     _audiodriver->openDevice (index, _audiodriver->getIndexOut(), _audiodriver->getSampleRate(), _audiodriver->getFrameSize(), SFL_PCM_CAPTURE, alsaplugin);
 
@@ -2720,7 +2720,7 @@ ManagerImpl::setAudioInputDevice (const int index)
 std::vector<std::string>
 ManagerImpl::getCurrentAudioDevicesIndex()
 {
-    _debug ("Get current audio devices index\n");
+    _debug ("Get current audio devices index");
     std::vector<std::string> v;
     std::stringstream ssi , sso;
     sso << _audiodriver->getIndexOut();
@@ -2767,7 +2767,7 @@ ManagerImpl::getRingtoneChoice (void)
         tone_path = tone_name ;
     }
 
-    _debug ("%s\n", tone_path.c_str());
+    _debug ("%s", tone_path.c_str());
 
     return tone_path;
 }
@@ -2788,7 +2788,7 @@ ManagerImpl::getRecordPath (void)
 void
 ManagerImpl::setRecordPath (const std::string& recPath)
 {
-    _debug ("ManagerImpl::setRecordPath(%s)! \n", recPath.c_str());
+    _debug ("ManagerImpl::setRecordPath(%s)! ", recPath.c_str());
     setConfig (AUDIO, RECORD_PATH, recPath);
 }
 
@@ -2847,7 +2847,7 @@ void
 ManagerImpl::setRecordingCall (const CallID& id)
 {
     /*
-    _debug ("ManagerImpl::setRecording()! \n");
+    _debug ("ManagerImpl::setRecording()! ");
     AccountID accountid = getAccountFromCall (id);
 
     getAccountLink (accountid)->setRecording (id);
@@ -2862,7 +2862,7 @@ bool
 ManagerImpl::isRecording (const CallID& id)
 {
     /*
-    _debug ("ManagerImpl::isRecording()! \n");
+    _debug ("ManagerImpl::isRecording()! ");
     AccountID accountid = getAccountFromCall (id);
 
     return getAccountLink (accountid)->isRecording (id);
@@ -2954,7 +2954,7 @@ void ManagerImpl::setAudioManager (const int32_t& api)
     int type;
     std::string alsaPlugin;
 
-    _debug ("Setting audio manager \n");
+    _debug ("Setting audio manager ");
 
     if (!_audiodriver)
         return;
@@ -2962,7 +2962,7 @@ void ManagerImpl::setAudioManager (const int32_t& api)
     type = _audiodriver->getLayerType();
 
     if (type == api) {
-        _debug ("Audio manager chosen already in use. No changes made. \n");
+        _debug ("Audio manager chosen already in use. No changes made. ");
         return;
     }
 
@@ -2989,7 +2989,7 @@ void
 ManagerImpl::notifyErrClient (const int32_t& errCode)
 {
     if (_dbus) {
-        _debug ("NOTIFY ERR NUMBER %i\n" , errCode);
+        _debug ("NOTIFY ERR NUMBER %i" , errCode);
         _dbus -> getConfigurationManager() -> errorAlert (errCode);
     }
 }
@@ -2999,7 +2999,7 @@ ManagerImpl::getAudioDeviceIndex (const std::string name)
 {
     AlsaLayer *alsalayer;
 
-    _debug ("Get audio device index\n");
+    _debug ("Get audio device index");
 
     alsalayer = dynamic_cast<AlsaLayer *> (getAudioDriver());
 
@@ -3014,7 +3014,7 @@ ManagerImpl::getCurrentAudioOutputPlugin (void)
 {
     AlsaLayer *alsalayer;
 
-    _debug ("Get alsa plugin\n");
+    _debug ("Get alsa plugin");
 
     alsalayer = dynamic_cast<AlsaLayer *> (getAudioDriver());
 
@@ -3055,16 +3055,16 @@ ManagerImpl::initAudioDriver (void)
             _audiodriver->setMainBuffer (&_mainBuffer);
         }
     } else
-        _debug ("Error - Audio API unknown\n");
+        _debug ("Error - Audio API unknown");
 
     if (_audiodriver == 0) {
-        _debug ("Init audio driver error\n");
+        _debug ("Init audio driver error");
         return false;
     } else {
         error = getAudioDriver()->getErrorMessage();
 
         if (error == -1) {
-            _debug ("Init audio driver: %i\n", error);
+            _debug ("Init audio driver: %i", error);
             return false;
         }
     }
@@ -3084,7 +3084,7 @@ ManagerImpl::selectAudioDriver (void)
     AlsaLayer *alsalayer;
 
     layer = _audiodriver->getLayerType();
-    _debug ("Audio layer type: %i\n" , layer);
+    _debug ("Audio layer type: %i" , layer);
 
     /* Retrieve the global devices info from the user config */
     alsaPlugin = getConfigString (AUDIO , ALSA_PLUGIN);
@@ -3104,13 +3104,13 @@ ManagerImpl::selectAudioDriver (void)
         alsalayer = dynamic_cast<AlsaLayer*> (getAudioDriver ());
 
         if (!alsalayer -> soundCardIndexExist (numCardIn , SFL_PCM_CAPTURE)) {
-            _debug (" Card with index %i doesn't exist or cannot capture. Switch to 0.\n", numCardIn);
+            _debug (" Card with index %i doesn't exist or cannot capture. Switch to 0.", numCardIn);
             numCardIn = ALSA_DFT_CARD_ID ;
             setConfig (AUDIO , ALSA_CARD_ID_IN , ALSA_DFT_CARD_ID);
         }
 
         if (!alsalayer -> soundCardIndexExist (numCardOut , SFL_PCM_PLAYBACK)) {
-            _debug (" Card with index %i doesn't exist or cannot playback . Switch to 0.\n", numCardOut);
+            _debug (" Card with index %i doesn't exist or cannot playback . Switch to 0.", numCardOut);
             numCardOut = ALSA_DFT_CARD_ID ;
             setConfig (AUDIO , ALSA_CARD_ID_OUT , ALSA_DFT_CARD_ID);
         }
@@ -3132,7 +3132,7 @@ void ManagerImpl::switchAudioManager (void)
     int type, samplerate, framesize, numCardIn, numCardOut;
     std::string alsaPlugin;
 
-    _debug ("Switching audio manager \n");
+    _debug ("Switching audio manager ");
 
     if (!_audiodriver)
         return;
@@ -3149,7 +3149,7 @@ void ManagerImpl::switchAudioManager (void)
 
     numCardOut = getConfigInt (AUDIO , ALSA_CARD_ID_OUT);
 
-    _debug ("Deleting current layer... \n");
+    _debug ("Deleting current layer... ");
 
     // _audiodriver->closeLayer();
     delete _audiodriver;
@@ -3159,19 +3159,19 @@ void ManagerImpl::switchAudioManager (void)
     switch (type) {
 
         case ALSA:
-            _debug ("Creating Pulseaudio layer...\n");
+            _debug ("Creating Pulseaudio layer...");
             _audiodriver = new PulseLayer (this);
             _audiodriver->setMainBuffer (&_mainBuffer);
             break;
 
         case PULSEAUDIO:
-            _debug ("Creating ALSA layer...\n");
+            _debug ("Creating ALSA layer...");
             _audiodriver = new AlsaLayer (this);
             _audiodriver->setMainBuffer (&_mainBuffer);
             break;
 
         default:
-            _debug ("Error: audio layer unknown\n");
+            _debug ("Error: audio layer unknown");
             break;
     }
 
@@ -3182,9 +3182,9 @@ void ManagerImpl::switchAudioManager (void)
     if (_audiodriver -> getErrorMessage() != -1)
         notifyErrClient (_audiodriver -> getErrorMessage());
 
-    _debug ("Current device: %i \n", type);
+    _debug ("Current device: %i ", type);
 
-    _debug ("has current call: %i \n", hasCurrentCall());
+    _debug ("has current call: %i ", hasCurrentCall());
 
     if (hasCurrentCall())
         _audiodriver->startStream();
@@ -3192,7 +3192,7 @@ void ManagerImpl::switchAudioManager (void)
 
     // need to stop audio streams if there is currently no call
     // if ( (type != PULSEAUDIO) && (!hasCurrentCall())) {
-    // _debug("There is currently a call!!\n");
+    // _debug("There is currently a call!!");
     // _audiodriver->stopStream();
 
     // }
@@ -3237,7 +3237,7 @@ void ManagerImpl::setMicVolume (unsigned short mic_vol)
 
 void ManagerImpl::setSipAddress (const std::string& address)
 {
-  _debug ("Setting new ip to ip address %s\n", address.c_str());
+  _debug ("Setting new ip to ip address %s", address.c_str());
 
     std::string ip_address = std::string(address);
 
@@ -3246,7 +3246,7 @@ void ManagerImpl::setSipAddress (const std::string& address)
     std::string local_address = ip_address.substr(0,index);
     std::string local_port = ip_address.substr(index+1); 
 
-    _debug ("Setting new ip to ip address %s and port %s\n", local_address.c_str(), local_port.c_str());
+    _debug ("Setting new ip to ip address %s and port %s", local_address.c_str(), local_port.c_str());
 
     int prevPort = getConfigInt (IP2IP_PROFILE, LOCAL_PORT);
     std::string prevAddress  = getConfigString(IP2IP_PROFILE, LOCAL_ADDRESS);
@@ -3263,7 +3263,7 @@ int ManagerImpl::getSipAddress (void)
 {
     // return getConfigInt (PREFERENCES , CONFIG_SIP_PORT);
     /* The 'global' SIP port is set throug the IP profile */
-    _debug("-----------------------------------------getSipAddress %i\n", getConfigInt (IP2IP_PROFILE, LOCAL_PORT));
+    _debug("-----------------------------------------getSipAddress %i", getConfigInt (IP2IP_PROFILE, LOCAL_PORT));
 
     return getConfigInt (IP2IP_PROFILE, LOCAL_PORT);
 
@@ -3434,7 +3434,7 @@ ManagerImpl::getConfigString (const std::string& section, const std::string&
 bool
 ManagerImpl::setConfig (const std::string& section, const std::string& name, const std::string& value)
 {
-    _debug ("ManagerImpl::setConfig %s %s %s\n", section.c_str(), name.c_str(), value.c_str());
+    _debug ("ManagerImpl::setConfig %s %s %s", section.c_str(), name.c_str(), value.c_str());
     return _config.setConfigTreeItem (section, name, value);
 }
 
@@ -3449,7 +3449,7 @@ ManagerImpl::setConfig (const std::string& section, const std::string& name, int
 
 void ManagerImpl::setAccountsOrder (const std::string& order)
 {
-    _debug ("Setcreate accounts order : %s\n", order.c_str());
+    _debug ("Setcreate accounts order : %s", order.c_str());
     // Set the new config
     setConfig (PREFERENCES, CONFIG_ACCOUNTS_ORDER, order);
 }
@@ -3472,7 +3472,7 @@ ManagerImpl::getAccountList()
 
         while (iter != _accountMap.end()) {
             if (iter->second != NULL) {
-                //_debug("PUSHING BACK %s\n", iter->first.c_str());
+                //_debug("PUSHING BACK %s", iter->first.c_str());
                 v.push_back (iter->first.data());
             }
 
@@ -3507,7 +3507,7 @@ std::map< std::string, std::string > ManagerImpl::getAccountDetails (const Accou
     Account * account = _accountMap[accountID];
 
     if (account == NULL) {
-        _debug ("Cannot getAccountDetails on a non-existing accountID. Defaults will be used.\n");
+        _debug ("Cannot getAccountDetails on a non-existing accountID. Defaults will be used.");
     }
 
     a.insert (std::pair<std::string, std::string> (CONFIG_ACCOUNT_ALIAS, getConfigString (accountID, CONFIG_ACCOUNT_ALIAS)));
@@ -3633,7 +3633,7 @@ void ManagerImpl::setCredential (const std::string& accountID, const int32_t& in
 
     std::string section = "Credential" + std::string (":") + accountID + std::string (":") + credentialIndex;
 
-    _debug ("Setting credential in section %s\n", section.c_str());
+    _debug ("Setting credential in section %s", section.c_str());
 
     it = credentialInformation.find (USERNAME);
     std::string username;
@@ -3733,7 +3733,7 @@ void ManagerImpl::setAccountDetails (const std::string& accountID, const std::ma
         // it is already saved as a MD5 Hash.
         // TODO: This test is weak. Fix this.
         if ( (password.compare (getConfigString (accountID, PASSWORD)) != 0)) {
-            _debug ("Password sent and password from config are different. Re-hashing\n");
+            _debug ("Password sent and password from config are different. Re-hashing");
             std::string hash;
 
             if (authenticationName.empty()) {
@@ -3974,7 +3974,7 @@ void ManagerImpl::setAccountDetails (const std::string& accountID, const std::ma
             acc->unregisterVoIPLink();
         }
     } else {
-        _debug ("ManagerImpl::setAccountDetails: account is NULL\n");
+        _debug ("ManagerImpl::setAccountDetails: account is NULL");
     }
 
     // Update account details to the client side
@@ -3996,11 +3996,11 @@ ManagerImpl::sendRegister (const std::string& accountID , const int32_t& enable)
 
     if (acc->isEnabled()) {
         // Verify we aren't already registered, then register
-        _debug ("Send register for account %s\n" , accountID.c_str());
+        _debug ("Send register for account %s" , accountID.c_str());
         acc->registerVoIPLink();
     } else {
         // Verify we are already registered, then unregister
-        _debug ("Send unregister for account %s\n" , accountID.c_str());
+        _debug ("Send unregister for account %s" , accountID.c_str());
         acc->unregisterVoIPLink();
     }
 
@@ -4022,7 +4022,7 @@ ManagerImpl::addAccount (const std::map< std::string, std::string >& details)
     // Get the type
     accountType = (*details.find (CONFIG_ACCOUNT_TYPE)).second;
 
-    _debug ("%s\n", newAccountID.c_str());
+    _debug ("%s", newAccountID.c_str());
 
     /** @todo Verify the uniqueness, in case a program adds accounts, two in a row. */
 
@@ -4031,7 +4031,7 @@ ManagerImpl::addAccount (const std::map< std::string, std::string >& details)
     } else if (accountType == "IAX") {
         newAccount = AccountCreator::createAccount (AccountCreator::IAX_ACCOUNT, newAccountID);
     } else {
-        _debug ("Unknown %s param when calling addAccount(): %s\n", CONFIG_ACCOUNT_TYPE, accountType.c_str());
+        _debug ("Unknown %s param when calling addAccount(): %s", CONFIG_ACCOUNT_TYPE, accountType.c_str());
         return "";
     }
 
@@ -4096,7 +4096,7 @@ ManagerImpl::removeAccount (const AccountID& accountID)
 
     saveConfig();
 
-    _debug ("REMOVE ACCOUNT\n");
+    _debug ("REMOVE ACCOUNT");
 
     if (_dbus) _dbus->getConfigurationManager()->accountsChanged();
 
@@ -4110,7 +4110,7 @@ ManagerImpl::associateCallToAccount (const CallID& callID, const AccountID& acco
         if (accountExists (accountID)) {    // account id exist in AccountMap
             ost::MutexLock m (_callAccountMapMutex);
             _callAccountMap[callID] = accountID;
-            _debug ("Associate Call %s with Account %s\n", callID.data(), accountID.data());
+            _debug ("Associate Call %s with Account %s", callID.data(), accountID.data());
             return true;
         } else {
             return false;
@@ -4212,11 +4212,11 @@ ManagerImpl::loadAccountMap()
         }
 
         else {
-            _debug ("Unknown %s param in config file (%s)\n", CONFIG_ACCOUNT_TYPE, accountType.c_str());
+            _debug ("Unknown %s param in config file (%s)", CONFIG_ACCOUNT_TYPE, accountType.c_str());
         }
 
         if (tmpAccount != NULL) {
-            _debug ("Loading account %s \n", iter->c_str());
+            _debug ("Loading account %s ", iter->c_str());
             _accountMap[iter->c_str() ] = tmpAccount;
             nbAccount++;
         }
@@ -4225,16 +4225,16 @@ ManagerImpl::loadAccountMap()
     }
 
     if (_directIpAccount == NULL) {
-        _debug ("Failed to create direct ip calls \"account\"\n");
+        _debug ("Failed to create direct ip calls \"account\"");
     } else {
         // Force the options to be loaded
         // No registration in the sense of
         // the REGISTER method is performed.
-        _debug ("Succeed to create direct ip calls \"account\"\n");
+        _debug ("Succeed to create direct ip calls \"account\"");
         _directIpAccount->registerVoIPLink();
     }
 
-    _debug ("nbAccount loaded %i \n",nbAccount);
+    _debug ("nbAccount loaded %i ",nbAccount);
 
     return nbAccount;
 }
@@ -4247,7 +4247,7 @@ ManagerImpl::unloadAccountMap()
 
     while (iter != _accountMap.end()) {
 
-        _debug ("-> Unloading account %s\n", iter->first.c_str());
+        _debug ("-> Unloading account %s", iter->first.c_str());
         delete iter->second;
         iter->second = 0;
 
@@ -4275,7 +4275,7 @@ ManagerImpl::getAccount (const AccountID& accountID)
     // In our definition,
     // this is the "direct ip calls account"
     if (accountID == AccountNULL) {
-		_debug ("Returns the direct IP account\n");
+		_debug ("Returns the direct IP account");
         return _directIpAccount;
     }
 
@@ -4293,16 +4293,16 @@ ManagerImpl::getAccountIdFromNameAndServer (const std::string& userName, const s
 {
     AccountMap::iterator iter;
     SIPAccount *account;
-    _debug ("getAccountIdFromNameAndServer : username = %s , server = %s\n", userName.c_str(), server.c_str());
+    _debug ("getAccountIdFromNameAndServer : username = %s , server = %s", userName.c_str(), server.c_str());
     // Try to find the account id from username and server name by full match
 
     for (iter = _accountMap.begin(); iter != _accountMap.end(); ++iter) {
-        _debug ("for : account = %s\n", iter->first.c_str());
+        _debug ("for : account = %s", iter->first.c_str());
         account = dynamic_cast<SIPAccount *> (iter->second);
 
         if (account != NULL) {
             if (account->fullMatch (userName, server)) {
-                _debug ("Matching accountId in request is a fullmatch\n");
+                _debug ("Matching accountId in request is a fullmatch");
                 return iter->first;
             }
         }
@@ -4314,7 +4314,7 @@ ManagerImpl::getAccountIdFromNameAndServer (const std::string& userName, const s
 
         if (account != NULL) {
             if (account->hostnameMatch (server)) {
-                _debug ("Matching accountId in request with hostname\n");
+                _debug ("Matching accountId in request with hostname");
                 return iter->first;
             }
         }
@@ -4326,7 +4326,7 @@ ManagerImpl::getAccountIdFromNameAndServer (const std::string& userName, const s
 
         if (account != NULL) {
             if (account->userMatch (userName)) {
-                _debug ("Matching accountId in request with username\n");
+                _debug ("Matching accountId in request with username");
                 return iter->first;
             }
         }
@@ -4354,6 +4354,45 @@ void ManagerImpl::restartPJSIP (void)
     this->registerCurSIPAccounts (siplink);
 }
 
+int
+ManagerImpl::registerAccounts()
+{
+    int status;
+    bool flag = true;
+    AccountMap::iterator iter;
+
+    _debugInit ("Initiate VoIP Links Registration");
+    iter = _accountMap.begin();
+
+    /* Loop on the account map previously loaded */
+
+    while (iter != _accountMap.end()) {
+        if (iter->second) {
+
+            if (iter->second->isEnabled()) {
+
+		_debug("Register account %s", iter->first.c_str());
+		
+                status = iter->second->registerVoIPLink();
+
+                if (status != SUCCESS) {
+                    flag = false;
+                }
+            }
+        }
+
+        iter++;
+    }
+
+    // calls the client notification here in case of errors at startup...
+    if (_audiodriver -> getErrorMessage() != -1)
+        notifyErrClient (_audiodriver -> getErrorMessage());
+
+    ASSERT (flag, true);
+
+    return SUCCESS;
+}
+
 VoIPLink* ManagerImpl::getAccountLink (const AccountID& accountID)
 {
     if (accountID!=AccountNULL) {
@@ -4520,7 +4559,7 @@ void ManagerImpl::check_call_configuration (const CallID& id, const std::string
     Call::CallConfiguration config;
 
     if (to.find (SIP_SCHEME) == 0 || to.find (SIPS_SCHEME) == 0) {
-        _debug ("Sending Sip Call \n");
+        _debug ("Sending Sip Call ");
         config = Call::IPtoIP;
     } else {
         config = Call::Classic;
@@ -4537,7 +4576,7 @@ bool ManagerImpl::associateConfigToCall (const CallID& callID, Call::CallConfigu
 
     if (getConfigFromCall (callID) == CallConfigNULL) { // nothing with the same ID
         _callConfigMap[callID] = config;
-        _debug ("Associate Call %s with config %i\n", callID.data(), config);
+        _debug ("Associate Call %s with config %i", callID.data(), config);
         return true;
     } else {
         return false;
@@ -4583,7 +4622,7 @@ std::map< std::string, std::string > ManagerImpl::getCallDetails (const CallID&
 
     // So first we fetch the account
     accountid = getAccountFromCall (callID);
-    _debug ("%s\n",callID.c_str());
+    _debug ("%s",callID.c_str());
     // Then the VoIP link this account is linked with (IAX2 or SIP)
 
     if ( (account=getAccount (accountid)) != 0) {
@@ -4603,7 +4642,7 @@ std::map< std::string, std::string > ManagerImpl::getCallDetails (const CallID&
         call_details.insert (std::pair<std::string, std::string> ("CALL_STATE", call->getStateStr ()));
         call_details.insert (std::pair<std::string, std::string> ("CALL_TYPE", type.str ()));
     } else {
-        _debug ("Error: Managerimpl - getCallDetails ()\n");
+        _debug ("Error: Managerimpl - getCallDetails ()");
         call_details.insert (std::pair<std::string, std::string> ("ACCOUNTID", AccountNULL));
         call_details.insert (std::pair<std::string, std::string> ("PEER_NUMBER", "Unknown"));
         call_details.insert (std::pair<std::string, std::string> ("PEER_NAME", "Unknown"));
@@ -4668,7 +4707,7 @@ ManagerImpl::getConferenceDetails (const ConfID& confID)
 std::vector< std::string >
 ManagerImpl::getConferenceList (void)
 {
-    _debug ("ManagerImpl::getConferenceList\n");
+    _debug ("ManagerImpl::getConferenceList");
     std::vector< std::string > v;
 
     ConferenceMap::iterator iter = _conferencemap.begin();
@@ -4685,7 +4724,7 @@ ManagerImpl::getConferenceList (void)
 std::vector< std::string >
 ManagerImpl::getParticipantList (const std::string& confID)
 {
-    _debug ("ManagerImpl::getParticipantList\n");
+    _debug ("ManagerImpl::getParticipantList");
     std::vector< std::string > v;
 
     ConferenceMap::iterator iter_conf = _conferencemap.find (confID);
diff --git a/sflphone-common/src/managerimpl.h b/sflphone-common/src/managerimpl.h
index 997656a03e..f241fabc40 100644
--- a/sflphone-common/src/managerimpl.h
+++ b/sflphone-common/src/managerimpl.h
@@ -1029,6 +1029,14 @@ class ManagerImpl {
      */
     bool isCurrentCall(const CallID& callId);
 
+
+    /**
+     * Send registration to all enabled accounts
+     * @return 0 on registration success
+     *          1 otherelse
+     */
+    int registerAccounts();
+
     /**
      * Restart PJSIP
      * @param void
diff --git a/sflphone-common/src/plug-in/audiorecorder/audiodsp.cpp b/sflphone-common/src/plug-in/audiorecorder/audiodsp.cpp
index 49ea4417cc..f9b5c014ef 100644
--- a/sflphone-common/src/plug-in/audiorecorder/audiodsp.cpp
+++ b/sflphone-common/src/plug-in/audiorecorder/audiodsp.cpp
@@ -39,8 +39,8 @@ AudioDSP::~AudioDSP()
 
 float AudioDSP::getRMS (int data)
 {
-    // printf("AudioDSP::getRMS() : bufPointer_ %i \n ", bufPointer_);
-    printf ("AudioDSP::getRMS() : %i \n", data);
+    // printf("AudioDSP::getRMS() : bufPointer_ %i  ", bufPointer_);
+    printf ("AudioDSP::getRMS() : %i ", data);
     circBuffer_[bufPointer_++] = (float) data;
 
     if (bufPointer_ >= bufferLength_)
@@ -57,13 +57,13 @@ float AudioDSP::computeRMS()
 
 
     for (int i = 0; i < bufferLength_; i++) {
-        // printf("AudioDSP::computeRMS() : i_ %i \n ", i);
+        // printf("AudioDSP::computeRMS() : i_ %i  ", i);
         rms += (float) (circBuffer_[i]*circBuffer_[i]);
     }
 
     rms = sqrt (rms / (float) bufferLength_);
 
-    // printf("AudioDSP::computeRMS() : RMS VALUE: %f \n", rms);
+    // printf("AudioDSP::computeRMS() : RMS VALUE: %f ", rms);
     return rms;
 
 }
diff --git a/sflphone-common/src/plug-in/audiorecorder/audiorecord.cpp b/sflphone-common/src/plug-in/audiorecorder/audiorecord.cpp
index 9b265de0ee..4ab7c6c970 100644
--- a/sflphone-common/src/plug-in/audiorecorder/audiorecord.cpp
+++ b/sflphone-common/src/plug-in/audiorecorder/audiorecord.cpp
@@ -93,12 +93,12 @@ void AudioRecord::initFileName (std::string peerNumber)
 
     if (fileType_ == FILE_RAW) {
         if (strstr (fileName_, ".raw") == NULL) {
-            printf ("AudioRecord::openFile::concatenate .raw file extension: name : %s \n", fileName_);
+            printf ("AudioRecord::openFile::concatenate .raw file extension: name : %s ", fileName_);
             fName.append (".raw");
         }
     } else if (fileType_ == FILE_WAV) {
         if (strstr (fileName_, ".wav") == NULL) {
-            printf ("AudioRecord::openFile::concatenate .wav file extension: name : %s \n", fileName_);
+            printf ("AudioRecord::openFile::concatenate .wav file extension: name : %s ", fileName_);
             fName.append (".wav");
         }
     }
@@ -110,14 +110,14 @@ void AudioRecord::openFile()
 {
 
 
-    _debug ("AudioRecord::openFile()\n");
+    _debug ("AudioRecord::openFile()");
 
     bool result = false;
 
-    _debug ("AudioRecord::openFile()\n");
+    _debug ("AudioRecord::openFile()");
 
     if (isFileExist()) {
-        _debug ("AudioRecord::Filename does not exist, creating one \n");
+        _debug ("AudioRecord::Filename does not exist, creating one ");
         byteCounter_ = 0;
 
         if (fileType_ == FILE_RAW) {
@@ -126,7 +126,7 @@ void AudioRecord::openFile()
             result = setWavFile();
         }
     } else {
-        _debug ("AudioRecord::Filename already exist opening it \n");
+        _debug ("AudioRecord::Filename already exist opening it ");
 
         if (fileType_ == FILE_RAW) {
             result = openExistingRawFile();
@@ -156,10 +156,10 @@ bool AudioRecord::isOpenFile()
 {
 
     if (fp) {
-        _debug ("AudioRecord::isOpenFile(): file already openend\n");
+        _debug ("AudioRecord::isOpenFile(): file already openend");
         return true;
     } else {
-        _debug ("AudioRecord::isOpenFIle(): file not openend \n");
+        _debug ("AudioRecord::isOpenFIle(): file not openend ");
         return false;
     }
 }
@@ -167,7 +167,7 @@ bool AudioRecord::isOpenFile()
 
 bool AudioRecord::isFileExist()
 {
-    _debug ("AudioRecord::isFileExist(): try to open name : %s \n", fileName_);
+    _debug ("AudioRecord::isFileExist(): try to open name : %s ", fileName_);
 
     if (fopen (fileName_,"rb") ==0) {
         return true;
@@ -178,7 +178,7 @@ bool AudioRecord::isFileExist()
 
 bool AudioRecord::isRecording()
 {
-    _debug ("AudioRecording::isRecording() %i \n", recordingEnabled_);
+    _debug ("AudioRecording::isRecording() %i ", recordingEnabled_);
 
 
     if (recordingEnabled_)
@@ -190,17 +190,17 @@ bool AudioRecord::isRecording()
 
 bool AudioRecord::setRecording()
 {
-    _debug ("AudioRecord::setRecording() \n");
+    _debug ("AudioRecord::setRecording() ");
 
     if (isOpenFile()) {
-        _debug ("AudioRecord::setRecording()::file already opened \n");
+        _debug ("AudioRecord::setRecording()::file already opened ");
 
         if (!recordingEnabled_)
             recordingEnabled_ = true;
         else
             recordingEnabled_ = false;
     } else {
-        _debug ("AudioRecord::setRecording():Opening the wave file in call during call instantiation \n");
+        _debug ("AudioRecord::setRecording():Opening the wave file in call during call instantiation ");
         openFile();
 
         recordingEnabled_ = true; // once opend file, start recording
@@ -213,7 +213,7 @@ bool AudioRecord::setRecording()
 
 void AudioRecord::stopRecording()
 {
-    _debug ("AudioRecording::stopRecording() \n");
+    _debug ("AudioRecording::stopRecording() ");
 
     if (recordingEnabled_)
         recordingEnabled_ = false;
@@ -270,7 +270,7 @@ void AudioRecord::createFilename()
     // fileName_ = out.str();
     strncpy (fileName_, out.str().c_str(), 8192);
 
-    printf ("AudioRecord::createFilename::filename for this call %s \n",fileName_);
+    printf ("AudioRecord::createFilename::filename for this call %s ",fileName_);
 }
 
 bool AudioRecord::setRawFile()
@@ -279,16 +279,16 @@ bool AudioRecord::setRawFile()
     fp = fopen (savePath_.c_str(), "wb");
 
     if (!fp) {
-        _debug ("AudioRecord::setRawFile() : could not create RAW file!\n");
+        _debug ("AudioRecord::setRawFile() : could not create RAW file!");
         return false;
     }
 
     if (sndFormat_ != INT16) {   // TODO need to change INT16 to SINT16
         sndFormat_ = INT16;
-        _debug ("AudioRecord::setRawFile() : using 16-bit signed integer data format for file.\n");
+        _debug ("AudioRecord::setRawFile() : using 16-bit signed integer data format for file.");
     }
 
-    _debug ("AudioRecord:setRawFile() : created RAW file.\n");
+    _debug ("AudioRecord:setRawFile() : created RAW file.");
 
     return true;
 }
@@ -300,7 +300,7 @@ bool AudioRecord::setWavFile()
     fp = fopen (savePath_.c_str(), "wb");
 
     if (!fp) {
-        _debug ("AudioRecord::setWavFile() : could not create WAV file.\n");
+        _debug ("AudioRecord::setWavFile() : could not create WAV file.");
         return false;
     }
 
@@ -328,11 +328,11 @@ bool AudioRecord::setWavFile()
 
 
     if (fwrite (&hdr, 4, 11, fp) != 11) {
-        _debug ("AudioRecord::setWavFile() : could not write WAV header for file. \n");
+        _debug ("AudioRecord::setWavFile() : could not write WAV header for file. ");
         return false;
     }
 
-    _debug ("AudioRecord::setWavFile() : created WAV file. \n");
+    _debug ("AudioRecord::setWavFile() : created WAV file. ");
 
     return true;
 }
@@ -343,7 +343,7 @@ bool AudioRecord::openExistingRawFile()
     fp = fopen (fileName_, "ab+");
 
     if (!fp) {
-        _debug ("AudioRecord::openExistingRawFile() : could not create RAW file!\n");
+        _debug ("AudioRecord::openExistingRawFile() : could not create RAW file!");
         return false;
     }
 
@@ -353,42 +353,42 @@ bool AudioRecord::openExistingRawFile()
 
 bool AudioRecord::openExistingWavFile()
 {
-    _debug ("AudioRecord::openExistingWavFile() \n");
+    _debug ("AudioRecord::openExistingWavFile() ");
 
     fp = fopen (fileName_, "rb+");
 
     if (!fp) {
-        _debug ("AudioRecord::openExistingWavFile() : could not open WAV file rb+!\n");
+        _debug ("AudioRecord::openExistingWavFile() : could not open WAV file rb+!");
         return false;
     }
 
-    printf ("AudioRecord::openExistingWavFile()::Tried to open %s \n",fileName_);
+    printf ("AudioRecord::openExistingWavFile()::Tried to open %s ",fileName_);
 
     if (fseek (fp, 40, SEEK_SET) != 0) // jump to data length
-        _debug ("AudioRecord::OpenExistingWavFile: 1.Couldn't seek offset 40 in the file \n");
+        _debug ("AudioRecord::OpenExistingWavFile: 1.Couldn't seek offset 40 in the file ");
 
     if (fread (&byteCounter_, 4, 1, fp))
-        _debug ("AudioRecord::OpenExistingWavFile : bytecounter Read successfully \n");
+        _debug ("AudioRecord::OpenExistingWavFile : bytecounter Read successfully ");
 
     if (fseek (fp, 0 , SEEK_END) != 0)
-        _debug ("AudioRecors::OpenExistingWavFile : 2.Couldn't seek at the en of the file \n");
+        _debug ("AudioRecors::OpenExistingWavFile : 2.Couldn't seek at the en of the file ");
 
-    printf ("AudioRecord::OpenExistingWavFile : Byte counter after oppening : %d \n", (int) byteCounter_);
+    printf ("AudioRecord::OpenExistingWavFile : Byte counter after oppening : %d ", (int) byteCounter_);
 
     if (fclose (fp) != 0)
-        _debug ("AudioRecord::openExistingWavFile()::ERROR: can't close file r+ \n");
+        _debug ("AudioRecord::openExistingWavFile()::ERROR: can't close file r+ ");
 
 
 
     fp = fopen (fileName_, "ab+");
 
     if (!fp) {
-        _debug ("AudioRecord::openExistingWavFile() : could not createopen WAV file ab+!\n");
+        _debug ("AudioRecord::openExistingWavFile() : could not createopen WAV file ab+!");
         return false;
     }
 
     if (fseek (fp, 4 , SEEK_END) != 0)
-        _debug ("AudioRecors::OpenExistingWavFile : 2.Couldn't seek at the en of the file \n");
+        _debug ("AudioRecors::OpenExistingWavFile : 2.Couldn't seek at the en of the file ");
 
     return true;
 
@@ -398,7 +398,7 @@ bool AudioRecord::openExistingWavFile()
 void AudioRecord::closeWavFile()
 {
     if (fp == 0) {
-        _debug ("AudioRecord:: Can't closeWavFile, a file has not yet been opened!\n");
+        _debug ("AudioRecord:: Can't closeWavFile, a file has not yet been opened!");
         return;
     }
 
@@ -407,28 +407,28 @@ void AudioRecord::closeWavFile()
 
     fseek (fp, 40, SEEK_SET); // jump to data length
 
-    if (ferror (fp)) perror ("AudioRecord::closeWavFile()::ERROR: can't reach offset 40\n");
+    if (ferror (fp)) perror ("AudioRecord::closeWavFile()::ERROR: can't reach offset 40");
 
     fwrite (&bytes, sizeof (SINT32), 1, fp);
 
-    if (ferror (fp)) perror ("AudioRecord::closeWavFile()::ERROR: can't write bytes for data length \n");
+    if (ferror (fp)) perror ("AudioRecord::closeWavFile()::ERROR: can't write bytes for data length ");
 
-    printf ("AudioRecord::closeWavFile : data bytes: %i \n", (int) bytes);
+    printf ("AudioRecord::closeWavFile : data bytes: %i ", (int) bytes);
 
     bytes = byteCounter_ * channels_ + 44; // + 44 for the wave header
 
     fseek (fp, 4, SEEK_SET); // jump to file size
 
-    if (ferror (fp)) perror ("AudioRecord::closeWavFile()::ERROR: can't reach offset 4\n");
+    if (ferror (fp)) perror ("AudioRecord::closeWavFile()::ERROR: can't reach offset 4");
 
     fwrite (&bytes, 4, 1, fp);
 
-    if (ferror (fp)) perror ("AudioRecord::closeWavFile()::ERROR: can't reach offset 4\n");
+    if (ferror (fp)) perror ("AudioRecord::closeWavFile()::ERROR: can't reach offset 4");
 
-    printf ("AudioRecord::closeWavFile : bytes : %i \n", (int) bytes);
+    printf ("AudioRecord::closeWavFile : bytes : %i ", (int) bytes);
 
     if (fclose (fp) != 0)
-        _debug ("AudioRecord::closeWavFile()::ERROR: can't close file\n");
+        _debug ("AudioRecord::closeWavFile()::ERROR: can't close file");
 
 
 }
@@ -470,7 +470,7 @@ void AudioRecord::recData (SFLDataFormat* buffer, int nSamples)
     if (recordingEnabled_) {
 
         if (fp == 0) {
-            _debug ("AudioRecord: Can't record data, a file has not yet been opened!\n");
+            _debug ("AudioRecord: Can't record data, a file has not yet been opened!");
             return;
         }
 
@@ -478,7 +478,7 @@ void AudioRecord::recData (SFLDataFormat* buffer, int nSamples)
 
         if (sndFormat_ == INT16) {   // TODO change INT16 to SINT16
             if (fwrite (buffer, sizeof (SFLDataFormat), nSamples, fp) != (unsigned int) nSamples)
-                _debug ("AudioRecord: Could not record data! \n");
+                _debug ("AudioRecord: Could not record data! ");
             else {
                 fflush (fp);
                 byteCounter_ += (unsigned long) (nSamples*sizeof (SFLDataFormat));
@@ -496,7 +496,7 @@ void AudioRecord::recData (SFLDataFormat* buffer_1, SFLDataFormat* buffer_2, int
     if (recordingEnabled_) {
 
         if (fp == 0) {
-            _debug ("AudioRecord: Can't record data, a file has not yet been opened!\n");
+            _debug ("AudioRecord: Can't record data, a file has not yet been opened!");
             return;
         }
 
@@ -508,7 +508,7 @@ void AudioRecord::recData (SFLDataFormat* buffer_1, SFLDataFormat* buffer_2, int
 
 
                 if (fwrite (&mixBuffer_[k], 2, 1, fp) != 1)
-                    _debug ("AudioRecord: Could not record data!\n");
+                    _debug ("AudioRecord: Could not record data!");
                 else {
                     fflush (fp);
                 }
diff --git a/sflphone-common/src/plug-in/librarymanager.cpp b/sflphone-common/src/plug-in/librarymanager.cpp
index 0c8c1040bd..45567c18fc 100644
--- a/sflphone-common/src/plug-in/librarymanager.cpp
+++ b/sflphone-common/src/plug-in/librarymanager.cpp
@@ -36,14 +36,14 @@ LibraryManager::LibraryHandle LibraryManager::loadLibrary (const std::string &fi
     LibraryHandle pluginHandlePtr = NULL;
     const char *error;
 
-    _debug ("Loading dynamic library %s\n", filename.c_str());
+    _debug ("Loading dynamic library %s", filename.c_str());
 
     /* Load the library */
     pluginHandlePtr = dlopen (filename.c_str(), RTLD_LAZY);
 
     if (!pluginHandlePtr) {
         error = dlerror();
-        _debug ("Error while opening plug-in: %s\n", error);
+        _debug ("Error while opening plug-in: %s", error);
         return NULL;
     }
 
@@ -57,12 +57,12 @@ int LibraryManager::unloadLibrary ()
     if (_handlePtr == NULL)
         return 1;
 
-    _debug ("Unloading dynamic library ...\n");
+    _debug ("Unloading dynamic library ...");
 
     dlclose (_handlePtr);
 
     if (dlerror()) {
-        _debug ("Error unloading the library : %s\n...", dlerror());
+        _debug ("Error unloading the library : %s...", dlerror());
         return 1;
     }
 
@@ -96,7 +96,7 @@ LibraryManagerException::LibraryManagerException (const std::string &libraryName
 
 {
     if (_reason == loadingFailed)
-        _details = "Error when loading " + libraryName + "\n" + details;
+        _details = "Error when loading " + libraryName + "" + details;
     else
         _details = "Error when resolving symbol " + details + " in " + libraryName;
 }
diff --git a/sflphone-common/src/plug-in/pluginmanager.cpp b/sflphone-common/src/plug-in/pluginmanager.cpp
index 80197f6cce..431f3eb874 100644
--- a/sflphone-common/src/plug-in/pluginmanager.cpp
+++ b/sflphone-common/src/plug-in/pluginmanager.cpp
@@ -59,7 +59,7 @@ PluginManager::loadPlugins (const std::string &path)
 
     /* The directory in which plugins are dropped. Default: /usr/lib/sflphone/plugins/ */
     (path == "") ? pluginDir = std::string (PLUGINS_DIR).append ("/") :pluginDir = path;
-    _debug ("Loading plugins from %s...\n", pluginDir.c_str());
+    _debug ("Loading plugins from %s...", pluginDir.c_str());
 
     dir = opendir (pluginDir.c_str());
     /* Test if the directory exists or is readable */
@@ -79,13 +79,13 @@ PluginManager::loadPlugins (const std::string &path)
                 /* Instanciate the plugin object */
 
                 if (instanciatePlugin (library, &plugin) != 0) {
-                    _debug ("Error instanciating the plugin ...\n");
+                    _debug ("Error instanciating the plugin ...");
                     return 1;
                 }
 
                 /* Regitering the current plugin */
                 if (registerPlugin (plugin, library) != 0) {
-                    _debug ("Error registering the plugin ...\n");
+                    _debug ("Error registering the plugin ...");
                     return 1;
                 }
             }
@@ -115,14 +115,14 @@ PluginManager::unloadPlugins (void)
         info = iter->second;
 
         if (deletePlugin (info) != 0) {
-            _debug ("Error deleting the plugin ... \n");
+            _debug ("Error deleting the plugin ... ");
             return 1;
         }
 
         unloadDynamicLibrary (info->_libraryPtr);
 
         if (unregisterPlugin (info) != 0) {
-            _debug ("Error unregistering the plugin ... \n");
+            _debug ("Error unregistering the plugin ... ");
             return 1;
         }
 
@@ -161,7 +161,7 @@ PluginManager::loadDynamicLibrary (const std::string& filename)
 int
 PluginManager::unloadDynamicLibrary (LibraryManager *libraryPtr)
 {
-    _debug ("Unloading dynamic library ...\n");
+    _debug ("Unloading dynamic library ...");
     /* Close it */
     return libraryPtr->unloadLibrary ();
 }
diff --git a/sflphone-common/src/sip/sdp.cpp b/sflphone-common/src/sip/sdp.cpp
index 116d2df867..480958e22c 100644
--- a/sflphone-common/src/sip/sdp.cpp
+++ b/sflphone-common/src/sip/sdp.cpp
@@ -91,7 +91,7 @@ void Sdp::set_media_descriptor_line (sdpMedia *media, pjmedia_sdp_media** p_med)
     for (i=0; i<count; i++) {
         codec = media->get_media_codec_list() [i];
         tmp = this->convert_int_to_string (codec->getPayload ());
-        _debug ("%s\n", tmp.c_str());
+        _debug ("%s", tmp.c_str());
         pj_strdup2 (_pool, &med->desc.fmt[i], tmp.c_str());
 
         // Add a rtpmap field for each codec
@@ -127,7 +127,7 @@ void Sdp::set_media_descriptor_line (sdpMedia *media, pjmedia_sdp_media** p_med)
             throw;
         }
     } else {
-        _debug ("No hash specified\n");
+        _debug ("No hash specified");
     }
 
     *p_med = med;
@@ -137,7 +137,7 @@ int Sdp::create_local_offer ()
 {
     pj_status_t status;
 
-    _debug ("Create local offer\n");
+    _debug ("Create local offer");
     // Build local media capabilities
     set_local_media_capabilities ();
 
@@ -172,12 +172,12 @@ int Sdp::create_initial_offer()
     pj_status_t status;
     pjmedia_sdp_neg_state state;
 
-    _debug ("Create initial offer\n");
+    _debug ("Create initial offer");
     // Build the SDP session descriptor
     status = create_local_offer();
 
     if (status != PJ_SUCCESS) {
-        _debug ("    Error: Failled to create initial offer\n");
+        _debug ("    Error: Failled to create initial offer");
         return status;
     }
 
@@ -185,7 +185,7 @@ int Sdp::create_initial_offer()
     status = pjmedia_sdp_neg_create_w_local_offer (_pool, get_local_sdp_session(), &_negociator);
 
     if (status != PJ_SUCCESS) {
-        _debug ("    Error: Failled to create an initial SDP negociator\n");
+        _debug ("    Error: Failled to create an initial SDP negociator");
         return status;
     }
 
@@ -193,7 +193,7 @@ int Sdp::create_initial_offer()
 
     PJ_ASSERT_RETURN (status == PJ_SUCCESS, 1);
 
-    _debug ("    Initial offer created succesfully\n");
+    _debug ("    Initial offer created succesfully");
 
     return PJ_SUCCESS;
 }
@@ -205,7 +205,7 @@ int Sdp::receiving_initial_offer (pjmedia_sdp_session* remote)
 
     pj_status_t status;
 
-    _debug ("Receiving initial offer\n");
+    _debug ("Receiving initial offer");
 
     // Create the SDP negociator instance by calling
     // pjmedia_sdp_neg_create_w_remote_offer with the remote offer, and by providing the local offer ( optional )
@@ -246,12 +246,12 @@ pj_status_t Sdp::check_sdp_answer (pjsip_inv_session *inv, pjsip_rx_data *rdata)
         }
 
         if (message->body == NULL) {
-            _debug ("Empty message body\n");
+            _debug ("Empty message body");
             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");
+            _debug ("Incoming Message does not contain SDP");
             return PJMEDIA_SDP_EINSDP;
         }
 
@@ -263,17 +263,17 @@ pj_status_t Sdp::check_sdp_answer (pjsip_inv_session *inv, pjsip_rx_data *rdata)
         }
 
         if (status != PJ_SUCCESS) {
-            _debug ("SDP cannot be validated\n");
+            _debug ("SDP cannot be validated");
             return PJMEDIA_SDP_EINSDP;
         }
 
         // This is an answer
-        _debug ("Got SDP answer %s\n", pjsip_rx_data_get_info (rdata));
+        _debug ("Got SDP answer %s", 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));
+            _debug ("An error occured while processing remote answer %s", pjsip_rx_data_get_info (rdata));
             return PJMEDIA_SDP_EINSDP;
         }
 
@@ -282,9 +282,9 @@ pj_status_t Sdp::check_sdp_answer (pjsip_inv_session *inv, pjsip_rx_data *rdata)
 
         status = pjmedia_sdp_neg_negotiate (inv->pool, inv->neg, 0);
 
-        _debug ("Negotiation returned with status %d PJ_SUCCESS being %d\n", status, PJ_SUCCESS);
+        _debug ("Negotiation returned with status %d PJ_SUCCESS being %d", status, PJ_SUCCESS);
     } else {
-        _debug ("No need to check sdp answer since we are UAS\n");
+        _debug ("No need to check sdp answer since we are UAS");
         return PJ_SUCCESS;
     }
 
@@ -442,9 +442,9 @@ void Sdp::set_negotiated_sdp (const pjmedia_sdp_session *sdp)
             // pj_strtoul(attribute->pt)
             pjmedia_sdp_attr_to_rtpmap (_pool, attribute, &rtpmap);
 
-            // _debug("================== set_negociated_offer ===================== %i\n", pj_strtoul(&rtpmap->pt));
-            // _debug("================== set_negociated_offer ===================== %s\n", current->desc.fmt[j].ptr);
-            // _debug("================== set_negociated_offer ===================== %i\n", atoi(current->desc.fmt[j].ptr));
+            // _debug("================== set_negociated_offer ===================== %i", pj_strtoul(&rtpmap->pt));
+            // _debug("================== set_negociated_offer ===================== %s", current->desc.fmt[j].ptr);
+            // _debug("================== set_negociated_offer ===================== %i", atoi(current->desc.fmt[j].ptr));
             iter = codecs_list.find ( (AudioCodecType) pj_strtoul (&rtpmap->pt));
 
             if (iter==codecs_list.end())
@@ -465,7 +465,7 @@ AudioCodec* Sdp::get_session_media (void)
     AudioCodec *codec = NULL;
     std::vector<sdpMedia*> media_list;
 
-    _debug ("Executing sdp line %d - get_session_media ()\n", __LINE__);
+    _debug ("Executing sdp line %d - get_session_media ()", __LINE__);
 
     media_list = get_session_media_list ();
     nb_media = media_list.size();
@@ -515,9 +515,7 @@ void Sdp::toString (void)
         sdp << _local_offer->media[0]->desc.fmt[i].ptr << " ";
     }
 
-    sdp << "\n";
-
-    _debug ("LOCAL SDP: \n%s\n", sdp.str().c_str());
+    _debug ("LOCAL SDP: \n%s", sdp.str().c_str());
 
 }
 
@@ -533,7 +531,7 @@ void Sdp::set_local_media_capabilities ()
     // Clean it first
     _local_media_cap.clear();
 
-    _debug ("Fetch local media capabilities. Local extern audio port: %i\n" , get_local_extern_audio_port());
+    _debug ("Fetch local media capabilities. Local extern audio port: %i" , get_local_extern_audio_port());
 
     /* Only one audio media used right now */
     audio = new sdpMedia (MIME_TYPE_AUDIO);
@@ -581,7 +579,7 @@ void Sdp::set_remote_ip_from_sdp (const pjmedia_sdp_session *r_sdp)
 {
 
     std::string remote_ip (r_sdp->conn->addr.ptr, r_sdp->conn->addr.slen);
-    _debug ("            Remote IP from fetching SDP: %s\n", remote_ip.c_str());
+    _debug ("            Remote IP from fetching SDP: %s", remote_ip.c_str());
     this->set_remote_ip (remote_ip);
 }
 
@@ -591,21 +589,21 @@ void Sdp::set_remote_audio_port_from_sdp (pjmedia_sdp_media *r_media)
     int remote_port;
 
     remote_port = r_media->desc.port;
-    _debug ("            Remote Audio Port from fetching SDP: %d\n", remote_port);
+    _debug ("            Remote Audio Port from fetching SDP: %d", remote_port);
     this->set_remote_audio_port (remote_port);
 }
 
 void Sdp::set_media_transport_info_from_remote_sdp (const pjmedia_sdp_session *remote_sdp)
 {
 
-    _debug ("Fetching media from sdp\n");
+    _debug ("Fetching media from sdp");
 
     pjmedia_sdp_media *r_media;
 
     this->get_remote_sdp_media_from_offer (remote_sdp, &r_media);
 
     if (r_media==NULL) {
-        _debug ("SDP Failure: no remote sdp media found in the remote offer\n");
+        _debug ("SDP Failure: no remote sdp media found in the remote offer");
         return;
     }
 
diff --git a/sflphone-common/src/sip/sipaccount.cpp b/sflphone-common/src/sip/sipaccount.cpp
index a28461dea4..33445ad71a 100644
--- a/sflphone-common/src/sip/sipaccount.cpp
+++ b/sflphone-common/src/sip/sipaccount.cpp
@@ -79,7 +79,7 @@ int SIPAccount::initCredential (void)
     pjsip_cred_info * cred_info = (pjsip_cred_info *) malloc (sizeof (pjsip_cred_info) * (credentialCount));
 
     if (cred_info == NULL) {
-        _debug ("Failed to set cred_info for account %s\n", _accountID.c_str());
+        _debug ("Failed to set cred_info for account %s", _accountID.c_str());
         return !SUCCESS;
     }
 
@@ -104,7 +104,7 @@ int SIPAccount::initCredential (void)
 // on an assertion.
     if (md5HashingEnabled && _password.length() == 32) {
         dataType = PJSIP_CRED_DATA_DIGEST;
-        _debug ("Setting digest \n");
+        _debug ("Setting digest ");
     } else {
         dataType = PJSIP_CRED_DATA_PLAIN_PASSWD;
     }
@@ -139,7 +139,7 @@ int SIPAccount::initCredential (void)
 
         if (md5HashingEnabled && _password.length() == 32) {
             dataType = PJSIP_CRED_DATA_DIGEST;
-            _debug ("Setting digest \n");
+            _debug ("Setting digest ");
         } else {
             dataType = PJSIP_CRED_DATA_PLAIN_PASSWD;
         }
@@ -148,7 +148,7 @@ int SIPAccount::initCredential (void)
 
         cred_info[i].scheme = pj_str ( (char*) "digest");
 
-        _debug ("Setting credential %d realm = %s passwd = %s username = %s data_type = %d\n", i, realm.c_str(), password.c_str(), username.c_str(), cred_info[i].data_type);
+        _debug ("Setting credential %d realm = %s passwd = %s username = %s data_type = %d", i, realm.c_str(), password.c_str(), username.c_str(), cred_info[i].data_type);
     }
 
     _credentialCount = credentialCount;
@@ -200,7 +200,7 @@ int SIPAccount::registerVoIPLink()
 
 int SIPAccount::unregisterVoIPLink()
 {
-    _debug ("Unregister account %s\n" , getAccountID().c_str());
+    _debug ("Unregister account %s" , getAccountID().c_str());
 
     if (_accountID == IP2IP_PROFILE) {
         return true;
@@ -341,7 +341,7 @@ void SIPAccount::loadConfig()
     bool tlsEnabled = Manager::instance().getConfigBool (_accountID, TLS_ENABLE);
 
     if (tlsEnabled) {
-        _debug ("---------------------------- TLS Enabled\n");
+        _debug ("---------------------------- TLS Enabled");
         initTlsConfiguration();
         _transportType = PJSIP_TRANSPORT_TLS;
     } else {
@@ -525,7 +525,7 @@ std::string SIPAccount::getContactHeader (const std::string& address, const std:
 
     _displayName = Manager::instance().getConfigString (_accountID, DISPLAY_NAME);
 
-    _debug ("Display Name: %s\n", _displayName.c_str());
+    _debug ("Display Name: %s", _displayName.c_str());
 
     int len = pj_ansi_snprintf (contact, PJSIP_MAX_URL_SIZE,
 
diff --git a/sflphone-common/src/sip/sipcall.cpp b/sflphone-common/src/sip/sipcall.cpp
index 60680c779a..d1e22660c6 100644
--- a/sflphone-common/src/sip/sipcall.cpp
+++ b/sflphone-common/src/sip/sipcall.cpp
@@ -34,7 +34,7 @@ SIPCall::SIPCall (const CallID& id, Call::CallType type, pj_pool_t *pool) : Call
         , _local_sdp (0)
 {
     _local_sdp = new Sdp (pool);
-    _debug ("SIPCALL::Constructor for this class is called \n");
+    _debug ("SIPCALL::Constructor for this class is called ");
 }
 
 SIPCall::~SIPCall()
@@ -43,7 +43,7 @@ SIPCall::~SIPCall()
     _audiortp = 0;
     delete _local_sdp;
     _local_sdp = 0;
-    _debug ("SIPCALL::Destructor for this class is called \n");
+    _debug ("SIPCALL::Destructor for this class is called ");
 }
 
 
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index d4db910d82..d4862dd51a 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -246,7 +246,7 @@ SIPVoIPLink* SIPVoIPLink::instance (const AccountID& id)
 {
 
     if (!_instance) {
-		_debug ("Create new SIPVoIPLink instance\n");
+		_debug ("Create new SIPVoIPLink instance");
         _instance = new SIPVoIPLink (id);
     }
 
@@ -427,15 +427,15 @@ int SIPVoIPLink::sendRegister (AccountID id)
         while (result.status == 0x12345678) {
             pj_time_val timeout = { 1, 0 };
             pjsip_endpt_handle_events (_endpt, &timeout);
-            _debug ("status : %d\n", result.status);
+            _debug ("status : %d", result.status);
         }
 
         if (result.status != PJ_SUCCESS) {
             _debug ("Failed to resolve hostname only once."
                     " Default resolver will be used on"
-                    " hostname for all requests.\n");
+                    " hostname for all requests.");
         } else {
-            _debug ("%d servers where obtained from name resolution.\n", result.servers.count);
+            _debug ("%d servers where obtained from name resolution.", result.servers.count);
             char addr_buf[80];
 
             pj_sockaddr_print ( (pj_sockaddr_t*) &result.servers.entry[0].addr, addr_buf, sizeof (addr_buf), 3);
@@ -448,11 +448,11 @@ int SIPVoIPLink::sendRegister (AccountID id)
     if (account->isTlsEnabled()) {
         pj_status_t status;
 
-        _debug ("    sendRegister: createTlsTransport\n");
+        _debug ("    sendRegister: createTlsTransport");
         status = createTlsTransportRetryOnFailure (id);
 
         if (status != PJ_SUCCESS) {
-            _debug ("Failed to initialize TLS transport for account %s\n", id.c_str());
+            _debug ("Failed to initialize TLS transport for account %s", id.c_str());
         }
     }
 
@@ -461,11 +461,11 @@ int SIPVoIPLink::sendRegister (AccountID id)
         if (account->isStunEnabled ()) {
             pj_status_t status;
 
-            _debug ("    sendRegister: createAlternateUdpTransport\n");
+            _debug ("    sendRegister: createAlternateUdpTransport");
             status = createAlternateUdpTransport (id);
 
             if (status != PJ_SUCCESS) {
-                _debug ("Failed to initialize UDP transport with an extern published address for account %s\n", id.c_str());
+                _debug ("Failed to initialize UDP transport with an extern published address for account %s", id.c_str());
             }
         } else {
 
@@ -499,7 +499,7 @@ int SIPVoIPLink::sendRegister (AccountID id)
     status = pjsip_regc_create (_endpt, (void*) account, &regc_cb, &regc);
 
     if (status != PJ_SUCCESS) {
-        _debug ("UserAgent: Unable to create regc.\n");
+        _debug ("UserAgent: Unable to create regc.");
         _mutexSIP.leaveMutex();
         return false;
     }
@@ -531,7 +531,7 @@ int SIPVoIPLink::sendRegister (AccountID id)
 
     contactUri = account->getContactHeader (address, portStr);
 
-    _debug ("sendRegister: fromUri: %s serverUri: %s contactUri: %s\n",
+    _debug ("sendRegister: fromUri: %s serverUri: %s contactUri: %s",
             fromUri.c_str(),
             srvUri.c_str(),
             contactUri.c_str());
@@ -552,7 +552,7 @@ int SIPVoIPLink::sendRegister (AccountID id)
     status = pjsip_regc_init (regc, &pjSrv, &pjFrom, &pjFrom, 1, &pjContact, expire_value);
 
     if (status != PJ_SUCCESS) {
-        _debug ("UserAgent: Unable to initialize account %d in sendRegister\n", status);
+        _debug ("UserAgent: Unable to initialize account %d in sendRegister", status);
         _mutexSIP.leaveMutex();
         return false;
     }
@@ -560,7 +560,7 @@ int SIPVoIPLink::sendRegister (AccountID id)
     pjsip_cred_info *cred = account->getCredInfo();
 
     int credential_count = account->getCredentialCount();
-    _debug ("setting %d credentials in sendRegister\n", credential_count);
+    _debug ("setting %d credentials in sendRegister", credential_count);
     pjsip_regc_set_credentials (regc, credential_count, cred);
 
     // Add User-Agent Header
@@ -577,7 +577,7 @@ int SIPVoIPLink::sendRegister (AccountID id)
     status = pjsip_regc_register (regc, PJ_TRUE, &tdata);
 
     if (status != PJ_SUCCESS) {
-        _debug ("UserAgent: Unable to register regc.\n");
+        _debug ("UserAgent: Unable to register regc.");
         _mutexSIP.leaveMutex();
         return false;
     }
@@ -588,7 +588,7 @@ int SIPVoIPLink::sendRegister (AccountID id)
     status = pjsip_regc_set_transport (regc, tp);
 
     if (status != PJ_SUCCESS) {
-        _debug ("UserAgent: Unable to set transport.\n");
+        _debug ("UserAgent: Unable to set transport.");
         _mutexSIP.leaveMutex ();
         return false;
     }
@@ -597,7 +597,7 @@ int SIPVoIPLink::sendRegister (AccountID id)
     status = pjsip_regc_send (regc, tdata);
 
     if (status != PJ_SUCCESS) {
-        _debug ("UserAgent: Unable to send regc request.\n");
+        _debug ("UserAgent: Unable to send regc request.");
         _mutexSIP.leaveMutex();
         return false;
     }
@@ -605,7 +605,7 @@ int SIPVoIPLink::sendRegister (AccountID id)
     _mutexSIP.leaveMutex();
 
     account->setRegistrationInfo (regc);
-    _debug ("ok\n");
+    _debug ("ok");
     return true;
 }
 
@@ -629,18 +629,18 @@ SIPVoIPLink::sendUnregister (AccountID id)
         status = pjsip_regc_unregister (regc, &tdata);
 
         if (status != PJ_SUCCESS) {
-            _debug ("UserAgent: Unable to unregister regc.\n");
+            _debug ("UserAgent: Unable to unregister regc.");
             return false;
         }
 
         status = pjsip_regc_send (regc, tdata);
 
         if (status != PJ_SUCCESS) {
-            _debug ("UserAgent: Unable to send regc request.\n");
+            _debug ("UserAgent: Unable to send regc request.");
             return false;
         }
     } else {
-        _debug ("UserAgent: regc is null!\n");
+        _debug ("UserAgent: regc is null!");
         return false;
     }
 
@@ -663,7 +663,7 @@ SIPVoIPLink::newOutgoingCall (const CallID& id, const std::string& toUrl)
         account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (Manager::instance().getAccountFromCall (id)));
 
         if (account == NULL) {
-            _debug ("Error retrieving the account to the make the call with\n");
+            _debug ("Error retrieving the account to the make the call with");
             call->setConnectionState (Call::Disconnected);
             call->setState (Call::Error);
             delete call;
@@ -680,15 +680,15 @@ SIPVoIPLink::newOutgoingCall (const CallID& id, const std::string& toUrl)
         setCallAudioLocal (call, localAddr);
 
         try {
-            _debug ("Creating new rtp session in newOutgoingCall\n");
+            _debug ("Creating new rtp session in newOutgoingCall");
             call->getAudioRtp()->initAudioRtpSession (call);
         } catch (...) {
-            _debug ("Failed to create rtp thread from newOutGoingCall\n");
+            _debug ("Failed to create rtp thread from newOutGoingCall");
         }
 
         call->initRecFileName();
 
-        _debug ("Try to make a call to: %s with call ID: %s\n", toUrl.data(), id.data());
+        _debug ("Try to make a call to: %s with call ID: %s", toUrl.data(), id.data());
         // Building the local SDP offer
         // localAddr = getLocalAddressAssociatedToAccount (account->getAccountID());
         call->getLocalSDP()->set_ip_address (localAddr);
@@ -722,12 +722,12 @@ SIPVoIPLink::answer (const CallID& id)
     Sdp *local_sdp;
     pjsip_inv_session *inv_session;
 
-    _debug ("SIPVoIPLink::answer: start answering \n");
+    _debug ("SIPVoIPLink::answer: start answering ");
 
     call = getSIPCall (id);
 
     if (call==0) {
-        _debug ("! SIP Failure: SIPCall doesn't exists\n");
+        _debug ("! SIP Failure: SIPCall doesn't exists");
         return false;
     }
 
@@ -736,7 +736,7 @@ SIPVoIPLink::answer (const CallID& id)
     try {
         call->getAudioRtp()->initAudioRtpSession (call);
     } catch (...) {
-        _debug ("Failed to create rtp thread from answer\n");
+        _debug ("Failed to create rtp thread from answer");
     }
 
     inv_session = call->getInvSession();
@@ -745,7 +745,7 @@ SIPVoIPLink::answer (const CallID& id)
 
     if (status == PJ_SUCCESS) {
 
-        _debug ("SIPVoIPLink::answer:UserAgent: Negociation success! : call %s \n", call->getCallId().c_str());
+        _debug ("SIPVoIPLink::answer:UserAgent: Negociation success! : call %s ", call->getCallId().c_str());
         // Create and send a 200(OK) response
         status = pjsip_inv_answer (inv_session, PJSIP_SC_OK, NULL, NULL, &tdata);
         PJ_ASSERT_RETURN (status == PJ_SUCCESS, 1);
@@ -766,7 +766,7 @@ SIPVoIPLink::answer (const CallID& id)
         PJ_ASSERT_RETURN (status == PJ_SUCCESS, 1);
 
         // Terminate the call
-        _debug ("SIPVoIPLink::answer: fail terminate call %s \n",call->getCallId().c_str());
+        _debug ("SIPVoIPLink::answer: fail terminate call %s ",call->getCallId().c_str());
 
         if (call->getAudioRtp())
             call->getAudioRtp()->stop ();
@@ -789,7 +789,7 @@ SIPVoIPLink::hangup (const CallID& id)
     call = getSIPCall (id);
 
     if (call==0) {
-        _debug ("! SIP Error: Call doesn't exist\n");
+        _debug ("! SIP Error: Call doesn't exist");
         return false;
     }
 
@@ -814,7 +814,7 @@ SIPVoIPLink::hangup (const CallID& id)
 
     // Release RTP thread
     if (Manager::instance().isCurrentCall (id)) {
-        _debug ("* SIP Info: Stopping AudioRTP for hangup\n");
+        _debug ("* SIP Info: Stopping AudioRTP for hangup");
         call->getAudioRtp()->stop();
     }
 
@@ -835,7 +835,7 @@ SIPVoIPLink::peerHungup (const CallID& id)
     call = getSIPCall (id);
 
     if (call==0) {
-        _debug ("! SIP Error: Call doesn't exist\n");
+        _debug ("! SIP Error: Call doesn't exist");
         return false;
     }
 
@@ -857,7 +857,7 @@ SIPVoIPLink::peerHungup (const CallID& id)
 
     // Release RTP thread
     if (Manager::instance().isCurrentCall (id)) {
-        _debug ("* SIP Info: Stopping AudioRTP for hangup\n");
+        _debug ("* SIP Info: Stopping AudioRTP for hangup");
         call->getAudioRtp()->stop();
     }
 
@@ -874,11 +874,11 @@ SIPVoIPLink::cancel (const CallID& id)
     SIPCall* call = getSIPCall (id);
 
     if (call==0) {
-        _debug ("! SIP Error: Call doesn't exist\n");
+        _debug ("! SIP Error: Call doesn't exist");
         return false;
     }
 
-    _debug ("- SIP Action: Cancel call %s [cid: %3d]\n", id.data(), call->getCid());
+    _debug ("- SIP Action: Cancel call %s [cid: %3d]", id.data(), call->getCid());
 
     terminateOneCall (id);
     removeCall (id);
@@ -896,7 +896,7 @@ SIPVoIPLink::onhold (const CallID& id)
     call = getSIPCall (id);
 
     if (call==0) {
-        _debug ("! SIP Error: call doesn't exist\n");
+        _debug ("! SIP Error: call doesn't exist");
         return false;
     }
 
@@ -906,7 +906,7 @@ SIPVoIPLink::onhold (const CallID& id)
 
     call->setState (Call::Hold);
 
-    _debug ("* SIP Info: Stopping AudioRTP for onhold action\n");
+    _debug ("* SIP Info: Stopping AudioRTP for onhold action");
 
     call->getAudioRtp()->stop();
 
@@ -930,7 +930,7 @@ int SIPVoIPLink::inv_session_reinvite (SIPCall *call, std::string direction)
     local_sdp = call->getLocalSDP()->get_local_sdp_session();
 
     if (local_sdp == NULL) {
-        _debug ("! SIP Failure: unable to find local_sdp\n");
+        _debug ("! SIP Failure: unable to find local_sdp");
         return !PJ_SUCCESS;
     }
 
@@ -974,14 +974,14 @@ SIPVoIPLink::offhold (const CallID& id)
     call = getSIPCall (id);
 
     if (call==0) {
-        _debug ("! SIP Error: Call doesn't exist\n");
+        _debug ("! SIP Error: Call doesn't exist");
         return false;
     }
 
     try {
         call->getAudioRtp()->initAudioRtpSession (call);
     } catch (...) {
-        _debug ("! SIP Failure: Unable to create RTP Session (%s:%d)\n", __FILE__, __LINE__);
+        _debug ("! SIP Failure: Unable to create RTP Session (%s:%d)", __FILE__, __LINE__);
     }
 
     /* Create re-INVITE with new offer */
@@ -1015,12 +1015,12 @@ SIPVoIPLink::transfer (const CallID& id, const std::string& to)
     account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (account_id));
 
     if (account == NULL) {
-        _debug ("SIPVoIPLink::transfer account is null. Returning.\n");
+        _debug ("SIPVoIPLink::transfer account is null. Returning.");
         return false;
     }
 
     if (call==0) {
-        _debug ("! SIP Failure: Call doesn't exist\n");
+        _debug ("! SIP Failure: Call doesn't exist");
         return false;
     }
 
@@ -1033,7 +1033,7 @@ SIPVoIPLink::transfer (const CallID& id, const std::string& to)
         pj_cstr (&pjDest, dest.c_str());
     }
 
-    _debug ("Transfering to %s\n", dest.c_str());
+    _debug ("Transfering to %s", dest.c_str());
 
     /* Create xfer client subscription. */
     pj_bzero (&xfer_cb, sizeof (xfer_cb));
@@ -1042,7 +1042,7 @@ SIPVoIPLink::transfer (const CallID& id, const std::string& to)
     status = pjsip_xfer_create_uac (call->getInvSession()->dlg, &xfer_cb, &sub);
 
     if (status != PJ_SUCCESS) {
-        _debug ("UserAgent: Unable to create xfer -- %d\n", status);
+        _debug ("UserAgent: Unable to create xfer -- %d", status);
         return false;
     }
 
@@ -1059,7 +1059,7 @@ SIPVoIPLink::transfer (const CallID& id, const std::string& to)
     status = pjsip_xfer_initiate (sub, &pjDest, &tdata);
 
     if (status != PJ_SUCCESS) {
-        _debug ("UserAgent: Unable to create REFER request -- %d\n", status);
+        _debug ("UserAgent: Unable to create REFER request -- %d", status);
         return false;
     }
 
@@ -1067,7 +1067,7 @@ SIPVoIPLink::transfer (const CallID& id, const std::string& to)
     status = pjsip_xfer_send_request (sub, tdata);
 
     if (status != PJ_SUCCESS) {
-        _debug ("UserAgent: Unable to send REFER request -- %d\n", status);
+        _debug ("UserAgent: Unable to send REFER request -- %d", status);
         return false;
     }
 
@@ -1091,13 +1091,13 @@ SIPVoIPLink::refuse (const CallID& id)
     call = getSIPCall (id);
 
     if (call==0) {
-        _debug ("Call doesn't exist\n");
+        _debug ("Call doesn't exist");
         return false;
     }
 
     // can't refuse outgoing call or connected
     if (!call->isIncoming() || call->getConnectionState() == Call::Connected) {
-        _debug ("It's not an incoming call, or it's already answered\n");
+        _debug ("It's not an incoming call, or it's already answered");
         return false;
     }
 
@@ -1156,7 +1156,7 @@ SIPVoIPLink::carryingDTMFdigits (const CallID& id, char code)
     call = getSIPCall (id);
 
     if (call==0) {
-        _debug ("Call doesn't exist\n");
+        _debug ("Call doesn't exist");
         return false;
     }
 
@@ -1164,7 +1164,7 @@ SIPVoIPLink::carryingDTMFdigits (const CallID& id, char code)
 
     dtmf_body = new char[body_len];
 
-    snprintf (dtmf_body, body_len - 1, "Signal=%c\r\nDuration=%d\r\n", code, duration);
+    snprintf (dtmf_body, body_len - 1, "Signal=%c\rDuration=%d\r", code, duration);
 
     pj_strdup2 (_pool, &methodName, "INFO");
     pjsip_method_init_np (&method, &methodName);
@@ -1173,7 +1173,7 @@ SIPVoIPLink::carryingDTMFdigits (const CallID& id, char code)
     status = pjsip_dlg_create_request (call->getInvSession()->dlg, &method, -1, &tdata);
 
     if (status != PJ_SUCCESS) {
-        _debug ("UserAgent: Unable to create INFO request -- %d\n", status);
+        _debug ("UserAgent: Unable to create INFO request -- %d", status);
         return false;
     }
 
@@ -1188,7 +1188,7 @@ SIPVoIPLink::carryingDTMFdigits (const CallID& id, char code)
     tdata->msg->body = pjsip_msg_body_create (tdata->pool, &ctype.type, &ctype.subtype, &content);
 
     if (tdata->msg->body == NULL) {
-        _debug ("UserAgent: Unable to create msg body!\n");
+        _debug ("UserAgent: Unable to create msg body!");
         pjsip_tx_data_dec_ref (tdata);
         return false;
     }
@@ -1197,7 +1197,7 @@ SIPVoIPLink::carryingDTMFdigits (const CallID& id, char code)
     status = pjsip_dlg_send_request (call->getInvSession()->dlg, tdata, getModId(), NULL);
 
     if (status != PJ_SUCCESS) {
-        _debug ("UserAgent: Unable to send MESSAGE request -- %d\n", status);
+        _debug ("UserAgent: Unable to send MESSAGE request -- %d", status);
         return false;
     }
 
@@ -1209,7 +1209,7 @@ SIPVoIPLink::SIPOutgoingInvite (SIPCall* call)
 {
     // If no SIP proxy setting for direct call with only IP address
     if (!SIPStartCall (call, "")) {
-        _debug ("! SIP Failure: call not started\n");
+        _debug ("! SIP Failure: call not started");
         return false;
     }
 
@@ -1237,7 +1237,7 @@ SIPVoIPLink::SIPStartCall (SIPCall* call, const std::string& subject UNUSED)
     account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (id));
 
     if (account == NULL) {
-        _debug ("Account is null in SIPStartCall\n");
+        _debug ("Account is null in SIPStartCall");
         return false;
     }
 
@@ -1266,7 +1266,7 @@ SIPVoIPLink::SIPStartCall (SIPCall* call, const std::string& subject UNUSED)
 
     contactUri = account->getContactHeader (address, portStr);
 
-    _debug ("SIPStartCall: fromUri: %s toUri: %s contactUri: %s\n",
+    _debug ("SIPStartCall: fromUri: %s toUri: %s contactUri: %s",
             fromUri.c_str(),
             toUri.c_str(),
             contactUri.c_str());
@@ -1291,7 +1291,7 @@ SIPVoIPLink::SIPStartCall (SIPCall* call, const std::string& subject UNUSED)
                                    &dialog);
 
     if (status != PJ_SUCCESS) {
-        _debug ("UAC creation failed\n");
+        _debug ("UAC creation failed");
         return false;
     }
 
@@ -1321,7 +1321,7 @@ SIPVoIPLink::SIPStartCall (SIPCall* call, const std::string& subject UNUSED)
     status = pjsip_inv_send_msg (inv, tdata);
 
     if (status != PJ_SUCCESS) {
-        _debug ("    SIPStartCall: failed to send invite\n");
+        _debug ("    SIPStartCall: failed to send invite");
         return false;
     }
 
@@ -1332,7 +1332,7 @@ void
 SIPVoIPLink::SIPCallServerFailure (SIPCall *call)
 {
     if (call != 0) {
-        _debug ("Server error!\n");
+        _debug ("Server error!");
         CallID id = call->getCallId();
         Manager::instance().callFailure (id);
         terminateOneCall (id);
@@ -1354,16 +1354,16 @@ SIPVoIPLink::SIPCallClosed (SIPCall *call)
 
     if (Manager::instance().isCurrentCall (id)) {
         call->setAudioStart (false);
-        _debug ("* SIP Info: Stopping AudioRTP when closing\n");
+        _debug ("* SIP Info: Stopping AudioRTP when closing");
         call->getAudioRtp()->stop();
     }
 
-    _debug ("After close RTP\n");
+    _debug ("After close RTP");
 
     Manager::instance().peerHungupCall (id);
     terminateOneCall (id);
     removeCall (id);
-    _debug ("After remove call ID\n");
+    _debug ("After remove call ID");
 }
 
 void
@@ -1374,7 +1374,7 @@ SIPVoIPLink::SIPCallReleased (SIPCall *call)
     }
 
     // if we are here.. something when wrong before...
-    _debug ("SIP call release\n");
+    _debug ("SIP call release");
 
     CallID id = call->getCallId();
 
@@ -1390,20 +1390,20 @@ void
 SIPVoIPLink::SIPCallAnswered (SIPCall *call, pjsip_rx_data *rdata)
 {
 
-    _debug ("SIPCallAnswered\n");
+    _debug ("SIPCallAnswered");
 
     if (!call) {
-        _debug ("! SIP Failure: unknown call\n");
+        _debug ("! SIP Failure: unknown call");
         return;
     }
 
     if (call->getConnectionState() != Call::Connected) {
-        _debug ("Update call state , id = %s\n", call->getCallId().c_str());
+        _debug ("Update call state , id = %s", call->getCallId().c_str());
         call->setConnectionState (Call::Connected);
         call->setState (Call::Active);
         Manager::instance().peerAnsweredCall (call->getCallId());
     } else {
-        _debug ("* SIP Info: Answering call (on/off hold to send ACK)\n");
+        _debug ("* SIP Info: Answering call (on/off hold to send ACK)");
     }
 }
 
@@ -1441,23 +1441,23 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
         account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (accountId));
 
         if (account == NULL) {
-            _debug ("Account is null. Returning\n");
+            _debug ("Account is null. Returning");
             return !PJ_SUCCESS;
         }
         
 		// Set SDP parameters
 		localAddress = account->getLocalAddress ();
 		if (localAddress == "0.0.0.0"){
-			_debug ("Here is the local address: %s\n", localAddress.c_str ());
+			_debug ("Here is the local address: %s", localAddress.c_str ());
 			loadSIPLocalIP (&localAddress);	
 		}
 		setCallAudioLocal (call, localAddress);
 
-        _debug ("toUri received in new_ip_to_ip call %s\n", to.c_str());
+        _debug ("toUri received in new_ip_to_ip call %s", to.c_str());
 
         std::string toUri = account->getToUri (to);
         call->setPeerNumber (toUri);
-        _debug ("toUri in new_ip_to_ip call %s\n", toUri.c_str());
+        _debug ("toUri in new_ip_to_ip call %s", toUri.c_str());
         // Building the local SDP offer
         call->getLocalSDP()->set_ip_address (localAddress);
         call->getLocalSDP()->create_initial_offer();
@@ -1465,7 +1465,7 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
         try {
             call->getAudioRtp()->initAudioRtpSession (call);
         } catch (...) {
-            _debug ("! SIP Failure: Unable to create RTP Session  in SIPVoIPLink::new_ip_to_ip_call (%s:%d)\n", __FILE__, __LINE__);
+            _debug ("! SIP Failure: Unable to create RTP Session  in SIPVoIPLink::new_ip_to_ip_call (%s:%d)", __FILE__, __LINE__);
         }
 
         // Create URI
@@ -1489,7 +1489,7 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
 
         contactUri = account->getContactHeader (address, portStr);
 
-        _debug ("new_ip_to_ip_call: fromUri: %s toUri: %s contactUri: %s\n",
+        _debug ("new_ip_to_ip_call: fromUri: %s toUri: %s contactUri: %s",
                 fromUri.c_str(),
                 toUri.c_str(),
                 contactUri.c_str());
@@ -1525,7 +1525,7 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
         status = pjsip_dlg_set_transport (dialog, tp);
 
         if (status != PJ_SUCCESS) {
-            _debug ("Failed to set the transport for an IP call\n");
+            _debug ("Failed to set the transport for an IP call");
             return status;
         }
 
@@ -1575,7 +1575,7 @@ bool get_dns_server_addresses (std::vector<std::string> *servers)
     // Read configuration files
 
     if (res_init () != 0) {
-        _debug ("Resolver initialization failed\n");
+        _debug ("Resolver initialization failed");
         return false;
     }
 
@@ -1604,12 +1604,12 @@ pj_status_t SIPVoIPLink::enable_dns_srv_resolver (pjsip_endpoint *endpt, pj_dns_
     status = pjsip_endpt_create_resolver (endpt, &resv);
 
     if (status != PJ_SUCCESS) {
-        _debug ("Error creating the DNS resolver instance\n");
+        _debug ("Error creating the DNS resolver instance");
         return status;
     }
 
     if (!get_dns_server_addresses (&dns_servers)) {
-        _debug ("Error  while fetching DNS information\n");
+        _debug ("Error  while fetching DNS information");
         return -1;
     }
 
@@ -1626,7 +1626,7 @@ pj_status_t SIPVoIPLink::enable_dns_srv_resolver (pjsip_endpoint *endpt, pj_dns_
     status = pj_dns_resolver_set_ns (resv, scount, nameservers, NULL);
 
     if (status != PJ_SUCCESS) {
-        _debug ("Error updating the name servers for the DNS resolver\n");
+        _debug ("Error updating the name servers for the DNS resolver");
         return status;
     }
 
@@ -1634,7 +1634,7 @@ pj_status_t SIPVoIPLink::enable_dns_srv_resolver (pjsip_endpoint *endpt, pj_dns_
     status = pjsip_endpt_set_resolver (endpt, resv);
 
     if (status != PJ_SUCCESS) {
-        _debug ("Error setting the DNS resolver instance of the SIP resolver engine\n");
+        _debug ("Error setting the DNS resolver instance of the SIP resolver engine");
         return status;
     }
 
@@ -1680,7 +1680,7 @@ bool SIPVoIPLink::pjsip_init()
     _pool = pj_pool_create (&_cp.factory, "sflphone", 4000, 4000, NULL);
 
     if (!_pool) {
-        _debug ("UserAgent: Could not initialize memory pool\n");
+        _debug ("UserAgent: Could not initialize memory pool");
         return PJ_ENOMEM;
     }
 
@@ -1690,7 +1690,7 @@ bool SIPVoIPLink::pjsip_init()
     PJ_ASSERT_RETURN (status == PJ_SUCCESS, 1);
 
     if (!loadSIPLocalIP (&addr)) {
-        _debug ("UserAgent: Unable to determine network capabilities\n");
+        _debug ("UserAgent: Unable to determine network capabilities");
         return false;
     }
 
@@ -1702,7 +1702,7 @@ bool SIPVoIPLink::pjsip_init()
     account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (AccountNULL));
 
     if (account == NULL) {
-        _debug ("Account is null in pjsip init\n");
+        _debug ("Account is null in pjsip init");
 		port = _regPort;
     } else {
         directIpCallsTlsEnabled = account->isTlsEnabled();
@@ -1717,19 +1717,19 @@ bool SIPVoIPLink::pjsip_init()
     // could not be created, then give it another try
     // on a random sip port
     if (errPjsip != PJ_SUCCESS) {
-        _debug ("UserAgent: Could not initialize SIP listener on port %d\n", port);
+        _debug ("UserAgent: Could not initialize SIP listener on port %d", port);
         port = RANDOM_SIP_PORT;
 
-        _debug ("UserAgent: Trying to initialize SIP listener on port %d\n", port);
+        _debug ("UserAgent: Trying to initialize SIP listener on port %d", port);
         errPjsip = createUDPServer();
 
         if (errPjsip != PJ_SUCCESS) {
-            _debug ("UserAgent: Fail to initialize SIP listener on port %d\n", port);
+            _debug ("UserAgent: Fail to initialize SIP listener on port %d", port);
             return errPjsip;
         }
     }
 
-    _debug ("pjsip_init -- listening on port %d\n", port);
+    _debug ("pjsip_init -- listening on port %d", port);
 
     // Create a TLS listener meant for Direct IP calls
     // if the user did enabled it.
@@ -1813,7 +1813,7 @@ bool SIPVoIPLink::pjsip_init()
 
     PJ_ASSERT_RETURN (status == PJ_SUCCESS, 1);
 
-    _debug ("UserAgent: VOIP callbacks initialized\n");
+    _debug ("UserAgent: VOIP callbacks initialized");
 
     // Add endpoint capabilities (INFO, OPTIONS, etc) for this UA
     pj_str_t allowed[] = { { (char*) "INFO", 4}, { (char*) "REGISTER", 8}, { (char*) "OPTIONS", 7} };       //  //{"INVITE", 6}, {"ACK",3}, {"BYE",3}, {"CANCEL",6}
@@ -1826,7 +1826,7 @@ bool SIPVoIPLink::pjsip_init()
     // Register "application/sdp" in ACCEPT header
     pjsip_endpt_add_capability (_endpt, &_mod_ua, PJSIP_H_ACCEPT, NULL, 1, &accepted);
 
-    _debug ("UserAgent: pjsip version %s for %s initialized\n", pj_get_version(), PJ_OS_NAME);
+    _debug ("UserAgent: pjsip version %s for %s initialized", pj_get_version(), PJ_OS_NAME);
 
     // Create the secondary thread to poll sip events
     _evThread->start();
@@ -1849,7 +1849,7 @@ pj_status_t SIPVoIPLink::stunServerResolve (AccountID id)
     account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (id));
 
     if (account == NULL) {
-        _debug ("stunServerResolve: Account is null. Returning\n");
+        _debug ("stunServerResolve: Account is null. Returning");
         return !PJ_SUCCESS;
     }
 
@@ -1916,7 +1916,7 @@ int SIPVoIPLink::createUDPServer (AccountID id)
     // Set information to the local address and port
 
     if (account == NULL) {
-        _debug ("Account is null in createUDPServer.\n");
+        _debug ("Account is null in createUDPServer.");
     } else {
         // We are trying to initialize a UDP transport available for all local accounts and direct IP calls
 		if (account->getLocalAddress () != "0.0.0.0"){
@@ -1951,17 +1951,17 @@ int SIPVoIPLink::createUDPServer (AccountID id)
 
     tpmgr = pjsip_endpt_get_tpmgr (_endpt);
 
-    _debug ("number of transport: %i\n", pjsip_tpmgr_get_transport_count (tpmgr));
+    _debug ("number of transport: %i", pjsip_tpmgr_get_transport_count (tpmgr));
 
     pjsip_tpmgr_dump_transports (tpmgr);
 
     if (status != PJ_SUCCESS) {
-        _debug ("UserAgent: (%d) Unable to start UDP transport on %s:%d\n", status, listeningAddress.data(), listeningPort);
+        _debug ("UserAgent: (%d) Unable to start UDP transport on %s:%d", status, listeningAddress.data(), listeningPort);
         // Try to acquire an existing one
         // pjsip_tpmgr_acquire_transport ()
         return status;
     } else {
-        _debug ("UserAgent: UDP server listening on port %d\n", listeningPort);
+        _debug ("UserAgent: UDP server listening on port %d", listeningPort);
 
         if (account == NULL)
             _localUDPTransport = transport;
@@ -1969,7 +1969,7 @@ int SIPVoIPLink::createUDPServer (AccountID id)
 			account->setAccountTransport (transport);
     }
 
-    _debug ("Transport initialized successfully on %s:%i\n", listeningAddress.c_str (), listeningPort);
+    _debug ("Transport initialized successfully on %s:%i", listeningAddress.c_str (), listeningPort);
 
     return PJ_SUCCESS;
 }
@@ -1980,7 +1980,7 @@ std::string SIPVoIPLink::findLocalAddressFromUri (const std::string& uri, pjsip_
     pjsip_transport_type_e transportType;
     pjsip_tpselector *tp_sel;
 
-    _debug ("SIPVoIPLink::findLocalAddressFromUri\n");
+    _debug ("SIPVoIPLink::findLocalAddressFromUri");
 
     // Find the transport that must be used with the given uri
     pj_str_t tmp;
@@ -1993,7 +1993,7 @@ std::string SIPVoIPLink::findLocalAddressFromUri (const std::string& uri, pjsip_
     std::string machineName (pjMachineName.ptr, pjMachineName.slen);
 
     if (genericUri == NULL) {
-        _debug ("genericUri is NULL in findLocalAddressFromUri\n");
+        _debug ("genericUri is NULL in findLocalAddressFromUri");
         return machineName;
     }
 
@@ -2002,7 +2002,7 @@ std::string SIPVoIPLink::findLocalAddressFromUri (const std::string& uri, pjsip_
     sip_uri = (pjsip_sip_uri*) pjsip_uri_get_uri (genericUri);
 
     if (sip_uri == NULL) {
-        _debug ("Invalid uri in findLocalAddressFromTransport\n");
+        _debug ("Invalid uri in findLocalAddressFromTransport");
         return machineName;
     }
 
@@ -2010,7 +2010,7 @@ std::string SIPVoIPLink::findLocalAddressFromUri (const std::string& uri, pjsip_
         transportType = PJSIP_TRANSPORT_TLS;
     } else {
         if (transport == NULL) {
-            _debug ("transport is NULL in findLocalAddressFromUri\n. Try the local UDP transport");
+            _debug ("transport is NULL in findLocalAddressFromUri. Try the local UDP transport");
             transport = _localUDPTransport;
         }
 
@@ -2024,7 +2024,7 @@ std::string SIPVoIPLink::findLocalAddressFromUri (const std::string& uri, pjsip_
     tpmgr = pjsip_endpt_get_tpmgr (_endpt);
 
     if (tpmgr == NULL) {
-        _debug ("Unexpected: Cannot get tpmgr from endpoint.\n");
+        _debug ("Unexpected: Cannot get tpmgr from endpoint.");
         return machineName;
     }
 
@@ -2035,7 +2035,7 @@ std::string SIPVoIPLink::findLocalAddressFromUri (const std::string& uri, pjsip_
     pj_status_t status;
 
     /* Init the transport selector */
-    //_debug ("Transport ID: %s\n", transport->obj_name);
+    //_debug ("Transport ID: %s", transport->obj_name);
     if (transportType == PJSIP_TRANSPORT_UDP) {
         status = init_transport_selector (transport, &tp_sel);
 
@@ -2047,11 +2047,11 @@ std::string SIPVoIPLink::findLocalAddressFromUri (const std::string& uri, pjsip_
         status = pjsip_tpmgr_find_local_addr (tpmgr, _pool, transportType, NULL, &localAddress, &port);
 
     if (status != PJ_SUCCESS) {
-        _debug ("Failed to find local address from transport\n");
+        _debug ("Failed to find local address from transport");
         return machineName;
     }
 
-	_debug ("Local address discovered from attached transport: %s\n", localAddress.ptr);
+	_debug ("Local address discovered from attached transport: %s", localAddress.ptr);
     return std::string (localAddress.ptr, localAddress.slen);
 }
 
@@ -2086,7 +2086,7 @@ int SIPVoIPLink::findLocalPortFromUri (const std::string& uri, pjsip_transport *
     genericUri = pjsip_parse_uri (_pool, tmp.ptr, tmp.slen, 0);
 
     if (genericUri == NULL) {
-        _debug ("genericUri is NULL in findLocalPortFromUri\n");
+        _debug ("genericUri is NULL in findLocalPortFromUri");
         return atoi (DEFAULT_SIP_PORT);
     }
 
@@ -2095,7 +2095,7 @@ int SIPVoIPLink::findLocalPortFromUri (const std::string& uri, pjsip_transport *
     sip_uri = (pjsip_sip_uri*) pjsip_uri_get_uri (genericUri);
 
     if (sip_uri == NULL) {
-        _debug ("Invalid uri in findLocalAddressFromTransport\n");
+        _debug ("Invalid uri in findLocalAddressFromTransport");
         return atoi (DEFAULT_SIP_PORT);
     }
 
@@ -2104,7 +2104,7 @@ int SIPVoIPLink::findLocalPortFromUri (const std::string& uri, pjsip_transport *
         port = atoi (DEFAULT_SIP_TLS_PORT);
     } else {
         if (transport == NULL) {
-            _debug ("transport is NULL in findLocalPortFromUri - Try the local UDP transport\n");
+            _debug ("transport is NULL in findLocalPortFromUri - Try the local UDP transport");
             transport = _localUDPTransport;
         }
 
@@ -2120,7 +2120,7 @@ int SIPVoIPLink::findLocalPortFromUri (const std::string& uri, pjsip_transport *
     tpmgr = pjsip_endpt_get_tpmgr (_endpt);
 
     if (tpmgr == NULL) {
-        _debug ("Unexpected: Cannot get tpmgr from endpoint.\n");
+        _debug ("Unexpected: Cannot get tpmgr from endpoint.");
         return port;
     }
 
@@ -2131,7 +2131,7 @@ int SIPVoIPLink::findLocalPortFromUri (const std::string& uri, pjsip_transport *
     pj_status_t status;
 
     if (transportType == PJSIP_TRANSPORT_UDP) {
-        _debug ("Transport ID: %s\n", transport->obj_name);
+        _debug ("Transport ID: %s", transport->obj_name);
 
         status = init_transport_selector (transport, &tp_sel);
 
@@ -2144,10 +2144,10 @@ int SIPVoIPLink::findLocalPortFromUri (const std::string& uri, pjsip_transport *
 
 
     if (status != PJ_SUCCESS) {
-        _debug ("Failed to find local address from transport\n");
+        _debug ("Failed to find local address from transport");
     }
 
-	_debug ("Local port discovered from attached transport: %i\n", port);
+	_debug ("Local port discovered from attached transport: %i", port);
     return port;
 }
 
@@ -2170,7 +2170,7 @@ pj_status_t SIPVoIPLink::createTlsTransportRetryOnFailure (AccountID id)
         account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (id));
 
         if (account == NULL) {
-            _debug ("createTlsTransportRetryOnFailure: Account is null. Returning\n");
+            _debug ("createTlsTransportRetryOnFailure: Account is null. Returning");
             return !PJ_SUCCESS;
         }
 
@@ -2181,11 +2181,11 @@ pj_status_t SIPVoIPLink::createTlsTransportRetryOnFailure (AccountID id)
         success = createTlsTransport (id);
 
         if (success != PJ_SUCCESS) {
-            _debug ("createTlsTransportRetryOnFailure: failed to retry on random port %d\n", randomPort);
+            _debug ("createTlsTransportRetryOnFailure: failed to retry on random port %d", randomPort);
             return success;
         }
 
-        _debug ("createTlsTransportRetryOnFailure: TLS transport listening on port %d\n", randomPort);
+        _debug ("createTlsTransportRetryOnFailure: TLS transport listening on port %d", randomPort);
     }
 
     return PJ_SUCCESS;
@@ -2210,7 +2210,7 @@ pj_status_t SIPVoIPLink::createAlternateUdpTransport (AccountID id)
     account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (id));
 
     if (account == NULL) {
-        _debug ("Account is null. Returning\n");
+        _debug ("Account is null. Returning");
         return !PJ_SUCCESS;
     }
 
@@ -2221,19 +2221,19 @@ pj_status_t SIPVoIPLink::createAlternateUdpTransport (AccountID id)
     status = stunServerResolve (id);
 
     if (status != PJ_SUCCESS) {
-        _debug ("Error resolving STUN server: %i\n", status);
+        _debug ("Error resolving STUN server: %i", status);
         return status;
     }
 
     // Init socket
     sock = PJ_INVALID_SOCKET;
 
-    _debug ("Initializing IPv4 socket on %s:%i\n", stunServer.ptr, stunPort);
+    _debug ("Initializing IPv4 socket on %s:%i", stunServer.ptr, stunPort);
 
     status = pj_sockaddr_in_init (&boundAddr, &stunServer, 0);
 
     if (status != PJ_SUCCESS) {
-        _debug ("Error when initializing IPv4 socket on %s:%i\n", stunServer.ptr, stunPort);
+        _debug ("Error when initializing IPv4 socket on %s:%i", stunServer.ptr, stunPort);
         return status;
     }
 
@@ -2241,7 +2241,7 @@ pj_status_t SIPVoIPLink::createAlternateUdpTransport (AccountID id)
     status = pj_sock_socket (pj_AF_INET(), pj_SOCK_DGRAM(), 0, &sock);
 
     if (status != PJ_SUCCESS) {
-        _debug ("Socket() error (%d)\n", status);
+        _debug ("Socket() error (%d)", status);
         return status;
     }
 
@@ -2274,11 +2274,11 @@ pj_status_t SIPVoIPLink::createAlternateUdpTransport (AccountID id)
     status = pjsip_udp_transport_attach2 (_endpt, PJSIP_TRANSPORT_UDP, sock, &a_name, 1, &transport);
 
     if (status != PJ_SUCCESS) {
-        _debug ("Error creating alternate SIP UDP listener (%d)\n", status);
+        _debug ("Error creating alternate SIP UDP listener (%d)", status);
 		return status;
     }
 
-	_debug ("UDP Transport successfully created on %s:%i\n", listeningAddress.c_str (), listeningPort);
+	_debug ("UDP Transport successfully created on %s:%i", listeningAddress.c_str (), listeningPort);
     account->setAccountTransport (transport);
 
     return PJ_SUCCESS;
@@ -2300,7 +2300,7 @@ pj_status_t SIPVoIPLink::createTlsTransport (AccountID id)
     account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (id));
 
     if (account == NULL) {
-        _debug ("Account is null. Returning\n");
+        _debug ("Account is null. Returning");
         return !PJ_SUCCESS;
     }
 
@@ -2330,7 +2330,7 @@ pj_status_t SIPVoIPLink::createTlsTransport (AccountID id)
         success = pj_sockaddr_in_set_str_addr (&local_addr, &pjAddress);
 
         if (success != PJ_SUCCESS) {
-            _debug ("Failed to set local address in %d\n", __LINE__);
+            _debug ("Failed to set local address in %d", __LINE__);
         }
     }
 
@@ -2345,7 +2345,7 @@ pj_status_t SIPVoIPLink::createTlsTransport (AccountID id)
     pjsip_tls_setting * tls_setting = account->getTlsSetting();
 
     _debug ("TLS transport to be initialized with published address %.*s,"
-            " published port %d, local address %s, local port %d\n",
+            " published port %d, local address %s, local port %d",
             (int) a_name.host.slen, a_name.host.ptr,
             (int) a_name.port, localAddress.c_str(), (int) localTlsPort);
 
@@ -2354,7 +2354,7 @@ pj_status_t SIPVoIPLink::createTlsTransport (AccountID id)
     status = pjsip_tls_transport_start (_endpt, tls_setting, &local_addr, &a_name, 1, &tls);
 
     if (status != PJ_SUCCESS) {
-        _debug ("Error creating SIP TLS listener (%d)\n", status);
+        _debug ("Error creating SIP TLS listener (%d)", status);
     }
 
     return PJ_SUCCESS;
@@ -2369,11 +2369,11 @@ bool SIPVoIPLink::loadSIPLocalIP (std::string *addr)
 
     if (pj_gethostip (pj_AF_INET(), &ip_addr) != PJ_SUCCESS) {
 		// Update the registration state if no network capabilities found
-        _debug ("UserAgent: Get host ip failed!\n");
+        _debug ("UserAgent: Get host ip failed!");
         returnValue = false;
     } else {
         localAddress = std::string (pj_inet_ntoa (ip_addr.ipv4.sin_addr));
-        _debug ("UserAgent: Checking network, setting local IP address to: %s\n", localAddress.data());
+        _debug ("UserAgent: Checking network, setting local IP address to: %s", localAddress.data());
     }
 
 	*addr = localAddress;
@@ -2410,7 +2410,7 @@ void SIPVoIPLink::busy_sleep (unsigned msec)
 bool SIPVoIPLink::pjsip_shutdown (void)
 {
     if (_endpt) {
-        _debug ("UserAgent: Shutting down...\n");
+        _debug ("UserAgent: Shutting down...");
         busy_sleep (1000);
     }
 
@@ -2465,7 +2465,7 @@ void set_voicemail_info (AccountID account, pjsip_msg_body *body)
     std::string delimiter = "/";
     std::string msg_body, voicemail_str;
 
-    _debug ("UserAgent: checking the voice message!\n");
+    _debug ("UserAgent: checking the voice message!");
     // The voicemail message is formated like that:
     // Voice-Message: 1/0  . 1 is the number we want to retrieve in this case
 
@@ -2499,19 +2499,19 @@ void SIPVoIPLink::handle_reinvite (SIPCall *call)
     call->getAudioRtp()->stop ();
     call->setAudioStart (false);
 
-    _debug ("Create new rtp session from handle_reinvite : %s:%i\n", call->getLocalIp().c_str(), call->getLocalAudioPort());
+    _debug ("Create new rtp session from handle_reinvite : %s:%i", call->getLocalIp().c_str(), call->getLocalAudioPort());
 
     try {
         call->getAudioRtp()->initAudioRtpSession (call);
     } catch (...) {
-        _debug ("! SIP Failure: Unable to create RTP Session (%s:%d)\n", __FILE__, __LINE__);
+        _debug ("! SIP Failure: Unable to create RTP Session (%s:%d)", __FILE__, __LINE__);
     }
 }
 
 // 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 to state %s\n", invitationStateMap[inv->state]);
+    _debug ("call_on_state_changed to state %s", invitationStateMap[inv->state]);
 
     pjsip_rx_data *rdata;
     pj_status_t status;
@@ -2524,8 +2524,8 @@ void call_on_state_changed (pjsip_inv_session *inv, pjsip_event *e)
         _debug ("Call is NULL in call_on_state_changed");
         return;
     } else {
-        // _debug("    call_on_state_changed: call id %s\n", call->getCallId().c_str());
-        // _debug("    call_on_state_changed: call state %s\n", invitationStateMap[call->getInvSession()->state]);
+        // _debug("    call_on_state_changed: call id %s", call->getCallId().c_str());
+        // _debug("    call_on_state_changed: call state %s", invitationStateMap[call->getInvSession()->state]);
     }
 
     //Retrieve the body message
@@ -2600,12 +2600,12 @@ void call_on_state_changed (pjsip_inv_session *inv, pjsip_event *e)
                                         NULL, &tdata);
 
             if (status != PJ_SUCCESS) {
-                _debug ("UserAgent: Unable to create NOTIFY -- %d\n", status);
+                _debug ("UserAgent: Unable to create NOTIFY -- %d", status);
             } else {
                 status = pjsip_xfer_send_request (call->getXferSub(), tdata);
 
                 if (status != PJ_SUCCESS) {
-                    _debug ("UserAgent: Unable to send NOTIFY -- %d\n", status);
+                    _debug ("UserAgent: Unable to send NOTIFY -- %d", status);
                 }
             }
         }
@@ -2642,7 +2642,7 @@ void call_on_state_changed (pjsip_inv_session *inv, pjsip_event *e)
         status = call->getLocalSDP()->check_sdp_answer (inv, rdata);
 
         if (status != PJ_SUCCESS) {
-            _debug ("Failed to check_incoming_sdp in call_on_state_changed\n");
+            _debug ("Failed to check_incoming_sdp in call_on_state_changed");
             return;
         }
     }
@@ -2654,7 +2654,7 @@ void call_on_state_changed (pjsip_inv_session *inv, pjsip_event *e)
 
     } else if (inv->state == PJSIP_INV_STATE_DISCONNECTED) {
 
-        _debug ("State: %s. Cause: %.*s\n", invitationStateMap[inv->state], (int) inv->cause_text.slen, inv->cause_text.ptr);
+        _debug ("State: %s. Cause: %.*s", invitationStateMap[inv->state], (int) inv->cause_text.slen, inv->cause_text.ptr);
 
         switch (inv->cause) {
                 /* The call terminates normally - BYE / CANCEL */
@@ -2696,7 +2696,7 @@ void call_on_state_changed (pjsip_inv_session *inv, pjsip_event *e)
                 break;
 
             default:
-                _debug ("sipvoiplink.cpp - line %d : Unhandled call state. This is probably a bug.\n", __LINE__);
+                _debug ("sipvoiplink.cpp - line %d : Unhandled call state. This is probably a bug.", __LINE__);
                 break;
         }
     }
@@ -2706,7 +2706,7 @@ void call_on_state_changed (pjsip_inv_session *inv, pjsip_event *e)
 // 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");
+    _debug ("call_on_media_update");
 
     const pjmedia_sdp_session *local_sdp;
     const pjmedia_sdp_session *remote_sdp;
@@ -2717,19 +2717,19 @@ void call_on_media_update (pjsip_inv_session *inv, pj_status_t status)
     call = reinterpret_cast<SIPCall *> (inv->mod_data[getModId() ]);
 
     if (!call) {
-        _debug ("Call declined by peer, SDP negociation stopped\n");
+        _debug ("Call declined by peer, SDP negociation stopped");
         return;
     }
 
     link = dynamic_cast<SIPVoIPLink *> (Manager::instance().getAccountLink (AccountNULL));
 
     if (link == NULL) {
-        _debug ("Failed to get sip link\n");
+        _debug ("Failed to get sip link");
         return;
     }
 
     if (status != PJ_SUCCESS) {
-        _debug ("Error while negotiating the offer\n");
+        _debug ("Error while negotiating the offer");
         link->hangup (call->getCallId());
         Manager::instance().callFailure (call->getCallId());
         return;
@@ -2759,7 +2759,7 @@ void call_on_media_update (pjsip_inv_session *inv, pj_status_t status)
         call->setAudioStart (true);
         call->getAudioRtp()->start();
     } catch (exception& rtpException) {
-        _debug ("%s\n", rtpException.what());
+        _debug ("%s", rtpException.what());
     }
 
 }
@@ -2770,7 +2770,7 @@ void call_on_forked (pjsip_inv_session *inv, pjsip_event *e)
 
 void call_on_tsx_changed (pjsip_inv_session *inv, pjsip_transaction *tsx, pjsip_event *e)
 {
-    _debug ("call_on_tsx_changed to state %s\n", transactionStateMap[tsx->state]);
+    _debug ("call_on_tsx_changed to state %s", transactionStateMap[tsx->state]);
 
     if (tsx->role==PJSIP_ROLE_UAS && tsx->state==PJSIP_TSX_STATE_TRYING &&
             pjsip_method_cmp (&tsx->method, &pjsip_refer_method) ==0) {
@@ -2785,7 +2785,7 @@ void regc_cb (struct pjsip_regc_cbparam *param)
     account = static_cast<SIPAccount *> (param->token);
 
     if (account == NULL) {
-        _debug ("Account is NULL in regc_cb.\n");
+        _debug ("Account is NULL in regc_cb.");
         return;
     }
 
@@ -2804,7 +2804,7 @@ void regc_cb (struct pjsip_regc_cbparam *param)
             /* Sometimes, the status is OK, but we still failed.
              * So checking the code for real result
              */
-            _debug ("UserAgent: The error is: %d\n", param->code);
+            _debug ("UserAgent: The error is: %d", param->code);
 
             switch (param->code) {
 
@@ -2875,7 +2875,7 @@ mod_on_rx_request (pjsip_rx_data *rdata)
     std::string request;
 
     // Handle the incoming call invite in this function
-    _debug ("UserAgent: Callback on_rx_request is involved! \n");
+    _debug ("UserAgent: Callback on_rx_request is involved! ");
 
     /* First, let's got the username and server name from the invite.
      * We will use them to detect which account is the callee.
@@ -2886,7 +2886,7 @@ mod_on_rx_request (pjsip_rx_data *rdata)
     userName = std::string (sip_uri->user.ptr, sip_uri->user.slen);
     server = std::string (sip_uri->host.ptr, sip_uri->host.slen);
 
-    _debug ("mod_on_rx_request: %s@%s\n", userName.c_str(), server.c_str());
+    _debug ("mod_on_rx_request: %s@%s", userName.c_str(), server.c_str());
 
     // Get the account id of callee from username and server
     account_id = Manager::instance().getAccountIdFromNameAndServer (userName, server);
@@ -2894,7 +2894,7 @@ mod_on_rx_request (pjsip_rx_data *rdata)
     /* If we don't find any account to receive the call */
 
     if (account_id == AccountNULL) {
-        _debug ("UserAgent: Username %s doesn't match any account!\n",userName.c_str());
+        _debug ("UserAgent: Username %s doesn't match any account!",userName.c_str());
         //return false;
     }
 
@@ -2904,29 +2904,29 @@ mod_on_rx_request (pjsip_rx_data *rdata)
 
     /* If we can't find any voIP link to handle the incoming call */
     if (link == 0) {
-        _debug ("ERROR: can not retrieve the voiplink from the account ID...\n");
+        _debug ("ERROR: can not retrieve the voiplink from the account ID...");
         return false;
     }
 
 
     char* from_header = strstr (rdata->msg_info.msg_buf, "From: ");
 
-    // _debug("------------------------------ thefromheader: %s\n", from_header);
+    // _debug("------------------------------ thefromheader: %s", from_header);
 
     if (from_header) {
 
         std::string temp (from_header);
         int begin_displayName = temp.find ("\"") + 1;
         int end_displayName = temp.rfind ("\"");
-        // _debug("The display name start at %i, end at %i\n", begin_displayName, end_displayName);
+        // _debug("The display name start at %i, end at %i", begin_displayName, end_displayName);
         displayName = temp.substr (begin_displayName, end_displayName - begin_displayName);//display_name);
     } else {
         displayName = std::string ("");
     }
 
-    _debug ("UserAgent: The receiver is : %s@%s\n", userName.data(), server.data());
+    _debug ("UserAgent: The receiver is : %s@%s", userName.data(), server.data());
 
-    _debug ("UserAgent: The callee account id is %s\n", account_id.c_str());
+    _debug ("UserAgent: The callee account id is %s", account_id.c_str());
 
     /* Now, it is the time to find the information of the caller */
     uri = rdata->msg_info.from->uri;
@@ -3005,7 +3005,7 @@ mod_on_rx_request (pjsip_rx_data *rdata)
                                     Manager::instance().getConfigString (HOOKS, URLHOOK_COMMAND));
             }
         } else
-            throw length_error ("Url exceeds std::string max_size\n");
+            throw length_error ("Url exceeds std::string max_size");
 
     }
 
@@ -3070,7 +3070,7 @@ mod_on_rx_request (pjsip_rx_data *rdata)
         // Fail to notify UI
         delete call;
         call = NULL;
-        _debug ("UserAgent: Fail to notify UI!\n");
+        _debug ("UserAgent: Fail to notify UI!");
         return false;
     }
 
@@ -3146,7 +3146,7 @@ void onCallTransfered (pjsip_inv_session *inv, pjsip_rx_data *rdata)
         /* Invalid Request.
          * No Refer-To header!
          */
-        _debug ("UserAgent: Received REFER without Refer-To header!\n");
+        _debug ("UserAgent: Received REFER without Refer-To header!");
         pjsip_dlg_respond (inv->dlg, rdata, 400, NULL, NULL, NULL);
         return;
     }
@@ -3170,7 +3170,7 @@ void onCallTransfered (pjsip_inv_session *inv, pjsip_rx_data *rdata)
     /* Notify callback */
     code = PJSIP_SC_ACCEPTED;
 
-    _debug ("UserAgent: Call to %.*s is being transfered to %.*s\n",
+    _debug ("UserAgent: Call to %.*s is being transfered to %.*s",
             (int) inv->dlg->remote.info_str.slen,
             inv->dlg->remote.info_str.ptr,
             (int) refer_to->hvalue.slen,
@@ -3188,7 +3188,7 @@ void onCallTransfered (pjsip_inv_session *inv, pjsip_rx_data *rdata)
                                             &tdata);
 
         if (status != PJ_SUCCESS) {
-            _debug ("UserAgent: Unable to create 2xx response to REFER -- %d\n", status);
+            _debug ("UserAgent: Unable to create 2xx response to REFER -- %d", status);
             return;
         }
 
@@ -3205,7 +3205,7 @@ void onCallTransfered (pjsip_inv_session *inv, pjsip_rx_data *rdata)
                                           tdata);
 
         if (status != PJ_SUCCESS) {
-            _debug ("UserAgent: Unable to create 2xx response to REFER -- %d\n", status);
+            _debug ("UserAgent: Unable to create 2xx response to REFER -- %d", status);
             return;
         }
 
@@ -3228,7 +3228,7 @@ void onCallTransfered (pjsip_inv_session *inv, pjsip_rx_data *rdata)
         status = pjsip_xfer_create_uas (inv->dlg, &xfer_cb, rdata, &sub);
 
         if (status != PJ_SUCCESS) {
-            _debug ("UserAgent: Unable to create xfer uas -- %d\n", status);
+            _debug ("UserAgent: Unable to create xfer uas -- %d", status);
             pjsip_dlg_respond (inv->dlg, rdata, 500, NULL, NULL, NULL);
             return;
         }
@@ -3264,7 +3264,7 @@ void onCallTransfered (pjsip_inv_session *inv, pjsip_rx_data *rdata)
         status = pjsip_xfer_send_request (sub, tdata);
 
         if (status != PJ_SUCCESS) {
-            _debug ("UserAgent: Unable to send NOTIFY to REFER -- %d\n", status);
+            _debug ("UserAgent: Unable to send NOTIFY to REFER -- %d", status);
             return;
         }
     }
@@ -3282,7 +3282,7 @@ void onCallTransfered (pjsip_inv_session *inv, pjsip_rx_data *rdata)
     tmp = std::string (uri);
 
     if (existing_call == NULL) {
-        _debug ("UserAgent: Call doesn't exist!\n");
+        _debug ("UserAgent: Call doesn't exist!");
         return;
     }
 
@@ -3298,14 +3298,14 @@ void onCallTransfered (pjsip_inv_session *inv, pjsip_rx_data *rdata)
                                         500, NULL, &tdata);
 
             if (status != PJ_SUCCESS) {
-                _debug ("UserAgent: Unable to create NOTIFY to REFER -- %d\n", status);
+                _debug ("UserAgent: Unable to create NOTIFY to REFER -- %d", status);
                 return;
             }
 
             status = pjsip_xfer_send_request (sub, tdata);
 
             if (status != PJ_SUCCESS) {
-                _debug ("UserAgent: Unable to send NOTIFY to REFER -- %d\n", status);
+                _debug ("UserAgent: Unable to send NOTIFY to REFER -- %d", status);
                 return;
             }
         }
@@ -3321,7 +3321,7 @@ void onCallTransfered (pjsip_inv_session *inv, pjsip_rx_data *rdata)
         newCall = dynamic_cast<SIPCall *> (link->getCall (newCallId));
 
         if (!newCall) {
-            _debug ("UserAgent: can not find the call from sipvoiplink!\n");
+            _debug ("UserAgent: can not find the call from sipvoiplink!");
             return;
         }
     }
@@ -3354,7 +3354,7 @@ void xfer_func_cb (pjsip_evsub *sub, pjsip_event *event)
 
     if (pjsip_evsub_get_state (sub) == PJSIP_EVSUB_STATE_ACCEPTED) {
 
-        _debug ("Transfer accepted! Waiting for notifications. \n");
+        _debug ("Transfer accepted! Waiting for notifications. ");
 
     }
 
@@ -3386,13 +3386,13 @@ void xfer_func_cb (pjsip_evsub *sub, pjsip_event *event)
 
         if (pjsip_evsub_get_state (sub) == PJSIP_EVSUB_STATE_TERMINATED) {
             pjsip_evsub_set_mod_data (sub, _mod_ua.id, NULL);
-            _debug ("UserAgent: Xfer client subscription terminated\n");
+            _debug ("UserAgent: Xfer client subscription terminated");
 
         }
 
         if (!link || !event) {
             /* Application is not interested with call progress status */
-            _debug ("UserAgent: Either link or event is empty!\n");
+            _debug ("UserAgent: Either link or event is empty!");
             return;
         }
 
@@ -3413,10 +3413,10 @@ void xfer_func_cb (pjsip_evsub *sub, pjsip_event *event)
 
             if (!body) {
                 // if (call->getCallConfiguration () == Call::IPtoIP) {
-                //   _debug("UserAgent: IptoIp NOTIFY without message body\n");
+                //   _debug("UserAgent: IptoIp NOTIFY without message body");
                 // }
                 // else{
-                _debug ("UserAgent: Warning! Received NOTIFY without message body\n");
+                _debug ("UserAgent: Warning! Received NOTIFY without message body");
                 return;
                 // }
             }
@@ -3426,7 +3426,7 @@ void xfer_func_cb (pjsip_evsub *sub, pjsip_event *event)
             /* Check for appropriate content */
             if (pj_stricmp2 (&body->content_type.type, "message") != 0 ||
                     pj_stricmp2 (&body->content_type.subtype, "sipfrag") != 0) {
-                _debug ("UserAgent: Warning! Received NOTIFY with non message/sipfrag content\n");
+                _debug ("UserAgent: Warning! Received NOTIFY with non message/sipfrag content");
                 return;
             }
 
@@ -3435,12 +3435,12 @@ void xfer_func_cb (pjsip_evsub *sub, pjsip_event *event)
                                                &status_line);
 
             if (status != PJ_SUCCESS) {
-                _debug ("UserAgent: Warning! Received NOTIFY with invalid message/sipfrag content\n");
+                _debug ("UserAgent: Warning! Received NOTIFY with invalid message/sipfrag content");
                 return;
             }
 
         } else {
-            _debug ("UserAgent: Set code to 500!\n");
+            _debug ("UserAgent: Set code to 500!");
             status_line.code = 500;
             status_line.reason = *pjsip_get_status_text (500);
         }
@@ -3449,7 +3449,7 @@ void xfer_func_cb (pjsip_evsub *sub, pjsip_event *event)
         SIPCall *call = dynamic_cast<SIPCall *> (link->getCall (Manager::instance().getCurrentCallId()));
 
         if (!call) {
-            _debug ("UserAgent: Call doesn't exit!\n");
+            _debug ("UserAgent: Call doesn't exit!");
             return;
         }
 
@@ -3458,7 +3458,7 @@ void xfer_func_cb (pjsip_evsub *sub, pjsip_event *event)
             request = event->body.rx_msg.rdata->msg_info.msg_buf;
 
             if ( (int) request.find (noresource) != -1) {
-                _debug ("UserAgent: NORESOURCE for transfer!\n");
+                _debug ("UserAgent: NORESOURCE for transfer!");
                 link->transferStep2 (call);
                 pjsip_evsub_terminate (sub, PJ_TRUE);
 
@@ -3467,7 +3467,7 @@ void xfer_func_cb (pjsip_evsub *sub, pjsip_event *event)
             }
 
             if ( (int) request.find (ringing) != -1) {
-                _debug ("UserAgent: transfered call RINGING!\n");
+                _debug ("UserAgent: transfered call RINGING!");
                 link->transferStep2 (call);
                 pjsip_evsub_terminate (sub, PJ_TRUE);
 
@@ -3484,18 +3484,18 @@ void xfer_func_cb (pjsip_evsub *sub, pjsip_event *event)
 
         if (status_line.code/100 == 2) {
 
-            _debug ("UserAgent: Try to stop rtp!\n");
+            _debug ("UserAgent: Try to stop rtp!");
             pjsip_tx_data *tdata;
 
             status = pjsip_inv_end_session (call->getInvSession(), PJSIP_SC_GONE, NULL, &tdata);
 
             if (status != PJ_SUCCESS) {
-                _debug ("UserAgent: Fail to create end session msg!\n");
+                _debug ("UserAgent: Fail to create end session msg!");
             } else {
                 status = pjsip_inv_send_msg (call->getInvSession(), tdata);
 
                 if (status != PJ_SUCCESS)
-                    _debug ("UserAgent: Fail to send end session msg!\n");
+                    _debug ("UserAgent: Fail to send end session msg!");
             }
 
             link->transferStep2 (call);
@@ -3535,7 +3535,7 @@ void xfer_svr_cb (pjsip_evsub *sub, pjsip_event *event)
 
         call->setXferSub (NULL);
 
-        _debug ("UserAgent: Xfer server subscription terminated\n");
+        _debug ("UserAgent: Xfer server subscription terminated");
     }
 }
 
@@ -3544,7 +3544,7 @@ void on_rx_offer (pjsip_inv_session *inv, const pjmedia_sdp_session *offer)
 
 
 #ifdef CAN_REINVITE
-    _debug ("%s (%d): on_rx_offer REINVITE\n", __FILE__, __LINE__);
+    _debug ("%s (%d): on_rx_offer REINVITE", __FILE__, __LINE__);
 
     SIPCall *call;
     pj_status_t status;
@@ -3643,10 +3643,10 @@ bool setCallAudioLocal (SIPCall* call, std::string localIP)
             callLocalExternAudioPort = account->getStunPort ();
         }
 
-        _debug ("            Setting local ip address: %s\n", localIP.c_str());
+        _debug ("            Setting local ip address: %s", localIP.c_str());
 
-        _debug ("            Setting local audio port to: %d\n", callLocalAudioPort);
-        _debug ("            Setting local audio port (external) to: %d\n", callLocalExternAudioPort);
+        _debug ("            Setting local audio port to: %d", callLocalAudioPort);
+        _debug ("            Setting local audio port (external) to: %d", callLocalExternAudioPort);
 
         // Set local audio port for SIPCall(id)
         call->setLocalIp (localIP);
@@ -3683,7 +3683,7 @@ std::string fetch_header_value (pjsip_msg *msg, std::string field)
 
     value = hdr->hvalue.ptr;
 
-    if ( (pos=value.find ("\n")) == std::string::npos) {
+    if ( (pos=value.find ("")) == std::string::npos) {
         return "";
     }
 
@@ -3706,7 +3706,7 @@ std::vector<std::string> SIPVoIPLink::getAllIpInterface (void)
         return ifaceList;
     }
 
-    _debug ("Detecting available interfaces...\n");
+    _debug ("Detecting available interfaces...");
 
     int i;
 
@@ -3714,7 +3714,7 @@ std::vector<std::string> SIPVoIPLink::getAllIpInterface (void)
         char tmpAddr[PJ_INET_ADDRSTRLEN];
         pj_sockaddr_print (&addrList[i], tmpAddr, sizeof (tmpAddr), 0);
         ifaceList.push_back (std::string (tmpAddr));
-        _debug ("Local interface %s\n", tmpAddr);
+        _debug ("Local interface %s", tmpAddr);
     }
 
     return ifaceList;
@@ -3761,12 +3761,12 @@ std::string getLocalAddressAssociatedToAccount (AccountID id)
         local_addr_ipv4 = _localUDPTransport->local_addr.ipv4;
     }
 
-    _debug ("slbvasjklbvaskbvaskvbaskvaskvbsdfk: %i\n", local_addr_ipv4.sin_addr.s_addr);
+    _debug ("slbvasjklbvaskbvaskvbaskvaskvbsdfk: %i", local_addr_ipv4.sin_addr.s_addr);
 
     tmp = pj_str (pj_inet_ntoa (local_addr_ipv4.sin_addr));
     localAddr = std::string (tmp.ptr);
 
-    _debug ("slbvasjklbvaskbvaskvbaskvaskvbsdfk: %s\n", localAddr.c_str());
+    _debug ("slbvasjklbvaskbvaskvbaskvaskvbsdfk: %s", localAddr.c_str());
 
     return localAddr;
 
diff --git a/sflphone-common/src/util/Pattern.cpp b/sflphone-common/src/util/Pattern.cpp
index 85cb60392b..95186c5d68 100644
--- a/sflphone-common/src/util/Pattern.cpp
+++ b/sflphone-common/src/util/Pattern.cpp
@@ -125,7 +125,7 @@ std::vector<std::string> Pattern::groups (void)
 
     while (stringList[i] != NULL) {
         matchedSubstrings.push_back (stringList[i]);
-        printf ("Substr: <start>%s<end>\n", stringList[i]);
+        printf ("Substr: <start>%s<end>", stringList[i]);
         i++;
     }
 
@@ -246,8 +246,8 @@ bool Pattern::matches (void) throw (match_error)
 
 bool Pattern::matches (const std::string& subject) throw (match_error)
 {
-    //printf("\n\n\nCurrent offset: %d, old offset: %d\n", _offset[1], _offset[0]);
-    //printf("Trying <start>%s<end>\n", subject.substr(_offset[1]).c_str());
+    //printf("Current offset: %d, old offset: %d", _offset[1], _offset[0]);
+    //printf("Trying <start>%s<end>", subject.substr(_offset[1]).c_str());
 
     // Try to find a match for this pattern
     int rc = pcre_exec (
@@ -264,7 +264,7 @@ bool Pattern::matches (const std::string& subject) throw (match_error)
 
     if (rc < 0) {
         _offset[0] = _offset[1] = 0;
-        //printf("Matching failed with %d\n", rc);
+        //printf("Matching failed with %d", rc);
         return false;
     }
 
@@ -275,7 +275,7 @@ bool Pattern::matches (const std::string& subject) throw (match_error)
         _offset[1] =  _ovector[1] + _offset[0];
     }
 
-    //printf("Matching succeeded with %d to %d\n", (int) start(), (int) end());
+    //printf("Matching succeeded with %d to %d", (int) start(), (int) end());
 
     // Matching succeded but not enough space.
     if (rc == 0) {
diff --git a/sflphone-common/test/audiolayerTest.cpp b/sflphone-common/test/audiolayerTest.cpp
index 1cdb792598..f655843af3 100644
--- a/sflphone-common/test/audiolayerTest.cpp
+++ b/sflphone-common/test/audiolayerTest.cpp
@@ -73,13 +73,13 @@ void AudioLayerTest::testAudioLayerConfig()
 void AudioLayerTest::testAudioLayerSwitch()
 {
 
-    _debug ("---------- AudioLayerTest::testAudioLayerSwitch ---------------------------\n");
+    _debug ("---------- AudioLayerTest::testAudioLayerSwitch ---------------------------");
 
 
     int previous_layer = Manager::instance().getAudioDriver()->getLayerType();
 
     for (int i = 0; i < 2; i++) {
-        _debug ("---------- AudioLayerTest::testAudioLayerSwitch - %i -------------\n",i);
+        _debug ("---------- AudioLayerTest::testAudioLayerSwitch - %i -------------",i);
         Manager::instance().switchAudioManager();
 
         if (previous_layer == ALSA) {
@@ -99,7 +99,7 @@ void AudioLayerTest::testAudioLayerSwitch()
 void AudioLayerTest::testPulseConnect()
 {
 
-    _debug ("---------- AudioLayerTest::testPulseConnect ---------------------------\n");
+    _debug ("---------- AudioLayerTest::testPulseConnect ---------------------------");
 
     ManagerImpl* manager;
     manager = &Manager::instance();
@@ -125,7 +125,7 @@ void AudioLayerTest::testPulseConnect()
     try {
         CPPUNIT_ASSERT (_pulselayer->openDevice (numCardIn, numCardOut, sampleRate, frameSize, SFL_PCM_BOTH, alsaPlugin) == true);
     } catch (...) {
-        _debug ("Exception occured wile opening device! \n");
+        _debug ("Exception occured wile opening device! ");
     }
 
     usleep (100000);
@@ -154,7 +154,7 @@ void AudioLayerTest::testPulseConnect()
     CPPUNIT_ASSERT (_pulselayer->getPlaybackStream()->disconnectStream() == true);
     CPPUNIT_ASSERT (_pulselayer->getRecordStream()->disconnectStream() == true);
 
-    // _debug("%i\n",_pulselayer->getPlaybackStream()->getStreamState());
+    // _debug("%i",_pulselayer->getPlaybackStream()->getStreamState());
 
     CPPUNIT_ASSERT (_pulselayer->getPlaybackStream()->connectStream() == true);
     CPPUNIT_ASSERT (_pulselayer->getRecordStream()->connectStream() == true);
@@ -176,7 +176,7 @@ void AudioLayerTest::testPulseConnect()
 void AudioLayerTest::testAlsaConnect()
 {
 
-    _debug ("---------- AudioLayerTest::testAlsaConnect ---------------------------\n");
+    _debug ("---------- AudioLayerTest::testAlsaConnect ---------------------------");
 
     int layer = Manager::instance().getAudioDriver()->getLayerType();
 
diff --git a/sflphone-common/test/audiorecorderTest.cpp b/sflphone-common/test/audiorecorderTest.cpp
index fc349f08c2..d4dda35db6 100644
--- a/sflphone-common/test/audiorecorderTest.cpp
+++ b/sflphone-common/test/audiorecorderTest.cpp
@@ -40,7 +40,7 @@ void AudioRecorderTest::testRecordData()
       _ar->setSndSamplingRate(44100);
       _ar->openFile("theWavFile.wav",ft,sf);
 
-      cout << "file opened!\n";
+      cout << "file opened!";
 
       SFLDataFormat buf [2];
       for (SFLDataFormat i = -32768; i < 32767; i++ ){
diff --git a/sflphone-common/test/mainbufferTest.cpp b/sflphone-common/test/mainbufferTest.cpp
index 63c9fa2f4d..885f0582f0 100644
--- a/sflphone-common/test/mainbufferTest.cpp
+++ b/sflphone-common/test/mainbufferTest.cpp
@@ -53,7 +53,7 @@ void MainBufferTest::tearDown()
 
 void MainBufferTest::testRingBufferCreation()
 {
-    _debug ("MainBufferTest::testRingBufferCreation()\n");
+    _debug ("MainBufferTest::testRingBufferCreation()");
 
     CallID test_id = "1234";
     CallID null_id = "null id";
@@ -100,7 +100,7 @@ void MainBufferTest::testRingBufferCreation()
 
 void MainBufferTest::testRingBufferReadPointer()
 {
-    _debug ("MainBufferTest::testRingBufferReadPointer()\n");
+    _debug ("MainBufferTest::testRingBufferReadPointer()");
 
     CallID call_id = "call id";
     CallID read_id = "read id";
@@ -147,7 +147,7 @@ void MainBufferTest::testRingBufferReadPointer()
 
 void MainBufferTest::testCallIDSet()
 {
-    _debug ("MainBufferTest::testCallIDSet()\n");
+    _debug ("MainBufferTest::testCallIDSet()");
 
     CallID test_id = "set id";
     CallID false_id = "false set id";
@@ -231,7 +231,7 @@ void MainBufferTest::testCallIDSet()
 void MainBufferTest::testRingBufferInt()
 {
 
-    _debug ("MainBufferTest::testRingbufferInt()\n");
+    _debug ("MainBufferTest::testRingbufferInt()");
 
     // CallID test_id = "test_int";
 
@@ -348,7 +348,7 @@ void MainBufferTest::testRingBufferInt()
 void MainBufferTest::testRingBufferNonDefaultID()
 {
 
-    _debug ("MainBufferTest::testRingBufferNonDefaultID()\n");
+    _debug ("MainBufferTest::testRingBufferNonDefaultID()");
 
     CallID test_id = "test_int";
 
@@ -436,7 +436,7 @@ void MainBufferTest::testRingBufferNonDefaultID()
 void MainBufferTest::testRingBufferFloat()
 {
 
-    _debug ("MainBufferTest::testRingBufferFloat()\n");
+    _debug ("MainBufferTest::testRingBufferFloat()");
 
     float testfloat1 = 12.5;
     float testfloat2 = 13.4;
@@ -471,7 +471,7 @@ void MainBufferTest::testRingBufferFloat()
 void MainBufferTest::testTwoPointer()
 {
 
-    _debug ("MainBufferTest::testTwoPointer()\n");
+    _debug ("MainBufferTest::testTwoPointer()");
 
 
     RingBuffer* input_buffer = _mainbuffer.createRingBuffer (default_id);
@@ -490,7 +490,7 @@ void MainBufferTest::testTwoPointer()
 void MainBufferTest::testBindUnbindBuffer()
 {
 
-    _debug ("MainBufferTest::testBindUnbindBuffer()\n");
+    _debug ("MainBufferTest::testBindUnbindBuffer()");
 
     CallID test_id1 = "bind unbind 1";
     CallID test_id2 = "bind unbind 2";
@@ -554,7 +554,7 @@ void MainBufferTest::testBindUnbindBuffer()
     // unbind test_id1 with default_id
     _mainbuffer.unBindCallID (test_id1);
 
-    _debug ("%i\n", _mainbuffer._ringBufferMap.size());
+    _debug ("%i", _mainbuffer._ringBufferMap.size());
     CPPUNIT_ASSERT (_mainbuffer._ringBufferMap.size() == 0);
     CPPUNIT_ASSERT (_mainbuffer._callIDMap.size() == 0);
 
@@ -767,7 +767,7 @@ void MainBufferTest::testBindUnbindBuffer()
     CPPUNIT_ASSERT (iter_readpointer->second == 0);
 
 
-    _debug ("ok1\n");
+    _debug ("ok1");
 
     // unbind test_id1 with test_id2
     // calling it twice not supposed to break anything
@@ -890,7 +890,7 @@ void MainBufferTest::testBindUnbindBuffer()
 void MainBufferTest::testGetPutDataByID()
 {
 
-    _debug ("MainBufferTest::testGetPutData()\n");
+    _debug ("MainBufferTest::testGetPutData()");
 
     CallID test_id = "getData putData";
     CallID false_id = "false id";
@@ -946,7 +946,7 @@ void MainBufferTest::testGetPutDataByID()
 void MainBufferTest::testGetPutData()
 {
 
-    _debug ("MainBufferTest::testGetDataAndCallID()\n");
+    _debug ("MainBufferTest::testGetDataAndCallID()");
 
     CallID test_id = "incoming rtp session";
 
@@ -995,7 +995,7 @@ void MainBufferTest::testGetPutData()
 void MainBufferTest::testDiscardFlush()
 {
 
-    _debug ("MainBufferTest::testDiscardFlush()\n");
+    _debug ("MainBufferTest::testDiscardFlush()");
 
     CallID test_id = "flush discard";
     // _mainbuffer.createRingBuffer(test_id);
@@ -1038,7 +1038,7 @@ void MainBufferTest::testDiscardFlush()
 void MainBufferTest::testReadPointerInit()
 {
 
-    _debug ("MainBufferTest::testReadPointerInit()\n");
+    _debug ("MainBufferTest::testReadPointerInit()");
 
     CallID test_id = "test read pointer init";
     // RingBuffer* test_ring_buffer = _mainbuffer.createRingBuffer(test_id);
@@ -1067,7 +1067,7 @@ void MainBufferTest::testReadPointerInit()
 void MainBufferTest::testRingBufferSeveralPointers()
 {
 
-    _debug ("MainBufferTest::testRingBufferSeveralPointers\n");
+    _debug ("MainBufferTest::testRingBufferSeveralPointers");
 
     CallID test_id = "test multiple read pointer";
     RingBuffer* test_ring_buffer = _mainbuffer.createRingBuffer (test_id);
@@ -1181,7 +1181,7 @@ void MainBufferTest::testRingBufferSeveralPointers()
 void MainBufferTest::testConference()
 {
 
-    _debug ("MainBufferTest::testConference()\n");
+    _debug ("MainBufferTest::testConference()");
 
     CallID test_id1 = "participant A";
     CallID test_id2 = "participant B";
@@ -1695,7 +1695,7 @@ void MainBufferTest::testConference()
     CPPUNIT_ASSERT (test_ring_buffer->AvailForGet (test_id1) == sizeof (int));
     CPPUNIT_ASSERT (test_ring_buffer->AvailForGet (test_id2) == sizeof (int));
     test_ring_buffer = _mainbuffer.getRingBuffer (test_id1);
-    _debug ("%i\n", test_ring_buffer->putLen());
+    _debug ("%i", test_ring_buffer->putLen());
     test_ring_buffer->debug();
     CPPUNIT_ASSERT (test_ring_buffer->putLen() == sizeof (int));
     CPPUNIT_ASSERT (test_ring_buffer->AvailForPut() == (int) (init_put_id1 - sizeof (int)));
diff --git a/sflphone-common/test/rtpTest.cpp b/sflphone-common/test/rtpTest.cpp
index 4a4d313314..04219eaa7e 100644
--- a/sflphone-common/test/rtpTest.cpp
+++ b/sflphone-common/test/rtpTest.cpp
@@ -41,7 +41,7 @@ using std::endl;
 void RtpTest::setUp()
 {
 
-    _debug ("------ Set up rtp test------\n");
+    _debug ("------ Set up rtp test------");
 
     Manager::instance().initConfigFile();
     Manager::instance().init();
@@ -69,7 +69,7 @@ bool RtpTest::pjsipInit()
     _pool = pj_pool_create (&_cp.factory, "rtpTest", 4000, 4000, NULL);
 
     if (!_pool) {
-        _debug ("----- RtpTest: Could not initialize pjsip memory pool ------\n");
+        _debug ("----- RtpTest: Could not initialize pjsip memory pool ------");
         return PJ_ENOMEM;
     }
 
@@ -83,16 +83,16 @@ void RtpTest::testRtpInitClose()
 
     audiortp = new AudioRtp();
 
-    _debug ("------ void RtpTest::testRtpInit() ------\n");
+    _debug ("------ void RtpTest::testRtpInit() ------");
 
     try {
 
-        _debug ("-------- Open Rtp Session ----------\n");
+        _debug ("-------- Open Rtp Session ----------");
         audiortp->createNewSession (sipcall);
 
     } catch (...) {
 
-        _debug ("!!! Exception occured while Oppenning Rtp !!!\n");
+        _debug ("!!! Exception occured while Oppenning Rtp !!!");
 
     }
 
@@ -103,18 +103,18 @@ void RtpTest::testRtpInitClose()
 
     // computeNbByteAudioLayer
 
-    _debug ("------ Finilize Rtp Initialization ------ \n");
+    _debug ("------ Finilize Rtp Initialization ------ ");
 
 
-    _debug ("------ RtpTest::testRtpClose() ------\n");
+    _debug ("------ RtpTest::testRtpClose() ------");
 
     try {
-        _debug ("------ Close Rtp Session -------\n");
+        _debug ("------ Close Rtp Session -------");
         CPPUNIT_ASSERT (audiortp->closeRtpSession());
 
     } catch (...) {
 
-        _debug ("!!! Exception occured while closing Rtp !!!\n");
+        _debug ("!!! Exception occured while closing Rtp !!!");
 
     }
 
@@ -129,7 +129,7 @@ void RtpTest::testRtpThread()
 
     audiortp = new AudioRtp();
 
-    _debug ("-------- Open Rtp Session ----------\n");
+    _debug ("-------- Open Rtp Session ----------");
 
     try {
 
@@ -137,11 +137,11 @@ void RtpTest::testRtpThread()
 
     } catch (...) {
 
-        _debug ("!!! Exception occured while Oppenning Rtp !!!\n");
+        _debug ("!!! Exception occured while Oppenning Rtp !!!");
 
     }
 
-    _debug ("------ void RtpTest::testRtpThread ------\n");
+    _debug ("------ void RtpTest::testRtpThread ------");
 
     CPPUNIT_ASSERT (audiortp->_RTXThread->computeCodecFrameSize (160,8000) == 20.0f);
     CPPUNIT_ASSERT (audiortp->_RTXThread->computeCodecFrameSize (320,16000) == 20.0f);
@@ -150,7 +150,7 @@ void RtpTest::testRtpThread()
     // 20 ms at 44.1 khz corespond to 882 samples (1764 byte)
     CPPUNIT_ASSERT (audiortp->_RTXThread->computeNbByteAudioLayer (20.f) == 1764);
 
-    _debug ("------ Close Rtp Session -------\n");
+    _debug ("------ Close Rtp Session -------");
 
     try {
 
@@ -158,7 +158,7 @@ void RtpTest::testRtpThread()
 
     } catch (...) {
 
-        _debug ("!!! Exception occured while closing Rtp !!!\n");
+        _debug ("!!! Exception occured while closing Rtp !!!");
 
     }
 
@@ -184,7 +184,7 @@ void RtpTest::testRtpResampling()
 
     audiortp = new AudioRtp();
 
-    _debug ("-------- Open Rtp Session ----------\n");
+    _debug ("-------- Open Rtp Session ----------");
 
     try {
 
@@ -192,28 +192,28 @@ void RtpTest::testRtpResampling()
 
     } catch (...) {
 
-        _debug ("!!! Exception occured while Oppenning Rtp !!!\n");
+        _debug ("!!! Exception occured while Oppenning Rtp !!!");
 
     }
 
-    _debug ("------ void RtpTest::testRtpResampling ------\n");
+    _debug ("------ void RtpTest::testRtpResampling ------");
 
     CPPUNIT_ASSERT (0 == 0);
     rsmpl_nbSample = audiortp->_RTXThread->reSampleData (data, rsmpl_data, 8000, nbSample, UP_SAMPLING);
-    _debug ("ORIGINAL DATA SET\n");
+    _debug ("ORIGINAL DATA SET");
 
     for (int i = 0; i < nbSample; i++)
         printf ("  %i=>%i  ", i, data[i]);
 
-    _debug ("RESAMPLED DATA SET\n");
+    _debug ("RESAMPLED DATA SET");
 
     for (int i = 0; i < rsmpl_nbSample; i++)
         printf ("  %i=>%i  ", i, rsmpl_data[i]);
 
-    printf ("\n");
+    printf ("");
 
 
-    _debug ("------ Close Rtp Session -------\n");
+    _debug ("------ Close Rtp Session -------");
 
     try {
 
@@ -221,7 +221,7 @@ void RtpTest::testRtpResampling()
 
     } catch (...) {
 
-        _debug ("!!! Exception occured while closing Rtp !!!\n");
+        _debug ("!!! Exception occured while closing Rtp !!!");
 
     }
 
-- 
GitLab


From 7df0371e68d286bb5ddeee1b6d41ffe391fbb711 Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Fri, 13 Nov 2009 09:39:09 -0500
Subject: [PATCH 005/188] [#1671] Created new logger

---
 sflphone-common/src/Makefile.am |  2 ++
 sflphone-common/src/global.h    | 13 +-------
 sflphone-common/src/logger.cpp  | 53 +++++++++++++++++++++++++++++++++
 sflphone-common/src/logger.h    | 42 ++++++++++++++++++++++++++
 4 files changed, 98 insertions(+), 12 deletions(-)
 create mode 100644 sflphone-common/src/logger.cpp
 create mode 100644 sflphone-common/src/logger.h

diff --git a/sflphone-common/src/Makefile.am b/sflphone-common/src/Makefile.am
index b0fdb972aa..309462f9ae 100644
--- a/sflphone-common/src/Makefile.am
+++ b/sflphone-common/src/Makefile.am
@@ -16,6 +16,7 @@ sflphoned_SOURCES = \
 		accountcreator.cpp \
 		call.cpp \
 		account.cpp \
+		logger.cpp \
 		numbercleaner.cpp 
 
 # Redefine the USE_IAX variable here, so that it could be used in managerimpl
@@ -63,6 +64,7 @@ noinst_HEADERS = \
 		account.h \
 		accountcreator.h \
 		call.h \
+		logger.h \
 		numbercleaner.h
 
 libsflphone_la_LIBADD = \
diff --git a/sflphone-common/src/global.h b/sflphone-common/src/global.h
index 12529fe3ef..474d08b0f3 100644
--- a/sflphone-common/src/global.h
+++ b/sflphone-common/src/global.h
@@ -31,6 +31,7 @@
 #include <sstream>
 #include <map>
 #include <vector>
+#include "logger.h"
 
 #define SFLPHONED_VERSION "0.9.6"		/** Version number */
 
@@ -72,18 +73,6 @@ static const SOUND_FORMAT INT32 = 0x8;
 #define SFLDataAmplitude (32767 >> 4)
 #endif
 
-#ifdef SFLDEBUG
-  #define _debug(...)          fprintf(stderr, "[sfl-debug] " __VA_ARGS__)
-  #define _debugException(...) fprintf(stderr, "[sfl-excep] " __VA_ARGS__ "\n")
-  #define _debugInit(...)      fprintf(stderr, "[sfl-init] " __VA_ARGS__ "\n")
-  #define _debugAlsa(...)      fprintf(stderr, "[alsa-debug] " __VA_ARGS__ )
-#else
-  #define _debug(...)
-  #define _debugException(...)
-  #define _debugInit(...)
-  #define _debugAlsa(...)
-#endif
-
 #define PROGNAME         "sflphoned"		/** Binary name */
 #define PROGDIR          "sflphone"		/** Program directory */
 #define RINGDIR          "ringtones"		/** Ringtones directory */
diff --git a/sflphone-common/src/logger.cpp b/sflphone-common/src/logger.cpp
new file mode 100644
index 0000000000..c76d90fefb
--- /dev/null
+++ b/sflphone-common/src/logger.cpp
@@ -0,0 +1,53 @@
+#include "logger.h"
+#include <syslog.h>
+#include <stdarg.h>
+
+void Logger::log(const int level, const char* format, ...)
+{
+	va_list ap;
+	string prefix = "<> ";
+	char buffer[1024];
+	string message = "";
+	string color_prefix = "";
+
+	switch(level)
+	{
+		case LOG_ERR:
+		{
+			prefix = "<error> ";
+			color_prefix = RED;
+			break;
+		}
+		case LOG_WARNING:
+		{
+			prefix = "<warning> ";
+			color_prefix = LIGHT_RED;
+			break;
+		}
+		case LOG_INFO:
+		{
+			prefix = "<info> ";
+			color_prefix = "";
+			break;
+		}
+		case LOG_DEBUG:
+		{
+			prefix = "<debug> ";
+			color_prefix = GREEN;
+			break;
+		}
+	}
+	
+	va_start(ap, format);
+	vsprintf(buffer, format, ap);
+	va_end(ap);
+
+	message = buffer;
+	message = prefix + message;
+
+	syslog(level, message.c_str());
+
+	message = color_prefix + message + END_COLOR + "\n";
+	fprintf(stderr, message.c_str());
+}
+
diff --git a/sflphone-common/src/logger.h b/sflphone-common/src/logger.h
new file mode 100644
index 0000000000..38708df424
--- /dev/null
+++ b/sflphone-common/src/logger.h
@@ -0,0 +1,42 @@
+#ifndef __LOGGER_H__
+#define __LOGGER_H__
+
+#include <string>
+#include <syslog.h>
+
+using namespace std;
+
+namespace Logger
+{
+	void log(const int, const char*, ...);
+};
+
+#define _error(...)	Logger::log(LOG_ERROR, __VA_ARGS__)
+#define _warn(...)	Logger::log(LOG_WARNING, __VA_ARGS__)
+#define _info(...)	Logger::log(LOG_INFO, __VA_ARGS__)
+#define _debug(...)	Logger::log(LOG_DEBUG, __VA_ARGS__)
+
+#define _debugException(...)
+#define _debugInit(...)
+#define _debugAlsa(...)
+
+#define BLACK "\033[22;30m"
+#define RED "\033[22;31m"
+#define GREEN "\033[22;32m"
+#define BROWN "\033[22;33m"
+#define BLUE "\033[22;34m"
+#define MAGENTA "\033[22;35m"
+#define CYAN "\033[22;36m"
+#define GREY "\033[22;37m"
+#define DARK_GREY "\033[01;30m"
+#define LIGHT_RED "\033[01;31m"
+#define LIGHT_SCREEN "\033[01;32m"
+#define YELLOW "\033[01;33m"
+#define LIGHT_BLUE "\033[01;34m"
+#define LIGHT_MAGENTA "\033[01;35m"
+#define LIGHT_CYAN "\033[01;36m"
+#define WHITE "\033[01;37m"
+#define END_COLOR "\033[0m"
+
+#endif
+
-- 
GitLab


From 3d54c70aaf0144bc8d3b1b81a0be26df112f1319 Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Fri, 13 Nov 2009 14:38:29 -0500
Subject: [PATCH 006/188] [#1671] Added command line switches for daemon

---
 sflphone-common/configure.ac    |  8 +++--
 sflphone-common/src/Makefile.am |  1 +
 sflphone-common/src/logger.cpp  | 30 ++++++++++++++--
 sflphone-common/src/logger.h    |  9 +++--
 sflphone-common/src/main.cpp    | 63 ++++++++++++++++++++++++++-------
 5 files changed, 90 insertions(+), 21 deletions(-)

diff --git a/sflphone-common/configure.ac b/sflphone-common/configure.ac
index 8ea46baa20..d4b9b3a5f1 100644
--- a/sflphone-common/configure.ac
+++ b/sflphone-common/configure.ac
@@ -1,5 +1,6 @@
 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.7~beta],[sflphoneteam@savoirfairelinux.com],[sflphone])
@@ -8,14 +9,17 @@ AC_REVISION([$Revision$])
 
 	AC_CANONICAL_SYSTEM
 
-	AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
+	PACKAGE=SFLphone
+	VERSION=`cat VERSION`
+
+	AM_INIT_AUTOMAKE($NAME, $VERSION)
 AM_CONFIG_HEADER([config.h])
 
 # Silent build by default. Use make V=1 to increase verbosity
 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
 
 	dnl Use this variable in the program
-AC_SUBST(PACKAGE_VERSION)
+	AC_SUBST(PACKAGE_VERSION)
 
 	AM_PROG_LIBTOOL
 
diff --git a/sflphone-common/src/Makefile.am b/sflphone-common/src/Makefile.am
index 309462f9ae..682192953a 100644
--- a/sflphone-common/src/Makefile.am
+++ b/sflphone-common/src/Makefile.am
@@ -30,6 +30,7 @@ endif
 
 sflphoned_CXXFLAGS = \
 		-DPREFIX=\"$(prefix)\" -DPROGSHAREDIR=\"${datadir}/sflphone\" $(IAX_CXXFLAG)\
+		-DVERSION=\"$(VERSION)\" \
 		@ZRTPCPP_CFLAGS@ \
 		@libssl_CFLAGS@
 
diff --git a/sflphone-common/src/logger.cpp b/sflphone-common/src/logger.cpp
index c76d90fefb..a978b660ff 100644
--- a/sflphone-common/src/logger.cpp
+++ b/sflphone-common/src/logger.cpp
@@ -2,8 +2,17 @@
 #include <syslog.h>
 #include <stdarg.h>
 
-void Logger::log(const int level, const char* format, ...)
+namespace Logger
 {
+
+bool consoleLog = false;
+bool debugMode = false;
+
+void log(const int level, const char* format, ...)
+{
+	if(!debugMode && level == LOG_DEBUG)
+		return;
+
 	va_list ap;
 	string prefix = "<> ";
 	char buffer[1024];
@@ -47,7 +56,22 @@ void Logger::log(const int level, const char* format, ...)
 
 	syslog(level, message.c_str());
 
-	message = color_prefix + message + END_COLOR + "\n";
-	fprintf(stderr, message.c_str());
+	if(consoleLog)
+	{
+		message = color_prefix + message + END_COLOR + "\n";
+		fprintf(stderr, message.c_str());
+	}
+}
+
+void setConsoleLog(bool c)
+{
+	Logger::consoleLog = c;
+}
+
+void setDebugMode(bool d)
+{
+	Logger::debugMode = d;
+}
+
 }
 
diff --git a/sflphone-common/src/logger.h b/sflphone-common/src/logger.h
index 38708df424..b967ef27bb 100644
--- a/sflphone-common/src/logger.h
+++ b/sflphone-common/src/logger.h
@@ -9,6 +9,9 @@ using namespace std;
 namespace Logger
 {
 	void log(const int, const char*, ...);
+
+	void setConsoleLog(bool);
+	void setDebugMode(bool);
 };
 
 #define _error(...)	Logger::log(LOG_ERROR, __VA_ARGS__)
@@ -16,9 +19,9 @@ namespace Logger
 #define _info(...)	Logger::log(LOG_INFO, __VA_ARGS__)
 #define _debug(...)	Logger::log(LOG_DEBUG, __VA_ARGS__)
 
-#define _debugException(...)
-#define _debugInit(...)
-#define _debugAlsa(...)
+#define _debugException(...)	Logger::log(LOG_DEBUG, __VA_ARGS__)
+#define _debugInit(...)		Logger::log(LOG_DEBUG, __VA_ARGS__)
+#define _debugAlsa(...)		Logger::log(LOG_DEBUG, __VA_ARGS__)
 
 #define BLACK "\033[22;30m"
 #define RED "\033[22;31m"
diff --git a/sflphone-common/src/main.cpp b/sflphone-common/src/main.cpp
index 72e2714e40..6f2d05cfe7 100644
--- a/sflphone-common/src/main.cpp
+++ b/sflphone-common/src/main.cpp
@@ -25,7 +25,7 @@
 #include <string>
 #include <dirent.h>
 #include <sys/stat.h>
-//#include "config.h"
+#include <cc++/common.h>
 #include "global.h"
 
 #include "user_cfg.h"
@@ -34,25 +34,63 @@
 
 #include "audio/audiolayer.h"
 
+using namespace std;
+using namespace ost;
+
+CommandOptionArg	level(
+        "log-level", "l", "Log level (not yet implemented)"
+);
+
+CommandOptionNoArg	console(
+        "console", "c", "Log in console (instead of syslog)"
+);
+
+CommandOptionNoArg	debug(
+        "debug", "d", "Debug mode (more verbose)"
+);
+
+CommandOptionNoArg	help(
+        "help", "h", "Print help"
+);
+
 int
 main (int argc, char **argv)
 {
-    int exit_code = 0;
+	int exit_code = 0;
+
+	Logger::setConsoleLog(false);
+	Logger::setDebugMode(false);
 
-    //setlocale (LC_ALL, "");
-    //bindtextdomain (PACKAGE, LOCALEDIR);
-    //textdomain (PACKAGE);
+	CommandOptionParse * args = makeCommandOptionParse(argc, argv, "");
+
+	printf ("SFLphone Daemon %s, by Savoir-Faire Linux 2004-2009\n", VERSION);
+        printf ("http://www.sflphone.org/\n");
+
+        if ( help.numSet ) {
+                cerr << args->printUsage();
+		::exit(0);
+        }
+
+        if ( args->argsHaveError() ) {
+                cerr << args->printErrors();
+                cerr << args->printUsage();
+                ::exit(1);
+        }
 
-    if (argc == 2 && strcmp (argv[1], "--help") == 0) {
+	if( console.numSet )
+	{
+		_info("Console logging activated");
+		Logger::setConsoleLog(true);
+	}
 
+	if( debug.numSet )
+	{
+		_info("Debug mode activated");
+		Logger::setDebugMode(true);
+	}
 
-        printf ("%1$s Daemon %2$s, by Savoir-Faire Linux 2004-2009",
-                PROGNAME,
-                SFLPHONED_VERSION);
-        printf ("USAGE: sflphoned [--help]Parameters:   --help\tfor this message  --port=3999\tchange the session port");
-        printf ("See http://www.sflphone.org/ for more information");
+        delete args;
 
-    } else {
         FILE *fp;
         char homepid[128];
         char sfldir[128];
@@ -163,7 +201,6 @@ main (int argc, char **argv)
             Manager::instance().setDBusManager (&DBusManager::instance());
             exit_code = DBusManager::instance().exec();  // UI Loop
         }
-    }
 
     return exit_code;
 }
-- 
GitLab


From d0815f1402c96696c30b3ef3edacb6ae1c3b9d66 Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Fri, 13 Nov 2009 17:01:35 -0500
Subject: [PATCH 007/188] [#1671] Exploded managerimpl file

---
 sflphone-common/src/Makefile.am               |   1 +
 sflphone-common/src/managerimpl.cpp           | 207 ---------------
 .../src/managerimpl_registration.cpp          | 249 ++++++++++++++++++
 3 files changed, 250 insertions(+), 207 deletions(-)
 create mode 100644 sflphone-common/src/managerimpl_registration.cpp

diff --git a/sflphone-common/src/Makefile.am b/sflphone-common/src/Makefile.am
index 682192953a..1dcc2584f1 100644
--- a/sflphone-common/src/Makefile.am
+++ b/sflphone-common/src/Makefile.am
@@ -11,6 +11,7 @@ sflphoned_SOURCES = \
 		voiplink.cpp \
 		main.cpp \
 		managerimpl.cpp \
+		managerimpl_registration.cpp \
 		observer.cpp \
 		eventthread.cpp \
 		accountcreator.cpp \
diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index 324ca8c76f..a3a8d819ec 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -1520,45 +1520,6 @@ ManagerImpl::saveConfig (void)
     return _setupLoaded;
 }
 
-//THREAD=Main
-int
-ManagerImpl::initRegisterAccounts()
-{
-    int status;
-    bool flag = true;
-    AccountMap::iterator iter;
-
-    _debugInit ("Initiate VoIP Links Registration");
-    iter = _accountMap.begin();
-
-    /* Loop on the account map previously loaded */
-
-    while (iter != _accountMap.end()) {
-        if (iter->second) {
-            iter->second->loadConfig();
-            /* If the account is set as enabled, try to register */
-
-            if (iter->second->isEnabled()) {
-                status = iter->second->registerVoIPLink();
-
-                if (status != SUCCESS) {
-                    flag = false;
-                }
-            }
-        }
-
-        iter++;
-    }
-
-    // calls the client notification here in case of errors at startup...
-    if (_audiodriver -> getErrorMessage() != -1)
-        notifyErrClient (_audiodriver -> getErrorMessage());
-
-    ASSERT (flag, true);
-
-    return SUCCESS;
-}
-
 //THREAD=Main
 bool
 ManagerImpl::sendDtmf (const CallID& id, char code)
@@ -3982,30 +3943,6 @@ void ManagerImpl::setAccountDetails (const std::string& accountID, const std::ma
 
 }
 
-void
-ManagerImpl::sendRegister (const std::string& accountID , const int32_t& enable)
-{
-
-    // Update the active field
-    setConfig (accountID, CONFIG_ACCOUNT_ENABLE, (enable == 1) ? TRUE_STR:FALSE_STR);
-
-    Account* acc = getAccount (accountID);
-    acc->loadConfig();
-
-    // Test on the freshly updated value
-
-    if (acc->isEnabled()) {
-        // Verify we aren't already registered, then register
-        _debug ("Send register for account %s" , accountID.c_str());
-        acc->registerVoIPLink();
-    } else {
-        // Verify we are already registered, then unregister
-        _debug ("Send unregister for account %s" , accountID.c_str());
-        acc->unregisterVoIPLink();
-    }
-
-}
-
 std::string
 ManagerImpl::addAccount (const std::map< std::string, std::string >& details)
 {
@@ -4336,150 +4273,6 @@ ManagerImpl::getAccountIdFromNameAndServer (const std::string& userName, const s
     return AccountNULL;
 }
 
-void ManagerImpl::restartPJSIP (void)
-{
-    SIPVoIPLink *siplink;
-    siplink = dynamic_cast<SIPVoIPLink*> (getSIPAccountLink ());
-
-    this->unregisterCurSIPAccounts();
-    /* Terminate and initialize the PJSIP library */
-
-    if (siplink) {
-        siplink->terminate ();
-        siplink = SIPVoIPLink::instance ("");
-        siplink->init ();
-    }
-
-    /* Then register all enabled SIP accounts */
-    this->registerCurSIPAccounts (siplink);
-}
-
-int
-ManagerImpl::registerAccounts()
-{
-    int status;
-    bool flag = true;
-    AccountMap::iterator iter;
-
-    _debugInit ("Initiate VoIP Links Registration");
-    iter = _accountMap.begin();
-
-    /* Loop on the account map previously loaded */
-
-    while (iter != _accountMap.end()) {
-        if (iter->second) {
-
-            if (iter->second->isEnabled()) {
-
-		_debug("Register account %s", iter->first.c_str());
-		
-                status = iter->second->registerVoIPLink();
-
-                if (status != SUCCESS) {
-                    flag = false;
-                }
-            }
-        }
-
-        iter++;
-    }
-
-    // calls the client notification here in case of errors at startup...
-    if (_audiodriver -> getErrorMessage() != -1)
-        notifyErrClient (_audiodriver -> getErrorMessage());
-
-    ASSERT (flag, true);
-
-    return SUCCESS;
-}
-
-VoIPLink* ManagerImpl::getAccountLink (const AccountID& accountID)
-{
-    if (accountID!=AccountNULL) {
-        Account* acc = getAccount (accountID);
-
-        if (acc) {
-            return acc->getVoIPLink();
-        }
-
-        return 0;
-    } else
-        return SIPVoIPLink::instance ("");
-}
-
-VoIPLink* ManagerImpl::getSIPAccountLink()
-{
-    /* We are looking for the first SIP account we met because all the SIP accounts have the same voiplink */
-    Account *account;
-    AccountMap::iterator iter;
-
-    for (iter = _accountMap.begin(); iter != _accountMap.end(); ++iter) {
-        account = iter->second;
-
-        if (account->getType() == "sip") {
-            return account->getVoIPLink();
-        }
-    }
-
-    return NULL;
-}
-
-
-
-
-pjsip_regc
-*getSipRegcFromID (const AccountID& id UNUSED)
-{
-    /*SIPAccount *tmp = dynamic_cast<SIPAccount *>getAccount(id);
-    if(tmp != NULL)
-      return tmp->getSipRegc();
-    else*/
-    return NULL;
-}
-
-void ManagerImpl::unregisterCurSIPAccounts()
-{
-    Account *current;
-
-    AccountMap::iterator iter = _accountMap.begin();
-
-    while (iter != _accountMap.end()) {
-        current = iter->second;
-
-        if (current) {
-            if (current->isEnabled() && current->getType() == "sip") {
-                current->unregisterVoIPLink();
-            }
-        }
-
-        iter++;
-    }
-}
-
-void ManagerImpl::registerCurSIPAccounts (VoIPLink *link)
-{
-
-    Account *current;
-
-    AccountMap::iterator iter = _accountMap.begin();
-
-    while (iter != _accountMap.end()) {
-        current = iter->second;
-
-        if (current) {
-            if (current->isEnabled() && current->getType() == "sip") {
-                //current->setVoIPLink(link);
-                current->registerVoIPLink();
-            }
-        }
-
-        current = NULL;
-
-        iter++;
-    }
-}
-
-
 std::map<std::string, int32_t> ManagerImpl::getAddressbookSettings ()
 {
 
diff --git a/sflphone-common/src/managerimpl_registration.cpp b/sflphone-common/src/managerimpl_registration.cpp
new file mode 100644
index 0000000000..3eec332cdf
--- /dev/null
+++ b/sflphone-common/src/managerimpl_registration.cpp
@@ -0,0 +1,249 @@
+/*
+ *  Copyright (C) 2004-2007 Savoir-Faire Linux inc.
+ *  Author: Alexandre Bourget <alexandre.bourget@savoirfairelinux.com>
+ *  Author: Yan Morin <yan.morin@savoirfairelinux.com>
+ *  Author: Laurielle Lea <laurielle.lea@savoirfairelinux.com>
+ *  Author: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
+ *  Author: Alexandre Savard <alexandre.savard@savoirfairelinux.com>
+ *  Author: Guillaume Carmel-Archambault <guillaume.carmel-archambault@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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include "managerimpl.h"
+
+#include "account.h"
+#include "dbus/callmanager.h"
+#include "user_cfg.h"
+#include "global.h"
+#include "sip/sipaccount.h"
+
+#include "audio/audiolayer.h"
+#include "audio/alsa/alsalayer.h"
+#include "audio/pulseaudio/pulselayer.h"
+#include "audio/sound/tonelist.h"
+#include "history/historymanager.h"
+#include "accountcreator.h" // create new account
+#include "sip/sipvoiplink.h"
+#include "manager.h"
+#include "dbus/configurationmanager.h"
+
+#include "conference.h"
+
+#include <errno.h>
+#include <cstdlib>
+
+//THREAD=Main
+int
+ManagerImpl::initRegisterAccounts()
+{
+    int status;
+    bool flag = true;
+    AccountMap::iterator iter;
+
+    _debugInit ("Initiate VoIP Links Registration");
+    iter = _accountMap.begin();
+
+    /* Loop on the account map previously loaded */
+
+    while (iter != _accountMap.end()) {
+        if (iter->second) {
+            iter->second->loadConfig();
+            /* If the account is set as enabled, try to register */
+
+            if (iter->second->isEnabled()) {
+                status = iter->second->registerVoIPLink();
+
+                if (status != SUCCESS) {
+                    flag = false;
+                }
+            }
+        }
+
+        iter++;
+    }
+
+    // calls the client notification here in case of errors at startup...
+    if (_audiodriver -> getErrorMessage() != -1)
+        notifyErrClient (_audiodriver -> getErrorMessage());
+
+    ASSERT (flag, true);
+
+    return SUCCESS;
+}
+
+void ManagerImpl::restartPJSIP (void)
+{
+    SIPVoIPLink *siplink;
+    siplink = dynamic_cast<SIPVoIPLink*> (getSIPAccountLink ());
+
+    this->unregisterCurSIPAccounts();
+    /* Terminate and initialize the PJSIP library */
+
+    if (siplink) {
+        siplink->terminate ();
+        siplink = SIPVoIPLink::instance ("");
+        siplink->init ();
+    }
+
+    /* Then register all enabled SIP accounts */
+    this->registerCurSIPAccounts (siplink);
+}
+
+int
+ManagerImpl::registerAccounts()
+{
+    int status;
+    bool flag = true;
+    AccountMap::iterator iter;
+
+    _debugInit ("Initiate VoIP Links Registration");
+    iter = _accountMap.begin();
+
+    /* Loop on the account map previously loaded */
+
+    while (iter != _accountMap.end()) {
+        if (iter->second) {
+
+            if (iter->second->isEnabled()) {
+
+		_debug("Register account %s", iter->first.c_str());
+		
+                status = iter->second->registerVoIPLink();
+
+                if (status != SUCCESS) {
+                    flag = false;
+                }
+            }
+        }
+
+        iter++;
+    }
+
+    // calls the client notification here in case of errors at startup...
+    if (_audiodriver -> getErrorMessage() != -1)
+        notifyErrClient (_audiodriver -> getErrorMessage());
+
+    ASSERT (flag, true);
+
+    return SUCCESS;
+}
+
+VoIPLink* ManagerImpl::getAccountLink (const AccountID& accountID)
+{
+    if (accountID!=AccountNULL) {
+        Account* acc = getAccount (accountID);
+
+        if (acc) {
+            return acc->getVoIPLink();
+        }
+
+        return 0;
+    } else
+        return SIPVoIPLink::instance ("");
+}
+
+VoIPLink* ManagerImpl::getSIPAccountLink()
+{
+    /* We are looking for the first SIP account we met because all the SIP accounts have the same voiplink */
+    Account *account;
+    AccountMap::iterator iter;
+
+    for (iter = _accountMap.begin(); iter != _accountMap.end(); ++iter) {
+        account = iter->second;
+
+        if (account->getType() == "sip") {
+            return account->getVoIPLink();
+        }
+    }
+
+    return NULL;
+}
+
+pjsip_regc
+*getSipRegcFromID (const AccountID& id UNUSED)
+{
+    /*SIPAccount *tmp = dynamic_cast<SIPAccount *>getAccount(id);
+    if(tmp != NULL)
+      return tmp->getSipRegc();
+    else*/
+    return NULL;
+}
+
+void ManagerImpl::unregisterCurSIPAccounts()
+{
+    Account *current;
+
+    AccountMap::iterator iter = _accountMap.begin();
+
+    while (iter != _accountMap.end()) {
+        current = iter->second;
+
+        if (current) {
+            if (current->isEnabled() && current->getType() == "sip") {
+                current->unregisterVoIPLink();
+            }
+        }
+
+        iter++;
+    }
+}
+
+void ManagerImpl::registerCurSIPAccounts (VoIPLink *link)
+{
+
+    Account *current;
+
+    AccountMap::iterator iter = _accountMap.begin();
+
+    while (iter != _accountMap.end()) {
+        current = iter->second;
+
+        if (current) {
+            if (current->isEnabled() && current->getType() == "sip") {
+                //current->setVoIPLink(link);
+                current->registerVoIPLink();
+            }
+        }
+
+        current = NULL;
+
+        iter++;
+    }
+}
+
+void
+ManagerImpl::sendRegister (const std::string& accountID , const int32_t& enable)
+{
+
+    // Update the active field
+    setConfig (accountID, CONFIG_ACCOUNT_ENABLE, (enable == 1) ? TRUE_STR:FALSE_STR);
+
+    Account* acc = getAccount (accountID);
+    acc->loadConfig();
+
+    // Test on the freshly updated value
+
+    if (acc->isEnabled()) {
+        // Verify we aren't already registered, then register
+        _debug ("Send register for account %s" , accountID.c_str());
+        acc->registerVoIPLink();
+    } else {
+        // Verify we are already registered, then unregister
+        _debug ("Send unregister for account %s" , accountID.c_str());
+        acc->unregisterVoIPLink();
+    }
+
+}
-- 
GitLab


From 739e75e6e599ea1f68e2975c1083f8d2af8d25f7 Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Fri, 13 Nov 2009 17:30:21 -0500
Subject: [PATCH 008/188] [#1671] Updated registration method

---
 sflphone-common/src/dbus/networkmanager.cpp      | 10 +++++-----
 sflphone-common/src/managerimpl_registration.cpp |  5 -----
 2 files changed, 5 insertions(+), 10 deletions(-)

diff --git a/sflphone-common/src/dbus/networkmanager.cpp b/sflphone-common/src/dbus/networkmanager.cpp
index 6a2a59e656..b213462429 100644
--- a/sflphone-common/src/dbus/networkmanager.cpp
+++ b/sflphone-common/src/dbus/networkmanager.cpp
@@ -5,21 +5,21 @@
 #include "../manager.h"
 #include "sip/sipvoiplink.h"
 
-//using namespace std;
+using namespace std;
 
-const std::string NetworkManager::statesString[5] = {"unknown", "asleep", "connecting", "connected", "disconnected"};
+const string NetworkManager::statesString[5] = {"unknown", "asleep", "connecting", "connected", "disconnected"};
 
-std::string NetworkManager::stateAsString(const uint32_t& state)
+string NetworkManager::stateAsString(const uint32_t& state)
 {
 	return statesString[state];
 }
 
 void NetworkManager::StateChanged(const uint32_t& state)
 {
-	_debug("Network state changed: %s", stateAsString(state));
+	_warn("Network state changed: %s", stateAsString(state).c_str());
 
 	if(state == NM_STATE_CONNECTED)
-		Manager::instance().restartPJSIP();
+		Manager::instance().registerAccounts();
 }
 
 NetworkManager::NetworkManager(DBus::Connection& connection, const DBus::Path& path, const char* destination): DBus::ObjectProxy (connection, path, destination)
diff --git a/sflphone-common/src/managerimpl_registration.cpp b/sflphone-common/src/managerimpl_registration.cpp
index 3eec332cdf..5e3b9d27ce 100644
--- a/sflphone-common/src/managerimpl_registration.cpp
+++ b/sflphone-common/src/managerimpl_registration.cpp
@@ -31,11 +31,6 @@
 #include "sip/sipaccount.h"
 
 #include "audio/audiolayer.h"
-#include "audio/alsa/alsalayer.h"
-#include "audio/pulseaudio/pulselayer.h"
-#include "audio/sound/tonelist.h"
-#include "history/historymanager.h"
-#include "accountcreator.h" // create new account
 #include "sip/sipvoiplink.h"
 #include "manager.h"
 #include "dbus/configurationmanager.h"
-- 
GitLab


From a6902b9e916bd0ee23be5add88b06fd622ae8e1b Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Mon, 16 Nov 2009 19:14:53 -0500
Subject: [PATCH 009/188] [#1671] Use propertiesChange as signal to register
 accounts - it seems to be more generic (VPN creation, ...) but may be
 overkill ...

---
 sflphone-common/src/dbus/networkmanager.cpp   | 14 ++++++++++++--
 sflphone-common/src/dbus/networkmanager.h     |  1 +
 .../src/dbus/networkmanager_proxy.h           | 19 ++++++++++++++++---
 .../dbus/org.freedesktop.NetworkManager.xml   |  3 +++
 4 files changed, 32 insertions(+), 5 deletions(-)

diff --git a/sflphone-common/src/dbus/networkmanager.cpp b/sflphone-common/src/dbus/networkmanager.cpp
index b213462429..65e646a48a 100644
--- a/sflphone-common/src/dbus/networkmanager.cpp
+++ b/sflphone-common/src/dbus/networkmanager.cpp
@@ -18,8 +18,18 @@ void NetworkManager::StateChanged(const uint32_t& state)
 {
 	_warn("Network state changed: %s", stateAsString(state).c_str());
 
-	if(state == NM_STATE_CONNECTED)
-		Manager::instance().registerAccounts();
+//	if(state == NM_STATE_CONNECTED)
+//		Manager::instance().registerAccounts();
+}
+
+void NetworkManager::PropertiesChanged(const std::map< std::string, ::DBus::Variant >& argin0)
+{
+
+	const map< string, ::DBus::Variant >::const_iterator iter = argin0.begin();
+
+	_warn("Properties changed: %s", iter->first.c_str());
+
+	Manager::instance().registerAccounts();
 }
 
 NetworkManager::NetworkManager(DBus::Connection& connection, const DBus::Path& path, const char* destination): DBus::ObjectProxy (connection, path, destination)
diff --git a/sflphone-common/src/dbus/networkmanager.h b/sflphone-common/src/dbus/networkmanager.h
index 073bfafebc..2402f5c7a4 100644
--- a/sflphone-common/src/dbus/networkmanager.h
+++ b/sflphone-common/src/dbus/networkmanager.h
@@ -14,6 +14,7 @@ public:
 
     NetworkManager(DBus::Connection&, const DBus::Path&, const char*);
     void StateChanged(const uint32_t& state);
+    void PropertiesChanged(const std::map< std::string, ::DBus::Variant >& argin0);
     string stateAsString(const uint32_t& state);
 
     enum NMState
diff --git a/sflphone-common/src/dbus/networkmanager_proxy.h b/sflphone-common/src/dbus/networkmanager_proxy.h
index d34f456d23..078925ceff 100644
--- a/sflphone-common/src/dbus/networkmanager_proxy.h
+++ b/sflphone-common/src/dbus/networkmanager_proxy.h
@@ -1,9 +1,13 @@
+
+/*
+ *	This file was automatically generated by dbusxx-xml2cpp; DO NOT EDIT!
+ */
+
 #ifndef __dbusxx__networkmanager_proxy_h__PROXY_MARSHAL_H
 #define __dbusxx__networkmanager_proxy_h__PROXY_MARSHAL_H
 
 #include <dbus-c++/dbus.h>
 #include <cassert>
-#include <iostream>
 
 namespace org {
 namespace freedesktop {
@@ -17,6 +21,7 @@ public:
     : ::DBus::InterfaceProxy("org.freedesktop.NetworkManager")
     {
         connect_signal(NetworkManager_proxy, StateChanged, _StateChanged_stub);
+        connect_signal(NetworkManager_proxy, PropertiesChanged, _PropertiesChanged_stub);
     }
 
 public:
@@ -27,7 +32,6 @@ public:
     /* methods exported by this interface,
      * this functions will invoke the corresponding methods on the remote objects
      */
-/*
     std::vector< ::DBus::Path > GetDevices()
     {
         ::DBus::CallMessage call;
@@ -39,13 +43,14 @@ public:
         ri >> argout;
         return argout;
     }
-*/
+
 
 public:
 
     /* signal handlers for this interface
      */
     virtual void StateChanged(const uint32_t& argin0) = 0;
+    virtual void PropertiesChanged(const std::map< std::string, ::DBus::Variant >& argin0) = 0;
 
 private:
 
@@ -59,6 +64,14 @@ private:
         ri >> arg0;
         StateChanged(arg0);
     }
+    void _PropertiesChanged_stub(const ::DBus::SignalMessage &sig)
+    {
+        ::DBus::MessageIter ri = sig.reader();
+
+        std::map< std::string, ::DBus::Variant > arg0;
+        ri >> arg0;
+        PropertiesChanged(arg0);
+    }
 };
 
 } } 
diff --git a/sflphone-common/src/dbus/org.freedesktop.NetworkManager.xml b/sflphone-common/src/dbus/org.freedesktop.NetworkManager.xml
index a26cc046ab..591fb7b8ed 100644
--- a/sflphone-common/src/dbus/org.freedesktop.NetworkManager.xml
+++ b/sflphone-common/src/dbus/org.freedesktop.NetworkManager.xml
@@ -8,6 +8,9 @@
     <signal name="StateChanged">
       <arg type="u"/>
     </signal>
+    <signal name="PropertiesChanged">
+      <arg type="a{sv}"/>
+    </signal>
   </interface>
 </node>
 
-- 
GitLab


From 47d29cb7e6b670422a5c9ee9e8e429bc0067719f Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Thu, 19 Nov 2009 10:41:41 -0500
Subject: [PATCH 010/188] [#1671] Tested some stuff to not try to register when
 connection is lost  - Unsuccessful, maybe related to our dbus library

---
 sflphone-common/src/dbus/networkmanager.cpp | 26 ++++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/sflphone-common/src/dbus/networkmanager.cpp b/sflphone-common/src/dbus/networkmanager.cpp
index 65e646a48a..777f0c45a9 100644
--- a/sflphone-common/src/dbus/networkmanager.cpp
+++ b/sflphone-common/src/dbus/networkmanager.cpp
@@ -24,11 +24,35 @@ void NetworkManager::StateChanged(const uint32_t& state)
 
 void NetworkManager::PropertiesChanged(const std::map< std::string, ::DBus::Variant >& argin0)
 {
-
 	const map< string, ::DBus::Variant >::const_iterator iter = argin0.begin();
 
+	string message = iter->first;
+
 	_warn("Properties changed: %s", iter->first.c_str());
 
+/*
+	DBus::Variant variant = iter->second;
+	DBus::MessageIter i = variant.reader();
+	cout << i.type() << endl;// 97
+	cout << (char )i.type() << endl;
+	cout << i.is_array() << endl;// 1
+	cout << i.is_dict() << endl;// 0
+	cout << i.array_type() << endl;// 111
+
+	int size;
+	string *value;
+	size = i.get_array(value);
+	cout << "length: " << size << endl;
+
+	while (!i.at_end())
+	{
+		char **array = new char*[2];
+		size_t length = i.get_array(&array);
+		cout << "length: " << length << endl;
+		i = i.recurse();
+	}
+*/
+
 	Manager::instance().registerAccounts();
 }
 
-- 
GitLab


From bfc9e261cc852d03aab73a231a82e713a4b1f317 Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Thu, 19 Nov 2009 11:23:57 -0500
Subject: [PATCH 011/188] [#1671] More tests ...

---
 sflphone-common/src/dbus/networkmanager.cpp | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/sflphone-common/src/dbus/networkmanager.cpp b/sflphone-common/src/dbus/networkmanager.cpp
index 777f0c45a9..a34e21345b 100644
--- a/sflphone-common/src/dbus/networkmanager.cpp
+++ b/sflphone-common/src/dbus/networkmanager.cpp
@@ -17,9 +17,6 @@ string NetworkManager::stateAsString(const uint32_t& state)
 void NetworkManager::StateChanged(const uint32_t& state)
 {
 	_warn("Network state changed: %s", stateAsString(state).c_str());
-
-//	if(state == NM_STATE_CONNECTED)
-//		Manager::instance().registerAccounts();
 }
 
 void NetworkManager::PropertiesChanged(const std::map< std::string, ::DBus::Variant >& argin0)
@@ -29,18 +26,19 @@ void NetworkManager::PropertiesChanged(const std::map< std::string, ::DBus::Vari
 	string message = iter->first;
 
 	_warn("Properties changed: %s", iter->first.c_str());
-
 /*
 	DBus::Variant variant = iter->second;
 	DBus::MessageIter i = variant.reader();
 	cout << i.type() << endl;// 97
 	cout << (char )i.type() << endl;
+	cout << (char)i.array_type() << endl;
+
 	cout << i.is_array() << endl;// 1
 	cout << i.is_dict() << endl;// 0
 	cout << i.array_type() << endl;// 111
 
 	int size;
-	string *value;
+	::DBus::Path* value = new ::DBus::Path[10];
 	size = i.get_array(value);
 	cout << "length: " << size << endl;
 
@@ -52,7 +50,6 @@ void NetworkManager::PropertiesChanged(const std::map< std::string, ::DBus::Vari
 		i = i.recurse();
 	}
 */
-
 	Manager::instance().registerAccounts();
 }
 
-- 
GitLab


From d3f044321b8c76ffffb11afb05e26d5da7507902 Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Thu, 19 Nov 2009 12:40:10 -0500
Subject: [PATCH 012/188] [#1671] Added compilation flag for network-manager
 support

---
 sflphone-common/configure.ac                 | 9 +++++++++
 sflphone-common/src/Makefile.am              | 8 +++++++-
 sflphone-common/src/dbus/Makefile.am         | 8 +++++++-
 sflphone-common/src/dbus/dbusmanagerimpl.cpp | 2 ++
 sflphone-common/src/dbus/networkmanager.cpp  | 3 +++
 5 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/sflphone-common/configure.ac b/sflphone-common/configure.ac
index d4b9b3a5f1..e3c869ac13 100644
--- a/sflphone-common/configure.ac
+++ b/sflphone-common/configure.ac
@@ -382,6 +382,15 @@ AC_ARG_WITH([iax2],
 AC_DEFINE([HAVE_IAX], test "x$with_iax2" = "xyes", [Define if you have libiax2])
 AM_CONDITIONAL(USE_IAX, test "x$with_iax2" = "xyes" )
 
+	dnl Check for network-manager
+AC_ARG_WITH([networkmanager],
+		[AS_HELP_STRING([--without-networkmanager],
+			[disable support for network-manager events])],
+		[],
+		[with_networkmanager=yes])
+
+AM_CONDITIONAL(USE_NETWORKMANAGER, test "x$with_networkmanager" = "xyes" )
+
 # check for doxygen, mostly stolen from http://log4cpp.sourceforge.net/
 # ----------------------------------------------------------------------------
 AC_DEFUN([BB_ENABLE_DOXYGEN],
diff --git a/sflphone-common/src/Makefile.am b/sflphone-common/src/Makefile.am
index 1dcc2584f1..6df7edf547 100644
--- a/sflphone-common/src/Makefile.am
+++ b/sflphone-common/src/Makefile.am
@@ -29,8 +29,14 @@ IAX_CXXFLAG=
 IAX_LIB=
 endif
 
+if USE_NETWORKMANAGER
+NETWORKMANAGER=-DUSE_NETWORKMANAGER
+else
+NETWORKMANAGER=
+endif
+
 sflphoned_CXXFLAGS = \
-		-DPREFIX=\"$(prefix)\" -DPROGSHAREDIR=\"${datadir}/sflphone\" $(IAX_CXXFLAG)\
+		-DPREFIX=\"$(prefix)\" -DPROGSHAREDIR=\"${datadir}/sflphone\" $(IAX_CXXFLAG) $(NETWORKMANAGER) \
 		-DVERSION=\"$(VERSION)\" \
 		@ZRTPCPP_CFLAGS@ \
 		@libssl_CFLAGS@
diff --git a/sflphone-common/src/dbus/Makefile.am b/sflphone-common/src/dbus/Makefile.am
index 7ee673bcb3..a3c5dbbf0c 100644
--- a/sflphone-common/src/dbus/Makefile.am
+++ b/sflphone-common/src/dbus/Makefile.am
@@ -20,7 +20,13 @@ libdbus_la_SOURCES = \
     dbusmanagerimpl.cpp  \
     networkmanager.cpp
 
-libdbus_la_CXXFLAGS = -DPREFIX=\"$(prefix)\" -DPROGSHAREDIR=\"${datadir}/sflphone\"
+if USE_NETWORKMANAGER
+NETWORKMANAGER=-DUSE_NETWORKMANAGER
+else
+NETWORKMANAGER=
+endif
+
+libdbus_la_CXXFLAGS = -DPREFIX=\"$(prefix)\" -DPROGSHAREDIR=\"${datadir}/sflphone\" $(NETWORKMANAGER)
 
 libdbus_la_LIBADD = $(top_srcdir)/libs/dbus-c++/src/libdbus-c++-1.la
 
diff --git a/sflphone-common/src/dbus/dbusmanagerimpl.cpp b/sflphone-common/src/dbus/dbusmanagerimpl.cpp
index 61504e8782..bfcc237ca3 100644
--- a/sflphone-common/src/dbus/dbusmanagerimpl.cpp
+++ b/sflphone-common/src/dbus/dbusmanagerimpl.cpp
@@ -41,7 +41,9 @@ DBusManagerImpl::exec()
     _configurationManager = new ConfigurationManager (sessionConnection);
     _instanceManager = new Instance (sessionConnection);
 
+#ifdef USE_NETWORKMANAGER
     _networkManager = new NetworkManager(systemConnection, "/org/freedesktop/NetworkManager", "");
+#endif
 
     // Register accounts
     Manager::instance().initRegisterAccounts(); //getEvents();
diff --git a/sflphone-common/src/dbus/networkmanager.cpp b/sflphone-common/src/dbus/networkmanager.cpp
index a34e21345b..b1197b6c0f 100644
--- a/sflphone-common/src/dbus/networkmanager.cpp
+++ b/sflphone-common/src/dbus/networkmanager.cpp
@@ -1,3 +1,5 @@
+#ifdef USE_NETWORKMANAGER
+
 #include <global.h>
 #include "networkmanager.h"
 #include <iostream>
@@ -57,3 +59,4 @@ NetworkManager::NetworkManager(DBus::Connection& connection, const DBus::Path& p
 {
 }
 
+#endif
-- 
GitLab


From 0ba664517b71a581bd95ffea90d3794eec914893 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 19 Nov 2009 15:37:34 -0500
Subject: [PATCH 013/188] [#2402] Fix pointer to int conversion warning (atoi)

size_t is architecture dependant (32bits 64bits)
---
 sflphone-client-gnome/src/actions.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sflphone-client-gnome/src/actions.c b/sflphone-client-gnome/src/actions.c
index a2506dc629..829160960e 100644
--- a/sflphone-client-gnome/src/actions.c
+++ b/sflphone-client-gnome/src/actions.c
@@ -1083,7 +1083,7 @@ sflphone_fill_codec_list()
         for(pl=codecs; *codecs; codecs++)
 	{
 	    details = (gchar **)dbus_codec_details(atoi(*codecs));
-            if(codec_list_get_by_payload((gconstpointer)atoi(*codecs))!=NULL){
+            if(codec_list_get_by_payload((gconstpointer)(size_t)atoi(*codecs))!=NULL){
                 // does nothing - the codec is already in the list, so is active.
             }
             else{
-- 
GitLab


From a7761e14438c364b88221bc5058770c5772287f6 Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Thu, 19 Nov 2009 16:28:36 -0500
Subject: [PATCH 014/188] [#1671] Fixed bugs introduced by \n stripping &
 cleaning

---
 sflphone-common/globals.mak             |  1 -
 sflphone-common/src/config/config.cpp   |  3 --
 sflphone-common/src/iax/iaxcall.cpp     | 42 +++++++++++--------------
 sflphone-common/src/logger.cpp          |  2 +-
 sflphone-common/src/sip/sdp.cpp         |  3 +-
 sflphone-common/src/sip/sipvoiplink.cpp |  4 +--
 6 files changed, 23 insertions(+), 32 deletions(-)

diff --git a/sflphone-common/globals.mak b/sflphone-common/globals.mak
index b1bc9a5c11..bcbb63eb25 100644
--- a/sflphone-common/globals.mak
+++ b/sflphone-common/globals.mak
@@ -61,6 +61,5 @@ AM_CPPFLAGS = \
 	-DCODECS_DIR=\""$(sflcodecdir)"\" \
 	-DPLUGINS_DIR=\""$(sflplugindir)"\" \
 	-DENABLE_TRACE \
-	-DSFLDEBUG \
          $(SPEEXCODEC) \
          $(GSMCODEC)
diff --git a/sflphone-common/src/config/config.cpp b/sflphone-common/src/config/config.cpp
index 80ede64799..e156511951 100644
--- a/sflphone-common/src/config/config.cpp
+++ b/sflphone-common/src/config/config.cpp
@@ -60,7 +60,6 @@ void ConfigTree::addDefaultValue (const std::pair<std::string, std::string>& tok
 
 std::string ConfigTree::getDefaultValue (const std::string& key)
 {
-    _debug ("Getting default value for %s", key.c_str());
     std::map<std::string, std::string>::iterator it;
     it = _defaultValueMap.find (key);
 
@@ -148,8 +147,6 @@ ConfigTree::getConfigTreeItemValue (const std::string& section, const std::strin
         return item->getValue();
     }
 
-    _debug ("Option doesn't exist: [%s] %s", section.c_str(), itemName.c_str());
-
     return getDefaultValue (itemName);
 }
 
diff --git a/sflphone-common/src/iax/iaxcall.cpp b/sflphone-common/src/iax/iaxcall.cpp
index 04899f17bc..d276abee64 100644
--- a/sflphone-common/src/iax/iaxcall.cpp
+++ b/sflphone-common/src/iax/iaxcall.cpp
@@ -35,42 +35,40 @@ IAXCall::setFormat (int format)
 {
     _format = format;
 
-    _debug ("IAX set supported format: ");
+    _info ("IAX set supported format: ");
 
     switch (format) {
 
         case AST_FORMAT_ULAW:
-            printf ("PCMU");
+            _info("PCMU");
             setAudioCodec (PAYLOAD_CODEC_ULAW);
             break;
 
         case AST_FORMAT_GSM:
-            printf ("GSM");
+            _info ("GSM");
             setAudioCodec (PAYLOAD_CODEC_GSM);
             break;
 
         case AST_FORMAT_ALAW:
-            printf ("ALAW");
+            _info ("ALAW");
             setAudioCodec (PAYLOAD_CODEC_ALAW);
             break;
 
         case AST_FORMAT_ILBC:
-            printf ("ILBC");
+            _info ("ILBC");
             setAudioCodec (PAYLOAD_CODEC_ILBC_20);
             break;
 
         case AST_FORMAT_SPEEX:
-            printf ("SPEEX");
+            _info ("SPEEX");
             setAudioCodec (PAYLOAD_CODEC_SPEEX_8000);
             break;
 
         default:
-            printf ("Error audio codec type %i not supported!", format);
+            _info ("Error audio codec type %i not supported!", format);
             setAudioCodec ( (AudioCodecType) -1);
             break;
     }
-
-    printf ("");
 }
 
 
@@ -81,7 +79,7 @@ IAXCall::getSupportedFormat()
     int format = 0;
     unsigned int iter;
 
-    _debug ("IAX get supported format: ");
+    _info ("IAX get supported format: ");
 
     map = getCodecMap().getActiveCodecs();
 
@@ -89,27 +87,27 @@ IAXCall::getSupportedFormat()
         switch (map[iter]) {
 
             case PAYLOAD_CODEC_ULAW:
-                printf ("PCMU ");
+                _info ("PCMU ");
                 format |= AST_FORMAT_ULAW;
                 break;
 
             case PAYLOAD_CODEC_GSM:
-                printf ("GSM ");
+                _info ("GSM ");
                 format |= AST_FORMAT_GSM;
                 break;
 
             case PAYLOAD_CODEC_ALAW:
-                printf ("PCMA ");
+                _info ("PCMA ");
                 format |= AST_FORMAT_ALAW;
                 break;
 
             case PAYLOAD_CODEC_ILBC_20:
-                printf ("ILBC ");
+                _info ("ILBC ");
                 format |= AST_FORMAT_ILBC;
                 break;
 
             case PAYLOAD_CODEC_SPEEX_8000:
-                printf ("SPEEX ");
+                _info ("SPEEX ");
                 format |= AST_FORMAT_SPEEX;
                 break;
 
@@ -118,8 +116,6 @@ IAXCall::getSupportedFormat()
         }
     }
 
-    printf ("");
-
     return format;
 
 }
@@ -137,27 +133,27 @@ IAXCall::getFirstMatchingFormat (int needles)
         switch (map[iter]) {
 
             case PAYLOAD_CODEC_ULAW:
-                printf ("PCMU");
+                _debug ("PCMU");
                 format = AST_FORMAT_ULAW;
                 break;
 
             case PAYLOAD_CODEC_GSM:
-                printf ("GSM");
+                _debug ("GSM");
                 format = AST_FORMAT_GSM;
                 break;
 
             case PAYLOAD_CODEC_ALAW:
-                printf ("PCMA");
+                _debug ("PCMA");
                 format = AST_FORMAT_ALAW;
                 break;
 
             case PAYLOAD_CODEC_ILBC_20:
-                printf ("ILBC");
+                _debug ("ILBC");
                 format = AST_FORMAT_ILBC;
                 break;
 
             case PAYLOAD_CODEC_SPEEX_8000:
-                printf ("SPEEX");
+                _debug ("SPEEX");
                 format = AST_FORMAT_SPEEX;
                 break;
 
@@ -171,8 +167,6 @@ IAXCall::getFirstMatchingFormat (int needles)
 
     }
 
-    printf ("");
-
     return 0;
 }
 
diff --git a/sflphone-common/src/logger.cpp b/sflphone-common/src/logger.cpp
index a978b660ff..cb2d2555b6 100644
--- a/sflphone-common/src/logger.cpp
+++ b/sflphone-common/src/logger.cpp
@@ -42,7 +42,7 @@ void log(const int level, const char* format, ...)
 		case LOG_DEBUG:
 		{
 			prefix = "<debug> ";
-			color_prefix = GREEN;
+			color_prefix = "";
 			break;
 		}
 	}
diff --git a/sflphone-common/src/sip/sdp.cpp b/sflphone-common/src/sip/sdp.cpp
index dd24f73698..15c4d8e963 100644
--- a/sflphone-common/src/sip/sdp.cpp
+++ b/sflphone-common/src/sip/sdp.cpp
@@ -518,8 +518,9 @@ void Sdp::toString (void)
         sdp << _local_offer->media[0]->desc.fmt[i].ptr << " ";
     }
 
-    _debug ("LOCAL SDP: \n%s", sdp.str().c_str());
+    sdp << "\n";
 
+    _debug ("LOCAL SDP: \n%s", sdp.str().c_str());
 }
 
 void Sdp::set_local_media_capabilities ()
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index f63ef7c4bb..14c6ad596c 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -1170,7 +1170,7 @@ SIPVoIPLink::carryingDTMFdigits (const CallID& id, char code)
 
     dtmf_body = new char[body_len];
 
-    snprintf (dtmf_body, body_len - 1, "Signal=%c\rDuration=%d\r", code, duration);
+    snprintf (dtmf_body, body_len - 1, "Signal=%c\r\nDuration=%d\r\n", code, duration);
 
     pj_strdup2 (_pool, &methodName, "INFO");
     pjsip_method_init_np (&method, &methodName);
@@ -3733,7 +3733,7 @@ std::string fetch_header_value (pjsip_msg *msg, std::string field)
 
     value = hdr->hvalue.ptr;
 
-    if ( (pos=value.find ("")) == std::string::npos) {
+    if ( (pos=value.find ("\n")) == std::string::npos) {
         return "";
     }
 
-- 
GitLab


From 8dea1678594624a325bb4157bf3ca6b9f3c90963 Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Thu, 19 Nov 2009 17:12:12 -0500
Subject: [PATCH 015/188] [#1671] Added offline icon for gnome client

---
 sflphone-client-gnome/pixmaps/Makefile.am     |   1 +
 .../pixmaps/sflphone_offline.svg              | 415 ++++++++++++++++++
 sflphone-client-gnome/src/actions.c           |   2 +
 sflphone-client-gnome/src/sflphone_const.h    |   3 +-
 sflphone-client-gnome/src/statusicon.c        |   7 +-
 5 files changed, 425 insertions(+), 3 deletions(-)
 create mode 100644 sflphone-client-gnome/pixmaps/sflphone_offline.svg

diff --git a/sflphone-client-gnome/pixmaps/Makefile.am b/sflphone-client-gnome/pixmaps/Makefile.am
index 56a6e20755..8374f0304f 100644
--- a/sflphone-client-gnome/pixmaps/Makefile.am
+++ b/sflphone-client-gnome/pixmaps/Makefile.am
@@ -26,6 +26,7 @@ buttons_DATA = current.svg \
 				sflphone.svg \
 				sflphone_small.svg \
 				sflphone_notif.svg \
+				sflphone_offline.svg \
 				stock_person.svg \
 				icon_rec.svg \
 				rec_call.svg \
diff --git a/sflphone-client-gnome/pixmaps/sflphone_offline.svg b/sflphone-client-gnome/pixmaps/sflphone_offline.svg
new file mode 100644
index 0000000000..6cff90be09
--- /dev/null
+++ b/sflphone-client-gnome/pixmaps/sflphone_offline.svg
@@ -0,0 +1,415 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="120"
+   height="120"
+   id="svg5875"
+   sodipodi:version="0.32"
+   inkscape:version="0.47pre4 r22446"
+   version="1.0"
+   sodipodi:docname="sflphone_offline.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs5877">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3803">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop3805" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop3807" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4684">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop4686" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop4688" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4669">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop4671" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop4673" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3859">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop3861" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop3863" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5850">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop5852" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop5854" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5850"
+       id="linearGradient5856"
+       x1="476.3125"
+       y1="439.0293"
+       x2="477.3125"
+       y2="514.42188"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4999">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop5001" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop5003" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4999"
+       id="linearGradient5862"
+       gradientUnits="userSpaceOnUse"
+       x1="698.38525"
+       y1="245.5472"
+       x2="702.81964"
+       y2="977.78302" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4991">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop4993" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop4995" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4991"
+       id="radialGradient4997"
+       cx="736.5"
+       cy="640.93073"
+       fx="736.5"
+       fy="640.93073"
+       r="91.964203"
+       gradientTransform="matrix(1,0,0,0.8097086,0,99.14184)"
+       gradientUnits="userSpaceOnUse" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective5883" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3859"
+       id="linearGradient3873"
+       x1="352.19498"
+       y1="451.55289"
+       x2="106.34038"
+       y2="658.39594"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-3.8268196,-1.7394634)" />
+    <inkscape:perspective
+       id="perspective2422"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2437"
+       inkscape:persp3d-origin="168.5 : 109.33333 : 1"
+       inkscape:vp_z="337 : 164 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 164 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4669"
+       id="linearGradient4675"
+       x1="-20.657925"
+       y1="-244.41351"
+       x2="184.57913"
+       y2="789.61469"
+       gradientUnits="userSpaceOnUse"
+       spreadMethod="pad" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4684"
+       id="linearGradient4690"
+       x1="52.987782"
+       y1="-84.148399"
+       x2="127.02813"
+       y2="99.500687"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4669"
+       id="linearGradient5149"
+       gradientUnits="userSpaceOnUse"
+       spreadMethod="pad"
+       x1="-20.657925"
+       y1="-244.41351"
+       x2="184.57913"
+       y2="789.61469" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4991"
+       id="radialGradient5297"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.8097086,0,99.14184)"
+       cx="736.5"
+       cy="640.93073"
+       fx="736.5"
+       fy="640.93073"
+       r="91.964203" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4999"
+       id="linearGradient5299"
+       gradientUnits="userSpaceOnUse"
+       x1="698.38525"
+       y1="245.5472"
+       x2="702.81964"
+       y2="977.78302" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4684"
+       id="linearGradient5301"
+       gradientUnits="userSpaceOnUse"
+       x1="52.987782"
+       y1="-84.148399"
+       x2="127.02813"
+       y2="99.500687" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4684"
+       id="linearGradient5308"
+       gradientUnits="userSpaceOnUse"
+       x1="52.987782"
+       y1="-84.148399"
+       x2="127.02813"
+       y2="99.500687"
+       gradientTransform="matrix(0.6453907,0,0,0.6453907,0.8651337,0.4352828)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3803"
+       id="linearGradient3809"
+       x1="12.663443"
+       y1="8.5301828"
+       x2="41.858654"
+       y2="57.533279"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0054518,0,0,1.0054518,-4.7165106e-3,-0.4345682)" />
+    <inkscape:perspective
+       id="perspective2881"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     gridtolerance="10000"
+     guidetolerance="10"
+     objecttolerance="10"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="4.6527672"
+     inkscape:cx="71.125906"
+     inkscape:cy="59.641316"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer2"
+     showgrid="false"
+     inkscape:window-width="1910"
+     inkscape:window-height="1068"
+     inkscape:window-x="47"
+     inkscape:window-y="41"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata5880">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Icône SFL</dc:title>
+        <dc:date>2009-04-29</dc:date>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jérôme Oufella</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:rights>
+          <cc:Agent>
+            <dc:title>(c) 2009 Savoir-faire Linux inc.</dc:title>
+          </cc:Agent>
+        </dc:rights>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>sfl icon</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Circle"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-182.15973,-428.80763)"
+     style="display:inline">
+    <g
+       style="display:inline"
+       id="g5868"
+       transform="matrix(0.6453907,0,0,0.6453907,-86.103074,148.01517)">
+      <path
+         transform="matrix(0.9959566,0,0,1.2202117,1.6861043,-136.53125)"
+         d="m 602,544.5 c 0,41.6975 -41.41366,75.5 -92.5,75.5 -51.08634,0 -92.5,-33.8025 -92.5,-75.5 0,-41.6975 41.41366,-75.5 92.5,-75.5 51.08634,0 92.5,33.8025 92.5,75.5 z"
+         sodipodi:ry="75.5"
+         sodipodi:rx="92.5"
+         sodipodi:cy="544.5"
+         sodipodi:cx="509.5"
+         id="path4987"
+         style="fill:#00252b;fill-opacity:1;fill-rule:evenodd"
+         sodipodi:type="arc" />
+      <path
+         transform="matrix(0.9200853,0,0,1.1406537,-168.51683,-66.406557)"
+         d="m 827,521 c 0,40.31679 -40.51823,73 -90.5,73 -49.98177,0 -90.5,-32.68321 -90.5,-73 0,-40.31679 40.51823,-73 90.5,-73 49.98177,0 90.5,32.68321 90.5,73 z"
+         sodipodi:ry="73"
+         sodipodi:rx="90.5"
+         sodipodi:cy="521"
+         sodipodi:cx="736.5"
+         id="path4989"
+         style="opacity:0.83064515;fill:url(#radialGradient5297);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5299);stroke-width:2.92839932;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         sodipodi:type="arc" />
+    </g>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="Bg logo"
+     style="display:inline">
+    <path
+       style="opacity:1;fill:#006f82;fill-opacity:0;fill-rule:evenodd;stroke:#006f82;stroke-width:1.04566979;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+       d="M 10.55114,62.033695 L 10.545872,59.631821 L 11.329656,63.53366 L 11.321088,59.630621 L 12.621458,63.431585 L 12.611584,58.928074 L 13.657722,64.630914 L 13.897019,55.923735 L 14.696183,66.831029 L 15.959008,53.518653 L 16.252311,69.430662 L 17.258279,56.819227 L 18.052818,65.624884 L 18.551844,57.51777 L 19.347918,67.023975 L 19.833546,52.812112 L 21.424823,71.42421 L 20.85641,47.906685 L 23.760575,76.024188 L 22.924102,48.103639 L 25.312097,76.522171 L 24.213925,47.100857 L 25.814204,69.816155 L 26.299177,55.304046 L 27.10579,69.613998 L 28.100546,51.898595 L 28.133486,66.910282 L 29.383802,47.893475 L 29.17479,70.411424 L 30.42269,50.293743 L 30.995926,76.012977 L 32.479618,45.586876 L 32.810259,78.51213 L 34.022583,42.181821 L 34.623699,80.610954 L 35.567529,39.677469 L 36.17744,82.1097 L 36.856708,38.374457 L 38.250165,84.608465 L 38.159277,43.176196 L 39.275226,80.703832 L 39.72003,47.877458 L 40.557601,76.298395 L 41.022589,52.6792 L 42.361163,73.89372 L 42.575221,53.677574 L 43.394126,73.59189 L 44.128072,54.776031 L 45.197477,71.087148 L 44.64642,55.475777 L 46.746157,70.284115 L 46.201462,57.575013 L 47.766387,64.177753 L 48.157374,33.559644 L 49.574786,63.974798 L 49.737044,29.057192 L 50.608848,64.173352 L 52.072146,33.362224 L 52.237957,82.20545 L 53.618404,31.455993 L 54.269604,83.80121 L 54.704307,28.546169 L 56.569731,89.992521 L 56.233651,27.84325 L 58.106058,92.475088 L 58.237615,25.734393 L 59.462018,94.871346 L 59.308802,25.029251 L 60.997751,97.080654 L 60.859237,25.026847 L 63.348005,99.381156 L 63.493128,47.740542 L 64.432585,95.86912 L 64.276032,51.242071 L 66.685102,98.180342 L 65.570911,52.541084 L 66.563781,98.275324 L 64.993727,25.020443 L 69.064999,96.16276 L 66.029984,26.219775 L 70.373503,94.756118 L 68.436272,27.318084 L 72.677618,93.850086 L 72.234352,27.4111 C 72.234352,27.4111 73.940422,98.363981 74.456142,97.862784 C 74.971847,97.361592 75.595153,28.106441 75.595153,28.106441 L 75.739811,94.046666 L 76.890923,29.805765 L 77.049624,93.24225 L 78.18426,30.404231 L 78.338812,91.945712 L 80.000344,33.704002 L 80.38199,89.886658 L 82.071758,35.602278 L 82.1985,84.464362 L 83.409266,38.505999 L 84.494194,70.81025 L 85.482229,41.108345 L 86.300623,69.703651 L 88.312822,44.609637 L 89.401506,78.617548 L 89.890557,48.126952 L 91.245045,76.60551 L 91.663323,49.515327 L 93.046215,73.100561 L 93.514555,51.012458 L 95.564594,69.900023 L 95.350428,54.413452 L 97.176303,71.094351 L 97.42119,56.012671 L 100.17281,68.095581 L 100.26537,56.803022 L 102.33474,68.598489 L 102.41415,58.300276 L 104.15368,64.27997 L 104.55185,54.777789 L 105.28904,66.085499 L 105.9731,60.189794 C 105.9731,60.189794 107.07326,63.772713 107.07216,63.272322 C 107.07105,62.771937 108.5787,61.082943 108.31828,60.182636 C 108.05791,59.282342 109.41561,62.475103 109.41561,62.475103"
+       id="path4922"
+       sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccscccccccccccccccccccccccccccccccccccc" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="Handset"
+     style="display:inline">
+    <path
+       style="opacity:0.07000002;fill:url(#linearGradient5308);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:12.29699993;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+       d="M 59.151985,7.5345809 C 30.967536,8.249433 8.3274641,31.354675 8.3274641,59.710388 C 8.3274641,68.222065 10.375495,76.246983 13.994802,83.347823 C 13.107834,79.536662 12.643515,75.568677 12.643515,71.488769 C 12.643515,42.682964 36.013519,19.292793 64.819322,19.292793 C 85.110516,19.292792 102.69706,30.904841 111.32779,47.831165 C 105.9454,24.743656 85.222311,7.5345809 60.503272,7.5345809 C 60.05318,7.5345809 59.599356,7.5232342 59.151985,7.5345809 z"
+       id="path4679" />
+    <path
+       id="path3760"
+       d="M 88.906874,94.063359 C 88.559935,94.977556 84.966023,98.376 83.289215,99.375481 L 81.43556,100.48037 L 73.808785,90.541207 L 66.182003,80.602053 L 67.494791,79.241241 C 68.779544,77.909476 72.634516,75.322497 73.887671,74.951128 C 74.431745,74.789888 75.528139,76.078361 81.782999,84.229651 C 85.777928,89.435809 88.983679,93.860981 88.906874,94.063359 z M 50.73329,44.477271 C 50.446627,45.232636 45.91138,49.09897 44.433331,49.848034 L 43.090474,50.528569 L 35.573545,40.555914 L 28.056608,30.583254 L 30.64475,28.448397 C 32.068233,27.274223 33.934924,26.023758 34.792949,25.669578 L 36.352996,25.025619 L 43.633459,34.513458 C 48.514886,40.874896 50.854403,44.158138 50.73329,44.477271 z M 80.086522,101.40574 C 80.038294,101.53261 79.197946,102.04305 78.219084,102.54005 C 70.526609,106.44583 58.163118,101.84815 46.523718,90.753346 C 42.403963,86.826338 33.905571,76.306559 30.548319,70.978095 C 24.069511,60.695264 21.022718,52.062253 21.112522,44.242002 C 21.168568,39.361513 22.770354,35.243539 25.642678,32.595536 L 26.627564,31.687563 L 34.18264,41.386253 L 41.737722,51.084944 L 41.126672,52.143343 C 40.282652,53.605243 40.435321,55.522605 41.628037,58.4399 C 43.124949,62.101227 55.001116,77.570343 58.187294,80.008903 C 60.691108,81.925211 62.231437,82.484651 64.082727,82.150099 L 65.393673,81.913192 L 72.783941,91.544137 C 76.848589,96.841159 80.134755,101.27887 80.086522,101.40574 z"
+       style="opacity:0.32000002;fill:#000000;fill-opacity:1" />
+    <path
+       style="fill:#dfdfdf;fill-opacity:1"
+       d="M 92.518066,90.452167 C 92.171127,91.366364 88.577215,94.764808 86.900407,95.764289 L 85.046752,96.869181 L 77.419976,86.930015 L 69.793194,76.990861 L 71.105983,75.63005 C 72.390736,74.298285 76.245707,71.711305 77.498862,71.339937 C 78.042936,71.178697 79.13933,72.46717 85.394191,80.61846 C 89.389119,85.824618 92.59487,90.24979 92.518066,90.452167 z M 54.344481,40.86608 C 54.057819,41.621444 49.522571,45.487778 48.044523,46.236842 L 46.701666,46.917377 L 39.184735,36.944723 L 31.6678,26.972063 L 34.255941,24.837205 C 35.679425,23.663032 37.546115,22.412566 38.404141,22.058387 L 39.964188,21.414427 L 47.24465,30.902267 C 52.126078,37.263706 54.465594,40.546946 54.344481,40.86608 z M 83.697713,97.79455 C 83.649486,97.921417 82.809137,98.431852 81.830276,98.928861 C 74.137801,102.83464 61.774308,98.236957 50.134909,87.142154 C 46.015154,83.215146 37.516762,72.695367 34.159511,67.366904 C 27.680702,57.084073 24.63391,48.451062 24.723714,40.63081 C 24.77976,35.750321 26.381546,31.632348 29.253869,28.984346 L 30.238755,28.076371 L 37.793832,37.775063 L 45.348913,47.473754 L 44.737863,48.532152 C 43.893844,49.994052 44.046513,51.911414 45.239229,54.828709 C 46.73614,58.490035 58.612307,73.959152 61.798485,76.397711 C 64.3023,78.31402 65.842629,78.87346 67.693918,78.538907 L 69.004865,78.302 L 76.395132,87.932945 C 80.459781,93.229968 83.745947,97.667682 83.697713,97.79455 z"
+       id="path3218" />
+    <g
+       transform="matrix(0.6018652,0,0,0.6018652,-106.46243,-252.67476)"
+       id="g3787"
+       style="fill:#ffffff;fill-opacity:0">
+      <path
+         id="path3789"
+         d="M 324.6064,576.10592 C 324.02996,577.62486 318.05867,583.27138 315.27265,584.93202 L 312.1928,586.7678 L 299.5209,570.25386 L 286.84899,553.73994 L 289.03019,551.47895 C 291.16481,549.26622 297.56985,544.96795 299.65197,544.35092 C 300.55595,544.08302 302.37761,546.22382 312.77007,559.7672 C 319.40765,568.41724 324.73401,575.76967 324.6064,576.10592 z M 261.18093,493.71856 C 260.70464,494.9736 253.16932,501.39752 250.71354,502.64209 L 248.48238,503.7728 L 235.99299,487.20322 L 223.50359,470.63363 L 227.80379,467.08656 C 230.16891,465.13567 233.27042,463.05802 234.69603,462.46955 L 237.28805,461.39961 L 249.38455,477.16367 C 257.49505,487.73321 261.38216,493.18832 261.18093,493.71856 z M 309.95137,588.3053 C 309.87124,588.51609 308.475,589.36418 306.84862,590.18996 C 294.06756,596.67941 273.5256,589.04036 254.18672,570.60633 C 247.34174,564.0816 233.22165,546.60297 227.64357,537.74972 C 216.87902,520.66478 211.81677,506.32102 211.96598,493.32766 C 212.0591,485.21872 214.72047,478.3767 219.49284,473.97704 L 221.12923,472.46844 L 233.682,488.58283 L 246.23478,504.69722 L 245.21952,506.45575 C 243.81718,508.8847 244.07084,512.0704 246.05254,516.91749 C 248.53966,523.00079 268.27193,548.70275 273.56577,552.75442 C 277.72586,555.93837 280.28512,556.86788 283.36104,556.31202 L 285.53918,555.9184 L 297.81812,571.92023 C 304.57154,580.72124 310.03151,588.09451 309.95137,588.3053 z"
+         style="opacity:0.32000002;fill:#ffffff;fill-opacity:0" />
+      <path
+         style="fill:#ffffff;fill-opacity:0"
+         d="M 330.6064,570.10592 C 330.02996,571.62486 324.05867,577.27138 321.27265,578.93202 L 318.1928,580.7678 L 305.5209,564.25386 L 292.84899,547.73994 L 295.03019,545.47895 C 297.16481,543.26622 303.56985,538.96795 305.65197,538.35092 C 306.55595,538.08302 308.37761,540.22382 318.77007,553.7672 C 325.40765,562.41724 330.73401,569.76967 330.6064,570.10592 z M 267.18093,487.71856 C 266.70464,488.9736 259.16932,495.39752 256.71354,496.64209 L 254.48238,497.7728 L 241.99299,481.20322 L 229.50359,464.63363 L 233.80379,461.08656 C 236.16891,459.13567 239.27042,457.05802 240.69603,456.46955 L 243.28805,455.39961 L 255.38455,471.16367 C 263.49505,481.73321 267.38216,487.18832 267.18093,487.71856 z M 315.95137,582.3053 C 315.87124,582.51609 314.475,583.36418 312.84862,584.18996 C 300.06756,590.67941 279.5256,583.04036 260.18672,564.60633 C 253.34174,558.0816 239.22165,540.60297 233.64357,531.74972 C 222.87902,514.66478 217.81677,500.32102 217.96598,487.32766 C 218.0591,479.21872 220.72047,472.3767 225.49284,467.97704 L 227.12923,466.46844 L 239.682,482.58283 L 252.23478,498.69722 L 251.21952,500.45575 C 249.81718,502.8847 250.07084,506.0704 252.05254,510.91749 C 254.53966,517.00079 274.27193,542.70275 279.56577,546.75442 C 283.72586,549.93837 286.28512,550.86788 289.36104,550.31202 L 291.53918,549.9184 L 303.81812,565.92023 C 310.57154,574.72124 316.03151,582.09451 315.95137,582.3053 z"
+         id="path3791" />
+    </g>
+    <path
+       style="fill:url(#linearGradient3809);fill-opacity:1;stroke:none"
+       d="M 39.961991,21.402587 L 38.390972,22.062415 C 37.532947,22.416594 35.666967,23.653234 34.243484,24.827407 L 31.667014,26.963992 L 39.176482,36.955669 L 43.166868,42.23429 C 44.833493,39.007648 46.844812,36.037923 49.105318,33.342326 C 48.501731,32.545758 47.962788,31.818462 47.251516,30.891538 L 39.961991,21.402587 z M 30.253097,28.063705 L 29.247645,28.974895 C 26.375322,31.622897 24.779157,35.751365 24.723113,40.631852 C 24.633309,48.452104 27.670415,57.087755 34.149223,67.370584 C 35.036506,68.778836 36.301396,70.544757 37.731145,72.460684 C 37.518951,70.51226 37.385521,68.535071 37.385521,66.522234 C 37.385521,58.29228 39.192461,50.526372 42.412779,43.742468 L 37.793985,37.772598 L 30.253097,28.063705 z"
+       id="path3798" />
+    <g
+       id="g3398"
+       transform="matrix(7.5387238,0,0,7.5387238,1.1454138,0.16950363)">
+      <rect
+         ry="0.82081318"
+         rx="0.82081318"
+         inkscape:r_cy="true"
+         inkscape:r_cx="true"
+         y="8.6409912"
+         x="8.1562767"
+         height="7.0576959"
+         width="7.4291534"
+         id="rect1686"
+         style="color:#000000;fill:#a40000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.37145764;marker:none;visibility:visible;display:inline;overflow:visible" />
+      <g
+         inkscape:r_cy="true"
+         inkscape:r_cx="true"
+         transform="matrix(0.4225522,0,0,0.4225522,6.497738,-3.4645944)"
+         id="g2254">
+        <path
+           style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2.56729817;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+           d="M 8,32 18,42"
+           id="path1377"
+           inkscape:r_cx="true"
+           inkscape:r_cy="true" />
+        <path
+           inkscape:r_cy="true"
+           inkscape:r_cx="true"
+           id="path2252"
+           d="M 18,32 8,42"
+           style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2.56729817;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/sflphone-client-gnome/src/actions.c b/sflphone-client-gnome/src/actions.c
index a2506dc629..1775d54761 100644
--- a/sflphone-client-gnome/src/actions.c
+++ b/sflphone-client-gnome/src/actions.c
@@ -94,6 +94,7 @@ status_bar_display_account ()
 
     acc = account_list_get_current ();
     if(acc){
+	status_tray_icon_online(TRUE);
         msg = g_markup_printf_escaped("%s %s (%s)" ,
                 _("Using account"),
                 (gchar*)g_hash_table_lookup( acc->properties , ACCOUNT_ALIAS),
@@ -101,6 +102,7 @@ status_bar_display_account ()
     }
     else
     {
+	status_tray_icon_online(FALSE);
         msg = g_markup_printf_escaped(_("No registered accounts"));
     }
     statusbar_push_message( msg , __MSG_ACCOUNT_DEFAULT);
diff --git a/sflphone-client-gnome/src/sflphone_const.h b/sflphone-client-gnome/src/sflphone_const.h
index d76373fd71..b63a3e17e1 100644
--- a/sflphone-client-gnome/src/sflphone_const.h
+++ b/sflphone-client-gnome/src/sflphone_const.h
@@ -29,7 +29,8 @@
  */
 
 #define LOGO                ICONS_DIR "/sflphone.svg"
-#define LOGO_NOTIF			ICONS_DIR "/sflphone_notif.svg"
+#define LOGO_NOTIF          ICONS_DIR "/sflphone_notif.svg"
+#define LOGO_OFFLINE        ICONS_DIR "/sflphone_offline.svg"
 #define LOGO_SMALL          ICONS_DIR "/sflphone_small.svg"
 
 #define CURRENT_CALLS       "current_calls"
diff --git a/sflphone-client-gnome/src/statusicon.c b/sflphone-client-gnome/src/statusicon.c
index 99b8dcc2c6..47e9d4a855 100644
--- a/sflphone-client-gnome/src/statusicon.c
+++ b/sflphone-client-gnome/src/statusicon.c
@@ -138,9 +138,12 @@ void status_tray_icon_blink (gboolean active)
 {
 	// Set a different icon to notify of an event
 	active ? gtk_status_icon_set_from_file (status, LOGO_NOTIF) : gtk_status_icon_set_from_file (status, LOGO);
-	// Do not blink anymore ...
-	// gtk_status_icon_set_blinking (status, active);
+}
 
+void status_tray_icon_online (gboolean online)
+{
+	// Set a different icon to notify of an event
+	online ? gtk_status_icon_set_from_file (status, LOGO) : gtk_status_icon_set_from_file (status, LOGO_OFFLINE);
 }
 
 GtkStatusIcon* 
-- 
GitLab


From 0432f462e3f3ed05a2b2f1bb1224da65d6100faf Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Fri, 20 Nov 2009 10:07:36 -0500
Subject: [PATCH 016/188] [#2181] Updated spec file

---
 tools/build-system/osc/sflphone-common.spec | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/build-system/osc/sflphone-common.spec b/tools/build-system/osc/sflphone-common.spec
index 9fccf3ef7d..0bc1a2b573 100644
--- a/tools/build-system/osc/sflphone-common.spec
+++ b/tools/build-system/osc/sflphone-common.spec
@@ -57,7 +57,6 @@ BuildRequires:	gsm-devel
 Requires:	libsamplerate
 Requires:	commoncpp2
 Requires:	dbus-1
-Requires:	dbus-1-x11
 
 %if %{defined suse_version}
 Requires:	libgsm1
@@ -96,6 +95,7 @@ Authors:
 
 %prep
 %setup -q
+%patch0 -p1
 
 %build
 cd libs/pjproject
-- 
GitLab


From 01e8bda4bdb5058640bf82493aaa1fc5f6a25ecf Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Fri, 20 Nov 2009 10:41:12 -0500
Subject: [PATCH 017/188] [#2181] Fixed changelog files

---
 .../sflphone-client-gnome/debian/changelog    | 52 +++++++++----------
 .../sflphone-common/debian/changelog          | 52 +++++++++----------
 2 files changed, 52 insertions(+), 52 deletions(-)

diff --git a/tools/build-system/launchpad/sflphone-client-gnome/debian/changelog b/tools/build-system/launchpad/sflphone-client-gnome/debian/changelog
index c6bec4586d..0fc72e2966 100644
--- a/tools/build-system/launchpad/sflphone-client-gnome/debian/changelog
+++ b/tools/build-system/launchpad/sflphone-client-gnome/debian/changelog
@@ -1,6 +1,6 @@
-sflphone-client-gnome (0.9.7~beta~ppa1~karmic) karmic; urgency=low
+sflphone-client-gnome (0.9.7~beta~ppa1~SYSTEM) SYSTEM; urgency=low
 
-    ** 0.9.7~beta~ppa1~karmic **
+    ** 0.9.7~beta~ppa1~SYSTEM **
 
   * [#1933] Cleanup debug
   * [#1933] Clean up debug
@@ -567,7 +567,7 @@ sflphone-client-gnome (0.9.7~beta~ppa1~karmic) karmic; urgency=low
 
  -- Julien Bonjean <julien.bonjean@savoirfairelinux.com>  Fri, 06 Nov 2009 11:20:01 -0500
 
-sflphone-client-gnome (0.9.6-SYSVER) karmic; urgency=low
+sflphone-client-gnome (0.9.6-SYSTEM) SYSTEM; urgency=low
 
     ** 0.9.6 **
 
@@ -634,7 +634,7 @@ sflphone-client-gnome (0.9.6-SYSVER) karmic; urgency=low
 
  -- SFLphone Automatic Build System <team@sflphone.org>  Mon, 27 Jul 2009 09:53:19 -0400
 
-sflphone-client-gnome (0.9.6~rc2-SYSVER) karmic; urgency=low
+sflphone-client-gnome (0.9.6~rc2-SYSTEM) SYSTEM; urgency=low
 
     ** 0.9.6~rc2 **
 
@@ -689,7 +689,7 @@ sflphone-client-gnome (0.9.6~rc2-SYSVER) karmic; urgency=low
 
  -- SFLphone Automatic Build System <team@sflphone.org>  Fri, 17 Jul 2009 19:12:58 -0400
 
-sflphone-client-gnome (0.9.6~rc1-SYSVER) karmic; urgency=low
+sflphone-client-gnome (0.9.6~rc1-SYSTEM) SYSTEM; urgency=low
 
     ** 0.9.6~rc1 **
 
@@ -797,7 +797,7 @@ sflphone-client-gnome (0.9.6~rc1-SYSVER) karmic; urgency=low
 
  -- SFLphone Automatic Build System <team@sflphone.org>  Fri, 10 Jul 2009 15:50:26 -0400
 
-sflphone-client-gnome (0.9.6~beta-SYSVER) karmic; urgency=low
+sflphone-client-gnome (0.9.6~beta-SYSTEM) SYSTEM; urgency=low
 
     ** 0.9.6~beta **
 
@@ -1092,7 +1092,7 @@ sflphone-client-gnome (0.9.6~beta-SYSVER) karmic; urgency=low
 
  -- SFLphone Automatic Build System <team@sflphone.org>  Tue, 23 Jun 2009 11:13:42 -0400
 
-sflphone-client-gnome (0.9.5-SYSVER) karmic; urgency=low
+sflphone-client-gnome (0.9.5-SYSTEM) SYSTEM; urgency=low
 
     ** 0.9.5 release **
 
@@ -1123,7 +1123,7 @@ sflphone-client-gnome (0.9.5-SYSVER) karmic; urgency=low
 
  -- SFLphone Automatic Build System <team@sflphone.org>  Mon, 25 May 2009 11:34:48 -0400
 
-sflphone-client-gnome (0.9.5-SYSVER~rc2) karmic; urgency=low
+sflphone-client-gnome (0.9.5-SYSTEM~rc2) SYSTEM; urgency=low
 
     ** 0.9.5 rc2 **
 
@@ -1177,7 +1177,7 @@ sflphone-client-gnome (0.9.5-SYSVER~rc2) karmic; urgency=low
 
  -- SFLphone Automatic Build System <team@sflphone.org>  Tue, 19 May 2009 12:08:18 -0400
 
-sflphone-client-gnome (0.9.5-0ubuntu1~rc1) karmic; urgency=low
+sflphone-client-gnome (0.9.5-0ubuntu1~rc1) SYSTEM; urgency=low
 
   [ SFLphone Project ]
   * [#1262] Updated changelogs for version 0.9.5-0ubuntu1 Snapshot 2009-
@@ -1206,7 +1206,7 @@ sflphone-client-gnome (0.9.5-0ubuntu1~rc1) karmic; urgency=low
 
  -- Sflphone Project <sflphone@mtl.savoirfairelinux.net>  Tue, 05 May 2009 19:16:13 -0400
 
-sflphone-client-gnome (0.9.5-0ubuntu1~beta) karmic; urgency=low
+sflphone-client-gnome (0.9.5-0ubuntu1~beta) SYSTEM; urgency=low
 
   [ Julien Bonjean ]
   * Updated Eclipse stuff
@@ -1428,7 +1428,7 @@ sflphone-client-gnome (0.9.5-0ubuntu1~beta) karmic; urgency=low
 
  -- Sflphone Project <sflphone@mtl.savoirfairelinux.net>  Mon, 27 Apr 2009 17:00:03 -0400
 
-sflphone-client-gnome (0.9.4-0ubuntu2) karmic; urgency=low
+sflphone-client-gnome (0.9.4-0ubuntu2) SYSTEM; urgency=low
 
   [ Alexandre Savard ]
   * Restore speex and GSM detection
@@ -1438,7 +1438,7 @@ sflphone-client-gnome (0.9.4-0ubuntu2) karmic; urgency=low
  
  -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Wed, 8 Apr 2009 11:29:15 -0500
 
-sflphone (0.9.4-0ubuntu1) karmic; urgency=low
+sflphone (0.9.4-0ubuntu1) SYSTEM; urgency=low
 
   [ Emmanuel Milou ]
   * Integrate DBus-c++ and libiax2 in the main build system
@@ -1463,7 +1463,7 @@ sflphone (0.9.4-0ubuntu1) karmic; urgency=low
  -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 3 Apr 2009 18:29:15 -0500
 
 
-sflphone (0.9.4-rc1) karmic; urgency=low
+sflphone (0.9.4-rc1) SYSTEM; urgency=low
 
   [ Emmanuel Milou ]
   * Fix bug while trying to hold/unhold several simultaneous call
@@ -1477,7 +1477,7 @@ sflphone (0.9.4-rc1) karmic; urgency=low
 
  -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 27 Mar 2009 18:29:15 -0500
 
-sflphone (0.9.4-0beta1) karmic; urgency=low
+sflphone (0.9.4-0beta1) SYSTEM; urgency=low
 
   [ Alexandre Savard ]
   * Display codec used during conversation on the GUI
@@ -1493,7 +1493,7 @@ sflphone (0.9.4-0beta1) karmic; urgency=low
  -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 20 Mar 2009 18:29:15 -0500
 
 
-sflphone (0.9.3-0ubuntu3) karmic; urgency=low
+sflphone (0.9.3-0ubuntu3) SYSTEM; urgency=low
 
   [ Alexandre Savard ]
   * Both playback and record streams in PA_STREAM_CORKED (pulseaudio)
@@ -1518,7 +1518,7 @@ sflphone (0.9.3-0ubuntu3) karmic; urgency=low
 
  -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Sat, 14 Feb 2009 13:29:15 -0500
 
-sflphone (0.9.3-0ubuntu2) karmic; urgency=low
+sflphone (0.9.3-0ubuntu2) SYSTEM; urgency=low
 
   [ Emmanuel Milou ]
   * Add compilation note in README
@@ -1587,7 +1587,7 @@ sflphone (0.9.3-0ubuntu2) karmic; urgency=low
 
  -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Sat, 14 Feb 2009 13:29:15 -0500
 
-sflphone (0.9.3-0ubuntu1) karmic; urgency=low
+sflphone (0.9.3-0ubuntu1) SYSTEM; urgency=low
 
   * Remove debug
   * Join thread before leaving
@@ -1600,7 +1600,7 @@ sflphone (0.9.3-0ubuntu1) karmic; urgency=low
 
  -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 06 Feb 2009 19:17:32 -0500
 
-sflphone (0.9.2-2ubuntu9) karmic; urgency=low
+sflphone (0.9.2-2ubuntu9) SYSTEM; urgency=low
 
   [ Alexandre Savard ]
   * Speex audio codec preprocessing initialization
@@ -1628,7 +1628,7 @@ sflphone (0.9.2-2ubuntu9) karmic; urgency=low
 
  -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Thu, 05 Feb 2009 18:27:53 -0500
 
-sflphone (0.9.2-2ubuntu8) karmic; urgency=low
+sflphone (0.9.2-2ubuntu8) SYSTEM; urgency=low
 
   [ Emmanuel Milou ]
   * Update changelogs
@@ -1672,7 +1672,7 @@ sflphone (0.9.2-2ubuntu8) karmic; urgency=low
 
  -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Wed, 04 Feb 2009 14:00:30 -0500
 
-sflphone (0.9.2-2ubuntu7) karmic; urgency=low
+sflphone (0.9.2-2ubuntu7) SYSTEM; urgency=low
 
   [ Emmanuel Milou ]
   * Update changelog to 0.9.2-6
@@ -1694,7 +1694,7 @@ sflphone (0.9.2-2ubuntu7) karmic; urgency=low
 
  -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 23 Jan 2009 17:48:13 -0500
 
-sflphone (0.9.2-2ubuntu6) karmic; urgency=low
+sflphone (0.9.2-2ubuntu6) SYSTEM; urgency=low
 
   [ Emmanuel Milou ]
   * Migrate STUN configuration to the main config window
@@ -1728,7 +1728,7 @@ sflphone (0.9.2-2ubuntu6) karmic; urgency=low
 
  -- Emmanuel Milou <manu@sulfur.inside.savoirfairelinux.net>  Fri, 16 Jan 2009 18:19:05 -0500
 
-sflphone (0.9.2-2ubuntu5) karmic; urgency=low
+sflphone (0.9.2-2ubuntu5) SYSTEM; urgency=low
 
   * Fix memory leak in the pulseaudio callback
   * Update debian package generation script
@@ -1744,7 +1744,7 @@ sflphone (0.9.2-2ubuntu5) karmic; urgency=low
 
  -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Wed, 14 Jan 2009 21:17:20 -0500
 
-sflphone (0.9.2-2ubuntu4) karmic; urgency=low
+sflphone (0.9.2-2ubuntu4) SYSTEM; urgency=low
 
   [ Emmanuel Milou ]
   * add german translation
@@ -1754,7 +1754,7 @@ sflphone (0.9.2-2ubuntu4) karmic; urgency=low
   
  -- Yun Liu <yun.liu@savoirfairelinux.com>  Thu, 08 Jan 2009 13:08:51 -0500
 
-sflphone (0.9.2-2ubuntu3) karmic; urgency=low
+sflphone (0.9.2-2ubuntu3) SYSTEM; urgency=low
 
   [ Emmanuel Milou ]
   * The main thread synchronizes the ringtone thread
@@ -1766,13 +1766,13 @@ sflphone (0.9.2-2ubuntu3) karmic; urgency=low
   
  -- Yun Liu <yun.liu@savoirfairelinux.com>  Tue, 06 Jan 2009 16:18:38 -0500
 
-sflphone (0.9.2-2ubuntu2) karmic; urgency=low
+sflphone (0.9.2-2ubuntu2) SYSTEM; urgency=low
   
   * Fix bug ticket #129
   
  -- Yun Liu <yun.liu@savoirfairelinux.com>  Wed, 5 Jan 2009 15:54:53 -0500
 
-sflphone (0.9.2-2ubuntu1) karmic; urgency=low
+sflphone (0.9.2-2ubuntu1) SYSTEM; urgency=low
 
   * Migrate from eXosip library to pjsip
   * Add multiple SIP accounts support
diff --git a/tools/build-system/launchpad/sflphone-common/debian/changelog b/tools/build-system/launchpad/sflphone-common/debian/changelog
index 98e662737c..1263d2f8a2 100644
--- a/tools/build-system/launchpad/sflphone-common/debian/changelog
+++ b/tools/build-system/launchpad/sflphone-common/debian/changelog
@@ -1,6 +1,6 @@
-sflphone-common (0.9.7~beta~ppa1~karmic) karmic; urgency=low
+sflphone-common (0.9.7~beta~ppa1~SYSTEM) SYSTEM; urgency=low
 
-    ** 0.9.7~beta~ppa1~karmic **
+    ** 0.9.7~beta~ppa1~SYSTEM **
 
   * [#1933] Cleanup debug
   * [#1933] Clean up debug
@@ -567,7 +567,7 @@ sflphone-common (0.9.7~beta~ppa1~karmic) karmic; urgency=low
 
  -- Julien Bonjean <julien.bonjean@savoirfairelinux.com>  Fri, 06 Nov 2009 11:23:15 -0500
 
-sflphone-common (0.9.6-SYSVER) karmic; urgency=low
+sflphone-common (0.9.6-SYSTEM) SYSTEM; urgency=low
 
     ** 0.9.6 **
 
@@ -634,7 +634,7 @@ sflphone-common (0.9.6-SYSVER) karmic; urgency=low
 
  -- SFLphone Automatic Build System <team@sflphone.org>  Mon, 27 Jul 2009 09:53:00 -0400
 
-sflphone-common (0.9.6~rc2-SYSVER) karmic; urgency=low
+sflphone-common (0.9.6~rc2-SYSTEM) SYSTEM; urgency=low
 
     ** 0.9.6~rc2 **
 
@@ -689,7 +689,7 @@ sflphone-common (0.9.6~rc2-SYSVER) karmic; urgency=low
 
  -- SFLphone Automatic Build System <team@sflphone.org>  Fri, 17 Jul 2009 19:12:44 -0400
 
-sflphone-common (0.9.6~rc1-SYSVER) karmic; urgency=low
+sflphone-common (0.9.6~rc1-SYSTEM) SYSTEM; urgency=low
 
     ** 0.9.6~rc1 **
 
@@ -797,7 +797,7 @@ sflphone-common (0.9.6~rc1-SYSVER) karmic; urgency=low
 
  -- SFLphone Automatic Build System <team@sflphone.org>  Fri, 10 Jul 2009 15:49:56 -0400
 
-sflphone-common (0.9.6~beta-SYSVER) karmic; urgency=low
+sflphone-common (0.9.6~beta-SYSTEM) SYSTEM; urgency=low
 
     ** 0.9.6~beta **
 
@@ -1092,7 +1092,7 @@ sflphone-common (0.9.6~beta-SYSVER) karmic; urgency=low
 
  -- SFLphone Automatic Build System <team@sflphone.org>  Tue, 23 Jun 2009 11:12:06 -0400
 
-sflphone-common (0.9.5-SYSVER) karmic; urgency=low
+sflphone-common (0.9.5-SYSTEM) SYSTEM; urgency=low
 
     ** 0.9.5 release **
 
@@ -1123,7 +1123,7 @@ sflphone-common (0.9.5-SYSVER) karmic; urgency=low
 
  -- SFLphone Automatic Build System <team@sflphone.org>  Mon, 25 May 2009 11:34:40 -0400
 
-sflphone-common (0.9.5-SYSVER~rc2) karmic; urgency=low
+sflphone-common (0.9.5-SYSTEM~rc2) SYSTEM; urgency=low
 
     ** 0.9.5 rc2 **
 
@@ -1177,7 +1177,7 @@ sflphone-common (0.9.5-SYSVER~rc2) karmic; urgency=low
 
  -- SFLphone Automatic Build System <team@sflphone.org>  Tue, 19 May 2009 12:08:03 -0400
 
-sflphone-common (0.9.5-0ubuntu1~rc1) karmic; urgency=low
+sflphone-common (0.9.5-0ubuntu1~rc1) SYSTEM; urgency=low
 
   [ SFLphone Project ]
   * [#1262] Updated changelogs for version 0.9.5-0ubuntu1 Snapshot 2009-
@@ -1206,7 +1206,7 @@ sflphone-common (0.9.5-0ubuntu1~rc1) karmic; urgency=low
 
  -- Sflphone Project <sflphone@mtl.savoirfairelinux.net>  Tue, 05 May 2009 19:16:09 -0400
 
-sflphone-common (0.9.5-0ubuntu1~beta) karmic; urgency=low
+sflphone-common (0.9.5-0ubuntu1~beta) SYSTEM; urgency=low
 
   [ Julien Bonjean ]
   * Updated Eclipse stuff
@@ -1428,7 +1428,7 @@ sflphone-common (0.9.5-0ubuntu1~beta) karmic; urgency=low
 
  -- Sflphone Project <sflphone@mtl.savoirfairelinux.net>  Mon, 27 Apr 2009 16:57:00 -0400
 
-sflphone-common (0.9.4-0ubuntu2) karmic; urgency=low
+sflphone-common (0.9.4-0ubuntu2) SYSTEM; urgency=low
 
   [ Alexandre Savard ]
   * Restore speex and GSM detection
@@ -1438,7 +1438,7 @@ sflphone-common (0.9.4-0ubuntu2) karmic; urgency=low
  
  -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Wed, 8 Apr 2009 11:29:15 -0500
 
-sflphone (0.9.4-0ubuntu1) karmic; urgency=low
+sflphone (0.9.4-0ubuntu1) SYSTEM; urgency=low
 
   [ Emmanuel Milou ]
   * Integrate DBus-c++ and libiax2 in the main build system
@@ -1463,7 +1463,7 @@ sflphone (0.9.4-0ubuntu1) karmic; urgency=low
  -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 3 Apr 2009 18:29:15 -0500
 
 
-sflphone (0.9.4-rc1) karmic; urgency=low
+sflphone (0.9.4-rc1) SYSTEM; urgency=low
 
   [ Emmanuel Milou ]
   * Fix bug while trying to hold/unhold several simultaneous call
@@ -1477,7 +1477,7 @@ sflphone (0.9.4-rc1) karmic; urgency=low
 
  -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 27 Mar 2009 18:29:15 -0500
 
-sflphone (0.9.4-0beta1) karmic; urgency=low
+sflphone (0.9.4-0beta1) SYSTEM; urgency=low
 
   [ Alexandre Savard ]
   * Display codec used during conversation on the GUI
@@ -1493,7 +1493,7 @@ sflphone (0.9.4-0beta1) karmic; urgency=low
  -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 20 Mar 2009 18:29:15 -0500
 
 
-sflphone (0.9.3-0ubuntu3) karmic; urgency=low
+sflphone (0.9.3-0ubuntu3) SYSTEM; urgency=low
 
   [ Alexandre Savard ]
   * Both playback and record streams in PA_STREAM_CORKED (pulseaudio)
@@ -1518,7 +1518,7 @@ sflphone (0.9.3-0ubuntu3) karmic; urgency=low
 
  -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Sat, 14 Feb 2009 13:29:15 -0500
 
-sflphone (0.9.3-0ubuntu2) karmic; urgency=low
+sflphone (0.9.3-0ubuntu2) SYSTEM; urgency=low
 
   [ Emmanuel Milou ]
   * Add compilation note in README
@@ -1587,7 +1587,7 @@ sflphone (0.9.3-0ubuntu2) karmic; urgency=low
 
  -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Sat, 14 Feb 2009 13:29:15 -0500
 
-sflphone (0.9.3-0ubuntu1) karmic; urgency=low
+sflphone (0.9.3-0ubuntu1) SYSTEM; urgency=low
 
   * Remove debug
   * Join thread before leaving
@@ -1600,7 +1600,7 @@ sflphone (0.9.3-0ubuntu1) karmic; urgency=low
 
  -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 06 Feb 2009 19:17:32 -0500
 
-sflphone (0.9.2-2ubuntu9) karmic; urgency=low
+sflphone (0.9.2-2ubuntu9) SYSTEM; urgency=low
 
   [ Alexandre Savard ]
   * Speex audio codec preprocessing initialization
@@ -1628,7 +1628,7 @@ sflphone (0.9.2-2ubuntu9) karmic; urgency=low
 
  -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Thu, 05 Feb 2009 18:27:53 -0500
 
-sflphone (0.9.2-2ubuntu8) karmic; urgency=low
+sflphone (0.9.2-2ubuntu8) SYSTEM; urgency=low
 
   [ Emmanuel Milou ]
   * Update changelogs
@@ -1672,7 +1672,7 @@ sflphone (0.9.2-2ubuntu8) karmic; urgency=low
 
  -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Wed, 04 Feb 2009 14:00:30 -0500
 
-sflphone (0.9.2-2ubuntu7) karmic; urgency=low
+sflphone (0.9.2-2ubuntu7) SYSTEM; urgency=low
 
   [ Emmanuel Milou ]
   * Update changelog to 0.9.2-6
@@ -1694,7 +1694,7 @@ sflphone (0.9.2-2ubuntu7) karmic; urgency=low
 
  -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 23 Jan 2009 17:48:13 -0500
 
-sflphone (0.9.2-2ubuntu6) karmic; urgency=low
+sflphone (0.9.2-2ubuntu6) SYSTEM; urgency=low
 
   [ Emmanuel Milou ]
   * Migrate STUN configuration to the main config window
@@ -1728,7 +1728,7 @@ sflphone (0.9.2-2ubuntu6) karmic; urgency=low
 
  -- Emmanuel Milou <manu@sulfur.inside.savoirfairelinux.net>  Fri, 16 Jan 2009 18:19:05 -0500
 
-sflphone (0.9.2-2ubuntu5) karmic; urgency=low
+sflphone (0.9.2-2ubuntu5) SYSTEM; urgency=low
 
   * Fix memory leak in the pulseaudio callback
   * Update debian package generation script
@@ -1744,7 +1744,7 @@ sflphone (0.9.2-2ubuntu5) karmic; urgency=low
 
  -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Wed, 14 Jan 2009 21:17:20 -0500
 
-sflphone (0.9.2-2ubuntu4) karmic; urgency=low
+sflphone (0.9.2-2ubuntu4) SYSTEM; urgency=low
 
   [ Emmanuel Milou ]
   * add german translation
@@ -1754,7 +1754,7 @@ sflphone (0.9.2-2ubuntu4) karmic; urgency=low
   
  -- Yun Liu <yun.liu@savoirfairelinux.com>  Thu, 08 Jan 2009 13:08:51 -0500
 
-sflphone (0.9.2-2ubuntu3) karmic; urgency=low
+sflphone (0.9.2-2ubuntu3) SYSTEM; urgency=low
 
   [ Emmanuel Milou ]
   * The main thread synchronizes the ringtone thread
@@ -1766,13 +1766,13 @@ sflphone (0.9.2-2ubuntu3) karmic; urgency=low
   
  -- Yun Liu <yun.liu@savoirfairelinux.com>  Tue, 06 Jan 2009 16:18:38 -0500
 
-sflphone (0.9.2-2ubuntu2) karmic; urgency=low
+sflphone (0.9.2-2ubuntu2) SYSTEM; urgency=low
   
   * Fix bug ticket #129
   
  -- Yun Liu <yun.liu@savoirfairelinux.com>  Wed, 5 Jan 2009 15:54:53 -0500
 
-sflphone (0.9.2-2ubuntu1) karmic; urgency=low
+sflphone (0.9.2-2ubuntu1) SYSTEM; urgency=low
 
   * Migrate from eXosip library to pjsip
   * Add multiple SIP accounts support
-- 
GitLab


From 0ef6412b67486ee927804637068858add41f9522 Mon Sep 17 00:00:00 2001
From: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
Date: Fri, 20 Nov 2009 10:56:56 -0500
Subject: [PATCH 018/188] [#2462] Use published address in SIP-SDP

---
 sflphone-common/src/sip/sipvoiplink.cpp | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 21f12a44f4..c58ca221a3 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -683,7 +683,7 @@ SIPVoIPLink::newOutgoingCall (const CallID& id, const std::string& toUrl)
         call->setPeerNumber (toUri);
 
         // TODO May use the published address as well
-        localAddr = account->getLocalAddress ();
+		account->isStunEnabled () ? localAddr = account->getPublishedAddress () : localAddr = account->getLocalAddress ();		
         setCallAudioLocal (call, localAddr);
 
         try {
@@ -1455,8 +1455,8 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
             return !PJ_SUCCESS;
         }
 
-        // Set SDP parameters
-        localAddress = account->getLocalAddress ();
+        // Set SDP parameters - Set to local or published address
+		account->isStunEnabled () ? localAddress = account->getPublishedAddress () :  localAddress = account->getLocalAddress (); 
 
         _debug ("new_ip_to_ip_call localAddress: %s\n", localAddress.c_str());
 
@@ -3100,7 +3100,7 @@ mod_on_rx_request (pjsip_rx_data *rdata)
 
     if (account != NULL) {
         // TODO May use the published address as well
-        addrToUse = account->getLocalAddress ();
+		account->isStunEnabled () ? addrToUse = account->getPublishedAddress () : addrToUse = account->getLocalAddress ();		
     }
 
     if (addrToUse == "0.0.0.0") {
@@ -3712,6 +3712,7 @@ bool setCallAudioLocal (SIPCall* call, std::string localIP)
         if (account->isStunEnabled ()) {
             // If use Stun server
             callLocalExternAudioPort = account->getStunPort ();
+			localIP = account->getPublishedAddress ();
         }
 
         _debug ("            Setting local ip address: %s\n", localIP.c_str());
-- 
GitLab


From 8463e1e3d5dcce138fa94533e14e9b390119c03d Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Fri, 20 Nov 2009 11:37:08 -0500
Subject: [PATCH 019/188] [#1671] Added missing files headers

---
 sflphone-common/src/dbus/networkmanager.cpp | 20 +++++++++++++++++++-
 sflphone-common/src/dbus/networkmanager.h   | 19 +++++++++++++++++++
 sflphone-common/src/logger.cpp              | 19 +++++++++++++++++++
 sflphone-common/src/logger.h                | 19 +++++++++++++++++++
 4 files changed, 76 insertions(+), 1 deletion(-)

diff --git a/sflphone-common/src/dbus/networkmanager.cpp b/sflphone-common/src/dbus/networkmanager.cpp
index b1197b6c0f..4b1f0b2a50 100644
--- a/sflphone-common/src/dbus/networkmanager.cpp
+++ b/sflphone-common/src/dbus/networkmanager.cpp
@@ -1,3 +1,22 @@
+/*
+ *  Copyright (C) 2004-2009 Savoir-Faire Linux inc.
+ *  Author: Julien Bonjean <julien.bonjean@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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
 #ifdef USE_NETWORKMANAGER
 
 #include <global.h>
@@ -5,7 +24,6 @@
 #include <iostream>
 #include <instance.h>
 #include "../manager.h"
-#include "sip/sipvoiplink.h"
 
 using namespace std;
 
diff --git a/sflphone-common/src/dbus/networkmanager.h b/sflphone-common/src/dbus/networkmanager.h
index 2402f5c7a4..bf18e15c63 100644
--- a/sflphone-common/src/dbus/networkmanager.h
+++ b/sflphone-common/src/dbus/networkmanager.h
@@ -1,3 +1,22 @@
+/*
+ *  Copyright (C) 2004-2009 Savoir-Faire Linux inc.
+ *  Author: Julien Bonjean <julien.bonjean@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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
 #ifndef NETWORKMANAGER_H
 #define NETWORKMANAGER_H
 
diff --git a/sflphone-common/src/logger.cpp b/sflphone-common/src/logger.cpp
index 8c71ddf645..b7966beea5 100644
--- a/sflphone-common/src/logger.cpp
+++ b/sflphone-common/src/logger.cpp
@@ -1,3 +1,22 @@
+/*
+ *  Copyright (C) 2004-2009 Savoir-Faire Linux inc.
+ *  Author: Julien Bonjean <julien.bonjean@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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
 #include "logger.h"
 #include <stdarg.h>
 #include <string>
diff --git a/sflphone-common/src/logger.h b/sflphone-common/src/logger.h
index f968d10f90..b8a3b77b4c 100644
--- a/sflphone-common/src/logger.h
+++ b/sflphone-common/src/logger.h
@@ -1,3 +1,22 @@
+/*
+ *  Copyright (C) 2004-2009 Savoir-Faire Linux inc.
+ *  Author: Julien Bonjean <julien.bonjean@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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
 #ifndef __LOGGER_H__
 #define __LOGGER_H__
 
-- 
GitLab


From a31d345bf80eddca3a4ab44531e250ac20e7b284 Mon Sep 17 00:00:00 2001
From: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
Date: Fri, 20 Nov 2009 12:12:19 -0500
Subject: [PATCH 020/188] [#2462] Use different address for SDP and call IP

---
 sflphone-common/src/sip/sipvoiplink.cpp | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index c58ca221a3..0567454a3a 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -662,7 +662,7 @@ SIPVoIPLink::newOutgoingCall (const CallID& id, const std::string& toUrl)
 {
     SIPAccount * account = NULL;
     pj_status_t status;
-    std::string localAddr;
+    std::string localAddr, addrSdp;
 
     SIPCall* call = new SIPCall (id, Call::Outgoing, _pool);
 
@@ -683,7 +683,8 @@ SIPVoIPLink::newOutgoingCall (const CallID& id, const std::string& toUrl)
         call->setPeerNumber (toUri);
 
         // TODO May use the published address as well
-		account->isStunEnabled () ? localAddr = account->getPublishedAddress () : localAddr = account->getLocalAddress ();		
+		localAddr = account->getLocalAddress ()
+		account->isStunEnabled () ? addrSdp = account->getPublishedAddress () : addrSdp = account->getLocalAddress ();		
         setCallAudioLocal (call, localAddr);
 
         try {
@@ -698,7 +699,7 @@ SIPVoIPLink::newOutgoingCall (const CallID& id, const std::string& toUrl)
         _debug ("Try to make a call to: %s with call ID: %s\n", toUrl.data(), id.data());
         // Building the local SDP offer
         // localAddr = getLocalAddressAssociatedToAccount (account->getAccountID());
-        call->getLocalSDP()->set_ip_address (localAddr);
+        call->getLocalSDP()->set_ip_address (addrSdp);
         status = call->getLocalSDP()->create_initial_offer();
 
         if (status != PJ_SUCCESS) {
@@ -1456,7 +1457,8 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
         }
 
         // Set SDP parameters - Set to local or published address
-		account->isStunEnabled () ? localAddress = account->getPublishedAddress () :  localAddress = account->getLocalAddress (); 
+		// account->isStunEnabled () ? localAddress = account->getPublishedAddress () :  localAddress = account->getLocalAddress (); 
+		account->isStunEnabled () ? localAddress = account->getLocalAddress () :  localAddress = account->getLocalAddress (); 
 
         _debug ("new_ip_to_ip_call localAddress: %s\n", localAddress.c_str());
 
@@ -1473,6 +1475,7 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
         call->setPeerNumber (toUri);
         _debug ("toUri in new_ip_to_ip call %s\n", toUri.c_str());
         // Building the local SDP offer
+		account->isStunEnabled () ? localAddress = account->getPublishedAddress () :  localAddress = account->getLocalAddress (); 
         call->getLocalSDP()->set_ip_address (localAddress);
         call->getLocalSDP()->create_initial_offer();
 
@@ -1490,7 +1493,7 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
 
         _debug ("IptoIP local port %i\n", account->getLocalPort());
 
-        _debug ("IptoIP local address %s\n", account->getLocalAddress().c_str());
+        _debug ("IptoIP local address in sdp %s\n", account->getLocalAddress().c_str());
 
         // Create URI
         std::string fromUri;
@@ -3094,13 +3097,14 @@ mod_on_rx_request (pjsip_rx_data *rdata)
         return false;
     }
 
-    std::string addrToUse;
+    std::string addrToUse, addrSdp;
 
     account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (account_id));
 
     if (account != NULL) {
         // TODO May use the published address as well
-		account->isStunEnabled () ? addrToUse = account->getPublishedAddress () : addrToUse = account->getLocalAddress ();		
+		addrToUse = addrToUse = account->getLocalAddress ();
+		account->isStunEnabled () ? addrSdp = account->getPublishedAddress () : addrSdp = account->getLocalAddress ();		
     }
 
     if (addrToUse == "0.0.0.0") {
@@ -3112,7 +3116,7 @@ mod_on_rx_request (pjsip_rx_data *rdata)
     setCallAudioLocal (call, addrToUse);
 
     // We retrieve the remote sdp offer in the rdata struct to begin the negociation
-    call->getLocalSDP()->set_ip_address (addrToUse);
+    call->getLocalSDP()->set_ip_address (addrSdp);
 
     get_remote_sdp_from_offer (rdata, &r_sdp);
 
@@ -3712,7 +3716,7 @@ bool setCallAudioLocal (SIPCall* call, std::string localIP)
         if (account->isStunEnabled ()) {
             // If use Stun server
             callLocalExternAudioPort = account->getStunPort ();
-			localIP = account->getPublishedAddress ();
+			//localIP = account->getPublishedAddress ();
         }
 
         _debug ("            Setting local ip address: %s\n", localIP.c_str());
-- 
GitLab


From 07732536ffd6a9837450e552d62bf14ef6a61452 Mon Sep 17 00:00:00 2001
From: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
Date: Fri, 20 Nov 2009 12:13:08 -0500
Subject: [PATCH 021/188] [#2462] fix typo

---
 sflphone-common/src/sip/sipvoiplink.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 0567454a3a..a29a90cc9a 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -683,7 +683,7 @@ SIPVoIPLink::newOutgoingCall (const CallID& id, const std::string& toUrl)
         call->setPeerNumber (toUri);
 
         // TODO May use the published address as well
-		localAddr = account->getLocalAddress ()
+		localAddr = account->getLocalAddress ();
 		account->isStunEnabled () ? addrSdp = account->getPublishedAddress () : addrSdp = account->getLocalAddress ();		
         setCallAudioLocal (call, localAddr);
 
-- 
GitLab


From cdda2110e4e3745ef9926f2336f168be1798db6a Mon Sep 17 00:00:00 2001
From: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
Date: Fri, 20 Nov 2009 13:37:57 -0500
Subject: [PATCH 022/188] [#2462] Set explicitly the transport on incoming call
 too

---
 sflphone-common/src/sip/sipvoiplink.cpp | 49 +++++++++++++++++--------
 1 file changed, 33 insertions(+), 16 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index a29a90cc9a..7d66305764 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -682,11 +682,16 @@ SIPVoIPLink::newOutgoingCall (const CallID& id, const std::string& toUrl)
 
         call->setPeerNumber (toUri);
 
-        // TODO May use the published address as well
 		localAddr = account->getLocalAddress ();
-		account->isStunEnabled () ? addrSdp = account->getPublishedAddress () : addrSdp = account->getLocalAddress ();		
+		if (localAddr == "0.0.0.0")
+			loadSIPLocalIP (&localAddr);
         setCallAudioLocal (call, localAddr);
 
+        // May use the published address as well
+		account->isStunEnabled () ? addrSdp = account->getPublishedAddress () : addrSdp = account->getLocalAddress ();		
+		if (addrSdp == "0.0.0.0")
+			loadSIPLocalIP (&addrSdp);
+
         try {
             _debug ("Creating new rtp session in newOutgoingCall\n");
             call->getAudioRtp()->initAudioRtpSession (call);
@@ -941,8 +946,8 @@ int SIPVoIPLink::inv_session_reinvite (SIPCall *call, std::string direction)
         _debug ("! SIP Failure: unable to find local_sdp\n");
         return !PJ_SUCCESS;
     }
-
-    // reinvite only if connected
+	
+    // Reinvite only if connected
     // Build the local SDP offer
     status = call->getLocalSDP()->create_initial_offer();
 
@@ -956,7 +961,6 @@ int SIPVoIPLink::inv_session_reinvite (SIPCall *call, std::string direction)
     pjmedia_sdp_media_add_attr (local_sdp->media[0], attr);
 
     // Build the reinvite request
-
     status = pjsip_inv_reinvite (call->getInvSession(), NULL,
                                  local_sdp, &tdata);
 
@@ -1437,7 +1441,7 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
     pjsip_dialog *dialog;
     pjsip_inv_session *inv;
     pjsip_tx_data *tdata;
-    std::string localAddress;
+    std::string localAddress, addrSdp;
 
     /* Create the call */
     call = new SIPCall (id, Call::Outgoing, _pool);
@@ -1456,9 +1460,10 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
             return !PJ_SUCCESS;
         }
 
+		// Set the local address
+		localAddress = account->getLocalAddress ();
         // Set SDP parameters - Set to local or published address
-		// account->isStunEnabled () ? localAddress = account->getPublishedAddress () :  localAddress = account->getLocalAddress (); 
-		account->isStunEnabled () ? localAddress = account->getLocalAddress () :  localAddress = account->getLocalAddress (); 
+		account->isStunEnabled () ? addrSdp = account->getPublishedAddress () :  addrSdp = account->getLocalAddress (); 
 
         _debug ("new_ip_to_ip_call localAddress: %s\n", localAddress.c_str());
 
@@ -1467,6 +1472,10 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
             loadSIPLocalIP (&localAddress);
         }
 
+		if (addrSdp == "0.0.0.0") {
+			addrSdp = localAddress;
+		}
+
         setCallAudioLocal (call, localAddress);
 
         _debug ("toUri received in new_ip_to_ip call %s\n", to.c_str());
@@ -1475,8 +1484,7 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
         call->setPeerNumber (toUri);
         _debug ("toUri in new_ip_to_ip call %s\n", toUri.c_str());
         // Building the local SDP offer
-		account->isStunEnabled () ? localAddress = account->getPublishedAddress () :  localAddress = account->getLocalAddress (); 
-        call->getLocalSDP()->set_ip_address (localAddress);
+        call->getLocalSDP()->set_ip_address (addrSdp);
         call->getLocalSDP()->create_initial_offer();
 
         try {
@@ -3097,24 +3105,30 @@ mod_on_rx_request (pjsip_rx_data *rdata)
         return false;
     }
 
-    std::string addrToUse, addrSdp;
+    std::string addrToUse, addrSdp ="0.0.0.0";
+    pjsip_tpselector *tp;
 
     account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (account_id));
 
     if (account != NULL) {
-        // TODO May use the published address as well
-		addrToUse = addrToUse = account->getLocalAddress ();
+        // May use the published address as well
+		addrToUse = account->getLocalAddress ();
 		account->isStunEnabled () ? addrSdp = account->getPublishedAddress () : addrSdp = account->getLocalAddress ();		
+		// Set the appropriate transport to have the right VIA header
+		link->init_transport_selector (account->getAccountTransport (), &tp);
     }
-
-    if (addrToUse == "0.0.0.0") {
+    
+	if (addrToUse == "0.0.0.0") {
         link->loadSIPLocalIP (&addrToUse);
     }
 
+	if (addrSdp == "0.0.0.0") {
+		addrSdp = addrToUse;
+	}
+
     // Have to do some stuff with the SDP
     // Set the codec map, IP, peer number and so on... for the SIPCall object
     setCallAudioLocal (call, addrToUse);
-
     // We retrieve the remote sdp offer in the rdata struct to begin the negociation
     call->getLocalSDP()->set_ip_address (addrSdp);
 
@@ -3161,6 +3175,9 @@ mod_on_rx_request (pjsip_rx_data *rdata)
 
     // Specify media capability during invite session creation
     status = pjsip_inv_create_uas (dialog, rdata, call->getLocalSDP()->get_local_sdp_session(), 0, &inv);
+	// Explicitly set the transport
+	status = pjsip_dlg_set_transport (dialog, tp);
+
 
     PJ_ASSERT_RETURN (status == PJ_SUCCESS, 1);
 
-- 
GitLab


From ddd570f355bdb35d3e714270bc7b96641c2dce9d Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Fri, 20 Nov 2009 17:33:11 -0500
Subject: [PATCH 023/188] [#2445] First shot

---
 .../mozilla-telify-sflphone/debian/changelog  |   7 +++
 tools/mozilla-telify-sflphone/debian/compat   |   1 +
 tools/mozilla-telify-sflphone/debian/control  |  15 +++++
 .../debian/control.debian                     |  16 +++++
 .../mozilla-telify-sflphone/debian/copyright  |   1 +
 tools/mozilla-telify-sflphone/debian/files    |   1 +
 .../mozilla-telify-sflphone.debhelper.log     |  11 ++++
 .../debian/mozilla-telify-sflphone.install    |   5 ++
 .../debian/mozilla-telify-sflphone.links      |   1 +
 .../debian/mozilla-telify-sflphone.substvars  |   1 +
 tools/mozilla-telify-sflphone/debian/postinst |  18 ++++++
 tools/mozilla-telify-sflphone/debian/rules    |  58 ++++++++++++++++++
 .../mozilla-telify-sflphone/sflphone-handler  |  52 ++++++++++++++++
 .../telify-0.4.7.3-fx.xpi                     | Bin 0 -> 561548 bytes
 14 files changed, 187 insertions(+)
 create mode 100644 tools/mozilla-telify-sflphone/debian/changelog
 create mode 100644 tools/mozilla-telify-sflphone/debian/compat
 create mode 100644 tools/mozilla-telify-sflphone/debian/control
 create mode 100644 tools/mozilla-telify-sflphone/debian/control.debian
 create mode 100644 tools/mozilla-telify-sflphone/debian/copyright
 create mode 100644 tools/mozilla-telify-sflphone/debian/files
 create mode 100644 tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.debhelper.log
 create mode 100644 tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.install
 create mode 100644 tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links
 create mode 100644 tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.substvars
 create mode 100755 tools/mozilla-telify-sflphone/debian/postinst
 create mode 100755 tools/mozilla-telify-sflphone/debian/rules
 create mode 100755 tools/mozilla-telify-sflphone/sflphone-handler
 create mode 100644 tools/mozilla-telify-sflphone/telify-0.4.7.3-fx.xpi

diff --git a/tools/mozilla-telify-sflphone/debian/changelog b/tools/mozilla-telify-sflphone/debian/changelog
new file mode 100644
index 0000000000..8ea3e02afc
--- /dev/null
+++ b/tools/mozilla-telify-sflphone/debian/changelog
@@ -0,0 +1,7 @@
+mozilla-telify-sflphone (0.4.7.3) unstable; urgency=low
+
+  [ Julien Bonjean ]
+  * Package creation
+
+ -- Julien Bonjean <julien.bonjean@savoirfairelinux.com>  Fri, 20 Nov 2009 19:51:54 +0100
+
diff --git a/tools/mozilla-telify-sflphone/debian/compat b/tools/mozilla-telify-sflphone/debian/compat
new file mode 100644
index 0000000000..7f8f011eb7
--- /dev/null
+++ b/tools/mozilla-telify-sflphone/debian/compat
@@ -0,0 +1 @@
+7
diff --git a/tools/mozilla-telify-sflphone/debian/control b/tools/mozilla-telify-sflphone/debian/control
new file mode 100644
index 0000000000..88fcc2ff5f
--- /dev/null
+++ b/tools/mozilla-telify-sflphone/debian/control
@@ -0,0 +1,15 @@
+Source: mozilla-telify-sflphone
+Section: web
+Priority: optional
+Maintainer: Julien Bonjean <julien.bonjean@savoirfairelinux.com>
+Uploaders: Julien Bonjean <julien.bonjean@savoirfairelinux.com>
+Build-Depends: debhelper (>= 7), unzip
+Homepage: http://www.sflphone.org
+Standards-Version: 3.8.3
+DM-Upload-Allowed: yes
+
+Package: mozilla-telify-sflphone
+Depends: firefox-gnome-support, sflphone-client-gnome
+Architecture: all
+Description: TBD
+
diff --git a/tools/mozilla-telify-sflphone/debian/control.debian b/tools/mozilla-telify-sflphone/debian/control.debian
new file mode 100644
index 0000000000..d4a3deefdd
--- /dev/null
+++ b/tools/mozilla-telify-sflphone/debian/control.debian
@@ -0,0 +1,16 @@
+Source: mozilla-telify-sflphone
+Section: web
+Priority: optional
+Maintainer: Julien Bonjean <julien.bonjean@savoirfairelinux.com>
+Uploaders: Julien Bonjean <julien.bonjean@savoirfairelinux.com>
+Build-Depends: debhelper (>= 7), unzip
+Depends: iceweasel-gnome-support
+Homepage: http://www.sflphone.org
+Standards-Version: 3.8.3
+DM-Upload-Allowed: yes
+
+Package: mozilla-telify-sflphone
+Architecture: all
+Depends: iceweasel (>= 3.0)
+Description: TBD
+
diff --git a/tools/mozilla-telify-sflphone/debian/copyright b/tools/mozilla-telify-sflphone/debian/copyright
new file mode 100644
index 0000000000..a0990367ef
--- /dev/null
+++ b/tools/mozilla-telify-sflphone/debian/copyright
@@ -0,0 +1 @@
+TBD
diff --git a/tools/mozilla-telify-sflphone/debian/files b/tools/mozilla-telify-sflphone/debian/files
new file mode 100644
index 0000000000..8ebe49a990
--- /dev/null
+++ b/tools/mozilla-telify-sflphone/debian/files
@@ -0,0 +1 @@
+mozilla-telify-sflphone_0.4.7.3_all.deb web optional
diff --git a/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.debhelper.log b/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.debhelper.log
new file mode 100644
index 0000000000..89ec40ebaf
--- /dev/null
+++ b/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.debhelper.log
@@ -0,0 +1,11 @@
+dh_prep
+dh_installdirs
+dh_install
+dh_installchangelogs
+dh_link
+dh_compress
+dh_fixperms
+dh_installdeb
+dh_gencontrol
+dh_md5sums
+dh_builddeb
diff --git a/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.install b/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.install
new file mode 100644
index 0000000000..ffb9a7d052
--- /dev/null
+++ b/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.install
@@ -0,0 +1,5 @@
+temp/install.rdf usr/share/mozilla-extensions/telify/
+temp/chrome.manifest usr/share/mozilla-extensions/telify/
+temp/defaults/* usr/share/mozilla-extensions/telify/defaults
+temp/chrome/* usr/share/mozilla-extensions/telify/chrome
+sflphone-handler usr/bin/
diff --git a/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links b/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links
new file mode 100644
index 0000000000..5fa1937c3e
--- /dev/null
+++ b/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links
@@ -0,0 +1 @@
+usr/share/mozilla-extensions/telify usr/lib/iceweasel/extensions/{6c5f349a-ddda-49ad-bdf0-326d3fe1f938}
diff --git a/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.substvars b/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.substvars
new file mode 100644
index 0000000000..abd3ebebc3
--- /dev/null
+++ b/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.substvars
@@ -0,0 +1 @@
+misc:Depends=
diff --git a/tools/mozilla-telify-sflphone/debian/postinst b/tools/mozilla-telify-sflphone/debian/postinst
new file mode 100755
index 0000000000..293cbf05a1
--- /dev/null
+++ b/tools/mozilla-telify-sflphone/debian/postinst
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+set -x
+
+gconftool-2 --direct --config-source xml::/etc/gconf/gconf.xml.defaults -t string -s /desktop/gnome/url-handlers/tel/command "/usr/bin/sflphone-handler %s"
+gconftool-2 --direct --config-source xml::/etc/gconf/gconf.xml.defaults -s /desktop/gnome/url-handlers/tel/needs_terminal false -t bool
+gconftool-2 --direct --config-source xml::/etc/gconf/gconf.xml.defaults -t bool -s /desktop/gnome/url-handlers/tel/enabled true
+
+gconftool-2 --direct --config-source xml::/etc/gconf/gconf.xml.defaults -t string -s /desktop/gnome/url-handlers/callto/command "/usr/bin/sflphone-handler %s"
+gconftool-2 --direct --config-source xml::/etc/gconf/gconf.xml.defaults -s /desktop/gnome/url-handlers/callto/needs_terminal false -t bool
+gconftool-2 --direct --config-source xml::/etc/gconf/gconf.xml.defaults -t bool -s /desktop/gnome/url-handlers/callto/enabled true
+
+gconftool-2 --direct --config-source xml::/etc/gconf/gconf.xml.defaults -t string -s /desktop/gnome/url-handlers/sip/command "/usr/bin/sflphone-handler %s"
+gconftool-2 --direct --config-source xml::/etc/gconf/gconf.xml.defaults -s /desktop/gnome/url-handlers/sip/needs_terminal false -t bool
+gconftool-2 --direct --config-source xml::/etc/gconf/gconf.xml.defaults -t bool -s /desktop/gnome/url-handlers/sip/enabled true
+
+exit 0
+
diff --git a/tools/mozilla-telify-sflphone/debian/rules b/tools/mozilla-telify-sflphone/debian/rules
new file mode 100755
index 0000000000..b6418e1b04
--- /dev/null
+++ b/tools/mozilla-telify-sflphone/debian/rules
@@ -0,0 +1,58 @@
+#!/usr/bin/make -f
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+ID="{6c5f349a-ddda-49ad-bdf0-326d3fe1f938}"
+
+configure: configure-stamp
+configure-stamp:
+	dh_testdir
+
+	touch configure-stamp
+
+build: configure-stamp build-stamp
+build-stamp:
+	dh_testdir
+
+	mkdir -p temp
+	unzip -o -d temp *.xpi
+	touch build-stamp
+
+clean:
+	dh_testdir
+	dh_testroot
+	rm -f build-stamp configure-stamp
+
+	-rm -rf temp
+
+	dh_clean
+
+install: build
+	dh_testdir
+	dh_testroot
+	dh_prep
+	dh_installdirs
+
+	dh_install
+
+
+# Build architecture-independent files here.
+binary-indep: build install
+	dh_testdir
+	dh_testroot
+	dh_installchangelogs -i
+	dh_link -i 
+	dh_compress -XMPL -i
+	dh_fixperms -i
+	dh_installdeb -i
+	dh_gencontrol -i
+	dh_md5sums -i
+	dh_builddeb -i
+
+# Build architecture-dependent files here.
+binary-arch: build install
+# We have nothing to do by default.
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure
diff --git a/tools/mozilla-telify-sflphone/sflphone-handler b/tools/mozilla-telify-sflphone/sflphone-handler
new file mode 100755
index 0000000000..727ef0f93c
--- /dev/null
+++ b/tools/mozilla-telify-sflphone/sflphone-handler
@@ -0,0 +1,52 @@
+#!/bin/sh
+#
+# This script can be used as a callto: (or other) protocol handler in
+# Mozilla Firefox-based browser.
+# In Firefox use Preferences > Applications and set the callto handler
+# to this script.
+
+# The sflphone daemon config file
+RESFILE=~/.config/sflphone/sflphonedrc
+
+# Parse sflphonedrc and get default account id string
+if [ -f "$RESFILE" ]; then
+
+	# Use first ID
+	ACCOUNTID=`grep Accounts.order $RESFILE | sed -e 's/Accounts.order=//' -e 's/\/.*//'`
+
+	# Accounts.order is not set
+	if [ -z $ACCOUNTID ]; then
+
+		# Use first account declared in sflphone config
+		ACCOUNTID="`grep -m 1 Account: $RESFILE | sed -e 's/\[//' -e 's/\]//'`"
+   	fi 
+
+else
+    echo Fatal: Cant find sflphonedrc config file.
+    exit 1
+fi
+
+# Check 1st argument (phone number)
+if [ -z $1 ]; then
+    echo "Error: argument 1 (phone number) not provided."
+    exit 1
+fi
+
+# Cleanup destination, keeping numbers only 
+TO="`echo $1 | sed -e 's/[^0123456789]//g'`"
+
+# Generate call id.
+CALLID=${RANDOM}$$  
+
+dbus-send                                           \
+    --type="method_call"                            \
+    --dest="org.sflphone.SFLphone"                  \
+    "/org/sflphone/SFLphone/CallManager"            \
+    "org.sflphone.SFLphone.CallManager.placeCall"   \
+    string:"$ACCOUNTID"                             \
+    string:"$CALLID"                                \
+    string:"$TO"
+
+exit 0
+
+# EOF
diff --git a/tools/mozilla-telify-sflphone/telify-0.4.7.3-fx.xpi b/tools/mozilla-telify-sflphone/telify-0.4.7.3-fx.xpi
new file mode 100644
index 0000000000000000000000000000000000000000..ec1eff1fe541400731f1b2e5b6e33a30c8cd9a4a
GIT binary patch
literal 561548
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%0A9Uhkcf`}T%Uh#3D?^Sk)-3<=Oa6!c
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
Xl?_xUD=;cBwp1}Nd=leeU|;|M;Eh6}

literal 0
HcmV?d00001

-- 
GitLab


From 35ef78c81bea7d0cf0d2af0e2756623d33622b9a Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Fri, 20 Nov 2009 17:40:58 -0500
Subject: [PATCH 024/188] [#2181] Updated changelogs

---
 tools/build-system/build-osc.sh              | 2 +-
 tools/build-system/launch-build-machine-2.sh | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/tools/build-system/build-osc.sh b/tools/build-system/build-osc.sh
index 30fb9ab3c0..13432ab327 100755
--- a/tools/build-system/build-osc.sh
+++ b/tools/build-system/build-osc.sh
@@ -23,7 +23,7 @@ LAUNCHPAD_PACKAGES=( "sflphone-client-gnome" "sflphone-common" )
 
 REFERENCE_REPOSITORY="${ROOT_DIR}/sflphone-source-repository"
 
-SOFTWARE_VERSION="0.9.7.beta"
+SOFTWARE_VERSION="0.9.7.rc1"
 
 VERSION_INDEX=1
 
diff --git a/tools/build-system/launch-build-machine-2.sh b/tools/build-system/launch-build-machine-2.sh
index 46246540a0..b6b7638195 100755
--- a/tools/build-system/launch-build-machine-2.sh
+++ b/tools/build-system/launch-build-machine-2.sh
@@ -217,6 +217,7 @@ END
 		fi
 	done
 
+	cp ${DEBIAN_DIR}/changelog.generic ${DEBIAN_DIR}/changelog
 done
 
 # if push is activated
-- 
GitLab


From 925eea6f70019570195cda641462e7aa7b26eab2 Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Fri, 20 Nov 2009 17:42:02 -0500
Subject: [PATCH 025/188] =?UTF-8?q?[#2181]=20Updated=20changelogs=20(oops?=
 =?UTF-8?q?=C2=AB)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../sflphone-client-gnome/debian/changelog    | 159 ++++++++++++++++++
 .../sflphone-common/debian/changelog          | 159 ++++++++++++++++++
 2 files changed, 318 insertions(+)

diff --git a/tools/build-system/launchpad/sflphone-client-gnome/debian/changelog b/tools/build-system/launchpad/sflphone-client-gnome/debian/changelog
index c6bec4586d..ae7c8b6fea 100644
--- a/tools/build-system/launchpad/sflphone-client-gnome/debian/changelog
+++ b/tools/build-system/launchpad/sflphone-client-gnome/debian/changelog
@@ -1,3 +1,162 @@
+sflphone-client-gnome (0.9.7~rc1~ppa1~SYSTEM) SYSTEM; urgency=low
+
+    ** 0.9.7~rc1~ppa1~SYSTEM **
+
+  * [#2462] Set explicitly the transport on incoming call too
+  * [#2462] fix typo
+  * [#2462] Use different address for SDP and call IP
+  * [#2462] Use published address in SIP-SDP
+  * [#2181] Fixed changelog files
+  * [#2181] Updated spec file
+  * [#2402] Fix pointer to int conversion warning (atoi)
+  * [#2402] Remove daemon warnings, make indent
+  * [#2459] Make sure the stream is opened when the call is answered
+  * [#2402] Add conference related picture in documentation
+  * [#2443] Not much ...
+  * [#2399] Fix dialing display problem
+  * [#2450] Fix incoming call already in conference crash
+  * [#2399] Display peer name on the first line and peer number on the
+    second
+  * [#2450] Handle 403 FORBIDDEN when refused
+  * [#2447] Bind offHold/onHold actions to button in gtk client
+  * [#2447] Bind hangup action to button for conference
+  * [#2447] Add conference action in gtk client's ToolBar
+  * [#2381] Disable the password hashing in config file
+  * [#2402] Cleanup
+  * [#2366] Set callback to null when deleting Pulseaudio streams
+  * [#1313] Fix main buffer unit test
+  * [#1313] Fix audio layer unit test
+  * [#2315] Hide pw in security tab, display when editing, sync with
+    basic tab
+  * [#1313] UnitTest change AudioRtpSession for AudioSymetricRtpSession
+    instance
+  * [#2402] Code cleanup
+  * [#2444] Add debug to catch occasional crash when loading client's
+    config
+  * [#2444] Add debug info to catch occasional crash when loading config
+    dialog
+  * [#2402] Restore Call menu translations
+  * [#2403] Use the published address if checked in GUI
+  * [#2442] Add protection test in sdp
+  * [#1841] Reapply pjsip patch concerning DNS SRV resolution
+  * [#2384] Tags incoming call as direct SIP call, if applicable
+  * [#2402] Change the monkey face
+  * [#2315] Enable user to display password in clear text
+  * [#2434] Force optimization level at 2
+  * [#2284] Fix dbus_get_all_ip_interface compilation warnings
+  * [#2431] Popup main window on incoming if applicable
+  * [$2402] Fix simple warnings
+  * [#2402] Fix implicit variable init order in LibraryManagerException
+  * [#2402] Fixing implicit variable initialization warnings in
+    AudioRtpSession
+  * [#2402] Revert atoi change, fixing codec list doubled entries
+  * [#2402] Fix gpointer to gint conversion
+  * [#2402] Fix pointer casting to integer different size warning in
+    codec list
+  * [#2402] Fix warning discarting qualifiers from pointer target
+  * [#2402] Fix gtk tree view assignement from incompatible type warning
+  * [#1669] Fix audio recording folder utf-8 non compatibility issue
+  * [#2414] Clean up debugs
+  * [#2414] Use transport set in iptoip Account and update it frm
+    preference
+  * [#2348] Use macro N_() to mark ui.xml strings as translatable
+  * [#2414] Rename getSipAddress/setSipAddress functions
+  * [#2407] Fix volume controls display
+  * [#2407] Fixes dialpad
+  * [#2383] Set ip to ip config when clicking apply button
+  * [#2404] Update call-to script - Maxime Chambreuil
+  * [#2405] Client handles unknown call in current state as well
+  * [#2383] Add DBUS signal to send IPtoIP local address and port as
+    string
+  * [#2383] Add Ip to IP config change apply call back
+  * Clonflict
+  * [#2402] Code cleanup
+  * [#2383] Do the same for IPtoIP (init localn ip with first in the
+    list)
+  * [#2383] Use first interface in the list if local addresss is not
+    defined
+  * [#2403] Clean up unuseful addresses/ports
+  * [#2403] Use the IP profile SIP port as global SIP port
+  * [#2383] Fix dbus_get_all_ip_interface warnings
+  * [#2383] Take into account sameAsLocal when loading published address
+  * [#2383] Tsake into account sameAsLocal option when saving published
+    address
+  * [#2383] Update local ip address in ip to ip config
+  * [#2383] Save ip 2 ip local port in config
+  * [#2406] Update toolbar at startup
+  * [#2284] Remove redefinition warnings + speex warnings
+  * [#2383] Fix security table in account config
+  * [#2383] Save ip 2 ip network interface parameters in config
+  * [#2403] Restore sip transport selector
+  * [#2383] Fix filling the Localt IP Address on account creation
+  * [#2383] Fix Gtk-Critical when checking STUN
+  * [#2383] Fix reopening account configuration display issue
+  * [#2383] Load IPtoIP local address and port in preference iptoiptab
+  * [#2383] Add LocalAddress and Localport in Preference IpToIp tab
+  * [#2403] Use the address and port associated to the account as often
+    as possible
+  * [#1753] Removed pjsip generated files
+  * [#1753] Removed remaining milenage lib references
+  * [#2383] Add _publishedSameasLocal variable in sipaccount
+  * [#2383] Add PUBLISHED_SAMEAS_LOCAL variable in config
+  * [#2383] Fix stun set active or not when opening config
+  * [#2181] Added RPM 64bits dbus patch
+  * [#2402] Code indentation
+  * [#2313] Force $(HOME).cache directory creation at startup
+  * [#2383] Separate network interface and published address in account
+    config
+  * [#2400] Change dbus service installation path to libdir
+  * [#2382] Move TLS related published address options in security tab
+  * [#2382] Indent accountconfigdialog.c
+  * [#2181] Install libdbus-c++ in $pkglib instead of $lib
+  * [#1753] Remove ILBC code and disable it by default in the configure
+  * [#1753] Remove milenage directory
+  * [#2382] Fix switching interaface instabilities
+  * [#2396] Save local ip in account creation wizard
+  * [#2284] Remove warning on hold
+  * [#2387] Fixes history searching and filtering
+  * [#1215] Add samplerate display in the GUI
+  * [#1663] Voicemail icon reflects voice messages
+  * [#2395] Fix account registration ( specifically with callcentric)
+  * [#2386] Strip "sip:" on incoming call, fixing history call back
+  * [#2181] Updated spec files
+  * [#1215] Display codec name in calltree instead of status bar
+  * [#2390] Move back nbCalls and stopStream higher in refuseCall
+  * [#2392] Fix ringtone during call in IAX
+  * [#2391] Stop audio streams when there is 0 calls only
+  * [#2391] Add debug when call state is not valid
+  * [#2390] Clear returns in IAXvoipLink::sendAudioFromMic() method
+  * [#2380] Fixing IncomingCallNotification not regular
+  * [#2339] Query conference at client startup
+  * [#2339] Working conference querying at startup
+  * [#2339] Add conference in call tree
+  * [#2339] Primitives to query conferences at client startup
+  * [#2320] Add account selection in history
+  * [#2355] Temporary solution: do not delete pointer when removing
+    account
+  * [#2380] Change algorithm in AudioRtp to trigger an
+    IncomingCallNotification
+  * [#2274] Comment sdebug in MainBuffer flush method
+  * [#2274] Add flushMain() in ManagerImpl::addStream
+  * [#2274] Add getBufferID() method in ring buffer
+  * [#2274] Fix warning, comment debug in ringbuffer's flush method
+  * [#2274] Use AudioLayer flushMain() and flushUrgent() in ALSA
+  * [#2274] Clean up unused variable warning
+  * [#2274] Protect minbudffer pointer on flushing
+  * [#2274] Fix playATone method which writing empty buffer in urgent
+    ringbuffer
+  * [#2274] Use audio layer flushUrgent and flushMain in createStreams
+  * [#2274] Use flush audio calls from audiolayer
+  * [#2274] Flush when peer answered call
+  * [#2375] Flush main buffer in iax when answering a call
+  * [#2274] Parse displayname using c++ string method
+  * [#2375] Flush main buffer when off holding calls
+  * [#2375] Flush main buffer mon RTP startup
+  * [#2376] Use now Pulseaudio module-cork-music-on-phone
+  * Updated OSC packaging
+
+ -- Julien Bonjean <julien.bonjean@savoirfairelinux.com>  Fri, 20 Nov 2009 13:59:02 -0500
+
 sflphone-client-gnome (0.9.7~beta~ppa1~karmic) karmic; urgency=low
 
     ** 0.9.7~beta~ppa1~karmic **
diff --git a/tools/build-system/launchpad/sflphone-common/debian/changelog b/tools/build-system/launchpad/sflphone-common/debian/changelog
index 98e662737c..8343cf5d75 100644
--- a/tools/build-system/launchpad/sflphone-common/debian/changelog
+++ b/tools/build-system/launchpad/sflphone-common/debian/changelog
@@ -1,3 +1,162 @@
+sflphone-common (0.9.7~rc1~ppa1~SYSTEM) SYSTEM; urgency=low
+
+    ** 0.9.7~rc1~ppa1~SYSTEM **
+
+  * [#2462] Set explicitly the transport on incoming call too
+  * [#2462] fix typo
+  * [#2462] Use different address for SDP and call IP
+  * [#2462] Use published address in SIP-SDP
+  * [#2181] Fixed changelog files
+  * [#2181] Updated spec file
+  * [#2402] Fix pointer to int conversion warning (atoi)
+  * [#2402] Remove daemon warnings, make indent
+  * [#2459] Make sure the stream is opened when the call is answered
+  * [#2402] Add conference related picture in documentation
+  * [#2443] Not much ...
+  * [#2399] Fix dialing display problem
+  * [#2450] Fix incoming call already in conference crash
+  * [#2399] Display peer name on the first line and peer number on the
+    second
+  * [#2450] Handle 403 FORBIDDEN when refused
+  * [#2447] Bind offHold/onHold actions to button in gtk client
+  * [#2447] Bind hangup action to button for conference
+  * [#2447] Add conference action in gtk client's ToolBar
+  * [#2381] Disable the password hashing in config file
+  * [#2402] Cleanup
+  * [#2366] Set callback to null when deleting Pulseaudio streams
+  * [#1313] Fix main buffer unit test
+  * [#1313] Fix audio layer unit test
+  * [#2315] Hide pw in security tab, display when editing, sync with
+    basic tab
+  * [#1313] UnitTest change AudioRtpSession for AudioSymetricRtpSession
+    instance
+  * [#2402] Code cleanup
+  * [#2444] Add debug to catch occasional crash when loading client's
+    config
+  * [#2444] Add debug info to catch occasional crash when loading config
+    dialog
+  * [#2402] Restore Call menu translations
+  * [#2403] Use the published address if checked in GUI
+  * [#2442] Add protection test in sdp
+  * [#1841] Reapply pjsip patch concerning DNS SRV resolution
+  * [#2384] Tags incoming call as direct SIP call, if applicable
+  * [#2402] Change the monkey face
+  * [#2315] Enable user to display password in clear text
+  * [#2434] Force optimization level at 2
+  * [#2284] Fix dbus_get_all_ip_interface compilation warnings
+  * [#2431] Popup main window on incoming if applicable
+  * [$2402] Fix simple warnings
+  * [#2402] Fix implicit variable init order in LibraryManagerException
+  * [#2402] Fixing implicit variable initialization warnings in
+    AudioRtpSession
+  * [#2402] Revert atoi change, fixing codec list doubled entries
+  * [#2402] Fix gpointer to gint conversion
+  * [#2402] Fix pointer casting to integer different size warning in
+    codec list
+  * [#2402] Fix warning discarting qualifiers from pointer target
+  * [#2402] Fix gtk tree view assignement from incompatible type warning
+  * [#1669] Fix audio recording folder utf-8 non compatibility issue
+  * [#2414] Clean up debugs
+  * [#2414] Use transport set in iptoip Account and update it frm
+    preference
+  * [#2348] Use macro N_() to mark ui.xml strings as translatable
+  * [#2414] Rename getSipAddress/setSipAddress functions
+  * [#2407] Fix volume controls display
+  * [#2407] Fixes dialpad
+  * [#2383] Set ip to ip config when clicking apply button
+  * [#2404] Update call-to script - Maxime Chambreuil
+  * [#2405] Client handles unknown call in current state as well
+  * [#2383] Add DBUS signal to send IPtoIP local address and port as
+    string
+  * [#2383] Add Ip to IP config change apply call back
+  * Clonflict
+  * [#2402] Code cleanup
+  * [#2383] Do the same for IPtoIP (init localn ip with first in the
+    list)
+  * [#2383] Use first interface in the list if local addresss is not
+    defined
+  * [#2403] Clean up unuseful addresses/ports
+  * [#2403] Use the IP profile SIP port as global SIP port
+  * [#2383] Fix dbus_get_all_ip_interface warnings
+  * [#2383] Take into account sameAsLocal when loading published address
+  * [#2383] Tsake into account sameAsLocal option when saving published
+    address
+  * [#2383] Update local ip address in ip to ip config
+  * [#2383] Save ip 2 ip local port in config
+  * [#2406] Update toolbar at startup
+  * [#2284] Remove redefinition warnings + speex warnings
+  * [#2383] Fix security table in account config
+  * [#2383] Save ip 2 ip network interface parameters in config
+  * [#2403] Restore sip transport selector
+  * [#2383] Fix filling the Localt IP Address on account creation
+  * [#2383] Fix Gtk-Critical when checking STUN
+  * [#2383] Fix reopening account configuration display issue
+  * [#2383] Load IPtoIP local address and port in preference iptoiptab
+  * [#2383] Add LocalAddress and Localport in Preference IpToIp tab
+  * [#2403] Use the address and port associated to the account as often
+    as possible
+  * [#1753] Removed pjsip generated files
+  * [#1753] Removed remaining milenage lib references
+  * [#2383] Add _publishedSameasLocal variable in sipaccount
+  * [#2383] Add PUBLISHED_SAMEAS_LOCAL variable in config
+  * [#2383] Fix stun set active or not when opening config
+  * [#2181] Added RPM 64bits dbus patch
+  * [#2402] Code indentation
+  * [#2313] Force $(HOME).cache directory creation at startup
+  * [#2383] Separate network interface and published address in account
+    config
+  * [#2400] Change dbus service installation path to libdir
+  * [#2382] Move TLS related published address options in security tab
+  * [#2382] Indent accountconfigdialog.c
+  * [#2181] Install libdbus-c++ in $pkglib instead of $lib
+  * [#1753] Remove ILBC code and disable it by default in the configure
+  * [#1753] Remove milenage directory
+  * [#2382] Fix switching interaface instabilities
+  * [#2396] Save local ip in account creation wizard
+  * [#2284] Remove warning on hold
+  * [#2387] Fixes history searching and filtering
+  * [#1215] Add samplerate display in the GUI
+  * [#1663] Voicemail icon reflects voice messages
+  * [#2395] Fix account registration ( specifically with callcentric)
+  * [#2386] Strip "sip:" on incoming call, fixing history call back
+  * [#2181] Updated spec files
+  * [#1215] Display codec name in calltree instead of status bar
+  * [#2390] Move back nbCalls and stopStream higher in refuseCall
+  * [#2392] Fix ringtone during call in IAX
+  * [#2391] Stop audio streams when there is 0 calls only
+  * [#2391] Add debug when call state is not valid
+  * [#2390] Clear returns in IAXvoipLink::sendAudioFromMic() method
+  * [#2380] Fixing IncomingCallNotification not regular
+  * [#2339] Query conference at client startup
+  * [#2339] Working conference querying at startup
+  * [#2339] Add conference in call tree
+  * [#2339] Primitives to query conferences at client startup
+  * [#2320] Add account selection in history
+  * [#2355] Temporary solution: do not delete pointer when removing
+    account
+  * [#2380] Change algorithm in AudioRtp to trigger an
+    IncomingCallNotification
+  * [#2274] Comment sdebug in MainBuffer flush method
+  * [#2274] Add flushMain() in ManagerImpl::addStream
+  * [#2274] Add getBufferID() method in ring buffer
+  * [#2274] Fix warning, comment debug in ringbuffer's flush method
+  * [#2274] Use AudioLayer flushMain() and flushUrgent() in ALSA
+  * [#2274] Clean up unused variable warning
+  * [#2274] Protect minbudffer pointer on flushing
+  * [#2274] Fix playATone method which writing empty buffer in urgent
+    ringbuffer
+  * [#2274] Use audio layer flushUrgent and flushMain in createStreams
+  * [#2274] Use flush audio calls from audiolayer
+  * [#2274] Flush when peer answered call
+  * [#2375] Flush main buffer in iax when answering a call
+  * [#2274] Parse displayname using c++ string method
+  * [#2375] Flush main buffer when off holding calls
+  * [#2375] Flush main buffer mon RTP startup
+  * [#2376] Use now Pulseaudio module-cork-music-on-phone
+  * Updated OSC packaging
+
+ -- Julien Bonjean <julien.bonjean@savoirfairelinux.com>  Fri, 20 Nov 2009 14:00:02 -0500
+
 sflphone-common (0.9.7~beta~ppa1~karmic) karmic; urgency=low
 
     ** 0.9.7~beta~ppa1~karmic **
-- 
GitLab


From 469f57f5fa5ee47ada048f3d4b3a19ce2c7485ec Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 23 Nov 2009 10:59:44 -0500
Subject: [PATCH 026/188] [#2466] Put null pointer protection test in gnome gui
 when dragging calls

---
 sflphone-client-gnome/src/contacts/calltree.c | 384 +++++++++---------
 1 file changed, 198 insertions(+), 186 deletions(-)

diff --git a/sflphone-client-gnome/src/contacts/calltree.c b/sflphone-client-gnome/src/contacts/calltree.c
index 5505e21d97..5f4c82e31b 100644
--- a/sflphone-client-gnome/src/contacts/calltree.c
+++ b/sflphone-client-gnome/src/contacts/calltree.c
@@ -1340,7 +1340,7 @@ static void drag_end_cb(GtkWidget * widget, GdkDragContext * context, gpointer d
 	DEBUG("    selected_path %s, selected_call_id %s, selected_path_depth %i\n", selected_path, selected_call_id, selected_path_depth);
 	DEBUG("    dragged path %s, dragged_call_id %s, dragged_path_depth %i\n", selected_path, selected_call_id, dragged_path_depth);
 
-	GtkTreeModel* model = (GtkTreeModel*)current_calls->store;
+	GtkTreeModel *model = (GtkTreeModel*)current_calls->store;
 	GtkTreePath *path = gtk_tree_path_new_from_string(dragged_path);
 	GtkTreePath *dpath = gtk_tree_path_new_from_string(dragged_path);
 	GtkTreePath *spath = gtk_tree_path_new_from_string(selected_path);
@@ -1355,166 +1355,184 @@ static void drag_end_cb(GtkWidget * widget, GdkDragContext * context, gpointer d
 	conference_obj_t* conf;
 
 
-	if(selected_path_depth == 1)
-	{
-		if(dragged_path_depth == 1)
-		{
+	if(selected_path_depth == 1) {
 
-			if (selected_type == A_CALL && dragged_type == A_CALL) 
-			{
+	    if(dragged_path_depth == 1) {
+	      
+	        if (selected_type == A_CALL && dragged_type == A_CALL) {
 
-				if(gtk_tree_path_compare (dpath, spath) == 0)
-				{
-					// draged a call on itself
-				}
-				else
-				{
-					// dragged a single call on a single call
-					if(selected_call != NULL && dragged_call != NULL)
-						sflphone_join_participant(selected_call->_callID, dragged_call->_callID);
-				}
-			}
-			else if(selected_type == A_CALL && dragged_type == A_CONFERENCE)
-			{
-				// dragged a single call on a conference
-				selected_call->_confID = g_strdup(dragged_call_id);
-				sflphone_add_participant(selected_call_id, dragged_call_id);
-			}
-			else if(selected_type == A_CONFERENCE && dragged_type == A_CALL)
-			{
-				// dragged a conference on a single call (make no sence)
-				calltree_remove_conference(current_calls, selected_conf, NULL);
-				calltree_add_conference(current_calls, selected_conf);
+		    if(gtk_tree_path_compare (dpath, spath) == 0) {
 
+		        // draged a call on itself
+		    }
+		    else {
+
+		        // dragged a single call on a single call
+		        if(selected_call != NULL && dragged_call != NULL)
+			  sflphone_join_participant(selected_call->_callID, dragged_call->_callID);
+		    }
+		}
+		else if(selected_type == A_CALL && dragged_type == A_CONFERENCE) {
 
+		    // dragged a single call on a conference
+		    if(!selected_call) {
+		        DEBUG("Error: call dragged on a conference is null");
+		        return;
+		    }
+
+		    selected_call->_confID = g_strdup(dragged_call_id);
+		    sflphone_add_participant(selected_call_id, dragged_call_id);
+		}
+		else if(selected_type == A_CONFERENCE && dragged_type == A_CALL) {
+
+		    // dragged a conference on a single call
+		    conf = selected_conf;
+			        
+		    calltree_remove_conference(current_calls, conf, NULL);
+		    calltree_add_conference(current_calls, conf);
+
+
+		}
+		else if(selected_type == A_CONFERENCE && dragged_type == A_CONFERENCE){
+
+		    // dragged a conference on a conference
+		    if(gtk_tree_path_compare (dpath, spath) == 0) {
+
+		        if(!current_calls) {
+			    DEBUG("Error while joining the same conference\n");
+			    return;
+		        }
+
+		        DEBUG("Joined the same conference!\n");
+			gtk_tree_view_expand_row(GTK_TREE_VIEW(current_calls->view), path, FALSE);
+		    }
+		    else {
+
+		        if(!selected_conf) {
+			    DEBUG("Error: selected conference is null while joining 2 conference");
 			}
-			else if(selected_type == A_CONFERENCE && dragged_type == A_CONFERENCE)
-			{
-				// dragged a conference on a conference
-				if(gtk_tree_path_compare (dpath, spath) == 0) 
-				{
-					DEBUG("Joined the same conference!\n");
-					gtk_tree_view_expand_row(GTK_TREE_VIEW(current_calls->view), path, FALSE);
-				}
-				else
-				{
-					DEBUG("Joined two conference %s, %s!\n", dragged_path, selected_path);
-					sflphone_join_conference(selected_conf->_confID, dragged_conf->_confID);
-				}
+
+			if(!dragged_conf) {
+			    DEBUG("Error: dragged conference is null while joining 2 conference");
 			}
 
+		        DEBUG("Joined two conference %s, %s!\n", dragged_path, selected_path);
+			sflphone_join_conference(selected_conf->_confID, dragged_conf->_confID);
+		    }
+		}
+
 			// TODO: dragged a single call on a NULL element (should do nothing)
 			// TODO: dragged a conference on a NULL element (should do nothing)
 
+	    }
+	    else {
+ 
+	        // dragged_path_depth == 2
+	        if (selected_type == A_CALL && dragged_type == A_CALL) {
+
+		    // TODO: dragged a call on a conference call
+		    calltree_remove_call(current_calls, selected_call, NULL);
+		    calltree_add_call(current_calls, selected_call, NULL);
 		}
-		else // dragged_path_depth == 2
-		{
-			if (selected_type == A_CALL && dragged_type == A_CALL)
-			{
-				// TODO: dragged a call on a conference call
-				calltree_remove_call(current_calls, selected_call, NULL);
-				calltree_add_call(current_calls, selected_call, NULL);
-			}
-			else if(selected_type == A_CONFERENCE && dragged_type == A_CALL)
-			{
-				// TODO: dragged a conference on a conference call
-				calltree_remove_conference(current_calls, selected_conf, NULL);
-				calltree_add_conference(current_calls, selected_conf);
-			}
+		else if(selected_type == A_CONFERENCE && dragged_type == A_CALL) {
 
-			// TODO: dragged a single call on a NULL element 
-			// TODO: dragged a conference on a NULL element
+		  // TODO: dragged a conference on a conference call
+		  calltree_remove_conference(current_calls, selected_conf, NULL);
+		  calltree_add_conference(current_calls, selected_conf);
 		}
+
+		// TODO: dragged a single call on a NULL element 
+		// TODO: dragged a conference on a NULL element
+	    }
 	}
-	else // selected_path_depth == 2
-	{
+	else {
 
-		if(dragged_path_depth == 1)
-		{
+	    // selected_path_depth == 2
 
-			if(selected_type == A_CALL && dragged_type == A_CALL)
-			{
+	    if(dragged_path_depth == 1) {
 
-				// dragged a conference call on a call
-				sflphone_detach_participant(selected_call_id);
+	        if(selected_type == A_CALL && dragged_type == A_CALL) {
 
-				if(selected_call != NULL && dragged_call != NULL)
-					sflphone_join_participant(selected_call->_callID, dragged_call->_callID);
+		    // dragged a conference call on a call
+		    sflphone_detach_participant(selected_call_id);
 
-			}
-			else if(selected_type == A_CALL && dragged_type == A_CONFERENCE)
-			{
-				// dragged a conference call on a conference
-				sflphone_detach_participant(selected_call_id);
+		    if(selected_call != NULL && dragged_call != NULL)
+		        sflphone_join_participant(selected_call->_callID, dragged_call->_callID);
 
-				if(selected_call != NULL && dragged_conf != NULL)
-				{
-					DEBUG("Adding a participant, since dragged call on a conference");
+		}
+		else if(selected_type == A_CALL && dragged_type == A_CONFERENCE) {
 
-					sflphone_add_participant(selected_call_id, dragged_call_id);
-				}
-			}
-			else
-			{
-				// dragged a conference call on a NULL element
-				sflphone_detach_participant(selected_call_id);
-			}
+		    // dragged a conference call on a conference
+		    sflphone_detach_participant(selected_call_id);
+
+		    if(selected_call != NULL && dragged_conf != NULL) {
+
+ 		        DEBUG("Adding a participant, since dragged call on a conference");
+
+			sflphone_add_participant(selected_call_id, dragged_call_id);
+		    }
+		}
+		else {
 
+		    // dragged a conference call on a NULL element
+		    sflphone_detach_participant(selected_call_id);
 		}
-		else // dragged_path_depth == 2
-		{
-			// dragged a conference call on another conference call (same conference)
-			// TODO: dragged a conference call on another conference call (different conference)
+		
+	    }
+	    else {
 
-			gtk_tree_path_up(path);
+	        // dragged_path_depth == 2
+	        // dragged a conference call on another conference call (same conference)
+	        // TODO: dragged a conference call on another conference call (different conference)
+	      
+	        gtk_tree_path_up(path);
 
-			gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &parent_conference, path);
+		gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &parent_conference, path);
 
-			gtk_tree_path_up(dpath);
-			gtk_tree_path_up(spath);
+		gtk_tree_path_up(dpath);
+		gtk_tree_path_up(spath);
 
-			if(gtk_tree_path_compare (dpath, spath) == 0)
-			{
+		if(gtk_tree_path_compare (dpath, spath) == 0) {
 
-				DEBUG("Dragged a call in the same conference");
-				calltree_remove_call (current_calls, selected_call, NULL);
-				calltree_add_call (current_calls, selected_call, &parent_conference);
-			}
-			else
-			{
-				DEBUG("Dragged a conference call onto another conference call %s, %s", gtk_tree_path_to_string(dpath), gtk_tree_path_to_string(spath));
+		    DEBUG("Dragged a call in the same conference");
+		    calltree_remove_call (current_calls, selected_call, NULL);
+		    calltree_add_call (current_calls, selected_call, &parent_conference);
+		}
+		else {
 
-				conf = NULL;
+		    DEBUG("Dragged a conference call onto another conference call %s, %s", gtk_tree_path_to_string(dpath), gtk_tree_path_to_string(spath));
 
-				val.g_type = 0;
-				if(gtk_tree_model_get_iter (model, &iter, dpath))
-				{
-					DEBUG("we got an iter!");
-					gtk_tree_model_get_value (model, &iter, COLUMN_ACCOUNT_PTR, &val);
+		    conf = NULL;
 
-					conf = (conference_obj_t*)g_value_get_pointer(&val);
-				}
-				g_value_unset(&val);
+		    val.g_type = 0;
+		    if(gtk_tree_model_get_iter (model, &iter, dpath)) {
+		      
+		        DEBUG("we got an iter!");
+			gtk_tree_model_get_value (model, &iter, COLUMN_ACCOUNT_PTR, &val);
+			
+			conf = (conference_obj_t*)g_value_get_pointer(&val);
+		    }
+		    g_value_unset(&val);
 
-				sflphone_detach_participant(selected_call_id);
+		    sflphone_detach_participant(selected_call_id);
 
-				if(conf)
-				{
-					DEBUG("we got a conf!");
-					sflphone_add_participant(selected_call_id, conf->_confID);
-				}
-				else
-				{
-					DEBUG("didn't find a conf!");
-				}
-			}
+		    if(conf) {
 
+		        DEBUG("we got a conf!");
+			sflphone_add_participant(selected_call_id, conf->_confID);
+		    }
+		    else {
 
-			// TODO: dragged a conference call on another conference call (different conference)
-			// TODO: dragged a conference call on a NULL element (same conference)
-			// TODO: dragged a conference call on a NULL element (different conference)
+		        DEBUG("didn't find a conf!");
+		    }
 		}
 
+
+		  // TODO: dragged a conference call on another conference call (different conference)
+		  // TODO: dragged a conference call on a NULL element (same conference)
+		  // TODO: dragged a conference call on a NULL element (different conference)
+	    }
+	    
 	}	
 
 }
@@ -1542,75 +1560,69 @@ void drag_data_received_cb(GtkWidget *widget, GdkDragContext *context, gint x, g
 	if(drop_path)
 	{
 
-		gtk_tree_model_get_iter(tree_model, &iter, drop_path);
-		gtk_tree_model_get_value(tree_model, &iter, COLUMN_ACCOUNT_PTR, &val);
+	    gtk_tree_model_get_iter(tree_model, &iter, drop_path);
+	    gtk_tree_model_get_value(tree_model, &iter, COLUMN_ACCOUNT_PTR, &val);
 
+	    
+	    if(gtk_tree_model_iter_has_child(tree_model, &iter)) {
 
-		if(gtk_tree_model_iter_has_child(tree_model, &iter))
-		{
-			DEBUG("DRAGGING ON A CONFERENCE");
-			dragged_type = A_CONFERENCE;
-		}
-		else
-		{
-			DEBUG("DRAGGING ON A CALL");
-			dragged_type = A_CALL;
-		}
+	        DEBUG("DRAGGING ON A CONFERENCE");
+		dragged_type = A_CONFERENCE;
+	    }
+	    else {
 
-		switch (position) 
-		{
-			case GTK_TREE_VIEW_DROP_AFTER:
-				dragged_path = gtk_tree_path_to_string(drop_path);
-				dragged_path_depth = gtk_tree_path_get_depth(drop_path);
-				dragged_call_id = "NULL";
-				dragged_call = NULL;
-				dragged_conf = NULL;
-				// DEBUG("    AFTER dragged_path %s, dragged_call_id %s, dragged_path_depth %i\n", dragged_path, dragged_call_id, dragged_path_depth);
-				break;
+	        DEBUG("DRAGGING ON A CALL");
+		dragged_type = A_CALL;
+	    }
 
-			case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
-				dragged_path = gtk_tree_path_to_string(drop_path);
-				dragged_path_depth = gtk_tree_path_get_depth(drop_path);
-				if (dragged_type == A_CALL)
-				{
-					dragged_call_id = ((callable_obj_t*)g_value_get_pointer(&val))->_callID;
-					dragged_call = (callable_obj_t*)g_value_get_pointer(&val);
-				}
-				else
-				{
-					dragged_call_id = ((conference_obj_t*)g_value_get_pointer(&val))->_confID;
-					dragged_conf = (conference_obj_t*)g_value_get_pointer(&val);
-				}
-				// DEBUG("    INTO_OR_AFTER dragged_path %s, dragged_call_id %s, dragged_path_depth %i\n", dragged_path, dragged_call_id, dragged_path_depth);
-				break;
+	    switch (position)  {
 
-			case GTK_TREE_VIEW_DROP_BEFORE:
-				dragged_path = gtk_tree_path_to_string(drop_path);
-				dragged_path_depth = gtk_tree_path_get_depth(drop_path);
-				dragged_call_id = "NULL";
-				dragged_call = NULL;
-				dragged_conf = NULL;
-				// DEBUG("    BEFORE dragged_path %s, dragged_call_id %s, dragged_path_depth %i\n", dragged_path, dragged_call_id, dragged_path_depth);
-				break;
+	    case GTK_TREE_VIEW_DROP_AFTER:
+	        dragged_path = gtk_tree_path_to_string(drop_path);
+		dragged_path_depth = gtk_tree_path_get_depth(drop_path);
+		dragged_call_id = "NULL";
+		dragged_call = NULL;
+		dragged_conf = NULL;
+		break;
 
-			case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
-				dragged_path = gtk_tree_path_to_string(drop_path);
-				dragged_path_depth = gtk_tree_path_get_depth(drop_path);
-				if (dragged_type == A_CALL)
-				{
-					dragged_call_id = ((callable_obj_t*)g_value_get_pointer(&val))->_callID;
-					dragged_call = (callable_obj_t*)g_value_get_pointer(&val);
-				}
-				else
-				{
-					dragged_call_id = ((conference_obj_t*)g_value_get_pointer(&val))->_confID;
-					dragged_conf = (conference_obj_t*)g_value_get_pointer(&val);
-				}
-				// DEBUG("    INTO_OR_BEFORE dragged_path %s, dragged_call_id %s, dragged_path_depth %i\n", dragged_path, dragged_call_id, dragged_path_depth);
-				break;
+	    case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
+	        dragged_path = gtk_tree_path_to_string(drop_path);
+		dragged_path_depth = gtk_tree_path_get_depth(drop_path);
+		if (dragged_type == A_CALL) {
+		  
+		    dragged_call_id = ((callable_obj_t*)g_value_get_pointer(&val))->_callID;
+		    dragged_call = (callable_obj_t*)g_value_get_pointer(&val);
+		}
+		else {
 
-			default:
-				return;
+		    dragged_call_id = ((conference_obj_t*)g_value_get_pointer(&val))->_confID;
+		    dragged_conf = (conference_obj_t*)g_value_get_pointer(&val);
 		}
+		break;
+
+	    case GTK_TREE_VIEW_DROP_BEFORE:
+	        dragged_path = gtk_tree_path_to_string(drop_path);
+		dragged_path_depth = gtk_tree_path_get_depth(drop_path);
+		dragged_call_id = "NULL";
+		dragged_call = NULL;
+		dragged_conf = NULL;
+		break;
+
+	    case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
+	        dragged_path = gtk_tree_path_to_string(drop_path);
+		dragged_path_depth = gtk_tree_path_get_depth(drop_path);
+		if (dragged_type == A_CALL) {
+		    dragged_call_id = ((callable_obj_t*)g_value_get_pointer(&val))->_callID;
+		    dragged_call = (callable_obj_t*)g_value_get_pointer(&val);
+		}
+		else {
+		    dragged_call_id = ((conference_obj_t*)g_value_get_pointer(&val))->_confID;
+		    dragged_conf = (conference_obj_t*)g_value_get_pointer(&val);
+		}
+		break;
+
+	    default:
+	        return;
+	    }
 	}
 }
-- 
GitLab


From c1ae2ebaa0bb13fe41ec61b57744ce380482591e Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 23 Nov 2009 11:02:15 -0500
Subject: [PATCH 027/188] [#2464] IAX: send audio data only if nbSamples
 greater than zero

nbSamples=0 end up in an arithmetic exception in libiax
---
 sflphone-common/src/iax/iaxvoiplink.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sflphone-common/src/iax/iaxvoiplink.cpp b/sflphone-common/src/iax/iaxvoiplink.cpp
index f48d9a2c4e..b6377ea7f4 100644
--- a/sflphone-common/src/iax/iaxvoiplink.cpp
+++ b/sflphone-common/src/iax/iaxvoiplink.cpp
@@ -364,7 +364,7 @@ IAXVoIPLink::sendAudioFromMic (void)
                         _mutexIAX.enterMutex();
 
                         // Make sure the session and the call still exists.
-                        if (currentCall->getSession() && micDataEncoded != NULL) {
+                        if (currentCall->getSession() && (micDataEncoded != NULL) && (nbSample_ > 0)) {
                             if (iax_send_voice (currentCall->getSession(), currentCall->getFormat(), micDataEncoded, compSize, nbSample_) == -1) {
                                 _debug ("IAX: Error sending voice data.\n");
                             }
-- 
GitLab


From 85a4a8615a36b40e6bbd0c19c85829331cf03ca5 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 23 Nov 2009 16:27:57 -0500
Subject: [PATCH 028/188] [#2464] IAX: Fix occasional arythmetic exception when
 sending data from mic

---
 sflphone-common/src/iax/iaxvoiplink.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sflphone-common/src/iax/iaxvoiplink.cpp b/sflphone-common/src/iax/iaxvoiplink.cpp
index f48d9a2c4e..b6377ea7f4 100644
--- a/sflphone-common/src/iax/iaxvoiplink.cpp
+++ b/sflphone-common/src/iax/iaxvoiplink.cpp
@@ -364,7 +364,7 @@ IAXVoIPLink::sendAudioFromMic (void)
                         _mutexIAX.enterMutex();
 
                         // Make sure the session and the call still exists.
-                        if (currentCall->getSession() && micDataEncoded != NULL) {
+                        if (currentCall->getSession() && (micDataEncoded != NULL) && (nbSample_ > 0)) {
                             if (iax_send_voice (currentCall->getSession(), currentCall->getFormat(), micDataEncoded, compSize, nbSample_) == -1) {
                                 _debug ("IAX: Error sending voice data.\n");
                             }
-- 
GitLab


From 475cecf45b61224f00f4f2ec5d0c6b060b2234b7 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 23 Nov 2009 16:29:46 -0500
Subject: [PATCH 029/188] [#2466] GUI-Gnome: Segfault when dragging a
 conference on a call

Happen when as current_calls may change during gui manipulation
---
 sflphone-client-gnome/src/contacts/calltree.c | 247 ++++++++----------
 1 file changed, 116 insertions(+), 131 deletions(-)

diff --git a/sflphone-client-gnome/src/contacts/calltree.c b/sflphone-client-gnome/src/contacts/calltree.c
index 5505e21d97..89a48d47d0 100644
--- a/sflphone-client-gnome/src/contacts/calltree.c
+++ b/sflphone-client-gnome/src/contacts/calltree.c
@@ -1355,165 +1355,150 @@ static void drag_end_cb(GtkWidget * widget, GdkDragContext * context, gpointer d
 	conference_obj_t* conf;
 
 
-	if(selected_path_depth == 1)
-	{
-		if(dragged_path_depth == 1)
-		{
+	if(selected_path_depth == 1) {
 
-			if (selected_type == A_CALL && dragged_type == A_CALL) 
-			{
+	    if(dragged_path_depth == 1) {
 
-				if(gtk_tree_path_compare (dpath, spath) == 0)
-				{
-					// draged a call on itself
-				}
-				else
-				{
-					// dragged a single call on a single call
-					if(selected_call != NULL && dragged_call != NULL)
-						sflphone_join_participant(selected_call->_callID, dragged_call->_callID);
-				}
-			}
-			else if(selected_type == A_CALL && dragged_type == A_CONFERENCE)
-			{
-				// dragged a single call on a conference
-				selected_call->_confID = g_strdup(dragged_call_id);
-				sflphone_add_participant(selected_call_id, dragged_call_id);
-			}
-			else if(selected_type == A_CONFERENCE && dragged_type == A_CALL)
-			{
-				// dragged a conference on a single call (make no sence)
-				calltree_remove_conference(current_calls, selected_conf, NULL);
-				calltree_add_conference(current_calls, selected_conf);
+	        if (selected_type == A_CALL && dragged_type == A_CALL) {
 
+		    if(gtk_tree_path_compare (dpath, spath) == 0) {
+		        // draged a call on itself
+		    }
+		    else {
+		        // dragged a single call on a single call
+		        if(selected_call != NULL && dragged_call != NULL)
+			  sflphone_join_participant(selected_call->_callID, dragged_call->_callID);
+		    }
+		}
+		else if(selected_type == A_CALL && dragged_type == A_CONFERENCE) {
+		    // dragged a single call on a conference
+		    selected_call->_confID = g_strdup(dragged_call_id);
+		    sflphone_add_participant(selected_call_id, dragged_call_id);
+		}
+		else if(selected_type == A_CONFERENCE && dragged_type == A_CALL) {
 
-			}
-			else if(selected_type == A_CONFERENCE && dragged_type == A_CONFERENCE)
-			{
-				// dragged a conference on a conference
-				if(gtk_tree_path_compare (dpath, spath) == 0) 
-				{
-					DEBUG("Joined the same conference!\n");
-					gtk_tree_view_expand_row(GTK_TREE_VIEW(current_calls->view), path, FALSE);
-				}
-				else
-				{
-					DEBUG("Joined two conference %s, %s!\n", dragged_path, selected_path);
-					sflphone_join_conference(selected_conf->_confID, dragged_conf->_confID);
-				}
-			}
+		    conf = selected_conf;
 
-			// TODO: dragged a single call on a NULL element (should do nothing)
-			// TODO: dragged a conference on a NULL element (should do nothing)
+		    // dragged a conference on a single call (make no sence)
+		    calltree_remove_conference(current_calls, conf, NULL);
+		    calltree_add_conference(current_calls, conf);
 
 		}
-		else // dragged_path_depth == 2
-		{
-			if (selected_type == A_CALL && dragged_type == A_CALL)
-			{
-				// TODO: dragged a call on a conference call
-				calltree_remove_call(current_calls, selected_call, NULL);
-				calltree_add_call(current_calls, selected_call, NULL);
-			}
-			else if(selected_type == A_CONFERENCE && dragged_type == A_CALL)
-			{
-				// TODO: dragged a conference on a conference call
-				calltree_remove_conference(current_calls, selected_conf, NULL);
-				calltree_add_conference(current_calls, selected_conf);
-			}
-
-			// TODO: dragged a single call on a NULL element 
-			// TODO: dragged a conference on a NULL element
+		else if(selected_type == A_CONFERENCE && dragged_type == A_CONFERENCE) {
+		    // dragged a conference on a conference
+		    if(gtk_tree_path_compare (dpath, spath) == 0) {
+		        DEBUG("Joined the same conference!\n");
+			gtk_tree_view_expand_row(GTK_TREE_VIEW(current_calls->view), path, FALSE);
+		    }
+		    else {
+		        DEBUG("Joined two conference %s, %s!\n", dragged_path, selected_path);
+			sflphone_join_conference(selected_conf->_confID, dragged_conf->_confID);
+		    }
 		}
-	}
-	else // selected_path_depth == 2
-	{
-
-		if(dragged_path_depth == 1)
-		{
 
-			if(selected_type == A_CALL && dragged_type == A_CALL)
-			{
+		// TODO: dragged a single call on a NULL element (should do nothing)
+		// TODO: dragged a conference on a NULL element (should do nothing)
 
-				// dragged a conference call on a call
-				sflphone_detach_participant(selected_call_id);
+	    }
+	    else {
+	        // dragged_path_depth == 2
 
-				if(selected_call != NULL && dragged_call != NULL)
-					sflphone_join_participant(selected_call->_callID, dragged_call->_callID);
+	        if (selected_type == A_CALL && dragged_type == A_CALL) {
+		    // TODO: dragged a call on a conference call
+		    calltree_remove_call(current_calls, selected_call, NULL);
+		    calltree_add_call(current_calls, selected_call, NULL);
+		}
+		else if(selected_type == A_CONFERENCE && dragged_type == A_CALL) {
+		    // TODO: dragged a conference on a conference call
+		    conf = selected_conf;
 
-			}
-			else if(selected_type == A_CALL && dragged_type == A_CONFERENCE)
-			{
-				// dragged a conference call on a conference
-				sflphone_detach_participant(selected_call_id);
+		    calltree_remove_conference(current_calls, conf, NULL);
+		    calltree_add_conference(current_calls, conf);
+		}
+		
+		// TODO: dragged a single call on a NULL element 
+		// TODO: dragged a conference on a NULL element
+	    }
+	}
+	else {
 
-				if(selected_call != NULL && dragged_conf != NULL)
-				{
-					DEBUG("Adding a participant, since dragged call on a conference");
+	    // selected_path_depth == 2 
 
-					sflphone_add_participant(selected_call_id, dragged_call_id);
-				}
-			}
-			else
-			{
-				// dragged a conference call on a NULL element
-				sflphone_detach_participant(selected_call_id);
-			}
+	    if(dragged_path_depth == 1) {
 
+	        if(selected_type == A_CALL && dragged_type == A_CALL) {
+		  
+		    // dragged a conference call on a call
+		    sflphone_detach_participant(selected_call_id);
+		    
+		    if(selected_call != NULL && dragged_call != NULL)
+		        sflphone_join_participant(selected_call->_callID, dragged_call->_callID);
+		    
 		}
-		else // dragged_path_depth == 2
-		{
-			// dragged a conference call on another conference call (same conference)
-			// TODO: dragged a conference call on another conference call (different conference)
+		else if(selected_type == A_CALL && dragged_type == A_CONFERENCE) {
+		    // dragged a conference call on a conference
+		    sflphone_detach_participant(selected_call_id);
 
-			gtk_tree_path_up(path);
+		    if(selected_call != NULL && dragged_conf != NULL) {
+		        DEBUG("Adding a participant, since dragged call on a conference");
 
-			gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &parent_conference, path);
+		        sflphone_add_participant(selected_call_id, dragged_call_id);
+		    }
+		}
+		else {
+		    // dragged a conference call on a NULL element
+		    sflphone_detach_participant(selected_call_id);
+		}
+		
+	    }
+	    else {
+	        // dragged_path_depth == 2
+	        // dragged a conference call on another conference call (same conference)
+	        // TODO: dragged a conference call on another conference call (different conference)
 
-			gtk_tree_path_up(dpath);
-			gtk_tree_path_up(spath);
+	        gtk_tree_path_up(path);
+		
+		gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &parent_conference, path);
+		
+		gtk_tree_path_up(dpath);
+		gtk_tree_path_up(spath);
 
-			if(gtk_tree_path_compare (dpath, spath) == 0)
-			{
+		if(gtk_tree_path_compare (dpath, spath) == 0) {
 
-				DEBUG("Dragged a call in the same conference");
-				calltree_remove_call (current_calls, selected_call, NULL);
-				calltree_add_call (current_calls, selected_call, &parent_conference);
-			}
-			else
-			{
-				DEBUG("Dragged a conference call onto another conference call %s, %s", gtk_tree_path_to_string(dpath), gtk_tree_path_to_string(spath));
+		    DEBUG("Dragged a call in the same conference");
+		    calltree_remove_call (current_calls, selected_call, NULL);
+		    calltree_add_call (current_calls, selected_call, &parent_conference);
+		}
+		else {
+		    DEBUG("Dragged a conference call onto another conference call %s, %s", gtk_tree_path_to_string(dpath), gtk_tree_path_to_string(spath));
 
-				conf = NULL;
+		    conf = NULL;
 
-				val.g_type = 0;
-				if(gtk_tree_model_get_iter (model, &iter, dpath))
-				{
-					DEBUG("we got an iter!");
-					gtk_tree_model_get_value (model, &iter, COLUMN_ACCOUNT_PTR, &val);
+		    val.g_type = 0;
+		    if(gtk_tree_model_get_iter (model, &iter, dpath)) {
+		        DEBUG("we got an iter!");
+			gtk_tree_model_get_value (model, &iter, COLUMN_ACCOUNT_PTR, &val);
 
-					conf = (conference_obj_t*)g_value_get_pointer(&val);
-				}
-				g_value_unset(&val);
+			conf = (conference_obj_t*)g_value_get_pointer(&val);
+		    }
+		    g_value_unset(&val);
 
-				sflphone_detach_participant(selected_call_id);
+		    sflphone_detach_participant(selected_call_id);
 
-				if(conf)
-				{
-					DEBUG("we got a conf!");
-					sflphone_add_participant(selected_call_id, conf->_confID);
-				}
-				else
-				{
-					DEBUG("didn't find a conf!");
-				}
-			}
+		    if(conf) {
+		        DEBUG("we got a conf!");
+		        sflphone_add_participant(selected_call_id, conf->_confID);
+		    }
+		    else {
+		        DEBUG("didn't find a conf!");
+		    }
+		}
 
 
-			// TODO: dragged a conference call on another conference call (different conference)
-			// TODO: dragged a conference call on a NULL element (same conference)
-			// TODO: dragged a conference call on a NULL element (different conference)
-		}
+		// TODO: dragged a conference call on another conference call (different conference)
+		// TODO: dragged a conference call on a NULL element (same conference)
+		// TODO: dragged a conference call on a NULL element (different conference)
+	    }
 
 	}	
 
-- 
GitLab


From 56a8b534b38f9eaf16bd4d317012962547ff568e Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Tue, 24 Nov 2009 11:49:55 -0500
Subject: [PATCH 030/188] [#2471] Handle INFO sip message sending a 200 OK

---
 sflphone-common/src/sip/sipvoiplink.cpp | 27 +++++++++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 7d66305764..d4d35395af 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -2852,13 +2852,36 @@ void call_on_forked (pjsip_inv_session *inv, pjsip_event *e)
 
 void call_on_tsx_changed (pjsip_inv_session *inv, pjsip_transaction *tsx, pjsip_event *e)
 {
-    _debug ("call_on_tsx_changed to state %s\n", transactionStateMap[tsx->state]);
+    _debug("call_on_tsx_changed to state %s\n", transactionStateMap[tsx->state]);
 
     if (tsx->role==PJSIP_ROLE_UAS && tsx->state==PJSIP_TSX_STATE_TRYING &&
-            pjsip_method_cmp (&tsx->method, &pjsip_refer_method) ==0) {
+        pjsip_method_cmp (&tsx->method, &pjsip_refer_method) ==0) {
         /** Handle the refer method **/
         onCallTransfered (inv, e->body.tsx_state.src.rdata);
     }
+    else if (tsx->role==PJSIP_ROLE_UAS && tsx->state==PJSIP_TSX_STATE_TRYING) {
+
+	if (e && e->body.rx_msg.rdata) {
+
+	    pjsip_tx_data* t_data;
+	    pjsip_rx_data* r_data = e->body.rx_msg.rdata;
+
+	    if(r_data->msg_info.msg->line.req.method.id == PJSIP_OTHER_METHOD) {
+
+		_debug("%s\n", pjsip_rx_data_get_info(r_data));
+		// _debug("%s\n", r_data->msg_info.msg_buf);
+
+	   	
+		pjsip_dlg_create_response (inv->dlg, r_data, PJSIP_SC_OK, NULL, &t_data);
+		  
+		pjsip_dlg_send_response(inv->dlg, tsx, t_data);
+		
+		// pjsip_dlg_respond
+	    }
+	}
+
+    }
+    
 }
 
 void regc_cb (struct pjsip_regc_cbparam *param)
-- 
GitLab


From f09c3d6936d7e44fa7b69103e9b1a27664be55c2 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Tue, 24 Nov 2009 16:18:07 -0500
Subject: [PATCH 031/188] [#2472] Implements Mainbuffer's stateInfo method,
 clean up debugs

---
 sflphone-common/src/audio/mainbuffer.cpp | 122 +++++++++++++----------
 sflphone-common/src/audio/ringbuffer.cpp |  36 +------
 sflphone-common/src/audio/ringbuffer.h   |   3 +-
 sflphone-common/src/conference.cpp       |   8 +-
 sflphone-common/src/managerimpl.cpp      |  15 ++-
 5 files changed, 91 insertions(+), 93 deletions(-)

diff --git a/sflphone-common/src/audio/mainbuffer.cpp b/sflphone-common/src/audio/mainbuffer.cpp
index 3f2751b6ba..46bec0f751 100644
--- a/sflphone-common/src/audio/mainbuffer.cpp
+++ b/sflphone-common/src/audio/mainbuffer.cpp
@@ -39,14 +39,12 @@ void MainBuffer::setInternalSamplingRate (int sr)
     ost::MutexLock guard (_mutex);
 
     if (sr != _internalSamplingRate) {
-        // flushAllBuffers();
+
         _internalSamplingRate = sr;
 
         flushAllBuffers();
 
     }
-
-    // flushAllBuffers();
 }
 
 CallIDSet* MainBuffer::getCallIDSet (CallID call_id)
@@ -63,7 +61,7 @@ CallIDSet* MainBuffer::getCallIDSet (CallID call_id)
 
 bool MainBuffer::createCallIDSet (CallID set_id)
 {
-    _debug ("---- MainBuffer::createCallIDSet %s\n", set_id.c_str());
+
 
     CallIDSet* newCallIDSet = new CallIDSet;
 
@@ -77,21 +75,18 @@ bool MainBuffer::createCallIDSet (CallID set_id)
 bool MainBuffer::removeCallIDSet (CallID set_id)
 {
 
-    _debug ("---- MainBuffer::removeCallIDSet %s\n", set_id.c_str());
-
-
     CallIDSet* callid_set = getCallIDSet (set_id);
 
     if (callid_set != NULL) {
         if (_callIDMap.erase (set_id) != 0) {
-            _debug ("          callid set %s erased!\n", set_id.c_str());
+	    // _debug ("          callid set %s erased!\n", set_id.c_str());
             return true;
         } else {
-            _debug ("          error while removing callid set %s!\n", set_id.c_str());
+            _debug ("removeCallIDSet error while removing callid set %s!\n", set_id.c_str());
             return false;
         }
     } else {
-        _debug ("          callid set %s does not exist!\n", set_id.c_str());
+        _debug ("removeCallIDSet error callid set %s does not exist!\n", set_id.c_str());
         return false;
     }
 
@@ -99,7 +94,6 @@ bool MainBuffer::removeCallIDSet (CallID set_id)
 
 void MainBuffer::addCallIDtoSet (CallID set_id, CallID call_id)
 {
-    _debug ("---- MainBuffer::addCallIDtoSet %s in %s\n", set_id.c_str(), call_id.c_str());
 
     CallIDSet* callid_set = getCallIDSet (set_id);
     callid_set->insert (call_id);
@@ -108,18 +102,17 @@ void MainBuffer::addCallIDtoSet (CallID set_id, CallID call_id)
 
 void MainBuffer::removeCallIDfromSet (CallID set_id, CallID call_id)
 {
-    _debug ("---- MainBuffer::removeCallIDfromSet element %s from %s\n", call_id.c_str(), set_id.c_str());
 
     CallIDSet* callid_set = getCallIDSet (set_id);
 
     if (callid_set != NULL) {
         if (callid_set->erase (call_id) != 0) {
-            _debug ("          callid %s erased from set %s!\n", call_id.c_str(), set_id.c_str());
+	   // _debug ("          callid %s erased from set %s!\n", call_id.c_str(), set_id.c_str());
         } else {
-            _debug ("          error while removing callid %s from set %s!\n", call_id.c_str(), set_id.c_str());
+            _debug ("removeCallIDfromSet error while removing callid %s from set %s!\n", call_id.c_str(), set_id.c_str());
         }
     } else {
-        _debug ("          callid set %s does not exist!\n", set_id.c_str());
+        _debug ("removeCallIDfromSet error callid set %s does not exist!\n", set_id.c_str());
     }
 }
 
@@ -140,8 +133,6 @@ RingBuffer* MainBuffer::getRingBuffer (CallID call_id)
 RingBuffer* MainBuffer::createRingBuffer (CallID call_id)
 {
 
-    _debug ("---- MainBuffer::createRingBuffer callid %s\n", call_id.c_str());
-
     RingBuffer* newRingBuffer = new RingBuffer (SIZEBUF, call_id);
 
     _ringBufferMap.insert (pair<CallID, RingBuffer*> (call_id, newRingBuffer));
@@ -152,21 +143,18 @@ RingBuffer* MainBuffer::createRingBuffer (CallID call_id)
 
 bool MainBuffer::removeRingBuffer (CallID call_id)
 {
-
-    _debug ("---- MainBuffer::removeRingBuffer call_id %s\n", call_id.c_str());
-
     RingBuffer* ring_buffer = getRingBuffer (call_id);
 
     if (ring_buffer != NULL) {
         if (_ringBufferMap.erase (call_id) != 0) {
-            _debug ("          ringbuffer %s removed!\n", call_id.c_str());
+	  // _debug ("removeRingBuffer ringbuffer %s removed!\n", call_id.c_str());
             return true;
         } else {
-            _debug ("          error while deleting ringbuffer %s!\n", call_id.c_str());
+            _debug ("removeRingBuffer error while deleting ringbuffer %s!\n", call_id.c_str());
             return false;
         }
     } else {
-        _debug ("          error ringbuffer %s does not exist!\n", call_id.c_str());
+        _debug ("removeRingBuffer error ringbuffer %s does not exist!\n", call_id.c_str());
         return true;
     }
 }
@@ -177,8 +165,6 @@ void MainBuffer::bindCallID (CallID call_id1, CallID call_id2)
 
     ost::MutexLock guard (_mutex);
 
-    _debug ("---- MainBuffer::bindCallID %s and callid %s\n", call_id1.c_str(), call_id2.c_str());
-
     RingBuffer* ring_buffer;
     CallIDSet* callid_set;
 
@@ -210,8 +196,6 @@ void MainBuffer::unBindCallID (CallID call_id1, CallID call_id2)
 
     ost::MutexLock guard (_mutex);
 
-    _debug ("---- MainBuffer::unBindCallID %s and callid %s\n", call_id1.c_str(), call_id2.c_str());
-
     removeCallIDfromSet (call_id1, call_id2);
     removeCallIDfromSet (call_id2, call_id1);
 
@@ -261,7 +245,6 @@ void MainBuffer::unBindAll (CallID call_id)
 
     CallIDSet::iterator iter_set = temp_set.begin();
 
-    _debug ("MainBuffer::unBindAll\n");
 
     while (iter_set != temp_set.end()) {
         CallID call_id_in_set = *iter_set;
@@ -369,12 +352,10 @@ int MainBuffer::getData (void *buffer, int toCopy, unsigned short volume, CallID
 int MainBuffer::getDataByID (void *buffer, int toCopy, unsigned short volume, CallID call_id, CallID reader_id)
 {
 
-    // _debug("MainBuffer::getDataByID in buffer %s by %s \n", call_id.c_str(), reader_id.c_str());
-
     RingBuffer* ring_buffer = getRingBuffer (call_id);
 
     if (ring_buffer == NULL) {
-        // _debug("Output RingBuffer ID: \"%s\" does not exist!\n", call_id.c_str());
+
         return 0;
     }
 
@@ -402,7 +383,6 @@ int MainBuffer::availForGet (CallID call_id)
 
     if (callid_set->size() == 1) {
         CallIDSet::iterator iter_id = callid_set->begin();
-        // _debug("MainBuffer::availForGet availForGetByID(%s,%s)\n", (*iter_id).c_str(), call_id.c_str());
 
         if ( (call_id != default_id) && (*iter_id == call_id)) {
             _debug ("This problem should not occur since we have %i element\n", (int) callid_set->size());
@@ -434,7 +414,7 @@ int MainBuffer::availForGetByID (CallID call_id, CallID reader_id)
 
     if ( (call_id != default_id) && (reader_id == call_id)) {
         _debug ("**********************************************************************\n");
-        _debug ("Error an RTP session ring buffer is not supposed to have a readpointer on tiself\n");
+        _debug ("Error an RTP session ring buffer is not supposed to have a readpointer on itself\n");
     }
 
     RingBuffer* ringbuffer = getRingBuffer (call_id);
@@ -466,11 +446,11 @@ int MainBuffer::discard (int toDiscard, CallID call_id)
 
 
     if (callid_set->size() == 1) {
+
         CallIDSet::iterator iter_id = callid_set->begin();
-        // _debug("Discard Data in \"%s\" RingBuffer for \"%s\" ReaderPointer\n",(*iter_id).c_str(),call_id.c_str());
         return discardByID (toDiscard, *iter_id, call_id);
     } else {
-        // _debug("CallIDSet with ID: \"%s\" is a conference!\n", call_id.c_str());
+
         CallIDSet::iterator iter_id;
 
         for (iter_id = callid_set->begin(); iter_id != callid_set->end(); iter_id++) {
@@ -501,8 +481,6 @@ void MainBuffer::flush (CallID call_id)
 {
     ost::MutexLock guard (_mutex);
 
-    // _debug("MainBuffer::flush\n");
-
     CallIDSet* callid_set = getCallIDSet (call_id);
 
     if (callid_set == NULL)
@@ -516,7 +494,7 @@ void MainBuffer::flush (CallID call_id)
         CallIDSet::iterator iter_id = callid_set->begin();
         flushByID (*iter_id, call_id);
     } else {
-        // _debug("CallIDSet with ID: \"%s\" is a conference!\n", call_id.c_str());
+
         CallIDSet::iterator iter_id;
 
         for (iter_id = callid_set->begin(); iter_id != callid_set->end(); iter_id++) {
@@ -548,12 +526,10 @@ void MainBuffer::flushByID (CallID call_id, CallID reader_id)
 void MainBuffer::flushAllBuffers()
 {
 
-    // _debug("-------------------------- flushAllBuffers()\n");
 
     RingBufferMap::iterator iter_buffer = _ringBufferMap.begin();
 
     while (iter_buffer != _ringBufferMap.end()) {
-        // _debug("--------------------------    flushing: %s\n",iter_buffer->second->getBufferId().c_str());
 
         iter_buffer->second->flushAll();
 
@@ -566,27 +542,67 @@ void MainBuffer::stateInfo()
 {
     _debug ("MainBuffer state info\n");
 
-    CallIDMap::iterator iter_map = _callIDMap.begin();
+    CallIDMap::iterator iter_call = _callIDMap.begin();
+
+    // print each call and bound call ids
+    while(iter_call != _callIDMap.end()) {
+
+        std::string dbg_str("    Call: ");
+	dbg_str.append(std::string(iter_call->first.c_str()));
+	dbg_str.append(std::string("   is bound to: "));
+ 
+	CallIDSet* call_id_set = (CallIDSet*)iter_call->second;
 
-    while (iter_map != _callIDMap.end()) {
-        CallIDSet* id_set = getCallIDSet (iter_map->first);
+	CallIDSet::iterator iter_call_id = call_id_set->begin();
+
+	while (iter_call_id != call_id_set->end()) {
+
+	    dbg_str.append (std::string (*iter_call_id));
+	    dbg_str.append (std::string (", "));
+
+	    iter_call_id++;
+	}
+
+	_debug ("%s\n", dbg_str.c_str());
+
+	iter_call++;
+    }
+
+    // Print ringbuffers ids and readpointers
+    RingBufferMap::iterator iter_buffer = _ringBufferMap.begin();
+
+    while (iter_buffer != _ringBufferMap.end()) {
+
+        RingBuffer* rbuffer = (RingBuffer*)iter_buffer->second;
+	ReadPointer* rpointer = NULL;
 
         std::string dbg_str ("    Buffer: ");
 
-        dbg_str.append (string (iter_map->first.c_str()));
-        dbg_str.append (string (" bound to "));
+        dbg_str.append (std::string (iter_buffer->first.c_str()));
+        dbg_str.append (std::string ("   as read pointer: "));
+
+	if(rbuffer)
+	    rpointer = rbuffer->getReadPointerList();
+
+	if(rpointer) {
 
-        if (id_set != NULL) {
-            CallIDSet::iterator iter_set = id_set->begin();
+	    ReadPointer::iterator iter_pointer = rpointer->begin();
+	    
+	    while(iter_pointer != rpointer->end()) {
 
-            while (iter_set != id_set->end()) {
-                dbg_str.append (string (iter_set->c_str()));
+	        dbg_str.append (string (iter_pointer->first.c_str()));
                 dbg_str.append (string (", "));
-            }
-        }
 
-        _debug ("%s\n", dbg_str.c_str());
+	        iter_pointer++;
+	    }
+	}
 
-        iter_map++;
+	_debug ("%s\n", dbg_str.c_str());
+
+        iter_buffer++;
     }
+
+
+
+    
 }
diff --git a/sflphone-common/src/audio/ringbuffer.cpp b/sflphone-common/src/audio/ringbuffer.cpp
index 0eb146f397..22bfd53168 100644
--- a/sflphone-common/src/audio/ringbuffer.cpp
+++ b/sflphone-common/src/audio/ringbuffer.cpp
@@ -54,7 +54,6 @@ RingBuffer::~RingBuffer()
 void
 RingBuffer::flush (CallID call_id)
 {
-    _debug ("flush: reinit \"%s\" readpointer in \"%s\" ringbuffer\n", call_id.c_str(), buffer_id.c_str());
     storeReadPointer (mEnd, call_id);
 }
 
@@ -62,14 +61,11 @@ RingBuffer::flush (CallID call_id)
 void
 RingBuffer::flushAll ()
 {
-    // _debug("flushall: reinit all readpointer in \"%s\" ringbuffer\n", buffer_id.c_str());
-
-    // _debug("------------------------------ flushAll() in \"%s\" ringbuffer\n", buffer_id.c_str());
 
     ReadPointer::iterator iter_pointer = _readpointer.begin();
 
     while (iter_pointer != _readpointer.end()) {
-        // _debug("------------------------------     reinit readpointer %s\n", iter_pointer->first.c_str());
+
         iter_pointer->second = mEnd;
 
         iter_pointer++;
@@ -89,8 +85,6 @@ RingBuffer::putLen()
 
     int length = (mEnd + mBufferSize - mStart) % mBufferSize;
 
-    // _debug("RingBuffer::putLen length %i\n", length);
-    // _debug("    *RingBuffer::putLen: buffer_id %s, mStart %i, mEnd %i, length %i, buffersie %i\n", buffer_id.c_str(), mStart, mEnd, length, mBufferSize);
     return length;
 }
 
@@ -121,19 +115,9 @@ RingBuffer::getReadPointer (CallID call_id)
     if (getNbReadPointer() == 0)
         return 0;
 
-    // _debug("RingBuffer::getReadPointer() id %s\n", call_id.c_str());
-
     ReadPointer::iterator iter = _readpointer.find (call_id);
 
     if (iter == _readpointer.end()) {
-        // _debug("                RingBuffer::getReadPointer Error read pointer size: %i\n", _readpointer.size());
-        // _debug("                RingBuffer::getReadPointer Error read pointer \"%s\" is null\n", call_id.c_str());
-        ReadPointer::iterator iter2;
-
-        for (iter2 = _readpointer.begin(); iter2 != _readpointer.end(); iter2++) {
-            // x_debug("                RingBuffer::getReadPointer list avail pointer \"%s\"\n", iter2->first.c_str());
-        }
-
         return 0;
     } else {
         return iter->second;
@@ -169,7 +153,6 @@ RingBuffer::storeReadPointer (int pointer_value, CallID call_id)
 
     if (iter != _readpointer.end()) {
         iter->second = pointer_value;
-        // _debug("store read pointer call_id %s, size: %i \n",call_id.c_str(), _readpointer.size());
     } else {
         _debug ("storeReadPointer: Cannot find \"%s\" readPointer in \"%s\" ringbuffer\n", call_id.c_str(), buffer_id.c_str());
     }
@@ -181,10 +164,7 @@ void
 RingBuffer::createReadPointer (CallID call_id)
 {
 
-    _debug ("---- createReadPointer ringbuffer_id %s, call_id %s\n", buffer_id.c_str(), call_id.c_str());
-
     _readpointer.insert (pair<CallID, int> (call_id, mEnd));
-    _debug ("---- createReadPointer ringbuffer_id %s, size %i\n", buffer_id.c_str(), (int) _readpointer.size());
 
 }
 
@@ -193,10 +173,7 @@ void
 RingBuffer::removeReadPointer (CallID call_id)
 {
 
-    _debug ("---- removeReadPointer ringbuffer_id %s, call_id %s\n", buffer_id.c_str(), call_id.c_str());
-
     _readpointer.erase (call_id);
-    _debug ("---- removeReadPointer ringbuffer_id %s, size %i\n", buffer_id.c_str(), (int) _readpointer.size());
 
 }
 
@@ -227,8 +204,6 @@ int
 RingBuffer::AvailForPut()
 {
     // Always keep 4 bytes safe (?)
-    // z_debug("RingBuffer::AvailForPut: putLen %i\n", putLen());
-    // _debug("RingBuffer::AvailForPut %s --------------------\n", buffer_id.c_str());
     return (mBufferSize-4) - putLen();
 }
 
@@ -241,9 +216,8 @@ RingBuffer::Put (void* buffer, int toCopy, unsigned short volume)
     int block;
     int copied;
     int pos;
-    // _debug("RingBuffer::Put buffer_id %s, call_id %s --------------------\n", buffer_id.c_str(), call_id.c_str());
+
     int len = putLen();
-    // _debug("    RingBuffer::Put bufferid %s, putlen %i\n", buffer_id.c_str(), len);
 
     if (toCopy > (mBufferSize-4) - len)
         toCopy = (mBufferSize-4) - len;
@@ -302,7 +276,6 @@ int
 RingBuffer::AvailForGet (CallID call_id)
 {
     // Used space
-    // _debug("RingBuffer::AvailForGet buffer_id %s, call_id %s --------------------\n", buffer_id.c_str(), call_id.c_str());
     return getLen (call_id);
 }
 
@@ -323,11 +296,8 @@ RingBuffer::Get (void *buffer, int toCopy, unsigned short volume, CallID call_id
 
     int copied;
 
-    // _debug("RingBuffer::Get buffer_id %s, call_id %s --------------------\n", buffer_id.c_str(), call_id.c_str());
     int len = getLen (call_id);
 
-    // _debug("    RingBuffer::Get bufferid %s, getlen %i\n", buffer_id.c_str(), len);
-
     if (toCopy > len)
         toCopy = len;
 
@@ -375,7 +345,7 @@ RingBuffer::Get (void *buffer, int toCopy, unsigned short volume, CallID call_id
 int
 RingBuffer::Discard (int toDiscard, CallID call_id)
 {
-    // _debug("RingBuffer::Discard buffer_id %s, call_id %s --------------------\n", buffer_id.c_str(), call_id.c_str());
+
     int len = getLen (call_id);
 
     int mStart = getReadPointer (call_id);
diff --git a/sflphone-common/src/audio/ringbuffer.h b/sflphone-common/src/audio/ringbuffer.h
index ac559e98c1..96871f825d 100644
--- a/sflphone-common/src/audio/ringbuffer.h
+++ b/sflphone-common/src/audio/ringbuffer.h
@@ -57,9 +57,10 @@ class RingBuffer {
 
     void flushAll();
 
-
     int getReadPointer(CallID call_id = default_id);
 
+    ReadPointer* getReadPointerList() { return &_readpointer; }
+
     int getSmallestReadPointer();
 
     void storeReadPointer(int pointer_value, CallID call_id = default_id);
diff --git a/sflphone-common/src/conference.cpp b/sflphone-common/src/conference.cpp
index 6266a30323..4149e29caf 100644
--- a/sflphone-common/src/conference.cpp
+++ b/sflphone-common/src/conference.cpp
@@ -71,7 +71,7 @@ void Conference::setState (ConferenceState state)
 void Conference::add (CallID participant_id)
 {
 
-    _debug ("---- Conference:: add participant %s\n", participant_id.c_str());
+    _debug ("Conference:: add participant %s\n", participant_id.c_str());
 
     _participants.insert (participant_id);
 
@@ -82,7 +82,7 @@ void Conference::add (CallID participant_id)
 void Conference::remove (CallID participant_id)
 {
 
-    _debug ("---- Conference::remove participant %s\n", participant_id.c_str());
+    _debug ("Conference::remove participant %s\n", participant_id.c_str());
 
     _participants.erase (participant_id);
 
@@ -100,7 +100,7 @@ void Conference::bindParticipant (CallID participant_id)
 
             if (participant_id != (*iter)) {
 
-                _debug ("---- Conference:: bind callid %s with %s in conference add\n", participant_id.c_str(), (*iter).c_str());
+	      // _debug ("---- Conference:: bind callid %s with %s in conference add\n", participant_id.c_str(), (*iter).c_str());
                 Manager::instance().getAudioDriver()->getMainBuffer()->bindCallID (participant_id, *iter);
             }
 
@@ -109,7 +109,7 @@ void Conference::bindParticipant (CallID participant_id)
 
     }
 
-    _debug ("---- Conference::bind callid %s with default_id in conference add\n", participant_id.c_str());
+    // _debug ("---- Conference::bind callid %s with default_id in conference add\n", participant_id.c_str());
 
     Manager::instance().getAudioDriver()->getMainBuffer()->bindCallID (participant_id);
 
diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index 464c079ba6..c2ab357519 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -1246,6 +1246,9 @@ ManagerImpl::joinParticipant (const CallID& call_id1, const CallID& call_id2)
 
     // switchCall(conf->getConfID());
 
+    if(_audiodriver)
+      _audiodriver->getMainBuffer()->stateInfo();
+
 }
 
 
@@ -1346,6 +1349,9 @@ ManagerImpl::removeParticipant (const CallID& call_id)
 
     }
 
+     if(_audiodriver)
+        _audiodriver->getMainBuffer()->stateInfo();
+
 }
 
 
@@ -1459,7 +1465,7 @@ ManagerImpl::addStream (const CallID& call_id)
         if (iter != _conferencemap.end()) {
             Conference* conf = iter->second;
 
-            _debug ("    addStream: bind call %s to conference %s\n", call_id.c_str(), conf->getConfID().c_str());
+            // _debug ("    addStream: bind call %s to conference %s\n", call_id.c_str(), conf->getConfID().c_str());
 
             conf->bindParticipant (call_id);
 
@@ -1481,7 +1487,7 @@ ManagerImpl::addStream (const CallID& call_id)
 
     } else {
 
-        _debug ("    addStream: bind call %s to main\n", call_id.c_str());
+        // _debug ("    addStream: bind call %s to main\n", call_id.c_str());
 
         // bind to main
         getAudioDriver()->getMainBuffer()->bindCallID (call_id);
@@ -1491,6 +1497,9 @@ ManagerImpl::addStream (const CallID& call_id)
         _audiodriver->flushMain();
 
     }
+
+    if(_audiodriver)
+        _audiodriver->getMainBuffer()->stateInfo();
 }
 
 void
@@ -1504,6 +1513,8 @@ ManagerImpl::removeStream (const CallID& call_id)
         removeParticipant (call_id);
     }
 
+    if(_audiodriver)
+        _audiodriver->getMainBuffer()->stateInfo();
 }
 
 //THREAD=Main
-- 
GitLab


From c7adf862e96c8dd30320b9318aed210c2ce83061 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Tue, 24 Nov 2009 18:03:45 -0500
Subject: [PATCH 032/188] [#2471] Test for INFO in message request when
 receiving DTMF

---
 sflphone-common/src/sip/sipvoiplink.cpp | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index d4d35395af..0255d7e35b 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -2868,20 +2868,20 @@ void call_on_tsx_changed (pjsip_inv_session *inv, pjsip_transaction *tsx, pjsip_
 
 	    if(r_data->msg_info.msg->line.req.method.id == PJSIP_OTHER_METHOD) {
 
-		_debug("%s\n", pjsip_rx_data_get_info(r_data));
-		// _debug("%s\n", r_data->msg_info.msg_buf);
+	        std::string method_name = "INFO";
+		std::string request =  r_data->msg_info.msg->line.req.method.name.ptr;
 
-	   	
-		pjsip_dlg_create_response (inv->dlg, r_data, PJSIP_SC_OK, NULL, &t_data);
+		if (request.find (method_name) != (size_t)-1) {
+
+		    _debug("%s\n", pjsip_rx_data_get_info(r_data));
+
+		    pjsip_dlg_create_response (inv->dlg, r_data, PJSIP_SC_OK, NULL, &t_data);
 		  
-		pjsip_dlg_send_response(inv->dlg, tsx, t_data);
-		
-		// pjsip_dlg_respond
+		    pjsip_dlg_send_response(inv->dlg, tsx, t_data);
+		}
 	    }
 	}
-
     }
-    
 }
 
 void regc_cb (struct pjsip_regc_cbparam *param)
-- 
GitLab


From e7523767c13ae924ddd56465339f8d11d0abc997 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Tue, 24 Nov 2009 18:32:23 -0500
Subject: [PATCH 033/188] [#2471] No _audiortp variable anymore in sdipvoiplink

---
 sflphone-common/src/sip/sipvoiplink.cpp | 11 -----------
 1 file changed, 11 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 6ed46e39b6..66dccc4b81 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -805,11 +805,6 @@ SIPVoIPLink::hangup (const CallID& id)
         return false;
     }
 
-    // Release RTP thread
-    if (Manager::instance().isCurrentCall (id)) {
-        _debug ("* SIP Info: Stopping AudioRTP for hangup\n");
-        _audiortp->stop();
-    }
 
     // User hangup current call. Notify peer
     status = pjsip_inv_end_session (call->getInvSession(), 404, NULL, &tdata);
@@ -858,12 +853,6 @@ SIPVoIPLink::peerHungup (const CallID& id)
         return false;
     }
 
-    // Release RTP thread
-    if (Manager::instance().isCurrentCall (id)) {
-        _debug ("* SIP Info: Stopping AudioRTP for hangup\n");
-        _audiortp->stop();
-    }
-
     // User hangup current call. Notify peer
     status = pjsip_inv_end_session (call->getInvSession(), 404, NULL, &tdata);
 
-- 
GitLab


From a6df99fe5c82a044272070f71ae394193f1def3f Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Wed, 25 Nov 2009 11:11:56 -0500
Subject: [PATCH 034/188] [#2475] Fix IP2IP profile appearing in client's
 configuration window

---
 sflphone-common/src/managerimpl.cpp | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index c2ab357519..a2a2f17f74 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -3515,7 +3515,7 @@ ManagerImpl::getAccountList()
         iter = _accountMap.begin ();
 
         while (iter != _accountMap.end()) {
-            if (iter->second != NULL) {
+            if (iter->second != NULL && iter->first != IP2IP_PROFILE) {
                 //_debug("PUSHING BACK %s\n", iter->first.c_str());
                 v.push_back (iter->first.data());
             }
@@ -3532,13 +3532,11 @@ ManagerImpl::getAccountList()
             // This account has not been loaded, so we ignore it
             if ( (iter=_accountMap.find (account_order[i])) != _accountMap.end()) {
                 // If the account is valid
-                if (iter->second != NULL) {
+                if (iter->second != NULL && iter->first != IP2IP_PROFILE) {
                     v.push_back (iter->first.data ());
                 }
             }
         }
-
-
     }
 
     return v;
-- 
GitLab


From 0f88414ba5a43f27aa1f76af66887301ea4add88 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Fri, 27 Nov 2009 17:13:18 -0500
Subject: [PATCH 035/188] [#2505] Associate call to account before calling
 setCallAudioLocal

---
 sflphone-common/src/sip/sipvoiplink.cpp | 46 +++++++++++++++----------
 1 file changed, 27 insertions(+), 19 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 0255d7e35b..2acd4ca5ff 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -3117,6 +3117,8 @@ mod_on_rx_request (pjsip_rx_data *rdata)
 
     /************************************************************************************************/
 
+    _debug("create a new call\n");
+
     // Generate a new call ID for the incoming call!
     id = Manager::instance().getNewCallID();
 
@@ -3128,12 +3130,15 @@ mod_on_rx_request (pjsip_rx_data *rdata)
         return false;
     }
 
+
+
     std::string addrToUse, addrSdp ="0.0.0.0";
     pjsip_tpselector *tp;
 
     account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (account_id));
 
     if (account != NULL) {
+
         // May use the published address as well
 		addrToUse = account->getLocalAddress ();
 		account->isStunEnabled () ? addrSdp = account->getPublishedAddress () : addrSdp = account->getLocalAddress ();		
@@ -3141,30 +3146,15 @@ mod_on_rx_request (pjsip_rx_data *rdata)
 		link->init_transport_selector (account->getAccountTransport (), &tp);
     }
     
-	if (addrToUse == "0.0.0.0") {
+    if (addrToUse == "0.0.0.0") {
         link->loadSIPLocalIP (&addrToUse);
     }
 
-	if (addrSdp == "0.0.0.0") {
-		addrSdp = addrToUse;
-	}
-
-    // Have to do some stuff with the SDP
-    // Set the codec map, IP, peer number and so on... for the SIPCall object
-    setCallAudioLocal (call, addrToUse);
-    // We retrieve the remote sdp offer in the rdata struct to begin the negociation
-    call->getLocalSDP()->set_ip_address (addrSdp);
-
-    get_remote_sdp_from_offer (rdata, &r_sdp);
-
-    status = call->getLocalSDP()->receiving_initial_offer (r_sdp);
-
-    if (status!=PJ_SUCCESS) {
-        delete call;
-        call=0;
-        return false;
+    if (addrSdp == "0.0.0.0") {
+        addrSdp = addrToUse;
     }
 
+
     call->setConnectionState (Call::Progressing);
 
     call->setPeerNumber (peerNumber);
@@ -3175,6 +3165,7 @@ mod_on_rx_request (pjsip_rx_data *rdata)
 
     // Notify UI there is an incoming call
 
+    _debug("Add call to account link\n");
     if (Manager::instance().incomingCall (call, account_id)) {
         // Add this call to the callAccountMap in ManagerImpl
         Manager::instance().getAccountLink (account_id)->addCall (call);
@@ -3186,6 +3177,23 @@ mod_on_rx_request (pjsip_rx_data *rdata)
         return false;
     }
 
+    // Have to do some stuff with the SDP
+    // Set the codec map, IP, peer number and so on... for the SIPCall object
+    setCallAudioLocal (call, addrToUse);
+
+    // We retrieve the remote sdp offer in the rdata struct to begin the negociation
+    call->getLocalSDP()->set_ip_address (addrSdp);
+
+    get_remote_sdp_from_offer (rdata, &r_sdp);
+
+    status = call->getLocalSDP()->receiving_initial_offer (r_sdp);
+
+    if (status!=PJ_SUCCESS) {
+        delete call;
+        call=0;
+        return false;
+    }
+
 
     /* Create the local dialog (UAS) */
     status = pjsip_dlg_create_uas (pjsip_ua_instance(), rdata, NULL, &dialog);
-- 
GitLab


From 23bf5ff7225c576e2a9c41671c6b5ec8b5fccc92 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 30 Nov 2009 11:33:43 -0500
Subject: [PATCH 036/188] [#2440] Added a case in mainwindow to avoid
 performing actions on tab entry

---
 sflphone-client-gnome/src/mainwindow.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sflphone-client-gnome/src/mainwindow.c b/sflphone-client-gnome/src/mainwindow.c
index d8607eb30f..12b7ecedc0 100644
--- a/sflphone-client-gnome/src/mainwindow.c
+++ b/sflphone-client-gnome/src/mainwindow.c
@@ -114,6 +114,7 @@ on_key_released (GtkWidget *widget, GdkEventKey *event, gpointer user_data UNUSE
 				event->keyval == 60             || // <
 				event->keyval == 62             || // >
 				event->keyval == 34             || // "
+		                event->keyval == 65289          || // tab
 				event->keyval == 65361          || // left arrow
 				event->keyval == 65363          || // right arrow
 				event->keyval >= 65470          || // F-keys
-- 
GitLab


From 3b726be287c213661902806f68f68f01e90b85d4 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 30 Nov 2009 12:45:50 -0500
Subject: [PATCH 037/188] [#2476] Set TLS label max size and set wraping
 enabled in tls configuration

---
 sflphone-client-gnome/src/config/tlsadvanceddialog.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/sflphone-client-gnome/src/config/tlsadvanceddialog.c b/sflphone-client-gnome/src/config/tlsadvanceddialog.c
index 2d59a0aaa0..493053f0ee 100644
--- a/sflphone-client-gnome/src/config/tlsadvanceddialog.c
+++ b/sflphone-client-gnome/src/config/tlsadvanceddialog.c
@@ -43,6 +43,7 @@ void show_advanced_tls_options(GHashTable * properties)
                 GTK_STOCK_SAVE,
                 GTK_RESPONSE_ACCEPT,
                 NULL));
+
     gtk_window_set_policy( GTK_WINDOW(tlsDialog), FALSE, FALSE, FALSE );
     gtk_dialog_set_has_separator(tlsDialog, TRUE);
     gtk_container_set_border_width (GTK_CONTAINER(tlsDialog), 0);
@@ -62,7 +63,9 @@ void show_advanced_tls_options(GHashTable * properties)
                                                     "port, different one from each other\n"));
     GtkWidget * label;                                         
     label = gtk_label_new(NULL);
- 	gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
+    gtk_widget_set_size_request(label, 600, 70); 
+    gtk_label_set_line_wrap (GTK_LABEL(label), TRUE);
+    gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
     gtk_label_set_markup(GTK_LABEL(label), description);
     gtk_table_attach(GTK_TABLE(table), label, 0, 3, 0, 1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
             
-- 
GitLab


From 3e0d1384b7e0f1ae5f798d3f259a385e4677a442 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 30 Nov 2009 14:51:25 -0500
Subject: [PATCH 038/188] [#2514] Comment g_print in Gnome clients

---
 sflphone-client-gnome/src/config/accountconfigdialog.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/sflphone-client-gnome/src/config/accountconfigdialog.c b/sflphone-client-gnome/src/config/accountconfigdialog.c
index e6e5df0af8..84e2150b94 100644
--- a/sflphone-client-gnome/src/config/accountconfigdialog.c
+++ b/sflphone-client-gnome/src/config/accountconfigdialog.c
@@ -134,7 +134,7 @@ static void update_credential_cb(GtkWidget *widget, gpointer data UNUSED)
     GtkTreeIter iter;
     gtk_tree_model_get_iter_from_string ((GtkTreeModel *) credentialStore, &iter, "0");
     gint column = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget), "column"));
-	g_print ("set password to %s\n", (gchar *) gtk_entry_get_text(GTK_ENTRY(widget)));
+    // g_print ("set password to %s\n", (gchar *) gtk_entry_get_text(GTK_ENTRY(widget)));
     gtk_list_store_set (GTK_LIST_STORE (credentialStore), &iter, column, (gchar *) gtk_entry_get_text(GTK_ENTRY(widget)), -1);
 }
 
@@ -389,7 +389,7 @@ static void cell_edited_cb(GtkCellRendererText *renderer, gchar *path_desc, gcha
      
 
     gint column = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (renderer), "column"));
-	g_print ("path desc in cell_edited_cb: %s\n", text);
+	DEBUG("path desc in cell_edited_cb: %s\n", text);
     
     if(g_strcasecmp(path_desc, "0") == 0) {
         if(g_strcasecmp(text, gtk_entry_get_text (GTK_ENTRY(entryUsername))) != 0) {
@@ -411,7 +411,7 @@ static void cell_edited_cb(GtkCellRendererText *renderer, gchar *path_desc, gcha
 static void editing_started_cb (GtkCellRenderer *cell, GtkCellEditable * editable, const gchar * path, gpointer data)
 {
     DEBUG("Editing started");
-	g_print ("path desc in editing_started_cb: %s\n", path);
+	DEBUG("path desc in editing_started_cb: %s\n", path);
 
 	// If we are dealing the first row
 	if (g_strcasecmp (path, "0") == 0)
-- 
GitLab


From ade951482dc935c99a0c7b320b9b6d6a64389453 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 30 Nov 2009 17:11:28 -0500
Subject: [PATCH 039/188] [#2486] Do not store IP address in config as this
 address may change

---
 sflphone-common/src/sip/sipaccount.cpp | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/sflphone-common/src/sip/sipaccount.cpp b/sflphone-common/src/sip/sipaccount.cpp
index fe36571c98..ac9428f0ca 100644
--- a/sflphone-common/src/sip/sipaccount.cpp
+++ b/sflphone-common/src/sip/sipaccount.cpp
@@ -335,7 +335,12 @@ void SIPAccount::loadConfig()
 
     setLocalPort (atoi (localPort.c_str()));
 
-    setLocalAddress (Manager::instance().getConfigString (_accountID, LOCAL_ADDRESS));
+    // Do not store or use IP address in config as this address may change
+    // Use loadSIPLocalIP for now instead in register/unregister (UDP,STUN,TLS), newOutGoingCall, mod_on_rx_request
+    // TODO: if we realy have to bind to a specific interface, store interfaces by name instead
+    setLocalAddress (std::string("0.0.0.0"));
+    // setLocalAddress (Manager::instance().getConfigString (_accountID, LOCAL_ADDRESS));
+
 
     // Published parameters
     setPublishedSameasLocal (Manager::instance().getConfigString (_accountID, PUBLISHED_SAMEAS_LOCAL) == TRUE_STR ? true : false);
-- 
GitLab


From c422357e32fc371d0e2af74d6efbf5a2365a59c8 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Tue, 1 Dec 2009 15:31:25 -0500
Subject: [PATCH 040/188] [#2467] Open address book without creating it if not
 existant ()

e_book_async_open(book, FALSE, eds_async_open_callback, had)
---
 .../src/contacts/addressbook/eds.c            | 44 +++++++++++--------
 .../src/contacts/searchbar.c                  |  2 +
 2 files changed, 27 insertions(+), 19 deletions(-)

diff --git a/sflphone-client-gnome/src/contacts/addressbook/eds.c b/sflphone-client-gnome/src/contacts/addressbook/eds.c
index 4303109b74..289e5aea74 100644
--- a/sflphone-client-gnome/src/contacts/addressbook/eds.c
+++ b/sflphone-client-gnome/src/contacts/addressbook/eds.c
@@ -275,23 +275,25 @@ pixbuf_from_contact(EContact *contact)
 static void
 eds_async_open_callback(EBook *book, EBookStatus status, gpointer closure)
 {
-  Open_Handler_And_Data *had = (Open_Handler_And_Data *) closure;
+    Open_Handler_And_Data *had = (Open_Handler_And_Data *) closure;
 
-  remaining_books_to_open--;
+    remaining_books_to_open--;
 
-  if (status == E_BOOK_ERROR_OK)
-    {
-      book_data_t *book_data = g_new(book_data_t, 1);
-      book_data->active = FALSE;
-      book_data->name = g_strdup(e_source_peek_name(e_book_get_source(book)));
-      book_data->uid = g_strdup(e_source_peek_uid(e_book_get_source(book)));
-      book_data->ebook = book;
-      books_data = g_slist_prepend(books_data, book_data);
-      had->handler();
+    DEBUG("eds_async_open_callback remaining book to open: %i", remaining_books_to_open);
+
+    if (status == E_BOOK_ERROR_OK) {
+
+        book_data_t *book_data = g_new(book_data_t, 1);
+	book_data->active = FALSE;
+	book_data->name = g_strdup(e_source_peek_name(e_book_get_source(book)));
+	book_data->uid = g_strdup(e_source_peek_uid(e_book_get_source(book)));
+	book_data->ebook = book;
+	books_data = g_slist_prepend(books_data, book_data);
+	had->handler();
     }
-  else
-    {
-      WARN("Got error %d when opening book", status);
+    else {
+
+        WARN("Got error %d when opening book", status);
     }
 }
 
@@ -302,14 +304,15 @@ void
 init(OpenAsyncHandler callback)
 {
   GSList *list, *l;
-  ESourceList *source_list;
+  ESourceList *source_list = NULL;
   remaining_books_to_open = 0;
   books_data = NULL;
 
-  source_list = e_source_list_new_for_gconf_default(
-      "/apps/evolution/addressbook/sources");
+  source_list = e_source_list_new_for_gconf_default("/apps/evolution/addressbook/sources");
+  
   if (source_list == NULL)
     {
+      DEBUG("Error could not initialize source list for addressbook");
       return;
     }
 
@@ -320,6 +323,7 @@ init(OpenAsyncHandler callback)
 
   for (l = list; l != NULL; l = l->next)
     {
+
       ESourceGroup *group = l->data;
       GSList *sources = NULL, *m;
       sources = e_source_group_peek_sources(group);
@@ -330,10 +334,12 @@ init(OpenAsyncHandler callback)
           if (book != NULL)
             {
               // Keep count of remaining books to open
-              remaining_books_to_open++;
 
+	      DEBUG("init addressbook %i", remaining_books_to_open);
+              remaining_books_to_open++;
+	      
               // Asynchronous open
-              e_book_async_open(book, TRUE, eds_async_open_callback, had);
+              e_book_async_open(book, FALSE, eds_async_open_callback, had);
             }
         }
     }
diff --git a/sflphone-client-gnome/src/contacts/searchbar.c b/sflphone-client-gnome/src/contacts/searchbar.c
index 2044b4badd..d84c6efcc4 100644
--- a/sflphone-client-gnome/src/contacts/searchbar.c
+++ b/sflphone-client-gnome/src/contacts/searchbar.c
@@ -36,6 +36,8 @@ GdkPixbuf *missed_pixbuf = NULL;
 
 void searchbar_entry_changed (GtkEntry* entry, gchar* arg1 UNUSED, gpointer data UNUSED)
 {
+    DEBUG("searchbar_entry_changed");
+
     if (active_calltree == contacts) {
         addressbook_search (entry);
     }
-- 
GitLab


From 4dd479982d0fe583a3266205ca6423c0e063a319 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Tue, 1 Dec 2009 15:34:10 -0500
Subject: [PATCH 041/188] [#2467] Search for string longer than 3 fasten
 addressbook queries

---
 .../src/contacts/addressbook.c                | 39 +++++++++++--------
 1 file changed, 22 insertions(+), 17 deletions(-)

diff --git a/sflphone-client-gnome/src/contacts/addressbook.c b/sflphone-client-gnome/src/contacts/addressbook.c
index 60557d04f6..d9b987c634 100644
--- a/sflphone-client-gnome/src/contacts/addressbook.c
+++ b/sflphone-client-gnome/src/contacts/addressbook.c
@@ -32,17 +32,21 @@ void
 addressbook_search(GtkEntry* entry)
 {
 
-  AddressBook_Config *addressbook_config;
+    gchar* query = gtk_entry_get_text(GTK_ENTRY (entry));
+    if (strlen(query) >= 3) {
 
-  // Activate waiting layer
-  activateWaitingLayer();
+        AddressBook_Config *addressbook_config;
+	
+	// Activate waiting layer
+	activateWaitingLayer();
 
-  // Load the address book parameters
-  addressbook_config_load_parameters(&addressbook_config);
+	// Load the address book parameters
+	addressbook_config_load_parameters(&addressbook_config);
+      
+	// Start the asynchronous search as soon as we have an entry */
+	search_async(gtk_entry_get_text(GTK_ENTRY (entry)), addressbook_config->max_results, &handler_async_search, addressbook_config);
 
-  // Start the asynchronous search as soon as we have an entry */
-  search_async(gtk_entry_get_text(GTK_ENTRY (entry)), addressbook_config->max_results, &handler_async_search,
-      addressbook_config);
+    }
 }
 
 /**
@@ -84,6 +88,7 @@ addressbook_is_active()
 static void
 addressbook_config_books()
 {
+
   gchar **config_book_uid;
   book_data_t *book_data;
   gchar **list;
@@ -91,21 +96,21 @@ addressbook_config_books()
   // Retrieve list of books
   list = (gchar **) dbus_get_addressbook_list();
 
-  if (list)
-    {
-      for (config_book_uid = list; *config_book_uid; config_book_uid++)
-        {
+  if (list) {
+
+      for (config_book_uid = list; *config_book_uid; config_book_uid++) {
+
           // Get corresponding book data
           book_data = books_get_book_data_by_uid(*config_book_uid);
 
           // If book_data exists
-          if (book_data != NULL)
-            {
+          if (book_data != NULL) {
+
               book_data->active = TRUE;
-            }
-        }
+	  }
+      }
       g_strfreev(list);
-    }
+  }
 
   // Update buttons
   update_actions ();
-- 
GitLab


From 854fd19b0e6f154bb7d53605f0a438217d42bff4 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Tue, 1 Dec 2009 16:29:19 -0500
Subject: [PATCH 042/188] [#2474] Basic call info display function

---
 sflphone-client-gnome/src/contacts/calltree.c | 46 +++++++++++++++++++
 sflphone-client-gnome/src/contacts/calltree.h | 14 +++++-
 2 files changed, 58 insertions(+), 2 deletions(-)

diff --git a/sflphone-client-gnome/src/contacts/calltree.c b/sflphone-client-gnome/src/contacts/calltree.c
index 89a48d47d0..06fe04a158 100644
--- a/sflphone-client-gnome/src/contacts/calltree.c
+++ b/sflphone-client-gnome/src/contacts/calltree.c
@@ -253,6 +253,7 @@ row_activated(GtkTreeView       *tree_view UNUSED,
 
 }
 
+
 /* Catch cursor-activated signal. That is, when the entry is single clicked */
 	void  
 row_single_click(GtkTreeView *tree_view UNUSED, void * data UNUSED)
@@ -336,6 +337,51 @@ button_pressed(GtkWidget* widget, GdkEventButton *event, gpointer user_data UNUS
 	return FALSE;
 }
 
+
+gchar* 
+calltree_display_call_info(callable_obj_t * c, CallDisplayType display_type)
+{
+
+    gchar * description;
+
+    if(c->_state_code == 0) {
+
+        if(g_strcmp0("", c->_peer_name) == 0) {
+	    description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>",
+						  c->_peer_name,
+						  c->_peer_number);
+	}
+	else {
+	    description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>",
+						  c->_peer_name,
+						  c->_peer_number);
+	}
+
+    }
+    else {
+        if(g_strcmp0("", c->_peer_name) == 0) {
+	    description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>%s (%d)</i>",
+						  c->_peer_number,
+						  c->_peer_name,
+						  c->_state_code_description,
+						  c->_state_code);
+	}
+	else {
+	    description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>%s (%d)</i>",
+						  c->_peer_name,
+						  c->_peer_number,
+						  c->_state_code_description,
+						  c->_state_code);
+	}
+    }
+
+
+    return description;
+
+}
+
+
+
 /**
  * Reset call tree
  */
diff --git a/sflphone-client-gnome/src/contacts/calltree.h b/sflphone-client-gnome/src/contacts/calltree.h
index a01565bc4b..ea5337948c 100644
--- a/sflphone-client-gnome/src/contacts/calltree.h
+++ b/sflphone-client-gnome/src/contacts/calltree.h
@@ -34,12 +34,22 @@
   * @brief The GtkTreeView that list calls in the main window.
   */
 
-enum
-{
+enum {
     A_CALL,
     A_CONFERENCE
 };
 
+
+/**
+ * Tags used to identify display type in calltree
+ */
+typedef enum {
+    DISPLAY_TYPE_CALL_TRANSFER,
+    DISPLAY_TYPE_CALL,
+    DISPLAY_TYPE_SAS,
+    DISPLAY_TYPE_STATE_CODE
+} CallDisplayType;
+
 /**
  * Create a new widget calltree
  * @return GtkWidget* A new widget
-- 
GitLab


From 0c0ecfd16fada6e9ee70dace2b38aa2651b87eaa Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Tue, 1 Dec 2009 17:08:42 -0500
Subject: [PATCH 043/188] [#2474] Use calltree_display_call_info for Normal
 calls and Transfers

---
 sflphone-client-gnome/src/contacts/calltree.c | 87 ++++++++++++++-----
 sflphone-client-gnome/src/contacts/calltree.h |  2 +-
 2 files changed, 68 insertions(+), 21 deletions(-)

diff --git a/sflphone-client-gnome/src/contacts/calltree.c b/sflphone-client-gnome/src/contacts/calltree.c
index 06fe04a158..54c9bc3dfe 100644
--- a/sflphone-client-gnome/src/contacts/calltree.c
+++ b/sflphone-client-gnome/src/contacts/calltree.c
@@ -339,45 +339,83 @@ button_pressed(GtkWidget* widget, GdkEventButton *event, gpointer user_data UNUS
 
 
 gchar* 
-calltree_display_call_info(callable_obj_t * c, CallDisplayType display_type)
+calltree_display_call_info(callable_obj_t * c, CallDisplayType display_type, gchar** display_info)
 {
 
     gchar * description;
+    gchar * tmp_info;
 
-    if(c->_state_code == 0) {
+    DEBUG("----------------- calltree_display_call_info -----------------\n");
+
+    switch(display_type) {
+
+    case DISPLAY_TYPE_CALL: 
+
+        DEBUG("display a normal call");
+        if(c->_state_code == 0) {
+
+	    if(g_strcmp0("", c->_peer_name) == 0) {
+	        description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>",
+						      c->_peer_name,
+						      c->_peer_number);
+	    }
+	    else {
+	        description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>",
+						      c->_peer_name,
+						      c->_peer_number);
+	    }
 
-        if(g_strcmp0("", c->_peer_name) == 0) {
-	    description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>",
-						  c->_peer_name,
-						  c->_peer_number);
 	}
 	else {
-	    description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>",
-						  c->_peer_name,
-						  c->_peer_number);
+	    if(g_strcmp0("", c->_peer_name) == 0) {
+	        description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>%s (%d)</i>",
+						      c->_peer_number,
+						      c->_peer_name,
+						      c->_state_code_description,
+						      c->_state_code);
+	    }
+	    else {
+	        description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>%s (%d)</i>",
+						      c->_peer_name,
+						      c->_peer_number,
+						      c->_state_code_description,
+						      c->_state_code);
+	    }
 	}
 
-    }
-    else {
-        if(g_strcmp0("", c->_peer_name) == 0) {
-	    description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>%s (%d)</i>",
+	break;
+
+
+    case DISPLAY_TYPE_CALL_TRANSFER: 
+
+        DEBUG("display a call transfer")
+
+        if(g_strcmp0("",c->_peer_name) == 0){
+	    description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>Transfert to:%s</i> ",
 						  c->_peer_number,
 						  c->_peer_name,
-						  c->_state_code_description,
-						  c->_state_code);
+						  c->_trsft_to);
 	}
 	else {
-	    description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>%s (%d)</i>",
+	    description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>Transfert to:%s</i> ",
 						  c->_peer_name,
 						  c->_peer_number,
-						  c->_state_code_description,
-						  c->_state_code);
+						  c->_trsft_to);
 	}
-    }
 
+	DEBUG("Transfer string: %s", description);
+	break;
 
-    return description;
 
+    default : 
+        DEBUG("Not an allowable type of display");
+	break;
+
+    }
+
+    // return description;
+    tmp_info = g_strdup(description);
+    *display_info = tmp_info;
 }
 
 
@@ -629,6 +667,10 @@ calltree_update_call (calltab_t* tab, callable_obj_t * c, GtkTreeIter *parent)
 
 			if(c->_state == CALL_STATE_TRANSFERT)
 			{
+
+			    calltree_display_call_info(c, DISPLAY_TYPE_CALL_TRANSFER, &description);
+			    DEBUG("second try: %s", description);
+			    /*
 			      if(g_strcmp0("",c->_peer_name) == 0){
 				description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>Transfert to:%s</i> ",
 						c->_peer_number,
@@ -641,6 +683,7 @@ calltree_update_call (calltab_t* tab, callable_obj_t * c, GtkTreeIter *parent)
 						c->_peer_number,
 						c->_trsft_to);
 			      }
+			    */
 			}
 			else
 			{
@@ -800,6 +843,7 @@ void calltree_add_call (calltab_t* tab, callable_obj_t * c, GtkTreeIter *parent)
 	gchar * date="";
 	gchar *duration="";
 
+	/*
 	if(c->_state_code == 0) {
 
 	  if(g_strcmp0("", c->_peer_name) == 0) {
@@ -830,6 +874,9 @@ void calltree_add_call (calltab_t* tab, callable_obj_t * c, GtkTreeIter *parent)
 				c->_state_code);
 	  }
 	}
+	*/
+
+	calltree_display_call_info(c, DISPLAY_TYPE_CALL, &description);
 
 	gtk_tree_store_prepend (tab->store, &iter, parent);
 
diff --git a/sflphone-client-gnome/src/contacts/calltree.h b/sflphone-client-gnome/src/contacts/calltree.h
index ea5337948c..90af092040 100644
--- a/sflphone-client-gnome/src/contacts/calltree.h
+++ b/sflphone-client-gnome/src/contacts/calltree.h
@@ -44,8 +44,8 @@ enum {
  * Tags used to identify display type in calltree
  */
 typedef enum {
-    DISPLAY_TYPE_CALL_TRANSFER,
     DISPLAY_TYPE_CALL,
+    DISPLAY_TYPE_CALL_TRANSFER,
     DISPLAY_TYPE_SAS,
     DISPLAY_TYPE_STATE_CODE
 } CallDisplayType;
-- 
GitLab


From b651713c96f51d8a050da1bbc16eb0e5e6d5528f Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Wed, 2 Dec 2009 10:02:33 -0500
Subject: [PATCH 044/188] [#2474] Strip the caller hostname when displaying
 phone numbers

---
 sflphone-client-gnome/src/contacts/calltree.c | 500 +++++++++---------
 sflphone-client-gnome/src/contacts/calltree.h |   3 +-
 2 files changed, 248 insertions(+), 255 deletions(-)

diff --git a/sflphone-client-gnome/src/contacts/calltree.c b/sflphone-client-gnome/src/contacts/calltree.c
index 54c9bc3dfe..9fc579db20 100644
--- a/sflphone-client-gnome/src/contacts/calltree.c
+++ b/sflphone-client-gnome/src/contacts/calltree.c
@@ -339,37 +339,61 @@ button_pressed(GtkWidget* widget, GdkEventButton *event, gpointer user_data UNUS
 
 
 gchar* 
-calltree_display_call_info(callable_obj_t * c, CallDisplayType display_type, gchar** display_info)
+calltree_display_call_info(callable_obj_t * c, CallDisplayType display_type, gchar *audio_codec, gchar** display_info)
 {
 
     gchar * description;
     gchar * tmp_info;
 
-    DEBUG("----------------- calltree_display_call_info -----------------\n");
+    gchar * peer_number = c->_peer_number;
+    gchar * hostname = NULL;
+    gchar * display_number = "";  
 
+    DEBUG("Display call info");
+
+    // Get the hostname for this call (NULL if not existent)
+    hostname = g_strrstr(peer_number, "@");
+
+    // Test if we are dialing a new number
+    if(g_strcmp0("", c->_peer_number) != 0) {
+
+        // Strip the hostname if existent
+        if(hostname) {
+	    display_number = g_strndup(peer_number, hostname - peer_number);
+	}
+	else {
+	    display_number = peer_number;
+	}
+    }
+    else {
+
+        display_number = peer_number;
+    }
+
+    // Different display depending on type
     switch(display_type) {
 
-    case DISPLAY_TYPE_CALL: 
+    case DISPLAY_TYPE_CALL:
 
         DEBUG("display a normal call");
         if(c->_state_code == 0) {
 
 	    if(g_strcmp0("", c->_peer_name) == 0) {
-	        description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>",
-						      c->_peer_name,
-						      c->_peer_number);
+	        description = g_markup_printf_escaped("<b>%s</b><i>%s</i>",
+						      display_number, 
+						      c->_peer_name);
 	    }
 	    else {
 	        description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>",
 						      c->_peer_name,
-						      c->_peer_number);
+						      display_number);
 	    }
 
 	}
 	else {
 	    if(g_strcmp0("", c->_peer_name) == 0) {
-	        description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>%s (%d)</i>",
-						      c->_peer_number,
+	        description = g_markup_printf_escaped("<b>%s</b><i>%s</i>\n<i>%s (%d)</i>",
+						      display_number,
 						      c->_peer_name,
 						      c->_state_code_description,
 						      c->_state_code);
@@ -377,7 +401,7 @@ calltree_display_call_info(callable_obj_t * c, CallDisplayType display_type, gch
 	    else {
 	        description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>%s (%d)</i>",
 						      c->_peer_name,
-						      c->_peer_number,
+						      display_number,
 						      c->_state_code_description,
 						      c->_state_code);
 	    }
@@ -391,21 +415,94 @@ calltree_display_call_info(callable_obj_t * c, CallDisplayType display_type, gch
         DEBUG("display a call transfer")
 
         if(g_strcmp0("",c->_peer_name) == 0){
-	    description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>Transfert to:%s</i> ",
-						  c->_peer_number,
+	    description = g_markup_printf_escaped("<b>%s</b><i>%s</i>\n<i>Transfert to:%s</i> ",
+						  display_number,
 						  c->_peer_name,
 						  c->_trsft_to);
 	}
 	else {
 	    description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>Transfert to:%s</i> ",
 						  c->_peer_name,
-						  c->_peer_number,
+						  display_number,
 						  c->_trsft_to);
 	}
+	
+	break;
+
+
+    case DISPLAY_TYPE_STATE_CODE : 
+
+        DEBUG("display a state code");
+
+        if(g_strcmp0("",c->_peer_name) == 0){
+
+	    if (c->_state_code) {
 
-	DEBUG("Transfer string: %s", description);
+	        description = g_markup_printf_escaped("<b>%s</b><i>%s</i>\n<i>%s (%d)</i>  <i>%s</i>",
+						      display_number,
+						      c->_peer_name,
+						      c->_state_code_description,
+						      c->_state_code,
+						      audio_codec);
+	    } else {
+	        description = g_markup_printf_escaped("<b>%s</b><i>%s</i>\n<i>%s</i>",
+						      display_number,
+						      c->_peer_name,
+						      audio_codec);
+	    }
+	}
+	else {
+	    if (c->_state_code) {
+	        description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>%s (%d)</i>  <i>%s</i>",
+						      c->_peer_name,
+						      display_number,
+						      c->_state_code_description,
+						      c->_state_code,
+						      audio_codec);
+	    } else {
+	        description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>%s</i>",
+						      c->_peer_name,
+						      display_number,
+						      audio_codec);
+	    }
+	}
 	break;
 
+    case DISPLAY_TYPE_SAS:
+
+        DEBUG("display a call with sas");
+
+        if(g_strcmp0("",c->_peer_name) == 0){
+	    description = g_markup_printf_escaped("<b>%s</b><i>%s</i>\n<i>Confirm SAS <b>%s</b> ?</i> ",
+						  display_number,
+						  c->_peer_name,
+						  c->_sas);
+	}
+	else {
+
+	  description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>Confirm SAS <b>%s</b> ?</i> ",
+						c->_peer_name,
+						display_number,
+						c->_sas);
+	}
+
+    case DISPLAY_TYPE_HISTORY :
+
+        DEBUG("display history entry");
+
+        if(g_strcmp0("", c->_peer_name) == 0) {
+
+	    description = g_markup_printf_escaped("<b>%s</b><i>%s</i>",
+			display_number,
+			c->_peer_name);
+	}
+	else {
+
+	  description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>",
+			c->_peer_name,
+			display_number);
+	}
+	break;
 
     default : 
         DEBUG("Not an allowable type of display");
@@ -605,217 +702,156 @@ calltree_remove_call (calltab_t* tab, callable_obj_t * c, GtkTreeIter *parent)
 	void
 calltree_update_call (calltab_t* tab, callable_obj_t * c, GtkTreeIter *parent)
 {
-	GdkPixbuf *pixbuf=NULL;
-	GdkPixbuf *pixbuf_security=NULL;
-	GtkTreeIter iter;
-	GValue val;
-	callable_obj_t * iterCall;
-	GtkTreeStore* store = tab->store;
-
-	gchar* srtp_enabled = "";
-	gboolean display_sas = TRUE;
-	account_t* account_details=NULL;
-	gchar *audio_codec = "";
-
-
-	int nbChild = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), parent);
-	int i;
+    GdkPixbuf *pixbuf=NULL;
+    GdkPixbuf *pixbuf_security=NULL;
+    GtkTreeIter iter;
+    GValue val;
+    callable_obj_t * iterCall;
+    GtkTreeStore* store = tab->store;
 
-	if(c != NULL) {
-		account_details = account_list_get_by_id(c->_accountID);
-		if(account_details != NULL) {
-			srtp_enabled = g_hash_table_lookup(account_details->properties, ACCOUNT_SRTP_ENABLED);
-			if(g_strcasecmp(g_hash_table_lookup(account_details->properties, ACCOUNT_ZRTP_DISPLAY_SAS),"false") == 0) 
-			{ display_sas = FALSE; }
-		} else {
-			GHashTable * properties = NULL;
-			sflphone_get_ip2ip_properties (&properties);
-			if(properties != NULL) {
-				if(g_strcasecmp(g_hash_table_lookup(properties, ACCOUNT_ZRTP_DISPLAY_SAS),"false") == 0) 
-				{ display_sas = FALSE; }
-			}
-		}
-	} 
+    gchar* srtp_enabled = "";
+    gboolean display_sas = TRUE;
+    account_t* account_details=NULL;
+    gchar *audio_codec = "";
+
+
+    int nbChild = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), parent);
+    int i;
+
+    if(c != NULL) {
+        account_details = account_list_get_by_id(c->_accountID);
+	if(account_details != NULL) {
+	    srtp_enabled = g_hash_table_lookup(account_details->properties, ACCOUNT_SRTP_ENABLED);
+	    if(g_strcasecmp(g_hash_table_lookup(account_details->properties, ACCOUNT_ZRTP_DISPLAY_SAS),"false") == 0) 
+	      { display_sas = FALSE; }
+	} else {
+	    GHashTable * properties = NULL;
+	    sflphone_get_ip2ip_properties (&properties);
+	    if(properties != NULL) {
+	        if(g_strcasecmp(g_hash_table_lookup(properties, ACCOUNT_ZRTP_DISPLAY_SAS),"false") == 0) 
+		  { display_sas = FALSE; }
+	    }
+	}
+    } 
 
-	for( i = 0; i < nbChild; i++)
-	{
+    for( i = 0; i < nbChild; i++) {
 
-		if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, parent, i))
-		{
+      if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, parent, i)) {
 
-			if(gtk_tree_model_iter_has_child(GTK_TREE_MODEL(store), &iter))
-			{
+	if(gtk_tree_model_iter_has_child(GTK_TREE_MODEL(store), &iter)) {
 				calltree_update_call (tab, c, &iter);
-			}
+	}
 
-			val.g_type = 0;
-			gtk_tree_model_get_value (GTK_TREE_MODEL(store), &iter, COLUMN_ACCOUNT_PTR, &val);
+	val.g_type = 0;
+	gtk_tree_model_get_value (GTK_TREE_MODEL(store), &iter, COLUMN_ACCOUNT_PTR, &val);
 
+	
+	iterCall = (callable_obj_t*) g_value_get_pointer(&val);
+	g_value_unset(&val);
+	
+	if(iterCall != c) {
+	    continue;
+	}
 
-			iterCall = (callable_obj_t*) g_value_get_pointer(&val);
-			g_value_unset(&val);
+	/* Update text */
+	gchar * description;
+	gchar * date="";
+	gchar * duration="";
+	audio_codec = call_get_audio_codec (c);
+	
+	if(c->_state == CALL_STATE_TRANSFERT) {
 
-			if(iterCall != c) {
-				continue;
-			}
+	  calltree_display_call_info(c, DISPLAY_TYPE_CALL_TRANSFER, NULL, &description);
+			    
+	}
+	else {
 
-			/* Update text */
-			gchar * description;
-			gchar * date="";
-			gchar * duration="";
-			audio_codec = call_get_audio_codec (c);
+	    if((c->_sas != NULL) && (display_sas == TRUE) && (c->_srtp_state == SRTP_STATE_SAS_UNCONFIRMED) && (c->_zrtp_confirmed == FALSE)) {
 
-			if(c->_state == CALL_STATE_TRANSFERT)
-			{
+	        calltree_display_call_info(c, DISPLAY_TYPE_SAS, NULL, &description);
+				  
+	    } else {
 
-			    calltree_display_call_info(c, DISPLAY_TYPE_CALL_TRANSFER, &description);
-			    DEBUG("second try: %s", description);
-			    /*
-			      if(g_strcmp0("",c->_peer_name) == 0){
-				description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>Transfert to:%s</i> ",
-						c->_peer_number,
-						c->_peer_name,
-						c->_trsft_to);
-			      }
-			      else {
-				description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>Transfert to:%s</i> ",
-						c->_peer_name,
-						c->_peer_number,
-						c->_trsft_to);
-			      }
-			    */
-			}
-			else
-			{
-				// c->_zrtp_confirmed == FALSE : Hack explained in callable_obj.h
-				if((c->_sas != NULL) && (display_sas == TRUE) && (c->_srtp_state == SRTP_STATE_SAS_UNCONFIRMED) && (c->_zrtp_confirmed == FALSE)) {
-
-				  if(g_strcmp0("",c->_peer_name) == 0){
-					description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>Confirm SAS <b>%s</b> ?</i> ",
-							c->_peer_number,
-							c->_peer_name,
-							c->_sas);
-				    }
-				    else {
-
-				         description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>Confirm SAS <b>%s</b> ?</i> ",
-							c->_peer_name,
-							c->_peer_number,
-							c->_sas);
-				    }
-				} else {
-					DEBUG("Updating state code %d %s", c->_state_code, c->_state_code_description);
-					if(g_strcmp0("",c->_peer_name) == 0){
-					  if (c->_state_code) {
-					    description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>%s (%d)</i>  <i>%s</i>",
-								c->_peer_number,
-								c->_peer_name,
-								c->_state_code_description,
-								c->_state_code,
-								audio_codec);
-					  } else {
-					    description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>%s</i>",
-								c->_peer_number,
-								c->_peer_name,
-								audio_codec);
-					  }
-					}
-					else {
-					  if (c->_state_code) {
-					    description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>%s (%d)</i>  <i>%s</i>",
-								c->_peer_name,
-								c->_peer_number,
-								c->_state_code_description,
-								c->_state_code,
-								audio_codec);
-					  } else {
-					    description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>%s</i>",
-								c->_peer_name,
-								c->_peer_number,
-								audio_codec);
-					  }
-					}
-				}
-			}
+	        calltree_display_call_info(c, DISPLAY_TYPE_STATE_CODE, audio_codec, &description);
+				    
+	    }
+	}
 
 			/* Update icons */
-			if( tab == current_calls )
-			{
-				DEBUG("Receiving in state %d", c->_state);
-				switch(c->_state)
-				{
-					case CALL_STATE_HOLD:
-						pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/hold.svg", NULL);
-						break;
-					case CALL_STATE_INCOMING:
-					case CALL_STATE_RINGING:
-						pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/ring.svg", NULL);
-						break;
-					case CALL_STATE_CURRENT:
-						pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/current.svg", NULL);
-						break;
-					case CALL_STATE_DIALING:
-						pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/dial.svg", NULL);
-						break;
-					case CALL_STATE_FAILURE:
-						pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/fail.svg", NULL);
-						break;
-					case CALL_STATE_BUSY:
-						pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/busy.svg", NULL);
-						break;
-					case CALL_STATE_TRANSFERT:
-						pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/transfert.svg", NULL);
-						break;
-					case CALL_STATE_RECORD:
-						pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/icon_rec.svg", NULL);
-						break;
-					default:
-						WARN("Update calltree - Should not happen!");
-				}        
-
-				switch(c->_srtp_state)
-				{
-					case SRTP_STATE_SAS_UNCONFIRMED:
-						DEBUG("Secure is ON");
-						pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_unconfirmed.svg", NULL);
-						if(c->_sas != NULL) { DEBUG("SAS is ready with value %s", c->_sas); }
-						break;
-					case SRTP_STATE_SAS_CONFIRMED:
-						DEBUG("SAS is confirmed");
-						pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_confirmed.svg", NULL);   
-						break;
-					case SRTP_STATE_SAS_SIGNED:   
-						DEBUG("Secure is ON with SAS signed and verified");
-						pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_certified.svg", NULL);
-						break;
-					case SRTP_STATE_UNLOCKED:  
-						DEBUG("Secure is off calltree %d", c->_state);
-						if(g_strcasecmp(srtp_enabled,"true") == 0) {
-							pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_off.svg", NULL); 
-						}
-						break;
-					default:
-						WARN("Update calltree srtp state #%d- Should not happen!", c->_srtp_state); 
-						if(g_strcasecmp(srtp_enabled,"true") == 0) {
-							pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_off.svg", NULL);    
-						}
-
-				}
-				gtk_tree_store_set(store, &iter,
-						0, pixbuf, // Icon
-						1, description, // Description
-						2, pixbuf_security,
-						3, c,
-						-1);
-
-				if (pixbuf != NULL)
-					g_object_unref(G_OBJECT(pixbuf));
-
-			}
+	if( tab == current_calls ) {
+	    DEBUG("Receiving in state %d", c->_state);
+	    switch(c->_state) {
+	    case CALL_STATE_HOLD:
+	        pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/hold.svg", NULL);
+		break;
+	    case CALL_STATE_INCOMING:
+	    case CALL_STATE_RINGING:
+	        pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/ring.svg", NULL);
+		break;
+	    case CALL_STATE_CURRENT:
+	         pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/current.svg", NULL);
+		 break;
+	    case CALL_STATE_DIALING:
+	        pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/dial.svg", NULL);
+		break;
+	    case CALL_STATE_FAILURE:
+	        pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/fail.svg", NULL);
+		break;
+	    case CALL_STATE_BUSY:
+	        pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/busy.svg", NULL);
+		break;
+	    case CALL_STATE_TRANSFERT:
+	        pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/transfert.svg", NULL);
+		break;
+	    case CALL_STATE_RECORD:
+	        pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/icon_rec.svg", NULL);
+		break;
+	    default:
+	      WARN("Update calltree - Should not happen!");
+	    }        
+
+	    switch(c->_srtp_state) {
+	    case SRTP_STATE_SAS_UNCONFIRMED:
+	        DEBUG("Secure is ON");
+		pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_unconfirmed.svg", NULL);
+		if(c->_sas != NULL) { DEBUG("SAS is ready with value %s", c->_sas); }
+		break;
+	    case SRTP_STATE_SAS_CONFIRMED:
+	        DEBUG("SAS is confirmed");
+		pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_confirmed.svg", NULL);   
+		break;
+	    case SRTP_STATE_SAS_SIGNED:   
+	        DEBUG("Secure is ON with SAS signed and verified");
+		pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_certified.svg", NULL);
+		break;
+	    case SRTP_STATE_UNLOCKED:  
+	        DEBUG("Secure is off calltree %d", c->_state);
+		if(g_strcasecmp(srtp_enabled,"true") == 0) {
+		  pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_off.svg", NULL); 
+		}
+		break;
+	    default:
+	        WARN("Update calltree srtp state #%d- Should not happen!", c->_srtp_state); 
+		if(g_strcasecmp(srtp_enabled,"true") == 0) {
+		  pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_off.svg", NULL);    
 		}
 
+	    }
+	    gtk_tree_store_set(store, &iter,
+			       0, pixbuf, // Icon
+			       1, description, // Description
+			       2, pixbuf_security,
+			       3, c,
+			       -1);
+
+	    if (pixbuf != NULL)
+	      g_object_unref(G_OBJECT(pixbuf));
+	    
 	}
-	update_actions();
+      }
+      
+    }
+    update_actions();
 }
 
 
@@ -843,40 +879,7 @@ void calltree_add_call (calltab_t* tab, callable_obj_t * c, GtkTreeIter *parent)
 	gchar * date="";
 	gchar *duration="";
 
-	/*
-	if(c->_state_code == 0) {
-
-	  if(g_strcmp0("", c->_peer_name) == 0) {
-		description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>",
-				c->_peer_name,
-				c->_peer_number);
-	  }
-	  else {
-	        description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>",
-				c->_peer_name,
-				c->_peer_number);
-	  }
-
-	}
-	else {
-	  if(g_strcmp0("", c->_peer_name) == 0) {
-		description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>%s (%d)</i>",
-				c->_peer_number,
-				c->_peer_name,
-				c->_state_code_description,
-				c->_state_code);
-	  }
-	  else {
-	        description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>\n<i>%s (%d)</i>",
-				c->_peer_name,
-				c->_peer_number,
-				c->_state_code_description,
-				c->_state_code);
-	  }
-	}
-	*/
-
-	calltree_display_call_info(c, DISPLAY_TYPE_CALL, &description);
+	calltree_display_call_info(c, DISPLAY_TYPE_CALL, NULL, &description);
 
 	gtk_tree_store_prepend (tab->store, &iter, parent);
 
@@ -983,18 +986,7 @@ void calltree_add_history_entry (callable_obj_t * c)
 	// New call in the list
 	gchar * description, *date="", *duration="";
 
-	if(g_strcmp0("", c->_peer_name) == 0) {
-
-	    description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>",
-			c->_peer_number,
-			c->_peer_name);
-	}
-	else {
-
-	  description = g_markup_printf_escaped("<b>%s</b>   <i>%s</i>",
-			c->_peer_name,
-			c->_peer_number);
-	}
+	calltree_display_call_info(c, DISPLAY_TYPE_HISTORY, NULL, &description);
 
 	gtk_tree_store_prepend (history->store, &iter, NULL);
 
diff --git a/sflphone-client-gnome/src/contacts/calltree.h b/sflphone-client-gnome/src/contacts/calltree.h
index 90af092040..fd6c33f455 100644
--- a/sflphone-client-gnome/src/contacts/calltree.h
+++ b/sflphone-client-gnome/src/contacts/calltree.h
@@ -47,7 +47,8 @@ typedef enum {
     DISPLAY_TYPE_CALL,
     DISPLAY_TYPE_CALL_TRANSFER,
     DISPLAY_TYPE_SAS,
-    DISPLAY_TYPE_STATE_CODE
+    DISPLAY_TYPE_STATE_CODE,
+    DISPLAY_TYPE_HISTORY
 } CallDisplayType;
 
 /**
-- 
GitLab


From 4db3a8e956a7eae17bb91e248f47e385647a9dbd Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Wed, 2 Dec 2009 10:58:48 -0500
Subject: [PATCH 045/188] [#2517] Fix DTMF over RTP issue, don't play the EVENT
 RTP packet

---
 sflphone-common/src/audio/audiortp/AudioRtpSession.h | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioRtpSession.h b/sflphone-common/src/audio/audiortp/AudioRtpSession.h
index 6cd4cf773c..afe37aa21d 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpSession.h
+++ b/sflphone-common/src/audio/audiortp/AudioRtpSession.h
@@ -466,7 +466,12 @@ namespace sfl {
 
         unsigned int size = adu->getSize(); // size in char
 
-        processDataDecode (spkrData, size, countTime);
+	// _debug("RTP size: %i\n", size);
+
+	// Size of DTMF over RTP
+	if(size > 4) {
+	    processDataDecode (spkrData, size, countTime);
+	}
     }
     
     template <typename D>
-- 
GitLab


From 9372355074e361c035e97007a1937f7af2545383 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Wed, 2 Dec 2009 18:09:01 -0500
Subject: [PATCH 046/188] [#2486] Set localAddress to ANY only at startup

---
 sflphone-common/src/managerimpl.cpp    | 5 ++++-
 sflphone-common/src/sip/sipaccount.cpp | 4 ++--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index a2a2f17f74..c97310af27 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -1545,8 +1545,11 @@ ManagerImpl::initRegisterAccounts()
     while (iter != _accountMap.end()) {
         if (iter->second) {
             iter->second->loadConfig();
-            /* If the account is set as enabled, try to register */
 
+	    // TODO: take off this protection by storing localIPAddress using interface name
+	    setConfig(iter->second->getAccountID(), LOCAL_ADDRESS, "0.0.0.0");
+
+            /* If the account is set as enabled, try to register */
             if (iter->second->isEnabled()) {
                 status = iter->second->registerVoIPLink();
 
diff --git a/sflphone-common/src/sip/sipaccount.cpp b/sflphone-common/src/sip/sipaccount.cpp
index ac9428f0ca..52f7c3a0df 100644
--- a/sflphone-common/src/sip/sipaccount.cpp
+++ b/sflphone-common/src/sip/sipaccount.cpp
@@ -338,8 +338,8 @@ void SIPAccount::loadConfig()
     // Do not store or use IP address in config as this address may change
     // Use loadSIPLocalIP for now instead in register/unregister (UDP,STUN,TLS), newOutGoingCall, mod_on_rx_request
     // TODO: if we realy have to bind to a specific interface, store interfaces by name instead
-    setLocalAddress (std::string("0.0.0.0"));
-    // setLocalAddress (Manager::instance().getConfigString (_accountID, LOCAL_ADDRESS));
+    // setLocalAddress (std::string("0.0.0.0"));
+    setLocalAddress (Manager::instance().getConfigString (_accountID, LOCAL_ADDRESS));
 
 
     // Published parameters
-- 
GitLab


From 80e4ddb274f1b6093f929eb15177f501b05f7672 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Wed, 2 Dec 2009 18:10:25 -0500
Subject: [PATCH 047/188] [#2543] Fix SFLphone startup failure due to empty dns
 server array

---
 sflphone-common/src/sip/sipvoiplink.cpp | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 2acd4ca5ff..a712ae4636 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -1644,13 +1644,16 @@ pj_status_t SIPVoIPLink::enable_dns_srv_resolver (pjsip_endpoint *endpt, pj_dns_
     }
 
     if (!get_dns_server_addresses (&dns_servers)) {
-        _debug ("Error  while fetching DNS information\n");
+        _debug ("Error while fetching DNS information\n");
         return -1;
     }
 
     // Build the nameservers list needed by pjsip
-    scount = dns_servers.size ();
-
+    if ((scount = dns_servers.size ()) <= 0) {
+        _debug("No server detected while fetching DNS information, stop dns resolution\n");
+	return 0;
+    }
+    
     pj_str_t nameservers[scount];
 
     for (i = 0; i<scount; i++) {
@@ -1967,8 +1970,8 @@ int SIPVoIPLink::createUDPServer (AccountID id)
     } else {
         // We are trying to initialize a UDP transport available for all local accounts and direct IP calls
         if (account->getLocalAddress () != "0.0.0.0") {
-            listeningAddress = account->getLocalAddress ();
-        }
+	    listeningAddress = account->getLocalAddress ();
+	}
 
         listeningPort = account->getLocalPort ();
     }
@@ -2029,8 +2032,9 @@ int SIPVoIPLink::createUDPServer (AccountID id)
 
         if (account == NULL)
             _localUDPTransport = transport;
-        else
-            account->setAccountTransport (transport);
+        else {
+	    account->setAccountTransport (transport);
+	}
     }
 
     _debug ("Transport initialized successfully on %s:%i\n", listeningAddress.c_str (), listeningPort);
-- 
GitLab


From 81ca09ff998e8a5a1aa28798e89906908bbedbe3 Mon Sep 17 00:00:00 2001
From: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
Date: Thu, 3 Dec 2009 10:42:57 -0500
Subject: [PATCH 048/188] [#1060] Update po files with launchpad translation +
 add danish translation

---
 lang/{ => da}/da.po |  340 ++++++++-------
 lang/de/de.po       |   83 ++--
 lang/es/es.po       |   10 +-
 lang/it/it.po       |  208 +++++----
 lang/ja.po          |  995 ------------------------------------------
 lang/ko.po          | 1006 -------------------------------------------
 lang/ko/ko.po       |   22 +-
 lang/pl/pl.po       |   47 +-
 lang/pt/pt.po       |    7 +-
 lang/pt_BR/pt_BR.po |    9 +-
 lang/ru/ru.po       |   13 +-
 lang/sflphone.pot   |  473 ++++++++++----------
 lang/zh_CN/zh_CN.po |  176 ++++----
 lang/zh_HK/zh_HK.po |  116 +++--
 lang/zh_TW/zh_TW.po |   18 +-
 15 files changed, 768 insertions(+), 2755 deletions(-)
 rename lang/{ => da}/da.po (79%)
 delete mode 100644 lang/ja.po
 delete mode 100644 lang/ko.po

diff --git a/lang/da.po b/lang/da/da.po
similarity index 79%
rename from lang/da.po
rename to lang/da/da.po
index c0c2ac3dd2..a90aa624db 100644
--- a/lang/da.po
+++ b/lang/da/da.po
@@ -8,14 +8,14 @@ msgstr ""
 "Project-Id-Version: sflphone\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
 "POT-Creation-Date: 2009-10-14 11:18-0400\n"
-"PO-Revision-Date: 2009-10-01 14:40+0000\n"
+"PO-Revision-Date: 2009-11-03 03:52+0000\n"
 "Last-Translator: Jonas Fonseca <fonseca@diku.dk>\n"
 "Language-Team: Danish <da@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2009-10-26 15:48+0000\n"
+"X-Launchpad-Export-Date: 2009-12-03 15:32+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
 #: ../sflphone-client-gnome/src/accountlist.c:175
@@ -72,7 +72,7 @@ msgstr[1] "%d indtalte beskeder"
 #: ../sflphone-client-gnome/src/actions.c:919
 #: ../sflphone-client-gnome/src/actions.c:926
 msgid "Using account"
-msgstr ""
+msgstr "Benytter konto"
 
 #: ../sflphone-client-gnome/src/actions.c:89
 msgid "No registered accounts"
@@ -83,11 +83,13 @@ msgid ""
 "Unable to connect to the SFLphone server.\n"
 "Make sure the daemon is running."
 msgstr ""
+"Forbindelse til SFLphone serveren kan ikke oprettes.\n"
+"Sørg for at server-dæmonen kører."
 
 #: ../sflphone-client-gnome/src/actions.c:913
 #, c-format
 msgid "IP call - %s"
-msgstr ""
+msgstr "IP opkald - %s"
 
 #: ../sflphone-client-gnome/src/actions.c:922
 msgid "Codec"
@@ -101,6 +103,10 @@ msgid ""
 "</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
 "<b>.sflphone</b> directory in your home( <i>%s</i> )"
 msgstr ""
+"<b>Fejl: Ingen audio-codec fundet\n"
+"\n"
+"</b>SFL audio-codecs skal installeres i <i>%s</i> eller i mappen "
+"<b>.sflphone</b> i dit hjemmekatalog (<i>%s</i>)"
 
 #: ../sflphone-client-gnome/src/errors.c:29
 msgid ""
@@ -108,6 +114,9 @@ msgid ""
 "\n"
 "Error while opening playback device"
 msgstr ""
+"ALSA meddelelse\n"
+"\n"
+"Fejl opstod mens afspilningsenhed blev åbnet"
 
 #: ../sflphone-client-gnome/src/errors.c:32
 msgid ""
@@ -115,6 +124,9 @@ msgid ""
 "\n"
 "Error while opening capture device"
 msgstr ""
+"ALSA meddelelse\n"
+"\n"
+"Fejl opstod mens optageenhed blev åbnet"
 
 #: ../sflphone-client-gnome/src/errors.c:35
 msgid ""
@@ -122,42 +134,45 @@ msgid ""
 "\n"
 "Pulseaudio is not running"
 msgstr ""
+"PulseAudio meddelelse\n"
+"\n"
+"PulseAudio er tilgængelig"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:73
 msgid "There is one call in progress."
-msgstr ""
+msgstr "Et igangværende opkald eksisterer"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:77
 msgid "There are calls in progress."
-msgstr ""
+msgstr "Igangværende opkald eksisterer"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:86
 msgid "Do you still want to quit?"
-msgstr "Vil du stadig afslutte"
+msgstr "Ønsker du stadig at afslutte"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:299
 msgid "SFLphone Error"
-msgstr "SFLphone Fejl"
+msgstr "SFLphone fejl"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:391
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
-msgstr ""
+msgstr "ZRTP er ikke understøttet af modtageren %s\n"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:392
 msgid "Secure Communication Unavailable"
-msgstr ""
+msgstr "Sikker kommunikation ikke tilgængelig"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:393
 #: ../sflphone-client-gnome/src/mainwindow.c:415
 msgid "Continue"
-msgstr ""
+msgstr "Fortsæt"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:394
 #: ../sflphone-client-gnome/src/mainwindow.c:416
 #: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Stop Call"
-msgstr ""
+msgstr "Afslut opkald"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:413
 #, c-format
@@ -165,10 +180,13 @@ msgid ""
 "A %s error forced the call with %s to fall under unencrypted mode.\n"
 "Exact reason: %s\n"
 msgstr ""
+"En \"%s\"-fejl medførte at opkaldet til %s blev ændret til ukrypteret "
+"tilstand.\n"
+"Den præcise årsag: %s\n"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:414
 msgid "ZRTP negotiation failed"
-msgstr ""
+msgstr "ZRTP-forhandling mislykkedes"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:427
 #, c-format
@@ -176,42 +194,44 @@ msgid ""
 "%s wants to stop using secure communication. Confirm will resume "
 "conversation without SRTP.\n"
 msgstr ""
+"%s ønsker at afslutte brugen af sikker kommunikation. Ved at godkende vil "
+"samtalen fortætte uden SRTP\n"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:428
 msgid "Confirm Go Clear"
-msgstr ""
+msgstr "Godkend sikkerhedsændring"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm"
-msgstr ""
+msgstr "Godkend"
 
 #: ../sflphone-client-gnome/src/sflnotify.c:71
 #: ../sflphone-client-gnome/src/sflnotify.c:91
 #, c-format
 msgid "%s account : %s"
-msgstr ""
+msgstr "%s konto : %s"
 
 #: ../sflphone-client-gnome/src/sflnotify.c:75
 #, c-format
 msgid "<i>From</i> %s"
-msgstr ""
+msgstr "<i>Fra</i> %s"
 
 #: ../sflphone-client-gnome/src/sflnotify.c:111
 #, c-format
 msgid "Calling with %s account <i>%s</i>"
-msgstr ""
+msgstr "Kalder op med %s konto <i>%s</i>"
 
 #: ../sflphone-client-gnome/src/sflnotify.c:115
 msgid "Current account"
-msgstr ""
+msgstr "Nuværende konto"
 
 #: ../sflphone-client-gnome/src/sflnotify.c:130
 msgid "You have no accounts set up"
-msgstr ""
+msgstr "Du har ingen oprettede konti"
 
 #: ../sflphone-client-gnome/src/sflnotify.c:147
 msgid "You have no registered accounts"
-msgstr ""
+msgstr "Du har ingen registrerede konti"
 
 #: ../sflphone-client-gnome/src/sflnotify.c:190
 #, c-format
@@ -219,33 +239,35 @@ msgid ""
 "<i>With:</i> %s \n"
 "using %s"
 msgstr ""
+"<i>Med:</i> %s \n"
+"benyttende %s"
 
 #: ../sflphone-client-gnome/src/sflnotify.c:205
 #, c-format
 msgid "%s does not support ZRTP."
-msgstr ""
+msgstr "%s understøtter ikke ZRTP."
 
 #: ../sflphone-client-gnome/src/sflnotify.c:220
 #, c-format
 msgid "ZRTP negotiation failed with %s"
-msgstr ""
+msgstr "ZRTP forhandling mislykkedes med %s"
 
 #: ../sflphone-client-gnome/src/sflnotify.c:235
 #, c-format
 msgid "<i>With:</i> %s"
-msgstr ""
+msgstr "<i>Med:</i> %s"
 
 #: ../sflphone-client-gnome/src/sliders.c:162
 msgid "Speakers volume"
-msgstr ""
+msgstr "Højtaler lydstyrke"
 
 #: ../sflphone-client-gnome/src/sliders.c:164
 msgid "Mic volume"
-msgstr ""
+msgstr "Mikrofon lydstyrke"
 
 #: ../sflphone-client-gnome/src/statusicon.c:91
 msgid "_Show main window"
-msgstr ""
+msgstr "_Vis hovedvindue"
 
 #: ../sflphone-client-gnome/src/statusicon.c:126
 msgid "SFLphone"
@@ -255,17 +277,17 @@ msgstr "SFLphone"
 #, c-format
 msgid "%i account configured"
 msgid_plural "%i accounts configured"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%i konto oprettet"
+msgstr[1] "%i konti oprettet"
 
 #: ../sflphone-client-gnome/src/toolbar.c:38
 #: ../sflphone-client-gnome/src/uimanager.c:750
 msgid "Voicemail"
-msgstr ""
+msgstr "Talebesked"
 
 #: ../sflphone-client-gnome/src/uimanager.c:403
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
-msgstr "SFLphone er en VoIP-klient kompatibel med SIP og AIX2 protokoller"
+msgstr "SFLphone er en VoIP-klient kompatibel med SIP og IAX2 protokoller"
 
 #: ../sflphone-client-gnome/src/uimanager.c:406
 msgid "About SFLphone"
@@ -273,7 +295,7 @@ msgstr "Om SFLphone"
 
 #: ../sflphone-client-gnome/src/uimanager.c:1028
 msgid "_Pick up"
-msgstr ""
+msgstr "_Svar"
 
 #: ../sflphone-client-gnome/src/uimanager.c:1040
 #: ../sflphone-client-gnome/src/uimanager.c:1081
@@ -283,7 +305,7 @@ msgstr "_Læg på"
 #: ../sflphone-client-gnome/src/uimanager.c:1052
 #: ../sflphone-client-gnome/src/uimanager.c:1093
 msgid "On _Hold"
-msgstr ""
+msgstr "I _venteposition"
 
 #: ../sflphone-client-gnome/src/uimanager.c:1064
 msgid "_Record"
@@ -291,7 +313,7 @@ msgstr "_Optag"
 
 #: ../sflphone-client-gnome/src/uimanager.c:1154
 msgid "_Call back"
-msgstr ""
+msgstr "_Besvar opkald"
 
 #: ../sflphone-client-gnome/src/uimanager.c:1226
 msgid "_New call"
@@ -299,41 +321,41 @@ msgstr "_Nyt opkald"
 
 #: ../sflphone-client-gnome/src/uimanager.c:1300
 msgid "Edit phone number"
-msgstr ""
+msgstr "Ændre telefonnummer"
 
 #: ../sflphone-client-gnome/src/uimanager.c:1311
 msgid "Edit the phone number before making a call"
-msgstr ""
+msgstr "Ændre telefonnummeret før opkald"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:164
 msgid "Account Parameters"
-msgstr ""
+msgstr "Kontoparametre"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:173
 #: ../sflphone-client-gnome/src/config/assistant.c:294
 #: ../sflphone-client-gnome/src/config/assistant.c:402
 msgid "_Alias"
-msgstr ""
+msgstr "_Alias"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:181
 msgid "_Protocol"
-msgstr ""
+msgstr "_Protokol"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:199
 msgid "Unknown"
-msgstr ""
+msgstr "Ukendt"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:209
 #: ../sflphone-client-gnome/src/config/assistant.c:302
 #: ../sflphone-client-gnome/src/config/assistant.c:410
 msgid "_Host name"
-msgstr ""
+msgstr "_Værtsnavn"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:217
 #: ../sflphone-client-gnome/src/config/assistant.c:310
 #: ../sflphone-client-gnome/src/config/assistant.c:418
 msgid "_User name"
-msgstr ""
+msgstr "_Brugernavn"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:234
 #: ../sflphone-client-gnome/src/config/assistant.c:326
@@ -345,23 +367,23 @@ msgstr "_Adgangskode"
 #: ../sflphone-client-gnome/src/config/assistant.c:344
 #: ../sflphone-client-gnome/src/config/assistant.c:449
 msgid "_Voicemail number"
-msgstr ""
+msgstr "_Nummer for talebesked"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:340
 msgid "Authentication"
-msgstr ""
+msgstr "Godkendelse"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
 msgid "Secret"
-msgstr ""
+msgstr "Hemmelig"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
 msgid "Credential"
-msgstr ""
+msgstr "Legitimationsoplysning"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:501
 msgid "Authentication name"
-msgstr ""
+msgstr "Godkendelsesnavn"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:512
 msgid "Password"
@@ -371,79 +393,79 @@ msgstr "Adgangskode"
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:909
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:201
 msgid "Security"
-msgstr ""
+msgstr "Sikkerhed"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:547
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:213
 msgid "Use TLS transport (sips)"
-msgstr ""
+msgstr "Benyt TLS transport (sips)"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:552
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:218
 msgid "SRTP key exchange"
-msgstr ""
+msgstr "SRTP-nøgleudveksling"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
 msgid "Disabled"
-msgstr ""
+msgstr "Deaktiveret"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
 msgid "Registration"
-msgstr ""
+msgstr "Registrering"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
 msgid "Registration expire"
-msgstr ""
+msgstr "Forældelse af registrering"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
 msgid "_Comply with RFC 3263"
-msgstr ""
+msgstr "_Overhold RFC 3263"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
 msgid "Network"
-msgstr ""
+msgstr "Netværk"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
 msgid "Local address"
-msgstr ""
+msgstr "Lokal adresse"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
 msgid "Local port"
-msgstr ""
+msgstr "Lokal port"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:752
 msgid "Set published address and port:"
-msgstr ""
+msgstr "Konfigurer offentliggjort adresse og port:"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:756
 msgid "Using STUN "
-msgstr ""
+msgstr "Ved brug af STUN "
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:761
 msgid "Same as local parameters"
-msgstr ""
+msgstr "Samme som lokale parametre"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:764
 msgid "Manually"
-msgstr ""
+msgstr "Manuelt"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:769
 msgid "Published address"
-msgstr ""
+msgstr "Offentliggjort adresse"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:777
 msgid "Published port"
-msgstr ""
+msgstr "Offentliggjort port"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:785
 msgid "STUN server URL"
-msgstr ""
+msgstr "STUN serveradresse"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
 msgid "Account settings"
-msgstr ""
+msgstr "Kontoindstillinger"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
 msgid "Basic"
@@ -455,7 +477,7 @@ msgstr "Advanceret"
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:169
 msgid "Server returned \""
-msgstr ""
+msgstr "Server svarede \""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
 msgid "Protocol"
@@ -471,31 +493,31 @@ msgstr "Konti"
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:484
 msgid "Configured Accounts"
-msgstr ""
+msgstr "Oprettede konti"
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
 msgid "There "
-msgstr ""
+msgstr "Der "
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
 msgid "is "
-msgstr ""
+msgstr "er "
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
 msgid "are "
-msgstr ""
+msgstr "er "
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
 msgid " active account"
-msgstr ""
+msgstr " aktiv konto"
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
 msgid "s"
-msgstr ""
+msgstr "s"
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
 msgid "You have no active account"
-msgstr ""
+msgstr "Der er ingen aktive konti"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
@@ -504,48 +526,48 @@ msgstr "Generelt"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:312
 msgid "_Use Evolution address books"
-msgstr ""
+msgstr "_Benyt Evolution adressekartotek"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:319
 msgid "Download limit :"
-msgstr ""
+msgstr "Download begrænsning :"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:327
 msgid "cards"
-msgstr ""
+msgstr "kort"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:333
 msgid "_Display contact photo if available"
-msgstr ""
+msgstr "Vis _kontaktbillede hvis tilgængeligt"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:341
 msgid "Fields from Evolution's address books"
-msgstr ""
+msgstr "Felter fra Evolutions adressekartotek"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:345
 msgid "_Work"
-msgstr ""
+msgstr "_Arbejde"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:351
 msgid "_Home"
-msgstr ""
+msgstr "_Hjem"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:357
 msgid "_Mobile"
-msgstr ""
+msgstr "_Mobil"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:364
 msgid "Address Books"
-msgstr ""
+msgstr "Adressekartoteker"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:368
 msgid "Select which Evolution address books to use"
-msgstr ""
+msgstr "Vælg hvilke af Evolutions adressekartoteker skal benyttes"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:404
 #: ../sflphone-client-gnome/src/config/audioconf.c:578
 msgid "Name"
-msgstr ""
+msgstr "Navn"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:69
 #, c-format
@@ -557,6 +579,8 @@ msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
 msgstr ""
+"Du kan til enhver tid undersøge din registrering eller ændre dine kontis "
+"parametre i vinduet Indstillinger/Konti"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:74
 msgid "Alias"
@@ -572,20 +596,20 @@ msgstr "Brugernavn"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:86
 msgid "Security: "
-msgstr ""
+msgstr "Sikkerhed: "
 
 #: ../sflphone-client-gnome/src/config/assistant.c:88
 msgid "SRTP/ZRTP draft-zimmermann"
-msgstr ""
+msgstr "SRTP/ZRTP draft-zimmermann"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:90
 #: ../sflphone-client-gnome/src/config/assistant.c:182
 msgid "None"
-msgstr ""
+msgstr "Ingen"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:210
 msgid "SFLphone account creation wizard"
-msgstr ""
+msgstr "SFLphone-guiden til oprettelse af konto"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:236
 msgid "Welcome to the Account creation wizard of SFLphone!"
@@ -640,7 +664,7 @@ msgstr "Udfyld venligst følgende information"
 #: ../sflphone-client-gnome/src/config/assistant.c:352
 #: ../sflphone-client-gnome/src/config/assistant.c:381
 msgid "Secure communications with _ZRTP"
-msgstr ""
+msgstr "Sikker kommunikation med _ZRTP"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:365
 msgid "Optional email address"
@@ -653,7 +677,7 @@ msgstr ""
 
 #: ../sflphone-client-gnome/src/config/assistant.c:373
 msgid "_Email address"
-msgstr ""
+msgstr "_Emailadresse"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:394
 msgid "IAX2 account settings"
@@ -669,15 +693,15 @@ msgstr "Du opfordres til at aktivere dette hvis du er bag en firewall"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:476
 msgid "E_nable STUN"
-msgstr ""
+msgstr "_Benyt STUN"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:483
 msgid "_STUN server"
-msgstr ""
+msgstr "_STUN server"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:497
 msgid "Account Registration"
-msgstr ""
+msgstr "Kontoregistrering"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:497
 msgid "Congratulations!"
@@ -697,39 +721,39 @@ msgstr "Båndbredde"
 
 #: ../sflphone-client-gnome/src/config/audioconf.c:673
 msgid "ALSA plugin"
-msgstr ""
+msgstr "ALSA plugin"
 
 #: ../sflphone-client-gnome/src/config/audioconf.c:695
 msgid "Output"
-msgstr ""
+msgstr "Uddata"
 
 #: ../sflphone-client-gnome/src/config/audioconf.c:717
 msgid "Input"
-msgstr ""
+msgstr "Inddata"
 
 #: ../sflphone-client-gnome/src/config/audioconf.c:752
 msgid "_Voice Activity Detection"
-msgstr ""
+msgstr "_Detektering af taleaktivitet"
 
 #: ../sflphone-client-gnome/src/config/audioconf.c:762
 msgid "_Noise Reduction (Narrow-Band Companding)"
-msgstr ""
+msgstr "_Støjreducering (Narrow-Band Companding)"
 
 #: ../sflphone-client-gnome/src/config/audioconf.c:798
 msgid "Sound Manager"
-msgstr ""
+msgstr "Lydhåndtering"
 
 #: ../sflphone-client-gnome/src/config/audioconf.c:807
 msgid "_Pulseaudio"
-msgstr ""
+msgstr "_PulseAudio"
 
 #: ../sflphone-client-gnome/src/config/audioconf.c:811
 msgid "_ALSA"
-msgstr ""
+msgstr "_ALSA"
 
 #: ../sflphone-client-gnome/src/config/audioconf.c:816
 msgid "_Mute other applications during a call"
-msgstr ""
+msgstr "_Dæmp andre programmer ved opkald"
 
 #: ../sflphone-client-gnome/src/config/audioconf.c:823
 msgid "ALSA settings"
@@ -737,7 +761,7 @@ msgstr "ALSA indstillinger"
 
 #: ../sflphone-client-gnome/src/config/audioconf.c:840
 msgid "Codecs"
-msgstr ""
+msgstr "Codecs"
 
 #: ../sflphone-client-gnome/src/config/audioconf.c:869
 msgid "Recordings"
@@ -745,52 +769,52 @@ msgstr "Optagelser"
 
 #: ../sflphone-client-gnome/src/config/audioconf.c:873
 msgid "Destination folder"
-msgstr ""
+msgstr "Destinationsmappe"
 
 #: ../sflphone-client-gnome/src/config/audioconf.c:877
 msgid "Select a folder"
-msgstr ""
+msgstr "Vælg en mappe"
 
 #: ../sflphone-client-gnome/src/config/audioconf.c:883
 msgid "Ringtones"
-msgstr ""
+msgstr "Ringetoner"
 
 #: ../sflphone-client-gnome/src/config/audioconf.c:889
 msgid "_Enable ringtones"
-msgstr ""
+msgstr "Aktiver _ringetoner"
 
 #: ../sflphone-client-gnome/src/config/audioconf.c:895
 msgid "Choose a ringtone"
-msgstr ""
+msgstr "Vælg en ringetone"
 
 #: ../sflphone-client-gnome/src/config/audioconf.c:901
 msgid "Audio Files"
-msgstr ""
+msgstr "Lydfiler"
 
 #: ../sflphone-client-gnome/src/config/hooks-config.c:130
 msgid "URL Argument"
-msgstr ""
+msgstr "Adresseargument"
 
 #: ../sflphone-client-gnome/src/config/hooks-config.c:135
 msgid "Custom commands on incoming calls with URL"
-msgstr ""
+msgstr "Brugerdefinerede kommandoer ved indgående opkald med webadresse"
 
 #: ../sflphone-client-gnome/src/config/hooks-config.c:138
 #, c-format
 msgid "%s will be replaced with the passed URL."
-msgstr ""
+msgstr "%s vil blive erstattet med den givne webadresse."
 
 #: ../sflphone-client-gnome/src/config/hooks-config.c:141
 msgid "Trigger on specific _SIP header"
-msgstr ""
+msgstr "Udløse ved specifik _SIP protokolhoved"
 
 #: ../sflphone-client-gnome/src/config/hooks-config.c:150
 msgid "Trigger on _IAX2 URL"
-msgstr ""
+msgstr "Udløse ved _IAX2 webadresse"
 
 #: ../sflphone-client-gnome/src/config/hooks-config.c:155
 msgid "Command to _run"
-msgstr ""
+msgstr "Kommando som skal _kaldes"
 
 #: ../sflphone-client-gnome/src/config/hooks-config.c:165
 msgid "Phone number rewriting"
@@ -798,7 +822,7 @@ msgstr "Omskrivning af telefonnummer"
 
 #: ../sflphone-client-gnome/src/config/hooks-config.c:169
 msgid "_Prefix dialed numbers with"
-msgstr ""
+msgstr "_Præfiks for indtastede numre"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:195
 msgid ""
@@ -806,6 +830,10 @@ msgid ""
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
 "also be used if no account can be matched to an incoming or outgoing call."
 msgstr ""
+"Denne profil benyttes når du ønsker at kontakte en ekstern peer ved blot at "
+"indtaste en sip-adresse såsom <b>sip:eksternpeer</b>. De indstillinger som "
+"du definerer her vil også benyttes hvis ingen konto kan tilknyttes et "
+"indgående eller udgående opkald."
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:274
 msgid "SIP Port"
@@ -813,43 +841,43 @@ msgstr "SIP Port"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:281
 msgid "UDP Transport"
-msgstr ""
+msgstr "UDP transport"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:319
 msgid "Desktop Notifications"
-msgstr ""
+msgstr "Meddelelser"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:323
 msgid "_Enable notifications"
-msgstr ""
+msgstr "_Aktiver meddelelser"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:329
 msgid "Enable voicemail _notifications"
-msgstr ""
+msgstr "Aktiver _talebeskedsmeddelelser"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:341
 msgid "System Tray Icon"
-msgstr ""
+msgstr "Systembakke-ikon"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
 msgid "_Popup main window on incoming call"
-msgstr ""
+msgstr "_Vis hovedvindue ved indgående opkald"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:349
 msgid "Ne_ver popup main window"
-msgstr ""
+msgstr "Aldrig _pop-op hovedvindue"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:353
 msgid "Hide SFLphone window on _startup"
-msgstr ""
+msgstr "Skjul SFLphone vinduet ved _start"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:359
 msgid "Calls History"
-msgstr ""
+msgstr "Opkaldshistorik"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:362
 msgid "_Keep my history for at least"
-msgstr ""
+msgstr "_Gem min historik i mindst"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:373
 msgid "days"
@@ -857,15 +885,15 @@ msgstr "dage"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
 msgid "Configuration File"
-msgstr ""
+msgstr "Konfigurationsfil"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
 msgid "Store SIP credentials as MD5 hash"
-msgstr ""
+msgstr "Gem SIP-legitimationsoplysninger som _MD5-hash-værdi"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:423
 msgid "Preferences"
-msgstr ""
+msgstr "Indstillinger"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:448
 msgid "Audio"
@@ -877,19 +905,19 @@ msgstr "Adressebog"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:458
 msgid "Hooks"
-msgstr ""
+msgstr "Hooks"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:468
 msgid "Direct IP calls"
-msgstr ""
+msgstr "Direkte IP opkald"
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:38
 msgid "Advanced options for TLS"
-msgstr ""
+msgstr "Advancerede indstillinger for TLS"
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
 msgid "TLS transport"
-msgstr ""
+msgstr "TLS transport"
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
 msgid ""
@@ -899,78 +927,82 @@ msgid ""
 "dedicated\n"
 "port, different one from each other\n"
 msgstr ""
+"TLS transport kan benyttes sammen med UDP for de opkald som kræver\n"
+"sikker sip transaktion (også kaldet SIPS). Du kan konfigurere forskellige\n"
+"TLS transporter for de enkelte konti. Bemærk dog at de hver vil benytte\n"
+"en dedikeret port forskellig fra hinanden.\n"
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
 msgid "Certificate of Authority list"
-msgstr ""
+msgstr "Autoritetscertifikatsliste"
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
 msgid "Choose a CA list file (optional)"
-msgstr ""
+msgstr "Vælg en fil med en autoritetscertifikatsliste (valgfri)"
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:115
 msgid "Public endpoint certificate file"
-msgstr ""
+msgstr "Offentlig endpoint certifikatsfil"
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:119
 msgid "Choose a public endpoint certificate (optional)"
-msgstr ""
+msgstr "Vælg et offentligt endpoint-certifikat (valgfri)"
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:134
 msgid "Choose a private key file (optional)"
-msgstr ""
+msgstr "Vælg en privat nøglefil (valgfri)"
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:145
 msgid "Password for the private key"
-msgstr ""
+msgstr "Adgangskode for den private nøgle"
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:168
 msgid "TLS protocol method"
-msgstr ""
+msgstr "TLS protokolmetode"
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:202
 msgid "TLS cipher list"
-msgstr ""
+msgstr "TLS cifferliste"
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:211
 msgid "Server name instance for outgoing TLS connection"
-msgstr ""
+msgstr "Server navneinstans for udgående TLS forbindelse"
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:219
 msgid "Negotiation timeout (sec:msec)"
-msgstr ""
+msgstr "Forhandlingstimeout"
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:236
 msgid "Verify incoming certificates, as a server"
-msgstr ""
+msgstr "Udfør kontrol af indgående certifikater, som en server"
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:242
 msgid "Verify certificates from answer, as a client"
-msgstr ""
+msgstr "Udfør kontrol af certifikater fra svar, som en klient"
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:248
 msgid "Require certificate for incoming tls connections"
-msgstr ""
+msgstr "Kræv certifikat for indgående TLS forbindelser"
 
 #: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:49
 msgid "ZRTP Options"
-msgstr ""
+msgstr "ZRTP indstillinger"
 
 #: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:68
 msgid "Send Hello Hash in S_DP"
-msgstr ""
+msgstr "Send \"Hello Hash\" i S_DP"
 
 #: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:74
 msgid "Ask User to Confirm SAS"
-msgstr ""
+msgstr "_Spørg bruger om at godkende SAS"
 
 #: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:80
 msgid "_Warn if ZRTP not supported"
-msgstr ""
+msgstr "_Advar hvis ZRTP ikke understøttes"
 
 #: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:86
 msgid "Display SAS once for hold events"
-msgstr ""
+msgstr "_Vis SAS en enkelt gang for vente-hændelser"
 
 #: ../sflphone-client-gnome/src/contacts/searchbar.c:56
 msgid "Search all"
@@ -985,12 +1017,12 @@ msgstr "Klik her for at ændre søgningstypen"
 
 #: ../sflphone-client-gnome/src/contacts/searchbar.c:69
 msgid "Search by missed call"
-msgstr ""
+msgstr "Søg i ubesvarede opkald"
 
 #: ../sflphone-client-gnome/src/contacts/searchbar.c:81
 msgid "Search by incoming call"
-msgstr ""
+msgstr "Søg i indgående opkald"
 
 #: ../sflphone-client-gnome/src/contacts/searchbar.c:93
 msgid "Search by outgoing call"
-msgstr ""
+msgstr "Søg i udgående opkald"
diff --git a/lang/de/de.po b/lang/de/de.po
index 7459095a39..ccf215dcdc 100644
--- a/lang/de/de.po
+++ b/lang/de/de.po
@@ -8,14 +8,14 @@ msgstr ""
 "Project-Id-Version: sflphone\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-10-14 11:18-0400\n"
-"PO-Revision-Date: 2009-10-15 00:00+0000\n"
+"PO-Revision-Date: 2009-10-26 20:46+0000\n"
 "Last-Translator: Maxime Chambreuil <maxime.chambreuil@gmail.com>\n"
 "Language-Team: SavoirFaire Linux Inc <sflphoneteam@savoirfairelinux.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2009-10-26 15:48+0000\n"
+"X-Launchpad-Export-Date: 2009-12-03 15:32+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
 #: ../sflphone-client-gnome/src/accountlist.c:175
@@ -161,18 +161,18 @@ msgstr ""
 
 #: ../sflphone-client-gnome/src/mainwindow.c:392
 msgid "Secure Communication Unavailable"
-msgstr ""
+msgstr "Sichere Verbindung nicht verfügbar"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:393
 #: ../sflphone-client-gnome/src/mainwindow.c:415
 msgid "Continue"
-msgstr ""
+msgstr "Weiter"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:394
 #: ../sflphone-client-gnome/src/mainwindow.c:416
 #: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Stop Call"
-msgstr ""
+msgstr "Anruf beenden"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:413
 #, c-format
@@ -198,7 +198,7 @@ msgstr ""
 
 #: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm"
-msgstr ""
+msgstr "Bestätigen"
 
 #: ../sflphone-client-gnome/src/sflnotify.c:71
 #: ../sflphone-client-gnome/src/sflnotify.c:91
@@ -323,7 +323,7 @@ msgstr "Nummer vor dem Anruf editieren"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:164
 msgid "Account Parameters"
-msgstr ""
+msgstr "Konto parameter"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:173
 #: ../sflphone-client-gnome/src/config/assistant.c:294
@@ -365,11 +365,11 @@ msgstr "_Voicemail Nummer"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:340
 msgid "Authentication"
-msgstr ""
+msgstr "Authentifizierung"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
 msgid "Secret"
-msgstr ""
+msgstr "Geheim"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
 msgid "Credential"
@@ -377,7 +377,7 @@ msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:501
 msgid "Authentication name"
-msgstr ""
+msgstr "Authentifizierung Name"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:512
 msgid "Password"
@@ -402,11 +402,11 @@ msgstr ""
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
 msgid "Disabled"
-msgstr ""
+msgstr "Deaktiviert"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
 msgid "Registration"
-msgstr ""
+msgstr "Anmeldung"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
 msgid "Registration expire"
@@ -419,15 +419,15 @@ msgstr ""
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
 msgid "Network"
-msgstr ""
+msgstr "Netzwerk"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
 msgid "Local address"
-msgstr ""
+msgstr "Adresse (lokal)"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
 msgid "Local port"
-msgstr ""
+msgstr "Port (lokal)"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:752
 msgid "Set published address and port:"
@@ -463,11 +463,11 @@ msgstr "Kontoeinstellungen"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
 msgid "Basic"
-msgstr ""
+msgstr "Allgemein"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:904
 msgid "Advanced"
-msgstr ""
+msgstr "Erweitert"
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:169
 msgid "Server returned \""
@@ -483,7 +483,7 @@ msgstr "Status"
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:474
 msgid "Accounts"
-msgstr ""
+msgstr "Konten"
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:484
 msgid "Configured Accounts"
@@ -491,19 +491,19 @@ msgstr "Konfigurierten Konten"
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
 msgid "There "
-msgstr ""
+msgstr "Es "
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
 msgid "is "
-msgstr ""
+msgstr "gibt "
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
 msgid "are "
-msgstr ""
+msgstr "gibt "
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
 msgid " active account"
-msgstr ""
+msgstr " aktive Konten"
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
 msgid "s"
@@ -511,12 +511,12 @@ msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
 msgid "You have no active account"
-msgstr ""
+msgstr "Sie haben kein aktives Konto"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
 msgid "General"
-msgstr ""
+msgstr "Allgemein"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:312
 msgid "_Use Evolution address books"
@@ -590,7 +590,7 @@ msgstr "Benutzername"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:86
 msgid "Security: "
-msgstr ""
+msgstr "Sicherheit: "
 
 #: ../sflphone-client-gnome/src/config/assistant.c:88
 msgid "SRTP/ZRTP draft-zimmermann"
@@ -658,7 +658,7 @@ msgstr "Folgende Informationen bitte ausfühlen"
 #: ../sflphone-client-gnome/src/config/assistant.c:352
 #: ../sflphone-client-gnome/src/config/assistant.c:381
 msgid "Secure communications with _ZRTP"
-msgstr ""
+msgstr "Sichere Kommunikation mit _ZRTP"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:365
 msgid "Optional email address"
@@ -760,7 +760,7 @@ msgstr "Codecs"
 
 #: ../sflphone-client-gnome/src/config/audioconf.c:869
 msgid "Recordings"
-msgstr ""
+msgstr "Aufnahmen"
 
 #: ../sflphone-client-gnome/src/config/audioconf.c:873
 msgid "Destination folder"
@@ -832,7 +832,7 @@ msgstr "SIP Port"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:281
 msgid "UDP Transport"
-msgstr ""
+msgstr "UDP Transport"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:319
 msgid "Desktop Notifications"
@@ -876,7 +876,7 @@ msgstr "Tage"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
 msgid "Configuration File"
-msgstr ""
+msgstr "Einrichtungsdatei"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
 msgid "Store SIP credentials as MD5 hash"
@@ -973,7 +973,7 @@ msgstr ""
 
 #: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:49
 msgid "ZRTP Options"
-msgstr ""
+msgstr "ZRTP Optionen"
 
 #: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:68
 msgid "Send Hello Hash in S_DP"
@@ -985,7 +985,7 @@ msgstr ""
 
 #: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:80
 msgid "_Warn if ZRTP not supported"
-msgstr ""
+msgstr "_Warnung wenn ZRTP nicht unterstüzt"
 
 #: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:86
 msgid "Display SAS once for hold events"
@@ -1062,14 +1062,6 @@ msgstr "Suche nach ausgehenden Anru"
 #~ msgid "Jérémy Quentin"
 #~ msgstr "Jérémy Quentin"
 
-#~ msgctxt "NAME OF TRANSLATORS"
-#~ msgid "Your names"
-#~ msgstr "Ihre Namen, ,Launchpad Contributions:,Maxime Chambreuil,Sven Werlen"
-
-#~ msgctxt "EMAIL OF TRANSLATORS"
-#~ msgid "Your emails"
-#~ msgstr "Ihre E-Mail-Adressen,,,maxime.chambreuil@gmail.com,"
-
 #~ msgid "Incoming call"
 #~ msgstr "Eingehende Anrufe"
 
@@ -1317,3 +1309,16 @@ msgstr "Suche nach ausgehenden Anru"
 
 #~ msgid "Port"
 #~ msgstr "Port"
+
+#~ msgctxt "NAME OF TRANSLATORS"
+#~ msgid "Your names"
+#~ msgstr ""
+#~ "Ihre Namen, ,Launchpad Contributions:,Maxime Chambreuil,Sven Werlen, "
+#~ ",Launchpad Contributions:,Maxime Chambreuil,Sven Werlen,Sven Werlen"
+
+#~ msgctxt "EMAIL OF TRANSLATORS"
+#~ msgid "Your emails"
+#~ msgstr ""
+#~ "Ihre E-Mail-"
+#~ "Adressen,,,maxime.chambreuil@gmail.com,,,,maxime.chambreuil@gmail.com,,sven.w"
+#~ "erlen@gmail.com"
diff --git a/lang/es/es.po b/lang/es/es.po
index 3ec57681b1..e05252337d 100644
--- a/lang/es/es.po
+++ b/lang/es/es.po
@@ -10,14 +10,14 @@ msgstr ""
 "Project-Id-Version: SFLphone 0.9.4\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-10-14 11:18-0400\n"
-"PO-Revision-Date: 2009-10-14 23:39+0000\n"
+"PO-Revision-Date: 2009-10-26 20:46+0000\n"
 "Last-Translator: Maxime Chambreuil <maxime.chambreuil@gmail.com>\n"
 "Language-Team: SavoirFaireLinux Inc <sflphoneteam@savoirfairelinux.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2009-10-26 15:48+0000\n"
+"X-Launchpad-Export-Date: 2009-12-03 15:32+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
 #: ../sflphone-client-gnome/src/accountlist.c:175
@@ -1634,11 +1634,13 @@ msgstr "Buscar en llamadas salientes"
 #~ msgstr ""
 #~ "Maxime Chambreuil, ,Launchpad Contributions:,Andres Mujica,Maxime "
 #~ "Chambreuil, ,Launchpad Contributions:,Andres Mujica,Maxime Chambreuil, "
-#~ ",Launchpad Contributions:,Andres Mujica,Maxime Chambreuil"
+#~ ",Launchpad Contributions:,Andres Mujica,Maxime Chambreuil, ,Launchpad "
+#~ "Contributions:,Andres Mujica,Maxime Chambreuil"
 
 #~ msgctxt "EMAIL OF TRANSLATORS"
 #~ msgid "Your emails"
 #~ msgstr ""
 #~ "maxime.chambreuil@savoirfairelinux.com,,,andres.mujica@seaq.com.co,maxime.cha"
 #~ "mbreuil@gmail.com,,,andres.mujica@seaq.com.co,maxime.chambreuil@gmail.com,,,a"
-#~ "ndres.mujica@seaq.com.co,maxime.chambreuil@gmail.com"
+#~ "ndres.mujica@seaq.com.co,maxime.chambreuil@gmail.com,,,andres.mujica@seaq.com"
+#~ ".co,maxime.chambreuil@gmail.com"
diff --git a/lang/it/it.po b/lang/it/it.po
index 88fc58458f..52a0a6a5f3 100644
--- a/lang/it/it.po
+++ b/lang/it/it.po
@@ -1,21 +1,21 @@
-# SFLphone italian translation.
+# SOME DESCRIPTIVE TITLE.
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: 0.9.7\n"
+"Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-10-14 11:18-0400\n"
 "PO-Revision-Date: 2009-10-14 17:47+0000\n"
-"Last-Translator: Stefano Scamuzzo <stefano.scamuzzo@eng.it>\n"
+"Last-Translator: Maxime Chambreuil <maxime.chambreuil@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2009-10-26 15:48+0000\n"
+"X-Launchpad-Export-Date: 2009-12-03 15:32+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
 #: ../sflphone-client-gnome/src/accountlist.c:175
@@ -103,7 +103,7 @@ msgid ""
 "</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
 "<b>.sflphone</b> directory in your home( <i>%s</i> )"
 msgstr ""
-"<b>Errore: Non è stato trovato alcun codec audio.</b>\n"
+"<b>Errore: Non è stato trovato alcun codec audio.</b>\n"
 "\n"
 "I codec audio SFL devono trovarsi in <i>%s</i> o nella sottocartella "
 "<b>.sflphone</b> della cartella home dell'utente (</i>%s</i>)"
@@ -133,11 +133,11 @@ msgid ""
 "Pulseaudio is not running"
 msgstr ""
 "Notifica PulseAudio\n"
-"PulseAudio non è in esecuzione"
+"PulseAudio non è in esecuzione"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:73
 msgid "There is one call in progress."
-msgstr "C'è una chiamata in corso."
+msgstr "C'è una chiamata in corso."
 
 #: ../sflphone-client-gnome/src/mainwindow.c:77
 msgid "There are calls in progress."
@@ -154,42 +154,40 @@ msgstr "Errore SFLphone"
 #: ../sflphone-client-gnome/src/mainwindow.c:391
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
-msgstr "ZRPT non supportato dal nodo %s\n"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/mainwindow.c:392
 msgid "Secure Communication Unavailable"
-msgstr "Comunicazione sicura non disponibile"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/mainwindow.c:393
 #: ../sflphone-client-gnome/src/mainwindow.c:415
 msgid "Continue"
-msgstr "Continua"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/mainwindow.c:394
 #: ../sflphone-client-gnome/src/mainwindow.c:416
 #: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Stop Call"
-msgstr "Chiudi la chiamata"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/mainwindow.c:413
 #, c-format
 msgid ""
 "A %s error forced the call with %s to fall under unencrypted mode.\n"
 "Exact reason: %s\n"
-msgstr "Un errore %s ha provocato il passaggio della chiamata %s in modalità non sicura.\n"
-"Motivo esatto: %s\n"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/mainwindow.c:414
 msgid "ZRTP negotiation failed"
-msgstr "Negoziazione ZRTP fallita"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/mainwindow.c:427
 #, c-format
 msgid ""
 "%s wants to stop using secure communication. Confirm will resume "
 "conversation without SRTP.\n"
-msgstr "%s vuole terminare l'uso della comunicazione sicura. Conferma ripristinerà "
-"la converazione senza SRTP.\n"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/mainwindow.c:428
 msgid "Confirm Go Clear"
@@ -197,7 +195,7 @@ msgstr ""
 
 #: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm"
-msgstr "Conferma"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/sflnotify.c:71
 #: ../sflphone-client-gnome/src/sflnotify.c:91
@@ -233,23 +231,21 @@ msgid ""
 "<i>With:</i> %s \n"
 "using %s"
 msgstr ""
-"<i>con:</i> %s \n"
-"utilizzando $s"
 
 #: ../sflphone-client-gnome/src/sflnotify.c:205
 #, c-format
 msgid "%s does not support ZRTP."
-msgstr "%s non supporta ZRTP."
+msgstr ""
 
 #: ../sflphone-client-gnome/src/sflnotify.c:220
 #, c-format
 msgid "ZRTP negotiation failed with %s"
-msgstr "Negoziazione ZRTP con %s fallita"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/sflnotify.c:235
 #, c-format
 msgid "<i>With:</i> %s"
-msgstr "<i>Con:</i> %s"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/sliders.c:162
 msgid "Speakers volume"
@@ -281,7 +277,7 @@ msgstr "Segreteria telefonica"
 
 #: ../sflphone-client-gnome/src/uimanager.c:403
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
-msgstr "SFLphone è un client VoIP compatibile con i protocolli SIP e IAX2."
+msgstr "SFLphone è un client VoIP compatibile con i protocolli SIP e IAX2."
 
 #: ../sflphone-client-gnome/src/uimanager.c:406
 msgid "About SFLphone"
@@ -307,7 +303,7 @@ msgstr "_Registra"
 
 #: ../sflphone-client-gnome/src/uimanager.c:1154
 msgid "_Call back"
-msgstr "Richiama"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/uimanager.c:1226
 msgid "_New call"
@@ -315,11 +311,11 @@ msgstr "Chiama"
 
 #: ../sflphone-client-gnome/src/uimanager.c:1300
 msgid "Edit phone number"
-msgstr "Modifica numero di telefono"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/uimanager.c:1311
 msgid "Edit the phone number before making a call"
-msgstr "Modifica il numero di telefono prima di chiamare"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:164
 msgid "Account Parameters"
@@ -365,19 +361,19 @@ msgstr "Numero segreteria telefonica"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:340
 msgid "Authentication"
-msgstr "Autenticazione"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
 msgid "Secret"
-msgstr "Segreto"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
 msgid "Credential"
-msgstr "Credenziali"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:501
 msgid "Authentication name"
-msgstr "Nome autenticazione"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:512
 msgid "Password"
@@ -387,26 +383,26 @@ msgstr "Password"
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:909
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:201
 msgid "Security"
-msgstr "Sicurezza"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:547
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:213
 msgid "Use TLS transport (sips)"
-msgstr "Utilizza il trasporto TLS (sips)"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:552
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:218
 msgid "SRTP key exchange"
-msgstr "Scambio di chiavi SRTP"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
 msgid "Disabled"
-msgstr "Disabilitato"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
 msgid "Registration"
-msgstr "Registrazione"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
 msgid "Registration expire"
@@ -414,7 +410,7 @@ msgstr "Scadenza registrazione"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
 msgid "_Comply with RFC 3263"
-msgstr "Compatibile con RFC 3263"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
@@ -423,39 +419,39 @@ msgstr "Rete"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
 msgid "Local address"
-msgstr "Indirizzo locale"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
 msgid "Local port"
-msgstr "Porta locale"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:752
 msgid "Set published address and port:"
-msgstr "Configura indirizzo pubblicato e porta:"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:756
 msgid "Using STUN "
-msgstr "Utilizza STUN "
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:761
 msgid "Same as local parameters"
-msgstr "Come paramteri locali"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:764
 msgid "Manually"
-msgstr "Manuale"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:769
 msgid "Published address"
-msgstr "Indirizzo pubblicato"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:777
 msgid "Published port"
-msgstr "Porta pubblicata"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:785
 msgid "STUN server URL"
-msgstr "URL del server STUN"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
 msgid "Account settings"
@@ -471,7 +467,7 @@ msgstr "Avanzate"
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:169
 msgid "Server returned \""
-msgstr "Il server ha restituito \""
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
 msgid "Protocol"
@@ -483,7 +479,7 @@ msgstr "Stato"
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:474
 msgid "Accounts"
-msgstr "Accounts"
+msgstr "Account"
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:484
 msgid "Configured Accounts"
@@ -495,15 +491,15 @@ msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
 msgid "is "
-msgstr "è"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
 msgid "are "
-msgstr "sono"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
 msgid " active account"
-msgstr " account attivo"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
 msgid "s"
@@ -511,12 +507,12 @@ msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
 msgid "You have no active account"
-msgstr "Non ci sono account attivi"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
 msgid "General"
-msgstr "Generale"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:312
 msgid "_Use Evolution address books"
@@ -524,11 +520,11 @@ msgstr "_Usa la rubrica di Evolution"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:319
 msgid "Download limit :"
-msgstr "Limite per il download: "
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:327
 msgid "cards"
-msgstr "schede"
+msgstr "tessere"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:333
 msgid "_Display contact photo if available"
@@ -572,12 +568,11 @@ msgstr "La procedura guidata è terminata."
 msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
-msgstr "In qualsiasi momento puoi controllare lo stato della tua registrazione o modificare i tuoi parametri"
-"di acccount nella finestra Opzioni/Accounts."
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/assistant.c:74
 msgid "Alias"
-msgstr "Alias"
+msgstr "Pseudonimo"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:78
 msgid "Server"
@@ -589,20 +584,20 @@ msgstr "Nome utente"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:86
 msgid "Security: "
-msgstr "Sicurezza: "
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/assistant.c:88
 msgid "SRTP/ZRTP draft-zimmermann"
-msgstr "SRTP/ZRTP draft-zimmermann"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/assistant.c:90
 #: ../sflphone-client-gnome/src/config/assistant.c:182
 msgid "None"
-msgstr "Nessuno"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/assistant.c:210
 msgid "SFLphone account creation wizard"
-msgstr "Procedura guidata per la creazione dell'account SFLphone"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/assistant.c:236
 msgid "Welcome to the Account creation wizard of SFLphone!"
@@ -611,7 +606,7 @@ msgstr ""
 
 #: ../sflphone-client-gnome/src/config/assistant.c:237
 msgid "This installation wizard will help you configure an account."
-msgstr "Questa procedura di installazione permetterà  di configurare un account."
+msgstr "Questa procedura permetterà di configurare un account."
 
 #: ../sflphone-client-gnome/src/config/assistant.c:251
 msgid "VoIP Protocols"
@@ -652,12 +647,12 @@ msgstr "Impostazioni account SIP"
 #: ../sflphone-client-gnome/src/config/assistant.c:286
 #: ../sflphone-client-gnome/src/config/assistant.c:394
 msgid "Please fill the following information"
-msgstr "Per favore compila le seguenti informazioni"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/assistant.c:352
 #: ../sflphone-client-gnome/src/config/assistant.c:381
 msgid "Secure communications with _ZRTP"
-msgstr "Comunicazioni sicure con _ZRTP"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/assistant.c:365
 msgid "Optional email address"
@@ -666,7 +661,7 @@ msgstr "Indirizzo email opzionale"
 #: ../sflphone-client-gnome/src/config/assistant.c:365
 msgid "This email address will be used to send your voicemail messages."
 msgstr ""
-"L'indirizzo email sarà usato per l'invio dei messaggi della segreteria "
+"L'indirizzo email sarà usato per l'invio dei messaggi della segreteria "
 "telefonica."
 
 #: ../sflphone-client-gnome/src/config/assistant.c:373
@@ -727,15 +722,15 @@ msgstr "Ingresso"
 
 #: ../sflphone-client-gnome/src/config/audioconf.c:752
 msgid "_Voice Activity Detection"
-msgstr "Rilevazione dell'attività _Voce"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/audioconf.c:762
 msgid "_Noise Reduction (Narrow-Band Companding)"
-msgstr "Riduzione del rumore (Narrow-Band Companding)"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/audioconf.c:798
 msgid "Sound Manager"
-msgstr "Gestore del suono"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/audioconf.c:807
 msgid "_Pulseaudio"
@@ -787,16 +782,16 @@ msgstr "File audio"
 
 #: ../sflphone-client-gnome/src/config/hooks-config.c:130
 msgid "URL Argument"
-msgstr "Stringa URL"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/hooks-config.c:135
 msgid "Custom commands on incoming calls with URL"
-msgstr "Comandi custom sulle chiamate in ingresso con URL"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/hooks-config.c:138
 #, c-format
 msgid "%s will be replaced with the passed URL."
-msgstr "%s saranno rimpiazzati dall'URL fornito."
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/hooks-config.c:141
 msgid "Trigger on specific _SIP header"
@@ -824,9 +819,6 @@ msgid ""
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
 "also be used if no account can be matched to an incoming or outgoing call."
 msgstr ""
-"Questo profilo è utilizzato quando vuoi raggiungere un nodo remoto semplicemente digitando un "
-"URI sip tipo <b>sip:remotepeer</b>. Le configurazione che definisci qui saranno "
-"usate anche se nessun account corrisponde ad una chiamata in ingresso o in uscita."
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:274
 msgid "SIP Port"
@@ -834,7 +826,7 @@ msgstr "SIP Port"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:281
 msgid "UDP Transport"
-msgstr "Trasporto UDP"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:319
 msgid "Desktop Notifications"
@@ -878,11 +870,11 @@ msgstr "giorni"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
 msgid "Configuration File"
-msgstr "File di configurazione"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
 msgid "Store SIP credentials as MD5 hash"
-msgstr "Memorizza le credenziali SIP in MD5"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:423
 msgid "Preferences"
@@ -898,19 +890,19 @@ msgstr "Rubrica"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:458
 msgid "Hooks"
-msgstr "Agganci"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:468
 msgid "Direct IP calls"
-msgstr "Chiamate IP dirette"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:38
 msgid "Advanced options for TLS"
-msgstr "Opzioni avanzate per TLS"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
 msgid "TLS transport"
-msgstr "Trasporto TLS"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
 msgid ""
@@ -920,78 +912,74 @@ msgid ""
 "dedicated\n"
 "port, different one from each other\n"
 msgstr ""
-"Il trasporto TLS può essere utilizzato con UDP per le chiamate che\n"
-"richiedono transazioni sip sicure (aka SIPS). Puoi configurare un trasporto\n"
-"TLS diverso per ognia account. Tuttavia, ognuino di essi girerà su una "
-"porta dedicata, differente dalle altre\n"
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
 msgid "Certificate of Authority list"
-msgstr "Lista delle Autorità di certificazione"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
 msgid "Choose a CA list file (optional)"
-msgstr "Scelgi una lista di CA (opzionale)"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:115
 msgid "Public endpoint certificate file"
-msgstr "File di certificato dell'endpoint pubblico"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:119
 msgid "Choose a public endpoint certificate (optional)"
-msgstr "Scegli un certificato dell'endpoint pubblico (opzionale)"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:134
 msgid "Choose a private key file (optional)"
-msgstr "Scegli un file con la chiave privata (opzionale)"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:145
 msgid "Password for the private key"
-msgstr "Password per la chiave privata"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:168
 msgid "TLS protocol method"
-msgstr "Metodo del protocollo TLS"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:202
 msgid "TLS cipher list"
-msgstr "Cifratura TLS"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:211
 msgid "Server name instance for outgoing TLS connection"
-msgstr "Nome dell'istanza serfer pre connessioni TLS in uscita"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:219
 msgid "Negotiation timeout (sec:msec)"
-msgstr "Timeout di negoziazione (sec:msec)"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:236
 msgid "Verify incoming certificates, as a server"
-msgstr "Verifica certificati in ingresso, come server"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:242
 msgid "Verify certificates from answer, as a client"
-msgstr "Verifica certificati nella risposta, come client"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:248
 msgid "Require certificate for incoming tls connections"
-msgstr "Richiede un certificato per le connessioni tls in ingresso"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:49
 msgid "ZRTP Options"
-msgstr "Opziobi ZRTP"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:68
 msgid "Send Hello Hash in S_DP"
-msgstr "Invia Hello Hash in S_DP"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:74
 msgid "Ask User to Confirm SAS"
-msgstr "Chiedi all'utente di confermare SAS"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:80
 msgid "_Warn if ZRTP not supported"
-msgstr "Notifica se ZRTP non è supportato"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:86
 msgid "Display SAS once for hold events"
@@ -1023,8 +1011,8 @@ msgstr "Cerca tra le chiamate effettuate"
 #~ msgid "(C) 2009 Savoir-faire Linux"
 #~ msgstr "(C) 2009 Savoir-faire Linux"
 
-#~ msgid "Jérémy Quentin"
-#~ msgstr "Jérémy Quentin"
+#~ msgid "Jérémy Quentin"
+#~ msgstr "Jérémy Quentin"
 
 #~ msgid "Address book"
 #~ msgstr "Rubrica"
@@ -1096,7 +1084,7 @@ msgstr "Cerca tra le chiamate effettuate"
 #~ msgstr "_Account"
 
 #~ msgid "Port"
-#~ msgstr "Porta"
+#~ msgstr "Port"
 
 #~ msgid "PulseAudio sound server"
 #~ msgstr "Server audio PulseAudio"
@@ -1156,7 +1144,7 @@ msgstr "Cerca tra le chiamate effettuate"
 #~ msgstr "Abilita STUN"
 
 #~ msgid "Format : name.server:port"
-#~ msgstr "Formato: nome.server:porta"
+#~ msgstr "Formato: nome.del.server:porta"
 
 #~ msgid "Incoming call"
 #~ msgstr "Chiamata in arrivo"
@@ -1195,24 +1183,24 @@ msgstr "Cerca tra le chiamate effettuate"
 #~ "Pressing \"apply\" will restart the network layer. Otherwise, SFLPhone would "
 #~ "have to be restarted."
 #~ msgstr ""
-#~ "Premendo il tasto \"Applica\" il modulo di rete verrà  riavviato. In "
+#~ "Premendo il tasto \"Applica\" il modulo di rete verrà riavviato. In "
 #~ "alternativa occorrerebbe riavviare SFLphone."
 
 #~ msgid "Creation of account has failed for the reason"
-#~ msgstr "La creazione dell'account è fallita per il seguente motivo"
+#~ msgstr "La creazione dell'accound è fallita per il seguente motivo"
 
 #~ msgid "Account creation wizard"
 #~ msgstr "Procedura guidata creazione account"
 
 #~ msgctxt "NAME OF TRANSLATORS"
 #~ msgid "Your names"
-#~ msgstr "I tuoi nomi"
+#~ msgstr ""
 #~ ",Launchpad Contributions:,Maurizio Porrato,Maxime Chambreuil, ,Launchpad "
 #~ "Contributions:,Maurizio Porrato,Maxime Chambreuil, ,Launchpad "
 #~ "Contributions:,Maurizio Porrato,Maxime Chambreuil"
 
 #~ msgctxt "EMAIL OF TRANSLATORS"
 #~ msgid "Your emails"
-#~ msgstr "I tuoi indirizzi email"
+#~ msgstr ""
 #~ ",,,maxime.chambreuil@gmail.com,,,,maxime.chambreuil@gmail.com,,,,maxime.chamb"
 #~ "reuil@gmail.com"
diff --git a/lang/ja.po b/lang/ja.po
deleted file mode 100644
index 2cf0f2f7b7..0000000000
--- a/lang/ja.po
+++ /dev/null
@@ -1,995 +0,0 @@
-# Japanese translation for sflphone
-# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
-# This file is distributed under the same license as the sflphone package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: sflphone\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2009-10-14 11:18-0400\n"
-"PO-Revision-Date: 2009-10-25 12:58+0000\n"
-"Last-Translator: DanyBoy <daniel@mon-ocean.com>\n"
-"Language-Team: Japanese <ja@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2009-10-26 15:48+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#: ../sflphone-client-gnome/src/accountlist.c:175
-msgid "Registered"
-msgstr "登録しました"
-
-#: ../sflphone-client-gnome/src/accountlist.c:178
-msgid "Not Registered"
-msgstr "登録できません"
-
-#: ../sflphone-client-gnome/src/accountlist.c:181
-msgid "Trying..."
-msgstr "検索中..."
-
-#: ../sflphone-client-gnome/src/accountlist.c:184
-#: ../sflphone-client-gnome/src/sflnotify.c:131
-#: ../sflphone-client-gnome/src/sflnotify.c:148
-msgid "Error"
-msgstr "エラー"
-
-#: ../sflphone-client-gnome/src/accountlist.c:187
-msgid "Authentication Failed"
-msgstr "認証に失敗"
-
-#: ../sflphone-client-gnome/src/accountlist.c:190
-msgid "Network unreachable"
-msgstr "ネットワークに接続できません"
-
-#: ../sflphone-client-gnome/src/accountlist.c:193
-msgid "Host unreachable"
-msgstr "ホストに接続できません"
-
-#: ../sflphone-client-gnome/src/accountlist.c:196
-msgid "Stun configuration error"
-msgstr "構成エラー"
-
-#: ../sflphone-client-gnome/src/accountlist.c:199
-msgid "Stun server invalid"
-msgstr "サーバー無効"
-
-#: ../sflphone-client-gnome/src/accountlist.c:202
-msgid "Invalid"
-msgstr "無効"
-
-#: ../sflphone-client-gnome/src/actions.c:54
-#: ../sflphone-client-gnome/src/sflnotify.c:94
-#, c-format
-msgid "%d voice mail"
-msgid_plural "%d voice mails"
-msgstr[0] "%d ボイスメール"
-
-#: ../sflphone-client-gnome/src/actions.c:83
-#: ../sflphone-client-gnome/src/actions.c:919
-#: ../sflphone-client-gnome/src/actions.c:926
-msgid "Using account"
-msgstr "アカウント使っています"
-
-#: ../sflphone-client-gnome/src/actions.c:89
-msgid "No registered accounts"
-msgstr "アカウント登録されていません"
-
-#: ../sflphone-client-gnome/src/actions.c:268
-msgid ""
-"Unable to connect to the SFLphone server.\n"
-"Make sure the daemon is running."
-msgstr ""
-"SFLphoneサーバに接続できません\n"
-"デーモンを確認してください。"
-
-#: ../sflphone-client-gnome/src/actions.c:913
-#, c-format
-msgid "IP call - %s"
-msgstr "IP 電話 -%s"
-
-#: ../sflphone-client-gnome/src/actions.c:922
-msgid "Codec"
-msgstr "コーデック"
-
-#: ../sflphone-client-gnome/src/actions.c:1119
-#, c-format
-msgid ""
-"<b>Error: No audio codecs found.\n"
-"\n"
-"</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
-"<b>.sflphone</b> directory in your home( <i>%s</i> )"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/errors.c:29
-msgid ""
-"ALSA notification\n"
-"\n"
-"Error while opening playback device"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/errors.c:32
-msgid ""
-"ALSA notification\n"
-"\n"
-"Error while opening capture device"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/errors.c:35
-msgid ""
-"Pulseaudio notification\n"
-"\n"
-"Pulseaudio is not running"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:73
-msgid "There is one call in progress."
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:77
-msgid "There are calls in progress."
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:86
-msgid "Do you still want to quit?"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:299
-msgid "SFLphone Error"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:391
-#, c-format
-msgid "ZRTP is not supported by peer %s\n"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:392
-msgid "Secure Communication Unavailable"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:393
-#: ../sflphone-client-gnome/src/mainwindow.c:415
-msgid "Continue"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:394
-#: ../sflphone-client-gnome/src/mainwindow.c:416
-#: ../sflphone-client-gnome/src/mainwindow.c:430
-msgid "Stop Call"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:413
-#, c-format
-msgid ""
-"A %s error forced the call with %s to fall under unencrypted mode.\n"
-"Exact reason: %s\n"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:414
-msgid "ZRTP negotiation failed"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:427
-#, c-format
-msgid ""
-"%s wants to stop using secure communication. Confirm will resume "
-"conversation without SRTP.\n"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:428
-msgid "Confirm Go Clear"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:429
-msgid "Confirm"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/sflnotify.c:71
-#: ../sflphone-client-gnome/src/sflnotify.c:91
-#, c-format
-msgid "%s account : %s"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/sflnotify.c:75
-#, c-format
-msgid "<i>From</i> %s"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/sflnotify.c:111
-#, c-format
-msgid "Calling with %s account <i>%s</i>"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/sflnotify.c:115
-msgid "Current account"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/sflnotify.c:130
-msgid "You have no accounts set up"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/sflnotify.c:147
-msgid "You have no registered accounts"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/sflnotify.c:190
-#, c-format
-msgid ""
-"<i>With:</i> %s \n"
-"using %s"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/sflnotify.c:205
-#, c-format
-msgid "%s does not support ZRTP."
-msgstr ""
-
-#: ../sflphone-client-gnome/src/sflnotify.c:220
-#, c-format
-msgid "ZRTP negotiation failed with %s"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/sflnotify.c:235
-#, c-format
-msgid "<i>With:</i> %s"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/sliders.c:162
-msgid "Speakers volume"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/sliders.c:164
-msgid "Mic volume"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/statusicon.c:91
-msgid "_Show main window"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/statusicon.c:126
-msgid "SFLphone"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/statusicon.c:127
-#, c-format
-msgid "%i account configured"
-msgid_plural "%i accounts configured"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../sflphone-client-gnome/src/toolbar.c:38
-#: ../sflphone-client-gnome/src/uimanager.c:750
-msgid "Voicemail"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/uimanager.c:403
-msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
-msgstr ""
-
-#: ../sflphone-client-gnome/src/uimanager.c:406
-msgid "About SFLphone"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/uimanager.c:1028
-msgid "_Pick up"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/uimanager.c:1040
-#: ../sflphone-client-gnome/src/uimanager.c:1081
-msgid "_Hang up"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/uimanager.c:1052
-#: ../sflphone-client-gnome/src/uimanager.c:1093
-msgid "On _Hold"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/uimanager.c:1064
-msgid "_Record"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/uimanager.c:1154
-msgid "_Call back"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/uimanager.c:1226
-msgid "_New call"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/uimanager.c:1300
-msgid "Edit phone number"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/uimanager.c:1311
-msgid "Edit the phone number before making a call"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:164
-msgid "Account Parameters"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:173
-#: ../sflphone-client-gnome/src/config/assistant.c:294
-#: ../sflphone-client-gnome/src/config/assistant.c:402
-msgid "_Alias"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:181
-msgid "_Protocol"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:199
-msgid "Unknown"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:209
-#: ../sflphone-client-gnome/src/config/assistant.c:302
-#: ../sflphone-client-gnome/src/config/assistant.c:410
-msgid "_Host name"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:217
-#: ../sflphone-client-gnome/src/config/assistant.c:310
-#: ../sflphone-client-gnome/src/config/assistant.c:418
-msgid "_User name"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:234
-#: ../sflphone-client-gnome/src/config/assistant.c:326
-#: ../sflphone-client-gnome/src/config/assistant.c:433
-msgid "_Password"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:254
-#: ../sflphone-client-gnome/src/config/assistant.c:344
-#: ../sflphone-client-gnome/src/config/assistant.c:449
-msgid "_Voicemail number"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:340
-msgid "Authentication"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
-msgid "Secret"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
-msgid "Credential"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:501
-msgid "Authentication name"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:512
-msgid "Password"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:535
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:909
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:201
-msgid "Security"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:547
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:213
-msgid "Use TLS transport (sips)"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:552
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:218
-msgid "SRTP key exchange"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
-msgid "Disabled"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
-msgid "Registration"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
-msgid "Registration expire"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
-msgid "_Comply with RFC 3263"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
-msgid "Network"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
-msgid "Local address"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
-msgid "Local port"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:752
-msgid "Set published address and port:"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:756
-msgid "Using STUN "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:761
-msgid "Same as local parameters"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:764
-msgid "Manually"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:769
-msgid "Published address"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:777
-msgid "Published port"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:785
-msgid "STUN server URL"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
-msgid "Account settings"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
-msgid "Basic"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:904
-msgid "Advanced"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:169
-msgid "Server returned \""
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
-msgid "Protocol"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:396
-msgid "Status"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:474
-msgid "Accounts"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:484
-msgid "Configured Accounts"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
-msgid "There "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "is "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "are "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
-msgid " active account"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
-msgid "s"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
-msgid "You have no active account"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/addressbook-config.c:306
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
-msgid "General"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/addressbook-config.c:312
-msgid "_Use Evolution address books"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/addressbook-config.c:319
-msgid "Download limit :"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/addressbook-config.c:327
-msgid "cards"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/addressbook-config.c:333
-msgid "_Display contact photo if available"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/addressbook-config.c:341
-msgid "Fields from Evolution's address books"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/addressbook-config.c:345
-msgid "_Work"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/addressbook-config.c:351
-msgid "_Home"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/addressbook-config.c:357
-msgid "_Mobile"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/addressbook-config.c:364
-msgid "Address Books"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/addressbook-config.c:368
-msgid "Select which Evolution address books to use"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/addressbook-config.c:404
-#: ../sflphone-client-gnome/src/config/audioconf.c:578
-msgid "Name"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:69
-#, c-format
-msgid "This assistant is now finished."
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:71
-msgid ""
-"You can at any time check your registration state or modify your accounts "
-"parameters in the Options/Accounts window."
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:74
-msgid "Alias"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:78
-msgid "Server"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:82
-msgid "Username"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:86
-msgid "Security: "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:88
-msgid "SRTP/ZRTP draft-zimmermann"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:90
-#: ../sflphone-client-gnome/src/config/assistant.c:182
-msgid "None"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:210
-msgid "SFLphone account creation wizard"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:236
-msgid "Welcome to the Account creation wizard of SFLphone!"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:237
-msgid "This installation wizard will help you configure an account."
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:251
-msgid "VoIP Protocols"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:251
-msgid "Select an account type"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:253
-msgid "SIP (Session Initiation Protocol)"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:255
-msgid "IAX2 (InterAsterix Exchange)"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:269
-msgid "Account"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:269
-msgid "Please select one of the following options"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:271
-msgid "Create a free SIP/IAX2 account on sflphone.org"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:273
-msgid "Register an existing SIP or IAX2 account"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:286
-msgid "SIP account settings"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:286
-#: ../sflphone-client-gnome/src/config/assistant.c:394
-msgid "Please fill the following information"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:352
-#: ../sflphone-client-gnome/src/config/assistant.c:381
-msgid "Secure communications with _ZRTP"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:365
-msgid "Optional email address"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:365
-msgid "This email address will be used to send your voicemail messages."
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:373
-msgid "_Email address"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:394
-msgid "IAX2 account settings"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:467
-msgid "Network Address Translation (NAT)"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:467
-msgid "You should probably enable this if you are behind a firewall."
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:476
-msgid "E_nable STUN"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:483
-msgid "_STUN server"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:497
-msgid "Account Registration"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:497
-msgid "Congratulations!"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:583
-msgid "Frequency"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:588
-msgid "Bitrate"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:593
-msgid "Bandwidth"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:673
-msgid "ALSA plugin"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:695
-msgid "Output"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:717
-msgid "Input"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:752
-msgid "_Voice Activity Detection"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:762
-msgid "_Noise Reduction (Narrow-Band Companding)"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:798
-msgid "Sound Manager"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:807
-msgid "_Pulseaudio"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:811
-msgid "_ALSA"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:816
-msgid "_Mute other applications during a call"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:823
-msgid "ALSA settings"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:840
-msgid "Codecs"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:869
-msgid "Recordings"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:873
-msgid "Destination folder"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:877
-msgid "Select a folder"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:883
-msgid "Ringtones"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:889
-msgid "_Enable ringtones"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:895
-msgid "Choose a ringtone"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:901
-msgid "Audio Files"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/hooks-config.c:130
-msgid "URL Argument"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/hooks-config.c:135
-msgid "Custom commands on incoming calls with URL"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/hooks-config.c:138
-#, c-format
-msgid "%s will be replaced with the passed URL."
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/hooks-config.c:141
-msgid "Trigger on specific _SIP header"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/hooks-config.c:150
-msgid "Trigger on _IAX2 URL"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/hooks-config.c:155
-msgid "Command to _run"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/hooks-config.c:165
-msgid "Phone number rewriting"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/hooks-config.c:169
-msgid "_Prefix dialed numbers with"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:195
-msgid ""
-"This profile is used when you want to reach a remote peer simply by typing a "
-"sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
-"also be used if no account can be matched to an incoming or outgoing call."
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:274
-msgid "SIP Port"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:281
-msgid "UDP Transport"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:319
-msgid "Desktop Notifications"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:323
-msgid "_Enable notifications"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:329
-msgid "Enable voicemail _notifications"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:341
-msgid "System Tray Icon"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
-msgid "_Popup main window on incoming call"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:349
-msgid "Ne_ver popup main window"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:353
-msgid "Hide SFLphone window on _startup"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:359
-msgid "Calls History"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:362
-msgid "_Keep my history for at least"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:373
-msgid "days"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
-msgid "Configuration File"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
-msgid "Store SIP credentials as MD5 hash"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:423
-msgid "Preferences"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:448
-msgid "Audio"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
-msgid "Address Book"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:458
-msgid "Hooks"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:468
-msgid "Direct IP calls"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:38
-msgid "Advanced options for TLS"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
-msgid "TLS transport"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
-msgid ""
-"TLS transport can be used along with UDP for those calls that would\n"
-"require secure sip transactions (aka SIPS). You can configure a different\n"
-"TLS transport for each account. However, each of them will run on a "
-"dedicated\n"
-"port, different one from each other\n"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
-msgid "Certificate of Authority list"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
-msgid "Choose a CA list file (optional)"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:115
-msgid "Public endpoint certificate file"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:119
-msgid "Choose a public endpoint certificate (optional)"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:134
-msgid "Choose a private key file (optional)"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:145
-msgid "Password for the private key"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:168
-msgid "TLS protocol method"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:202
-msgid "TLS cipher list"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:211
-msgid "Server name instance for outgoing TLS connection"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:219
-msgid "Negotiation timeout (sec:msec)"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:236
-msgid "Verify incoming certificates, as a server"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:242
-msgid "Verify certificates from answer, as a client"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:248
-msgid "Require certificate for incoming tls connections"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:49
-msgid "ZRTP Options"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:68
-msgid "Send Hello Hash in S_DP"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:74
-msgid "Ask User to Confirm SAS"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:80
-msgid "_Warn if ZRTP not supported"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:86
-msgid "Display SAS once for hold events"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:56
-msgid "Search all"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:57
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:70
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:82
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:94
-msgid "Click here to change the search type"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:69
-msgid "Search by missed call"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:81
-msgid "Search by incoming call"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:93
-msgid "Search by outgoing call"
-msgstr ""
diff --git a/lang/ko.po b/lang/ko.po
deleted file mode 100644
index a614e49297..0000000000
--- a/lang/ko.po
+++ /dev/null
@@ -1,1006 +0,0 @@
-# Korean translation for sflphone
-# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
-# This file is distributed under the same license as the sflphone package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: sflphone\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-14 11:18-0400\n"
-"PO-Revision-Date: 2009-10-14 17:31+0000\n"
-"Last-Translator: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>\n"
-"Language-Team: Korean <ko@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2009-10-26 15:48+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#: ../sflphone-client-gnome/src/accountlist.c:175
-msgid "Registered"
-msgstr "등록했습니다"
-
-#: ../sflphone-client-gnome/src/accountlist.c:178
-msgid "Not Registered"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/accountlist.c:181
-msgid "Trying..."
-msgstr ""
-
-#: ../sflphone-client-gnome/src/accountlist.c:184
-#: ../sflphone-client-gnome/src/sflnotify.c:131
-#: ../sflphone-client-gnome/src/sflnotify.c:148
-msgid "Error"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/accountlist.c:187
-msgid "Authentication Failed"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/accountlist.c:190
-msgid "Network unreachable"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/accountlist.c:193
-msgid "Host unreachable"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/accountlist.c:196
-msgid "Stun configuration error"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/accountlist.c:199
-msgid "Stun server invalid"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/accountlist.c:202
-msgid "Invalid"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/actions.c:54
-#: ../sflphone-client-gnome/src/sflnotify.c:94
-#, c-format
-msgid "%d voice mail"
-msgid_plural "%d voice mails"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../sflphone-client-gnome/src/actions.c:83
-#: ../sflphone-client-gnome/src/actions.c:919
-#: ../sflphone-client-gnome/src/actions.c:926
-msgid "Using account"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/actions.c:89
-msgid "No registered accounts"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/actions.c:268
-msgid ""
-"Unable to connect to the SFLphone server.\n"
-"Make sure the daemon is running."
-msgstr ""
-
-#: ../sflphone-client-gnome/src/actions.c:913
-#, c-format
-msgid "IP call - %s"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/actions.c:922
-msgid "Codec"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/actions.c:1119
-#, c-format
-msgid ""
-"<b>Error: No audio codecs found.\n"
-"\n"
-"</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
-"<b>.sflphone</b> directory in your home( <i>%s</i> )"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/errors.c:29
-msgid ""
-"ALSA notification\n"
-"\n"
-"Error while opening playback device"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/errors.c:32
-msgid ""
-"ALSA notification\n"
-"\n"
-"Error while opening capture device"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/errors.c:35
-msgid ""
-"Pulseaudio notification\n"
-"\n"
-"Pulseaudio is not running"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:73
-msgid "There is one call in progress."
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:77
-msgid "There are calls in progress."
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:86
-msgid "Do you still want to quit?"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:299
-msgid "SFLphone Error"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:391
-#, c-format
-msgid "ZRTP is not supported by peer %s\n"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:392
-msgid "Secure Communication Unavailable"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:393
-#: ../sflphone-client-gnome/src/mainwindow.c:415
-msgid "Continue"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:394
-#: ../sflphone-client-gnome/src/mainwindow.c:416
-#: ../sflphone-client-gnome/src/mainwindow.c:430
-msgid "Stop Call"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:413
-#, c-format
-msgid ""
-"A %s error forced the call with %s to fall under unencrypted mode.\n"
-"Exact reason: %s\n"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:414
-msgid "ZRTP negotiation failed"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:427
-#, c-format
-msgid ""
-"%s wants to stop using secure communication. Confirm will resume "
-"conversation without SRTP.\n"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:428
-msgid "Confirm Go Clear"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/mainwindow.c:429
-msgid "Confirm"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/sflnotify.c:71
-#: ../sflphone-client-gnome/src/sflnotify.c:91
-#, c-format
-msgid "%s account : %s"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/sflnotify.c:75
-#, c-format
-msgid "<i>From</i> %s"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/sflnotify.c:111
-#, c-format
-msgid "Calling with %s account <i>%s</i>"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/sflnotify.c:115
-msgid "Current account"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/sflnotify.c:130
-msgid "You have no accounts set up"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/sflnotify.c:147
-msgid "You have no registered accounts"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/sflnotify.c:190
-#, c-format
-msgid ""
-"<i>With:</i> %s \n"
-"using %s"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/sflnotify.c:205
-#, c-format
-msgid "%s does not support ZRTP."
-msgstr ""
-
-#: ../sflphone-client-gnome/src/sflnotify.c:220
-#, c-format
-msgid "ZRTP negotiation failed with %s"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/sflnotify.c:235
-#, c-format
-msgid "<i>With:</i> %s"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/sliders.c:162
-msgid "Speakers volume"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/sliders.c:164
-msgid "Mic volume"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/statusicon.c:91
-msgid "_Show main window"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/statusicon.c:126
-msgid "SFLphone"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/statusicon.c:127
-#, c-format
-msgid "%i account configured"
-msgid_plural "%i accounts configured"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../sflphone-client-gnome/src/toolbar.c:38
-#: ../sflphone-client-gnome/src/uimanager.c:750
-msgid "Voicemail"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/uimanager.c:403
-msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
-msgstr ""
-
-#: ../sflphone-client-gnome/src/uimanager.c:406
-msgid "About SFLphone"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/uimanager.c:1028
-msgid "_Pick up"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/uimanager.c:1040
-#: ../sflphone-client-gnome/src/uimanager.c:1081
-msgid "_Hang up"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/uimanager.c:1052
-#: ../sflphone-client-gnome/src/uimanager.c:1093
-msgid "On _Hold"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/uimanager.c:1064
-msgid "_Record"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/uimanager.c:1154
-msgid "_Call back"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/uimanager.c:1226
-msgid "_New call"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/uimanager.c:1300
-msgid "Edit phone number"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/uimanager.c:1311
-msgid "Edit the phone number before making a call"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:164
-msgid "Account Parameters"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:173
-#: ../sflphone-client-gnome/src/config/assistant.c:294
-#: ../sflphone-client-gnome/src/config/assistant.c:402
-msgid "_Alias"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:181
-msgid "_Protocol"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:199
-msgid "Unknown"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:209
-#: ../sflphone-client-gnome/src/config/assistant.c:302
-#: ../sflphone-client-gnome/src/config/assistant.c:410
-msgid "_Host name"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:217
-#: ../sflphone-client-gnome/src/config/assistant.c:310
-#: ../sflphone-client-gnome/src/config/assistant.c:418
-msgid "_User name"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:234
-#: ../sflphone-client-gnome/src/config/assistant.c:326
-#: ../sflphone-client-gnome/src/config/assistant.c:433
-msgid "_Password"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:254
-#: ../sflphone-client-gnome/src/config/assistant.c:344
-#: ../sflphone-client-gnome/src/config/assistant.c:449
-msgid "_Voicemail number"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:340
-msgid "Authentication"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
-msgid "Secret"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
-msgid "Credential"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:501
-msgid "Authentication name"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:512
-msgid "Password"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:535
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:909
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:201
-msgid "Security"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:547
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:213
-msgid "Use TLS transport (sips)"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:552
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:218
-msgid "SRTP key exchange"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
-msgid "Disabled"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
-msgid "Registration"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
-msgid "Registration expire"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
-msgid "_Comply with RFC 3263"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
-msgid "Network"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
-msgid "Local address"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
-msgid "Local port"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:752
-msgid "Set published address and port:"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:756
-msgid "Using STUN "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:761
-msgid "Same as local parameters"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:764
-msgid "Manually"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:769
-msgid "Published address"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:777
-msgid "Published port"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:785
-msgid "STUN server URL"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
-msgid "Account settings"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
-msgid "Basic"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:904
-msgid "Advanced"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:169
-msgid "Server returned \""
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
-msgid "Protocol"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:396
-msgid "Status"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:474
-msgid "Accounts"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:484
-msgid "Configured Accounts"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
-msgid "There "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "is "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "are "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
-msgid " active account"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
-msgid "s"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
-msgid "You have no active account"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/addressbook-config.c:306
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
-msgid "General"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/addressbook-config.c:312
-msgid "_Use Evolution address books"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/addressbook-config.c:319
-msgid "Download limit :"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/addressbook-config.c:327
-msgid "cards"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/addressbook-config.c:333
-msgid "_Display contact photo if available"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/addressbook-config.c:341
-msgid "Fields from Evolution's address books"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/addressbook-config.c:345
-msgid "_Work"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/addressbook-config.c:351
-msgid "_Home"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/addressbook-config.c:357
-msgid "_Mobile"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/addressbook-config.c:364
-msgid "Address Books"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/addressbook-config.c:368
-msgid "Select which Evolution address books to use"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/addressbook-config.c:404
-#: ../sflphone-client-gnome/src/config/audioconf.c:578
-msgid "Name"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:69
-#, c-format
-msgid "This assistant is now finished."
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:71
-msgid ""
-"You can at any time check your registration state or modify your accounts "
-"parameters in the Options/Accounts window."
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:74
-msgid "Alias"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:78
-msgid "Server"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:82
-msgid "Username"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:86
-msgid "Security: "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:88
-msgid "SRTP/ZRTP draft-zimmermann"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:90
-#: ../sflphone-client-gnome/src/config/assistant.c:182
-msgid "None"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:210
-msgid "SFLphone account creation wizard"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:236
-msgid "Welcome to the Account creation wizard of SFLphone!"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:237
-msgid "This installation wizard will help you configure an account."
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:251
-msgid "VoIP Protocols"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:251
-msgid "Select an account type"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:253
-msgid "SIP (Session Initiation Protocol)"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:255
-msgid "IAX2 (InterAsterix Exchange)"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:269
-msgid "Account"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:269
-msgid "Please select one of the following options"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:271
-msgid "Create a free SIP/IAX2 account on sflphone.org"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:273
-msgid "Register an existing SIP or IAX2 account"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:286
-msgid "SIP account settings"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:286
-#: ../sflphone-client-gnome/src/config/assistant.c:394
-msgid "Please fill the following information"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:352
-#: ../sflphone-client-gnome/src/config/assistant.c:381
-msgid "Secure communications with _ZRTP"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:365
-msgid "Optional email address"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:365
-msgid "This email address will be used to send your voicemail messages."
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:373
-msgid "_Email address"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:394
-msgid "IAX2 account settings"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:467
-msgid "Network Address Translation (NAT)"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:467
-msgid "You should probably enable this if you are behind a firewall."
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:476
-msgid "E_nable STUN"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:483
-msgid "_STUN server"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:497
-msgid "Account Registration"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/assistant.c:497
-msgid "Congratulations!"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:583
-msgid "Frequency"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:588
-msgid "Bitrate"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:593
-msgid "Bandwidth"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:673
-msgid "ALSA plugin"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:695
-msgid "Output"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:717
-msgid "Input"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:752
-msgid "_Voice Activity Detection"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:762
-msgid "_Noise Reduction (Narrow-Band Companding)"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:798
-msgid "Sound Manager"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:807
-msgid "_Pulseaudio"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:811
-msgid "_ALSA"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:816
-msgid "_Mute other applications during a call"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:823
-msgid "ALSA settings"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:840
-msgid "Codecs"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:869
-msgid "Recordings"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:873
-msgid "Destination folder"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:877
-msgid "Select a folder"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:883
-msgid "Ringtones"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:889
-msgid "_Enable ringtones"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:895
-msgid "Choose a ringtone"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:901
-msgid "Audio Files"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/hooks-config.c:130
-msgid "URL Argument"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/hooks-config.c:135
-msgid "Custom commands on incoming calls with URL"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/hooks-config.c:138
-#, c-format
-msgid "%s will be replaced with the passed URL."
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/hooks-config.c:141
-msgid "Trigger on specific _SIP header"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/hooks-config.c:150
-msgid "Trigger on _IAX2 URL"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/hooks-config.c:155
-msgid "Command to _run"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/hooks-config.c:165
-msgid "Phone number rewriting"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/hooks-config.c:169
-msgid "_Prefix dialed numbers with"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:195
-msgid ""
-"This profile is used when you want to reach a remote peer simply by typing a "
-"sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
-"also be used if no account can be matched to an incoming or outgoing call."
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:274
-msgid "SIP Port"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:281
-msgid "UDP Transport"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:319
-msgid "Desktop Notifications"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:323
-msgid "_Enable notifications"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:329
-msgid "Enable voicemail _notifications"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:341
-msgid "System Tray Icon"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
-msgid "_Popup main window on incoming call"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:349
-msgid "Ne_ver popup main window"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:353
-msgid "Hide SFLphone window on _startup"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:359
-msgid "Calls History"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:362
-msgid "_Keep my history for at least"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:373
-msgid "days"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
-msgid "Configuration File"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
-msgid "Store SIP credentials as MD5 hash"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:423
-msgid "Preferences"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:448
-msgid "Audio"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
-msgid "Address Book"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:458
-msgid "Hooks"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:468
-msgid "Direct IP calls"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:38
-msgid "Advanced options for TLS"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
-msgid "TLS transport"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
-msgid ""
-"TLS transport can be used along with UDP for those calls that would\n"
-"require secure sip transactions (aka SIPS). You can configure a different\n"
-"TLS transport for each account. However, each of them will run on a "
-"dedicated\n"
-"port, different one from each other\n"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
-msgid "Certificate of Authority list"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
-msgid "Choose a CA list file (optional)"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:115
-msgid "Public endpoint certificate file"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:119
-msgid "Choose a public endpoint certificate (optional)"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:134
-msgid "Choose a private key file (optional)"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:145
-msgid "Password for the private key"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:168
-msgid "TLS protocol method"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:202
-msgid "TLS cipher list"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:211
-msgid "Server name instance for outgoing TLS connection"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:219
-msgid "Negotiation timeout (sec:msec)"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:236
-msgid "Verify incoming certificates, as a server"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:242
-msgid "Verify certificates from answer, as a client"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:248
-msgid "Require certificate for incoming tls connections"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:49
-msgid "ZRTP Options"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:68
-msgid "Send Hello Hash in S_DP"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:74
-msgid "Ask User to Confirm SAS"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:80
-msgid "_Warn if ZRTP not supported"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:86
-msgid "Display SAS once for hold events"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:56
-msgid "Search all"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:57
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:70
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:82
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:94
-msgid "Click here to change the search type"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:69
-msgid "Search by missed call"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:81
-msgid "Search by incoming call"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:93
-msgid "Search by outgoing call"
-msgstr ""
-
-#~ msgctxt "NAME OF TRANSLATORS"
-#~ msgid "Your names"
-#~ msgstr ""
-#~ ",Launchpad Contributions:, ,Launchpad Contributions:,Emmanuel Milou,Scion, "
-#~ ",Launchpad Contributions:,Emmanuel Milou,Scion"
-
-#~ msgctxt "EMAIL OF TRANSLATORS"
-#~ msgid "Your emails"
-#~ msgstr ""
-#~ ",,,,emmanuel.milou@savoirfairelinux.com,,,,emmanuel.milou@savoirfairelinux.co"
-#~ "m,"
diff --git a/lang/ko/ko.po b/lang/ko/ko.po
index bce28b2655..977d90d869 100644
--- a/lang/ko/ko.po
+++ b/lang/ko/ko.po
@@ -3,20 +3,19 @@
 # This file is distributed under the same license as the sflphone package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
 #
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
 msgid ""
 msgstr ""
 "Project-Id-Version: sflphone\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-10-14 11:18-0400\n"
-"PO-Revision-Date: 2009-10-14 14:47+0000\n"
-"Last-Translator: Scion <Unknown>\n"
+"PO-Revision-Date: 2009-10-26 20:46+0000\n"
+"Last-Translator: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>\n"
 "Language-Team: Korean <ko@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2009-10-14 15:20+0000\n"
+"X-Launchpad-Export-Date: 2009-12-03 15:32+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
 #: ../sflphone-client-gnome/src/accountlist.c:175
@@ -99,8 +98,8 @@ msgstr ""
 msgid ""
 "<b>Error: No audio codecs found.\n"
 "\n"
-"</b> SFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</"
-"b> directory in your home( <i>%s</i> )"
+"</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
+"<b>.sflphone</b> directory in your home( <i>%s</i> )"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/errors.c:29
@@ -390,9 +389,8 @@ msgid "Disabled"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
-#, fuzzy
 msgid "Registration"
-msgstr "등록했습니다"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
 msgid "Registration expire"
@@ -998,8 +996,12 @@ msgstr ""
 #~ msgctxt "NAME OF TRANSLATORS"
 #~ msgid "Your names"
 #~ msgstr ""
-#~ ",Launchpad Contributions:, ,Launchpad Contributions:,Emmanuel Milou,Scion"
+#~ ",Launchpad Contributions:, ,Launchpad Contributions:,Emmanuel Milou,Scion, "
+#~ ",Launchpad Contributions:,Emmanuel Milou,Scion, ,Launchpad "
+#~ "Contributions:,Emmanuel Milou,Scion"
 
 #~ msgctxt "EMAIL OF TRANSLATORS"
 #~ msgid "Your emails"
-#~ msgstr ",,,,emmanuel.milou@savoirfairelinux.com,"
+#~ msgstr ""
+#~ ",,,,emmanuel.milou@savoirfairelinux.com,,,,emmanuel.milou@savoirfairelinux.co"
+#~ "m,,,,emmanuel.milou@savoirfairelinux.com,"
diff --git a/lang/pl/pl.po b/lang/pl/pl.po
index ef0270f757..062ad393b5 100644
--- a/lang/pl/pl.po
+++ b/lang/pl/pl.po
@@ -8,46 +8,46 @@ msgstr ""
 "Project-Id-Version: sflphone\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-10-14 11:18-0400\n"
-"PO-Revision-Date: 2009-10-14 17:24+0000\n"
-"Last-Translator: Maxime Chambreuil <maxime.chambreuil@gmail.com>\n"
+"PO-Revision-Date: 2009-11-04 12:08+0000\n"
+"Last-Translator: Mariusz Bednarz <mbednarz@bedmar.pl>\n"
 "Language-Team: Polish <pl@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
 "|| n%100>=20) ? 1 : 2;\n"
-"X-Launchpad-Export-Date: 2009-10-26 15:48+0000\n"
+"X-Launchpad-Export-Date: 2009-12-03 15:32+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
 #: ../sflphone-client-gnome/src/accountlist.c:175
 msgid "Registered"
-msgstr ""
+msgstr "Zarejestrowany"
 
 #: ../sflphone-client-gnome/src/accountlist.c:178
 msgid "Not Registered"
-msgstr ""
+msgstr "Nie zarejestrowany"
 
 #: ../sflphone-client-gnome/src/accountlist.c:181
 msgid "Trying..."
-msgstr ""
+msgstr "Próbuję ..."
 
 #: ../sflphone-client-gnome/src/accountlist.c:184
 #: ../sflphone-client-gnome/src/sflnotify.c:131
 #: ../sflphone-client-gnome/src/sflnotify.c:148
 msgid "Error"
-msgstr ""
+msgstr "Błąd"
 
 #: ../sflphone-client-gnome/src/accountlist.c:187
 msgid "Authentication Failed"
-msgstr ""
+msgstr "Autoryzacja nie powiodła się"
 
 #: ../sflphone-client-gnome/src/accountlist.c:190
 msgid "Network unreachable"
-msgstr ""
+msgstr "Sieć niedostępna"
 
 #: ../sflphone-client-gnome/src/accountlist.c:193
 msgid "Host unreachable"
-msgstr ""
+msgstr "Wybrany host jest niedostępny"
 
 #: ../sflphone-client-gnome/src/accountlist.c:196
 msgid "Stun configuration error"
@@ -59,40 +59,42 @@ msgstr ""
 
 #: ../sflphone-client-gnome/src/accountlist.c:202
 msgid "Invalid"
-msgstr ""
+msgstr "Niepoprawny"
 
 #: ../sflphone-client-gnome/src/actions.c:54
 #: ../sflphone-client-gnome/src/sflnotify.c:94
 #, c-format
 msgid "%d voice mail"
 msgid_plural "%d voice mails"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%d głosowa wiadomość"
+msgstr[1] "%d głosowych wiadomości"
 
 #: ../sflphone-client-gnome/src/actions.c:83
 #: ../sflphone-client-gnome/src/actions.c:919
 #: ../sflphone-client-gnome/src/actions.c:926
 msgid "Using account"
-msgstr ""
+msgstr "Używane konto"
 
 #: ../sflphone-client-gnome/src/actions.c:89
 msgid "No registered accounts"
-msgstr ""
+msgstr "Brak zarejestrowanych kont"
 
 #: ../sflphone-client-gnome/src/actions.c:268
 msgid ""
 "Unable to connect to the SFLphone server.\n"
 "Make sure the daemon is running."
 msgstr ""
+"Nie można połączyć się z serwerem SFLphone.\n"
+"Upewnij się, że został uruchomiony daemon SFLphone"
 
 #: ../sflphone-client-gnome/src/actions.c:913
 #, c-format
 msgid "IP call - %s"
-msgstr ""
+msgstr "Telefonów IP - %s"
 
 #: ../sflphone-client-gnome/src/actions.c:922
 msgid "Codec"
-msgstr ""
+msgstr "Kodek"
 
 #: ../sflphone-client-gnome/src/actions.c:1119
 #, c-format
@@ -109,6 +111,8 @@ msgid ""
 "\n"
 "Error while opening playback device"
 msgstr ""
+"Informacja ALSA\n"
+"Błąd otwarcia urządzenia do odtwarzania dźwięku"
 
 #: ../sflphone-client-gnome/src/errors.c:32
 msgid ""
@@ -116,6 +120,8 @@ msgid ""
 "\n"
 "Error while opening capture device"
 msgstr ""
+"Informacja ALSA\n"
+"Błąd otwarcia urządzenia do przechwytywania"
 
 #: ../sflphone-client-gnome/src/errors.c:35
 msgid ""
@@ -123,6 +129,8 @@ msgid ""
 "\n"
 "Pulseaudio is not running"
 msgstr ""
+"Informacja Pulseaudio\n"
+"Pulseaudio nie zostało uruchomione"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:73
 msgid "There is one call in progress."
@@ -998,10 +1006,11 @@ msgstr ""
 #~ msgid "Your names"
 #~ msgstr ""
 #~ ",Launchpad Contributions:,Maxime Chambreuil, ,Launchpad "
-#~ "Contributions:,Maxime Chambreuil, ,Launchpad Contributions:,Maxime Chambreuil"
+#~ "Contributions:,Maxime Chambreuil, ,Launchpad Contributions:,Maxime "
+#~ "Chambreuil, ,Launchpad Contributions:,Mariusz Bednarz,Maxime Chambreuil"
 
 #~ msgctxt "EMAIL OF TRANSLATORS"
 #~ msgid "Your emails"
 #~ msgstr ""
 #~ ",,maxime.chambreuil@gmail.com,,,maxime.chambreuil@gmail.com,,,maxime.chambreu"
-#~ "il@gmail.com"
+#~ "il@gmail.com,,,mbednarz@bedmar.pl,maxime.chambreuil@gmail.com"
diff --git a/lang/pt/pt.po b/lang/pt/pt.po
index 10ff891b2b..436992737a 100644
--- a/lang/pt/pt.po
+++ b/lang/pt/pt.po
@@ -8,14 +8,14 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-10-14 11:18-0400\n"
-"PO-Revision-Date: 2009-10-14 17:26+0000\n"
+"PO-Revision-Date: 2009-10-26 20:46+0000\n"
 "Last-Translator: Maxime Chambreuil <maxime.chambreuil@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2009-10-26 15:48+0000\n"
+"X-Launchpad-Export-Date: 2009-12-03 15:32+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
 #: ../sflphone-client-gnome/src/accountlist.c:175
@@ -1112,10 +1112,11 @@ msgstr ""
 #~ msgstr ""
 #~ ",Launchpad Contributions:,Maxime Chambreuil, ,Launchpad "
 #~ "Contributions:,Maxime Chambreuil,Tiago Silva, ,Launchpad "
+#~ "Contributions:,Maxime Chambreuil,Tiago Silva, ,Launchpad "
 #~ "Contributions:,Maxime Chambreuil,Tiago Silva"
 
 #~ msgctxt "EMAIL OF TRANSLATORS"
 #~ msgid "Your emails"
 #~ msgstr ""
 #~ ",,maxime.chambreuil@gmail.com,,,maxime.chambreuil@gmail.com,,,,maxime.chambre"
-#~ "uil@gmail.com,"
+#~ "uil@gmail.com,,,,maxime.chambreuil@gmail.com,"
diff --git a/lang/pt_BR/pt_BR.po b/lang/pt_BR/pt_BR.po
index 34f94f3dfd..ca804b75ce 100644
--- a/lang/pt_BR/pt_BR.po
+++ b/lang/pt_BR/pt_BR.po
@@ -8,14 +8,14 @@ msgstr ""
 "Project-Id-Version: sflphone\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-10-14 11:18-0400\n"
-"PO-Revision-Date: 2009-10-15 18:00+0000\n"
+"PO-Revision-Date: 2009-10-26 20:46+0000\n"
 "Last-Translator: kalib <kalibslack@gmail.com>\n"
 "Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Launchpad-Export-Date: 2009-10-26 15:48+0000\n"
+"X-Launchpad-Export-Date: 2009-12-03 15:32+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
 #: ../sflphone-client-gnome/src/accountlist.c:175
@@ -1347,10 +1347,11 @@ msgstr "Buscar por ligações feitas"
 #~ msgstr ""
 #~ ",Launchpad Contributions:,Maxime Chambreuil,kalib, ,Launchpad "
 #~ "Contributions:,Maxime Chambreuil,kalib, ,Launchpad Contributions:,Maxime "
-#~ "Chambreuil,kalib"
+#~ "Chambreuil,kalib, ,Launchpad Contributions:,Maxime Chambreuil,kalib"
 
 #~ msgctxt "EMAIL OF TRANSLATORS"
 #~ msgid "Your emails"
 #~ msgstr ""
 #~ ",,maxime.chambreuil@gmail.com,kalibslack@gmail.com,,,maxime.chambreuil@gmail."
-#~ "com,kalibslack@gmail.com,,,maxime.chambreuil@gmail.com,kalibslack@gmail.com"
+#~ "com,kalibslack@gmail.com,,,maxime.chambreuil@gmail.com,kalibslack@gmail.com,,"
+#~ ",maxime.chambreuil@gmail.com,kalibslack@gmail.com"
diff --git a/lang/ru/ru.po b/lang/ru/ru.po
index 319dfce2c0..0cdec3479d 100644
--- a/lang/ru/ru.po
+++ b/lang/ru/ru.po
@@ -8,15 +8,15 @@ msgstr ""
 "Project-Id-Version: SFLphone 0.9.6\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-10-14 11:18-0400\n"
-"PO-Revision-Date: 2009-10-21 22:26+0000\n"
-"Last-Translator: Hussein Abdallah <Unknown>\n"
+"PO-Revision-Date: 2009-10-26 20:46+0000\n"
+"Last-Translator: Emmanuel Milou <emmanuel.milou@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"
 "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
 "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Launchpad-Export-Date: 2009-10-26 15:48+0000\n"
+"X-Launchpad-Export-Date: 2009-12-03 15:32+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
 #: ../sflphone-client-gnome/src/accountlist.c:175
@@ -1320,10 +1320,13 @@ msgstr "Поиск по исходящим вызовам"
 #~ ",Launchpad Contributions:,Hussein Abdallah, ,Launchpad "
 #~ "Contributions:,Emmanuel Milou,Hussein Abdallah,Maxime Chambreuil,Pavlo "
 #~ "Kucheriavyi,Sergei Sedov, ,Launchpad Contributions:,Emmanuel Milou,Hussein "
-#~ "Abdallah,Hussein Abdallah,Maxime Chambreuil,Pavlo Kucheriavyi,Sergei Sedov"
+#~ "Abdallah,Hussein Abdallah,Maxime Chambreuil,Pavlo Kucheriavyi,Sergei Sedov, "
+#~ ",Launchpad Contributions:,Emmanuel Milou,Hussein Abdallah,Hussein "
+#~ "Abdallah,Maxime Chambreuil,Pavlo Kucheriavyi,Sergey Sedov"
 
 #~ msgctxt "EMAIL OF TRANSLATORS"
 #~ msgid "Your emails"
 #~ msgstr ""
 #~ ",,,,,emmanuel.milou@savoirfairelinux.com,,maxime.chambreuil@gmail.com,,,,,emm"
-#~ "anuel.milou@savoirfairelinux.com,,,maxime.chambreuil@gmail.com,,"
+#~ "anuel.milou@savoirfairelinux.com,,,maxime.chambreuil@gmail.com,,,,,emmanuel.m"
+#~ "ilou@savoirfairelinux.com,,,maxime.chambreuil@gmail.com,,"
diff --git a/lang/sflphone.pot b/lang/sflphone.pot
index 103b76190c..8fd477d585 100644
--- a/lang/sflphone.pot
+++ b/lang/sflphone.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-11-12 14:02-0500\n"
+"POT-Creation-Date: 2009-12-03 10:22-0500\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"
@@ -59,25 +59,26 @@ msgstr ""
 msgid "Invalid"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:72
+#: ../sflphone-client-gnome/src/actions.c:98
 msgid "Using account"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:78
+#: ../sflphone-client-gnome/src/actions.c:104
 msgid "No registered accounts"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:259
+#: ../sflphone-client-gnome/src/actions.c:285
 msgid ""
 "Unable to connect to the SFLphone server.\n"
 "Make sure the daemon is running."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:879
+#: ../sflphone-client-gnome/src/actions.c:589
+#: ../sflphone-client-gnome/src/actions.c:911
 msgid "Direct SIP call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:1071
+#: ../sflphone-client-gnome/src/actions.c:1103
 #, c-format
 msgid ""
 "<b>Error: No audio codecs found.\n"
@@ -119,53 +120,53 @@ msgstr ""
 msgid "Do you still want to quit?"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:297
+#: ../sflphone-client-gnome/src/mainwindow.c:298
 msgid "SFLphone Error"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:391
+#: ../sflphone-client-gnome/src/mainwindow.c:392
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:392
+#: ../sflphone-client-gnome/src/mainwindow.c:393
 msgid "Secure Communication Unavailable"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:393
-#: ../sflphone-client-gnome/src/mainwindow.c:415
+#: ../sflphone-client-gnome/src/mainwindow.c:394
+#: ../sflphone-client-gnome/src/mainwindow.c:416
 msgid "Continue"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:394
-#: ../sflphone-client-gnome/src/mainwindow.c:416
-#: ../sflphone-client-gnome/src/mainwindow.c:430
+#: ../sflphone-client-gnome/src/mainwindow.c:395
+#: ../sflphone-client-gnome/src/mainwindow.c:417
+#: ../sflphone-client-gnome/src/mainwindow.c:431
 msgid "Stop Call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:413
+#: ../sflphone-client-gnome/src/mainwindow.c:414
 #, c-format
 msgid ""
 "A %s error forced the call with %s to fall under unencrypted mode.\n"
 "Exact reason: %s\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:414
+#: ../sflphone-client-gnome/src/mainwindow.c:415
 msgid "ZRTP negotiation failed"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:427
+#: ../sflphone-client-gnome/src/mainwindow.c:428
 #, c-format
 msgid ""
 "%s wants to stop using secure communication. Confirm will resume "
 "conversation without SRTP.\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:428
+#: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm Go Clear"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:429
+#: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Confirm"
 msgstr ""
 
@@ -234,15 +235,15 @@ msgstr ""
 msgid "Mic volume"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/statusicon.c:91
+#: ../sflphone-client-gnome/src/statusicon.c:96
 msgid "_Show main window"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/statusicon.c:126
+#: ../sflphone-client-gnome/src/statusicon.c:131
 msgid "SFLphone"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/statusicon.c:127
+#: ../sflphone-client-gnome/src/statusicon.c:132
 #, c-format
 msgid "%i account configured"
 msgid_plural "%i accounts configured"
@@ -250,387 +251,393 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: ../sflphone-client-gnome/src/toolbar.c:38
-#: ../sflphone-client-gnome/src/uimanager.c:628
-#: ../sflphone-client-gnome/src/uimanager.c:662
+#: ../sflphone-client-gnome/src/uimanager.c:693
+#: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Voicemail"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:115
+#: ../sflphone-client-gnome/src/uimanager.c:117
 msgid "No address book selected"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:135
-#: ../sflphone-client-gnome/src/uimanager.c:691
+#: ../sflphone-client-gnome/src/uimanager.c:137
+#: ../sflphone-client-gnome/src/uimanager.c:756
 msgid "Address book"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:237
+#: ../sflphone-client-gnome/src/uimanager.c:279
 #, c-format
 msgid "Voicemail (%i)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:300
+#: ../sflphone-client-gnome/src/uimanager.c:342
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:303
+#: ../sflphone-client-gnome/src/uimanager.c:345
 msgid "About SFLphone"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:654
+#: ../sflphone-client-gnome/src/uimanager.c:719
 msgid "Call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:655
-#: ../sflphone-client-gnome/src/uimanager.c:1119
+#: ../sflphone-client-gnome/src/uimanager.c:720
+#: ../sflphone-client-gnome/src/uimanager.c:1184
 msgid "_New call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:655
+#: ../sflphone-client-gnome/src/uimanager.c:720
 msgid "Place a new call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:656
-#: ../sflphone-client-gnome/src/uimanager.c:914
+#: ../sflphone-client-gnome/src/uimanager.c:721
+#: ../sflphone-client-gnome/src/uimanager.c:979
 msgid "_Pick up"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:656
+#: ../sflphone-client-gnome/src/uimanager.c:721
 msgid "Answer the call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:657
-#: ../sflphone-client-gnome/src/uimanager.c:926
-#: ../sflphone-client-gnome/src/uimanager.c:967
+#: ../sflphone-client-gnome/src/uimanager.c:722
+#: ../sflphone-client-gnome/src/uimanager.c:991
+#: ../sflphone-client-gnome/src/uimanager.c:1032
 msgid "_Hang up"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:657
+#: ../sflphone-client-gnome/src/uimanager.c:722
 msgid "Finish the call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:658
+#: ../sflphone-client-gnome/src/uimanager.c:723
 msgid "O_n hold"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:658
+#: ../sflphone-client-gnome/src/uimanager.c:723
 msgid "Place the call on hold"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:659
+#: ../sflphone-client-gnome/src/uimanager.c:724
 msgid "O_ff hold"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:659
+#: ../sflphone-client-gnome/src/uimanager.c:724
 msgid "Place the call off hold"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:660
-#: ../sflphone-client-gnome/src/uimanager.c:950
+#: ../sflphone-client-gnome/src/uimanager.c:725
+#: ../sflphone-client-gnome/src/uimanager.c:1015
 msgid "_Record"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:660
+#: ../sflphone-client-gnome/src/uimanager.c:725
 msgid "Record the current conversation"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:661
+#: ../sflphone-client-gnome/src/uimanager.c:726
 msgid "Configuration _Assistant"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:661
+#: ../sflphone-client-gnome/src/uimanager.c:726
 msgid "Run the configuration assistant"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:662
+#: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Call your voicemail"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:663
+#: ../sflphone-client-gnome/src/uimanager.c:728
 msgid "_Close"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:663
+#: ../sflphone-client-gnome/src/uimanager.c:728
 msgid "Minimize to system tray"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:664
+#: ../sflphone-client-gnome/src/uimanager.c:729
 msgid "_Quit"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:664
+#: ../sflphone-client-gnome/src/uimanager.c:729
 msgid "Quit the program"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:667
+#: ../sflphone-client-gnome/src/uimanager.c:732
 msgid "_Edit"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:668
+#: ../sflphone-client-gnome/src/uimanager.c:733
 msgid "_Copy"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:668
+#: ../sflphone-client-gnome/src/uimanager.c:733
 msgid "Copy the selection"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:669
+#: ../sflphone-client-gnome/src/uimanager.c:734
 msgid "_Paste"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:669
+#: ../sflphone-client-gnome/src/uimanager.c:734
 msgid "Paste the clipboard"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:670
+#: ../sflphone-client-gnome/src/uimanager.c:735
 msgid "Clear _history"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:670
+#: ../sflphone-client-gnome/src/uimanager.c:735
 msgid "Clear the call history"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:671
+#: ../sflphone-client-gnome/src/uimanager.c:736
 msgid "_Accounts"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:671
+#: ../sflphone-client-gnome/src/uimanager.c:736
 msgid "Edit your accounts"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:672
+#: ../sflphone-client-gnome/src/uimanager.c:737
 msgid "_Preferences"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:672
+#: ../sflphone-client-gnome/src/uimanager.c:737
 msgid "Change your preferences"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:675
+#: ../sflphone-client-gnome/src/uimanager.c:740
 msgid "_View"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:678
+#: ../sflphone-client-gnome/src/uimanager.c:743
 msgid "_Help"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:679
+#: ../sflphone-client-gnome/src/uimanager.c:744
 msgid "Contents"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:679
+#: ../sflphone-client-gnome/src/uimanager.c:744
 msgid "Open the manual"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:680
+#: ../sflphone-client-gnome/src/uimanager.c:745
 msgid "About this application"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:686
+#: ../sflphone-client-gnome/src/uimanager.c:751
 msgid "_Transfer"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:686
+#: ../sflphone-client-gnome/src/uimanager.c:751
 msgid "Transfer the call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:687
+#: ../sflphone-client-gnome/src/uimanager.c:752
 msgid "_Show toolbar"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:687
+#: ../sflphone-client-gnome/src/uimanager.c:752
 msgid "Show the toolbar"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:688
+#: ../sflphone-client-gnome/src/uimanager.c:753
 msgid "_Dialpad"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:688
+#: ../sflphone-client-gnome/src/uimanager.c:753
 msgid "Show the dialpad"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:689
+#: ../sflphone-client-gnome/src/uimanager.c:754
 msgid "_Volume controls"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:689
+#: ../sflphone-client-gnome/src/uimanager.c:754
 msgid "Show the volume controls"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:690
+#: ../sflphone-client-gnome/src/uimanager.c:755
 msgid "_History"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:690
+#: ../sflphone-client-gnome/src/uimanager.c:755
 msgid "Calls history"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:691
+#: ../sflphone-client-gnome/src/uimanager.c:756
 msgid "_Address book"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:938
-#: ../sflphone-client-gnome/src/uimanager.c:979
+#: ../sflphone-client-gnome/src/uimanager.c:1003
+#: ../sflphone-client-gnome/src/uimanager.c:1044
 msgid "On _Hold"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1042
+#: ../sflphone-client-gnome/src/uimanager.c:1107
 msgid "_Call back"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1193
+#: ../sflphone-client-gnome/src/uimanager.c:1258
 msgid "Edit phone number"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1204
+#: ../sflphone-client-gnome/src/uimanager.c:1269
 msgid "Edit the phone number before making a call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:172
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:180
 msgid "Account Parameters"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:181
-#: ../sflphone-client-gnome/src/config/assistant.c:307
-#: ../sflphone-client-gnome/src/config/assistant.c:415
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/assistant.c:314
+#: ../sflphone-client-gnome/src/config/assistant.c:427
 msgid "_Alias"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:197
 msgid "_Protocol"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:207
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:215
 msgid "Unknown"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:217
-#: ../sflphone-client-gnome/src/config/assistant.c:315
-#: ../sflphone-client-gnome/src/config/assistant.c:423
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
+#: ../sflphone-client-gnome/src/config/assistant.c:322
+#: ../sflphone-client-gnome/src/config/assistant.c:435
 msgid "_Host name"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
-#: ../sflphone-client-gnome/src/config/assistant.c:323
-#: ../sflphone-client-gnome/src/config/assistant.c:431
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:233
+#: ../sflphone-client-gnome/src/config/assistant.c:330
+#: ../sflphone-client-gnome/src/config/assistant.c:443
 msgid "_User name"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:242
-#: ../sflphone-client-gnome/src/config/assistant.c:339
-#: ../sflphone-client-gnome/src/config/assistant.c:446
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:346
+#: ../sflphone-client-gnome/src/config/assistant.c:458
 msgid "_Password"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:262
-#: ../sflphone-client-gnome/src/config/assistant.c:357
-#: ../sflphone-client-gnome/src/config/assistant.c:462
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:270
+#: ../sflphone-client-gnome/src/config/assistant.c:363
+#: ../sflphone-client-gnome/src/config/assistant.c:473
+msgid "Show password"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:274
+#: ../sflphone-client-gnome/src/config/assistant.c:368
+#: ../sflphone-client-gnome/src/config/assistant.c:478
 msgid "_Voicemail number"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:348
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:361
 msgid "Authentication"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:349
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:362
 msgid "Secret"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:579
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:605
 msgid "Credential"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:614
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:640
 msgid "Authentication name"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:625
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:651
 msgid "Password"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:649
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1029
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:306
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1056
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:321
 msgid "Security"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:662
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:318
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:333
 msgid "Use TLS transport (sips)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:668
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:323
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:338
 msgid "SRTP key exchange"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:329
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:699
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
 msgid "Disabled"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:770
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:795
 msgid "Registration"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:775
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:800
 msgid "Registration expire"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:784
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:809
 msgid "_Comply with RFC 3263"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:791
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:221
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:816
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:234
 msgid "Network Interface"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:805
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:236
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:830
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:249
 msgid "Local address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:855
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:292
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:301
 msgid "Local port"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:868
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:903
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:893
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:928
 msgid "Published address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:874
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
 msgid "Using STUN"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:881
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:906
 msgid "STUN server URL"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:889
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:914
 msgid "Same as local parameters"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:892
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:917
 msgid "Set published address and port:"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:911
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:936
 msgid "Published port"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1000
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1027
 msgid "Account settings"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1019
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1046
 msgid "Basic"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1024
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1051
 msgid "Advanced"
 msgstr ""
 
@@ -639,35 +646,35 @@ msgstr ""
 msgid "Server returned \"%s\" (%d)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:387
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
 msgid "Protocol"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:394
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:396
 msgid "Status"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:472
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:474
 msgid "Accounts"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:482
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:484
 msgid "Configured Accounts"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:499
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:501
 #, c-format
 msgid "There is %d active account"
 msgid_plural "There are %d active accounts"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:507
 msgid "You have no active account"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:537
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:556
 msgid "General"
 msgstr ""
 
@@ -716,136 +723,136 @@ msgstr ""
 msgid "Name"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:69
+#: ../sflphone-client-gnome/src/config/assistant.c:75
 #, c-format
 msgid "This assistant is now finished."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:71
+#: ../sflphone-client-gnome/src/config/assistant.c:77
 msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:74
+#: ../sflphone-client-gnome/src/config/assistant.c:80
 msgid "Alias"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:78
+#: ../sflphone-client-gnome/src/config/assistant.c:84
 msgid "Server"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:82
+#: ../sflphone-client-gnome/src/config/assistant.c:88
 msgid "Username"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:86
+#: ../sflphone-client-gnome/src/config/assistant.c:92
 msgid "Security: "
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:88
+#: ../sflphone-client-gnome/src/config/assistant.c:94
 msgid "SRTP/ZRTP draft-zimmermann"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:90
+#: ../sflphone-client-gnome/src/config/assistant.c:96
 msgid "None"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:223
+#: ../sflphone-client-gnome/src/config/assistant.c:229
 msgid "SFLphone account creation wizard"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:249
+#: ../sflphone-client-gnome/src/config/assistant.c:255
 msgid "Welcome to the Account creation wizard of SFLphone!"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:256
 msgid "This installation wizard will help you configure an account."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:264
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "VoIP Protocols"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:264
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "Select an account type"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:266
+#: ../sflphone-client-gnome/src/config/assistant.c:272
 msgid "SIP (Session Initiation Protocol)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:268
+#: ../sflphone-client-gnome/src/config/assistant.c:274
 msgid "IAX2 (InterAsterix Exchange)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:282
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Account"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:282
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Please select one of the following options"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:284
+#: ../sflphone-client-gnome/src/config/assistant.c:290
 msgid "Create a free SIP/IAX2 account on sflphone.org"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
+#: ../sflphone-client-gnome/src/config/assistant.c:292
 msgid "Register an existing SIP or IAX2 account"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:299
+#: ../sflphone-client-gnome/src/config/assistant.c:306
 msgid "SIP account settings"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:299
-#: ../sflphone-client-gnome/src/config/assistant.c:407
+#: ../sflphone-client-gnome/src/config/assistant.c:306
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "Please fill the following information"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:376
+#: ../sflphone-client-gnome/src/config/assistant.c:405
 msgid "Secure communications with _ZRTP"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:378
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "Optional email address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:378
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "This email address will be used to send your voicemail messages."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:386
+#: ../sflphone-client-gnome/src/config/assistant.c:397
 msgid "_Email address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:407
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "IAX2 account settings"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:480
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "Network Address Translation (NAT)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:480
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "You should probably enable this if you are behind a firewall."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:489
+#: ../sflphone-client-gnome/src/config/assistant.c:505
 msgid "E_nable STUN"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:496
+#: ../sflphone-client-gnome/src/config/assistant.c:512
 msgid "_STUN server"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:510
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Account Registration"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:510
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Congratulations!"
 msgstr ""
 
@@ -881,51 +888,51 @@ msgstr ""
 msgid "_Noise Reduction (Narrow-Band Companding)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:795
+#: ../sflphone-client-gnome/src/config/audioconf.c:800
 msgid "Sound Manager"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:804
+#: ../sflphone-client-gnome/src/config/audioconf.c:809
 msgid "_Pulseaudio"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:808
+#: ../sflphone-client-gnome/src/config/audioconf.c:813
 msgid "_ALSA"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:814
+#: ../sflphone-client-gnome/src/config/audioconf.c:819
 msgid "ALSA settings"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:831
+#: ../sflphone-client-gnome/src/config/audioconf.c:836
 msgid "Codecs"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:860
+#: ../sflphone-client-gnome/src/config/audioconf.c:865
 msgid "Recordings"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:864
+#: ../sflphone-client-gnome/src/config/audioconf.c:869
 msgid "Destination folder"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:868
+#: ../sflphone-client-gnome/src/config/audioconf.c:873
 msgid "Select a folder"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:874
+#: ../sflphone-client-gnome/src/config/audioconf.c:879
 msgid "Ringtones"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:880
+#: ../sflphone-client-gnome/src/config/audioconf.c:885
 msgid "_Enable ringtones"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:886
+#: ../sflphone-client-gnome/src/config/audioconf.c:891
 msgid "Choose a ringtone"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:892
+#: ../sflphone-client-gnome/src/config/audioconf.c:897
 msgid "Audio Files"
 msgstr ""
 
@@ -962,74 +969,66 @@ msgstr ""
 msgid "_Prefix dialed numbers with"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:212
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:225
 msgid ""
 "This profile is used when you want to reach a remote peer simply by typing a "
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
 "also be used if no account can be matched to an incoming or outgoing call."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:425
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:440
 msgid "Desktop Notifications"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:429
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:444
 msgid "_Enable notifications"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:435
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:450
 msgid "System Tray Icon"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:438
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
 msgid "_Popup main window on incoming call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:457
 msgid "Ne_ver popup main window"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:447
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
 msgid "Hide SFLphone window on _startup"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:469
 msgid "Calls History"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:456
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:472
 msgid "_Keep my history for at least"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:467
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:483
 msgid "days"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:471
-msgid "Configuration File"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:473
-msgid "Store SIP credentials as MD5 hash"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:517
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:536
 msgid "Preferences"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:542
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:561
 msgid "Audio"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:547
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:566
 msgid "Address Book"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:552
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:571
 msgid "Hooks"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:562
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:581
 msgid "Direct IP calls"
 msgstr ""
 
@@ -1037,11 +1036,11 @@ msgstr ""
 msgid "Advanced options for TLS"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:56
 msgid "TLS transport"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:60
 msgid ""
 "TLS transport can be used along with UDP for those calls that would\n"
 "require secure sip transactions (aka SIPS). You can configure a different\n"
@@ -1050,55 +1049,55 @@ msgid ""
 "port, different one from each other\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:103
 msgid "Certificate of Authority list"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:107
 msgid "Choose a CA list file (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:128
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:131
 msgid "Public endpoint certificate file"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:132
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:135
 msgid "Choose a public endpoint certificate (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:156
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:159
 msgid "Choose a private key file (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:178
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:181
 msgid "Password for the private key"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:201
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:204
 msgid "TLS protocol method"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:235
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:238
 msgid "TLS cipher list"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:244
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:247
 msgid "Server name instance for outgoing TLS connection"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:252
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:255
 msgid "Negotiation timeout (sec:msec)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:269
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:272
 msgid "Verify incoming certificates, as a server"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:275
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:278
 msgid "Verify certificates from answer, as a client"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:281
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:284
 msgid "Require certificate for incoming tls connections"
 msgstr ""
 
@@ -1122,25 +1121,25 @@ msgstr ""
 msgid "Display SAS once for hold events"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:56
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:58
 msgid "Search all"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:57
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:70
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:82
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:94
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:59
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:72
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:84
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:96
 msgid "Click here to change the search type"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:69
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:71
 msgid "Search by missed call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:81
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:83
 msgid "Search by incoming call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:93
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:95
 msgid "Search by outgoing call"
 msgstr ""
diff --git a/lang/zh_CN/zh_CN.po b/lang/zh_CN/zh_CN.po
index 992e7b0457..65542440d8 100644
--- a/lang/zh_CN/zh_CN.po
+++ b/lang/zh_CN/zh_CN.po
@@ -4,20 +4,19 @@
 #
 # Yun Liu <yun.liu@savoirfairelinux.com>, 2008.
 #
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
 msgid ""
 msgstr ""
 "Project-Id-Version: SFLphone 0.9.2\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-10-14 11:18-0400\n"
-"PO-Revision-Date: 2009-10-07 16:46+0000\n"
-"Last-Translator: Aron Xu <happyaron.xu@gmail.com>\n"
+"PO-Revision-Date: 2009-10-26 20:46+0000\n"
+"Last-Translator: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>\n"
 "Language-Team: SavoirFaireLinux Inc <sflphoneteam@savoirfairelinux.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2009-10-14 15:20+0000\n"
+"X-Launchpad-Export-Date: 2009-12-03 15:32+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
 #: ../sflphone-client-gnome/src/accountlist.c:175
@@ -40,7 +39,7 @@ msgstr "注册失败"
 
 #: ../sflphone-client-gnome/src/accountlist.c:187
 msgid "Authentication Failed"
-msgstr ""
+msgstr "认证失败"
 
 #: ../sflphone-client-gnome/src/accountlist.c:190
 msgid "Network unreachable"
@@ -101,13 +100,12 @@ msgstr "编码"
 msgid ""
 "<b>Error: No audio codecs found.\n"
 "\n"
-"</b> SFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</"
-"b> directory in your home( <i>%s</i> )"
+"</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
+"<b>.sflphone</b> directory in your home( <i>%s</i> )"
 msgstr ""
 "<b>错误:无法找到codecs编码文件.\n"
 "\n"
-"</b> SFL声音codecs文件应位于<i>%s</i> 或 位于主目录( <i>%s</i> )的<b>."
-"sflphone</b>目录下"
+"</b> SFL声音codecs文件应位于<i>%s</i> 或 位于主目录( <i>%s</i> )的<b>.sflphone</b>目录下"
 
 #: ../sflphone-client-gnome/src/errors.c:29
 msgid ""
@@ -162,19 +160,18 @@ msgstr ""
 
 #: ../sflphone-client-gnome/src/mainwindow.c:392
 msgid "Secure Communication Unavailable"
-msgstr ""
+msgstr "安全通信不可用"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:393
 #: ../sflphone-client-gnome/src/mainwindow.c:415
-#, fuzzy
 msgid "Continue"
-msgstr "连接"
+msgstr "继续"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:394
 #: ../sflphone-client-gnome/src/mainwindow.c:416
 #: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Stop Call"
-msgstr ""
+msgstr "停止呼叫"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:413
 #, c-format
@@ -200,7 +197,7 @@ msgstr ""
 
 #: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm"
-msgstr ""
+msgstr "确认"
 
 #: ../sflphone-client-gnome/src/sflnotify.c:71
 #: ../sflphone-client-gnome/src/sflnotify.c:91
@@ -240,7 +237,7 @@ msgstr ""
 #: ../sflphone-client-gnome/src/sflnotify.c:205
 #, c-format
 msgid "%s does not support ZRTP."
-msgstr ""
+msgstr "%s 不支持 ZRTP。"
 
 #: ../sflphone-client-gnome/src/sflnotify.c:220
 #, c-format
@@ -248,9 +245,9 @@ msgid "ZRTP negotiation failed with %s"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/sflnotify.c:235
-#, fuzzy, c-format
+#, c-format
 msgid "<i>With:</i> %s"
-msgstr "<i>拨入方</i> %s"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/sliders.c:162
 msgid "Speakers volume"
@@ -365,12 +362,11 @@ msgstr "语音信箱号码(V)"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:340
 msgid "Authentication"
-msgstr ""
+msgstr "身份验证"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
-#, fuzzy
 msgid "Secret"
-msgstr "服务器"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
 msgid "Credential"
@@ -388,7 +384,7 @@ msgstr "密码"
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:909
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:201
 msgid "Security"
-msgstr ""
+msgstr "安全"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:547
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:213
@@ -402,14 +398,12 @@ msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
-#, fuzzy
 msgid "Disabled"
-msgstr "拨号盘(_D)"
+msgstr "禁用"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
-#, fuzzy
 msgid "Registration"
-msgstr "帐户注册"
+msgstr "注册"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
 msgid "Registration expire"
@@ -422,12 +416,11 @@ msgstr ""
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
 msgid "Network"
-msgstr ""
+msgstr "网络"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
-#, fuzzy
 msgid "Local address"
-msgstr "邮件地址"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
 msgid "Local port"
@@ -450,18 +443,16 @@ msgid "Manually"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:769
-#, fuzzy
 msgid "Published address"
-msgstr "启用地址簿"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:777
 msgid "Published port"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:785
-#, fuzzy
 msgid "STUN server URL"
-msgstr "STUN服务器(S)"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
 msgid "Account settings"
@@ -508,18 +499,16 @@ msgid "are "
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
-#, fuzzy
 msgid " active account"
-msgstr "增加新帐户"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
 msgid "s"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
-#, fuzzy
 msgid "You have no active account"
-msgstr "未发现已注册帐户"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
@@ -878,9 +867,8 @@ msgid "days"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
-#, fuzzy
 msgid "Configuration File"
-msgstr "Stun配置有误"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
 msgid "Store SIP credentials as MD5 hash"
@@ -1050,18 +1038,6 @@ msgstr "从拨出电话中查询"
 #~ msgid "Jérémy Quentin"
 #~ msgstr "Jérémy Quentin"
 
-#~ msgctxt "NAME OF TRANSLATORS"
-#~ msgid "Your names"
-#~ msgstr ""
-#~ "Yun Liu, ,Launchpad Contributions:,Aron Xu,Yun Liu, ,Launchpad "
-#~ "Contributions:,Aron Xu,Yinghua Wang,Yun Liu,rainofchaos"
-
-#~ msgctxt "EMAIL OF TRANSLATORS"
-#~ msgid "Your emails"
-#~ msgstr ""
-#~ "yunliu2000@gmail.com,,,happyaron.xu@gmail.com,,,,happyaron.xu@gmail.com,,,"
-#~ "rainofchaos@gmail.com"
-
 #~ msgid "Main screen"
 #~ msgstr "主屏幕"
 
@@ -1125,35 +1101,29 @@ msgstr "从拨出电话中查询"
 #~ 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."
+#~ "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会使用列表当中第一个已注册的帐户。使用"
-#~ "箭头\"上\"和\"下\"可以改变账户的顺序。选择账户名称左边的方框可以启用帐户,"
-#~ "取消选择则会禁用该账户。通过\"加\"\"减\"按钮可以添加或删除账户。点击\"编辑"
-#~ "\"按钮可以改变账户的设置。"
+#~ "在默认情况下,当你打电话时,sflphone会使用列表当中第一个已注册的帐户。使用箭头\"上\"和\"下\"可以改变账户的顺序。选择账户名称左边的方框可以"
+#~ "启用帐户,取消选择则会禁用该账户。通过\"加\"\"减\"按钮可以添加或删除账户。点击\"编辑\"按钮可以改变账户的设置。"
 
 #~ msgid "Remove the selected account"
 #~ msgstr "删除所选账户"
 
 #~ 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 ""
-#~ "该按钮会删除列表中被选定的账户。请确认你的操作。如果你希望继续使用某个账"
-#~ "户,请取消对该账户的选择"
+#~ "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 "该按钮会删除列表中被选定的账户。请确认你的操作。如果你希望继续使用某个账户,请取消对该账户的选择"
 
 #~ msgid "Remove"
 #~ msgstr "删除"
 
 #~ 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 ""
-#~ "通过该按钮可以创建一个新账户。添加该账户之后你还可以通过编辑按钮来修改设"
-#~ "置。"
+#~ "This button enables you to initialize a new account. You will then be able "
+#~ "to edit it using the form on the right."
+#~ msgstr "通过该按钮可以创建一个新账户。添加该账户之后你还可以通过编辑按钮来修改设置。"
 
 #~ msgid "Add"
 #~ msgstr "添加"
@@ -1166,9 +1136,8 @@ msgstr "从拨出电话中查询"
 #~ "this list which is \"registered\". Change the order of the accounts using "
 #~ "the \"Up\" and \"Down\" arrows."
 #~ msgstr ""
-#~ "在默认情况下,当你打电话时,sflphone会使用列表当中第一个已注册的帐户。使用"
-#~ "箭头\"上\"和\"下\"可以改变账户的顺序。选择账户名称左边的方框可以启用帐户,"
-#~ "取消选择则会禁用该账户。通过\"加\"\"减\"按钮可以添加或删除账户。"
+#~ "在默认情况下,当你打电话时,sflphone会使用列表当中第一个已注册的帐户。使用箭头\"上\"和\"下\"可以改变账户的顺序。选择账户名称左边的方框可以"
+#~ "启用帐户,取消选择则会禁用该账户。通过\"加\"\"减\"按钮可以添加或删除账户。"
 
 #~ msgid "Down"
 #~ msgstr "下"
@@ -1266,32 +1235,14 @@ msgstr "从拨出电话中查询"
 #~ msgid "Prefix dialed numbers with"
 #~ msgstr "号码前缀"
 
-#~ msgid "History"
-#~ msgstr "历史"
-
 #~ msgid "Attention:number of results exceeds max displayed."
 #~ msgstr "注意:结果超过可显示的最大值"
 
-#~ msgid "_Help"
-#~ msgstr "帮助(_H)"
-
-#~ msgid "_Account creation wizard"
-#~ msgstr "帐户创建向导(_A)"
-
-#~ msgid "_Call"
-#~ msgstr "电话(_C)"
-
-#~ msgid "Clear _history"
-#~ msgstr "清空历史记录(_H)"
-
-#~ msgid "_Accounts"
-#~ msgstr "账户(_A)"
-
-#~ msgid "_Edit"
-#~ msgstr "编辑(_E)"
+#~ msgid "_Volume controls"
+#~ msgstr "音量控制(V)"
 
-#~ msgid "_View"
-#~ msgstr "查看(_V)"
+#~ msgid "History"
+#~ msgstr "历史"
 
 #~ msgid "_Enable this account"
 #~ msgstr "启用该账户(E)"
@@ -1302,9 +1253,6 @@ msgstr "从拨出电话中查询"
 #~ msgid "Port"
 #~ msgstr "端口"
 
-#~ msgid "_Volume controls"
-#~ msgstr "音量控制(V)"
-
 #~ msgctxt "Config section"
 #~ msgid "Accounts"
 #~ msgstr "帐户"
@@ -1595,3 +1543,39 @@ msgstr "从拨出电话中查询"
 
 #~ msgid "_STUN Server"
 #~ msgstr "STUN服务器(S)"
+
+#~ msgid "_Edit"
+#~ msgstr "编辑(_E)"
+
+#~ msgid "_View"
+#~ msgstr "查看(_V)"
+
+#~ msgid "_Help"
+#~ msgstr "帮助(_H)"
+
+#~ msgid "_Account creation wizard"
+#~ msgstr "帐户创建向导(_A)"
+
+#~ msgid "_Call"
+#~ msgstr "电话(_C)"
+
+#~ msgid "Clear _history"
+#~ msgstr "清空历史记录(_H)"
+
+#~ msgid "_Accounts"
+#~ msgstr "账户(_A)"
+
+#~ msgctxt "NAME OF TRANSLATORS"
+#~ msgid "Your names"
+#~ msgstr ""
+#~ "Yun Liu, ,Launchpad Contributions:,Aron Xu,Yun Liu, ,Launchpad "
+#~ "Contributions:,Aron Xu,Yinghua Wang,Yun Liu,rainofchaos, ,Launchpad "
+#~ "Contributions:,Aron Xu,Yinghua Wang,Yun Liu,冯超, ,Launchpad "
+#~ "Contributions:,Aron Xu,Emmanuel Milou,Yun Liu,冯超,王英华"
+
+#~ msgctxt "EMAIL OF TRANSLATORS"
+#~ msgid "Your emails"
+#~ msgstr ""
+#~ "yunliu2000@gmail.com,,,happyaron.xu@gmail.com,,,,happyaron.xu@gmail.com,,,rai"
+#~ "nofchaos@gmail.com,,,happyaron.xu@gmail.com,,,rainofchaos@gmail.com,,,,emmanu"
+#~ "el.milou@savoirfairelinux.com,,rainofchaos@gmail.com,wantinghard@gmail.com"
diff --git a/lang/zh_HK/zh_HK.po b/lang/zh_HK/zh_HK.po
index 6cc983115e..a4ba19605e 100644
--- a/lang/zh_HK/zh_HK.po
+++ b/lang/zh_HK/zh_HK.po
@@ -4,20 +4,19 @@
 #
 # Yun Liu <yun.liu@savoirfairelinux.com>, 2008.
 #
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
 msgid ""
 msgstr ""
 "Project-Id-Version: SFLphone 0.9.2\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-10-14 11:18-0400\n"
-"PO-Revision-Date: 2009-10-07 16:34+0000\n"
+"PO-Revision-Date: 2009-10-26 20:46+0000\n"
 "Last-Translator: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>\n"
 "Language-Team: SavoirFaireLinux Inc <sflphoneteam@savoirfairelinux.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2009-10-14 15:20+0000\n"
+"X-Launchpad-Export-Date: 2009-12-03 15:32+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
 #: ../sflphone-client-gnome/src/accountlist.c:175
@@ -101,13 +100,12 @@ msgstr "編碼"
 msgid ""
 "<b>Error: No audio codecs found.\n"
 "\n"
-"</b> SFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</"
-"b> directory in your home( <i>%s</i> )"
+"</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
+"<b>.sflphone</b> directory in your home( <i>%s</i> )"
 msgstr ""
 "<b>錯誤:無法找到音訊編碼檔案.\n"
 "\n"
-"</b> SFL聲音編碼檔案應該位于<i>%s</i> 或者位于主目錄( <i>%s</i> )的<b>."
-"sflphone</b>目錄下"
+"</b> SFL聲音編碼檔案應該位于<i>%s</i> 或者位于主目錄( <i>%s</i> )的<b>.sflphone</b>目錄下"
 
 #: ../sflphone-client-gnome/src/errors.c:29
 msgid ""
@@ -166,9 +164,8 @@ msgstr ""
 
 #: ../sflphone-client-gnome/src/mainwindow.c:393
 #: ../sflphone-client-gnome/src/mainwindow.c:415
-#, fuzzy
 msgid "Continue"
-msgstr "連接"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/mainwindow.c:394
 #: ../sflphone-client-gnome/src/mainwindow.c:416
@@ -248,9 +245,9 @@ msgid "ZRTP negotiation failed with %s"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/sflnotify.c:235
-#, fuzzy, c-format
+#, c-format
 msgid "<i>With:</i> %s"
-msgstr "<i>撥入方</i> %s"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/sliders.c:162
 msgid "Speakers volume"
@@ -368,9 +365,8 @@ msgid "Authentication"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
-#, fuzzy
 msgid "Secret"
-msgstr "伺服器"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
 msgid "Credential"
@@ -402,14 +398,12 @@ msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
-#, fuzzy
 msgid "Disabled"
-msgstr "撥號面板"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
-#, fuzzy
 msgid "Registration"
-msgstr "帳戶註冊"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
 msgid "Registration expire"
@@ -425,9 +419,8 @@ msgid "Network"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
-#, fuzzy
 msgid "Local address"
-msgstr "郵件地址"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
 msgid "Local port"
@@ -450,18 +443,16 @@ msgid "Manually"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:769
-#, fuzzy
 msgid "Published address"
-msgstr "啟用地址簿"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:777
 msgid "Published port"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:785
-#, fuzzy
 msgid "STUN server URL"
-msgstr "STUN伺服器(S)"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
 msgid "Account settings"
@@ -508,18 +499,16 @@ msgid "are "
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
-#, fuzzy
 msgid " active account"
-msgstr "增加新帳戶"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
 msgid "s"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
-#, fuzzy
 msgid "You have no active account"
-msgstr "未發現已註冊帳戶"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
@@ -878,9 +867,8 @@ msgid "days"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
-#, fuzzy
 msgid "Configuration File"
-msgstr "Stun配置有誤"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
 msgid "Store SIP credentials as MD5 hash"
@@ -1050,16 +1038,6 @@ msgstr "從撥出電話中查詢"
 #~ msgid "Jérémy Quentin"
 #~ msgstr "Jérémy Quentin"
 
-#~ msgctxt "NAME OF TRANSLATORS"
-#~ msgid "Your names"
-#~ msgstr ""
-#~ "Yun Liu, ,Launchpad Contributions:,Yun Liu, ,Launchpad Contributions:,"
-#~ "Emmanuel Milou,Yun Liu"
-
-#~ msgctxt "EMAIL OF TRANSLATORS"
-#~ msgid "Your emails"
-#~ msgstr "yunliu2000@gmail.com,,,,,,emmanuel.milou@savoirfairelinux.com,"
-
 #~ msgid "Main screen"
 #~ msgstr "主屏幕"
 
@@ -1123,35 +1101,29 @@ msgstr "從撥出電話中查詢"
 #~ 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."
+#~ "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會使用列表當中第一個已註冊的帳戶。使用"
-#~ "箭頭\"上\"和\"下\"可以改變賬戶的順序。選擇賬戶名稱左邊的方框可以啟用帳戶,"
-#~ "取消選擇則會禁用該賬戶。通過\"加\"\"減\"按鈕可以添加或刪除賬戶。點擊\"編輯"
-#~ "\"按鈕可以改變賬戶的設置。"
+#~ "在默認情況下,當你打電話時,sflphone會使用列表當中第一個已註冊的帳戶。使用箭頭\"上\"和\"下\"可以改變賬戶的順序。選擇賬戶名稱左邊的方框可以"
+#~ "啟用帳戶,取消選擇則會禁用該賬戶。通過\"加\"\"減\"按鈕可以添加或刪除賬戶。點擊\"編輯\"按鈕可以改變賬戶的設置。"
 
 #~ msgid "Remove the selected account"
 #~ msgstr "刪除所選賬戶"
 
 #~ 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 ""
-#~ "該按鈕會刪除列表中被選定的賬戶。請確認你的操作。如果你希望繼續使用某個賬"
-#~ "戶,請取消對該賬戶的選擇"
+#~ "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 "該按鈕會刪除列表中被選定的賬戶。請確認你的操作。如果你希望繼續使用某個賬戶,請取消對該賬戶的選擇"
 
 #~ msgid "Remove"
 #~ msgstr "刪除"
 
 #~ 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 ""
-#~ "通過該按鈕可以創建一個新賬戶。添加該賬戶之後你還可以通過編輯按鈕來修改設"
-#~ "置。"
+#~ "This button enables you to initialize a new account. You will then be able "
+#~ "to edit it using the form on the right."
+#~ msgstr "通過該按鈕可以創建一個新賬戶。添加該賬戶之後你還可以通過編輯按鈕來修改設置。"
 
 #~ msgid "Add"
 #~ msgstr "添加"
@@ -1164,9 +1136,8 @@ msgstr "從撥出電話中查詢"
 #~ "this list which is \"registered\". Change the order of the accounts using "
 #~ "the \"Up\" and \"Down\" arrows."
 #~ msgstr ""
-#~ "在默認情況下,當你打電話時,sflphone會使用列表當中第一個已註冊的帳戶。使用"
-#~ "箭頭\"上\"和\"下\"可以改變賬戶的順序。選擇賬戶名稱左邊的方框可以啟用帳戶,"
-#~ "取消選擇則會禁用該賬戶。通過\"加\"\"減\"按鈕可以添加或刪除賬戶。"
+#~ "在默認情況下,當你打電話時,sflphone會使用列表當中第一個已註冊的帳戶。使用箭頭\"上\"和\"下\"可以改變賬戶的順序。選擇賬戶名稱左邊的方框可以"
+#~ "啟用帳戶,取消選擇則會禁用該賬戶。通過\"加\"\"減\"按鈕可以添加或刪除賬戶。"
 
 #~ msgid "Down"
 #~ msgstr "下"
@@ -1264,9 +1235,6 @@ msgstr "從撥出電話中查詢"
 #~ msgid "Prefix dialed numbers with"
 #~ msgstr "號碼前綴"
 
-#~ msgid "History"
-#~ msgstr "歷史"
-
 #~ msgid "Attention:number of results exceeds max displayed."
 #~ msgstr "注意:結果超過可顯示的最大值"
 
@@ -1288,9 +1256,15 @@ msgstr "從撥出電話中查詢"
 #~ msgid "_Edit"
 #~ msgstr "編輯(E)"
 
+#~ msgid "_Volume controls"
+#~ msgstr "音量控制(V)"
+
 #~ msgid "_View"
 #~ msgstr "查看(V)"
 
+#~ msgid "History"
+#~ msgstr "歷史"
+
 #~ msgid "_Enable this account"
 #~ msgstr "啟用該賬戶(E)"
 
@@ -1300,9 +1274,6 @@ msgstr "從撥出電話中查詢"
 #~ msgid "Port"
 #~ msgstr "端口"
 
-#~ msgid "_Volume controls"
-#~ msgstr "音量控制(V)"
-
 #~ msgctxt "Config section"
 #~ msgid "Accounts"
 #~ msgstr "帳戶"
@@ -1595,3 +1566,16 @@ msgstr "從撥出電話中查詢"
 
 #~ msgid "_STUN Server"
 #~ msgstr "STUN伺服器(S)"
+
+#~ msgctxt "NAME OF TRANSLATORS"
+#~ msgid "Your names"
+#~ msgstr ""
+#~ "Yun Liu, ,Launchpad Contributions:,Yun Liu, ,Launchpad "
+#~ "Contributions:,Emmanuel Milou,Yun Liu, ,Launchpad Contributions:,Emmanuel "
+#~ "Milou,Yun Liu, ,Launchpad Contributions:,Emmanuel Milou,Yun Liu"
+
+#~ msgctxt "EMAIL OF TRANSLATORS"
+#~ msgid "Your emails"
+#~ msgstr ""
+#~ "yunliu2000@gmail.com,,,,,,emmanuel.milou@savoirfairelinux.com,,,,emmanuel.mil"
+#~ "ou@savoirfairelinux.com,,,,emmanuel.milou@savoirfairelinux.com,"
diff --git a/lang/zh_TW/zh_TW.po b/lang/zh_TW/zh_TW.po
index dfc3c4a511..e4a57b9b81 100644
--- a/lang/zh_TW/zh_TW.po
+++ b/lang/zh_TW/zh_TW.po
@@ -3,20 +3,19 @@
 # This file is distributed under the same license as the sflphone package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
 #
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
 msgid ""
 msgstr ""
 "Project-Id-Version: sflphone\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-10-14 11:18-0400\n"
-"PO-Revision-Date: 2009-10-07 16:57+0000\n"
+"PO-Revision-Date: 2009-10-26 20:46+0000\n"
 "Last-Translator: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>\n"
 "Language-Team: Traditional Chinese <zh_TW@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2009-10-14 15:20+0000\n"
+"X-Launchpad-Export-Date: 2009-12-03 15:32+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
 #: ../sflphone-client-gnome/src/accountlist.c:175
@@ -99,8 +98,8 @@ msgstr ""
 msgid ""
 "<b>Error: No audio codecs found.\n"
 "\n"
-"</b> SFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</"
-"b> directory in your home( <i>%s</i> )"
+"</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
+"<b>.sflphone</b> directory in your home( <i>%s</i> )"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/errors.c:29
@@ -996,8 +995,13 @@ msgstr ""
 
 #~ msgctxt "NAME OF TRANSLATORS"
 #~ msgid "Your names"
-#~ msgstr ",Launchpad Contributions:, ,Launchpad Contributions:,Emmanuel Milou"
+#~ msgstr ""
+#~ ",Launchpad Contributions:, ,Launchpad Contributions:,Emmanuel Milou, "
+#~ ",Launchpad Contributions:,Emmanuel Milou, ,Launchpad Contributions:,Emmanuel "
+#~ "Milou"
 
 #~ msgctxt "EMAIL OF TRANSLATORS"
 #~ msgid "Your emails"
-#~ msgstr ",,,,emmanuel.milou@savoirfairelinux.com"
+#~ msgstr ""
+#~ ",,,,emmanuel.milou@savoirfairelinux.com,,,emmanuel.milou@savoirfairelinux.com"
+#~ ",,,emmanuel.milou@savoirfairelinux.com"
-- 
GitLab


From 760939dbfd09dd07cf7a104d7b2ab19e3df50d29 Mon Sep 17 00:00:00 2001
From: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
Date: Thu, 3 Dec 2009 11:07:44 -0500
Subject: [PATCH 049/188] [#1060] Merge new translations in GNOME client

---
 lang/da/da.po                                 | 727 +++++++++-----
 lang/de/de.po                                 | 794 +++++++++------
 lang/es/es.po                                 | 827 ++++++++-------
 lang/fr/fr.po                                 | 481 ++++-----
 lang/it/it.po                                 | 750 ++++++++------
 lang/ko/ko.po                                 | 677 ++++++++-----
 lang/merge-po-with-template.sh                |   8 +
 lang/pl/pl.po                                 | 691 ++++++++-----
 lang/pt/pt.po                                 | 725 ++++++++------
 lang/pt_BR/pt_BR.po                           | 815 ++++++++-------
 lang/ru/ru.po                                 | 799 +++++++++------
 lang/update-template.sh                       |   6 +
 lang/update.sh                                |  13 -
 lang/zh_CN/zh_CN.po                           | 780 +++++++++------
 lang/zh_HK/zh_HK.po                           | 783 +++++++++------
 lang/zh_TW/zh_TW.po                           | 679 ++++++++-----
 sflphone-client-gnome/po/Makefile.am          |   6 +-
 sflphone-client-gnome/po/de/de.po             | 851 +++++++++-------
 sflphone-client-gnome/po/es/es.po             | 831 ++++++++-------
 sflphone-client-gnome/po/fr/fr.po             | 481 ++++-----
 sflphone-client-gnome/po/it/it.po             | 944 ++++++++++--------
 sflphone-client-gnome/po/pt_BR/pt_BR.po       | 820 ++++++++-------
 sflphone-client-gnome/po/ru/ru.po             | 802 +++++++++------
 sflphone-client-gnome/po/sflphone_es.po.patch | 395 --------
 sflphone-client-gnome/po/zh_CN/zh_CN.po       | 788 +++++++++------
 sflphone-client-gnome/po/zh_HK/zh_HK.po       | 787 +++++++++------
 26 files changed, 9273 insertions(+), 6987 deletions(-)
 create mode 100755 lang/merge-po-with-template.sh
 create mode 100755 lang/update-template.sh
 delete mode 100755 lang/update.sh
 delete mode 100644 sflphone-client-gnome/po/sflphone_es.po.patch

diff --git a/lang/da/da.po b/lang/da/da.po
index a90aa624db..1c011969ac 100644
--- a/lang/da/da.po
+++ b/lang/da/da.po
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: sflphone\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2009-10-14 11:18-0400\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-12-03 10:22-0500\n"
 "PO-Revision-Date: 2009-11-03 03:52+0000\n"
 "Last-Translator: Jonas Fonseca <fonseca@diku.dk>\n"
 "Language-Team: Danish <da@li.org>\n"
@@ -60,25 +60,15 @@ msgstr "Stun server ugyldig"
 msgid "Invalid"
 msgstr "Ugyldig"
 
-#: ../sflphone-client-gnome/src/actions.c:54
-#: ../sflphone-client-gnome/src/sflnotify.c:94
-#, c-format
-msgid "%d voice mail"
-msgid_plural "%d voice mails"
-msgstr[0] "%d indtalt besked"
-msgstr[1] "%d indtalte beskeder"
-
-#: ../sflphone-client-gnome/src/actions.c:83
-#: ../sflphone-client-gnome/src/actions.c:919
-#: ../sflphone-client-gnome/src/actions.c:926
+#: ../sflphone-client-gnome/src/actions.c:98
 msgid "Using account"
 msgstr "Benytter konto"
 
-#: ../sflphone-client-gnome/src/actions.c:89
+#: ../sflphone-client-gnome/src/actions.c:104
 msgid "No registered accounts"
 msgstr "Ingen registrerede konti"
 
-#: ../sflphone-client-gnome/src/actions.c:268
+#: ../sflphone-client-gnome/src/actions.c:285
 msgid ""
 "Unable to connect to the SFLphone server.\n"
 "Make sure the daemon is running."
@@ -86,27 +76,23 @@ msgstr ""
 "Forbindelse til SFLphone serveren kan ikke oprettes.\n"
 "Sørg for at server-dæmonen kører."
 
-#: ../sflphone-client-gnome/src/actions.c:913
-#, c-format
-msgid "IP call - %s"
-msgstr "IP opkald - %s"
-
-#: ../sflphone-client-gnome/src/actions.c:922
-msgid "Codec"
-msgstr "Kodning"
+#: ../sflphone-client-gnome/src/actions.c:589
+#: ../sflphone-client-gnome/src/actions.c:911
+msgid "Direct SIP call"
+msgstr "Direkte IP opkald"
 
-#: ../sflphone-client-gnome/src/actions.c:1119
+#: ../sflphone-client-gnome/src/actions.c:1103
 #, c-format
 msgid ""
 "<b>Error: No audio codecs found.\n"
 "\n"
-"</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
-"<b>.sflphone</b> directory in your home( <i>%s</i> )"
+"</b> SFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</"
+"b> directory in your home( <i>%s</i> )"
 msgstr ""
 "<b>Fejl: Ingen audio-codec fundet\n"
 "\n"
-"</b>SFL audio-codecs skal installeres i <i>%s</i> eller i mappen "
-"<b>.sflphone</b> i dit hjemmekatalog (<i>%s</i>)"
+"</b>SFL audio-codecs skal installeres i <i>%s</i> eller i mappen <b>."
+"sflphone</b> i dit hjemmekatalog (<i>%s</i>)"
 
 #: ../sflphone-client-gnome/src/errors.c:29
 msgid ""
@@ -150,31 +136,31 @@ msgstr "Igangværende opkald eksisterer"
 msgid "Do you still want to quit?"
 msgstr "Ønsker du stadig at afslutte"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:299
+#: ../sflphone-client-gnome/src/mainwindow.c:298
 msgid "SFLphone Error"
 msgstr "SFLphone fejl"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:391
+#: ../sflphone-client-gnome/src/mainwindow.c:392
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
 msgstr "ZRTP er ikke understøttet af modtageren %s\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:392
+#: ../sflphone-client-gnome/src/mainwindow.c:393
 msgid "Secure Communication Unavailable"
 msgstr "Sikker kommunikation ikke tilgængelig"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:393
-#: ../sflphone-client-gnome/src/mainwindow.c:415
+#: ../sflphone-client-gnome/src/mainwindow.c:394
+#: ../sflphone-client-gnome/src/mainwindow.c:416
 msgid "Continue"
 msgstr "Fortsæt"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:394
-#: ../sflphone-client-gnome/src/mainwindow.c:416
-#: ../sflphone-client-gnome/src/mainwindow.c:430
+#: ../sflphone-client-gnome/src/mainwindow.c:395
+#: ../sflphone-client-gnome/src/mainwindow.c:417
+#: ../sflphone-client-gnome/src/mainwindow.c:431
 msgid "Stop Call"
 msgstr "Afslut opkald"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:413
+#: ../sflphone-client-gnome/src/mainwindow.c:414
 #, c-format
 msgid ""
 "A %s error forced the call with %s to fall under unencrypted mode.\n"
@@ -184,11 +170,11 @@ msgstr ""
 "tilstand.\n"
 "Den præcise årsag: %s\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:414
+#: ../sflphone-client-gnome/src/mainwindow.c:415
 msgid "ZRTP negotiation failed"
 msgstr "ZRTP-forhandling mislykkedes"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:427
+#: ../sflphone-client-gnome/src/mainwindow.c:428
 #, c-format
 msgid ""
 "%s wants to stop using secure communication. Confirm will resume "
@@ -197,11 +183,11 @@ msgstr ""
 "%s ønsker at afslutte brugen af sikker kommunikation. Ved at godkende vil "
 "samtalen fortætte uden SRTP\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:428
+#: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm Go Clear"
 msgstr "Godkend sikkerhedsændring"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:429
+#: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Confirm"
 msgstr "Godkend"
 
@@ -216,6 +202,13 @@ msgstr "%s konto : %s"
 msgid "<i>From</i> %s"
 msgstr "<i>Fra</i> %s"
 
+#: ../sflphone-client-gnome/src/sflnotify.c:94
+#, c-format
+msgid "%d voice mail"
+msgid_plural "%d voice mails"
+msgstr[0] "%d indtalt besked"
+msgstr[1] "%d indtalte beskeder"
+
 #: ../sflphone-client-gnome/src/sflnotify.c:111
 #, c-format
 msgid "Calling with %s account <i>%s</i>"
@@ -265,15 +258,15 @@ msgstr "Højtaler lydstyrke"
 msgid "Mic volume"
 msgstr "Mikrofon lydstyrke"
 
-#: ../sflphone-client-gnome/src/statusicon.c:91
+#: ../sflphone-client-gnome/src/statusicon.c:96
 msgid "_Show main window"
 msgstr "_Vis hovedvindue"
 
-#: ../sflphone-client-gnome/src/statusicon.c:126
+#: ../sflphone-client-gnome/src/statusicon.c:131
 msgid "SFLphone"
 msgstr "SFLphone"
 
-#: ../sflphone-client-gnome/src/statusicon.c:127
+#: ../sflphone-client-gnome/src/statusicon.c:132
 #, c-format
 msgid "%i account configured"
 msgid_plural "%i accounts configured"
@@ -281,202 +274,397 @@ msgstr[0] "%i konto oprettet"
 msgstr[1] "%i konti oprettet"
 
 #: ../sflphone-client-gnome/src/toolbar.c:38
-#: ../sflphone-client-gnome/src/uimanager.c:750
+#: ../sflphone-client-gnome/src/uimanager.c:693
+#: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Voicemail"
 msgstr "Talebesked"
 
-#: ../sflphone-client-gnome/src/uimanager.c:403
+#: ../sflphone-client-gnome/src/uimanager.c:117
+msgid "No address book selected"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:137
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "Address book"
+msgstr "Adressebog"
+
+#: ../sflphone-client-gnome/src/uimanager.c:279
+msgid "Voicemail (%i)"
+msgstr "Talebesked"
+
+#: ../sflphone-client-gnome/src/uimanager.c:342
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
 msgstr "SFLphone er en VoIP-klient kompatibel med SIP og IAX2 protokoller"
 
-#: ../sflphone-client-gnome/src/uimanager.c:406
+#: ../sflphone-client-gnome/src/uimanager.c:345
 msgid "About SFLphone"
 msgstr "Om SFLphone"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1028
+#: ../sflphone-client-gnome/src/uimanager.c:719
+msgid "Call"
+msgstr "Afslut opkald"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+#: ../sflphone-client-gnome/src/uimanager.c:1184
+msgid "_New call"
+msgstr "_Nyt opkald"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+msgid "Place a new call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:721
+#: ../sflphone-client-gnome/src/uimanager.c:979
 msgid "_Pick up"
 msgstr "_Svar"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1040
-#: ../sflphone-client-gnome/src/uimanager.c:1081
+#: ../sflphone-client-gnome/src/uimanager.c:721
+msgid "Answer the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:722
+#: ../sflphone-client-gnome/src/uimanager.c:991
+#: ../sflphone-client-gnome/src/uimanager.c:1032
 msgid "_Hang up"
 msgstr "_Læg på"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1052
-#: ../sflphone-client-gnome/src/uimanager.c:1093
-msgid "On _Hold"
+#: ../sflphone-client-gnome/src/uimanager.c:722
+msgid "Finish the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "O_n hold"
 msgstr "I _venteposition"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1064
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "Place the call on hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "O_ff hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "Place the call off hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:725
+#: ../sflphone-client-gnome/src/uimanager.c:1015
 msgid "_Record"
 msgstr "_Optag"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1154
+#: ../sflphone-client-gnome/src/uimanager.c:725
+msgid "Record the current conversation"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Configuration _Assistant"
+msgstr "Konfigurationsfil"
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Run the configuration assistant"
+msgstr "Stun konfigureringsfejl"
+
+#: ../sflphone-client-gnome/src/uimanager.c:727
+msgid "Call your voicemail"
+msgstr "%d indtalt besked"
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "_Close"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "Minimize to system tray"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "_Quit"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "Quit the program"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:732
+msgid "_Edit"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "_Copy"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "Copy the selection"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "_Paste"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "Paste the clipboard"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear _history"
+msgstr "Opkaldshistorik"
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear the call history"
+msgstr "Opkaldshistorik"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "_Accounts"
+msgstr "Konti"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "Edit your accounts"
+msgstr "Nuværende konto"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "_Preferences"
+msgstr "Indstillinger"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "Change your preferences"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:740
+msgid "_View"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:743
+msgid "_Help"
+msgstr "_Hjem"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Contents"
+msgstr "Fortsæt"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Open the manual"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:745
+msgid "About this application"
+msgstr "Godkendelse"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "_Transfer"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "Transfer the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "_Show toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "Show the toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "_Dialpad"
+msgstr "Deaktiveret"
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "Show the dialpad"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "_Volume controls"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "Show the volume controls"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "_History"
+msgstr "Opkaldshistorik"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "Calls history"
+msgstr "Opkaldshistorik"
+
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "_Address book"
+msgstr "Adressebog"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1003
+#: ../sflphone-client-gnome/src/uimanager.c:1044
+msgid "On _Hold"
+msgstr "I _venteposition"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1107
 msgid "_Call back"
 msgstr "_Besvar opkald"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1226
-msgid "_New call"
-msgstr "_Nyt opkald"
-
-#: ../sflphone-client-gnome/src/uimanager.c:1300
+#: ../sflphone-client-gnome/src/uimanager.c:1258
 msgid "Edit phone number"
 msgstr "Ændre telefonnummer"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1311
+#: ../sflphone-client-gnome/src/uimanager.c:1269
 msgid "Edit the phone number before making a call"
 msgstr "Ændre telefonnummeret før opkald"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:164
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:180
 msgid "Account Parameters"
 msgstr "Kontoparametre"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:173
-#: ../sflphone-client-gnome/src/config/assistant.c:294
-#: ../sflphone-client-gnome/src/config/assistant.c:402
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/assistant.c:314
+#: ../sflphone-client-gnome/src/config/assistant.c:427
 msgid "_Alias"
 msgstr "_Alias"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:181
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:197
 msgid "_Protocol"
 msgstr "_Protokol"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:199
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:215
 msgid "Unknown"
 msgstr "Ukendt"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:209
-#: ../sflphone-client-gnome/src/config/assistant.c:302
-#: ../sflphone-client-gnome/src/config/assistant.c:410
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
+#: ../sflphone-client-gnome/src/config/assistant.c:322
+#: ../sflphone-client-gnome/src/config/assistant.c:435
 msgid "_Host name"
 msgstr "_Værtsnavn"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:217
-#: ../sflphone-client-gnome/src/config/assistant.c:310
-#: ../sflphone-client-gnome/src/config/assistant.c:418
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:233
+#: ../sflphone-client-gnome/src/config/assistant.c:330
+#: ../sflphone-client-gnome/src/config/assistant.c:443
 msgid "_User name"
 msgstr "_Brugernavn"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:234
-#: ../sflphone-client-gnome/src/config/assistant.c:326
-#: ../sflphone-client-gnome/src/config/assistant.c:433
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:346
+#: ../sflphone-client-gnome/src/config/assistant.c:458
 msgid "_Password"
 msgstr "_Adgangskode"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:254
-#: ../sflphone-client-gnome/src/config/assistant.c:344
-#: ../sflphone-client-gnome/src/config/assistant.c:449
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:270
+#: ../sflphone-client-gnome/src/config/assistant.c:363
+#: ../sflphone-client-gnome/src/config/assistant.c:473
+msgid "Show password"
+msgstr "Adgangskode"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:274
+#: ../sflphone-client-gnome/src/config/assistant.c:368
+#: ../sflphone-client-gnome/src/config/assistant.c:478
 msgid "_Voicemail number"
 msgstr "_Nummer for talebesked"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:340
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:361
 msgid "Authentication"
 msgstr "Godkendelse"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:362
 msgid "Secret"
 msgstr "Hemmelig"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:605
 msgid "Credential"
 msgstr "Legitimationsoplysning"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:501
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:640
 msgid "Authentication name"
 msgstr "Godkendelsesnavn"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:512
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:651
 msgid "Password"
 msgstr "Adgangskode"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:535
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:909
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:201
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1056
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:321
 msgid "Security"
 msgstr "Sikkerhed"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:547
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:213
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:333
 msgid "Use TLS transport (sips)"
 msgstr "Benyt TLS transport (sips)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:552
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:218
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:338
 msgid "SRTP key exchange"
 msgstr "SRTP-nøgleudveksling"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:699
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
 msgid "Disabled"
 msgstr "Deaktiveret"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:795
 msgid "Registration"
 msgstr "Registrering"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:800
 msgid "Registration expire"
 msgstr "Forældelse af registrering"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:809
 msgid "_Comply with RFC 3263"
 msgstr "_Overhold RFC 3263"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
-msgid "Network"
-msgstr "Netværk"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:816
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:234
+msgid "Network Interface"
+msgstr "Netværk kan ikke nås"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:830
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:249
 msgid "Local address"
 msgstr "Lokal adresse"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:301
 msgid "Local port"
 msgstr "Lokal port"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:752
-msgid "Set published address and port:"
-msgstr "Konfigurer offentliggjort adresse og port:"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:893
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:928
+msgid "Published address"
+msgstr "Offentliggjort adresse"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:756
-msgid "Using STUN "
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+msgid "Using STUN"
 msgstr "Ved brug af STUN "
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:761
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:906
+msgid "STUN server URL"
+msgstr "STUN serveradresse"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:914
 msgid "Same as local parameters"
 msgstr "Samme som lokale parametre"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:764
-msgid "Manually"
-msgstr "Manuelt"
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:769
-msgid "Published address"
-msgstr "Offentliggjort adresse"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:917
+msgid "Set published address and port:"
+msgstr "Konfigurer offentliggjort adresse og port:"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:777
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:936
 msgid "Published port"
 msgstr "Offentliggjort port"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:785
-msgid "STUN server URL"
-msgstr "STUN serveradresse"
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1027
 msgid "Account settings"
 msgstr "Kontoindstillinger"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1046
 msgid "Basic"
 msgstr "Grundlæggende"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:904
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1051
 msgid "Advanced"
 msgstr "Advanceret"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:169
-msgid "Server returned \""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:164
+msgid "Server returned \"%s\" (%d)"
 msgstr "Server svarede \""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
@@ -495,32 +683,18 @@ msgstr "Konti"
 msgid "Configured Accounts"
 msgstr "Oprettede konti"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
-msgid "There "
-msgstr "Der "
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:501
+msgid "There is %d active account"
+msgid_plural "There are %d active accounts"
+msgstr[0] " aktiv konto"
+msgstr[1] " aktiv konto"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "is "
-msgstr "er "
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "are "
-msgstr "er "
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
-msgid " active account"
-msgstr " aktiv konto"
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
-msgid "s"
-msgstr "s"
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:507
 msgid "You have no active account"
 msgstr "Der er ingen aktive konti"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:556
 msgid "General"
 msgstr "Generelt"
 
@@ -565,16 +739,16 @@ msgid "Select which Evolution address books to use"
 msgstr "Vælg hvilke af Evolutions adressekartoteker skal benyttes"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:404
-#: ../sflphone-client-gnome/src/config/audioconf.c:578
+#: ../sflphone-client-gnome/src/config/audioconf.c:577
 msgid "Name"
 msgstr "Navn"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:69
+#: ../sflphone-client-gnome/src/config/assistant.c:75
 #, c-format
 msgid "This assistant is now finished."
 msgstr "Denne vejledning er nu fuldført"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:71
+#: ../sflphone-client-gnome/src/config/assistant.c:77
 msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
@@ -582,212 +756,206 @@ msgstr ""
 "Du kan til enhver tid undersøge din registrering eller ændre dine kontis "
 "parametre i vinduet Indstillinger/Konti"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:74
+#: ../sflphone-client-gnome/src/config/assistant.c:80
 msgid "Alias"
 msgstr "Alias"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:78
+#: ../sflphone-client-gnome/src/config/assistant.c:84
 msgid "Server"
 msgstr "Server"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:82
+#: ../sflphone-client-gnome/src/config/assistant.c:88
 msgid "Username"
 msgstr "Brugernavn"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:86
+#: ../sflphone-client-gnome/src/config/assistant.c:92
 msgid "Security: "
 msgstr "Sikkerhed: "
 
-#: ../sflphone-client-gnome/src/config/assistant.c:88
+#: ../sflphone-client-gnome/src/config/assistant.c:94
 msgid "SRTP/ZRTP draft-zimmermann"
 msgstr "SRTP/ZRTP draft-zimmermann"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:90
-#: ../sflphone-client-gnome/src/config/assistant.c:182
+#: ../sflphone-client-gnome/src/config/assistant.c:96
 msgid "None"
 msgstr "Ingen"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:210
+#: ../sflphone-client-gnome/src/config/assistant.c:229
 msgid "SFLphone account creation wizard"
 msgstr "SFLphone-guiden til oprettelse af konto"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:236
+#: ../sflphone-client-gnome/src/config/assistant.c:255
 msgid "Welcome to the Account creation wizard of SFLphone!"
 msgstr "Velkommen til kontooperettelsesvejledning for SFLphone"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:237
+#: ../sflphone-client-gnome/src/config/assistant.c:256
 msgid "This installation wizard will help you configure an account."
 msgstr ""
 "Denne installeringsvejledning vil hjælpe dig med at konfigurere en konto"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "VoIP Protocols"
 msgstr "VoIP protokoller"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "Select an account type"
 msgstr "Vælg en kontotype"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:253
+#: ../sflphone-client-gnome/src/config/assistant.c:272
 msgid "SIP (Session Initiation Protocol)"
 msgstr "SIP (Session Initiation Protocol)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:255
+#: ../sflphone-client-gnome/src/config/assistant.c:274
 msgid "IAX2 (InterAsterix Exchange)"
 msgstr "IAX2 (InterAsterix Exchange)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Account"
 msgstr "Konto"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Please select one of the following options"
 msgstr "Vælg en af følgende indstillinger"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:271
+#: ../sflphone-client-gnome/src/config/assistant.c:290
 msgid "Create a free SIP/IAX2 account on sflphone.org"
 msgstr "Opret en gratis SIP/IAX2 konto hos sflphone.org"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:273
+#: ../sflphone-client-gnome/src/config/assistant.c:292
 msgid "Register an existing SIP or IAX2 account"
 msgstr "Registrer en eksisterende SIP eller IAX2 konto"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
+#: ../sflphone-client-gnome/src/config/assistant.c:306
 msgid "SIP account settings"
 msgstr "SIP kontoindstillinger"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:306
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "Please fill the following information"
 msgstr "Udfyld venligst følgende information"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:352
-#: ../sflphone-client-gnome/src/config/assistant.c:381
+#: ../sflphone-client-gnome/src/config/assistant.c:376
+#: ../sflphone-client-gnome/src/config/assistant.c:405
 msgid "Secure communications with _ZRTP"
 msgstr "Sikker kommunikation med _ZRTP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "Optional email address"
 msgstr "Valgfri emailadresse"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "This email address will be used to send your voicemail messages."
-msgstr ""
-"Denne emailadresse vil blive brugt til at sende dig indtalte beskeder"
+msgstr "Denne emailadresse vil blive brugt til at sende dig indtalte beskeder"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:373
+#: ../sflphone-client-gnome/src/config/assistant.c:397
 msgid "_Email address"
 msgstr "_Emailadresse"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "IAX2 account settings"
 msgstr "IAX2 kontoindstillinger"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "Network Address Translation (NAT)"
 msgstr "Network Address Translation (NAT)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "You should probably enable this if you are behind a firewall."
 msgstr "Du opfordres til at aktivere dette hvis du er bag en firewall"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:476
+#: ../sflphone-client-gnome/src/config/assistant.c:505
 msgid "E_nable STUN"
 msgstr "_Benyt STUN"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:483
+#: ../sflphone-client-gnome/src/config/assistant.c:512
 msgid "_STUN server"
 msgstr "_STUN server"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Account Registration"
 msgstr "Kontoregistrering"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Congratulations!"
 msgstr "Tillykke!"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:583
+#: ../sflphone-client-gnome/src/config/audioconf.c:582
 msgid "Frequency"
 msgstr "Frekvens"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:588
+#: ../sflphone-client-gnome/src/config/audioconf.c:587
 msgid "Bitrate"
 msgstr "Bithastighed"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:593
+#: ../sflphone-client-gnome/src/config/audioconf.c:592
 msgid "Bandwidth"
 msgstr "Båndbredde"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:673
+#: ../sflphone-client-gnome/src/config/audioconf.c:670
 msgid "ALSA plugin"
 msgstr "ALSA plugin"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:695
+#: ../sflphone-client-gnome/src/config/audioconf.c:692
 msgid "Output"
 msgstr "Uddata"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:717
+#: ../sflphone-client-gnome/src/config/audioconf.c:714
 msgid "Input"
 msgstr "Inddata"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:752
+#: ../sflphone-client-gnome/src/config/audioconf.c:749
 msgid "_Voice Activity Detection"
 msgstr "_Detektering af taleaktivitet"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:762
+#: ../sflphone-client-gnome/src/config/audioconf.c:759
 msgid "_Noise Reduction (Narrow-Band Companding)"
 msgstr "_Støjreducering (Narrow-Band Companding)"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:798
+#: ../sflphone-client-gnome/src/config/audioconf.c:800
 msgid "Sound Manager"
 msgstr "Lydhåndtering"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:807
+#: ../sflphone-client-gnome/src/config/audioconf.c:809
 msgid "_Pulseaudio"
 msgstr "_PulseAudio"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:811
+#: ../sflphone-client-gnome/src/config/audioconf.c:813
 msgid "_ALSA"
 msgstr "_ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:816
-msgid "_Mute other applications during a call"
-msgstr "_Dæmp andre programmer ved opkald"
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:823
+#: ../sflphone-client-gnome/src/config/audioconf.c:819
 msgid "ALSA settings"
 msgstr "ALSA indstillinger"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:840
+#: ../sflphone-client-gnome/src/config/audioconf.c:836
 msgid "Codecs"
 msgstr "Codecs"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:869
+#: ../sflphone-client-gnome/src/config/audioconf.c:865
 msgid "Recordings"
 msgstr "Optagelser"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:873
+#: ../sflphone-client-gnome/src/config/audioconf.c:869
 msgid "Destination folder"
 msgstr "Destinationsmappe"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:877
+#: ../sflphone-client-gnome/src/config/audioconf.c:873
 msgid "Select a folder"
 msgstr "Vælg en mappe"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:883
+#: ../sflphone-client-gnome/src/config/audioconf.c:879
 msgid "Ringtones"
 msgstr "Ringetoner"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:889
+#: ../sflphone-client-gnome/src/config/audioconf.c:885
 msgid "_Enable ringtones"
 msgstr "Aktiver _ringetoner"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:895
+#: ../sflphone-client-gnome/src/config/audioconf.c:891
 msgid "Choose a ringtone"
 msgstr "Vælg en ringetone"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:901
+#: ../sflphone-client-gnome/src/config/audioconf.c:897
 msgid "Audio Files"
 msgstr "Lydfiler"
 
@@ -824,7 +992,7 @@ msgstr "Omskrivning af telefonnummer"
 msgid "_Prefix dialed numbers with"
 msgstr "_Præfiks for indtastede numre"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:195
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:225
 msgid ""
 "This profile is used when you want to reach a remote peer simply by typing a "
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
@@ -835,79 +1003,59 @@ msgstr ""
 "du definerer her vil også benyttes hvis ingen konto kan tilknyttes et "
 "indgående eller udgående opkald."
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:274
-msgid "SIP Port"
-msgstr "SIP Port"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:281
-msgid "UDP Transport"
-msgstr "UDP transport"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:319
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:440
 msgid "Desktop Notifications"
 msgstr "Meddelelser"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:323
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:444
 msgid "_Enable notifications"
 msgstr "_Aktiver meddelelser"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:329
-msgid "Enable voicemail _notifications"
-msgstr "Aktiver _talebeskedsmeddelelser"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:341
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:450
 msgid "System Tray Icon"
 msgstr "Systembakke-ikon"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
 msgid "_Popup main window on incoming call"
 msgstr "_Vis hovedvindue ved indgående opkald"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:349
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:457
 msgid "Ne_ver popup main window"
 msgstr "Aldrig _pop-op hovedvindue"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:353
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
 msgid "Hide SFLphone window on _startup"
 msgstr "Skjul SFLphone vinduet ved _start"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:359
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:469
 msgid "Calls History"
 msgstr "Opkaldshistorik"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:362
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:472
 msgid "_Keep my history for at least"
 msgstr "_Gem min historik i mindst"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:373
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:483
 msgid "days"
 msgstr "dage"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
-msgid "Configuration File"
-msgstr "Konfigurationsfil"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
-msgid "Store SIP credentials as MD5 hash"
-msgstr "Gem SIP-legitimationsoplysninger som _MD5-hash-værdi"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:423
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:536
 msgid "Preferences"
 msgstr "Indstillinger"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:448
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:561
 msgid "Audio"
 msgstr "Audio"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:566
 msgid "Address Book"
 msgstr "Adressebog"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:458
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:571
 msgid "Hooks"
 msgstr "Hooks"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:468
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:581
 msgid "Direct IP calls"
 msgstr "Direkte IP opkald"
 
@@ -915,11 +1063,11 @@ msgstr "Direkte IP opkald"
 msgid "Advanced options for TLS"
 msgstr "Advancerede indstillinger for TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:56
 msgid "TLS transport"
 msgstr "TLS transport"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:60
 msgid ""
 "TLS transport can be used along with UDP for those calls that would\n"
 "require secure sip transactions (aka SIPS). You can configure a different\n"
@@ -932,55 +1080,55 @@ msgstr ""
 "TLS transporter for de enkelte konti. Bemærk dog at de hver vil benytte\n"
 "en dedikeret port forskellig fra hinanden.\n"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:103
 msgid "Certificate of Authority list"
 msgstr "Autoritetscertifikatsliste"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:107
 msgid "Choose a CA list file (optional)"
 msgstr "Vælg en fil med en autoritetscertifikatsliste (valgfri)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:115
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:131
 msgid "Public endpoint certificate file"
 msgstr "Offentlig endpoint certifikatsfil"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:119
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:135
 msgid "Choose a public endpoint certificate (optional)"
 msgstr "Vælg et offentligt endpoint-certifikat (valgfri)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:134
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:159
 msgid "Choose a private key file (optional)"
 msgstr "Vælg en privat nøglefil (valgfri)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:145
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:181
 msgid "Password for the private key"
 msgstr "Adgangskode for den private nøgle"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:168
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:204
 msgid "TLS protocol method"
 msgstr "TLS protokolmetode"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:202
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:238
 msgid "TLS cipher list"
 msgstr "TLS cifferliste"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:211
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:247
 msgid "Server name instance for outgoing TLS connection"
 msgstr "Server navneinstans for udgående TLS forbindelse"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:219
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:255
 msgid "Negotiation timeout (sec:msec)"
 msgstr "Forhandlingstimeout"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:236
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:272
 msgid "Verify incoming certificates, as a server"
 msgstr "Udfør kontrol af indgående certifikater, som en server"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:242
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:278
 msgid "Verify certificates from answer, as a client"
 msgstr "Udfør kontrol af certifikater fra svar, som en klient"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:248
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:284
 msgid "Require certificate for incoming tls connections"
 msgstr "Kræv certifikat for indgående TLS forbindelser"
 
@@ -988,41 +1136,80 @@ msgstr "Kræv certifikat for indgående TLS forbindelser"
 msgid "ZRTP Options"
 msgstr "ZRTP indstillinger"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:68
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:69
 msgid "Send Hello Hash in S_DP"
 msgstr "Send \"Hello Hash\" i S_DP"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:74
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:75
 msgid "Ask User to Confirm SAS"
 msgstr "_Spørg bruger om at godkende SAS"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:80
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:81
 msgid "_Warn if ZRTP not supported"
 msgstr "_Advar hvis ZRTP ikke understøttes"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:86
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:87
 msgid "Display SAS once for hold events"
 msgstr "_Vis SAS en enkelt gang for vente-hændelser"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:56
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:58
 msgid "Search all"
 msgstr "Søg alle"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:57
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:70
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:82
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:94
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:59
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:72
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:84
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:96
 msgid "Click here to change the search type"
 msgstr "Klik her for at ændre søgningstypen"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:69
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:71
 msgid "Search by missed call"
 msgstr "Søg i ubesvarede opkald"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:81
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:83
 msgid "Search by incoming call"
 msgstr "Søg i indgående opkald"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:93
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:95
 msgid "Search by outgoing call"
 msgstr "Søg i udgående opkald"
+
+#~ msgid "IP call - %s"
+#~ msgstr "IP opkald - %s"
+
+#~ msgid "Codec"
+#~ msgstr "Kodning"
+
+#~ msgid "Network"
+#~ msgstr "Netværk"
+
+#~ msgid "Manually"
+#~ msgstr "Manuelt"
+
+#~ msgid "There "
+#~ msgstr "Der "
+
+#~ msgid "is "
+#~ msgstr "er "
+
+#~ msgid "are "
+#~ msgstr "er "
+
+#~ msgid "s"
+#~ msgstr "s"
+
+#~ msgid "_Mute other applications during a call"
+#~ msgstr "_Dæmp andre programmer ved opkald"
+
+#~ msgid "SIP Port"
+#~ msgstr "SIP Port"
+
+#~ msgid "UDP Transport"
+#~ msgstr "UDP transport"
+
+#~ msgid "Enable voicemail _notifications"
+#~ msgstr "Aktiver _talebeskedsmeddelelser"
+
+#~ msgid "Store SIP credentials as MD5 hash"
+#~ msgstr "Gem SIP-legitimationsoplysninger som _MD5-hash-værdi"
diff --git a/lang/de/de.po b/lang/de/de.po
index ccf215dcdc..ca1afd15a4 100644
--- a/lang/de/de.po
+++ b/lang/de/de.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: sflphone\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-14 11:18-0400\n"
+"POT-Creation-Date: 2009-12-03 10:22-0500\n"
 "PO-Revision-Date: 2009-10-26 20:46+0000\n"
 "Last-Translator: Maxime Chambreuil <maxime.chambreuil@gmail.com>\n"
 "Language-Team: SavoirFaire Linux Inc <sflphoneteam@savoirfairelinux.com>\n"
@@ -60,25 +60,15 @@ msgstr "Ungültiger Stun server"
 msgid "Invalid"
 msgstr "Ungültig"
 
-#: ../sflphone-client-gnome/src/actions.c:54
-#: ../sflphone-client-gnome/src/sflnotify.c:94
-#, c-format
-msgid "%d voice mail"
-msgid_plural "%d voice mails"
-msgstr[0] "%d Voice Nachricht"
-msgstr[1] "%d Voice Nachricht"
-
-#: ../sflphone-client-gnome/src/actions.c:83
-#: ../sflphone-client-gnome/src/actions.c:919
-#: ../sflphone-client-gnome/src/actions.c:926
+#: ../sflphone-client-gnome/src/actions.c:98
 msgid "Using account"
 msgstr "Mit Konto"
 
-#: ../sflphone-client-gnome/src/actions.c:89
+#: ../sflphone-client-gnome/src/actions.c:104
 msgid "No registered accounts"
 msgstr "Kein registriertes Konto"
 
-#: ../sflphone-client-gnome/src/actions.c:268
+#: ../sflphone-client-gnome/src/actions.c:285
 msgid ""
 "Unable to connect to the SFLphone server.\n"
 "Make sure the daemon is running."
@@ -86,22 +76,18 @@ msgstr ""
 "SFLphone Server kann nicht verbunden werden. Stellen Sie sicher, dass der "
 "Dämon läuft."
 
-#: ../sflphone-client-gnome/src/actions.c:913
-#, c-format
-msgid "IP call - %s"
-msgstr "IP Anruf - %s"
-
-#: ../sflphone-client-gnome/src/actions.c:922
-msgid "Codec"
-msgstr "Codec"
+#: ../sflphone-client-gnome/src/actions.c:589
+#: ../sflphone-client-gnome/src/actions.c:911
+msgid "Direct SIP call"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:1119
+#: ../sflphone-client-gnome/src/actions.c:1103
 #, c-format
 msgid ""
 "<b>Error: No audio codecs found.\n"
 "\n"
-"</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
-"<b>.sflphone</b> directory in your home( <i>%s</i> )"
+"</b> SFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</"
+"b> directory in your home( <i>%s</i> )"
 msgstr ""
 "<b>Fehler: Kein Audio-Codec gefunden.\n"
 "\n"
@@ -150,53 +136,53 @@ msgstr "Laufende Anrufe."
 msgid "Do you still want to quit?"
 msgstr "Bitte bestätigen, dass Sie die Anwendung beenden möchten"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:299
+#: ../sflphone-client-gnome/src/mainwindow.c:298
 msgid "SFLphone Error"
 msgstr "SFLphone Fehler"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:391
+#: ../sflphone-client-gnome/src/mainwindow.c:392
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:392
+#: ../sflphone-client-gnome/src/mainwindow.c:393
 msgid "Secure Communication Unavailable"
 msgstr "Sichere Verbindung nicht verfügbar"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:393
-#: ../sflphone-client-gnome/src/mainwindow.c:415
+#: ../sflphone-client-gnome/src/mainwindow.c:394
+#: ../sflphone-client-gnome/src/mainwindow.c:416
 msgid "Continue"
 msgstr "Weiter"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:394
-#: ../sflphone-client-gnome/src/mainwindow.c:416
-#: ../sflphone-client-gnome/src/mainwindow.c:430
+#: ../sflphone-client-gnome/src/mainwindow.c:395
+#: ../sflphone-client-gnome/src/mainwindow.c:417
+#: ../sflphone-client-gnome/src/mainwindow.c:431
 msgid "Stop Call"
 msgstr "Anruf beenden"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:413
+#: ../sflphone-client-gnome/src/mainwindow.c:414
 #, c-format
 msgid ""
 "A %s error forced the call with %s to fall under unencrypted mode.\n"
 "Exact reason: %s\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:414
+#: ../sflphone-client-gnome/src/mainwindow.c:415
 msgid "ZRTP negotiation failed"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:427
+#: ../sflphone-client-gnome/src/mainwindow.c:428
 #, c-format
 msgid ""
 "%s wants to stop using secure communication. Confirm will resume "
 "conversation without SRTP.\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:428
+#: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm Go Clear"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:429
+#: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Confirm"
 msgstr "Bestätigen"
 
@@ -211,6 +197,13 @@ msgstr "Konto %s : %s"
 msgid "<i>From</i> %s"
 msgstr "<i>Von</i> %s"
 
+#: ../sflphone-client-gnome/src/sflnotify.c:94
+#, c-format
+msgid "%d voice mail"
+msgid_plural "%d voice mails"
+msgstr[0] "%d Voice Nachricht"
+msgstr[1] "%d Voice Nachricht"
+
 #: ../sflphone-client-gnome/src/sflnotify.c:111
 #, c-format
 msgid "Calling with %s account <i>%s</i>"
@@ -258,15 +251,15 @@ msgstr "Lautsprecher Lautstärke"
 msgid "Mic volume"
 msgstr "Mikro Lautstärke"
 
-#: ../sflphone-client-gnome/src/statusicon.c:91
+#: ../sflphone-client-gnome/src/statusicon.c:96
 msgid "_Show main window"
 msgstr "_Hauptfenster anzeigen"
 
-#: ../sflphone-client-gnome/src/statusicon.c:126
+#: ../sflphone-client-gnome/src/statusicon.c:131
 msgid "SFLphone"
 msgstr "SFLphone"
 
-#: ../sflphone-client-gnome/src/statusicon.c:127
+#: ../sflphone-client-gnome/src/statusicon.c:132
 #, c-format
 msgid "%i account configured"
 msgid_plural "%i accounts configured"
@@ -274,203 +267,398 @@ msgstr[0] "%i Konto konfiguriert"
 msgstr[1] "%i Konten konfiguriert"
 
 #: ../sflphone-client-gnome/src/toolbar.c:38
-#: ../sflphone-client-gnome/src/uimanager.c:750
+#: ../sflphone-client-gnome/src/uimanager.c:693
+#: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Voicemail"
 msgstr "Voicemail"
 
-#: ../sflphone-client-gnome/src/uimanager.c:403
+#: ../sflphone-client-gnome/src/uimanager.c:117
+msgid "No address book selected"
+msgstr "Adressbuch"
+
+#: ../sflphone-client-gnome/src/uimanager.c:137
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "Address book"
+msgstr "Adressbuch"
+
+#: ../sflphone-client-gnome/src/uimanager.c:279
+msgid "Voicemail (%i)"
+msgstr "Voicemail (%i)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:342
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
-msgstr ""
-"SFLphone ist ein VoIP Client (kompatibel mit SIP und IAX2 Protokolle)"
+msgstr "SFLphone ist ein VoIP Client (kompatibel mit SIP und IAX2 Protokolle)"
 
-#: ../sflphone-client-gnome/src/uimanager.c:406
+#: ../sflphone-client-gnome/src/uimanager.c:345
 msgid "About SFLphone"
 msgstr "Über SFLphone"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1028
+#: ../sflphone-client-gnome/src/uimanager.c:719
+msgid "Call"
+msgstr "_Anruf"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+#: ../sflphone-client-gnome/src/uimanager.c:1184
+msgid "_New call"
+msgstr "_Neuer Anruf"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+msgid "Place a new call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:721
+#: ../sflphone-client-gnome/src/uimanager.c:979
 msgid "_Pick up"
 msgstr "_Abnehmen"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1040
-#: ../sflphone-client-gnome/src/uimanager.c:1081
+#: ../sflphone-client-gnome/src/uimanager.c:721
+msgid "Answer the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:722
+#: ../sflphone-client-gnome/src/uimanager.c:991
+#: ../sflphone-client-gnome/src/uimanager.c:1032
 msgid "_Hang up"
 msgstr "A_uflegen"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1052
-#: ../sflphone-client-gnome/src/uimanager.c:1093
-msgid "On _Hold"
+#: ../sflphone-client-gnome/src/uimanager.c:722
+msgid "Finish the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "O_n hold"
 msgstr "in _Warteschleife"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1064
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "Place the call on hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "O_ff hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "Place the call off hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:725
+#: ../sflphone-client-gnome/src/uimanager.c:1015
 msgid "_Record"
 msgstr "_Gespräch aufzeichnen"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1154
+#: ../sflphone-client-gnome/src/uimanager.c:725
+msgid "Record the current conversation"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Configuration _Assistant"
+msgstr "Einrichtungsdatei"
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Run the configuration assistant"
+msgstr "Stun: Konfigurationsfehler"
+
+#: ../sflphone-client-gnome/src/uimanager.c:727
+msgid "Call your voicemail"
+msgstr "%d Voice Nachricht"
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "_Close"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "Minimize to system tray"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "_Quit"
+msgstr "_Editieren"
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "Quit the program"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:732
+msgid "_Edit"
+msgstr "_Editieren"
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "_Copy"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "Copy the selection"
+msgstr "Entfernen Sie das ausgewählte Konto"
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "_Paste"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "Paste the clipboard"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear _history"
+msgstr "Liste der vorherigen Anrufen _leeren"
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear the call history"
+msgstr "Vorherigen Anrufen leeren"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "_Accounts"
+msgstr "_Konten"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "Edit your accounts"
+msgstr "Aktuelles Konto"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "_Preferences"
+msgstr "Einstellungen"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "Change your preferences"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:740
+msgid "_View"
+msgstr "_Anzeigen"
+
+#: ../sflphone-client-gnome/src/uimanager.c:743
+msgid "_Help"
+msgstr "_Hilfe"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Contents"
+msgstr "Weiter"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Open the manual"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:745
+msgid "About this application"
+msgstr "Authentifizierung"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "_Transfer"
+msgstr "Weiterleiten"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "Transfer the call"
+msgstr "Weiterleiten zu : "
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "_Show toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "Show the toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "_Dialpad"
+msgstr "_Wählscheibe"
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "Show the dialpad"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "_Volume controls"
+msgstr "Lautstärke-Regler anzeigen"
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "Show the volume controls"
+msgstr "Lautstärke-Regler anzeigen"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "_History"
+msgstr "Vorherige Anrufe"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "Calls history"
+msgstr "Liste der vorherigen Anrufen"
+
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "_Address book"
+msgstr "Adressbuch"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1003
+#: ../sflphone-client-gnome/src/uimanager.c:1044
+msgid "On _Hold"
+msgstr "in _Warteschleife"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1107
 msgid "_Call back"
 msgstr "_Zurückrufen"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1226
-msgid "_New call"
-msgstr "_Neuer Anruf"
-
-#: ../sflphone-client-gnome/src/uimanager.c:1300
+#: ../sflphone-client-gnome/src/uimanager.c:1258
 msgid "Edit phone number"
 msgstr "Nummer editieren"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1311
+#: ../sflphone-client-gnome/src/uimanager.c:1269
 msgid "Edit the phone number before making a call"
 msgstr "Nummer vor dem Anruf editieren"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:164
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:180
 msgid "Account Parameters"
 msgstr "Konto parameter"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:173
-#: ../sflphone-client-gnome/src/config/assistant.c:294
-#: ../sflphone-client-gnome/src/config/assistant.c:402
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/assistant.c:314
+#: ../sflphone-client-gnome/src/config/assistant.c:427
 msgid "_Alias"
 msgstr "_Alias"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:181
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:197
 msgid "_Protocol"
 msgstr "_Protokoll"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:199
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:215
 msgid "Unknown"
 msgstr "Unbekannt"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:209
-#: ../sflphone-client-gnome/src/config/assistant.c:302
-#: ../sflphone-client-gnome/src/config/assistant.c:410
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
+#: ../sflphone-client-gnome/src/config/assistant.c:322
+#: ../sflphone-client-gnome/src/config/assistant.c:435
 msgid "_Host name"
 msgstr "_Hostname"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:217
-#: ../sflphone-client-gnome/src/config/assistant.c:310
-#: ../sflphone-client-gnome/src/config/assistant.c:418
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:233
+#: ../sflphone-client-gnome/src/config/assistant.c:330
+#: ../sflphone-client-gnome/src/config/assistant.c:443
 msgid "_User name"
 msgstr "_Benutzername"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:234
-#: ../sflphone-client-gnome/src/config/assistant.c:326
-#: ../sflphone-client-gnome/src/config/assistant.c:433
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:346
+#: ../sflphone-client-gnome/src/config/assistant.c:458
 msgid "_Password"
 msgstr "_Passwort"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:254
-#: ../sflphone-client-gnome/src/config/assistant.c:344
-#: ../sflphone-client-gnome/src/config/assistant.c:449
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:270
+#: ../sflphone-client-gnome/src/config/assistant.c:363
+#: ../sflphone-client-gnome/src/config/assistant.c:473
+msgid "Show password"
+msgstr "Passwort"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:274
+#: ../sflphone-client-gnome/src/config/assistant.c:368
+#: ../sflphone-client-gnome/src/config/assistant.c:478
 msgid "_Voicemail number"
 msgstr "_Voicemail Nummer"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:340
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:361
 msgid "Authentication"
 msgstr "Authentifizierung"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:362
 msgid "Secret"
 msgstr "Geheim"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:605
 msgid "Credential"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:501
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:640
 msgid "Authentication name"
 msgstr "Authentifizierung Name"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:512
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:651
 msgid "Password"
 msgstr "Passwort"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:535
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:909
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:201
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1056
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:321
 msgid "Security"
 msgstr "Sicherheit"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:547
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:213
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:333
 msgid "Use TLS transport (sips)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:552
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:218
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:338
 msgid "SRTP key exchange"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:699
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
 msgid "Disabled"
 msgstr "Deaktiviert"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:795
 msgid "Registration"
 msgstr "Anmeldung"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:800
 msgid "Registration expire"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:809
 msgid "_Comply with RFC 3263"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
-msgid "Network"
-msgstr "Netzwerk"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:816
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:234
+msgid "Network Interface"
+msgstr "Kein netzwerk"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:830
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:249
 msgid "Local address"
 msgstr "Adresse (lokal)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:301
 msgid "Local port"
 msgstr "Port (lokal)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:752
-msgid "Set published address and port:"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:893
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:928
+msgid "Published address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:756
-msgid "Using STUN "
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+msgid "Using STUN"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:761
-msgid "Same as local parameters"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:906
+msgid "STUN server URL"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:764
-msgid "Manually"
-msgstr "Manuell"
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:769
-msgid "Published address"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:914
+msgid "Same as local parameters"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:777
-msgid "Published port"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:917
+msgid "Set published address and port:"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:785
-msgid "STUN server URL"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:936
+msgid "Published port"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1027
 msgid "Account settings"
 msgstr "Kontoeinstellungen"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1046
 msgid "Basic"
 msgstr "Allgemein"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:904
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1051
 msgid "Advanced"
 msgstr "Erweitert"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:169
-msgid "Server returned \""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:164
+#, c-format
+msgid "Server returned \"%s\" (%d)"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
@@ -489,32 +677,18 @@ msgstr "Konten"
 msgid "Configured Accounts"
 msgstr "Konfigurierten Konten"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
-msgid "There "
-msgstr "Es "
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "is "
-msgstr "gibt "
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "are "
-msgstr "gibt "
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
-msgid " active account"
-msgstr " aktive Konten"
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:501
+msgid "There is %d active account"
+msgid_plural "There are %d active accounts"
+msgstr[0] " aktive Konten"
+msgstr[1] " aktive Konten"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
-msgid "s"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:507
 msgid "You have no active account"
 msgstr "Sie haben kein aktives Konto"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:556
 msgid "General"
 msgstr "Allgemein"
 
@@ -559,16 +733,16 @@ msgid "Select which Evolution address books to use"
 msgstr "Adressbücher von Evolution zum verwenden auswählen"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:404
-#: ../sflphone-client-gnome/src/config/audioconf.c:578
+#: ../sflphone-client-gnome/src/config/audioconf.c:577
 msgid "Name"
 msgstr "Name"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:69
+#: ../sflphone-client-gnome/src/config/assistant.c:75
 #, c-format
 msgid "This assistant is now finished."
 msgstr "Assistent beendet."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:71
+#: ../sflphone-client-gnome/src/config/assistant.c:77
 msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
@@ -576,213 +750,207 @@ msgstr ""
 "Sie können jederzeit Ihres Registrierungsstatus überprüfen oder "
 "IhreKontoparameter ändern (Optionen/Konten)."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:74
+#: ../sflphone-client-gnome/src/config/assistant.c:80
 msgid "Alias"
 msgstr "Alias"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:78
+#: ../sflphone-client-gnome/src/config/assistant.c:84
 msgid "Server"
 msgstr "Server"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:82
+#: ../sflphone-client-gnome/src/config/assistant.c:88
 msgid "Username"
 msgstr "Benutzername"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:86
+#: ../sflphone-client-gnome/src/config/assistant.c:92
 msgid "Security: "
 msgstr "Sicherheit: "
 
-#: ../sflphone-client-gnome/src/config/assistant.c:88
+#: ../sflphone-client-gnome/src/config/assistant.c:94
 msgid "SRTP/ZRTP draft-zimmermann"
 msgstr "SRTP/ZRTP draft-zimmermann"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:90
-#: ../sflphone-client-gnome/src/config/assistant.c:182
+#: ../sflphone-client-gnome/src/config/assistant.c:96
 msgid "None"
 msgstr "Nichts"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:210
+#: ../sflphone-client-gnome/src/config/assistant.c:229
 msgid "SFLphone account creation wizard"
 msgstr "SFLphone Konto (Konfigurationsassistent)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:236
+#: ../sflphone-client-gnome/src/config/assistant.c:255
 msgid "Welcome to the Account creation wizard of SFLphone!"
 msgstr "Wilkommen zu SFLphone!"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:237
+#: ../sflphone-client-gnome/src/config/assistant.c:256
 msgid "This installation wizard will help you configure an account."
 msgstr ""
 "The Installationsassistent wird Ihnen helfen, ein Konto zu konfigurieren."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "VoIP Protocols"
 msgstr "VoIP Protokoll"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "Select an account type"
 msgstr "Kontotyp auswählen"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:253
+#: ../sflphone-client-gnome/src/config/assistant.c:272
 msgid "SIP (Session Initiation Protocol)"
 msgstr "SIP (Session Initiation Protocol)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:255
+#: ../sflphone-client-gnome/src/config/assistant.c:274
 msgid "IAX2 (InterAsterix Exchange)"
 msgstr "IAX2 (InterAsterisk Exchange)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Account"
 msgstr "Konto"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Please select one of the following options"
 msgstr "Bitte eine Option auswählen"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:271
+#: ../sflphone-client-gnome/src/config/assistant.c:290
 msgid "Create a free SIP/IAX2 account on sflphone.org"
 msgstr "SIP/IAX2 Konto bei sflphone.org erstellen lassen"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:273
+#: ../sflphone-client-gnome/src/config/assistant.c:292
 msgid "Register an existing SIP or IAX2 account"
 msgstr "Existierendes SIP/IAX2 Konto registrieren"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
+#: ../sflphone-client-gnome/src/config/assistant.c:306
 msgid "SIP account settings"
 msgstr "Konfiguration des SIP Konto"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:306
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "Please fill the following information"
 msgstr "Folgende Informationen bitte ausfühlen"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:352
-#: ../sflphone-client-gnome/src/config/assistant.c:381
+#: ../sflphone-client-gnome/src/config/assistant.c:376
+#: ../sflphone-client-gnome/src/config/assistant.c:405
 msgid "Secure communications with _ZRTP"
 msgstr "Sichere Kommunikation mit _ZRTP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "Optional email address"
 msgstr "Fakultative E-mail-Adresse"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "This email address will be used to send your voicemail messages."
 msgstr ""
 "Diese E-mail-Adresse wird benutzt, um Ihnen voicemail Meldungen zu schicken."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:373
+#: ../sflphone-client-gnome/src/config/assistant.c:397
 msgid "_Email address"
 msgstr "_Email"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "IAX2 account settings"
 msgstr "Konfiguration des IAX2 Konto"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "Network Address Translation (NAT)"
 msgstr "Network Address Translation (NAT)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "You should probably enable this if you are behind a firewall."
-msgstr ""
-"Sie sollten dieses einschalten, falls Sie hinter einer Firewall sind."
+msgstr "Sie sollten dieses einschalten, falls Sie hinter einer Firewall sind."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:476
+#: ../sflphone-client-gnome/src/config/assistant.c:505
 msgid "E_nable STUN"
 msgstr "STUN Ei_nschalten"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:483
+#: ../sflphone-client-gnome/src/config/assistant.c:512
 msgid "_STUN server"
 msgstr "_STUN Server"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Account Registration"
 msgstr "Konto Registrierung"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Congratulations!"
 msgstr "Gratulation!"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:583
+#: ../sflphone-client-gnome/src/config/audioconf.c:582
 msgid "Frequency"
 msgstr "Frequenz"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:588
+#: ../sflphone-client-gnome/src/config/audioconf.c:587
 msgid "Bitrate"
 msgstr "Bitrate"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:593
+#: ../sflphone-client-gnome/src/config/audioconf.c:592
 msgid "Bandwidth"
 msgstr "Bandbreite"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:673
+#: ../sflphone-client-gnome/src/config/audioconf.c:670
 msgid "ALSA plugin"
 msgstr "ALSA Plugin"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:695
+#: ../sflphone-client-gnome/src/config/audioconf.c:692
 msgid "Output"
 msgstr "Ausgabe"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:717
+#: ../sflphone-client-gnome/src/config/audioconf.c:714
 msgid "Input"
 msgstr "Eingabe"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:752
+#: ../sflphone-client-gnome/src/config/audioconf.c:749
 msgid "_Voice Activity Detection"
 msgstr "\"Voice Activity\" Erkennung"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:762
+#: ../sflphone-client-gnome/src/config/audioconf.c:759
 msgid "_Noise Reduction (Narrow-Band Companding)"
 msgstr "_Geräuschreduzierung (Narrow-Band Companding)"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:798
+#: ../sflphone-client-gnome/src/config/audioconf.c:800
 msgid "Sound Manager"
 msgstr "Sound Manager"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:807
+#: ../sflphone-client-gnome/src/config/audioconf.c:809
 msgid "_Pulseaudio"
 msgstr "Pulseaudio"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:811
+#: ../sflphone-client-gnome/src/config/audioconf.c:813
 msgid "_ALSA"
 msgstr "ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:816
-msgid "_Mute other applications during a call"
-msgstr "_Während eines Anrufs andere Anwendungen stumm schalten"
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:823
+#: ../sflphone-client-gnome/src/config/audioconf.c:819
 msgid "ALSA settings"
 msgstr "ALSA Konfiguration"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:840
+#: ../sflphone-client-gnome/src/config/audioconf.c:836
 msgid "Codecs"
 msgstr "Codecs"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:869
+#: ../sflphone-client-gnome/src/config/audioconf.c:865
 msgid "Recordings"
 msgstr "Aufnahmen"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:873
+#: ../sflphone-client-gnome/src/config/audioconf.c:869
 msgid "Destination folder"
 msgstr "Zielverzeichnis"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:877
+#: ../sflphone-client-gnome/src/config/audioconf.c:873
 msgid "Select a folder"
 msgstr "Verzeichnis auswählen"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:883
+#: ../sflphone-client-gnome/src/config/audioconf.c:879
 msgid "Ringtones"
 msgstr "Klingeltöne"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:889
+#: ../sflphone-client-gnome/src/config/audioconf.c:885
 msgid "_Enable ringtones"
 msgstr "Klingeltöne _einschalten"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:895
+#: ../sflphone-client-gnome/src/config/audioconf.c:891
 msgid "Choose a ringtone"
 msgstr "Klingelton auswählen"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:901
+#: ../sflphone-client-gnome/src/config/audioconf.c:897
 msgid "Audio Files"
 msgstr "Audio Dateien"
 
@@ -819,86 +987,66 @@ msgstr "Telefonnummer umformen"
 msgid "_Prefix dialed numbers with"
 msgstr "_Präfix vor Nummern einfügen"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:195
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:225
 msgid ""
 "This profile is used when you want to reach a remote peer simply by typing a "
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
 "also be used if no account can be matched to an incoming or outgoing call."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:274
-msgid "SIP Port"
-msgstr "SIP Port"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:281
-msgid "UDP Transport"
-msgstr "UDP Transport"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:319
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:440
 msgid "Desktop Notifications"
 msgstr "Desktopbenachrichtigungen"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:323
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:444
 msgid "_Enable notifications"
 msgstr "Benachrichtigungen _einschalten"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:329
-msgid "Enable voicemail _notifications"
-msgstr "_Benachrichtigung für Voice Nachrichten"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:341
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:450
 msgid "System Tray Icon"
 msgstr "Benachrichtigungsfeld (\"System Tray\") Icon"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
 msgid "_Popup main window on incoming call"
 msgstr "Hauptfenster anzeigen wenn eingehendes Gespräch"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:349
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:457
 msgid "Ne_ver popup main window"
 msgstr "_Hauptfenster nie anzeigen"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:353
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
 msgid "Hide SFLphone window on _startup"
 msgstr "_Unsichtbar beim Start"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:359
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:469
 msgid "Calls History"
 msgstr "Liste der vorherigen Anrufen"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:362
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:472
 msgid "_Keep my history for at least"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:373
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:483
 msgid "days"
 msgstr "Tage"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
-msgid "Configuration File"
-msgstr "Einrichtungsdatei"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
-msgid "Store SIP credentials as MD5 hash"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:423
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:536
 msgid "Preferences"
 msgstr "Einstellungen"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:448
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:561
 msgid "Audio"
 msgstr "Audio"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:566
 msgid "Address Book"
 msgstr "Adressbuch"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:458
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:571
 msgid "Hooks"
 msgstr "Hooks"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:468
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:581
 msgid "Direct IP calls"
 msgstr ""
 
@@ -906,11 +1054,11 @@ msgstr ""
 msgid "Advanced options for TLS"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:56
 msgid "TLS transport"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:60
 msgid ""
 "TLS transport can be used along with UDP for those calls that would\n"
 "require secure sip transactions (aka SIPS). You can configure a different\n"
@@ -919,55 +1067,55 @@ msgid ""
 "port, different one from each other\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:103
 msgid "Certificate of Authority list"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:107
 msgid "Choose a CA list file (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:115
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:131
 msgid "Public endpoint certificate file"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:119
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:135
 msgid "Choose a public endpoint certificate (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:134
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:159
 msgid "Choose a private key file (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:145
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:181
 msgid "Password for the private key"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:168
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:204
 msgid "TLS protocol method"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:202
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:238
 msgid "TLS cipher list"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:211
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:247
 msgid "Server name instance for outgoing TLS connection"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:219
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:255
 msgid "Negotiation timeout (sec:msec)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:236
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:272
 msgid "Verify incoming certificates, as a server"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:242
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:278
 msgid "Verify certificates from answer, as a client"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:248
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:284
 msgid "Require certificate for incoming tls connections"
 msgstr ""
 
@@ -975,45 +1123,78 @@ msgstr ""
 msgid "ZRTP Options"
 msgstr "ZRTP Optionen"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:68
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:69
 msgid "Send Hello Hash in S_DP"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:74
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:75
 msgid "Ask User to Confirm SAS"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:80
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:81
 msgid "_Warn if ZRTP not supported"
 msgstr "_Warnung wenn ZRTP nicht unterstüzt"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:86
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:87
 msgid "Display SAS once for hold events"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:56
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:58
 msgid "Search all"
 msgstr "Suche alle"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:57
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:70
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:82
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:94
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:59
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:72
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:84
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:96
 msgid "Click here to change the search type"
 msgstr "Klicken Sie hier, um Suchtyp zu wechseln"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:69
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:71
 msgid "Search by missed call"
 msgstr "Suche nach Anruf in Abwesenheit"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:81
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:83
 msgid "Search by incoming call"
 msgstr "Suche nach eingehenden Anruf"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:93
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:95
 msgid "Search by outgoing call"
 msgstr "Suche nach ausgehenden Anru"
 
+#~ msgid "IP call - %s"
+#~ msgstr "IP Anruf - %s"
+
+#~ msgid "Codec"
+#~ msgstr "Codec"
+
+#~ msgid "Network"
+#~ msgstr "Netzwerk"
+
+#~ msgid "Manually"
+#~ msgstr "Manuell"
+
+#~ msgid "There "
+#~ msgstr "Es "
+
+#~ msgid "is "
+#~ msgstr "gibt "
+
+#~ msgid "are "
+#~ msgstr "gibt "
+
+#~ msgid "_Mute other applications during a call"
+#~ msgstr "_Während eines Anrufs andere Anwendungen stumm schalten"
+
+#~ msgid "SIP Port"
+#~ msgstr "SIP Port"
+
+#~ msgid "UDP Transport"
+#~ msgstr "UDP Transport"
+
+#~ msgid "Enable voicemail _notifications"
+#~ msgstr "_Benachrichtigung für Voice Nachrichten"
+
 #~ msgctxt "account state"
 #~ msgid "Error"
 #~ msgstr "Fehler"
@@ -1050,9 +1231,6 @@ msgstr "Suche nach ausgehenden Anru"
 #~ msgid "Default account"
 #~ msgstr "Default Konto"
 
-#~ msgid "Transfer to : "
-#~ msgstr "Weiterleiten zu : "
-
 #~ msgid "SFLphone KDE Client"
 #~ msgstr "SFLphone KDE Client"
 
@@ -1077,12 +1255,6 @@ msgstr "Suche nach ausgehenden Anru"
 #~ msgid "Main screen"
 #~ msgstr "Hauptbildschirm"
 
-#~ msgid "Call history"
-#~ msgstr "Liste der vorherigen Anrufen"
-
-#~ msgid "Address book"
-#~ msgstr "Adressbuch"
-
 #~ msgid "Edit before call"
 #~ msgstr "Vor Aufruf bearbeiten"
 
@@ -1095,9 +1267,6 @@ msgstr "Suche nach ausgehenden Anru"
 #~ msgid "Hold on"
 #~ msgstr "In Warteschleife"
 
-#~ msgid "Transfer"
-#~ msgstr "Weiterleiten"
-
 #~ msgid "Record"
 #~ msgstr "Gespräch aufzeichnen"
 
@@ -1116,22 +1285,19 @@ msgstr "Suche nach ausgehenden Anru"
 #~ 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."
+#~ "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 verwendet das erste \"registrierte\" Konto in der Liste, wenn Sie "
-#~ "anrufen. Benutzen Sie die Pfeile, um die Anordnung der Kontos zu ändern. Mit "
-#~ "\"Plus\" und \"Minus\" können Sie ein Konto anlegen bzgl. entfernen. Mit "
-#~ "\"Editieren\" können Sie ein Konto bearbeiten."
-
-#~ msgid "Remove the selected account"
-#~ msgstr "Entfernen Sie das ausgewählte Konto"
+#~ "Sflphone verwendet das erste \"registrierte\" Konto in der Liste, wenn "
+#~ "Sie anrufen. Benutzen Sie die Pfeile, um die Anordnung der Kontos zu "
+#~ "ändern. Mit \"Plus\" und \"Minus\" können Sie ein Konto anlegen bzgl. "
+#~ "entfernen. Mit \"Editieren\" können Sie ein Konto bearbeiten."
 
 #~ 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."
+#~ "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 ""
 #~ "Diese Aktion entfernt das ausgewählte Konto aus der Liste. Stellen Sie "
 #~ "sicher, dass Sie es wirklich nicht mehr brauchen."
@@ -1153,8 +1319,9 @@ msgstr "Suche nach ausgehenden Anru"
 #~ "this list which is \"registered\". Change the order of the accounts using "
 #~ "the \"Up\" and \"Down\" arrows."
 #~ msgstr ""
-#~ "Sflphone verwendet das erste \"registrierte\" Konto in der Liste, wenn Sie "
-#~ "anrufen. Benutzen Sie die Pfeile, um die Anordnung der Kontos zu ändern."
+#~ "Sflphone verwendet das erste \"registrierte\" Konto in der Liste, wenn "
+#~ "Sie anrufen. Benutzen Sie die Pfeile, um die Anordnung der Kontos zu "
+#~ "ändern."
 
 #~ msgid "Down"
 #~ msgstr "Unten"
@@ -1240,9 +1407,6 @@ msgstr "Suche nach ausgehenden Anru"
 #~ msgid "On start"
 #~ msgstr "Beim Start"
 
-#~ msgid "Clear history"
-#~ msgstr "Vorherigen Anrufen leeren"
-
 #~ msgid "Connection"
 #~ msgstr "Anbindung"
 
@@ -1258,15 +1422,9 @@ msgstr "Suche nach ausgehenden Anru"
 #~ msgid "Prefix dialed numbers with"
 #~ msgstr "Präfix vor Nummern einfügen"
 
-#~ msgid "History"
-#~ msgstr "Vorherige Anrufe"
-
 #~ msgid "Configure SFLphone"
 #~ msgstr "Konfigurieren SFLphone"
 
-#~ msgid "Display volume controls"
-#~ msgstr "Lautstärke-Regler anzeigen"
-
 #~ msgid "Display dialpad"
 #~ msgstr "Wählscheibe anzeigen"
 
@@ -1277,27 +1435,6 @@ msgstr "Suche nach ausgehenden Anru"
 #~ msgid "Attention:number of results exceeds max displayed."
 #~ msgstr "Warnung: Anzahl Resultate überschreit definiertes Maximum"
 
-#~ msgid "_Help"
-#~ msgstr "_Hilfe"
-
-#~ msgid "_Call"
-#~ msgstr "_Anruf"
-
-#~ msgid "Clear _history"
-#~ msgstr "Liste der vorherigen Anrufen _leeren"
-
-#~ msgid "_Accounts"
-#~ msgstr "_Konten"
-
-#~ msgid "_Edit"
-#~ msgstr "_Editieren"
-
-#~ msgid "_Dialpad"
-#~ msgstr "_Wählscheibe"
-
-#~ msgid "_View"
-#~ msgstr "_Anzeigen"
-
 #~ msgid "%s - %s"
 #~ msgstr "%s - %s"
 
@@ -1313,12 +1450,11 @@ msgstr "Suche nach ausgehenden Anru"
 #~ msgctxt "NAME OF TRANSLATORS"
 #~ msgid "Your names"
 #~ msgstr ""
-#~ "Ihre Namen, ,Launchpad Contributions:,Maxime Chambreuil,Sven Werlen, "
-#~ ",Launchpad Contributions:,Maxime Chambreuil,Sven Werlen,Sven Werlen"
+#~ "Ihre Namen, ,Launchpad Contributions:,Maxime Chambreuil,Sven Werlen, ,"
+#~ "Launchpad Contributions:,Maxime Chambreuil,Sven Werlen,Sven Werlen"
 
 #~ msgctxt "EMAIL OF TRANSLATORS"
 #~ msgid "Your emails"
 #~ msgstr ""
-#~ "Ihre E-Mail-"
-#~ "Adressen,,,maxime.chambreuil@gmail.com,,,,maxime.chambreuil@gmail.com,,sven.w"
-#~ "erlen@gmail.com"
+#~ "Ihre E-Mail-Adressen,,,maxime.chambreuil@gmail.com,,,,maxime."
+#~ "chambreuil@gmail.com,,sven.werlen@gmail.com"
diff --git a/lang/es/es.po b/lang/es/es.po
index e05252337d..a40c09ce90 100644
--- a/lang/es/es.po
+++ b/lang/es/es.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: SFLphone 0.9.4\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-14 11:18-0400\n"
+"POT-Creation-Date: 2009-12-03 10:22-0500\n"
 "PO-Revision-Date: 2009-10-26 20:46+0000\n"
 "Last-Translator: Maxime Chambreuil <maxime.chambreuil@gmail.com>\n"
 "Language-Team: SavoirFaireLinux Inc <sflphoneteam@savoirfairelinux.com>\n"
@@ -62,25 +62,15 @@ msgstr "Servidor stun inválido"
 msgid "Invalid"
 msgstr "Inválido"
 
-#: ../sflphone-client-gnome/src/actions.c:54
-#: ../sflphone-client-gnome/src/sflnotify.c:94
-#, c-format
-msgid "%d voice mail"
-msgid_plural "%d voice mails"
-msgstr[0] "%d mensaje de voz"
-msgstr[1] "%d mensajes de voz"
-
-#: ../sflphone-client-gnome/src/actions.c:83
-#: ../sflphone-client-gnome/src/actions.c:919
-#: ../sflphone-client-gnome/src/actions.c:926
+#: ../sflphone-client-gnome/src/actions.c:98
 msgid "Using account"
 msgstr "Usando la cuenta"
 
-#: ../sflphone-client-gnome/src/actions.c:89
+#: ../sflphone-client-gnome/src/actions.c:104
 msgid "No registered accounts"
 msgstr "Ninguna cuenta registrada"
 
-#: ../sflphone-client-gnome/src/actions.c:268
+#: ../sflphone-client-gnome/src/actions.c:285
 msgid ""
 "Unable to connect to the SFLphone server.\n"
 "Make sure the daemon is running."
@@ -88,22 +78,18 @@ msgstr ""
 "Incapaz de conectar con el servidor SFLphone.\n"
 " Asegúrese que el demonio esté funcionando."
 
-#: ../sflphone-client-gnome/src/actions.c:913
-#, c-format
-msgid "IP call - %s"
-msgstr "Llamada IP - %s"
-
-#: ../sflphone-client-gnome/src/actions.c:922
-msgid "Codec"
-msgstr "Códec"
+#: ../sflphone-client-gnome/src/actions.c:589
+#: ../sflphone-client-gnome/src/actions.c:911
+msgid "Direct SIP call"
+msgstr "Llamadas IP directas"
 
-#: ../sflphone-client-gnome/src/actions.c:1119
+#: ../sflphone-client-gnome/src/actions.c:1103
 #, c-format
 msgid ""
 "<b>Error: No audio codecs found.\n"
 "\n"
-"</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
-"<b>.sflphone</b> directory in your home( <i>%s</i> )"
+"</b> SFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</"
+"b> directory in your home( <i>%s</i> )"
 msgstr ""
 "<b>Error: Codecs de audio no encontrados.\n"
 "\n"
@@ -152,31 +138,31 @@ msgstr "Hay llamadas en curso."
 msgid "Do you still want to quit?"
 msgstr "Aún quiere salir ?"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:299
+#: ../sflphone-client-gnome/src/mainwindow.c:298
 msgid "SFLphone Error"
 msgstr "Error SFLphone"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:391
+#: ../sflphone-client-gnome/src/mainwindow.c:392
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
 msgstr "ZRTP no es compatible con %s\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:392
+#: ../sflphone-client-gnome/src/mainwindow.c:393
 msgid "Secure Communication Unavailable"
 msgstr "Comunicación segura no disponible"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:393
-#: ../sflphone-client-gnome/src/mainwindow.c:415
+#: ../sflphone-client-gnome/src/mainwindow.c:394
+#: ../sflphone-client-gnome/src/mainwindow.c:416
 msgid "Continue"
 msgstr "Seguir"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:394
-#: ../sflphone-client-gnome/src/mainwindow.c:416
-#: ../sflphone-client-gnome/src/mainwindow.c:430
+#: ../sflphone-client-gnome/src/mainwindow.c:395
+#: ../sflphone-client-gnome/src/mainwindow.c:417
+#: ../sflphone-client-gnome/src/mainwindow.c:431
 msgid "Stop Call"
 msgstr "Terminar llamada"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:413
+#: ../sflphone-client-gnome/src/mainwindow.c:414
 #, c-format
 msgid ""
 "A %s error forced the call with %s to fall under unencrypted mode.\n"
@@ -185,11 +171,11 @@ msgstr ""
 "Un error de %s obliga la llamada con %s a caer bajo un modo decifrado.\n"
 "Razón exacta: %s\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:414
+#: ../sflphone-client-gnome/src/mainwindow.c:415
 msgid "ZRTP negotiation failed"
 msgstr "Negociación ZRTP fracasada"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:427
+#: ../sflphone-client-gnome/src/mainwindow.c:428
 #, c-format
 msgid ""
 "%s wants to stop using secure communication. Confirm will resume "
@@ -198,11 +184,11 @@ msgstr ""
 "%s quiere parar la comunicación segura. Confirmar reanudará la conversación "
 "sin SRTP.\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:428
+#: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm Go Clear"
 msgstr "Confirmar"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:429
+#: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Confirm"
 msgstr "Confirmar"
 
@@ -217,6 +203,13 @@ msgstr "%s cuenta : %s"
 msgid "<i>From</i> %s"
 msgstr "<i>De</i> %s"
 
+#: ../sflphone-client-gnome/src/sflnotify.c:94
+#, c-format
+msgid "%d voice mail"
+msgid_plural "%d voice mails"
+msgstr[0] "%d mensaje de voz"
+msgstr[1] "%d mensajes de voz"
+
 #: ../sflphone-client-gnome/src/sflnotify.c:111
 #, c-format
 msgid "Calling with %s account <i>%s</i>"
@@ -266,15 +259,15 @@ msgstr "Volumen de altavoces"
 msgid "Mic volume"
 msgstr "Volumen del micrófono"
 
-#: ../sflphone-client-gnome/src/statusicon.c:91
+#: ../sflphone-client-gnome/src/statusicon.c:96
 msgid "_Show main window"
 msgstr "Mostrar ventana principal"
 
-#: ../sflphone-client-gnome/src/statusicon.c:126
+#: ../sflphone-client-gnome/src/statusicon.c:131
 msgid "SFLphone"
 msgstr "SFLphone"
 
-#: ../sflphone-client-gnome/src/statusicon.c:127
+#: ../sflphone-client-gnome/src/statusicon.c:132
 #, c-format
 msgid "%i account configured"
 msgid_plural "%i accounts configured"
@@ -282,203 +275,397 @@ msgstr[0] "%i cuenta configurada"
 msgstr[1] "%i cuentas configuradas"
 
 #: ../sflphone-client-gnome/src/toolbar.c:38
-#: ../sflphone-client-gnome/src/uimanager.c:750
+#: ../sflphone-client-gnome/src/uimanager.c:693
+#: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Voicemail"
 msgstr "Mensaje de voz"
 
-#: ../sflphone-client-gnome/src/uimanager.c:403
+#: ../sflphone-client-gnome/src/uimanager.c:117
+msgid "No address book selected"
+msgstr "Libreta de contactos"
+
+#: ../sflphone-client-gnome/src/uimanager.c:137
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "Address book"
+msgstr "Libreta de contactos"
+
+#: ../sflphone-client-gnome/src/uimanager.c:279
+msgid "Voicemail (%i)"
+msgstr "Mensaje de voz (%i)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:342
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
-msgstr ""
-"SFLphone es un teléfono VoIP compatible con los protocolos SIP y IAX2"
+msgstr "SFLphone es un teléfono VoIP compatible con los protocolos SIP y IAX2"
 
-#: ../sflphone-client-gnome/src/uimanager.c:406
+#: ../sflphone-client-gnome/src/uimanager.c:345
 msgid "About SFLphone"
 msgstr "Sobre SFLphone"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1028
+#: ../sflphone-client-gnome/src/uimanager.c:719
+msgid "Call"
+msgstr "_Llamar"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+#: ../sflphone-client-gnome/src/uimanager.c:1184
+msgid "_New call"
+msgstr "_Nueva llamada"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+msgid "Place a new call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:721
+#: ../sflphone-client-gnome/src/uimanager.c:979
 msgid "_Pick up"
 msgstr "_Descolgar"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1040
-#: ../sflphone-client-gnome/src/uimanager.c:1081
+#: ../sflphone-client-gnome/src/uimanager.c:721
+msgid "Answer the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:722
+#: ../sflphone-client-gnome/src/uimanager.c:991
+#: ../sflphone-client-gnome/src/uimanager.c:1032
 msgid "_Hang up"
 msgstr "_Colgar"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1052
-#: ../sflphone-client-gnome/src/uimanager.c:1093
-msgid "On _Hold"
+#: ../sflphone-client-gnome/src/uimanager.c:722
+msgid "Finish the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "O_n hold"
 msgstr "En _Espera"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1064
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "Place the call on hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "O_ff hold"
+msgstr "Seguir"
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "Place the call off hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:725
+#: ../sflphone-client-gnome/src/uimanager.c:1015
 msgid "_Record"
 msgstr "G_rabar"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1154
+#: ../sflphone-client-gnome/src/uimanager.c:725
+msgid "Record the current conversation"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Configuration _Assistant"
+msgstr "Archivo de configuración"
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Run the configuration assistant"
+msgstr "Error de configuración Stun"
+
+#: ../sflphone-client-gnome/src/uimanager.c:727
+msgid "Call your voicemail"
+msgstr "%d mensaje de voz"
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "_Close"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "Minimize to system tray"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "_Quit"
+msgstr "_Editar"
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "Quit the program"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:732
+msgid "_Edit"
+msgstr "_Editar"
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "_Copy"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "Copy the selection"
+msgstr "Eliminar la cuenta seleccionada"
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "_Paste"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "Paste the clipboard"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear _history"
+msgstr "_Limpiar historial"
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear the call history"
+msgstr "Limpiar historial"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "_Accounts"
+msgstr "_Cuentas"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "Edit your accounts"
+msgstr "Cuenta actual"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "_Preferences"
+msgstr "Preferencias"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "Change your preferences"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:740
+msgid "_View"
+msgstr "_Ver"
+
+#: ../sflphone-client-gnome/src/uimanager.c:743
+msgid "_Help"
+msgstr "_Ayuda"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Contents"
+msgstr "Seguir"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Open the manual"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:745
+msgid "About this application"
+msgstr "Autentificación"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "_Transfer"
+msgstr "Transferir"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "Transfer the call"
+msgstr "Transferir a : "
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "_Show toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "Show the toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "_Dialpad"
+msgstr "Desactivado"
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "Show the dialpad"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "_Volume controls"
+msgstr "_Controles de volumen"
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "Show the volume controls"
+msgstr "_Controles de volumen"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "_History"
+msgstr "Historia de Llamada"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "Calls history"
+msgstr "Historia de Llamada"
+
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "_Address book"
+msgstr "Libreta de contactos"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1003
+#: ../sflphone-client-gnome/src/uimanager.c:1044
+msgid "On _Hold"
+msgstr "En _Espera"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1107
 msgid "_Call back"
 msgstr "_Llamar"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1226
-msgid "_New call"
-msgstr "_Nueva llamada"
-
-#: ../sflphone-client-gnome/src/uimanager.c:1300
+#: ../sflphone-client-gnome/src/uimanager.c:1258
 msgid "Edit phone number"
 msgstr "Editar número de teléfono"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1311
+#: ../sflphone-client-gnome/src/uimanager.c:1269
 msgid "Edit the phone number before making a call"
 msgstr "Editar el número de teléfono antes de llamar"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:164
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:180
 msgid "Account Parameters"
 msgstr "Parámetros de cuenta"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:173
-#: ../sflphone-client-gnome/src/config/assistant.c:294
-#: ../sflphone-client-gnome/src/config/assistant.c:402
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/assistant.c:314
+#: ../sflphone-client-gnome/src/config/assistant.c:427
 msgid "_Alias"
 msgstr "_Alias"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:181
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:197
 msgid "_Protocol"
 msgstr "_Protocolo"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:199
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:215
 msgid "Unknown"
 msgstr "Desconocido"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:209
-#: ../sflphone-client-gnome/src/config/assistant.c:302
-#: ../sflphone-client-gnome/src/config/assistant.c:410
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
+#: ../sflphone-client-gnome/src/config/assistant.c:322
+#: ../sflphone-client-gnome/src/config/assistant.c:435
 msgid "_Host name"
 msgstr "_Nombre de equipo"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:217
-#: ../sflphone-client-gnome/src/config/assistant.c:310
-#: ../sflphone-client-gnome/src/config/assistant.c:418
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:233
+#: ../sflphone-client-gnome/src/config/assistant.c:330
+#: ../sflphone-client-gnome/src/config/assistant.c:443
 msgid "_User name"
 msgstr "_Usuario"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:234
-#: ../sflphone-client-gnome/src/config/assistant.c:326
-#: ../sflphone-client-gnome/src/config/assistant.c:433
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:346
+#: ../sflphone-client-gnome/src/config/assistant.c:458
 msgid "_Password"
 msgstr "_Contraseña"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:254
-#: ../sflphone-client-gnome/src/config/assistant.c:344
-#: ../sflphone-client-gnome/src/config/assistant.c:449
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:270
+#: ../sflphone-client-gnome/src/config/assistant.c:363
+#: ../sflphone-client-gnome/src/config/assistant.c:473
+msgid "Show password"
+msgstr "Contraseña"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:274
+#: ../sflphone-client-gnome/src/config/assistant.c:368
+#: ../sflphone-client-gnome/src/config/assistant.c:478
 msgid "_Voicemail number"
 msgstr "_Número de buzón de voz"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:340
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:361
 msgid "Authentication"
 msgstr "Autentificación"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:362
 msgid "Secret"
 msgstr "Secreto"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:605
 msgid "Credential"
 msgstr "Informaciónes"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:501
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:640
 msgid "Authentication name"
 msgstr "Nombre de autentificación"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:512
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:651
 msgid "Password"
 msgstr "Contraseña"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:535
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:909
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:201
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1056
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:321
 msgid "Security"
 msgstr "Seguridad"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:547
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:213
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:333
 msgid "Use TLS transport (sips)"
 msgstr "Usa transporte TLS (sips)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:552
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:218
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:338
 msgid "SRTP key exchange"
 msgstr "Intercambió de clave SRTP"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:699
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
 msgid "Disabled"
 msgstr "Desactivado"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:795
 msgid "Registration"
 msgstr "Registración"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:800
 msgid "Registration expire"
 msgstr "Registracíon expira"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:809
 msgid "_Comply with RFC 3263"
 msgstr "_Cumplir con RFC 3263"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
-msgid "Network"
-msgstr "Red"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:816
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:234
+msgid "Network Interface"
+msgstr "Red Inaccesible"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:830
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:249
 msgid "Local address"
 msgstr "Dirección local"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:301
 msgid "Local port"
 msgstr "Puerto local"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:752
-msgid "Set published address and port:"
-msgstr "Publicar dirección y puerto:"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:893
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:928
+msgid "Published address"
+msgstr "Dirección publicada"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:756
-msgid "Using STUN "
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+msgid "Using STUN"
 msgstr "Usando STUN "
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:761
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:906
+msgid "STUN server URL"
+msgstr "URL del servidor STUN"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:914
 msgid "Same as local parameters"
 msgstr "Igual que parámetros locales"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:764
-msgid "Manually"
-msgstr "Manualmente"
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:769
-msgid "Published address"
-msgstr "Dirección publicada"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:917
+msgid "Set published address and port:"
+msgstr "Publicar dirección y puerto:"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:777
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:936
 msgid "Published port"
 msgstr "Puerto publicado"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:785
-msgid "STUN server URL"
-msgstr "URL del servidor STUN"
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1027
 msgid "Account settings"
 msgstr "Configuración de cuentas"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1046
 msgid "Basic"
 msgstr "Básico"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:904
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1051
 msgid "Advanced"
 msgstr "Avanzado"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:169
-msgid "Server returned \""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:164
+msgid "Server returned \"%s\" (%d)"
 msgstr "Servidor contesta \""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
@@ -497,32 +684,18 @@ msgstr "Cuentas"
 msgid "Configured Accounts"
 msgstr "Cuentas Configuradas"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
-msgid "There "
-msgstr "Alla "
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "is "
-msgstr "es "
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "are "
-msgstr "son "
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
-msgid " active account"
-msgstr " cuenta activada"
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:501
+msgid "There is %d active account"
+msgid_plural "There are %d active accounts"
+msgstr[0] " cuenta activada"
+msgstr[1] " cuenta activada"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
-msgid "s"
-msgstr "s"
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:507
 msgid "You have no active account"
 msgstr "No tienes ninguna cuenta activada"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:556
 msgid "General"
 msgstr "General"
 
@@ -544,8 +717,7 @@ msgstr "_Mostrar fotos de contactos, si están disponibles"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:341
 msgid "Fields from Evolution's address books"
-msgstr ""
-"Usar los siguientes campos de la libreta de direcciones de Evolution:"
+msgstr "Usar los siguientes campos de la libreta de direcciones de Evolution:"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:345
 msgid "_Work"
@@ -568,16 +740,16 @@ msgid "Select which Evolution address books to use"
 msgstr "Seleccione la libreta de contactos de Evolution a usar"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:404
-#: ../sflphone-client-gnome/src/config/audioconf.c:578
+#: ../sflphone-client-gnome/src/config/audioconf.c:577
 msgid "Name"
 msgstr "Nombre"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:69
+#: ../sflphone-client-gnome/src/config/assistant.c:75
 #, c-format
 msgid "This assistant is now finished."
 msgstr "El asistente ha finalizado"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:71
+#: ../sflphone-client-gnome/src/config/assistant.c:77
 msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
@@ -585,211 +757,205 @@ msgstr ""
 "Puede comprobar en cualquier momento su estado de registro o modificar la "
 "configuración de sus cuentas en la ventana de Opciones/Cuentas."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:74
+#: ../sflphone-client-gnome/src/config/assistant.c:80
 msgid "Alias"
 msgstr "Alias"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:78
+#: ../sflphone-client-gnome/src/config/assistant.c:84
 msgid "Server"
 msgstr "Servidor"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:82
+#: ../sflphone-client-gnome/src/config/assistant.c:88
 msgid "Username"
 msgstr "Usuario"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:86
+#: ../sflphone-client-gnome/src/config/assistant.c:92
 msgid "Security: "
 msgstr "Seguridad: "
 
-#: ../sflphone-client-gnome/src/config/assistant.c:88
+#: ../sflphone-client-gnome/src/config/assistant.c:94
 msgid "SRTP/ZRTP draft-zimmermann"
 msgstr "SRTP/ZRTP draft-zimmermann"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:90
-#: ../sflphone-client-gnome/src/config/assistant.c:182
+#: ../sflphone-client-gnome/src/config/assistant.c:96
 msgid "None"
 msgstr "Ninguno"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:210
+#: ../sflphone-client-gnome/src/config/assistant.c:229
 msgid "SFLphone account creation wizard"
 msgstr "Asistente de creación de cuentas"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:236
+#: ../sflphone-client-gnome/src/config/assistant.c:255
 msgid "Welcome to the Account creation wizard of SFLphone!"
 msgstr "¡Bienvenido al asistente de configuración de cuentas de SFLphone"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:237
+#: ../sflphone-client-gnome/src/config/assistant.c:256
 msgid "This installation wizard will help you configure an account."
 msgstr "Este asistente de instalación le ayudará a configurar una cuenta."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "VoIP Protocols"
 msgstr "Protocolos VoIP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "Select an account type"
 msgstr "Escoja un tipo de cuenta"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:253
+#: ../sflphone-client-gnome/src/config/assistant.c:272
 msgid "SIP (Session Initiation Protocol)"
 msgstr "SIP (Session Initiation Protocol)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:255
+#: ../sflphone-client-gnome/src/config/assistant.c:274
 msgid "IAX2 (InterAsterix Exchange)"
 msgstr "IAX2 (InterAsterix Exchange)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Account"
 msgstr "Cuenta"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Please select one of the following options"
 msgstr "Por favor, elija una de las siguientes opciones"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:271
+#: ../sflphone-client-gnome/src/config/assistant.c:290
 msgid "Create a free SIP/IAX2 account on sflphone.org"
 msgstr "Crear una cuenta SIP/IAX2 gratis en sflphone.org"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:273
+#: ../sflphone-client-gnome/src/config/assistant.c:292
 msgid "Register an existing SIP or IAX2 account"
 msgstr "Registrar una cuenta SIP o IAX2 existente"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
+#: ../sflphone-client-gnome/src/config/assistant.c:306
 msgid "SIP account settings"
 msgstr "Configuración de cuenta SIP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:306
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "Please fill the following information"
 msgstr "Por favor, ingrese la siguiente información"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:352
-#: ../sflphone-client-gnome/src/config/assistant.c:381
+#: ../sflphone-client-gnome/src/config/assistant.c:376
+#: ../sflphone-client-gnome/src/config/assistant.c:405
 msgid "Secure communications with _ZRTP"
 msgstr "Communicaciòn segura con _ZRTP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "Optional email address"
 msgstr "Dirección de correo opcional"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "This email address will be used to send your voicemail messages."
 msgstr "Esta dirección de correo se usará para mandar sus mensajes de voz"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:373
+#: ../sflphone-client-gnome/src/config/assistant.c:397
 msgid "_Email address"
 msgstr "_Correo"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "IAX2 account settings"
 msgstr "Configuración de cuenta IAX2"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "Network Address Translation (NAT)"
 msgstr "Conversión de Dirección de Red (NAT)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "You should probably enable this if you are behind a firewall."
-msgstr ""
-"Probablemente tiene que activar esto si está detrás de un cortafuegos."
+msgstr "Probablemente tiene que activar esto si está detrás de un cortafuegos."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:476
+#: ../sflphone-client-gnome/src/config/assistant.c:505
 msgid "E_nable STUN"
 msgstr "A_ctivar STUN"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:483
+#: ../sflphone-client-gnome/src/config/assistant.c:512
 msgid "_STUN server"
 msgstr "_Servidor STUN"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Account Registration"
 msgstr "Registro de cuenta"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Congratulations!"
 msgstr "¡Enhorabuena!"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:583
+#: ../sflphone-client-gnome/src/config/audioconf.c:582
 msgid "Frequency"
 msgstr "Frecuencia"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:588
+#: ../sflphone-client-gnome/src/config/audioconf.c:587
 msgid "Bitrate"
 msgstr "Tasa de transferencia"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:593
+#: ../sflphone-client-gnome/src/config/audioconf.c:592
 msgid "Bandwidth"
 msgstr "Ancho de banda"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:673
+#: ../sflphone-client-gnome/src/config/audioconf.c:670
 msgid "ALSA plugin"
 msgstr "Plugin ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:695
+#: ../sflphone-client-gnome/src/config/audioconf.c:692
 msgid "Output"
 msgstr "Salida"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:717
+#: ../sflphone-client-gnome/src/config/audioconf.c:714
 msgid "Input"
 msgstr "Entrada"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:752
+#: ../sflphone-client-gnome/src/config/audioconf.c:749
 msgid "_Voice Activity Detection"
 msgstr "_Detección de actividad de voz"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:762
+#: ../sflphone-client-gnome/src/config/audioconf.c:759
 msgid "_Noise Reduction (Narrow-Band Companding)"
 msgstr "_Reducción de ruido"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:798
+#: ../sflphone-client-gnome/src/config/audioconf.c:800
 msgid "Sound Manager"
 msgstr "Gestor de audio"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:807
+#: ../sflphone-client-gnome/src/config/audioconf.c:809
 msgid "_Pulseaudio"
 msgstr "_Pulseaudio"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:811
+#: ../sflphone-client-gnome/src/config/audioconf.c:813
 msgid "_ALSA"
 msgstr "_ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:816
-msgid "_Mute other applications during a call"
-msgstr "Silenciar otras aplicaciones durante una llamada"
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:823
+#: ../sflphone-client-gnome/src/config/audioconf.c:819
 msgid "ALSA settings"
 msgstr "Configuración de ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:840
+#: ../sflphone-client-gnome/src/config/audioconf.c:836
 msgid "Codecs"
 msgstr "Códecs"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:869
+#: ../sflphone-client-gnome/src/config/audioconf.c:865
 msgid "Recordings"
 msgstr "Grabaciones"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:873
+#: ../sflphone-client-gnome/src/config/audioconf.c:869
 msgid "Destination folder"
 msgstr "Carpeta de destino"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:877
+#: ../sflphone-client-gnome/src/config/audioconf.c:873
 msgid "Select a folder"
 msgstr "Seleccione una carpeta"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:883
+#: ../sflphone-client-gnome/src/config/audioconf.c:879
 msgid "Ringtones"
 msgstr "Tonos de llamada"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:889
+#: ../sflphone-client-gnome/src/config/audioconf.c:885
 msgid "_Enable ringtones"
 msgstr "_Habilitar tonos de llamada"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:895
+#: ../sflphone-client-gnome/src/config/audioconf.c:891
 msgid "Choose a ringtone"
 msgstr "Elija un tono de llmada"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:901
+#: ../sflphone-client-gnome/src/config/audioconf.c:897
 msgid "Audio Files"
 msgstr "Archivos de Audio"
 
@@ -826,7 +992,7 @@ msgstr "Reescritura de número de teléfono"
 msgid "_Prefix dialed numbers with"
 msgstr "_Prefijar los números marcados con"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:195
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:225
 msgid ""
 "This profile is used when you want to reach a remote peer simply by typing a "
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
@@ -837,79 +1003,59 @@ msgstr ""
 "usted define aqui serán también utilizados si ninguná cuenta puede ser "
 "igualada a una llamada entrante o saliente."
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:274
-msgid "SIP Port"
-msgstr "Puerto SIP"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:281
-msgid "UDP Transport"
-msgstr "Transporte UDP"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:319
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:440
 msgid "Desktop Notifications"
 msgstr "Notificación de escritorio"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:323
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:444
 msgid "_Enable notifications"
 msgstr "_Activar notificaciones"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:329
-msgid "Enable voicemail _notifications"
-msgstr "Activar _notificaciones de mensajes de voz"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:341
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:450
 msgid "System Tray Icon"
 msgstr "Icono de bandeja del sistema"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
 msgid "_Popup main window on incoming call"
 msgstr "_Popup ventana principal al recibir llamadas"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:349
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:457
 msgid "Ne_ver popup main window"
 msgstr "_Nunca mostrar ventana principal"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:353
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
 msgid "Hide SFLphone window on _startup"
 msgstr "Esconder SFLphone al principio"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:359
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:469
 msgid "Calls History"
 msgstr "Historia de llamadas"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:362
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:472
 msgid "_Keep my history for at least"
 msgstr "_Guardar mi historia por lo menos"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:373
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:483
 msgid "days"
 msgstr "días"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
-msgid "Configuration File"
-msgstr "Archivo de configuración"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
-msgid "Store SIP credentials as MD5 hash"
-msgstr "Guarda informaciòn SIP como hash MD5"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:423
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:536
 msgid "Preferences"
 msgstr "Preferencias"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:448
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:561
 msgid "Audio"
 msgstr "Sonido"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:566
 msgid "Address Book"
 msgstr "Libreta de Direcciones"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:458
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:571
 msgid "Hooks"
 msgstr "Disparadores"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:468
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:581
 msgid "Direct IP calls"
 msgstr "Llamadas IP directas"
 
@@ -917,11 +1063,11 @@ msgstr "Llamadas IP directas"
 msgid "Advanced options for TLS"
 msgstr "Opciones avanzadas por TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:56
 msgid "TLS transport"
 msgstr "Transporte TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:60
 msgid ""
 "TLS transport can be used along with UDP for those calls that would\n"
 "require secure sip transactions (aka SIPS). You can configure a different\n"
@@ -934,55 +1080,55 @@ msgstr ""
 "diferente transporte TLS para cada cuenta. De cualquier forma, cada uno de "
 "ellos usará un puerto dedicado, diferente el uno del otro.\n"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:103
 msgid "Certificate of Authority list"
 msgstr "Lista de Certificados de Autoridad"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:107
 msgid "Choose a CA list file (optional)"
 msgstr "Escoge un archivo de lista de CA (opcional)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:115
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:131
 msgid "Public endpoint certificate file"
 msgstr "Archivo del certificado del par público"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:119
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:135
 msgid "Choose a public endpoint certificate (optional)"
 msgstr "Escoge un certificado de par público (opcional)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:134
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:159
 msgid "Choose a private key file (optional)"
 msgstr "Escoge un archivo de clave privada"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:145
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:181
 msgid "Password for the private key"
 msgstr "Contraseña de clave privada"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:168
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:204
 msgid "TLS protocol method"
 msgstr "Método de protocolo TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:202
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:238
 msgid "TLS cipher list"
 msgstr "Lista de cifrado TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:211
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:247
 msgid "Server name instance for outgoing TLS connection"
 msgstr "Nombre del servidor para conección TLS saliente"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:219
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:255
 msgid "Negotiation timeout (sec:msec)"
 msgstr "Negociación expirada"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:236
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:272
 msgid "Verify incoming certificates, as a server"
 msgstr "Checar certificados entrantes, como un servidor"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:242
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:278
 msgid "Verify certificates from answer, as a client"
 msgstr "Checar certificados de la respuesta, como cliente"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:248
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:284
 msgid "Require certificate for incoming tls connections"
 msgstr "Requiere certificado para conecciones TLS entrantes"
 
@@ -990,45 +1136,84 @@ msgstr "Requiere certificado para conecciones TLS entrantes"
 msgid "ZRTP Options"
 msgstr "Opciones ZRTP"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:68
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:69
 msgid "Send Hello Hash in S_DP"
 msgstr "Enviar Hello Hash en S_DP"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:74
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:75
 msgid "Ask User to Confirm SAS"
 msgstr "Preguntar al usuario de confirmar SAS"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:80
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:81
 msgid "_Warn if ZRTP not supported"
 msgstr "_Prevenir si ZRTP no es compatible"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:86
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:87
 msgid "Display SAS once for hold events"
 msgstr "Presentar SAS una vez para eventos en espera"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:56
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:58
 msgid "Search all"
 msgstr "Buscar todos"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:57
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:70
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:82
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:94
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:59
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:72
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:84
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:96
 msgid "Click here to change the search type"
 msgstr "Haz clic aqui para cambiar el type de busqueda"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:69
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:71
 msgid "Search by missed call"
 msgstr "Buscar en llamadas pérdidas"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:81
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:83
 msgid "Search by incoming call"
 msgstr "Buscar en llamadas entrantes"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:93
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:95
 msgid "Search by outgoing call"
 msgstr "Buscar en llamadas salientes"
 
+#~ msgid "IP call - %s"
+#~ msgstr "Llamada IP - %s"
+
+#~ msgid "Codec"
+#~ msgstr "Códec"
+
+#~ msgid "Network"
+#~ msgstr "Red"
+
+#~ msgid "Manually"
+#~ msgstr "Manualmente"
+
+#~ msgid "There "
+#~ msgstr "Alla "
+
+#~ msgid "is "
+#~ msgstr "es "
+
+#~ msgid "are "
+#~ msgstr "son "
+
+#~ msgid "s"
+#~ msgstr "s"
+
+#~ msgid "_Mute other applications during a call"
+#~ msgstr "Silenciar otras aplicaciones durante una llamada"
+
+#~ msgid "SIP Port"
+#~ msgstr "Puerto SIP"
+
+#~ msgid "UDP Transport"
+#~ msgstr "Transporte UDP"
+
+#~ msgid "Enable voicemail _notifications"
+#~ msgstr "Activar _notificaciones de mensajes de voz"
+
+#~ msgid "Store SIP credentials as MD5 hash"
+#~ msgstr "Guarda informaciòn SIP como hash MD5"
+
 #~ msgctxt "account state"
 #~ msgid "Registered"
 #~ msgstr "Registrado"
@@ -1047,9 +1232,6 @@ msgstr "Buscar en llamadas salientes"
 #~ msgid "Stun Server"
 #~ msgstr "Servidor STUN"
 
-#~ msgid "Transfer to : "
-#~ msgstr "Transferir a : "
-
 #~ msgid "Default account"
 #~ msgstr "Cuenta por defecto"
 
@@ -1065,9 +1247,6 @@ msgstr "Buscar en llamadas salientes"
 #~ msgid "Incoming call"
 #~ msgstr "Llamada entrante"
 
-#~ msgid "Transfer"
-#~ msgstr "Transferir"
-
 #~ msgid "Hang up"
 #~ msgstr "Colgar"
 
@@ -1090,9 +1269,6 @@ msgstr "Buscar en llamadas salientes"
 #~ msgid "Recordings"
 #~ msgstr "Grabaciones"
 
-#~ msgid "Remove the selected account"
-#~ msgstr "Eliminar la cuenta seleccionada"
-
 #~ msgid "Remove"
 #~ msgstr "Eliminar"
 
@@ -1130,21 +1306,6 @@ msgstr "Buscar en llamadas salientes"
 #~ msgid "Configure SFLphone"
 #~ msgstr "Configurar SFLphone"
 
-#~ msgid "_Help"
-#~ msgstr "_Ayuda"
-
-#~ msgid "_Call"
-#~ msgstr "_Llamar"
-
-#~ msgid "_Edit"
-#~ msgstr "_Editar"
-
-#~ msgid "_Accounts"
-#~ msgstr "_Cuentas"
-
-#~ msgid "_View"
-#~ msgstr "_Ver"
-
 #~ msgid "Port"
 #~ msgstr "Puerto"
 
@@ -1198,12 +1359,6 @@ msgstr "Buscar en llamadas salientes"
 #~ msgid "Address book loading..."
 #~ msgstr "Cargando el directorio..."
 
-#~ msgid "Call history"
-#~ msgstr "Historia de Llamada"
-
-#~ msgid "Address book"
-#~ msgstr "Libreta de contactos"
-
 #~ msgid "Edit before call"
 #~ msgstr "Editar antes de llamar"
 
@@ -1294,18 +1449,12 @@ msgstr "Buscar en llamadas salientes"
 #~ msgid "Prefix dialed numbers with"
 #~ msgstr "Prefijar los números marcados con"
 
-#~ msgid "History"
-#~ msgstr "Historia de Llamada"
-
 #~ msgid "Attention:number of results exceeds max displayed."
 #~ msgstr "Cuidado:número de resultatos excede el maximo a mostrar."
 
 #~ msgid "_Account creation wizard"
 #~ msgstr "Asistente de configuración de cuentas"
 
-#~ msgid "_Volume controls"
-#~ msgstr "_Controles de volumen"
-
 #~ msgid "_Enable this account"
 #~ msgstr "_Habilitar esta cuenta"
 
@@ -1435,9 +1584,6 @@ msgstr "Buscar en llamadas salientes"
 #~ msgid "\"Voicemail\" <%s>"
 #~ msgstr "\"Mensaje\" <%s>"
 
-#~ msgid "Off Hold"
-#~ msgstr "Seguir"
-
 #~ msgid "Record a call"
 #~ msgstr "Grabar una llamada"
 
@@ -1535,20 +1681,20 @@ msgstr "Buscar en llamadas salientes"
 #~ msgstr "Retomar"
 
 #~ 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."
+#~ "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 ""
-#~ "Este botón elimina la cuenta seleccionada en la siguiente lista. Asegúrese "
-#~ "de no necesitarla más. Si cree que la pueda necesitar más adelante, "
-#~ "simplemente quité la selección."
+#~ "Este botón elimina la cuenta seleccionada en la siguiente lista. "
+#~ "Asegúrese de no necesitarla más. Si cree que la pueda necesitar más "
+#~ "adelante, simplemente quité la selección."
 
 #~ msgid ""
-#~ "This button enables you to initialize a new account. You will then be able "
-#~ "to edit it using the form on the right."
+#~ "This button enables you to initialize a new account. You will then be "
+#~ "able to edit it using the form on the right."
 #~ msgstr ""
-#~ "Este botón le permite inicializar una nueva cuenta. Usted podrá corregirlo "
-#~ "con el formulario a la derecha."
+#~ "Este botón le permite inicializar una nueva cuenta. Usted podrá "
+#~ "corregirlo con el formulario a la derecha."
 
 #~ msgid ""
 #~ "By default, when you place a call, sflphone will use the first account in "
@@ -1571,18 +1717,12 @@ msgstr "Buscar en llamadas salientes"
 #~ msgid "Display phone numbers of these types :"
 #~ msgstr "Mostrar números de este tipo:"
 
-#~ msgid "Clear history"
-#~ msgstr "Limpiar historial"
-
 #~ msgid "Display dialpad"
 #~ msgstr "Mostrar teclado"
 
 #~ msgid "Command to run"
 #~ msgstr "Comando a ejecutar"
 
-#~ msgid "Clear _history"
-#~ msgstr "_Limpiar historial"
-
 #~ msgid "Keep my history for at least"
 #~ msgstr "Guardar el historial al menos"
 
@@ -1598,11 +1738,11 @@ msgstr "Buscar en llamadas salientes"
 #~ msgstr "NAT Traversal"
 
 #~ msgid ""
-#~ "Pressing \"apply\" will restart the network layer. Otherwise, SFLPhone would "
-#~ "have to be restarted."
+#~ "Pressing \"apply\" will restart the network layer. Otherwise, SFLPhone "
+#~ "would have to be restarted."
 #~ msgstr ""
-#~ "Presionar “aplica” recomenzará la capa de red. Si no, SFLPhone tendría que "
-#~ "ser reiniciado."
+#~ "Presionar “aplica” recomenzará la capa de red. Si no, SFLPhone tendría "
+#~ "que ser reiniciado."
 
 #~ msgid "_Volume Controls"
 #~ msgstr "_Controles de Volumen"
@@ -1619,28 +1759,29 @@ msgstr "Buscar en llamadas salientes"
 #~ 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."
+#~ "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 ""
 #~ "Por defecto, cuando usted realiza una llamada, sflphone usará la primera "
-#~ "cuenta en esta lista que este \"registrada\". Cambie el orden de las cuentas "
-#~ "usando las flechas \"Arriba\" y \"Abajo\". Las Activa/desactiva marcando la "
-#~ "opción de la izquierda. Adiciona o elimina con los botones de \"Más\" o "
-#~ "\"Menos\". Edita la cuenta seleccionada con el formulario a la derecha."
+#~ "cuenta en esta lista que este \"registrada\". Cambie el orden de las "
+#~ "cuentas usando las flechas \"Arriba\" y \"Abajo\". Las Activa/desactiva "
+#~ "marcando la opción de la izquierda. Adiciona o elimina con los botones de "
+#~ "\"Más\" o \"Menos\". Edita la cuenta seleccionada con el formulario a la "
+#~ "derecha."
 
 #~ msgctxt "NAME OF TRANSLATORS"
 #~ msgid "Your names"
 #~ msgstr ""
 #~ "Maxime Chambreuil, ,Launchpad Contributions:,Andres Mujica,Maxime "
-#~ "Chambreuil, ,Launchpad Contributions:,Andres Mujica,Maxime Chambreuil, "
-#~ ",Launchpad Contributions:,Andres Mujica,Maxime Chambreuil, ,Launchpad "
+#~ "Chambreuil, ,Launchpad Contributions:,Andres Mujica,Maxime Chambreuil, ,"
+#~ "Launchpad Contributions:,Andres Mujica,Maxime Chambreuil, ,Launchpad "
 #~ "Contributions:,Andres Mujica,Maxime Chambreuil"
 
 #~ msgctxt "EMAIL OF TRANSLATORS"
 #~ msgid "Your emails"
 #~ msgstr ""
-#~ "maxime.chambreuil@savoirfairelinux.com,,,andres.mujica@seaq.com.co,maxime.cha"
-#~ "mbreuil@gmail.com,,,andres.mujica@seaq.com.co,maxime.chambreuil@gmail.com,,,a"
-#~ "ndres.mujica@seaq.com.co,maxime.chambreuil@gmail.com,,,andres.mujica@seaq.com"
-#~ ".co,maxime.chambreuil@gmail.com"
+#~ "maxime.chambreuil@savoirfairelinux.com,,,andres.mujica@seaq.com.co,maxime."
+#~ "chambreuil@gmail.com,,,andres.mujica@seaq.com.co,maxime.chambreuil@gmail."
+#~ "com,,,andres.mujica@seaq.com.co,maxime.chambreuil@gmail.com,,,andres."
+#~ "mujica@seaq.com.co,maxime.chambreuil@gmail.com"
diff --git a/lang/fr/fr.po b/lang/fr/fr.po
index 53cac66386..c7ace4f55b 100644
--- a/lang/fr/fr.po
+++ b/lang/fr/fr.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: SFLphone 0.9.4\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-11-12 14:02-0500\n"
+"POT-Creation-Date: 2009-12-03 10:22-0500\n"
 "PO-Revision-Date: 2009-10-26 20:46+0000\n"
 "Last-Translator: Maxime Chambreuil <maxime.chambreuil@gmail.com>\n"
 "Language-Team: SavoirFaireLinux Inc <sflphoneteam@savoirfairelinux.com>\n"
@@ -62,15 +62,15 @@ msgstr "Serveur Stun invalide"
 msgid "Invalid"
 msgstr "Non valide"
 
-#: ../sflphone-client-gnome/src/actions.c:72
+#: ../sflphone-client-gnome/src/actions.c:98
 msgid "Using account"
 msgstr "Utilise le compte"
 
-#: ../sflphone-client-gnome/src/actions.c:78
+#: ../sflphone-client-gnome/src/actions.c:104
 msgid "No registered accounts"
 msgstr "Pas de compte enregistré"
 
-#: ../sflphone-client-gnome/src/actions.c:259
+#: ../sflphone-client-gnome/src/actions.c:285
 msgid ""
 "Unable to connect to the SFLphone server.\n"
 "Make sure the daemon is running."
@@ -78,11 +78,12 @@ msgstr ""
 "Impossible de se connecter au serveur SFLphone.\n"
 " Assurez-vous que le démon est lancé."
 
-#: ../sflphone-client-gnome/src/actions.c:879
+#: ../sflphone-client-gnome/src/actions.c:589
+#: ../sflphone-client-gnome/src/actions.c:911
 msgid "Direct SIP call"
 msgstr "Appel direct SIP"
 
-#: ../sflphone-client-gnome/src/actions.c:1071
+#: ../sflphone-client-gnome/src/actions.c:1103
 #, c-format
 msgid ""
 "<b>Error: No audio codecs found.\n"
@@ -137,31 +138,31 @@ msgstr "Vous avez des appels en cours."
 msgid "Do you still want to quit?"
 msgstr "Voulez-vous quitter?"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:297
+#: ../sflphone-client-gnome/src/mainwindow.c:298
 msgid "SFLphone Error"
 msgstr "Erreur SFLphone"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:391
+#: ../sflphone-client-gnome/src/mainwindow.c:392
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
 msgstr "ZRTP n'est pas supporté par %s\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:392
+#: ../sflphone-client-gnome/src/mainwindow.c:393
 msgid "Secure Communication Unavailable"
 msgstr "Communications sécurisées non disponibles"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:393
-#: ../sflphone-client-gnome/src/mainwindow.c:415
+#: ../sflphone-client-gnome/src/mainwindow.c:394
+#: ../sflphone-client-gnome/src/mainwindow.c:416
 msgid "Continue"
 msgstr "Continuer"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:394
-#: ../sflphone-client-gnome/src/mainwindow.c:416
-#: ../sflphone-client-gnome/src/mainwindow.c:430
+#: ../sflphone-client-gnome/src/mainwindow.c:395
+#: ../sflphone-client-gnome/src/mainwindow.c:417
+#: ../sflphone-client-gnome/src/mainwindow.c:431
 msgid "Stop Call"
 msgstr "Arrêter l'appel"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:413
+#: ../sflphone-client-gnome/src/mainwindow.c:414
 #, c-format
 msgid ""
 "A %s error forced the call with %s to fall under unencrypted mode.\n"
@@ -170,11 +171,11 @@ msgstr ""
 "L'appel avec %s est passé en mode non-crypté à cause d'une erreur %s.\n"
 "Raison exacte: %s\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:414
+#: ../sflphone-client-gnome/src/mainwindow.c:415
 msgid "ZRTP negotiation failed"
 msgstr "Erreur d'authentification"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:427
+#: ../sflphone-client-gnome/src/mainwindow.c:428
 #, c-format
 msgid ""
 "%s wants to stop using secure communication. Confirm will resume "
@@ -183,11 +184,11 @@ msgstr ""
 "%s ne désire plus utiliser la communication sécurisée. Confirmer que vous "
 "voulez continuer sans ZRTP.\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:428
+#: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm Go Clear"
 msgstr "Confirmer Communication en clair"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:429
+#: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Confirm"
 msgstr "Confirmer"
 
@@ -258,15 +259,15 @@ msgstr "Volume des hauts-parleurs"
 msgid "Mic volume"
 msgstr "Volume du micro"
 
-#: ../sflphone-client-gnome/src/statusicon.c:91
+#: ../sflphone-client-gnome/src/statusicon.c:96
 msgid "_Show main window"
 msgstr "_Afficher la fenêtre principale"
 
-#: ../sflphone-client-gnome/src/statusicon.c:126
+#: ../sflphone-client-gnome/src/statusicon.c:131
 msgid "SFLphone"
 msgstr "SFLphone"
 
-#: ../sflphone-client-gnome/src/statusicon.c:127
+#: ../sflphone-client-gnome/src/statusicon.c:132
 #, c-format
 msgid "%i account configured"
 msgid_plural "%i accounts configured"
@@ -274,388 +275,395 @@ msgstr[0] "%i compte configuré"
 msgstr[1] "%i comptes configurés"
 
 #: ../sflphone-client-gnome/src/toolbar.c:38
-#: ../sflphone-client-gnome/src/uimanager.c:628
-#: ../sflphone-client-gnome/src/uimanager.c:662
+#: ../sflphone-client-gnome/src/uimanager.c:693
+#: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Voicemail"
 msgstr "Boite vocale"
 
-#: ../sflphone-client-gnome/src/uimanager.c:115
+#: ../sflphone-client-gnome/src/uimanager.c:117
 msgid "No address book selected"
 msgstr "Aucun carnet d'adresses sélectionné"
 
-#: ../sflphone-client-gnome/src/uimanager.c:135
-#: ../sflphone-client-gnome/src/uimanager.c:691
+#: ../sflphone-client-gnome/src/uimanager.c:137
+#: ../sflphone-client-gnome/src/uimanager.c:756
 msgid "Address book"
 msgstr "Carnet d'adresses"
 
-#: ../sflphone-client-gnome/src/uimanager.c:237
+#: ../sflphone-client-gnome/src/uimanager.c:279
 #, c-format
 msgid "Voicemail (%i)"
 msgstr "Boite vocale (%i)"
 
-#: ../sflphone-client-gnome/src/uimanager.c:300
+#: ../sflphone-client-gnome/src/uimanager.c:342
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
 msgstr ""
 "SFLphone est un client VoIP compatible avec les protocoles SIP et IAX2."
 
-#: ../sflphone-client-gnome/src/uimanager.c:303
+#: ../sflphone-client-gnome/src/uimanager.c:345
 msgid "About SFLphone"
 msgstr "A propos de SFLphone"
 
-#: ../sflphone-client-gnome/src/uimanager.c:654
+#: ../sflphone-client-gnome/src/uimanager.c:719
 msgid "Call"
 msgstr "Actions"
 
-#: ../sflphone-client-gnome/src/uimanager.c:655
-#: ../sflphone-client-gnome/src/uimanager.c:1119
+#: ../sflphone-client-gnome/src/uimanager.c:720
+#: ../sflphone-client-gnome/src/uimanager.c:1184
 msgid "_New call"
 msgstr "_Nouvel appel"
 
-#: ../sflphone-client-gnome/src/uimanager.c:655
+#: ../sflphone-client-gnome/src/uimanager.c:720
 msgid "Place a new call"
 msgstr "Appeler"
 
-#: ../sflphone-client-gnome/src/uimanager.c:656
-#: ../sflphone-client-gnome/src/uimanager.c:914
+#: ../sflphone-client-gnome/src/uimanager.c:721
+#: ../sflphone-client-gnome/src/uimanager.c:979
 msgid "_Pick up"
 msgstr "_Décrocher"
 
-#: ../sflphone-client-gnome/src/uimanager.c:656
+#: ../sflphone-client-gnome/src/uimanager.c:721
 msgid "Answer the call"
 msgstr "Répondre à l'appel"
 
-#: ../sflphone-client-gnome/src/uimanager.c:657
-#: ../sflphone-client-gnome/src/uimanager.c:926
-#: ../sflphone-client-gnome/src/uimanager.c:967
+#: ../sflphone-client-gnome/src/uimanager.c:722
+#: ../sflphone-client-gnome/src/uimanager.c:991
+#: ../sflphone-client-gnome/src/uimanager.c:1032
 msgid "_Hang up"
 msgstr "_Raccrocher"
 
-#: ../sflphone-client-gnome/src/uimanager.c:657
+#: ../sflphone-client-gnome/src/uimanager.c:722
 msgid "Finish the call"
 msgstr "Terminer l'appel"
 
-#: ../sflphone-client-gnome/src/uimanager.c:658
+#: ../sflphone-client-gnome/src/uimanager.c:723
 msgid "O_n hold"
 msgstr "Mettre en attente"
 
-#: ../sflphone-client-gnome/src/uimanager.c:658
+#: ../sflphone-client-gnome/src/uimanager.c:723
 msgid "Place the call on hold"
 msgstr "Mettre l'appel en attente"
 
-#: ../sflphone-client-gnome/src/uimanager.c:659
+#: ../sflphone-client-gnome/src/uimanager.c:724
 msgid "O_ff hold"
 msgstr "Reprendre"
 
-#: ../sflphone-client-gnome/src/uimanager.c:659
+#: ../sflphone-client-gnome/src/uimanager.c:724
 msgid "Place the call off hold"
 msgstr "Reprendre l'appel"
 
-#: ../sflphone-client-gnome/src/uimanager.c:660
-#: ../sflphone-client-gnome/src/uimanager.c:950
+#: ../sflphone-client-gnome/src/uimanager.c:725
+#: ../sflphone-client-gnome/src/uimanager.c:1015
 msgid "_Record"
 msgstr "Enregistrer"
 
-#: ../sflphone-client-gnome/src/uimanager.c:660
+#: ../sflphone-client-gnome/src/uimanager.c:725
 msgid "Record the current conversation"
 msgstr "Enregistrer la conversation courante"
 
-#: ../sflphone-client-gnome/src/uimanager.c:661
+#: ../sflphone-client-gnome/src/uimanager.c:726
 msgid "Configuration _Assistant"
 msgstr "_Assistant de configuration"
 
-#: ../sflphone-client-gnome/src/uimanager.c:661
+#: ../sflphone-client-gnome/src/uimanager.c:726
 msgid "Run the configuration assistant"
 msgstr "Lancer l'assistant de configuration"
 
-#: ../sflphone-client-gnome/src/uimanager.c:662
+#: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Call your voicemail"
 msgstr "Appeler la boite vocale"
 
-#: ../sflphone-client-gnome/src/uimanager.c:663
+#: ../sflphone-client-gnome/src/uimanager.c:728
 msgid "_Close"
 msgstr "_Fermer"
 
-#: ../sflphone-client-gnome/src/uimanager.c:663
+#: ../sflphone-client-gnome/src/uimanager.c:728
 msgid "Minimize to system tray"
 msgstr "Minimiser dans la barre des tâches"
 
-#: ../sflphone-client-gnome/src/uimanager.c:664
+#: ../sflphone-client-gnome/src/uimanager.c:729
 msgid "_Quit"
 msgstr "_Quitter"
 
-#: ../sflphone-client-gnome/src/uimanager.c:664
+#: ../sflphone-client-gnome/src/uimanager.c:729
 msgid "Quit the program"
 msgstr "Quitter le programme"
 
-#: ../sflphone-client-gnome/src/uimanager.c:667
+#: ../sflphone-client-gnome/src/uimanager.c:732
 msgid "_Edit"
 msgstr "_Editer"
 
-#: ../sflphone-client-gnome/src/uimanager.c:668
+#: ../sflphone-client-gnome/src/uimanager.c:733
 msgid "_Copy"
 msgstr "_Copier"
 
-#: ../sflphone-client-gnome/src/uimanager.c:668
+#: ../sflphone-client-gnome/src/uimanager.c:733
 msgid "Copy the selection"
 msgstr "Copier la sélection"
 
-#: ../sflphone-client-gnome/src/uimanager.c:669
+#: ../sflphone-client-gnome/src/uimanager.c:734
 msgid "_Paste"
 msgstr "C_oller"
 
-#: ../sflphone-client-gnome/src/uimanager.c:669
+#: ../sflphone-client-gnome/src/uimanager.c:734
 msgid "Paste the clipboard"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:670
+#: ../sflphone-client-gnome/src/uimanager.c:735
 msgid "Clear _history"
 msgstr "Effacer l'_historique"
 
-#: ../sflphone-client-gnome/src/uimanager.c:670
+#: ../sflphone-client-gnome/src/uimanager.c:735
 msgid "Clear the call history"
 msgstr "Effacer l'historique"
 
-#: ../sflphone-client-gnome/src/uimanager.c:671
+#: ../sflphone-client-gnome/src/uimanager.c:736
 msgid "_Accounts"
 msgstr "Co_mptes"
 
-#: ../sflphone-client-gnome/src/uimanager.c:671
+#: ../sflphone-client-gnome/src/uimanager.c:736
 msgid "Edit your accounts"
 msgstr "Éditer les comptes"
 
-#: ../sflphone-client-gnome/src/uimanager.c:672
+#: ../sflphone-client-gnome/src/uimanager.c:737
 msgid "_Preferences"
 msgstr "Préférences"
 
-#: ../sflphone-client-gnome/src/uimanager.c:672
+#: ../sflphone-client-gnome/src/uimanager.c:737
 msgid "Change your preferences"
 msgstr "Modifier les préférences"
 
-#: ../sflphone-client-gnome/src/uimanager.c:675
+#: ../sflphone-client-gnome/src/uimanager.c:740
 msgid "_View"
 msgstr "A_ffichage"
 
-#: ../sflphone-client-gnome/src/uimanager.c:678
+#: ../sflphone-client-gnome/src/uimanager.c:743
 msgid "_Help"
 msgstr "A_ide"
 
-#: ../sflphone-client-gnome/src/uimanager.c:679
+#: ../sflphone-client-gnome/src/uimanager.c:744
 msgid "Contents"
 msgstr "Sommaire"
 
-#: ../sflphone-client-gnome/src/uimanager.c:679
+#: ../sflphone-client-gnome/src/uimanager.c:744
 msgid "Open the manual"
 msgstr "Ouvrir le manuel"
 
-#: ../sflphone-client-gnome/src/uimanager.c:680
+#: ../sflphone-client-gnome/src/uimanager.c:745
 msgid "About this application"
 msgstr "À propos de cette application"
 
-#: ../sflphone-client-gnome/src/uimanager.c:686
+#: ../sflphone-client-gnome/src/uimanager.c:751
 msgid "_Transfer"
 msgstr "Transférer"
 
-#: ../sflphone-client-gnome/src/uimanager.c:686
+#: ../sflphone-client-gnome/src/uimanager.c:751
 msgid "Transfer the call"
 msgstr "Transférer à : "
 
-#: ../sflphone-client-gnome/src/uimanager.c:687
+#: ../sflphone-client-gnome/src/uimanager.c:752
 msgid "_Show toolbar"
 msgstr "Afficher la _barre d'outil"
 
-#: ../sflphone-client-gnome/src/uimanager.c:687
+#: ../sflphone-client-gnome/src/uimanager.c:752
 msgid "Show the toolbar"
 msgstr "Afficher la barre d'outil"
 
-#: ../sflphone-client-gnome/src/uimanager.c:688
+#: ../sflphone-client-gnome/src/uimanager.c:753
 msgid "_Dialpad"
 msgstr "_Clavier"
 
-#: ../sflphone-client-gnome/src/uimanager.c:688
+#: ../sflphone-client-gnome/src/uimanager.c:753
 msgid "Show the dialpad"
 msgstr "Afficher le clavier"
 
-#: ../sflphone-client-gnome/src/uimanager.c:689
+#: ../sflphone-client-gnome/src/uimanager.c:754
 msgid "_Volume controls"
 msgstr "Contrôle du _volume"
 
-#: ../sflphone-client-gnome/src/uimanager.c:689
+#: ../sflphone-client-gnome/src/uimanager.c:754
 msgid "Show the volume controls"
 msgstr "Afficher les controles du volume"
 
-#: ../sflphone-client-gnome/src/uimanager.c:690
+#: ../sflphone-client-gnome/src/uimanager.c:755
 msgid "_History"
 msgstr "Historique"
 
-#: ../sflphone-client-gnome/src/uimanager.c:690
+#: ../sflphone-client-gnome/src/uimanager.c:755
 msgid "Calls history"
 msgstr "Historique d'appels"
 
-#: ../sflphone-client-gnome/src/uimanager.c:691
+#: ../sflphone-client-gnome/src/uimanager.c:756
 msgid "_Address book"
 msgstr "Carnet d'adresses"
 
-#: ../sflphone-client-gnome/src/uimanager.c:938
-#: ../sflphone-client-gnome/src/uimanager.c:979
+#: ../sflphone-client-gnome/src/uimanager.c:1003
+#: ../sflphone-client-gnome/src/uimanager.c:1044
 msgid "On _Hold"
 msgstr "_Mettre en attente"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1042
+#: ../sflphone-client-gnome/src/uimanager.c:1107
 msgid "_Call back"
 msgstr "_Rappeler"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1193
+#: ../sflphone-client-gnome/src/uimanager.c:1258
 msgid "Edit phone number"
 msgstr "Éditer le numéro"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1204
+#: ../sflphone-client-gnome/src/uimanager.c:1269
 msgid "Edit the phone number before making a call"
 msgstr "Éditer le numéro de téléphone avant d'appeler"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:172
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:180
 msgid "Account Parameters"
 msgstr "Paramètres du Compte"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:181
-#: ../sflphone-client-gnome/src/config/assistant.c:307
-#: ../sflphone-client-gnome/src/config/assistant.c:415
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/assistant.c:314
+#: ../sflphone-client-gnome/src/config/assistant.c:427
 msgid "_Alias"
 msgstr "A_lias"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:197
 msgid "_Protocol"
 msgstr "P_rotocole"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:207
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:215
 msgid "Unknown"
 msgstr "Inconnu"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:217
-#: ../sflphone-client-gnome/src/config/assistant.c:315
-#: ../sflphone-client-gnome/src/config/assistant.c:423
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
+#: ../sflphone-client-gnome/src/config/assistant.c:322
+#: ../sflphone-client-gnome/src/config/assistant.c:435
 msgid "_Host name"
 msgstr "_Serveur"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
-#: ../sflphone-client-gnome/src/config/assistant.c:323
-#: ../sflphone-client-gnome/src/config/assistant.c:431
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:233
+#: ../sflphone-client-gnome/src/config/assistant.c:330
+#: ../sflphone-client-gnome/src/config/assistant.c:443
 msgid "_User name"
 msgstr "Usa_ger"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:242
-#: ../sflphone-client-gnome/src/config/assistant.c:339
-#: ../sflphone-client-gnome/src/config/assistant.c:446
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:346
+#: ../sflphone-client-gnome/src/config/assistant.c:458
 msgid "_Password"
 msgstr "_Mot de passe"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:262
-#: ../sflphone-client-gnome/src/config/assistant.c:357
-#: ../sflphone-client-gnome/src/config/assistant.c:462
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:270
+#: ../sflphone-client-gnome/src/config/assistant.c:363
+#: ../sflphone-client-gnome/src/config/assistant.c:473
+#, fuzzy
+msgid "Show password"
+msgstr "Mot de passe"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:274
+#: ../sflphone-client-gnome/src/config/assistant.c:368
+#: ../sflphone-client-gnome/src/config/assistant.c:478
 msgid "_Voicemail number"
 msgstr "_Boite vocale #"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:348
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:361
 msgid "Authentication"
 msgstr "Identification"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:349
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:362
 msgid "Secret"
 msgstr "Mot de passe"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:579
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:605
 msgid "Credential"
 msgstr "Informations"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:614
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:640
 msgid "Authentication name"
 msgstr "Nom d'authentification"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:625
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:651
 msgid "Password"
 msgstr "Mot de passe"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:649
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1029
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:306
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1056
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:321
 msgid "Security"
 msgstr "Sécurité"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:662
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:318
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:333
 msgid "Use TLS transport (sips)"
 msgstr "Utiliser un transport TLS (sips)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:668
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:323
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:338
 msgid "SRTP key exchange"
 msgstr "Échange de clé SRTP"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:329
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:699
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
 msgid "Disabled"
 msgstr "Désactivé"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:770
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:795
 msgid "Registration"
 msgstr "Expiration d'enregistrement"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:775
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:800
 msgid "Registration expire"
 msgstr "Expiration d'enregistrement"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:784
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:809
 msgid "_Comply with RFC 3263"
 msgstr "Respecter RFC 3263"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:791
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:221
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:816
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:234
 msgid "Network Interface"
 msgstr "Interface réseau"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:805
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:236
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:830
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:249
 msgid "Local address"
 msgstr "Adresse locale"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:855
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:292
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:301
 msgid "Local port"
 msgstr "Port local"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:868
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:903
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:893
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:928
 msgid "Published address"
 msgstr "Adresse de publication"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:874
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
 msgid "Using STUN"
 msgstr "Utiliser STUN "
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:881
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:906
 msgid "STUN server URL"
 msgstr "URL du serveur STUN"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:889
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:914
 msgid "Same as local parameters"
 msgstr "Identique aux paramètres locaux"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:892
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:917
 msgid "Set published address and port:"
 msgstr "Configurer l'adresse et le port à publier"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:911
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:936
 msgid "Published port"
 msgstr "Port de publication"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1000
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1027
 msgid "Account settings"
 msgstr "Paramètre des comptes"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1019
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1046
 msgid "Basic"
 msgstr "Général"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1024
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1051
 msgid "Advanced"
 msgstr "Avancé"
 
@@ -664,35 +672,35 @@ msgstr "Avancé"
 msgid "Server returned \"%s\" (%d)"
 msgstr "Le serveur a répondu \"%s\" (%d)"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:387
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
 msgid "Protocol"
 msgstr "Protocole"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:394
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:396
 msgid "Status"
 msgstr "Statut"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:472
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:474
 msgid "Accounts"
 msgstr "Comptes"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:482
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:484
 msgid "Configured Accounts"
 msgstr "Comptes Configurés"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:499
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:501
 #, c-format
 msgid "There is %d active account"
 msgid_plural "There are %d active accounts"
 msgstr[0] " %d compte actif"
 msgstr[1] " %d comptes actifs"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:507
 msgid "You have no active account"
 msgstr "Vous n'avez aucun compte actif"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:537
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:556
 msgid "General"
 msgstr "Général"
 
@@ -741,12 +749,12 @@ msgstr "Sélectionnez les carnets d'adresses d'Evolution à utiliser"
 msgid "Name"
 msgstr "Nom"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:69
+#: ../sflphone-client-gnome/src/config/assistant.c:75
 #, c-format
 msgid "This assistant is now finished."
 msgstr "Cet assistant est maintenant terminé."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:71
+#: ../sflphone-client-gnome/src/config/assistant.c:77
 msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
@@ -754,127 +762,127 @@ msgstr ""
 "Vous pouvez à tout moment vérifier votre état d'enregistrement ou modifier "
 "les paramètres de vos comptes dans la fenêtre Options/Comptes."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:74
+#: ../sflphone-client-gnome/src/config/assistant.c:80
 msgid "Alias"
 msgstr "Alias"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:78
+#: ../sflphone-client-gnome/src/config/assistant.c:84
 msgid "Server"
 msgstr "Serveur"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:82
+#: ../sflphone-client-gnome/src/config/assistant.c:88
 msgid "Username"
 msgstr "Nom d'utilisateur"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:86
+#: ../sflphone-client-gnome/src/config/assistant.c:92
 msgid "Security: "
 msgstr "Sécurité: "
 
-#: ../sflphone-client-gnome/src/config/assistant.c:88
+#: ../sflphone-client-gnome/src/config/assistant.c:94
 msgid "SRTP/ZRTP draft-zimmermann"
 msgstr "SRTP/ZRTP draft-zimmermann"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:90
+#: ../sflphone-client-gnome/src/config/assistant.c:96
 msgid "None"
 msgstr "Aucun"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:223
+#: ../sflphone-client-gnome/src/config/assistant.c:229
 msgid "SFLphone account creation wizard"
 msgstr "Assistant de création de compte de SFLphone"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:249
+#: ../sflphone-client-gnome/src/config/assistant.c:255
 msgid "Welcome to the Account creation wizard of SFLphone!"
 msgstr "Bienvenue dans l'assistant de création de compte de SFLphone !"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:256
 msgid "This installation wizard will help you configure an account."
 msgstr "Cet assistant vous guidera dans la configuration d'un compte."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:264
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "VoIP Protocols"
 msgstr "Protocoles VoIP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:264
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "Select an account type"
 msgstr "Sélectionnez un type de compte"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:266
+#: ../sflphone-client-gnome/src/config/assistant.c:272
 msgid "SIP (Session Initiation Protocol)"
 msgstr "SIP (Session Initiation Protocol)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:268
+#: ../sflphone-client-gnome/src/config/assistant.c:274
 msgid "IAX2 (InterAsterix Exchange)"
 msgstr "IAX2 (InterAsterix Exchange)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:282
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Account"
 msgstr "Compte"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:282
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Please select one of the following options"
 msgstr "Veuillez sélectionner une des options suivantes"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:284
+#: ../sflphone-client-gnome/src/config/assistant.c:290
 msgid "Create a free SIP/IAX2 account on sflphone.org"
 msgstr "Créer un compte SIP/IAX2 gratuit sur sflphone.org"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
+#: ../sflphone-client-gnome/src/config/assistant.c:292
 msgid "Register an existing SIP or IAX2 account"
 msgstr "Enregistrer un compte SIP ou IAX2 existant"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:299
+#: ../sflphone-client-gnome/src/config/assistant.c:306
 msgid "SIP account settings"
 msgstr "Paramètres de compte SIP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:299
-#: ../sflphone-client-gnome/src/config/assistant.c:407
+#: ../sflphone-client-gnome/src/config/assistant.c:306
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "Please fill the following information"
 msgstr "Veuillez remplir les champs suivants"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:376
+#: ../sflphone-client-gnome/src/config/assistant.c:405
 msgid "Secure communications with _ZRTP"
 msgstr "Communications sécurisées avec _ZRTP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:378
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "Optional email address"
 msgstr "Adresse courriel optionnelle"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:378
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "This email address will be used to send your voicemail messages."
 msgstr "Vos messages vocaux seront envoyés par courriel à cette adresse."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:386
+#: ../sflphone-client-gnome/src/config/assistant.c:397
 msgid "_Email address"
 msgstr "A_dresse courriel"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:407
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "IAX2 account settings"
 msgstr "Paramètres de compte IAX2"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:480
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "Network Address Translation (NAT)"
 msgstr "Network Address Translation (NAT)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:480
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "You should probably enable this if you are behind a firewall."
 msgstr ""
 "Vous devriez probablement activer cette option si vous vous trouvez derrière "
 "un pare-feu."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:489
+#: ../sflphone-client-gnome/src/config/assistant.c:505
 msgid "E_nable STUN"
 msgstr "A_ctiver STUN"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:496
+#: ../sflphone-client-gnome/src/config/assistant.c:512
 msgid "_STUN server"
 msgstr "S_erveur STUN"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:510
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Account Registration"
 msgstr "Enregistrement du compte"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:510
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Congratulations!"
 msgstr "Félicitations!"
 
@@ -910,51 +918,51 @@ msgstr "Détection de l'activité de la voix"
 msgid "_Noise Reduction (Narrow-Band Companding)"
 msgstr "Réduction du bruit (Compresseur extenseur LBR)"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:795
+#: ../sflphone-client-gnome/src/config/audioconf.c:800
 msgid "Sound Manager"
 msgstr "Interface Audio"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:804
+#: ../sflphone-client-gnome/src/config/audioconf.c:809
 msgid "_Pulseaudio"
 msgstr "_Pulseaudio"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:808
+#: ../sflphone-client-gnome/src/config/audioconf.c:813
 msgid "_ALSA"
 msgstr "_ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:814
+#: ../sflphone-client-gnome/src/config/audioconf.c:819
 msgid "ALSA settings"
 msgstr "Paramètres ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:831
+#: ../sflphone-client-gnome/src/config/audioconf.c:836
 msgid "Codecs"
 msgstr "Codecs"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:860
+#: ../sflphone-client-gnome/src/config/audioconf.c:865
 msgid "Recordings"
 msgstr "Enregistrements"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:864
+#: ../sflphone-client-gnome/src/config/audioconf.c:869
 msgid "Destination folder"
 msgstr "Dossier de destination"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:868
+#: ../sflphone-client-gnome/src/config/audioconf.c:873
 msgid "Select a folder"
 msgstr "Choisissez un dossier"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:874
+#: ../sflphone-client-gnome/src/config/audioconf.c:879
 msgid "Ringtones"
 msgstr "Sonneries"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:880
+#: ../sflphone-client-gnome/src/config/audioconf.c:885
 msgid "_Enable ringtones"
 msgstr "_Activer les sonneries"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:886
+#: ../sflphone-client-gnome/src/config/audioconf.c:891
 msgid "Choose a ringtone"
 msgstr "Sélectionner une sonnerie"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:892
+#: ../sflphone-client-gnome/src/config/audioconf.c:897
 msgid "Audio Files"
 msgstr "Fichier Audio"
 
@@ -991,7 +999,7 @@ msgstr "Réécriture des numéros appelés"
 msgid "_Prefix dialed numbers with"
 msgstr "_Préfixer les numéros composés par"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:212
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:225
 msgid ""
 "This profile is used when you want to reach a remote peer simply by typing a "
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
@@ -1002,67 +1010,59 @@ msgstr ""
 "sont aussi utilisé si aucun compte ne peut être attribué à un appel entrant "
 "ou sortant."
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:425
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:440
 msgid "Desktop Notifications"
 msgstr "Notifications de Bureau"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:429
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:444
 msgid "_Enable notifications"
 msgstr "_Activer les notifications"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:435
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:450
 msgid "System Tray Icon"
 msgstr "Icône dans la barre des tâches"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:438
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
 msgid "_Popup main window on incoming call"
 msgstr "Faire apparaître la fenêtre _principale lors d'appel entrant"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:457
 msgid "Ne_ver popup main window"
 msgstr "Ne _jamais afficher la fenêtre principale"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:447
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
 msgid "Hide SFLphone window on _startup"
 msgstr "_Cacher la fenêtre de SFLphone au démarrage"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:469
 msgid "Calls History"
 msgstr "Historique des appels"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:456
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:472
 msgid "_Keep my history for at least"
 msgstr "Garder mon historique au moins"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:467
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:483
 msgid "days"
 msgstr "jours"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:471
-msgid "Configuration File"
-msgstr "Fichier de configuration"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:473
-msgid "Store SIP credentials as MD5 hash"
-msgstr "Stocker les informations d'authentification sour forme encryptée (MD5)"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:517
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:536
 msgid "Preferences"
 msgstr "Préférences"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:542
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:561
 msgid "Audio"
 msgstr "Audio"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:547
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:566
 msgid "Address Book"
 msgstr "Carnet d'adresse"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:552
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:571
 msgid "Hooks"
 msgstr "Ancrage"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:562
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:581
 msgid "Direct IP calls"
 msgstr "Appels IP"
 
@@ -1070,11 +1070,11 @@ msgstr "Appels IP"
 msgid "Advanced options for TLS"
 msgstr "Options avancées TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:56
 msgid "TLS transport"
 msgstr "Transport TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:60
 msgid ""
 "TLS transport can be used along with UDP for those calls that would\n"
 "require secure sip transactions (aka SIPS). You can configure a different\n"
@@ -1087,55 +1087,55 @@ msgstr ""
 "TLS différent pour chaque compte. Cependant, chacun écoutera sur un port "
 "différent.\n"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:103
 msgid "Certificate of Authority list"
 msgstr "Liste des autorités de certification"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:107
 msgid "Choose a CA list file (optional)"
 msgstr "Choisir une liste d'AC (optionnel)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:128
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:131
 msgid "Public endpoint certificate file"
 msgstr "Fichier de certificats de l'extrémité public"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:132
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:135
 msgid "Choose a public endpoint certificate (optional)"
 msgstr "Sélectionner le certificat de l'extrémité public"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:156
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:159
 msgid "Choose a private key file (optional)"
 msgstr "Choisir une clé privée (optionnel)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:178
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:181
 msgid "Password for the private key"
 msgstr "Mot de passe pour la clé privée"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:201
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:204
 msgid "TLS protocol method"
 msgstr "Méthode pour TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:235
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:238
 msgid "TLS cipher list"
 msgstr "Liste de cryptogramme TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:244
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:247
 msgid "Server name instance for outgoing TLS connection"
 msgstr "Instance du serveur pour les connections TLS sortantes"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:252
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:255
 msgid "Negotiation timeout (sec:msec)"
 msgstr "Expiration de la négociation"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:269
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:272
 msgid "Verify incoming certificates, as a server"
 msgstr "En tant que serveur, vérifier les certificats entrants"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:275
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:278
 msgid "Verify certificates from answer, as a client"
 msgstr "En tant que client, vérifier les certificats dans les réponses"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:281
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:284
 msgid "Require certificate for incoming tls connections"
 msgstr "Exiger un certificat pour les connexions TLS entrantes"
 
@@ -1159,29 +1159,36 @@ msgstr "_Avertir si ZRTP n'est pas supporté"
 msgid "Display SAS once for hold events"
 msgstr "Afficher le SAS seulement une fois sur les mises en attente"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:56
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:58
 msgid "Search all"
 msgstr "Rechercher dans tous"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:57
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:70
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:82
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:94
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:59
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:72
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:84
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:96
 msgid "Click here to change the search type"
 msgstr "Cliquez ici pour changer le type de recherche"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:69
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:71
 msgid "Search by missed call"
 msgstr "Rechercher dans les appels manqués"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:81
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:83
 msgid "Search by incoming call"
 msgstr "Rechercher dans les appels entrants"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:93
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:95
 msgid "Search by outgoing call"
 msgstr "Rechercher dans les appels sortants"
 
+#~ msgid "Configuration File"
+#~ msgstr "Fichier de configuration"
+
+#~ msgid "Store SIP credentials as MD5 hash"
+#~ msgstr ""
+#~ "Stocker les informations d'authentification sour forme encryptée (MD5)"
+
 #~ msgid "IP call - %s"
 #~ msgstr "Appel IP - %s"
 
diff --git a/lang/it/it.po b/lang/it/it.po
index 52a0a6a5f3..cf8644aea9 100644
--- a/lang/it/it.po
+++ b/lang/it/it.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-14 11:18-0400\n"
+"POT-Creation-Date: 2009-12-03 10:22-0500\n"
 "PO-Revision-Date: 2009-10-14 17:47+0000\n"
 "Last-Translator: Maxime Chambreuil <maxime.chambreuil@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -60,25 +60,15 @@ msgstr "Server STUN non valido"
 msgid "Invalid"
 msgstr "Non valido"
 
-#: ../sflphone-client-gnome/src/actions.c:54
-#: ../sflphone-client-gnome/src/sflnotify.c:94
-#, c-format
-msgid "%d voice mail"
-msgid_plural "%d voice mails"
-msgstr[0] "%d messaggio vocale"
-msgstr[1] "%d messaggi vocali"
-
-#: ../sflphone-client-gnome/src/actions.c:83
-#: ../sflphone-client-gnome/src/actions.c:919
-#: ../sflphone-client-gnome/src/actions.c:926
+#: ../sflphone-client-gnome/src/actions.c:98
 msgid "Using account"
 msgstr "Account in uso:"
 
-#: ../sflphone-client-gnome/src/actions.c:89
+#: ../sflphone-client-gnome/src/actions.c:104
 msgid "No registered accounts"
 msgstr "Nessun account registrato"
 
-#: ../sflphone-client-gnome/src/actions.c:268
+#: ../sflphone-client-gnome/src/actions.c:285
 msgid ""
 "Unable to connect to the SFLphone server.\n"
 "Make sure the daemon is running."
@@ -86,27 +76,23 @@ msgstr ""
 "Impossibile connettersi al server SFLphone.\n"
 "Accertarsi che il demone sia in esecuzione."
 
-#: ../sflphone-client-gnome/src/actions.c:913
-#, c-format
-msgid "IP call - %s"
-msgstr "Chiamata IP diretta - %s"
-
-#: ../sflphone-client-gnome/src/actions.c:922
-msgid "Codec"
-msgstr "Codec"
+#: ../sflphone-client-gnome/src/actions.c:589
+#: ../sflphone-client-gnome/src/actions.c:911
+msgid "Direct SIP call"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:1119
+#: ../sflphone-client-gnome/src/actions.c:1103
 #, c-format
 msgid ""
 "<b>Error: No audio codecs found.\n"
 "\n"
-"</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
-"<b>.sflphone</b> directory in your home( <i>%s</i> )"
+"</b> SFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</"
+"b> directory in your home( <i>%s</i> )"
 msgstr ""
 "<b>Errore: Non è stato trovato alcun codec audio.</b>\n"
 "\n"
-"I codec audio SFL devono trovarsi in <i>%s</i> o nella sottocartella "
-"<b>.sflphone</b> della cartella home dell'utente (</i>%s</i>)"
+"I codec audio SFL devono trovarsi in <i>%s</i> o nella sottocartella <b>."
+"sflphone</b> della cartella home dell'utente (</i>%s</i>)"
 
 #: ../sflphone-client-gnome/src/errors.c:29
 msgid ""
@@ -147,53 +133,53 @@ msgstr "Ci sono chiamate in corso."
 msgid "Do you still want to quit?"
 msgstr "Vuoi veramente uscire?"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:299
+#: ../sflphone-client-gnome/src/mainwindow.c:298
 msgid "SFLphone Error"
 msgstr "Errore SFLphone"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:391
+#: ../sflphone-client-gnome/src/mainwindow.c:392
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:392
+#: ../sflphone-client-gnome/src/mainwindow.c:393
 msgid "Secure Communication Unavailable"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:393
-#: ../sflphone-client-gnome/src/mainwindow.c:415
+#: ../sflphone-client-gnome/src/mainwindow.c:394
+#: ../sflphone-client-gnome/src/mainwindow.c:416
 msgid "Continue"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:394
-#: ../sflphone-client-gnome/src/mainwindow.c:416
-#: ../sflphone-client-gnome/src/mainwindow.c:430
+#: ../sflphone-client-gnome/src/mainwindow.c:395
+#: ../sflphone-client-gnome/src/mainwindow.c:417
+#: ../sflphone-client-gnome/src/mainwindow.c:431
 msgid "Stop Call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:413
+#: ../sflphone-client-gnome/src/mainwindow.c:414
 #, c-format
 msgid ""
 "A %s error forced the call with %s to fall under unencrypted mode.\n"
 "Exact reason: %s\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:414
+#: ../sflphone-client-gnome/src/mainwindow.c:415
 msgid "ZRTP negotiation failed"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:427
+#: ../sflphone-client-gnome/src/mainwindow.c:428
 #, c-format
 msgid ""
 "%s wants to stop using secure communication. Confirm will resume "
 "conversation without SRTP.\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:428
+#: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm Go Clear"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:429
+#: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Confirm"
 msgstr ""
 
@@ -208,6 +194,13 @@ msgstr "Account %s: %s"
 msgid "<i>From</i> %s"
 msgstr "<i>Da</i> %s"
 
+#: ../sflphone-client-gnome/src/sflnotify.c:94
+#, c-format
+msgid "%d voice mail"
+msgid_plural "%d voice mails"
+msgstr[0] "%d messaggio vocale"
+msgstr[1] "%d messaggi vocali"
+
 #: ../sflphone-client-gnome/src/sflnotify.c:111
 #, c-format
 msgid "Calling with %s account <i>%s</i>"
@@ -255,15 +248,15 @@ msgstr "Volume altoparlante"
 msgid "Mic volume"
 msgstr "Volume microfono"
 
-#: ../sflphone-client-gnome/src/statusicon.c:91
+#: ../sflphone-client-gnome/src/statusicon.c:96
 msgid "_Show main window"
 msgstr "Mostra la finestra principale"
 
-#: ../sflphone-client-gnome/src/statusicon.c:126
+#: ../sflphone-client-gnome/src/statusicon.c:131
 msgid "SFLphone"
 msgstr "SFLphone"
 
-#: ../sflphone-client-gnome/src/statusicon.c:127
+#: ../sflphone-client-gnome/src/statusicon.c:132
 #, c-format
 msgid "%i account configured"
 msgid_plural "%i accounts configured"
@@ -271,202 +264,398 @@ msgstr[0] "%i account configurato"
 msgstr[1] "%i account configurati"
 
 #: ../sflphone-client-gnome/src/toolbar.c:38
-#: ../sflphone-client-gnome/src/uimanager.c:750
+#: ../sflphone-client-gnome/src/uimanager.c:693
+#: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Voicemail"
 msgstr "Segreteria telefonica"
 
-#: ../sflphone-client-gnome/src/uimanager.c:403
+#: ../sflphone-client-gnome/src/uimanager.c:117
+msgid "No address book selected"
+msgstr "Rubrica"
+
+#: ../sflphone-client-gnome/src/uimanager.c:137
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "Address book"
+msgstr "Rubrica"
+
+#: ../sflphone-client-gnome/src/uimanager.c:279
+msgid "Voicemail (%i)"
+msgstr "Segreteria telefonica (%i)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:342
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
 msgstr "SFLphone è un client VoIP compatibile con i protocolli SIP e IAX2."
 
-#: ../sflphone-client-gnome/src/uimanager.c:406
+#: ../sflphone-client-gnome/src/uimanager.c:345
 msgid "About SFLphone"
 msgstr "Informazioni su SFLphone"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1028
+#: ../sflphone-client-gnome/src/uimanager.c:719
+msgid "Call"
+msgstr "_Chiama"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+#: ../sflphone-client-gnome/src/uimanager.c:1184
+msgid "_New call"
+msgstr "Chiama"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+msgid "Place a new call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:721
+#: ../sflphone-client-gnome/src/uimanager.c:979
 msgid "_Pick up"
 msgstr "Rispondi"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1040
-#: ../sflphone-client-gnome/src/uimanager.c:1081
+#: ../sflphone-client-gnome/src/uimanager.c:721
+msgid "Answer the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:722
+#: ../sflphone-client-gnome/src/uimanager.c:991
+#: ../sflphone-client-gnome/src/uimanager.c:1032
 msgid "_Hang up"
 msgstr "_Chiudi"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1052
-#: ../sflphone-client-gnome/src/uimanager.c:1093
-msgid "On _Hold"
+#: ../sflphone-client-gnome/src/uimanager.c:722
+msgid "Finish the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "O_n hold"
 msgstr "Attesa"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1064
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "Place the call on hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "O_ff hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "Place the call off hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:725
+#: ../sflphone-client-gnome/src/uimanager.c:1015
 msgid "_Record"
 msgstr "_Registra"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1154
-msgid "_Call back"
+#: ../sflphone-client-gnome/src/uimanager.c:725
+msgid "Record the current conversation"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1226
-msgid "_New call"
-msgstr "Chiama"
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Configuration _Assistant"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Run the configuration assistant"
+msgstr "Errore di configurazione STUN"
+
+#: ../sflphone-client-gnome/src/uimanager.c:727
+msgid "Call your voicemail"
+msgstr "%d messaggio vocale"
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "_Close"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "Minimize to system tray"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "_Quit"
+msgstr "_Modifica"
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "Quit the program"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:732
+msgid "_Edit"
+msgstr "_Modifica"
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "_Copy"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "Copy the selection"
+msgstr "Elimina l'account selezionato"
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "_Paste"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "Paste the clipboard"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear _history"
+msgstr "Cancella la cronologia"
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear the call history"
+msgstr "Cancella la cronologia"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "_Accounts"
+msgstr "_Account"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "Edit your accounts"
+msgstr "Account attivo"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "_Preferences"
+msgstr "Preferenze"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "Change your preferences"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:740
+msgid "_View"
+msgstr "_Visualizza"
+
+#: ../sflphone-client-gnome/src/uimanager.c:743
+msgid "_Help"
+msgstr "_Aiuto"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Contents"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Open the manual"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:745
+msgid "About this application"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "_Transfer"
+msgstr "Inoltra"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "Transfer the call"
+msgstr "Inoltra a: "
 
-#: ../sflphone-client-gnome/src/uimanager.c:1300
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "_Show toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "Show the toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "_Dialpad"
+msgstr "Mostra tastiera"
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "Show the dialpad"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "_Volume controls"
+msgstr "Mostra i controlli del volume"
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "Show the volume controls"
+msgstr "Mostra i controlli del volume"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "_History"
+msgstr "Cronologia"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "Calls history"
+msgstr "Cronologia chiamate"
+
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "_Address book"
+msgstr "Rubrica"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1003
+#: ../sflphone-client-gnome/src/uimanager.c:1044
+msgid "On _Hold"
+msgstr "Attesa"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1107
+msgid "_Call back"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:1258
 msgid "Edit phone number"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1311
+#: ../sflphone-client-gnome/src/uimanager.c:1269
 msgid "Edit the phone number before making a call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:164
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:180
 msgid "Account Parameters"
 msgstr "Parametri account"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:173
-#: ../sflphone-client-gnome/src/config/assistant.c:294
-#: ../sflphone-client-gnome/src/config/assistant.c:402
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/assistant.c:314
+#: ../sflphone-client-gnome/src/config/assistant.c:427
 msgid "_Alias"
 msgstr "_Pseudonimo"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:181
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:197
 msgid "_Protocol"
 msgstr "_Protocollo"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:199
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:215
 msgid "Unknown"
 msgstr "Sconosciuto"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:209
-#: ../sflphone-client-gnome/src/config/assistant.c:302
-#: ../sflphone-client-gnome/src/config/assistant.c:410
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
+#: ../sflphone-client-gnome/src/config/assistant.c:322
+#: ../sflphone-client-gnome/src/config/assistant.c:435
 msgid "_Host name"
 msgstr "Nome _host"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:217
-#: ../sflphone-client-gnome/src/config/assistant.c:310
-#: ../sflphone-client-gnome/src/config/assistant.c:418
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:233
+#: ../sflphone-client-gnome/src/config/assistant.c:330
+#: ../sflphone-client-gnome/src/config/assistant.c:443
 msgid "_User name"
 msgstr "Nome _utente"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:234
-#: ../sflphone-client-gnome/src/config/assistant.c:326
-#: ../sflphone-client-gnome/src/config/assistant.c:433
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:346
+#: ../sflphone-client-gnome/src/config/assistant.c:458
 msgid "_Password"
 msgstr "_Password"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:254
-#: ../sflphone-client-gnome/src/config/assistant.c:344
-#: ../sflphone-client-gnome/src/config/assistant.c:449
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:270
+#: ../sflphone-client-gnome/src/config/assistant.c:363
+#: ../sflphone-client-gnome/src/config/assistant.c:473
+msgid "Show password"
+msgstr "Password"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:274
+#: ../sflphone-client-gnome/src/config/assistant.c:368
+#: ../sflphone-client-gnome/src/config/assistant.c:478
 msgid "_Voicemail number"
 msgstr "Numero segreteria telefonica"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:340
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:361
 msgid "Authentication"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:362
 msgid "Secret"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:605
 msgid "Credential"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:501
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:640
 msgid "Authentication name"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:512
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:651
 msgid "Password"
 msgstr "Password"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:535
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:909
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:201
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1056
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:321
 msgid "Security"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:547
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:213
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:333
 msgid "Use TLS transport (sips)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:552
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:218
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:338
 msgid "SRTP key exchange"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:699
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
 msgid "Disabled"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:795
 msgid "Registration"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:800
 msgid "Registration expire"
 msgstr "Scadenza registrazione"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:809
 msgid "_Comply with RFC 3263"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
-msgid "Network"
-msgstr "Rete"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:816
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:234
+msgid "Network Interface"
+msgstr "Rete irraggiungibile"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:830
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:249
 msgid "Local address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:301
 msgid "Local port"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:752
-msgid "Set published address and port:"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:893
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:928
+msgid "Published address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:756
-msgid "Using STUN "
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+msgid "Using STUN"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:761
-msgid "Same as local parameters"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:906
+msgid "STUN server URL"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:764
-msgid "Manually"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:914
+msgid "Same as local parameters"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:769
-msgid "Published address"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:917
+msgid "Set published address and port:"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:777
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:936
 msgid "Published port"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:785
-msgid "STUN server URL"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1027
 msgid "Account settings"
 msgstr "Impostazioni dell'account"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1046
 msgid "Basic"
 msgstr "Generale"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:904
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1051
 msgid "Advanced"
 msgstr "Avanzate"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:169
-msgid "Server returned \""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:164
+#, c-format
+msgid "Server returned \"%s\" (%d)"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
@@ -485,32 +674,19 @@ msgstr "Account"
 msgid "Configured Accounts"
 msgstr "Account configurati"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
-msgid "There "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "is "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "are "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
-msgid " active account"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
-msgid "s"
-msgstr ""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:501
+#, c-format
+msgid "There is %d active account"
+msgid_plural "There are %d active accounts"
+msgstr[0] ""
+msgstr[1] ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:507
 msgid "You have no active account"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:556
 msgid "General"
 msgstr ""
 
@@ -555,228 +731,223 @@ msgid "Select which Evolution address books to use"
 msgstr "Selezionare la rubrica di Evolution da usare"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:404
-#: ../sflphone-client-gnome/src/config/audioconf.c:578
+#: ../sflphone-client-gnome/src/config/audioconf.c:577
 msgid "Name"
 msgstr "Nome"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:69
+#: ../sflphone-client-gnome/src/config/assistant.c:75
 #, c-format
 msgid "This assistant is now finished."
 msgstr "La procedura guidata è terminata."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:71
+#: ../sflphone-client-gnome/src/config/assistant.c:77
 msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:74
+#: ../sflphone-client-gnome/src/config/assistant.c:80
 msgid "Alias"
 msgstr "Pseudonimo"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:78
+#: ../sflphone-client-gnome/src/config/assistant.c:84
 msgid "Server"
 msgstr "Server"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:82
+#: ../sflphone-client-gnome/src/config/assistant.c:88
 msgid "Username"
 msgstr "Nome utente"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:86
+#: ../sflphone-client-gnome/src/config/assistant.c:92
 msgid "Security: "
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:88
+#: ../sflphone-client-gnome/src/config/assistant.c:94
 msgid "SRTP/ZRTP draft-zimmermann"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:90
-#: ../sflphone-client-gnome/src/config/assistant.c:182
+#: ../sflphone-client-gnome/src/config/assistant.c:96
 msgid "None"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:210
+#: ../sflphone-client-gnome/src/config/assistant.c:229
 msgid "SFLphone account creation wizard"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:236
+#: ../sflphone-client-gnome/src/config/assistant.c:255
 msgid "Welcome to the Account creation wizard of SFLphone!"
 msgstr ""
 "Benvenuti alla procedura guidata per la creazione di un account SFLphone"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:237
+#: ../sflphone-client-gnome/src/config/assistant.c:256
 msgid "This installation wizard will help you configure an account."
 msgstr "Questa procedura permetterà di configurare un account."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "VoIP Protocols"
 msgstr "Protocolli VoIP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "Select an account type"
 msgstr "Selezionare un tipo di account"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:253
+#: ../sflphone-client-gnome/src/config/assistant.c:272
 msgid "SIP (Session Initiation Protocol)"
 msgstr "SIP (Session Initiation Protocol)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:255
+#: ../sflphone-client-gnome/src/config/assistant.c:274
 msgid "IAX2 (InterAsterix Exchange)"
 msgstr "IAX2 (InterAsterix Exchange)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Account"
 msgstr "Account"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Please select one of the following options"
 msgstr "Scegliere una delle seguenti opzioni"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:271
+#: ../sflphone-client-gnome/src/config/assistant.c:290
 msgid "Create a free SIP/IAX2 account on sflphone.org"
 msgstr "Creare un account SIP/IAX2 gratuito  su sflphone.org"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:273
+#: ../sflphone-client-gnome/src/config/assistant.c:292
 msgid "Register an existing SIP or IAX2 account"
 msgstr "Registrare un account SIP o IAX2 esistente"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
+#: ../sflphone-client-gnome/src/config/assistant.c:306
 msgid "SIP account settings"
 msgstr "Impostazioni account SIP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:306
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "Please fill the following information"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:352
-#: ../sflphone-client-gnome/src/config/assistant.c:381
+#: ../sflphone-client-gnome/src/config/assistant.c:376
+#: ../sflphone-client-gnome/src/config/assistant.c:405
 msgid "Secure communications with _ZRTP"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "Optional email address"
 msgstr "Indirizzo email opzionale"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "This email address will be used to send your voicemail messages."
 msgstr ""
 "L'indirizzo email sarà usato per l'invio dei messaggi della segreteria "
 "telefonica."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:373
+#: ../sflphone-client-gnome/src/config/assistant.c:397
 msgid "_Email address"
 msgstr "Indirizzo _email"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "IAX2 account settings"
 msgstr "Impostazioni account IAX2"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "Network Address Translation (NAT)"
 msgstr "Network Address Translation (NAT)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "You should probably enable this if you are behind a firewall."
 msgstr "Dovrebbe essere abilitato se ci si trova dietro ad un firewall."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:476
+#: ../sflphone-client-gnome/src/config/assistant.c:505
 msgid "E_nable STUN"
 msgstr "Abilita STUN"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:483
+#: ../sflphone-client-gnome/src/config/assistant.c:512
 msgid "_STUN server"
 msgstr "Server STUN"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Account Registration"
 msgstr "Registrazione account"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Congratulations!"
 msgstr "Congratulazioni!"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:583
+#: ../sflphone-client-gnome/src/config/audioconf.c:582
 msgid "Frequency"
 msgstr "Frequenza"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:588
+#: ../sflphone-client-gnome/src/config/audioconf.c:587
 msgid "Bitrate"
 msgstr "Bitrate"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:593
+#: ../sflphone-client-gnome/src/config/audioconf.c:592
 msgid "Bandwidth"
 msgstr "Banda"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:673
+#: ../sflphone-client-gnome/src/config/audioconf.c:670
 msgid "ALSA plugin"
 msgstr "Plugin ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:695
+#: ../sflphone-client-gnome/src/config/audioconf.c:692
 msgid "Output"
 msgstr "Uscita"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:717
+#: ../sflphone-client-gnome/src/config/audioconf.c:714
 msgid "Input"
 msgstr "Ingresso"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:752
+#: ../sflphone-client-gnome/src/config/audioconf.c:749
 msgid "_Voice Activity Detection"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:762
+#: ../sflphone-client-gnome/src/config/audioconf.c:759
 msgid "_Noise Reduction (Narrow-Band Companding)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:798
+#: ../sflphone-client-gnome/src/config/audioconf.c:800
 msgid "Sound Manager"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:807
+#: ../sflphone-client-gnome/src/config/audioconf.c:809
 msgid "_Pulseaudio"
 msgstr "_Pulseaudio"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:811
+#: ../sflphone-client-gnome/src/config/audioconf.c:813
 msgid "_ALSA"
 msgstr "_ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:816
-msgid "_Mute other applications during a call"
-msgstr "Spegni l'audio delle altre applicazioni durante una chiamata"
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:823
+#: ../sflphone-client-gnome/src/config/audioconf.c:819
 msgid "ALSA settings"
 msgstr "Impostazioni ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:840
+#: ../sflphone-client-gnome/src/config/audioconf.c:836
 msgid "Codecs"
 msgstr "Codec"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:869
+#: ../sflphone-client-gnome/src/config/audioconf.c:865
 msgid "Recordings"
 msgstr "Registrazioni"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:873
+#: ../sflphone-client-gnome/src/config/audioconf.c:869
 msgid "Destination folder"
 msgstr "Cartella di destinazione"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:877
+#: ../sflphone-client-gnome/src/config/audioconf.c:873
 msgid "Select a folder"
 msgstr "Seleziona una cartella"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:883
+#: ../sflphone-client-gnome/src/config/audioconf.c:879
 msgid "Ringtones"
 msgstr "Suonerie"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:889
+#: ../sflphone-client-gnome/src/config/audioconf.c:885
 msgid "_Enable ringtones"
 msgstr "Abilita suonerie"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:895
+#: ../sflphone-client-gnome/src/config/audioconf.c:891
 msgid "Choose a ringtone"
 msgstr "Selezionare una suoneria"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:901
+#: ../sflphone-client-gnome/src/config/audioconf.c:897
 msgid "Audio Files"
 msgstr "File audio"
 
@@ -813,86 +984,66 @@ msgstr "Riscrittura numero telefonico"
 msgid "_Prefix dialed numbers with"
 msgstr "Prefisso da aggiungere ai numeri da chiamare"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:195
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:225
 msgid ""
 "This profile is used when you want to reach a remote peer simply by typing a "
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
 "also be used if no account can be matched to an incoming or outgoing call."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:274
-msgid "SIP Port"
-msgstr "SIP Port"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:281
-msgid "UDP Transport"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:319
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:440
 msgid "Desktop Notifications"
 msgstr "Notifiche"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:323
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:444
 msgid "_Enable notifications"
 msgstr "Abilita notifiche"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:329
-msgid "Enable voicemail _notifications"
-msgstr "Abilita notifiche messaggi vocali"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:341
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:450
 msgid "System Tray Icon"
 msgstr "Icona per area di notifica"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
 msgid "_Popup main window on incoming call"
 msgstr "Mostra la finestra principale all'arrivo delle chiamate"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:349
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:457
 msgid "Ne_ver popup main window"
 msgstr "Non mostrare mai la finestra principale"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:353
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
 msgid "Hide SFLphone window on _startup"
 msgstr "Nascondi la finestra di SFLphone all'avvio"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:359
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:469
 msgid "Calls History"
 msgstr "Cronologia chiamate"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:362
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:472
 msgid "_Keep my history for at least"
 msgstr "Mantieni la cronologia per almeno"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:373
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:483
 msgid "days"
 msgstr "giorni"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
-msgid "Configuration File"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
-msgid "Store SIP credentials as MD5 hash"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:423
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:536
 msgid "Preferences"
 msgstr "Preferenze"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:448
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:561
 msgid "Audio"
 msgstr "Audio"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:566
 msgid "Address Book"
 msgstr "Rubrica"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:458
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:571
 msgid "Hooks"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:468
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:581
 msgid "Direct IP calls"
 msgstr ""
 
@@ -900,11 +1051,11 @@ msgstr ""
 msgid "Advanced options for TLS"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:56
 msgid "TLS transport"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:60
 msgid ""
 "TLS transport can be used along with UDP for those calls that would\n"
 "require secure sip transactions (aka SIPS). You can configure a different\n"
@@ -913,55 +1064,55 @@ msgid ""
 "port, different one from each other\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:103
 msgid "Certificate of Authority list"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:107
 msgid "Choose a CA list file (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:115
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:131
 msgid "Public endpoint certificate file"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:119
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:135
 msgid "Choose a public endpoint certificate (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:134
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:159
 msgid "Choose a private key file (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:145
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:181
 msgid "Password for the private key"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:168
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:204
 msgid "TLS protocol method"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:202
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:238
 msgid "TLS cipher list"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:211
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:247
 msgid "Server name instance for outgoing TLS connection"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:219
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:255
 msgid "Negotiation timeout (sec:msec)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:236
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:272
 msgid "Verify incoming certificates, as a server"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:242
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:278
 msgid "Verify certificates from answer, as a client"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:248
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:284
 msgid "Require certificate for incoming tls connections"
 msgstr ""
 
@@ -969,57 +1120,69 @@ msgstr ""
 msgid "ZRTP Options"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:68
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:69
 msgid "Send Hello Hash in S_DP"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:74
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:75
 msgid "Ask User to Confirm SAS"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:80
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:81
 msgid "_Warn if ZRTP not supported"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:86
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:87
 msgid "Display SAS once for hold events"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:56
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:58
 msgid "Search all"
 msgstr "Cerca tra tutte le chiamate"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:57
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:70
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:82
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:94
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:59
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:72
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:84
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:96
 msgid "Click here to change the search type"
 msgstr "Fare clic qui per cambiare il tipo di ricerca"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:69
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:71
 msgid "Search by missed call"
 msgstr "Cerca tra le chiamate perse"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:81
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:83
 msgid "Search by incoming call"
 msgstr "Cerca tra le chiamate ricevute"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:93
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:95
 msgid "Search by outgoing call"
 msgstr "Cerca tra le chiamate effettuate"
 
+#~ msgid "IP call - %s"
+#~ msgstr "Chiamata IP diretta - %s"
+
+#~ msgid "Codec"
+#~ msgstr "Codec"
+
+#~ msgid "Network"
+#~ msgstr "Rete"
+
+#~ msgid "_Mute other applications during a call"
+#~ msgstr "Spegni l'audio delle altre applicazioni durante una chiamata"
+
+#~ msgid "SIP Port"
+#~ msgstr "SIP Port"
+
+#~ msgid "Enable voicemail _notifications"
+#~ msgstr "Abilita notifiche messaggi vocali"
+
 #~ msgid "(C) 2009 Savoir-faire Linux"
 #~ msgstr "(C) 2009 Savoir-faire Linux"
 
 #~ msgid "Jérémy Quentin"
 #~ msgstr "Jérémy Quentin"
 
-#~ msgid "Address book"
-#~ msgstr "Rubrica"
-
-#~ msgid "Call history"
-#~ msgstr "Cronologia chiamate"
-
 #~ msgid "Hang up"
 #~ msgstr "Chiudi"
 
@@ -1065,24 +1228,6 @@ msgstr "Cerca tra le chiamate effettuate"
 #~ msgid "Enable notifications"
 #~ msgstr "Attiva le notifiche"
 
-#~ msgid "History"
-#~ msgstr "Cronologia"
-
-#~ msgid "_Call"
-#~ msgstr "_Chiama"
-
-#~ msgid "_Help"
-#~ msgstr "_Aiuto"
-
-#~ msgid "_View"
-#~ msgstr "_Visualizza"
-
-#~ msgid "_Edit"
-#~ msgstr "_Modifica"
-
-#~ msgid "_Accounts"
-#~ msgstr "_Account"
-
 #~ msgid "Port"
 #~ msgstr "Port"
 
@@ -1095,9 +1240,6 @@ msgstr "Cerca tra le chiamate effettuate"
 #~ msgid "You have an incoming call from"
 #~ msgstr "Chiamata in arrivo da"
 
-#~ msgid "Transfer"
-#~ msgstr "Inoltra"
-
 #~ msgid "Hold on"
 #~ msgstr "Attesa"
 
@@ -1110,15 +1252,6 @@ msgstr "Cerca tra le chiamate effettuate"
 #~ msgid "Command to run"
 #~ msgstr "Comando da eseguire"
 
-#~ msgid "Display volume controls"
-#~ msgstr "Mostra i controlli del volume"
-
-#~ msgid "Display dialpad"
-#~ msgstr "Mostra tastiera"
-
-#~ msgid "Clear _history"
-#~ msgstr "Cancella la cronologia"
-
 #~ msgid "_Enable this account"
 #~ msgstr "Abilita questo account"
 
@@ -1131,9 +1264,6 @@ msgstr "Cerca tra le chiamate effettuate"
 #~ msgid "Stun Server"
 #~ msgstr "Server STUN"
 
-#~ msgid "Transfer to : "
-#~ msgstr "Inoltra a: "
-
 #~ msgid "Address book loading..."
 #~ msgstr "Caricamento rubrica..."
 
@@ -1149,9 +1279,6 @@ msgstr "Cerca tra le chiamate effettuate"
 #~ msgid "Incoming call"
 #~ msgstr "Chiamata in arrivo"
 
-#~ msgid "Remove the selected account"
-#~ msgstr "Elimina l'account selezionato"
-
 #~ msgid "Display photo if available"
 #~ msgstr "Mostrare foto se disponibile"
 
@@ -1167,9 +1294,6 @@ msgstr "Cerca tra le chiamate effettuate"
 #~ msgid "Show main window"
 #~ msgstr "Mostra finestra principale"
 
-#~ msgid "Clear history"
-#~ msgstr "Cancella la cronologia"
-
 #~ msgid "Prefix dialed numbers with"
 #~ msgstr "Prefisso da aggiungere al numero da chiamare"
 
@@ -1180,8 +1304,8 @@ msgstr "Cerca tra le chiamate effettuate"
 #~ msgstr "Scadenza registrazione"
 
 #~ msgid ""
-#~ "Pressing \"apply\" will restart the network layer. Otherwise, SFLPhone would "
-#~ "have to be restarted."
+#~ "Pressing \"apply\" will restart the network layer. Otherwise, SFLPhone "
+#~ "would have to be restarted."
 #~ msgstr ""
 #~ "Premendo il tasto \"Applica\" il modulo di rete verrà riavviato. In "
 #~ "alternativa occorrerebbe riavviare SFLphone."
@@ -1202,5 +1326,5 @@ msgstr "Cerca tra le chiamate effettuate"
 #~ msgctxt "EMAIL OF TRANSLATORS"
 #~ msgid "Your emails"
 #~ msgstr ""
-#~ ",,,maxime.chambreuil@gmail.com,,,,maxime.chambreuil@gmail.com,,,,maxime.chamb"
-#~ "reuil@gmail.com"
+#~ ",,,maxime.chambreuil@gmail.com,,,,maxime.chambreuil@gmail.com,,,,maxime."
+#~ "chambreuil@gmail.com"
diff --git a/lang/ko/ko.po b/lang/ko/ko.po
index 977d90d869..c7ebb3c80f 100644
--- a/lang/ko/ko.po
+++ b/lang/ko/ko.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: sflphone\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-14 11:18-0400\n"
+"POT-Creation-Date: 2009-12-03 10:22-0500\n"
 "PO-Revision-Date: 2009-10-26 20:46+0000\n"
 "Last-Translator: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>\n"
 "Language-Team: Korean <ko@li.org>\n"
@@ -60,46 +60,32 @@ msgstr ""
 msgid "Invalid"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:54
-#: ../sflphone-client-gnome/src/sflnotify.c:94
-#, c-format
-msgid "%d voice mail"
-msgid_plural "%d voice mails"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../sflphone-client-gnome/src/actions.c:83
-#: ../sflphone-client-gnome/src/actions.c:919
-#: ../sflphone-client-gnome/src/actions.c:926
+#: ../sflphone-client-gnome/src/actions.c:98
 msgid "Using account"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:89
+#: ../sflphone-client-gnome/src/actions.c:104
 msgid "No registered accounts"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:268
+#: ../sflphone-client-gnome/src/actions.c:285
 msgid ""
 "Unable to connect to the SFLphone server.\n"
 "Make sure the daemon is running."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:913
-#, c-format
-msgid "IP call - %s"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/actions.c:922
-msgid "Codec"
+#: ../sflphone-client-gnome/src/actions.c:589
+#: ../sflphone-client-gnome/src/actions.c:911
+msgid "Direct SIP call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:1119
+#: ../sflphone-client-gnome/src/actions.c:1103
 #, c-format
 msgid ""
 "<b>Error: No audio codecs found.\n"
 "\n"
-"</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
-"<b>.sflphone</b> directory in your home( <i>%s</i> )"
+"</b> SFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</"
+"b> directory in your home( <i>%s</i> )"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/errors.c:29
@@ -135,53 +121,53 @@ msgstr ""
 msgid "Do you still want to quit?"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:299
+#: ../sflphone-client-gnome/src/mainwindow.c:298
 msgid "SFLphone Error"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:391
+#: ../sflphone-client-gnome/src/mainwindow.c:392
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:392
+#: ../sflphone-client-gnome/src/mainwindow.c:393
 msgid "Secure Communication Unavailable"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:393
-#: ../sflphone-client-gnome/src/mainwindow.c:415
+#: ../sflphone-client-gnome/src/mainwindow.c:394
+#: ../sflphone-client-gnome/src/mainwindow.c:416
 msgid "Continue"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:394
-#: ../sflphone-client-gnome/src/mainwindow.c:416
-#: ../sflphone-client-gnome/src/mainwindow.c:430
+#: ../sflphone-client-gnome/src/mainwindow.c:395
+#: ../sflphone-client-gnome/src/mainwindow.c:417
+#: ../sflphone-client-gnome/src/mainwindow.c:431
 msgid "Stop Call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:413
+#: ../sflphone-client-gnome/src/mainwindow.c:414
 #, c-format
 msgid ""
 "A %s error forced the call with %s to fall under unencrypted mode.\n"
 "Exact reason: %s\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:414
+#: ../sflphone-client-gnome/src/mainwindow.c:415
 msgid "ZRTP negotiation failed"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:427
+#: ../sflphone-client-gnome/src/mainwindow.c:428
 #, c-format
 msgid ""
 "%s wants to stop using secure communication. Confirm will resume "
 "conversation without SRTP.\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:428
+#: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm Go Clear"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:429
+#: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Confirm"
 msgstr ""
 
@@ -196,6 +182,13 @@ msgstr ""
 msgid "<i>From</i> %s"
 msgstr ""
 
+#: ../sflphone-client-gnome/src/sflnotify.c:94
+#, c-format
+msgid "%d voice mail"
+msgid_plural "%d voice mails"
+msgstr[0] ""
+msgstr[1] ""
+
 #: ../sflphone-client-gnome/src/sflnotify.c:111
 #, c-format
 msgid "Calling with %s account <i>%s</i>"
@@ -243,15 +236,15 @@ msgstr ""
 msgid "Mic volume"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/statusicon.c:91
+#: ../sflphone-client-gnome/src/statusicon.c:96
 msgid "_Show main window"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/statusicon.c:126
+#: ../sflphone-client-gnome/src/statusicon.c:131
 msgid "SFLphone"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/statusicon.c:127
+#: ../sflphone-client-gnome/src/statusicon.c:132
 #, c-format
 msgid "%i account configured"
 msgid_plural "%i accounts configured"
@@ -259,202 +252,399 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: ../sflphone-client-gnome/src/toolbar.c:38
-#: ../sflphone-client-gnome/src/uimanager.c:750
+#: ../sflphone-client-gnome/src/uimanager.c:693
+#: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Voicemail"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:403
+#: ../sflphone-client-gnome/src/uimanager.c:117
+msgid "No address book selected"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:137
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "Address book"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:279
+#, c-format
+msgid "Voicemail (%i)"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:342
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:406
+#: ../sflphone-client-gnome/src/uimanager.c:345
 msgid "About SFLphone"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1028
+#: ../sflphone-client-gnome/src/uimanager.c:719
+msgid "Call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+#: ../sflphone-client-gnome/src/uimanager.c:1184
+msgid "_New call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+msgid "Place a new call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:721
+#: ../sflphone-client-gnome/src/uimanager.c:979
 msgid "_Pick up"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1040
-#: ../sflphone-client-gnome/src/uimanager.c:1081
+#: ../sflphone-client-gnome/src/uimanager.c:721
+msgid "Answer the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:722
+#: ../sflphone-client-gnome/src/uimanager.c:991
+#: ../sflphone-client-gnome/src/uimanager.c:1032
 msgid "_Hang up"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1052
-#: ../sflphone-client-gnome/src/uimanager.c:1093
-msgid "On _Hold"
+#: ../sflphone-client-gnome/src/uimanager.c:722
+msgid "Finish the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "O_n hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "Place the call on hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "O_ff hold"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1064
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "Place the call off hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:725
+#: ../sflphone-client-gnome/src/uimanager.c:1015
 msgid "_Record"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1154
-msgid "_Call back"
+#: ../sflphone-client-gnome/src/uimanager.c:725
+msgid "Record the current conversation"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1226
-msgid "_New call"
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Configuration _Assistant"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Run the configuration assistant"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:727
+msgid "Call your voicemail"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "_Close"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "Minimize to system tray"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "_Quit"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "Quit the program"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:732
+msgid "_Edit"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "_Copy"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "Copy the selection"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "_Paste"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "Paste the clipboard"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear _history"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear the call history"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "_Accounts"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "Edit your accounts"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "_Preferences"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "Change your preferences"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:740
+msgid "_View"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:743
+msgid "_Help"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Contents"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Open the manual"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:745
+msgid "About this application"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "_Transfer"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "Transfer the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "_Show toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "Show the toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "_Dialpad"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "Show the dialpad"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "_Volume controls"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "Show the volume controls"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1300
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "_History"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "Calls history"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "_Address book"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:1003
+#: ../sflphone-client-gnome/src/uimanager.c:1044
+msgid "On _Hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:1107
+msgid "_Call back"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:1258
 msgid "Edit phone number"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1311
+#: ../sflphone-client-gnome/src/uimanager.c:1269
 msgid "Edit the phone number before making a call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:164
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:180
 msgid "Account Parameters"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:173
-#: ../sflphone-client-gnome/src/config/assistant.c:294
-#: ../sflphone-client-gnome/src/config/assistant.c:402
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/assistant.c:314
+#: ../sflphone-client-gnome/src/config/assistant.c:427
 msgid "_Alias"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:181
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:197
 msgid "_Protocol"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:199
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:215
 msgid "Unknown"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:209
-#: ../sflphone-client-gnome/src/config/assistant.c:302
-#: ../sflphone-client-gnome/src/config/assistant.c:410
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
+#: ../sflphone-client-gnome/src/config/assistant.c:322
+#: ../sflphone-client-gnome/src/config/assistant.c:435
 msgid "_Host name"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:217
-#: ../sflphone-client-gnome/src/config/assistant.c:310
-#: ../sflphone-client-gnome/src/config/assistant.c:418
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:233
+#: ../sflphone-client-gnome/src/config/assistant.c:330
+#: ../sflphone-client-gnome/src/config/assistant.c:443
 msgid "_User name"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:234
-#: ../sflphone-client-gnome/src/config/assistant.c:326
-#: ../sflphone-client-gnome/src/config/assistant.c:433
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:346
+#: ../sflphone-client-gnome/src/config/assistant.c:458
 msgid "_Password"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:254
-#: ../sflphone-client-gnome/src/config/assistant.c:344
-#: ../sflphone-client-gnome/src/config/assistant.c:449
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:270
+#: ../sflphone-client-gnome/src/config/assistant.c:363
+#: ../sflphone-client-gnome/src/config/assistant.c:473
+msgid "Show password"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:274
+#: ../sflphone-client-gnome/src/config/assistant.c:368
+#: ../sflphone-client-gnome/src/config/assistant.c:478
 msgid "_Voicemail number"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:340
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:361
 msgid "Authentication"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:362
 msgid "Secret"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:605
 msgid "Credential"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:501
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:640
 msgid "Authentication name"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:512
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:651
 msgid "Password"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:535
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:909
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:201
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1056
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:321
 msgid "Security"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:547
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:213
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:333
 msgid "Use TLS transport (sips)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:552
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:218
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:338
 msgid "SRTP key exchange"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:699
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
 msgid "Disabled"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:795
 msgid "Registration"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:800
 msgid "Registration expire"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:809
 msgid "_Comply with RFC 3263"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
-msgid "Network"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:816
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:234
+msgid "Network Interface"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:830
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:249
 msgid "Local address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:301
 msgid "Local port"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:752
-msgid "Set published address and port:"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:893
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:928
+msgid "Published address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:756
-msgid "Using STUN "
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+msgid "Using STUN"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:761
-msgid "Same as local parameters"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:906
+msgid "STUN server URL"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:764
-msgid "Manually"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:914
+msgid "Same as local parameters"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:769
-msgid "Published address"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:917
+msgid "Set published address and port:"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:777
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:936
 msgid "Published port"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:785
-msgid "STUN server URL"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1027
 msgid "Account settings"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1046
 msgid "Basic"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:904
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1051
 msgid "Advanced"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:169
-msgid "Server returned \""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:164
+#, c-format
+msgid "Server returned \"%s\" (%d)"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
@@ -473,32 +663,18 @@ msgstr ""
 msgid "Configured Accounts"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
-msgid "There "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "is "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "are "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
-msgid " active account"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
-msgid "s"
-msgstr ""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:501
+#, c-format
+msgid "There is %d active account"
+msgid_plural "There are %d active accounts"
+msgstr[0] ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:507
 msgid "You have no active account"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:556
 msgid "General"
 msgstr ""
 
@@ -543,225 +719,220 @@ msgid "Select which Evolution address books to use"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:404
-#: ../sflphone-client-gnome/src/config/audioconf.c:578
+#: ../sflphone-client-gnome/src/config/audioconf.c:577
 msgid "Name"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:69
+#: ../sflphone-client-gnome/src/config/assistant.c:75
 #, c-format
 msgid "This assistant is now finished."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:71
+#: ../sflphone-client-gnome/src/config/assistant.c:77
 msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:74
+#: ../sflphone-client-gnome/src/config/assistant.c:80
 msgid "Alias"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:78
+#: ../sflphone-client-gnome/src/config/assistant.c:84
 msgid "Server"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:82
+#: ../sflphone-client-gnome/src/config/assistant.c:88
 msgid "Username"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:86
+#: ../sflphone-client-gnome/src/config/assistant.c:92
 msgid "Security: "
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:88
+#: ../sflphone-client-gnome/src/config/assistant.c:94
 msgid "SRTP/ZRTP draft-zimmermann"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:90
-#: ../sflphone-client-gnome/src/config/assistant.c:182
+#: ../sflphone-client-gnome/src/config/assistant.c:96
 msgid "None"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:210
+#: ../sflphone-client-gnome/src/config/assistant.c:229
 msgid "SFLphone account creation wizard"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:236
+#: ../sflphone-client-gnome/src/config/assistant.c:255
 msgid "Welcome to the Account creation wizard of SFLphone!"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:237
+#: ../sflphone-client-gnome/src/config/assistant.c:256
 msgid "This installation wizard will help you configure an account."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "VoIP Protocols"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "Select an account type"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:253
+#: ../sflphone-client-gnome/src/config/assistant.c:272
 msgid "SIP (Session Initiation Protocol)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:255
+#: ../sflphone-client-gnome/src/config/assistant.c:274
 msgid "IAX2 (InterAsterix Exchange)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Account"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Please select one of the following options"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:271
+#: ../sflphone-client-gnome/src/config/assistant.c:290
 msgid "Create a free SIP/IAX2 account on sflphone.org"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:273
+#: ../sflphone-client-gnome/src/config/assistant.c:292
 msgid "Register an existing SIP or IAX2 account"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
+#: ../sflphone-client-gnome/src/config/assistant.c:306
 msgid "SIP account settings"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:306
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "Please fill the following information"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:352
-#: ../sflphone-client-gnome/src/config/assistant.c:381
+#: ../sflphone-client-gnome/src/config/assistant.c:376
+#: ../sflphone-client-gnome/src/config/assistant.c:405
 msgid "Secure communications with _ZRTP"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "Optional email address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "This email address will be used to send your voicemail messages."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:373
+#: ../sflphone-client-gnome/src/config/assistant.c:397
 msgid "_Email address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "IAX2 account settings"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "Network Address Translation (NAT)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "You should probably enable this if you are behind a firewall."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:476
+#: ../sflphone-client-gnome/src/config/assistant.c:505
 msgid "E_nable STUN"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:483
+#: ../sflphone-client-gnome/src/config/assistant.c:512
 msgid "_STUN server"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Account Registration"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Congratulations!"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:583
+#: ../sflphone-client-gnome/src/config/audioconf.c:582
 msgid "Frequency"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:588
+#: ../sflphone-client-gnome/src/config/audioconf.c:587
 msgid "Bitrate"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:593
+#: ../sflphone-client-gnome/src/config/audioconf.c:592
 msgid "Bandwidth"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:673
+#: ../sflphone-client-gnome/src/config/audioconf.c:670
 msgid "ALSA plugin"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:695
+#: ../sflphone-client-gnome/src/config/audioconf.c:692
 msgid "Output"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:717
+#: ../sflphone-client-gnome/src/config/audioconf.c:714
 msgid "Input"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:752
+#: ../sflphone-client-gnome/src/config/audioconf.c:749
 msgid "_Voice Activity Detection"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:762
+#: ../sflphone-client-gnome/src/config/audioconf.c:759
 msgid "_Noise Reduction (Narrow-Band Companding)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:798
+#: ../sflphone-client-gnome/src/config/audioconf.c:800
 msgid "Sound Manager"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:807
+#: ../sflphone-client-gnome/src/config/audioconf.c:809
 msgid "_Pulseaudio"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:811
+#: ../sflphone-client-gnome/src/config/audioconf.c:813
 msgid "_ALSA"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:816
-msgid "_Mute other applications during a call"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:823
+#: ../sflphone-client-gnome/src/config/audioconf.c:819
 msgid "ALSA settings"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:840
+#: ../sflphone-client-gnome/src/config/audioconf.c:836
 msgid "Codecs"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:869
+#: ../sflphone-client-gnome/src/config/audioconf.c:865
 msgid "Recordings"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:873
+#: ../sflphone-client-gnome/src/config/audioconf.c:869
 msgid "Destination folder"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:877
+#: ../sflphone-client-gnome/src/config/audioconf.c:873
 msgid "Select a folder"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:883
+#: ../sflphone-client-gnome/src/config/audioconf.c:879
 msgid "Ringtones"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:889
+#: ../sflphone-client-gnome/src/config/audioconf.c:885
 msgid "_Enable ringtones"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:895
+#: ../sflphone-client-gnome/src/config/audioconf.c:891
 msgid "Choose a ringtone"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:901
+#: ../sflphone-client-gnome/src/config/audioconf.c:897
 msgid "Audio Files"
 msgstr ""
 
@@ -798,86 +969,66 @@ msgstr ""
 msgid "_Prefix dialed numbers with"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:195
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:225
 msgid ""
 "This profile is used when you want to reach a remote peer simply by typing a "
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
 "also be used if no account can be matched to an incoming or outgoing call."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:274
-msgid "SIP Port"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:281
-msgid "UDP Transport"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:319
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:440
 msgid "Desktop Notifications"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:323
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:444
 msgid "_Enable notifications"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:329
-msgid "Enable voicemail _notifications"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:341
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:450
 msgid "System Tray Icon"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
 msgid "_Popup main window on incoming call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:349
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:457
 msgid "Ne_ver popup main window"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:353
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
 msgid "Hide SFLphone window on _startup"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:359
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:469
 msgid "Calls History"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:362
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:472
 msgid "_Keep my history for at least"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:373
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:483
 msgid "days"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
-msgid "Configuration File"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
-msgid "Store SIP credentials as MD5 hash"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:423
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:536
 msgid "Preferences"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:448
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:561
 msgid "Audio"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:566
 msgid "Address Book"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:458
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:571
 msgid "Hooks"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:468
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:581
 msgid "Direct IP calls"
 msgstr ""
 
@@ -885,11 +1036,11 @@ msgstr ""
 msgid "Advanced options for TLS"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:56
 msgid "TLS transport"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:60
 msgid ""
 "TLS transport can be used along with UDP for those calls that would\n"
 "require secure sip transactions (aka SIPS). You can configure a different\n"
@@ -898,55 +1049,55 @@ msgid ""
 "port, different one from each other\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:103
 msgid "Certificate of Authority list"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:107
 msgid "Choose a CA list file (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:115
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:131
 msgid "Public endpoint certificate file"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:119
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:135
 msgid "Choose a public endpoint certificate (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:134
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:159
 msgid "Choose a private key file (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:145
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:181
 msgid "Password for the private key"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:168
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:204
 msgid "TLS protocol method"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:202
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:238
 msgid "TLS cipher list"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:211
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:247
 msgid "Server name instance for outgoing TLS connection"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:219
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:255
 msgid "Negotiation timeout (sec:msec)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:236
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:272
 msgid "Verify incoming certificates, as a server"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:242
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:278
 msgid "Verify certificates from answer, as a client"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:248
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:284
 msgid "Require certificate for incoming tls connections"
 msgstr ""
 
@@ -954,54 +1105,54 @@ msgstr ""
 msgid "ZRTP Options"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:68
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:69
 msgid "Send Hello Hash in S_DP"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:74
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:75
 msgid "Ask User to Confirm SAS"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:80
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:81
 msgid "_Warn if ZRTP not supported"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:86
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:87
 msgid "Display SAS once for hold events"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:56
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:58
 msgid "Search all"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:57
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:70
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:82
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:94
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:59
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:72
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:84
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:96
 msgid "Click here to change the search type"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:69
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:71
 msgid "Search by missed call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:81
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:83
 msgid "Search by incoming call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:93
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:95
 msgid "Search by outgoing call"
 msgstr ""
 
 #~ msgctxt "NAME OF TRANSLATORS"
 #~ msgid "Your names"
 #~ msgstr ""
-#~ ",Launchpad Contributions:, ,Launchpad Contributions:,Emmanuel Milou,Scion, "
-#~ ",Launchpad Contributions:,Emmanuel Milou,Scion, ,Launchpad "
+#~ ",Launchpad Contributions:, ,Launchpad Contributions:,Emmanuel Milou,"
+#~ "Scion, ,Launchpad Contributions:,Emmanuel Milou,Scion, ,Launchpad "
 #~ "Contributions:,Emmanuel Milou,Scion"
 
 #~ msgctxt "EMAIL OF TRANSLATORS"
 #~ msgid "Your emails"
 #~ msgstr ""
-#~ ",,,,emmanuel.milou@savoirfairelinux.com,,,,emmanuel.milou@savoirfairelinux.co"
-#~ "m,,,,emmanuel.milou@savoirfairelinux.com,"
+#~ ",,,,emmanuel.milou@savoirfairelinux.com,,,,emmanuel."
+#~ "milou@savoirfairelinux.com,,,,emmanuel.milou@savoirfairelinux.com,"
diff --git a/lang/merge-po-with-template.sh b/lang/merge-po-with-template.sh
new file mode 100755
index 0000000000..122b2b262a
--- /dev/null
+++ b/lang/merge-po-with-template.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+# Merge sflphone template into the existing po files
+
+for fichier in `find  .  -name *.po`
+do
+msgmerge --update $fichier sflphone.pot
+done
diff --git a/lang/pl/pl.po b/lang/pl/pl.po
index 062ad393b5..6d2a4515be 100644
--- a/lang/pl/pl.po
+++ b/lang/pl/pl.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: sflphone\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-14 11:18-0400\n"
+"POT-Creation-Date: 2009-12-03 10:22-0500\n"
 "PO-Revision-Date: 2009-11-04 12:08+0000\n"
 "Last-Translator: Mariusz Bednarz <mbednarz@bedmar.pl>\n"
 "Language-Team: Polish <pl@li.org>\n"
@@ -61,25 +61,15 @@ msgstr ""
 msgid "Invalid"
 msgstr "Niepoprawny"
 
-#: ../sflphone-client-gnome/src/actions.c:54
-#: ../sflphone-client-gnome/src/sflnotify.c:94
-#, c-format
-msgid "%d voice mail"
-msgid_plural "%d voice mails"
-msgstr[0] "%d głosowa wiadomość"
-msgstr[1] "%d głosowych wiadomości"
-
-#: ../sflphone-client-gnome/src/actions.c:83
-#: ../sflphone-client-gnome/src/actions.c:919
-#: ../sflphone-client-gnome/src/actions.c:926
+#: ../sflphone-client-gnome/src/actions.c:98
 msgid "Using account"
 msgstr "Używane konto"
 
-#: ../sflphone-client-gnome/src/actions.c:89
+#: ../sflphone-client-gnome/src/actions.c:104
 msgid "No registered accounts"
 msgstr "Brak zarejestrowanych kont"
 
-#: ../sflphone-client-gnome/src/actions.c:268
+#: ../sflphone-client-gnome/src/actions.c:285
 msgid ""
 "Unable to connect to the SFLphone server.\n"
 "Make sure the daemon is running."
@@ -87,22 +77,18 @@ msgstr ""
 "Nie można połączyć się z serwerem SFLphone.\n"
 "Upewnij się, że został uruchomiony daemon SFLphone"
 
-#: ../sflphone-client-gnome/src/actions.c:913
-#, c-format
-msgid "IP call - %s"
-msgstr "Telefonów IP - %s"
-
-#: ../sflphone-client-gnome/src/actions.c:922
-msgid "Codec"
-msgstr "Kodek"
+#: ../sflphone-client-gnome/src/actions.c:589
+#: ../sflphone-client-gnome/src/actions.c:911
+msgid "Direct SIP call"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:1119
+#: ../sflphone-client-gnome/src/actions.c:1103
 #, c-format
 msgid ""
 "<b>Error: No audio codecs found.\n"
 "\n"
-"</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
-"<b>.sflphone</b> directory in your home( <i>%s</i> )"
+"</b> SFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</"
+"b> directory in your home( <i>%s</i> )"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/errors.c:29
@@ -144,53 +130,53 @@ msgstr ""
 msgid "Do you still want to quit?"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:299
+#: ../sflphone-client-gnome/src/mainwindow.c:298
 msgid "SFLphone Error"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:391
+#: ../sflphone-client-gnome/src/mainwindow.c:392
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:392
+#: ../sflphone-client-gnome/src/mainwindow.c:393
 msgid "Secure Communication Unavailable"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:393
-#: ../sflphone-client-gnome/src/mainwindow.c:415
+#: ../sflphone-client-gnome/src/mainwindow.c:394
+#: ../sflphone-client-gnome/src/mainwindow.c:416
 msgid "Continue"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:394
-#: ../sflphone-client-gnome/src/mainwindow.c:416
-#: ../sflphone-client-gnome/src/mainwindow.c:430
+#: ../sflphone-client-gnome/src/mainwindow.c:395
+#: ../sflphone-client-gnome/src/mainwindow.c:417
+#: ../sflphone-client-gnome/src/mainwindow.c:431
 msgid "Stop Call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:413
+#: ../sflphone-client-gnome/src/mainwindow.c:414
 #, c-format
 msgid ""
 "A %s error forced the call with %s to fall under unencrypted mode.\n"
 "Exact reason: %s\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:414
+#: ../sflphone-client-gnome/src/mainwindow.c:415
 msgid "ZRTP negotiation failed"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:427
+#: ../sflphone-client-gnome/src/mainwindow.c:428
 #, c-format
 msgid ""
 "%s wants to stop using secure communication. Confirm will resume "
 "conversation without SRTP.\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:428
+#: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm Go Clear"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:429
+#: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Confirm"
 msgstr ""
 
@@ -205,6 +191,13 @@ msgstr ""
 msgid "<i>From</i> %s"
 msgstr ""
 
+#: ../sflphone-client-gnome/src/sflnotify.c:94
+#, c-format
+msgid "%d voice mail"
+msgid_plural "%d voice mails"
+msgstr[0] "%d głosowa wiadomość"
+msgstr[1] "%d głosowych wiadomości"
+
 #: ../sflphone-client-gnome/src/sflnotify.c:111
 #, c-format
 msgid "Calling with %s account <i>%s</i>"
@@ -252,15 +245,15 @@ msgstr ""
 msgid "Mic volume"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/statusicon.c:91
+#: ../sflphone-client-gnome/src/statusicon.c:96
 msgid "_Show main window"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/statusicon.c:126
+#: ../sflphone-client-gnome/src/statusicon.c:131
 msgid "SFLphone"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/statusicon.c:127
+#: ../sflphone-client-gnome/src/statusicon.c:132
 #, c-format
 msgid "%i account configured"
 msgid_plural "%i accounts configured"
@@ -268,202 +261,399 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: ../sflphone-client-gnome/src/toolbar.c:38
-#: ../sflphone-client-gnome/src/uimanager.c:750
+#: ../sflphone-client-gnome/src/uimanager.c:693
+#: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Voicemail"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:403
+#: ../sflphone-client-gnome/src/uimanager.c:117
+msgid "No address book selected"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:137
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "Address book"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:279
+#, c-format
+msgid "Voicemail (%i)"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:342
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:406
+#: ../sflphone-client-gnome/src/uimanager.c:345
 msgid "About SFLphone"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1028
+#: ../sflphone-client-gnome/src/uimanager.c:719
+msgid "Call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+#: ../sflphone-client-gnome/src/uimanager.c:1184
+msgid "_New call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+msgid "Place a new call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:721
+#: ../sflphone-client-gnome/src/uimanager.c:979
 msgid "_Pick up"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1040
-#: ../sflphone-client-gnome/src/uimanager.c:1081
+#: ../sflphone-client-gnome/src/uimanager.c:721
+msgid "Answer the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:722
+#: ../sflphone-client-gnome/src/uimanager.c:991
+#: ../sflphone-client-gnome/src/uimanager.c:1032
 msgid "_Hang up"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1052
-#: ../sflphone-client-gnome/src/uimanager.c:1093
-msgid "On _Hold"
+#: ../sflphone-client-gnome/src/uimanager.c:722
+msgid "Finish the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "O_n hold"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1064
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "Place the call on hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "O_ff hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "Place the call off hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:725
+#: ../sflphone-client-gnome/src/uimanager.c:1015
 msgid "_Record"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1154
-msgid "_Call back"
+#: ../sflphone-client-gnome/src/uimanager.c:725
+msgid "Record the current conversation"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1226
-msgid "_New call"
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Configuration _Assistant"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Run the configuration assistant"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:727
+msgid "Call your voicemail"
+msgstr "%d głosowa wiadomość"
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "_Close"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "Minimize to system tray"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "_Quit"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "Quit the program"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:732
+msgid "_Edit"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "_Copy"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "Copy the selection"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "_Paste"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "Paste the clipboard"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear _history"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear the call history"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "_Accounts"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "Edit your accounts"
+msgstr "Brak zarejestrowanych kont"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "_Preferences"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "Change your preferences"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:740
+msgid "_View"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:743
+msgid "_Help"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1300
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Contents"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Open the manual"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:745
+msgid "About this application"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "_Transfer"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "Transfer the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "_Show toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "Show the toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "_Dialpad"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "Show the dialpad"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "_Volume controls"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "Show the volume controls"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "_History"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "Calls history"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "_Address book"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:1003
+#: ../sflphone-client-gnome/src/uimanager.c:1044
+msgid "On _Hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:1107
+msgid "_Call back"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:1258
 msgid "Edit phone number"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1311
+#: ../sflphone-client-gnome/src/uimanager.c:1269
 msgid "Edit the phone number before making a call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:164
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:180
 msgid "Account Parameters"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:173
-#: ../sflphone-client-gnome/src/config/assistant.c:294
-#: ../sflphone-client-gnome/src/config/assistant.c:402
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/assistant.c:314
+#: ../sflphone-client-gnome/src/config/assistant.c:427
 msgid "_Alias"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:181
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:197
 msgid "_Protocol"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:199
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:215
 msgid "Unknown"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:209
-#: ../sflphone-client-gnome/src/config/assistant.c:302
-#: ../sflphone-client-gnome/src/config/assistant.c:410
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
+#: ../sflphone-client-gnome/src/config/assistant.c:322
+#: ../sflphone-client-gnome/src/config/assistant.c:435
 msgid "_Host name"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:217
-#: ../sflphone-client-gnome/src/config/assistant.c:310
-#: ../sflphone-client-gnome/src/config/assistant.c:418
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:233
+#: ../sflphone-client-gnome/src/config/assistant.c:330
+#: ../sflphone-client-gnome/src/config/assistant.c:443
 msgid "_User name"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:234
-#: ../sflphone-client-gnome/src/config/assistant.c:326
-#: ../sflphone-client-gnome/src/config/assistant.c:433
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:346
+#: ../sflphone-client-gnome/src/config/assistant.c:458
 msgid "_Password"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:254
-#: ../sflphone-client-gnome/src/config/assistant.c:344
-#: ../sflphone-client-gnome/src/config/assistant.c:449
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:270
+#: ../sflphone-client-gnome/src/config/assistant.c:363
+#: ../sflphone-client-gnome/src/config/assistant.c:473
+msgid "Show password"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:274
+#: ../sflphone-client-gnome/src/config/assistant.c:368
+#: ../sflphone-client-gnome/src/config/assistant.c:478
 msgid "_Voicemail number"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:340
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:361
 msgid "Authentication"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:362
 msgid "Secret"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:605
 msgid "Credential"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:501
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:640
 msgid "Authentication name"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:512
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:651
 msgid "Password"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:535
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:909
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:201
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1056
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:321
 msgid "Security"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:547
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:213
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:333
 msgid "Use TLS transport (sips)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:552
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:218
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:338
 msgid "SRTP key exchange"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:699
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
 msgid "Disabled"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:795
 msgid "Registration"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:800
 msgid "Registration expire"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:809
 msgid "_Comply with RFC 3263"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
-msgid "Network"
-msgstr ""
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:816
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:234
+msgid "Network Interface"
+msgstr "Sieć niedostępna"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:830
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:249
 msgid "Local address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:301
 msgid "Local port"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:752
-msgid "Set published address and port:"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:893
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:928
+msgid "Published address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:756
-msgid "Using STUN "
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+msgid "Using STUN"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:761
-msgid "Same as local parameters"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:906
+msgid "STUN server URL"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:764
-msgid "Manually"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:914
+msgid "Same as local parameters"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:769
-msgid "Published address"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:917
+msgid "Set published address and port:"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:777
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:936
 msgid "Published port"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:785
-msgid "STUN server URL"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1027
 msgid "Account settings"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1046
 msgid "Basic"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:904
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1051
 msgid "Advanced"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:169
-msgid "Server returned \""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:164
+#, c-format
+msgid "Server returned \"%s\" (%d)"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
@@ -482,32 +672,20 @@ msgstr ""
 msgid "Configured Accounts"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
-msgid "There "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "is "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "are "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
-msgid " active account"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
-msgid "s"
-msgstr ""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:501
+#, c-format
+msgid "There is %d active account"
+msgid_plural "There are %d active accounts"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:507
 msgid "You have no active account"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:556
 msgid "General"
 msgstr ""
 
@@ -552,225 +730,220 @@ msgid "Select which Evolution address books to use"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:404
-#: ../sflphone-client-gnome/src/config/audioconf.c:578
+#: ../sflphone-client-gnome/src/config/audioconf.c:577
 msgid "Name"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:69
+#: ../sflphone-client-gnome/src/config/assistant.c:75
 #, c-format
 msgid "This assistant is now finished."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:71
+#: ../sflphone-client-gnome/src/config/assistant.c:77
 msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:74
+#: ../sflphone-client-gnome/src/config/assistant.c:80
 msgid "Alias"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:78
+#: ../sflphone-client-gnome/src/config/assistant.c:84
 msgid "Server"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:82
+#: ../sflphone-client-gnome/src/config/assistant.c:88
 msgid "Username"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:86
+#: ../sflphone-client-gnome/src/config/assistant.c:92
 msgid "Security: "
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:88
+#: ../sflphone-client-gnome/src/config/assistant.c:94
 msgid "SRTP/ZRTP draft-zimmermann"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:90
-#: ../sflphone-client-gnome/src/config/assistant.c:182
+#: ../sflphone-client-gnome/src/config/assistant.c:96
 msgid "None"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:210
+#: ../sflphone-client-gnome/src/config/assistant.c:229
 msgid "SFLphone account creation wizard"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:236
+#: ../sflphone-client-gnome/src/config/assistant.c:255
 msgid "Welcome to the Account creation wizard of SFLphone!"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:237
+#: ../sflphone-client-gnome/src/config/assistant.c:256
 msgid "This installation wizard will help you configure an account."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "VoIP Protocols"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "Select an account type"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:253
+#: ../sflphone-client-gnome/src/config/assistant.c:272
 msgid "SIP (Session Initiation Protocol)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:255
+#: ../sflphone-client-gnome/src/config/assistant.c:274
 msgid "IAX2 (InterAsterix Exchange)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Account"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Please select one of the following options"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:271
+#: ../sflphone-client-gnome/src/config/assistant.c:290
 msgid "Create a free SIP/IAX2 account on sflphone.org"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:273
+#: ../sflphone-client-gnome/src/config/assistant.c:292
 msgid "Register an existing SIP or IAX2 account"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
+#: ../sflphone-client-gnome/src/config/assistant.c:306
 msgid "SIP account settings"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:306
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "Please fill the following information"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:352
-#: ../sflphone-client-gnome/src/config/assistant.c:381
+#: ../sflphone-client-gnome/src/config/assistant.c:376
+#: ../sflphone-client-gnome/src/config/assistant.c:405
 msgid "Secure communications with _ZRTP"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "Optional email address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "This email address will be used to send your voicemail messages."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:373
+#: ../sflphone-client-gnome/src/config/assistant.c:397
 msgid "_Email address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "IAX2 account settings"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "Network Address Translation (NAT)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "You should probably enable this if you are behind a firewall."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:476
+#: ../sflphone-client-gnome/src/config/assistant.c:505
 msgid "E_nable STUN"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:483
+#: ../sflphone-client-gnome/src/config/assistant.c:512
 msgid "_STUN server"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Account Registration"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Congratulations!"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:583
+#: ../sflphone-client-gnome/src/config/audioconf.c:582
 msgid "Frequency"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:588
+#: ../sflphone-client-gnome/src/config/audioconf.c:587
 msgid "Bitrate"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:593
+#: ../sflphone-client-gnome/src/config/audioconf.c:592
 msgid "Bandwidth"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:673
+#: ../sflphone-client-gnome/src/config/audioconf.c:670
 msgid "ALSA plugin"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:695
+#: ../sflphone-client-gnome/src/config/audioconf.c:692
 msgid "Output"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:717
+#: ../sflphone-client-gnome/src/config/audioconf.c:714
 msgid "Input"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:752
+#: ../sflphone-client-gnome/src/config/audioconf.c:749
 msgid "_Voice Activity Detection"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:762
+#: ../sflphone-client-gnome/src/config/audioconf.c:759
 msgid "_Noise Reduction (Narrow-Band Companding)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:798
+#: ../sflphone-client-gnome/src/config/audioconf.c:800
 msgid "Sound Manager"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:807
+#: ../sflphone-client-gnome/src/config/audioconf.c:809
 msgid "_Pulseaudio"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:811
+#: ../sflphone-client-gnome/src/config/audioconf.c:813
 msgid "_ALSA"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:816
-msgid "_Mute other applications during a call"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:823
+#: ../sflphone-client-gnome/src/config/audioconf.c:819
 msgid "ALSA settings"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:840
+#: ../sflphone-client-gnome/src/config/audioconf.c:836
 msgid "Codecs"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:869
+#: ../sflphone-client-gnome/src/config/audioconf.c:865
 msgid "Recordings"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:873
+#: ../sflphone-client-gnome/src/config/audioconf.c:869
 msgid "Destination folder"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:877
+#: ../sflphone-client-gnome/src/config/audioconf.c:873
 msgid "Select a folder"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:883
+#: ../sflphone-client-gnome/src/config/audioconf.c:879
 msgid "Ringtones"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:889
+#: ../sflphone-client-gnome/src/config/audioconf.c:885
 msgid "_Enable ringtones"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:895
+#: ../sflphone-client-gnome/src/config/audioconf.c:891
 msgid "Choose a ringtone"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:901
+#: ../sflphone-client-gnome/src/config/audioconf.c:897
 msgid "Audio Files"
 msgstr ""
 
@@ -807,86 +980,66 @@ msgstr ""
 msgid "_Prefix dialed numbers with"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:195
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:225
 msgid ""
 "This profile is used when you want to reach a remote peer simply by typing a "
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
 "also be used if no account can be matched to an incoming or outgoing call."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:274
-msgid "SIP Port"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:281
-msgid "UDP Transport"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:319
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:440
 msgid "Desktop Notifications"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:323
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:444
 msgid "_Enable notifications"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:329
-msgid "Enable voicemail _notifications"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:341
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:450
 msgid "System Tray Icon"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
 msgid "_Popup main window on incoming call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:349
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:457
 msgid "Ne_ver popup main window"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:353
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
 msgid "Hide SFLphone window on _startup"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:359
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:469
 msgid "Calls History"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:362
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:472
 msgid "_Keep my history for at least"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:373
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:483
 msgid "days"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
-msgid "Configuration File"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
-msgid "Store SIP credentials as MD5 hash"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:423
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:536
 msgid "Preferences"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:448
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:561
 msgid "Audio"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:566
 msgid "Address Book"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:458
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:571
 msgid "Hooks"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:468
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:581
 msgid "Direct IP calls"
 msgstr ""
 
@@ -894,11 +1047,11 @@ msgstr ""
 msgid "Advanced options for TLS"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:56
 msgid "TLS transport"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:60
 msgid ""
 "TLS transport can be used along with UDP for those calls that would\n"
 "require secure sip transactions (aka SIPS). You can configure a different\n"
@@ -907,55 +1060,55 @@ msgid ""
 "port, different one from each other\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:103
 msgid "Certificate of Authority list"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:107
 msgid "Choose a CA list file (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:115
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:131
 msgid "Public endpoint certificate file"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:119
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:135
 msgid "Choose a public endpoint certificate (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:134
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:159
 msgid "Choose a private key file (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:145
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:181
 msgid "Password for the private key"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:168
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:204
 msgid "TLS protocol method"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:202
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:238
 msgid "TLS cipher list"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:211
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:247
 msgid "Server name instance for outgoing TLS connection"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:219
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:255
 msgid "Negotiation timeout (sec:msec)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:236
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:272
 msgid "Verify incoming certificates, as a server"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:242
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:278
 msgid "Verify certificates from answer, as a client"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:248
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:284
 msgid "Require certificate for incoming tls connections"
 msgstr ""
 
@@ -963,54 +1116,60 @@ msgstr ""
 msgid "ZRTP Options"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:68
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:69
 msgid "Send Hello Hash in S_DP"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:74
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:75
 msgid "Ask User to Confirm SAS"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:80
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:81
 msgid "_Warn if ZRTP not supported"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:86
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:87
 msgid "Display SAS once for hold events"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:56
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:58
 msgid "Search all"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:57
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:70
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:82
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:94
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:59
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:72
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:84
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:96
 msgid "Click here to change the search type"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:69
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:71
 msgid "Search by missed call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:81
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:83
 msgid "Search by incoming call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:93
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:95
 msgid "Search by outgoing call"
 msgstr ""
 
+#~ msgid "IP call - %s"
+#~ msgstr "Telefonów IP - %s"
+
+#~ msgid "Codec"
+#~ msgstr "Kodek"
+
 #~ msgctxt "NAME OF TRANSLATORS"
 #~ msgid "Your names"
 #~ msgstr ""
-#~ ",Launchpad Contributions:,Maxime Chambreuil, ,Launchpad "
-#~ "Contributions:,Maxime Chambreuil, ,Launchpad Contributions:,Maxime "
-#~ "Chambreuil, ,Launchpad Contributions:,Mariusz Bednarz,Maxime Chambreuil"
+#~ ",Launchpad Contributions:,Maxime Chambreuil, ,Launchpad Contributions:,"
+#~ "Maxime Chambreuil, ,Launchpad Contributions:,Maxime Chambreuil, ,"
+#~ "Launchpad Contributions:,Mariusz Bednarz,Maxime Chambreuil"
 
 #~ msgctxt "EMAIL OF TRANSLATORS"
 #~ msgid "Your emails"
 #~ msgstr ""
-#~ ",,maxime.chambreuil@gmail.com,,,maxime.chambreuil@gmail.com,,,maxime.chambreu"
-#~ "il@gmail.com,,,mbednarz@bedmar.pl,maxime.chambreuil@gmail.com"
+#~ ",,maxime.chambreuil@gmail.com,,,maxime.chambreuil@gmail.com,,,maxime."
+#~ "chambreuil@gmail.com,,,mbednarz@bedmar.pl,maxime.chambreuil@gmail.com"
diff --git a/lang/pt/pt.po b/lang/pt/pt.po
index 436992737a..ef406f9445 100644
--- a/lang/pt/pt.po
+++ b/lang/pt/pt.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-14 11:18-0400\n"
+"POT-Creation-Date: 2009-12-03 10:22-0500\n"
 "PO-Revision-Date: 2009-10-26 20:46+0000\n"
 "Last-Translator: Maxime Chambreuil <maxime.chambreuil@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -60,46 +60,32 @@ msgstr ""
 msgid "Invalid"
 msgstr "Inválido"
 
-#: ../sflphone-client-gnome/src/actions.c:54
-#: ../sflphone-client-gnome/src/sflnotify.c:94
-#, c-format
-msgid "%d voice mail"
-msgid_plural "%d voice mails"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../sflphone-client-gnome/src/actions.c:83
-#: ../sflphone-client-gnome/src/actions.c:919
-#: ../sflphone-client-gnome/src/actions.c:926
+#: ../sflphone-client-gnome/src/actions.c:98
 msgid "Using account"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:89
+#: ../sflphone-client-gnome/src/actions.c:104
 msgid "No registered accounts"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:268
+#: ../sflphone-client-gnome/src/actions.c:285
 msgid ""
 "Unable to connect to the SFLphone server.\n"
 "Make sure the daemon is running."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:913
-#, c-format
-msgid "IP call - %s"
+#: ../sflphone-client-gnome/src/actions.c:589
+#: ../sflphone-client-gnome/src/actions.c:911
+msgid "Direct SIP call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:922
-msgid "Codec"
-msgstr "Codec"
-
-#: ../sflphone-client-gnome/src/actions.c:1119
+#: ../sflphone-client-gnome/src/actions.c:1103
 #, c-format
 msgid ""
 "<b>Error: No audio codecs found.\n"
 "\n"
-"</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
-"<b>.sflphone</b> directory in your home( <i>%s</i> )"
+"</b> SFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</"
+"b> directory in your home( <i>%s</i> )"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/errors.c:29
@@ -135,53 +121,53 @@ msgstr ""
 msgid "Do you still want to quit?"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:299
+#: ../sflphone-client-gnome/src/mainwindow.c:298
 msgid "SFLphone Error"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:391
+#: ../sflphone-client-gnome/src/mainwindow.c:392
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:392
+#: ../sflphone-client-gnome/src/mainwindow.c:393
 msgid "Secure Communication Unavailable"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:393
-#: ../sflphone-client-gnome/src/mainwindow.c:415
+#: ../sflphone-client-gnome/src/mainwindow.c:394
+#: ../sflphone-client-gnome/src/mainwindow.c:416
 msgid "Continue"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:394
-#: ../sflphone-client-gnome/src/mainwindow.c:416
-#: ../sflphone-client-gnome/src/mainwindow.c:430
+#: ../sflphone-client-gnome/src/mainwindow.c:395
+#: ../sflphone-client-gnome/src/mainwindow.c:417
+#: ../sflphone-client-gnome/src/mainwindow.c:431
 msgid "Stop Call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:413
+#: ../sflphone-client-gnome/src/mainwindow.c:414
 #, c-format
 msgid ""
 "A %s error forced the call with %s to fall under unencrypted mode.\n"
 "Exact reason: %s\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:414
+#: ../sflphone-client-gnome/src/mainwindow.c:415
 msgid "ZRTP negotiation failed"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:427
+#: ../sflphone-client-gnome/src/mainwindow.c:428
 #, c-format
 msgid ""
 "%s wants to stop using secure communication. Confirm will resume "
 "conversation without SRTP.\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:428
+#: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm Go Clear"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:429
+#: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Confirm"
 msgstr ""
 
@@ -196,6 +182,13 @@ msgstr "conta %s : %s"
 msgid "<i>From</i> %s"
 msgstr ""
 
+#: ../sflphone-client-gnome/src/sflnotify.c:94
+#, c-format
+msgid "%d voice mail"
+msgid_plural "%d voice mails"
+msgstr[0] ""
+msgstr[1] ""
+
 #: ../sflphone-client-gnome/src/sflnotify.c:111
 #, c-format
 msgid "Calling with %s account <i>%s</i>"
@@ -243,15 +236,15 @@ msgstr ""
 msgid "Mic volume"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/statusicon.c:91
+#: ../sflphone-client-gnome/src/statusicon.c:96
 msgid "_Show main window"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/statusicon.c:126
+#: ../sflphone-client-gnome/src/statusicon.c:131
 msgid "SFLphone"
 msgstr "SFLphone"
 
-#: ../sflphone-client-gnome/src/statusicon.c:127
+#: ../sflphone-client-gnome/src/statusicon.c:132
 #, c-format
 msgid "%i account configured"
 msgid_plural "%i accounts configured"
@@ -259,202 +252,398 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: ../sflphone-client-gnome/src/toolbar.c:38
-#: ../sflphone-client-gnome/src/uimanager.c:750
+#: ../sflphone-client-gnome/src/uimanager.c:693
+#: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Voicemail"
 msgstr "Correio de voz"
 
-#: ../sflphone-client-gnome/src/uimanager.c:403
+#: ../sflphone-client-gnome/src/uimanager.c:117
+msgid "No address book selected"
+msgstr "Livro de endereços"
+
+#: ../sflphone-client-gnome/src/uimanager.c:137
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "Address book"
+msgstr "Livro de endereços"
+
+#: ../sflphone-client-gnome/src/uimanager.c:279
+msgid "Voicemail (%i)"
+msgstr "Correio de voz (%i)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:342
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:406
+#: ../sflphone-client-gnome/src/uimanager.c:345
 msgid "About SFLphone"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1028
+#: ../sflphone-client-gnome/src/uimanager.c:719
+msgid "Call"
+msgstr "_Chamar"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+#: ../sflphone-client-gnome/src/uimanager.c:1184
+msgid "_New call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+msgid "Place a new call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:721
+#: ../sflphone-client-gnome/src/uimanager.c:979
 msgid "_Pick up"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1040
-#: ../sflphone-client-gnome/src/uimanager.c:1081
+#: ../sflphone-client-gnome/src/uimanager.c:721
+msgid "Answer the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:722
+#: ../sflphone-client-gnome/src/uimanager.c:991
+#: ../sflphone-client-gnome/src/uimanager.c:1032
 msgid "_Hang up"
 msgstr "_Desligar"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1052
-#: ../sflphone-client-gnome/src/uimanager.c:1093
-msgid "On _Hold"
+#: ../sflphone-client-gnome/src/uimanager.c:722
+msgid "Finish the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "O_n hold"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1064
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "Place the call on hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "O_ff hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "Place the call off hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:725
+#: ../sflphone-client-gnome/src/uimanager.c:1015
 msgid "_Record"
 msgstr "_Gravar"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1154
-msgid "_Call back"
+#: ../sflphone-client-gnome/src/uimanager.c:725
+msgid "Record the current conversation"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1226
-msgid "_New call"
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Configuration _Assistant"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Run the configuration assistant"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:727
+msgid "Call your voicemail"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1300
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "_Close"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "Minimize to system tray"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "_Quit"
+msgstr "_Editar"
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "Quit the program"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:732
+msgid "_Edit"
+msgstr "_Editar"
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "_Copy"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "Copy the selection"
+msgstr "Remover a conta seleccionada"
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "_Paste"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "Paste the clipboard"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear _history"
+msgstr "Histórico de chamadas"
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear the call history"
+msgstr "Histórico de chamadas"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "_Accounts"
+msgstr "_Contas"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "Edit your accounts"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "_Preferences"
+msgstr "Preferências"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "Change your preferences"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:740
+msgid "_View"
+msgstr "_Ver"
+
+#: ../sflphone-client-gnome/src/uimanager.c:743
+msgid "_Help"
+msgstr "_Ajuda"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Contents"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Open the manual"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:745
+msgid "About this application"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "_Transfer"
+msgstr "Transferir"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "Transfer the call"
+msgstr "Transferir"
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "_Show toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "Show the toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "_Dialpad"
+msgstr "Marca_dor"
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "Show the dialpad"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "_Volume controls"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "Show the volume controls"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "_History"
+msgstr "Histórico"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "Calls history"
+msgstr "Histórico de chamadas"
+
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "_Address book"
+msgstr "Livro de endereços"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1003
+#: ../sflphone-client-gnome/src/uimanager.c:1044
+msgid "On _Hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:1107
+msgid "_Call back"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:1258
 msgid "Edit phone number"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1311
+#: ../sflphone-client-gnome/src/uimanager.c:1269
 msgid "Edit the phone number before making a call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:164
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:180
 msgid "Account Parameters"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:173
-#: ../sflphone-client-gnome/src/config/assistant.c:294
-#: ../sflphone-client-gnome/src/config/assistant.c:402
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/assistant.c:314
+#: ../sflphone-client-gnome/src/config/assistant.c:427
 msgid "_Alias"
 msgstr "_Nomear"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:181
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:197
 msgid "_Protocol"
 msgstr "_Protocolo"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:199
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:215
 msgid "Unknown"
 msgstr "Desconhecido"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:209
-#: ../sflphone-client-gnome/src/config/assistant.c:302
-#: ../sflphone-client-gnome/src/config/assistant.c:410
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
+#: ../sflphone-client-gnome/src/config/assistant.c:322
+#: ../sflphone-client-gnome/src/config/assistant.c:435
 msgid "_Host name"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:217
-#: ../sflphone-client-gnome/src/config/assistant.c:310
-#: ../sflphone-client-gnome/src/config/assistant.c:418
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:233
+#: ../sflphone-client-gnome/src/config/assistant.c:330
+#: ../sflphone-client-gnome/src/config/assistant.c:443
 msgid "_User name"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:234
-#: ../sflphone-client-gnome/src/config/assistant.c:326
-#: ../sflphone-client-gnome/src/config/assistant.c:433
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:346
+#: ../sflphone-client-gnome/src/config/assistant.c:458
 msgid "_Password"
 msgstr "_Senha"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:254
-#: ../sflphone-client-gnome/src/config/assistant.c:344
-#: ../sflphone-client-gnome/src/config/assistant.c:449
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:270
+#: ../sflphone-client-gnome/src/config/assistant.c:363
+#: ../sflphone-client-gnome/src/config/assistant.c:473
+msgid "Show password"
+msgstr "Senha"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:274
+#: ../sflphone-client-gnome/src/config/assistant.c:368
+#: ../sflphone-client-gnome/src/config/assistant.c:478
 msgid "_Voicemail number"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:340
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:361
 msgid "Authentication"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:362
 msgid "Secret"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:605
 msgid "Credential"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:501
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:640
 msgid "Authentication name"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:512
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:651
 msgid "Password"
 msgstr "Senha"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:535
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:909
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:201
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1056
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:321
 msgid "Security"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:547
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:213
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:333
 msgid "Use TLS transport (sips)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:552
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:218
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:338
 msgid "SRTP key exchange"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:699
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
 msgid "Disabled"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:795
 msgid "Registration"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:800
 msgid "Registration expire"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:809
 msgid "_Comply with RFC 3263"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
-msgid "Network"
-msgstr "Rede"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:816
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:234
+msgid "Network Interface"
+msgstr "A rede está inacessível"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:830
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:249
 msgid "Local address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:301
 msgid "Local port"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:752
-msgid "Set published address and port:"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:893
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:928
+msgid "Published address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:756
-msgid "Using STUN "
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+msgid "Using STUN"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:761
-msgid "Same as local parameters"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:906
+msgid "STUN server URL"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:764
-msgid "Manually"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:914
+msgid "Same as local parameters"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:769
-msgid "Published address"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:917
+msgid "Set published address and port:"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:777
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:936
 msgid "Published port"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:785
-msgid "STUN server URL"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1027
 msgid "Account settings"
 msgstr "Configurações da conta"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1046
 msgid "Basic"
 msgstr "Básico"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:904
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1051
 msgid "Advanced"
 msgstr "Avançado"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:169
-msgid "Server returned \""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:164
+#, c-format
+msgid "Server returned \"%s\" (%d)"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
@@ -473,32 +662,19 @@ msgstr "Contas"
 msgid "Configured Accounts"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
-msgid "There "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "is "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "are "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
-msgid " active account"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
-msgid "s"
-msgstr ""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:501
+#, c-format
+msgid "There is %d active account"
+msgid_plural "There are %d active accounts"
+msgstr[0] ""
+msgstr[1] ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:507
 msgid "You have no active account"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:556
 msgid "General"
 msgstr "Geral"
 
@@ -543,225 +719,220 @@ msgid "Select which Evolution address books to use"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:404
-#: ../sflphone-client-gnome/src/config/audioconf.c:578
+#: ../sflphone-client-gnome/src/config/audioconf.c:577
 msgid "Name"
 msgstr "Nome"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:69
+#: ../sflphone-client-gnome/src/config/assistant.c:75
 #, c-format
 msgid "This assistant is now finished."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:71
+#: ../sflphone-client-gnome/src/config/assistant.c:77
 msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:74
+#: ../sflphone-client-gnome/src/config/assistant.c:80
 msgid "Alias"
 msgstr "Nome Alternativo"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:78
+#: ../sflphone-client-gnome/src/config/assistant.c:84
 msgid "Server"
 msgstr "Servidor"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:82
+#: ../sflphone-client-gnome/src/config/assistant.c:88
 msgid "Username"
 msgstr "Utilizador"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:86
+#: ../sflphone-client-gnome/src/config/assistant.c:92
 msgid "Security: "
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:88
+#: ../sflphone-client-gnome/src/config/assistant.c:94
 msgid "SRTP/ZRTP draft-zimmermann"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:90
-#: ../sflphone-client-gnome/src/config/assistant.c:182
+#: ../sflphone-client-gnome/src/config/assistant.c:96
 msgid "None"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:210
+#: ../sflphone-client-gnome/src/config/assistant.c:229
 msgid "SFLphone account creation wizard"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:236
+#: ../sflphone-client-gnome/src/config/assistant.c:255
 msgid "Welcome to the Account creation wizard of SFLphone!"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:237
+#: ../sflphone-client-gnome/src/config/assistant.c:256
 msgid "This installation wizard will help you configure an account."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "VoIP Protocols"
 msgstr "Protocolos VoIP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "Select an account type"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:253
+#: ../sflphone-client-gnome/src/config/assistant.c:272
 msgid "SIP (Session Initiation Protocol)"
 msgstr "SIP (Session Initiation Protocol)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:255
+#: ../sflphone-client-gnome/src/config/assistant.c:274
 msgid "IAX2 (InterAsterix Exchange)"
 msgstr "IAX2 (InterAsterix Exchange)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Account"
 msgstr "Conta"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Please select one of the following options"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:271
+#: ../sflphone-client-gnome/src/config/assistant.c:290
 msgid "Create a free SIP/IAX2 account on sflphone.org"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:273
+#: ../sflphone-client-gnome/src/config/assistant.c:292
 msgid "Register an existing SIP or IAX2 account"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
+#: ../sflphone-client-gnome/src/config/assistant.c:306
 msgid "SIP account settings"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:306
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "Please fill the following information"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:352
-#: ../sflphone-client-gnome/src/config/assistant.c:381
+#: ../sflphone-client-gnome/src/config/assistant.c:376
+#: ../sflphone-client-gnome/src/config/assistant.c:405
 msgid "Secure communications with _ZRTP"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "Optional email address"
 msgstr "Endereço de email opcional"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "This email address will be used to send your voicemail messages."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:373
+#: ../sflphone-client-gnome/src/config/assistant.c:397
 msgid "_Email address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "IAX2 account settings"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "Network Address Translation (NAT)"
 msgstr "Network Address Translation (NAT)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "You should probably enable this if you are behind a firewall."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:476
+#: ../sflphone-client-gnome/src/config/assistant.c:505
 msgid "E_nable STUN"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:483
+#: ../sflphone-client-gnome/src/config/assistant.c:512
 msgid "_STUN server"
 msgstr "_Servidor STUN"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Account Registration"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Congratulations!"
 msgstr "Parabéns!"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:583
+#: ../sflphone-client-gnome/src/config/audioconf.c:582
 msgid "Frequency"
 msgstr "Frequência"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:588
+#: ../sflphone-client-gnome/src/config/audioconf.c:587
 msgid "Bitrate"
 msgstr "Taxa de Dados"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:593
+#: ../sflphone-client-gnome/src/config/audioconf.c:592
 msgid "Bandwidth"
 msgstr "Largura de Banda"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:673
+#: ../sflphone-client-gnome/src/config/audioconf.c:670
 msgid "ALSA plugin"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:695
+#: ../sflphone-client-gnome/src/config/audioconf.c:692
 msgid "Output"
 msgstr "Saída"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:717
+#: ../sflphone-client-gnome/src/config/audioconf.c:714
 msgid "Input"
 msgstr "Entrada"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:752
+#: ../sflphone-client-gnome/src/config/audioconf.c:749
 msgid "_Voice Activity Detection"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:762
+#: ../sflphone-client-gnome/src/config/audioconf.c:759
 msgid "_Noise Reduction (Narrow-Band Companding)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:798
+#: ../sflphone-client-gnome/src/config/audioconf.c:800
 msgid "Sound Manager"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:807
+#: ../sflphone-client-gnome/src/config/audioconf.c:809
 msgid "_Pulseaudio"
 msgstr "_Pulseaudio"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:811
+#: ../sflphone-client-gnome/src/config/audioconf.c:813
 msgid "_ALSA"
 msgstr "_ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:816
-msgid "_Mute other applications during a call"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:823
+#: ../sflphone-client-gnome/src/config/audioconf.c:819
 msgid "ALSA settings"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:840
+#: ../sflphone-client-gnome/src/config/audioconf.c:836
 msgid "Codecs"
 msgstr "Codecs"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:869
+#: ../sflphone-client-gnome/src/config/audioconf.c:865
 msgid "Recordings"
 msgstr "Gravações"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:873
+#: ../sflphone-client-gnome/src/config/audioconf.c:869
 msgid "Destination folder"
 msgstr "Pasta de destino"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:877
+#: ../sflphone-client-gnome/src/config/audioconf.c:873
 msgid "Select a folder"
 msgstr "Seleccione uma pasta"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:883
+#: ../sflphone-client-gnome/src/config/audioconf.c:879
 msgid "Ringtones"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:889
+#: ../sflphone-client-gnome/src/config/audioconf.c:885
 msgid "_Enable ringtones"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:895
+#: ../sflphone-client-gnome/src/config/audioconf.c:891
 msgid "Choose a ringtone"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:901
+#: ../sflphone-client-gnome/src/config/audioconf.c:897
 msgid "Audio Files"
 msgstr "Ficheiros Áudio"
 
@@ -798,86 +969,66 @@ msgstr ""
 msgid "_Prefix dialed numbers with"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:195
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:225
 msgid ""
 "This profile is used when you want to reach a remote peer simply by typing a "
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
 "also be used if no account can be matched to an incoming or outgoing call."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:274
-msgid "SIP Port"
-msgstr "Porta SIP"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:281
-msgid "UDP Transport"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:319
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:440
 msgid "Desktop Notifications"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:323
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:444
 msgid "_Enable notifications"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:329
-msgid "Enable voicemail _notifications"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:341
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:450
 msgid "System Tray Icon"
 msgstr "Ícone de Notificação"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
 msgid "_Popup main window on incoming call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:349
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:457
 msgid "Ne_ver popup main window"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:353
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
 msgid "Hide SFLphone window on _startup"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:359
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:469
 msgid "Calls History"
 msgstr "Histórico de Chamadas"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:362
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:472
 msgid "_Keep my history for at least"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:373
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:483
 msgid "days"
 msgstr "dias"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
-msgid "Configuration File"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
-msgid "Store SIP credentials as MD5 hash"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:423
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:536
 msgid "Preferences"
 msgstr "Preferências"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:448
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:561
 msgid "Audio"
 msgstr "Áudio"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:566
 msgid "Address Book"
 msgstr "Livro de Endereços"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:458
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:571
 msgid "Hooks"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:468
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:581
 msgid "Direct IP calls"
 msgstr ""
 
@@ -885,11 +1036,11 @@ msgstr ""
 msgid "Advanced options for TLS"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:56
 msgid "TLS transport"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:60
 msgid ""
 "TLS transport can be used along with UDP for those calls that would\n"
 "require secure sip transactions (aka SIPS). You can configure a different\n"
@@ -898,55 +1049,55 @@ msgid ""
 "port, different one from each other\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:103
 msgid "Certificate of Authority list"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:107
 msgid "Choose a CA list file (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:115
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:131
 msgid "Public endpoint certificate file"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:119
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:135
 msgid "Choose a public endpoint certificate (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:134
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:159
 msgid "Choose a private key file (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:145
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:181
 msgid "Password for the private key"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:168
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:204
 msgid "TLS protocol method"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:202
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:238
 msgid "TLS cipher list"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:211
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:247
 msgid "Server name instance for outgoing TLS connection"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:219
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:255
 msgid "Negotiation timeout (sec:msec)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:236
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:272
 msgid "Verify incoming certificates, as a server"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:242
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:278
 msgid "Verify certificates from answer, as a client"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:248
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:284
 msgid "Require certificate for incoming tls connections"
 msgstr ""
 
@@ -954,45 +1105,54 @@ msgstr ""
 msgid "ZRTP Options"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:68
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:69
 msgid "Send Hello Hash in S_DP"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:74
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:75
 msgid "Ask User to Confirm SAS"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:80
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:81
 msgid "_Warn if ZRTP not supported"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:86
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:87
 msgid "Display SAS once for hold events"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:56
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:58
 msgid "Search all"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:57
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:70
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:82
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:94
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:59
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:72
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:84
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:96
 msgid "Click here to change the search type"
 msgstr "Clique aqui para alterar o tipo de procura"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:69
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:71
 msgid "Search by missed call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:81
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:83
 msgid "Search by incoming call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:93
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:95
 msgid "Search by outgoing call"
 msgstr ""
 
+#~ msgid "Codec"
+#~ msgstr "Codec"
+
+#~ msgid "Network"
+#~ msgstr "Rede"
+
+#~ msgid "SIP Port"
+#~ msgstr "Porta SIP"
+
 #~ msgid "Email address"
 #~ msgstr "Endereço de correiro electrónico"
 
@@ -1005,27 +1165,15 @@ msgstr ""
 #~ msgid "Incoming call"
 #~ msgstr "Chamada recebida"
 
-#~ msgid "Call history"
-#~ msgstr "Histórico de chamadas"
-
-#~ msgid "Address book"
-#~ msgstr "Livro de endereços"
-
 #~ msgid "Pick up"
 #~ msgstr "Atender"
 
 #~ msgid "Record"
 #~ msgstr "Gravar"
 
-#~ msgid "Transfer"
-#~ msgstr "Transferir"
-
 #~ msgid "Hang up"
 #~ msgstr "Desligar"
 
-#~ msgid "Remove the selected account"
-#~ msgstr "Remover a conta seleccionada"
-
 #~ msgid "Remove"
 #~ msgstr "Remover"
 
@@ -1065,27 +1213,6 @@ msgstr ""
 #~ msgid "Connection"
 #~ msgstr "Connecção"
 
-#~ msgid "History"
-#~ msgstr "Histórico"
-
-#~ msgid "_Help"
-#~ msgstr "_Ajuda"
-
-#~ msgid "_Call"
-#~ msgstr "_Chamar"
-
-#~ msgid "_Dialpad"
-#~ msgstr "Marca_dor"
-
-#~ msgid "_Edit"
-#~ msgstr "_Editar"
-
-#~ msgid "_Accounts"
-#~ msgstr "_Contas"
-
-#~ msgid "_View"
-#~ msgstr "_Ver"
-
 #~ msgid "PulseAudio sound server"
 #~ msgstr "Servidor de som PulseAudio"
 
@@ -1110,13 +1237,13 @@ msgstr ""
 #~ msgctxt "NAME OF TRANSLATORS"
 #~ msgid "Your names"
 #~ msgstr ""
-#~ ",Launchpad Contributions:,Maxime Chambreuil, ,Launchpad "
-#~ "Contributions:,Maxime Chambreuil,Tiago Silva, ,Launchpad "
-#~ "Contributions:,Maxime Chambreuil,Tiago Silva, ,Launchpad "
-#~ "Contributions:,Maxime Chambreuil,Tiago Silva"
+#~ ",Launchpad Contributions:,Maxime Chambreuil, ,Launchpad Contributions:,"
+#~ "Maxime Chambreuil,Tiago Silva, ,Launchpad Contributions:,Maxime "
+#~ "Chambreuil,Tiago Silva, ,Launchpad Contributions:,Maxime Chambreuil,Tiago "
+#~ "Silva"
 
 #~ msgctxt "EMAIL OF TRANSLATORS"
 #~ msgid "Your emails"
 #~ msgstr ""
-#~ ",,maxime.chambreuil@gmail.com,,,maxime.chambreuil@gmail.com,,,,maxime.chambre"
-#~ "uil@gmail.com,,,,maxime.chambreuil@gmail.com,"
+#~ ",,maxime.chambreuil@gmail.com,,,maxime.chambreuil@gmail.com,,,,maxime."
+#~ "chambreuil@gmail.com,,,,maxime.chambreuil@gmail.com,"
diff --git a/lang/pt_BR/pt_BR.po b/lang/pt_BR/pt_BR.po
index ca804b75ce..0a5429e6c0 100644
--- a/lang/pt_BR/pt_BR.po
+++ b/lang/pt_BR/pt_BR.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: sflphone\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-14 11:18-0400\n"
+"POT-Creation-Date: 2009-12-03 10:22-0500\n"
 "PO-Revision-Date: 2009-10-26 20:46+0000\n"
 "Last-Translator: kalib <kalibslack@gmail.com>\n"
 "Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
@@ -60,25 +60,15 @@ msgstr "Servidor stun inválido"
 msgid "Invalid"
 msgstr "Inválido"
 
-#: ../sflphone-client-gnome/src/actions.c:54
-#: ../sflphone-client-gnome/src/sflnotify.c:94
-#, c-format
-msgid "%d voice mail"
-msgid_plural "%d voice mails"
-msgstr[0] "%d mensagem de voz"
-msgstr[1] "%d mensagens de voz"
-
-#: ../sflphone-client-gnome/src/actions.c:83
-#: ../sflphone-client-gnome/src/actions.c:919
-#: ../sflphone-client-gnome/src/actions.c:926
+#: ../sflphone-client-gnome/src/actions.c:98
 msgid "Using account"
 msgstr "Utilizando conta"
 
-#: ../sflphone-client-gnome/src/actions.c:89
+#: ../sflphone-client-gnome/src/actions.c:104
 msgid "No registered accounts"
 msgstr "Sem contas registradas"
 
-#: ../sflphone-client-gnome/src/actions.c:268
+#: ../sflphone-client-gnome/src/actions.c:285
 msgid ""
 "Unable to connect to the SFLphone server.\n"
 "Make sure the daemon is running."
@@ -86,22 +76,18 @@ msgstr ""
 "Incapaz de conectar ao servidor SFLphone.\n"
 "Tenha certeza de que o daemon está rodando."
 
-#: ../sflphone-client-gnome/src/actions.c:913
-#, c-format
-msgid "IP call - %s"
-msgstr "Ligação IP - %s"
-
-#: ../sflphone-client-gnome/src/actions.c:922
-msgid "Codec"
-msgstr "Codec"
+#: ../sflphone-client-gnome/src/actions.c:589
+#: ../sflphone-client-gnome/src/actions.c:911
+msgid "Direct SIP call"
+msgstr "Ligações IP diretas"
 
-#: ../sflphone-client-gnome/src/actions.c:1119
+#: ../sflphone-client-gnome/src/actions.c:1103
 #, c-format
 msgid ""
 "<b>Error: No audio codecs found.\n"
 "\n"
-"</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
-"<b>.sflphone</b> directory in your home( <i>%s</i> )"
+"</b> SFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</"
+"b> directory in your home( <i>%s</i> )"
 msgstr ""
 "<b>Erro: Não foram encontrados codecs de áudio.\n"
 "\n"
@@ -150,31 +136,31 @@ msgstr "Existem ligações em progresso"
 msgid "Do you still want to quit?"
 msgstr "Você ainda deseja sair?"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:299
+#: ../sflphone-client-gnome/src/mainwindow.c:298
 msgid "SFLphone Error"
 msgstr "Erro no SFLphone"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:391
+#: ../sflphone-client-gnome/src/mainwindow.c:392
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
 msgstr "ZRTP não é suportado pelo peer %s\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:392
+#: ../sflphone-client-gnome/src/mainwindow.c:393
 msgid "Secure Communication Unavailable"
 msgstr "Comunicação Segura Indisponível"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:393
-#: ../sflphone-client-gnome/src/mainwindow.c:415
+#: ../sflphone-client-gnome/src/mainwindow.c:394
+#: ../sflphone-client-gnome/src/mainwindow.c:416
 msgid "Continue"
 msgstr "Continuar"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:394
-#: ../sflphone-client-gnome/src/mainwindow.c:416
-#: ../sflphone-client-gnome/src/mainwindow.c:430
+#: ../sflphone-client-gnome/src/mainwindow.c:395
+#: ../sflphone-client-gnome/src/mainwindow.c:417
+#: ../sflphone-client-gnome/src/mainwindow.c:431
 msgid "Stop Call"
 msgstr "Finalizar Chamada"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:413
+#: ../sflphone-client-gnome/src/mainwindow.c:414
 #, c-format
 msgid ""
 "A %s error forced the call with %s to fall under unencrypted mode.\n"
@@ -183,11 +169,11 @@ msgstr ""
 "Um erro %s forçou a ligação com %s a mudar para um modo não encriptado.\n"
 "Motivo exato: %s\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:414
+#: ../sflphone-client-gnome/src/mainwindow.c:415
 msgid "ZRTP negotiation failed"
 msgstr "Negociação ZRTP falhou"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:427
+#: ../sflphone-client-gnome/src/mainwindow.c:428
 #, c-format
 msgid ""
 "%s wants to stop using secure communication. Confirm will resume "
@@ -196,11 +182,11 @@ msgstr ""
 "%s deseja finalizar a utilização de comunicação segura. A confirmação irá "
 "retomar sem SRTP.\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:428
+#: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm Go Clear"
 msgstr "Confirmar Vá Limpar"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:429
+#: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Confirm"
 msgstr "Confirmar"
 
@@ -215,6 +201,13 @@ msgstr "%s conta : %s"
 msgid "<i>From</i> %s"
 msgstr "<i>De</i> %s"
 
+#: ../sflphone-client-gnome/src/sflnotify.c:94
+#, c-format
+msgid "%d voice mail"
+msgid_plural "%d voice mails"
+msgstr[0] "%d mensagem de voz"
+msgstr[1] "%d mensagens de voz"
+
 #: ../sflphone-client-gnome/src/sflnotify.c:111
 #, c-format
 msgid "Calling with %s account <i>%s</i>"
@@ -264,15 +257,15 @@ msgstr "Volume dos auto-falantes"
 msgid "Mic volume"
 msgstr "Volume do microfone"
 
-#: ../sflphone-client-gnome/src/statusicon.c:91
+#: ../sflphone-client-gnome/src/statusicon.c:96
 msgid "_Show main window"
 msgstr "_Apresentar janela principal"
 
-#: ../sflphone-client-gnome/src/statusicon.c:126
+#: ../sflphone-client-gnome/src/statusicon.c:131
 msgid "SFLphone"
 msgstr "SFLphone"
 
-#: ../sflphone-client-gnome/src/statusicon.c:127
+#: ../sflphone-client-gnome/src/statusicon.c:132
 #, c-format
 msgid "%i account configured"
 msgid_plural "%i accounts configured"
@@ -280,202 +273,397 @@ msgstr[0] "%i conta configurada"
 msgstr[1] "%i contas configuradas"
 
 #: ../sflphone-client-gnome/src/toolbar.c:38
-#: ../sflphone-client-gnome/src/uimanager.c:750
+#: ../sflphone-client-gnome/src/uimanager.c:693
+#: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Voicemail"
 msgstr "Correio de voz"
 
-#: ../sflphone-client-gnome/src/uimanager.c:403
+#: ../sflphone-client-gnome/src/uimanager.c:117
+msgid "No address book selected"
+msgstr "Catálogo de endereços"
+
+#: ../sflphone-client-gnome/src/uimanager.c:137
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "Address book"
+msgstr "Catálogo de endereços"
+
+#: ../sflphone-client-gnome/src/uimanager.c:279
+msgid "Voicemail (%i)"
+msgstr "Correio de voz (%i)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:342
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
 msgstr "SFLphone é um cliente VoIP compatível com os protocolos SIP e IAX2."
 
-#: ../sflphone-client-gnome/src/uimanager.c:406
+#: ../sflphone-client-gnome/src/uimanager.c:345
 msgid "About SFLphone"
 msgstr "Sobre o SFLphone"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1028
+#: ../sflphone-client-gnome/src/uimanager.c:719
+msgid "Call"
+msgstr "_Chamar"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+#: ../sflphone-client-gnome/src/uimanager.c:1184
+msgid "_New call"
+msgstr "_Nova ligação"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+msgid "Place a new call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:721
+#: ../sflphone-client-gnome/src/uimanager.c:979
 msgid "_Pick up"
 msgstr "_Atender"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1040
-#: ../sflphone-client-gnome/src/uimanager.c:1081
+#: ../sflphone-client-gnome/src/uimanager.c:721
+msgid "Answer the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:722
+#: ../sflphone-client-gnome/src/uimanager.c:991
+#: ../sflphone-client-gnome/src/uimanager.c:1032
 msgid "_Hang up"
 msgstr "_Desligar"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1052
-#: ../sflphone-client-gnome/src/uimanager.c:1093
-msgid "On _Hold"
+#: ../sflphone-client-gnome/src/uimanager.c:722
+msgid "Finish the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "O_n hold"
 msgstr "Em _Espera"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1064
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "Place the call on hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "O_ff hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "Place the call off hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:725
+#: ../sflphone-client-gnome/src/uimanager.c:1015
 msgid "_Record"
 msgstr "_Gravar"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1154
+#: ../sflphone-client-gnome/src/uimanager.c:725
+msgid "Record the current conversation"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Configuration _Assistant"
+msgstr "Arquivo de Configuração"
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Run the configuration assistant"
+msgstr "Erro de configuração no stun"
+
+#: ../sflphone-client-gnome/src/uimanager.c:727
+msgid "Call your voicemail"
+msgstr "%d mensagem de voz"
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "_Close"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "Minimize to system tray"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "_Quit"
+msgstr "_Editar"
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "Quit the program"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:732
+msgid "_Edit"
+msgstr "_Editar"
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "_Copy"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "Copy the selection"
+msgstr "Remover a conta selecionada"
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "_Paste"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "Paste the clipboard"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear _history"
+msgstr "Limpar _histórico"
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear the call history"
+msgstr "Limpar histórico"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "_Accounts"
+msgstr "_Contas"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "Edit your accounts"
+msgstr "Conta atual"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "_Preferences"
+msgstr "Preferências"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "Change your preferences"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:740
+msgid "_View"
+msgstr "_Exibir"
+
+#: ../sflphone-client-gnome/src/uimanager.c:743
+msgid "_Help"
+msgstr "_Ajuda"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Contents"
+msgstr "Continuar"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Open the manual"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:745
+msgid "About this application"
+msgstr "Autenticação"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "_Transfer"
+msgstr "Transferir"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "Transfer the call"
+msgstr "Transfirir para: "
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "_Show toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "Show the toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "_Dialpad"
+msgstr "Desabilitado"
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "Show the dialpad"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "_Volume controls"
+msgstr "_Controle de Volumes"
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "Show the volume controls"
+msgstr "Exibir controles de volume"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "_History"
+msgstr "Histórico"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "Calls history"
+msgstr "Histórico de chamadas"
+
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "_Address book"
+msgstr "Catálogo de endereços"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1003
+#: ../sflphone-client-gnome/src/uimanager.c:1044
+msgid "On _Hold"
+msgstr "Em _Espera"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1107
 msgid "_Call back"
 msgstr "_Ligar de volta"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1226
-msgid "_New call"
-msgstr "_Nova ligação"
-
-#: ../sflphone-client-gnome/src/uimanager.c:1300
+#: ../sflphone-client-gnome/src/uimanager.c:1258
 msgid "Edit phone number"
 msgstr "Editar número de telefone"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1311
+#: ../sflphone-client-gnome/src/uimanager.c:1269
 msgid "Edit the phone number before making a call"
 msgstr "Edite o número de telefone antes de fazer uma ligação"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:164
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:180
 msgid "Account Parameters"
 msgstr "Parâmetros de conta"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:173
-#: ../sflphone-client-gnome/src/config/assistant.c:294
-#: ../sflphone-client-gnome/src/config/assistant.c:402
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/assistant.c:314
+#: ../sflphone-client-gnome/src/config/assistant.c:427
 msgid "_Alias"
 msgstr "_Apelido"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:181
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:197
 msgid "_Protocol"
 msgstr "_Protocolo"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:199
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:215
 msgid "Unknown"
 msgstr "Desconhecido"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:209
-#: ../sflphone-client-gnome/src/config/assistant.c:302
-#: ../sflphone-client-gnome/src/config/assistant.c:410
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
+#: ../sflphone-client-gnome/src/config/assistant.c:322
+#: ../sflphone-client-gnome/src/config/assistant.c:435
 msgid "_Host name"
 msgstr "_Nome do host"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:217
-#: ../sflphone-client-gnome/src/config/assistant.c:310
-#: ../sflphone-client-gnome/src/config/assistant.c:418
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:233
+#: ../sflphone-client-gnome/src/config/assistant.c:330
+#: ../sflphone-client-gnome/src/config/assistant.c:443
 msgid "_User name"
 msgstr "_Nome do usuário"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:234
-#: ../sflphone-client-gnome/src/config/assistant.c:326
-#: ../sflphone-client-gnome/src/config/assistant.c:433
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:346
+#: ../sflphone-client-gnome/src/config/assistant.c:458
 msgid "_Password"
 msgstr "_Senha"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:254
-#: ../sflphone-client-gnome/src/config/assistant.c:344
-#: ../sflphone-client-gnome/src/config/assistant.c:449
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:270
+#: ../sflphone-client-gnome/src/config/assistant.c:363
+#: ../sflphone-client-gnome/src/config/assistant.c:473
+msgid "Show password"
+msgstr "Senha"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:274
+#: ../sflphone-client-gnome/src/config/assistant.c:368
+#: ../sflphone-client-gnome/src/config/assistant.c:478
 msgid "_Voicemail number"
 msgstr "_Senha da caixa postal de voz"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:340
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:361
 msgid "Authentication"
 msgstr "Autenticação"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:362
 msgid "Secret"
 msgstr "Segredo"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:605
 msgid "Credential"
 msgstr "Credencial"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:501
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:640
 msgid "Authentication name"
 msgstr "Nome de autenticação"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:512
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:651
 msgid "Password"
 msgstr "Senha"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:535
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:909
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:201
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1056
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:321
 msgid "Security"
 msgstr "Segurança"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:547
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:213
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:333
 msgid "Use TLS transport (sips)"
 msgstr "Use transporte TLS (sips)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:552
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:218
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:338
 msgid "SRTP key exchange"
 msgstr "Troca de chave SRTP"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:699
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
 msgid "Disabled"
 msgstr "Desabilitado"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:795
 msgid "Registration"
 msgstr "Registro"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:800
 msgid "Registration expire"
 msgstr "Registro expira"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:809
 msgid "_Comply with RFC 3263"
 msgstr "_De acordo com RFC 3263"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
-msgid "Network"
-msgstr "Rede"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:816
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:234
+msgid "Network Interface"
+msgstr "A rede está inacessível"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:830
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:249
 msgid "Local address"
 msgstr "Endereço local"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:301
 msgid "Local port"
 msgstr "Porta local"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:752
-msgid "Set published address and port:"
-msgstr "Indique endereço e portas publicadas"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:893
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:928
+msgid "Published address"
+msgstr "Endereço publicado"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:756
-msgid "Using STUN "
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+msgid "Using STUN"
 msgstr "Utilizando STUN "
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:761
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:906
+msgid "STUN server URL"
+msgstr "URL do servidor STUN"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:914
 msgid "Same as local parameters"
 msgstr "Igual aos parâmetros locais"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:764
-msgid "Manually"
-msgstr "Manualmente"
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:769
-msgid "Published address"
-msgstr "Endereço publicado"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:917
+msgid "Set published address and port:"
+msgstr "Indique endereço e portas publicadas"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:777
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:936
 msgid "Published port"
 msgstr "Porta publicada"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:785
-msgid "STUN server URL"
-msgstr "URL do servidor STUN"
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1027
 msgid "Account settings"
 msgstr "Configurações da conta"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1046
 msgid "Basic"
 msgstr "Básico"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:904
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1051
 msgid "Advanced"
 msgstr "Avançado"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:169
-msgid "Server returned \""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:164
+msgid "Server returned \"%s\" (%d)"
 msgstr "Servidor retornou \""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
@@ -494,32 +682,18 @@ msgstr "Contas"
 msgid "Configured Accounts"
 msgstr "Contas Configuradas"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
-msgid "There "
-msgstr "Ali "
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "is "
-msgstr "está "
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "are "
-msgstr "estão "
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:501
+msgid "There is %d active account"
+msgid_plural "There are %d active accounts"
+msgstr[0] " conta ativa"
+msgstr[1] " conta ativa"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
-msgid " active account"
-msgstr " conta ativa"
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
-msgid "s"
-msgstr "s"
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:507
 msgid "You have no active account"
 msgstr "Você não possui uma conta ativa"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:556
 msgid "General"
 msgstr "Geral"
 
@@ -564,16 +738,16 @@ msgid "Select which Evolution address books to use"
 msgstr "Selecione qual catálogo de endereços do Evolution deseja utilizar"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:404
-#: ../sflphone-client-gnome/src/config/audioconf.c:578
+#: ../sflphone-client-gnome/src/config/audioconf.c:577
 msgid "Name"
 msgstr "Nome"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:69
+#: ../sflphone-client-gnome/src/config/assistant.c:75
 #, c-format
 msgid "This assistant is now finished."
 msgstr "Este assistente está finalizado."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:71
+#: ../sflphone-client-gnome/src/config/assistant.c:77
 msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
@@ -581,213 +755,208 @@ msgstr ""
 "Você pode a qualquer momento checar seu estado de registro ou modificar seus "
 "parâmetros de conta na janela Opções/Contas."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:74
+#: ../sflphone-client-gnome/src/config/assistant.c:80
 msgid "Alias"
 msgstr "Apelido"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:78
+#: ../sflphone-client-gnome/src/config/assistant.c:84
 msgid "Server"
 msgstr "Servidor"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:82
+#: ../sflphone-client-gnome/src/config/assistant.c:88
 msgid "Username"
 msgstr "Nome de usuário"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:86
+#: ../sflphone-client-gnome/src/config/assistant.c:92
 msgid "Security: "
 msgstr "Segurança: "
 
-#: ../sflphone-client-gnome/src/config/assistant.c:88
+#: ../sflphone-client-gnome/src/config/assistant.c:94
 msgid "SRTP/ZRTP draft-zimmermann"
 msgstr "SRTP/ZRTP rascunho-zimmermann"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:90
-#: ../sflphone-client-gnome/src/config/assistant.c:182
+#: ../sflphone-client-gnome/src/config/assistant.c:96
 msgid "None"
 msgstr "Nenhum"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:210
+#: ../sflphone-client-gnome/src/config/assistant.c:229
 msgid "SFLphone account creation wizard"
 msgstr "Assistente de criação de contas do SFLphone"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:236
+#: ../sflphone-client-gnome/src/config/assistant.c:255
 msgid "Welcome to the Account creation wizard of SFLphone!"
 msgstr "Bem vindo ao assistente de criação de contas do SFLphone!"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:237
+#: ../sflphone-client-gnome/src/config/assistant.c:256
 msgid "This installation wizard will help you configure an account."
 msgstr "Este assistente de instalação irá lhe ajudar a configurar uma conta."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "VoIP Protocols"
 msgstr "Protocolos VoIP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "Select an account type"
 msgstr "Selecione um tipo de conta"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:253
+#: ../sflphone-client-gnome/src/config/assistant.c:272
 msgid "SIP (Session Initiation Protocol)"
 msgstr "SIP (Session Initiation Protocol)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:255
+#: ../sflphone-client-gnome/src/config/assistant.c:274
 msgid "IAX2 (InterAsterix Exchange)"
 msgstr "IAX2 (InterAsterix Exchange)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Account"
 msgstr "Conta"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Please select one of the following options"
 msgstr "Por favor, selecione uma das seguintes opções"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:271
+#: ../sflphone-client-gnome/src/config/assistant.c:290
 msgid "Create a free SIP/IAX2 account on sflphone.org"
 msgstr "Criar uma conta gratuita SIP/IAX2 em sflphone.org"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:273
+#: ../sflphone-client-gnome/src/config/assistant.c:292
 msgid "Register an existing SIP or IAX2 account"
 msgstr "Registrar uma conta SIP ou IAX2 existente"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
+#: ../sflphone-client-gnome/src/config/assistant.c:306
 msgid "SIP account settings"
 msgstr "Configurações de conta SIP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:306
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "Please fill the following information"
 msgstr "Por favor, preencha as informações a seguir"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:352
-#: ../sflphone-client-gnome/src/config/assistant.c:381
+#: ../sflphone-client-gnome/src/config/assistant.c:376
+#: ../sflphone-client-gnome/src/config/assistant.c:405
 msgid "Secure communications with _ZRTP"
 msgstr "Comunicações seguras com _ZRTP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "Optional email address"
 msgstr "Endereço de e-mail opcional"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "This email address will be used to send your voicemail messages."
 msgstr ""
 "Este endereço de email será utilizado para enviar as mensagens de voz em sua "
 "caixa postal."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:373
+#: ../sflphone-client-gnome/src/config/assistant.c:397
 msgid "_Email address"
 msgstr "_endereço de email"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "IAX2 account settings"
 msgstr "Configurações de conta IAX2"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "Network Address Translation (NAT)"
 msgstr "Network Address Translation (NAT)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "You should probably enable this if you are behind a firewall."
 msgstr ""
 "Você provavelmente precise habilitar isto se estiver por trás de um firewall."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:476
+#: ../sflphone-client-gnome/src/config/assistant.c:505
 msgid "E_nable STUN"
 msgstr "Ha_bilitar STUN"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:483
+#: ../sflphone-client-gnome/src/config/assistant.c:512
 msgid "_STUN server"
 msgstr "_Servidor STUN"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Account Registration"
 msgstr "Registro de conta"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Congratulations!"
 msgstr "Parabéns!"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:583
+#: ../sflphone-client-gnome/src/config/audioconf.c:582
 msgid "Frequency"
 msgstr "Frequência"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:588
+#: ../sflphone-client-gnome/src/config/audioconf.c:587
 msgid "Bitrate"
 msgstr "Taxa de bits"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:593
+#: ../sflphone-client-gnome/src/config/audioconf.c:592
 msgid "Bandwidth"
 msgstr "Largura de banda"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:673
+#: ../sflphone-client-gnome/src/config/audioconf.c:670
 msgid "ALSA plugin"
 msgstr "Plugin ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:695
+#: ../sflphone-client-gnome/src/config/audioconf.c:692
 msgid "Output"
 msgstr "Saída"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:717
+#: ../sflphone-client-gnome/src/config/audioconf.c:714
 msgid "Input"
 msgstr "Entrada"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:752
+#: ../sflphone-client-gnome/src/config/audioconf.c:749
 msgid "_Voice Activity Detection"
 msgstr "_Detecção de atividade de voz"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:762
+#: ../sflphone-client-gnome/src/config/audioconf.c:759
 msgid "_Noise Reduction (Narrow-Band Companding)"
 msgstr "_Redução de ruído (Utilização de banda-estreita)"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:798
+#: ../sflphone-client-gnome/src/config/audioconf.c:800
 msgid "Sound Manager"
 msgstr "Gerenciador de Som"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:807
+#: ../sflphone-client-gnome/src/config/audioconf.c:809
 msgid "_Pulseaudio"
 msgstr "_Pulseaudio"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:811
+#: ../sflphone-client-gnome/src/config/audioconf.c:813
 msgid "_ALSA"
 msgstr "_ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:816
-msgid "_Mute other applications during a call"
-msgstr "_Silenciar outras aplicações durante uma ligação"
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:823
+#: ../sflphone-client-gnome/src/config/audioconf.c:819
 msgid "ALSA settings"
 msgstr "Configurações do ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:840
+#: ../sflphone-client-gnome/src/config/audioconf.c:836
 msgid "Codecs"
 msgstr "Codecs"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:869
+#: ../sflphone-client-gnome/src/config/audioconf.c:865
 msgid "Recordings"
 msgstr "Gravações"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:873
+#: ../sflphone-client-gnome/src/config/audioconf.c:869
 msgid "Destination folder"
 msgstr "Pasta de destino"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:877
+#: ../sflphone-client-gnome/src/config/audioconf.c:873
 msgid "Select a folder"
 msgstr "Selecione uma pasta"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:883
+#: ../sflphone-client-gnome/src/config/audioconf.c:879
 msgid "Ringtones"
 msgstr "Ringtones"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:889
+#: ../sflphone-client-gnome/src/config/audioconf.c:885
 msgid "_Enable ringtones"
 msgstr "_Habilitar ringtones"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:895
+#: ../sflphone-client-gnome/src/config/audioconf.c:891
 msgid "Choose a ringtone"
 msgstr "Escolha um ringtone"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:901
+#: ../sflphone-client-gnome/src/config/audioconf.c:897
 msgid "Audio Files"
 msgstr "Arquivos de Áudio"
 
@@ -824,7 +993,7 @@ msgstr "Reescrevendo número do telefone"
 msgid "_Prefix dialed numbers with"
 msgstr "_Prefixo de números discados com"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:195
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:225
 msgid ""
 "This profile is used when you want to reach a remote peer simply by typing a "
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
@@ -835,79 +1004,59 @@ msgstr ""
 "configurações que você definir aqui também serão utilizadas se nenhuma conta "
 "puder ser combinada a uma chamada de entrada ou de saída."
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:274
-msgid "SIP Port"
-msgstr "Porta SIP"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:281
-msgid "UDP Transport"
-msgstr "Transporte UDP"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:319
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:440
 msgid "Desktop Notifications"
 msgstr "Notificações de Desktop"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:323
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:444
 msgid "_Enable notifications"
 msgstr "_Habilitar notificações"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:329
-msgid "Enable voicemail _notifications"
-msgstr "Habilitar _notificações de correio de voz"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:341
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:450
 msgid "System Tray Icon"
 msgstr "Ícone da bandeja do sistema"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
 msgid "_Popup main window on incoming call"
 msgstr "_Popup na janela principal ao receber ligação"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:349
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:457
 msgid "Ne_ver popup main window"
 msgstr "Nu_nca apresentar popup na janela principal"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:353
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
 msgid "Hide SFLphone window on _startup"
 msgstr "Esconder o SFLphone na _inicialização"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:359
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:469
 msgid "Calls History"
 msgstr "Histórico de Chamadas"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:362
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:472
 msgid "_Keep my history for at least"
 msgstr "_Manter meu histórico por pelo ao menos"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:373
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:483
 msgid "days"
 msgstr "dias"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
-msgid "Configuration File"
-msgstr "Arquivo de Configuração"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
-msgid "Store SIP credentials as MD5 hash"
-msgstr "Armazenar as credenciais SIP como hash MD5"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:423
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:536
 msgid "Preferences"
 msgstr "Preferências"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:448
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:561
 msgid "Audio"
 msgstr "Áudio"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:566
 msgid "Address Book"
 msgstr "Catálogo de endereços"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:458
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:571
 msgid "Hooks"
 msgstr "Ganchos"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:468
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:581
 msgid "Direct IP calls"
 msgstr "Ligações IP diretas"
 
@@ -915,11 +1064,11 @@ msgstr "Ligações IP diretas"
 msgid "Advanced options for TLS"
 msgstr "Opções avançadas para o TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:56
 msgid "TLS transport"
 msgstr "Transporte TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:60
 msgid ""
 "TLS transport can be used along with UDP for those calls that would\n"
 "require secure sip transactions (aka SIPS). You can configure a different\n"
@@ -934,55 +1083,55 @@ msgstr ""
 "funcionar em uma\n"
 "porta dedicada, uma diferente da outra\n"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:103
 msgid "Certificate of Authority list"
 msgstr "Certificado da lista de Autoridades"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:107
 msgid "Choose a CA list file (optional)"
 msgstr "Escolha um arquivo de lista CA (opcional)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:115
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:131
 msgid "Public endpoint certificate file"
 msgstr "Arquivo certificado endpoint público"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:119
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:135
 msgid "Choose a public endpoint certificate (optional)"
 msgstr "Escolha um certificado endpoint público (opcional)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:134
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:159
 msgid "Choose a private key file (optional)"
 msgstr "Escolha um arquivo de chave privada (opcional)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:145
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:181
 msgid "Password for the private key"
 msgstr "Senha para a chave privada"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:168
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:204
 msgid "TLS protocol method"
 msgstr "Método do protocolo TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:202
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:238
 msgid "TLS cipher list"
 msgstr "Lista de cifras TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:211
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:247
 msgid "Server name instance for outgoing TLS connection"
 msgstr "Instância de nome do servidor para saída da conexão TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:219
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:255
 msgid "Negotiation timeout (sec:msec)"
 msgstr "Tempo de negociação expirado (seg:mseg)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:236
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:272
 msgid "Verify incoming certificates, as a server"
 msgstr "Verificar os certificados de entrada, como um servidor"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:242
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:278
 msgid "Verify certificates from answer, as a client"
 msgstr "Verificar certificados de resposta, como um cliente"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:248
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:284
 msgid "Require certificate for incoming tls connections"
 msgstr "Requer certificado para conexões tls entrantes"
 
@@ -990,51 +1139,87 @@ msgstr "Requer certificado para conexões tls entrantes"
 msgid "ZRTP Options"
 msgstr "Opções ZRTP"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:68
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:69
 msgid "Send Hello Hash in S_DP"
 msgstr "Enviar um Hash Olá no S_DP"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:74
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:75
 msgid "Ask User to Confirm SAS"
 msgstr "Pergunta ao Usuário para Confirmar SAS"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:80
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:81
 msgid "_Warn if ZRTP not supported"
 msgstr "_Alerta se o ZRTP não é suportado"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:86
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:87
 msgid "Display SAS once for hold events"
 msgstr "Apresenta o SAS uma vez para realizar eventos"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:56
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:58
 msgid "Search all"
 msgstr "Buscar todos"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:57
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:70
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:82
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:94
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:59
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:72
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:84
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:96
 msgid "Click here to change the search type"
 msgstr "Clique aqui para alterar o tipo de pesquisa"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:69
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:71
 msgid "Search by missed call"
 msgstr "Buscar por ligações perdidas"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:81
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:83
 msgid "Search by incoming call"
 msgstr "Buscar por ligações recebidas"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:93
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:95
 msgid "Search by outgoing call"
 msgstr "Buscar por ligações feitas"
 
+#~ msgid "IP call - %s"
+#~ msgstr "Ligação IP - %s"
+
+#~ msgid "Codec"
+#~ msgstr "Codec"
+
+#~ msgid "Network"
+#~ msgstr "Rede"
+
+#~ msgid "Manually"
+#~ msgstr "Manualmente"
+
+#~ msgid "There "
+#~ msgstr "Ali "
+
+#~ msgid "is "
+#~ msgstr "está "
+
+#~ msgid "are "
+#~ msgstr "estão "
+
+#~ msgid "s"
+#~ msgstr "s"
+
+#~ msgid "_Mute other applications during a call"
+#~ msgstr "_Silenciar outras aplicações durante uma ligação"
+
+#~ msgid "SIP Port"
+#~ msgstr "Porta SIP"
+
+#~ msgid "UDP Transport"
+#~ msgstr "Transporte UDP"
+
+#~ msgid "Enable voicemail _notifications"
+#~ msgstr "Habilitar _notificações de correio de voz"
+
+#~ msgid "Store SIP credentials as MD5 hash"
+#~ msgstr "Armazenar as credenciais SIP como hash MD5"
+
 #~ msgid "Stun Server"
 #~ msgstr "Servidor STUN"
 
-#~ msgid "Call history"
-#~ msgstr "Histórico de chamadas"
-
 #~ msgid "(C) 2009 Savoir-faire Linux"
 #~ msgstr "(C) 2009 Savoir-faire Linux"
 
@@ -1050,15 +1235,9 @@ msgstr "Buscar por ligações feitas"
 #~ msgid "Record"
 #~ msgstr "Gravar"
 
-#~ msgid "Transfer"
-#~ msgstr "Transferir"
-
 #~ msgid "Hang up"
 #~ msgstr "Desligar"
 
-#~ msgid "Remove the selected account"
-#~ msgstr "Remover a conta selecionada"
-
 #~ msgid "Display"
 #~ msgstr "Exibir"
 
@@ -1095,18 +1274,6 @@ msgstr "Buscar por ligações feitas"
 #~ msgid "Enable notifications"
 #~ msgstr "Habilitar notificações"
 
-#~ msgid "History"
-#~ msgstr "Histórico"
-
-#~ msgid "_Help"
-#~ msgstr "_Ajuda"
-
-#~ msgid "_Call"
-#~ msgstr "_Chamar"
-
-#~ msgid "_Edit"
-#~ msgstr "_Editar"
-
 #~ msgid "NAT Traversal"
 #~ msgstr "NAT Traversal"
 
@@ -1126,15 +1293,12 @@ msgstr "Buscar por ligações feitas"
 #~ "After checking the settings you chose, click \"Finish\" to create the "
 #~ "account."
 #~ msgstr ""
-#~ "Após checar as configurações que deseja, clique em \"Finalizar\" para criar "
-#~ "a conta."
+#~ "Após checar as configurações que deseja, clique em \"Finalizar\" para "
+#~ "criar a conta."
 
 #~ msgid "Enable STUN"
 #~ msgstr "Habilitar STUN"
 
-#~ msgid "Transfer to : "
-#~ msgstr "Transfirir para: "
-
 #~ msgid "Default account"
 #~ msgstr "Conta padrão"
 
@@ -1144,12 +1308,6 @@ msgstr "Buscar por ligações feitas"
 #~ msgid "Main screen"
 #~ msgstr "Tela principal"
 
-#~ msgid "Address book"
-#~ msgstr "Catálogo de endereços"
-
-#~ msgid "Display volume controls"
-#~ msgstr "Exibir controles de volume"
-
 #~ msgid "Configure SFLphone"
 #~ msgstr "Configurar SFLphone"
 
@@ -1186,32 +1344,32 @@ msgstr "Buscar por ligações feitas"
 #~ 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."
+#~ "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 ""
 #~ "Por padrão, quando você realiza uma ligação, sflphone utilizará a prieira "
-#~ "conta desta lista que estiver \"registrada\". Modifique a ordem das contas "
-#~ "utilizando as setas de \"Cima\" e \"Baixo\". Habilite/desabilite as "
-#~ "marcando/desmarcando à esquerda de cada item. Adicione ou remova algumas com "
-#~ "os botões \"Adicionar\" e \"Remover\". Edite a conta selecionada com o "
-#~ "formulário à direita."
+#~ "conta desta lista que estiver \"registrada\". Modifique a ordem das "
+#~ "contas utilizando as setas de \"Cima\" e \"Baixo\". Habilite/desabilite "
+#~ "as marcando/desmarcando à esquerda de cada item. Adicione ou remova "
+#~ "algumas com os botões \"Adicionar\" e \"Remover\". Edite a conta "
+#~ "selecionada com o formulário à direita."
 
 #~ 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."
+#~ "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 ""
 #~ "Este botão irá remover a conta selecionada na lista apresentada. Tenha "
 #~ "certeza de que você não precisa mais dela. Se você acha que você irá "
 #~ "utilizar ela novamente, apenas desmarque a opção."
 
 #~ msgid ""
-#~ "This button enables you to initialize a new account. You will then be able "
-#~ "to edit it using the form on the right."
+#~ "This button enables you to initialize a new account. You will then be "
+#~ "able to edit it using the form on the right."
 #~ msgstr ""
-#~ "Este botão lhe permite iniciar uma nova conta. Em seguida você poderá edita-"
-#~ "la utilizando o formulário à direita."
+#~ "Este botão lhe permite iniciar uma nova conta. Em seguida você poderá "
+#~ "edita-la utilizando o formulário à direita."
 
 #~ msgid "Get this account down"
 #~ msgstr "Desabilitar esta conta"
@@ -1222,8 +1380,8 @@ msgstr "Buscar por ligações feitas"
 #~ "the \"Up\" and \"Down\" arrows."
 #~ msgstr ""
 #~ "Por padrão, quando você inicia uma ligação, o sflphone irá utilizar a "
-#~ "primeira conta desta lista que estiver \"registrada\". Modifique a ordem das "
-#~ "contas utilizando as setas para \"Cima\" e para \"Baixo\"."
+#~ "primeira conta desta lista que estiver \"registrada\". Modifique a ordem "
+#~ "das contas utilizando as setas para \"Cima\" e para \"Baixo\"."
 
 #~ msgid "Get this account up"
 #~ msgstr "Habilite esta conta"
@@ -1294,9 +1452,6 @@ msgstr "Buscar por ligações feitas"
 #~ msgid "Trigger on specific SIP header"
 #~ msgstr "Gancho no cabeçalho SIP específico"
 
-#~ msgid "Clear history"
-#~ msgstr "Limpar histórico"
-
 #~ msgid "Attention:number of results exceeds max displayed."
 #~ msgstr "Atencão:número de resultados excede o máximo de exibição"
 
@@ -1306,18 +1461,6 @@ msgstr "Buscar por ligações feitas"
 #~ msgid "_Account creation wizard"
 #~ msgstr "_Assistante de criação de conta"
 
-#~ msgid "_View"
-#~ msgstr "_Exibir"
-
-#~ msgid "_Accounts"
-#~ msgstr "_Contas"
-
-#~ msgid "Clear _history"
-#~ msgstr "Limpar _histórico"
-
-#~ msgid "_Volume Controls"
-#~ msgstr "_Controle de Volumes"
-
 #~ msgid "_Enable this account"
 #~ msgstr "_Habilitar esta conta"
 
@@ -1333,11 +1476,11 @@ msgstr "Buscar por ligações feitas"
 #~ "sessões."
 
 #~ msgid ""
-#~ "Pressing \"apply\" will restart the network layer. Otherwise, SFLPhone would "
-#~ "have to be restarted."
+#~ "Pressing \"apply\" will restart the network layer. Otherwise, SFLPhone "
+#~ "would have to be restarted."
 #~ msgstr ""
-#~ "Pressionando \"aplicar\" a camada de rede será reiniciada. De outra forma o "
-#~ "SFKPhone teria que ser reiniciado."
+#~ "Pressionando \"aplicar\" a camada de rede será reiniciada. De outra forma "
+#~ "o SFKPhone teria que ser reiniciado."
 
 #~ msgid "PulseAudio sound server"
 #~ msgstr "Servidor de som PulseAudio"
@@ -1352,6 +1495,6 @@ msgstr "Buscar por ligações feitas"
 #~ msgctxt "EMAIL OF TRANSLATORS"
 #~ msgid "Your emails"
 #~ msgstr ""
-#~ ",,maxime.chambreuil@gmail.com,kalibslack@gmail.com,,,maxime.chambreuil@gmail."
-#~ "com,kalibslack@gmail.com,,,maxime.chambreuil@gmail.com,kalibslack@gmail.com,,"
-#~ ",maxime.chambreuil@gmail.com,kalibslack@gmail.com"
+#~ ",,maxime.chambreuil@gmail.com,kalibslack@gmail.com,,,maxime."
+#~ "chambreuil@gmail.com,kalibslack@gmail.com,,,maxime.chambreuil@gmail.com,"
+#~ "kalibslack@gmail.com,,,maxime.chambreuil@gmail.com,kalibslack@gmail.com"
diff --git a/lang/ru/ru.po b/lang/ru/ru.po
index 0cdec3479d..18045ccd61 100644
--- a/lang/ru/ru.po
+++ b/lang/ru/ru.po
@@ -7,15 +7,15 @@ msgid ""
 msgstr ""
 "Project-Id-Version: SFLphone 0.9.6\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-14 11:18-0400\n"
+"POT-Creation-Date: 2009-12-03 10:22-0500\n"
 "PO-Revision-Date: 2009-10-26 20:46+0000\n"
 "Last-Translator: Emmanuel Milou <emmanuel.milou@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"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
-"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
 "X-Launchpad-Export-Date: 2009-12-03 15:32+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
@@ -61,26 +61,15 @@ msgstr "Неверный сервер Stun"
 msgid "Invalid"
 msgstr "Неверный"
 
-#: ../sflphone-client-gnome/src/actions.c:54
-#: ../sflphone-client-gnome/src/sflnotify.c:94
-#, c-format
-msgid "%d voice mail"
-msgid_plural "%d voice mails"
-msgstr[0] "%d голосовое письмо"
-msgstr[1] "%d голосовые письма"
-msgstr[2] "%d голосовые письма"
-
-#: ../sflphone-client-gnome/src/actions.c:83
-#: ../sflphone-client-gnome/src/actions.c:919
-#: ../sflphone-client-gnome/src/actions.c:926
+#: ../sflphone-client-gnome/src/actions.c:98
 msgid "Using account"
 msgstr "Используя учетную запись"
 
-#: ../sflphone-client-gnome/src/actions.c:89
+#: ../sflphone-client-gnome/src/actions.c:104
 msgid "No registered accounts"
 msgstr "У вас нет зарегистрированных аккаунтов"
 
-#: ../sflphone-client-gnome/src/actions.c:268
+#: ../sflphone-client-gnome/src/actions.c:285
 msgid ""
 "Unable to connect to the SFLphone server.\n"
 "Make sure the daemon is running."
@@ -88,27 +77,23 @@ msgstr ""
 "Невозможно подключиться к SFLphone-серверу.\n"
 "Проверьте если демон работает."
 
-#: ../sflphone-client-gnome/src/actions.c:913
-#, c-format
-msgid "IP call - %s"
-msgstr "IP звонок  - %s"
-
-#: ../sflphone-client-gnome/src/actions.c:922
-msgid "Codec"
-msgstr "Codec"
+#: ../sflphone-client-gnome/src/actions.c:589
+#: ../sflphone-client-gnome/src/actions.c:911
+msgid "Direct SIP call"
+msgstr "Прямые IP-звонки"
 
-#: ../sflphone-client-gnome/src/actions.c:1119
+#: ../sflphone-client-gnome/src/actions.c:1103
 #, c-format
 msgid ""
 "<b>Error: No audio codecs found.\n"
 "\n"
-"</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
-"<b>.sflphone</b> directory in your home( <i>%s</i> )"
+"</b> SFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</"
+"b> directory in your home( <i>%s</i> )"
 msgstr ""
 "<b>Ошибка: звуковые кодеки не найдены.\n"
 "\n"
-"</b> Звуковые кодеки SFL должны находиться в <i>%s</i> или в "
-"<b>.sflphone</b> каталоге в вашем домашнем каталоге( <i>%s</i> )"
+"</b> Звуковые кодеки SFL должны находиться в <i>%s</i> или в <b>.sflphone</"
+"b> каталоге в вашем домашнем каталоге( <i>%s</i> )"
 
 #: ../sflphone-client-gnome/src/errors.c:29
 msgid ""
@@ -152,31 +137,31 @@ msgstr "Несколько звонков ещё не окончены."
 msgid "Do you still want to quit?"
 msgstr "Вы уверенны что хотите выйти?"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:299
+#: ../sflphone-client-gnome/src/mainwindow.c:298
 msgid "SFLphone Error"
 msgstr "Ошибка SFLphone."
 
-#: ../sflphone-client-gnome/src/mainwindow.c:391
+#: ../sflphone-client-gnome/src/mainwindow.c:392
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
 msgstr "не поддерживается устройством %s\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:392
+#: ../sflphone-client-gnome/src/mainwindow.c:393
 msgid "Secure Communication Unavailable"
 msgstr "Зашифрованная связь недоступна."
 
-#: ../sflphone-client-gnome/src/mainwindow.c:393
-#: ../sflphone-client-gnome/src/mainwindow.c:415
+#: ../sflphone-client-gnome/src/mainwindow.c:394
+#: ../sflphone-client-gnome/src/mainwindow.c:416
 msgid "Continue"
 msgstr "Продолжить"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:394
-#: ../sflphone-client-gnome/src/mainwindow.c:416
-#: ../sflphone-client-gnome/src/mainwindow.c:430
+#: ../sflphone-client-gnome/src/mainwindow.c:395
+#: ../sflphone-client-gnome/src/mainwindow.c:417
+#: ../sflphone-client-gnome/src/mainwindow.c:431
 msgid "Stop Call"
 msgstr "Закончить звонок"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:413
+#: ../sflphone-client-gnome/src/mainwindow.c:414
 #, c-format
 msgid ""
 "A %s error forced the call with %s to fall under unencrypted mode.\n"
@@ -185,11 +170,11 @@ msgstr ""
 "Из-за ошибки %s переговор с %s перейдëт в не зашифрованный режим.\n"
 "Точная причина: %s\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:414
+#: ../sflphone-client-gnome/src/mainwindow.c:415
 msgid "ZRTP negotiation failed"
 msgstr "Неудачный обмен информации ZRTP"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:427
+#: ../sflphone-client-gnome/src/mainwindow.c:428
 #, c-format
 msgid ""
 "%s wants to stop using secure communication. Confirm will resume "
@@ -198,11 +183,11 @@ msgstr ""
 "%s хочет остановить зашифрованную связь. В случае подтверждения переговор "
 "продолжится без SRTP.\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:428
+#: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm Go Clear"
 msgstr "Подтвердить переход на незашифрованную связь"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:429
+#: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Confirm"
 msgstr "Подтвердить"
 
@@ -217,6 +202,14 @@ msgstr "%s аккаунт: %s"
 msgid "<i>From</i> %s"
 msgstr "<i>От:</i> %s"
 
+#: ../sflphone-client-gnome/src/sflnotify.c:94
+#, c-format
+msgid "%d voice mail"
+msgid_plural "%d voice mails"
+msgstr[0] "%d голосовое письмо"
+msgstr[1] "%d голосовые письма"
+msgstr[2] "%d голосовые письма"
+
 #: ../sflphone-client-gnome/src/sflnotify.c:111
 #, c-format
 msgid "Calling with %s account <i>%s</i>"
@@ -266,15 +259,15 @@ msgstr "Громкость"
 msgid "Mic volume"
 msgstr "Громкость микрофона"
 
-#: ../sflphone-client-gnome/src/statusicon.c:91
+#: ../sflphone-client-gnome/src/statusicon.c:96
 msgid "_Show main window"
 msgstr "_Показать главное окно"
 
-#: ../sflphone-client-gnome/src/statusicon.c:126
+#: ../sflphone-client-gnome/src/statusicon.c:131
 msgid "SFLphone"
 msgstr "SFLphone"
 
-#: ../sflphone-client-gnome/src/statusicon.c:127
+#: ../sflphone-client-gnome/src/statusicon.c:132
 #, c-format
 msgid "%i account configured"
 msgid_plural "%i accounts configured"
@@ -283,202 +276,397 @@ msgstr[1] "%i аккаунтов настроены"
 msgstr[2] "%i аккаунтов настроены"
 
 #: ../sflphone-client-gnome/src/toolbar.c:38
-#: ../sflphone-client-gnome/src/uimanager.c:750
+#: ../sflphone-client-gnome/src/uimanager.c:693
+#: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Voicemail"
 msgstr "Автоответчик"
 
-#: ../sflphone-client-gnome/src/uimanager.c:403
+#: ../sflphone-client-gnome/src/uimanager.c:117
+msgid "No address book selected"
+msgstr "Адресная книга"
+
+#: ../sflphone-client-gnome/src/uimanager.c:137
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "Address book"
+msgstr "Адресная книга"
+
+#: ../sflphone-client-gnome/src/uimanager.c:279
+msgid "Voicemail (%i)"
+msgstr "Автоответчик"
+
+#: ../sflphone-client-gnome/src/uimanager.c:342
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
 msgstr "SFLphone - SIP и IAX2-совместимый VoIP-клиент"
 
-#: ../sflphone-client-gnome/src/uimanager.c:406
+#: ../sflphone-client-gnome/src/uimanager.c:345
 msgid "About SFLphone"
 msgstr "О SFLphone"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1028
+#: ../sflphone-client-gnome/src/uimanager.c:719
+msgid "Call"
+msgstr "_Звонок"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+#: ../sflphone-client-gnome/src/uimanager.c:1184
+msgid "_New call"
+msgstr "_Новый звонок"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+msgid "Place a new call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:721
+#: ../sflphone-client-gnome/src/uimanager.c:979
 msgid "_Pick up"
 msgstr "_Взять трубку"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1040
-#: ../sflphone-client-gnome/src/uimanager.c:1081
+#: ../sflphone-client-gnome/src/uimanager.c:721
+msgid "Answer the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:722
+#: ../sflphone-client-gnome/src/uimanager.c:991
+#: ../sflphone-client-gnome/src/uimanager.c:1032
 msgid "_Hang up"
 msgstr "_Положить трубку"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1052
-#: ../sflphone-client-gnome/src/uimanager.c:1093
-msgid "On _Hold"
+#: ../sflphone-client-gnome/src/uimanager.c:722
+msgid "Finish the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "O_n hold"
 msgstr "_Удержать звонок"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1064
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "Place the call on hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "O_ff hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "Place the call off hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:725
+#: ../sflphone-client-gnome/src/uimanager.c:1015
 msgid "_Record"
 msgstr "Записать"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1154
+#: ../sflphone-client-gnome/src/uimanager.c:725
+msgid "Record the current conversation"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Configuration _Assistant"
+msgstr "Файл конфигурации"
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Run the configuration assistant"
+msgstr "Ошибка конфигурации Stun"
+
+#: ../sflphone-client-gnome/src/uimanager.c:727
+msgid "Call your voicemail"
+msgstr "%d голосовое письмо"
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "_Close"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "Minimize to system tray"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "_Quit"
+msgstr "_Правка"
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "Quit the program"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:732
+msgid "_Edit"
+msgstr "_Правка"
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "_Copy"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "Copy the selection"
+msgstr "Удалить выбранную учетную запись"
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "_Paste"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "Paste the clipboard"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear _history"
+msgstr "_Стереть журнал"
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear the call history"
+msgstr "Очистить историю"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "_Accounts"
+msgstr "_Аккаунты"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "Edit your accounts"
+msgstr "Нынешний аккаунт"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "_Preferences"
+msgstr "Предпочтения"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "Change your preferences"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:740
+msgid "_View"
+msgstr "_Вид"
+
+#: ../sflphone-client-gnome/src/uimanager.c:743
+msgid "_Help"
+msgstr "_Помощь"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Contents"
+msgstr "Продолжить"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Open the manual"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:745
+msgid "About this application"
+msgstr "Идентификация"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "_Transfer"
+msgstr "Переслать звонок на другой номер"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "Transfer the call"
+msgstr "Передать : "
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "_Show toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "Show the toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "_Dialpad"
+msgstr "Отключен"
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "Show the dialpad"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "_Volume controls"
+msgstr "_Настройки громкости"
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "Show the volume controls"
+msgstr "_Настройки громкости"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "_History"
+msgstr "Журнал"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "Calls history"
+msgstr "История звонков"
+
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "_Address book"
+msgstr "Адресная книга"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1003
+#: ../sflphone-client-gnome/src/uimanager.c:1044
+msgid "On _Hold"
+msgstr "_Удержать звонок"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1107
 msgid "_Call back"
 msgstr "_Перезвонить"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1226
-msgid "_New call"
-msgstr "_Новый звонок"
-
-#: ../sflphone-client-gnome/src/uimanager.c:1300
+#: ../sflphone-client-gnome/src/uimanager.c:1258
 msgid "Edit phone number"
 msgstr "Мобильный телефон"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1311
+#: ../sflphone-client-gnome/src/uimanager.c:1269
 msgid "Edit the phone number before making a call"
 msgstr "Изменить номер телефона перед звонком"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:164
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:180
 msgid "Account Parameters"
 msgstr "Параметры учетной записи"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:173
-#: ../sflphone-client-gnome/src/config/assistant.c:294
-#: ../sflphone-client-gnome/src/config/assistant.c:402
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/assistant.c:314
+#: ../sflphone-client-gnome/src/config/assistant.c:427
 msgid "_Alias"
 msgstr "_Псевдоним"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:181
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:197
 msgid "_Protocol"
 msgstr "Пр_отокол"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:199
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:215
 msgid "Unknown"
 msgstr "Неизвестный"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:209
-#: ../sflphone-client-gnome/src/config/assistant.c:302
-#: ../sflphone-client-gnome/src/config/assistant.c:410
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
+#: ../sflphone-client-gnome/src/config/assistant.c:322
+#: ../sflphone-client-gnome/src/config/assistant.c:435
 msgid "_Host name"
 msgstr "Имя или IP-адрес _сервера"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:217
-#: ../sflphone-client-gnome/src/config/assistant.c:310
-#: ../sflphone-client-gnome/src/config/assistant.c:418
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:233
+#: ../sflphone-client-gnome/src/config/assistant.c:330
+#: ../sflphone-client-gnome/src/config/assistant.c:443
 msgid "_User name"
 msgstr "Имя или _номер пользователя"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:234
-#: ../sflphone-client-gnome/src/config/assistant.c:326
-#: ../sflphone-client-gnome/src/config/assistant.c:433
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:346
+#: ../sflphone-client-gnome/src/config/assistant.c:458
 msgid "_Password"
 msgstr "Па_роль"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:254
-#: ../sflphone-client-gnome/src/config/assistant.c:344
-#: ../sflphone-client-gnome/src/config/assistant.c:449
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:270
+#: ../sflphone-client-gnome/src/config/assistant.c:363
+#: ../sflphone-client-gnome/src/config/assistant.c:473
+msgid "Show password"
+msgstr "Пароль"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:274
+#: ../sflphone-client-gnome/src/config/assistant.c:368
+#: ../sflphone-client-gnome/src/config/assistant.c:478
 msgid "_Voicemail number"
 msgstr "Номер _автоответчика #"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:340
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:361
 msgid "Authentication"
 msgstr "Идентификация"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:362
 msgid "Secret"
 msgstr "Секретный"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:605
 msgid "Credential"
 msgstr "Параметры доступа"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:501
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:640
 msgid "Authentication name"
 msgstr "Имя для аутентификации"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:512
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:651
 msgid "Password"
 msgstr "Пароль"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:535
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:909
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:201
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1056
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:321
 msgid "Security"
 msgstr "Безопасность"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:547
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:213
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:333
 msgid "Use TLS transport (sips)"
 msgstr "Имя для аутентификации"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:552
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:218
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:338
 msgid "SRTP key exchange"
 msgstr "Обмена ключей SRTP"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:699
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
 msgid "Disabled"
 msgstr "Отключен"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:795
 msgid "Registration"
 msgstr "Регистрация"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:800
 msgid "Registration expire"
 msgstr "Истек срок регистрации"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:809
 msgid "_Comply with RFC 3263"
 msgstr "_Соотвествует RFC 3263"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
-msgid "Network"
-msgstr "Сеть"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:816
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:234
+msgid "Network Interface"
+msgstr "Сеть недоступна"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:830
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:249
 msgid "Local address"
 msgstr "Локальный адрес"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:301
 msgid "Local port"
 msgstr "Локальный порт"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:752
-msgid "Set published address and port:"
-msgstr "Настроить видимый адрес и порт :"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:893
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:928
+msgid "Published address"
+msgstr "издаваемый адрес"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:756
-msgid "Using STUN "
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+msgid "Using STUN"
 msgstr "Использует STUN "
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:761
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:906
+msgid "STUN server URL"
+msgstr "URL STUN-сервера"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:914
 msgid "Same as local parameters"
 msgstr "Использовать локальный адрес и порт"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:764
-msgid "Manually"
-msgstr "Вручную"
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:769
-msgid "Published address"
-msgstr "издаваемый адрес"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:917
+msgid "Set published address and port:"
+msgstr "Настроить видимый адрес и порт :"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:777
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:936
 msgid "Published port"
 msgstr "издаваемый порт"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:785
-msgid "STUN server URL"
-msgstr "URL STUN-сервера"
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1027
 msgid "Account settings"
 msgstr "Настройки аккаунта"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1046
 msgid "Basic"
 msgstr "Основные"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:904
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1051
 msgid "Advanced"
 msgstr "Дополнительные"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:169
-msgid "Server returned \""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:164
+msgid "Server returned \"%s\" (%d)"
 msgstr "Сервер ответил \""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
@@ -497,32 +685,19 @@ msgstr "Учётные записи"
 msgid "Configured Accounts"
 msgstr "Нынешний аккаунт"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
-msgid "There "
-msgstr "Здесь "
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "is "
-msgstr "Зарегестрирован "
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "are "
-msgstr "Зарегестрированны "
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:501
+msgid "There is %d active account"
+msgid_plural "There are %d active accounts"
+msgstr[0] " действующий аккаунт"
+msgstr[1] " действующий аккаунт"
+msgstr[2] " действующий аккаунт"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
-msgid " active account"
-msgstr " действующий аккаунт"
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
-msgid "s"
-msgstr "a"
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:507
 msgid "You have no active account"
 msgstr "У вас нет активного аккаунта"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:556
 msgid "General"
 msgstr "Общие настройки"
 
@@ -567,16 +742,16 @@ msgid "Select which Evolution address books to use"
 msgstr "Выбрать адресную книгу Evolution:"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:404
-#: ../sflphone-client-gnome/src/config/audioconf.c:578
+#: ../sflphone-client-gnome/src/config/audioconf.c:577
 msgid "Name"
 msgstr "Имя"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:69
+#: ../sflphone-client-gnome/src/config/assistant.c:75
 #, c-format
 msgid "This assistant is now finished."
 msgstr "Мастер закончил настройку."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:71
+#: ../sflphone-client-gnome/src/config/assistant.c:77
 msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
@@ -584,211 +759,205 @@ msgstr ""
 "Вы можете в любое время проверить статус регистрации или изменитьпараметры  "
 "ваших аккаунтов в меню Правка / Аккаунты."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:74
+#: ../sflphone-client-gnome/src/config/assistant.c:80
 msgid "Alias"
 msgstr "Псевдоним"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:78
+#: ../sflphone-client-gnome/src/config/assistant.c:84
 msgid "Server"
 msgstr "Сервер"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:82
+#: ../sflphone-client-gnome/src/config/assistant.c:88
 msgid "Username"
 msgstr "Пользователь"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:86
+#: ../sflphone-client-gnome/src/config/assistant.c:92
 msgid "Security: "
 msgstr "Безопасность "
 
-#: ../sflphone-client-gnome/src/config/assistant.c:88
+#: ../sflphone-client-gnome/src/config/assistant.c:94
 msgid "SRTP/ZRTP draft-zimmermann"
 msgstr "SRTP/ZRTP draft-zimmermann"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:90
-#: ../sflphone-client-gnome/src/config/assistant.c:182
+#: ../sflphone-client-gnome/src/config/assistant.c:96
 msgid "None"
 msgstr "Нет"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:210
+#: ../sflphone-client-gnome/src/config/assistant.c:229
 msgid "SFLphone account creation wizard"
 msgstr "Мастер настройки SFLphone"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:236
+#: ../sflphone-client-gnome/src/config/assistant.c:255
 msgid "Welcome to the Account creation wizard of SFLphone!"
 msgstr "Добро пожаловать в SFLphone!"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:237
+#: ../sflphone-client-gnome/src/config/assistant.c:256
 msgid "This installation wizard will help you configure an account."
 msgstr "Этот мастер установки поможет вам настроить ваш аккаунт."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "VoIP Protocols"
 msgstr "VoIP-протоколы"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "Select an account type"
 msgstr "Выберите тип аккаунта"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:253
+#: ../sflphone-client-gnome/src/config/assistant.c:272
 msgid "SIP (Session Initiation Protocol)"
 msgstr "SIP (Session Initiation Protocol)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:255
+#: ../sflphone-client-gnome/src/config/assistant.c:274
 msgid "IAX2 (InterAsterix Exchange)"
 msgstr "IAX2 (InterAsterix Exchange)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Account"
 msgstr "Аккаунты"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Please select one of the following options"
 msgstr "Введите пожалуйста следующие данные"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:271
+#: ../sflphone-client-gnome/src/config/assistant.c:290
 msgid "Create a free SIP/IAX2 account on sflphone.org"
 msgstr "Создать бесплатный SIP/IAX2-аккаунт на sflphone.org"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:273
+#: ../sflphone-client-gnome/src/config/assistant.c:292
 msgid "Register an existing SIP or IAX2 account"
 msgstr "Зарегистрировать существующий SIP или IAX2 аккаунт"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
+#: ../sflphone-client-gnome/src/config/assistant.c:306
 msgid "SIP account settings"
 msgstr "Настройка SIP-аккаунта"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:306
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "Please fill the following information"
 msgstr "Введите пожалуйста следующие данные"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:352
-#: ../sflphone-client-gnome/src/config/assistant.c:381
+#: ../sflphone-client-gnome/src/config/assistant.c:376
+#: ../sflphone-client-gnome/src/config/assistant.c:405
 msgid "Secure communications with _ZRTP"
 msgstr "Защищëнная связь с _ZRTP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "Optional email address"
 msgstr "Электронный адрес (необязательный)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "This email address will be used to send your voicemail messages."
 msgstr "Этот электронный адрес будет использоваться для речевых сообщений"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:373
+#: ../sflphone-client-gnome/src/config/assistant.c:397
 msgid "_Email address"
 msgstr "_Адрес эл. почты"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "IAX2 account settings"
 msgstr "Настройка IAX2-аккаунта"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "Network Address Translation (NAT)"
 msgstr "Network Address Translation (NAT)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "You should probably enable this if you are behind a firewall."
-msgstr ""
-"Вы наверное должны это включить если вы находитесь за сетевым экраном."
+msgstr "Вы наверное должны это включить если вы находитесь за сетевым экраном."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:476
+#: ../sflphone-client-gnome/src/config/assistant.c:505
 msgid "E_nable STUN"
 msgstr "Включить STUN"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:483
+#: ../sflphone-client-gnome/src/config/assistant.c:512
 msgid "_STUN server"
 msgstr "_STUN-сервер"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Account Registration"
 msgstr "Регистрация аккаунта"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Congratulations!"
 msgstr "Поздравляем!"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:583
+#: ../sflphone-client-gnome/src/config/audioconf.c:582
 msgid "Frequency"
 msgstr "Частота"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:588
+#: ../sflphone-client-gnome/src/config/audioconf.c:587
 msgid "Bitrate"
 msgstr "Битрейт"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:593
+#: ../sflphone-client-gnome/src/config/audioconf.c:592
 msgid "Bandwidth"
 msgstr "Пропускная способность"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:673
+#: ../sflphone-client-gnome/src/config/audioconf.c:670
 msgid "ALSA plugin"
 msgstr "ALSA-плагин"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:695
+#: ../sflphone-client-gnome/src/config/audioconf.c:692
 msgid "Output"
 msgstr "Выход"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:717
+#: ../sflphone-client-gnome/src/config/audioconf.c:714
 msgid "Input"
 msgstr "Вход"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:752
+#: ../sflphone-client-gnome/src/config/audioconf.c:749
 msgid "_Voice Activity Detection"
 msgstr "Включить детектор тишины"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:762
+#: ../sflphone-client-gnome/src/config/audioconf.c:759
 msgid "_Noise Reduction (Narrow-Band Companding)"
 msgstr "Шумоподавление"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:798
+#: ../sflphone-client-gnome/src/config/audioconf.c:800
 msgid "Sound Manager"
 msgstr "Менеджер звука"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:807
+#: ../sflphone-client-gnome/src/config/audioconf.c:809
 msgid "_Pulseaudio"
 msgstr "_Pulseaudio"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:811
+#: ../sflphone-client-gnome/src/config/audioconf.c:813
 msgid "_ALSA"
 msgstr "_ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:816
-msgid "_Mute other applications during a call"
-msgstr "Приглушать звук других програм во время звонка"
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:823
+#: ../sflphone-client-gnome/src/config/audioconf.c:819
 msgid "ALSA settings"
 msgstr "Настройка ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:840
+#: ../sflphone-client-gnome/src/config/audioconf.c:836
 msgid "Codecs"
 msgstr "Кодеки"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:869
+#: ../sflphone-client-gnome/src/config/audioconf.c:865
 msgid "Recordings"
 msgstr "Записи"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:873
+#: ../sflphone-client-gnome/src/config/audioconf.c:869
 msgid "Destination folder"
 msgstr "Папка назначения"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:877
+#: ../sflphone-client-gnome/src/config/audioconf.c:873
 msgid "Select a folder"
 msgstr "Выберите папку"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:883
+#: ../sflphone-client-gnome/src/config/audioconf.c:879
 msgid "Ringtones"
 msgstr "Звонки"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:889
+#: ../sflphone-client-gnome/src/config/audioconf.c:885
 msgid "_Enable ringtones"
 msgstr "Включить звонок"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:895
+#: ../sflphone-client-gnome/src/config/audioconf.c:891
 msgid "Choose a ringtone"
 msgstr "Выберите звонок"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:901
+#: ../sflphone-client-gnome/src/config/audioconf.c:897
 msgid "Audio Files"
 msgstr "Звуковые файлы"
 
@@ -825,7 +994,7 @@ msgstr "Переписка номера телефона"
 msgid "_Prefix dialed numbers with"
 msgstr "Добавить перед на набранными номерами"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:195
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:225
 msgid ""
 "This profile is used when you want to reach a remote peer simply by typing a "
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
@@ -836,79 +1005,59 @@ msgstr ""
 "настройки так-же будут использованы если не будет подходящего аккаунта для "
 "входящего или выходящего звонка."
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:274
-msgid "SIP Port"
-msgstr "SIP-порт"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:281
-msgid "UDP Transport"
-msgstr "Транспорт UDP"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:319
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:440
 msgid "Desktop Notifications"
 msgstr "Извещения на рабочем столе"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:323
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:444
 msgid "_Enable notifications"
 msgstr "Включить звонок"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:329
-msgid "Enable voicemail _notifications"
-msgstr "Включить предупреждения о речевых сообщениях"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:341
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:450
 msgid "System Tray Icon"
 msgstr "System Tray Icon"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
 msgid "_Popup main window on incoming call"
 msgstr "_Показать главное окно при входящем звонке"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:349
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:457
 msgid "Ne_ver popup main window"
 msgstr "Никогда не показывать главное окно"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:353
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
 msgid "Hide SFLphone window on _startup"
 msgstr "Спрятать окно SFLphone при пуске"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:359
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:469
 msgid "Calls History"
 msgstr "Журнал звонков"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:362
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:472
 msgid "_Keep my history for at least"
 msgstr "Со_хранить мой журнал звонков как минимум в течении"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:373
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:483
 msgid "days"
 msgstr "дней"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
-msgid "Configuration File"
-msgstr "Файл конфигурации"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
-msgid "Store SIP credentials as MD5 hash"
-msgstr "Записать параметры доступа SIP с шифровкой MD5."
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:423
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:536
 msgid "Preferences"
 msgstr "Предпочтения"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:448
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:561
 msgid "Audio"
 msgstr "Звук"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:566
 msgid "Address Book"
 msgstr "Адресная книга"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:458
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:571
 msgid "Hooks"
 msgstr "Зацепки"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:468
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:581
 msgid "Direct IP calls"
 msgstr "Прямые IP-звонки"
 
@@ -916,11 +1065,11 @@ msgstr "Прямые IP-звонки"
 msgid "Advanced options for TLS"
 msgstr "Дополнительные опции для TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:56
 msgid "TLS transport"
 msgstr "Транспорт TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:60
 msgid ""
 "TLS transport can be used along with UDP for those calls that would\n"
 "require secure sip transactions (aka SIPS). You can configure a different\n"
@@ -933,55 +1082,55 @@ msgstr ""
 "каждого аккаунта (но каждый из них будет использовать свой выделенный "
 "порт).\n"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:103
 msgid "Certificate of Authority list"
 msgstr "Список центра сертификации"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:107
 msgid "Choose a CA list file (optional)"
 msgstr "Выберите файл Центра сертификации (необязательный)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:115
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:131
 msgid "Public endpoint certificate file"
 msgstr "Файл с публичным сертификатом"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:119
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:135
 msgid "Choose a public endpoint certificate (optional)"
 msgstr "Выберите публичный сертификат (необязательный)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:134
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:159
 msgid "Choose a private key file (optional)"
 msgstr "Выберите файл с секретным ключом (необязательно)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:145
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:181
 msgid "Password for the private key"
 msgstr "Пароль для секретного ключа"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:168
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:204
 msgid "TLS protocol method"
 msgstr "Метод протокола TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:202
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:238
 msgid "TLS cipher list"
 msgstr "Список шифров TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:211
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:247
 msgid "Server name instance for outgoing TLS connection"
 msgstr "Имя сервера для выходящих TLS-подключений."
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:219
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:255
 msgid "Negotiation timeout (sec:msec)"
 msgstr "Время ожидания соединения (сек:мсек)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:236
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:272
 msgid "Verify incoming certificates, as a server"
 msgstr "Проверять входящие сертификаты (в качестве сервера)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:242
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:278
 msgid "Verify certificates from answer, as a client"
 msgstr "Проверять входящие сертификаты (в качестве клиента)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:248
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:284
 msgid "Require certificate for incoming tls connections"
 msgstr "Требовать сертификат для входящих TLS-подключений"
 
@@ -989,54 +1138,90 @@ msgstr "Требовать сертификат для входящих TLS-по
 msgid "ZRTP Options"
 msgstr "Опции ZRTP"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:68
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:69
 msgid "Send Hello Hash in S_DP"
 msgstr "Послать hello-хэш в S_DP"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:74
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:75
 msgid "Ask User to Confirm SAS"
 msgstr "Попросить пользователя подтвердить пароль SAS"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:80
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:81
 msgid "_Warn if ZRTP not supported"
 msgstr "_Предупредить если ZRTP не пддерживается"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:86
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:87
 msgid "Display SAS once for hold events"
 msgstr "Показать SAS один раз"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:56
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:58
 msgid "Search all"
 msgstr "Искать все"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:57
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:70
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:82
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:94
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:59
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:72
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:84
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:96
 msgid "Click here to change the search type"
 msgstr "Нажмите, чтобы изменить тип поиска"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:69
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:71
 msgid "Search by missed call"
 msgstr "Поиск по пропущенным вызовам"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:81
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:83
 msgid "Search by incoming call"
 msgstr "Поиск по входящим вызовам"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:93
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:95
 msgid "Search by outgoing call"
 msgstr "Поиск по исходящим вызовам"
 
+#~ msgid "IP call - %s"
+#~ msgstr "IP звонок  - %s"
+
+#~ msgid "Codec"
+#~ msgstr "Codec"
+
+#~ msgid "Network"
+#~ msgstr "Сеть"
+
+#~ msgid "Manually"
+#~ msgstr "Вручную"
+
+#~ msgid "There "
+#~ msgstr "Здесь "
+
+#~ msgid "is "
+#~ msgstr "Зарегестрирован "
+
+#~ msgid "are "
+#~ msgstr "Зарегестрированны "
+
+#~ msgid "s"
+#~ msgstr "a"
+
+#~ msgid "_Mute other applications during a call"
+#~ msgstr "Приглушать звук других програм во время звонка"
+
+#~ msgid "SIP Port"
+#~ msgstr "SIP-порт"
+
+#~ msgid "UDP Transport"
+#~ msgstr "Транспорт UDP"
+
+#~ msgid "Enable voicemail _notifications"
+#~ msgstr "Включить предупреждения о речевых сообщениях"
+
+#~ msgid "Store SIP credentials as MD5 hash"
+#~ msgstr "Записать параметры доступа SIP с шифровкой MD5."
+
 #~ msgid "Account creation wizard"
 #~ msgstr "Мастер настройки SFLphone"
 
 #~ msgid "Voicemail number"
 #~ msgstr "Номер автоответчика #"
 
-#~ msgid "Address book"
-#~ msgstr "Адресная книга"
-
 #~ msgid "Display volume controls"
 #~ msgstr "_Настройки громкости"
 
@@ -1049,9 +1234,6 @@ msgstr "Поиск по исходящим вызовам"
 #~ msgid "Hold on"
 #~ msgstr "Удержать звонок"
 
-#~ msgid "Transfer"
-#~ msgstr "Переслать звонок на другой номер"
-
 #~ msgid "Record"
 #~ msgstr "Записать переговор"
 
@@ -1091,33 +1273,9 @@ msgstr "Поиск по исходящим вызовам"
 #~ msgid "Prefix dialed numbers with"
 #~ msgstr "Добавить перед на набранными номерами"
 
-#~ msgid "_Help"
-#~ msgstr "_Помощь"
-
 #~ msgid "_Account creation wizard"
 #~ msgstr "Мастер настройки SFLphone"
 
-#~ msgid "_Call"
-#~ msgstr "_Звонок"
-
-#~ msgid "Clear _history"
-#~ msgstr "_Стереть журнал"
-
-#~ msgid "_Accounts"
-#~ msgstr "_Аккаунты"
-
-#~ msgid "_Edit"
-#~ msgstr "_Правка"
-
-#~ msgid "_Volume controls"
-#~ msgstr "_Настройки громкости"
-
-#~ msgid "_View"
-#~ msgstr "_Вид"
-
-#~ msgid "History"
-#~ msgstr "Журнал"
-
 #~ msgid "_Enable this account"
 #~ msgstr "_Включить"
 
@@ -1185,9 +1343,6 @@ msgstr "Поиск по исходящим вызовам"
 #~ msgid "Enable STUN"
 #~ msgstr "Задействовать STUN"
 
-#~ msgid "Transfer to : "
-#~ msgstr "Передать : "
-
 #~ msgid "Default account"
 #~ msgstr "Учетная запись по умолчанию"
 
@@ -1218,12 +1373,9 @@ msgstr "Поиск по исходящим вызовам"
 #~ msgid "Give up transfer"
 #~ msgstr "Прекратить передачу"
 
-#~ msgid "Remove the selected account"
-#~ msgstr "Удалить выбранную учетную запись"
-
 #~ msgid ""
-#~ "This button enables you to initialize a new account. You will then be able "
-#~ "to edit it using the form on the right."
+#~ "This button enables you to initialize a new account. You will then be "
+#~ "able to edit it using the form on the right."
 #~ msgstr ""
 #~ "Эта кнопка позволяет инициализировать новую учетную запись. Редактировать "
 #~ "данные будет возможно в форме справа."
@@ -1275,18 +1427,9 @@ msgstr "Поиск по исходящим вызовам"
 #~ msgid "Keep my history for at least"
 #~ msgstr "По крайней мере хранить историю"
 
-#~ msgid "Clear history"
-#~ msgstr "Очистить историю"
-
-#~ msgid "Call history"
-#~ msgstr "История звонков"
-
 #~ msgid "Incoming call"
 #~ msgstr "Входящий звонок"
 
-#~ msgid "Call back"
-#~ msgstr "Обратный вызов"
-
 #~ msgid "(C) 2009 Savoir-faire Linux"
 #~ msgstr "(C) 2009 Savoir-faire Linux"
 
@@ -1317,16 +1460,16 @@ msgstr "Поиск по исходящим вызовам"
 #~ msgctxt "NAME OF TRANSLATORS"
 #~ msgid "Your names"
 #~ msgstr ""
-#~ ",Launchpad Contributions:,Hussein Abdallah, ,Launchpad "
-#~ "Contributions:,Emmanuel Milou,Hussein Abdallah,Maxime Chambreuil,Pavlo "
-#~ "Kucheriavyi,Sergei Sedov, ,Launchpad Contributions:,Emmanuel Milou,Hussein "
-#~ "Abdallah,Hussein Abdallah,Maxime Chambreuil,Pavlo Kucheriavyi,Sergei Sedov, "
-#~ ",Launchpad Contributions:,Emmanuel Milou,Hussein Abdallah,Hussein "
-#~ "Abdallah,Maxime Chambreuil,Pavlo Kucheriavyi,Sergey Sedov"
+#~ ",Launchpad Contributions:,Hussein Abdallah, ,Launchpad Contributions:,"
+#~ "Emmanuel Milou,Hussein Abdallah,Maxime Chambreuil,Pavlo Kucheriavyi,"
+#~ "Sergei Sedov, ,Launchpad Contributions:,Emmanuel Milou,Hussein Abdallah,"
+#~ "Hussein Abdallah,Maxime Chambreuil,Pavlo Kucheriavyi,Sergei Sedov, ,"
+#~ "Launchpad Contributions:,Emmanuel Milou,Hussein Abdallah,Hussein Abdallah,"
+#~ "Maxime Chambreuil,Pavlo Kucheriavyi,Sergey Sedov"
 
 #~ msgctxt "EMAIL OF TRANSLATORS"
 #~ msgid "Your emails"
 #~ msgstr ""
-#~ ",,,,,emmanuel.milou@savoirfairelinux.com,,maxime.chambreuil@gmail.com,,,,,emm"
-#~ "anuel.milou@savoirfairelinux.com,,,maxime.chambreuil@gmail.com,,,,,emmanuel.m"
-#~ "ilou@savoirfairelinux.com,,,maxime.chambreuil@gmail.com,,"
+#~ ",,,,,emmanuel.milou@savoirfairelinux.com,,maxime.chambreuil@gmail.com,,,,,"
+#~ "emmanuel.milou@savoirfairelinux.com,,,maxime.chambreuil@gmail.com,,,,,"
+#~ "emmanuel.milou@savoirfairelinux.com,,,maxime.chambreuil@gmail.com,,"
diff --git a/lang/update-template.sh b/lang/update-template.sh
new file mode 100755
index 0000000000..6d91e60fe9
--- /dev/null
+++ b/lang/update-template.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+# Parse the GNOME client only to build the langage template
+
+xgettext --from-code=utf-8 --language=C -k_ -kN_ -kc_:1c,2  -kn_:1,2    -ktr2i18n -ktr2i18n:2c,1 -kki18nc:1c,2 -kki18n -ki18n -ki18nc:1c,2 -o sflphone.pot ../sflphone-client-gnome/src/*.c ../sflphone-client-gnome/src/dbus/*.c ../sflphone-client-gnome/src/config/*.c ../sflphone-client-gnome/src/contacts/*.c ../sflphone-client-gnome/src/icons/*.c ../sflphone-client-gnome/src/widget/*.c
+
diff --git a/lang/update.sh b/lang/update.sh
deleted file mode 100755
index 2903b9fba1..0000000000
--- a/lang/update.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-xgettext --from-code=utf-8 --language=C --language=C++ --kde \
-     -k_  -kc_:1c,2  -kn_:1,2    -ktr2i18n -ktr2i18n:2c,1 -kki18nc:1c,2 -kki18n -ki18n -ki18nc:1c,2 \
-     -o sflphone.pot \
-     ../sflphone-client-kde/src/*.cpp        ../sflphone-client-kde/src/*.h \
-     ../sflphone-client-kde/src/conf/*.h     ../sflphone-client-kde/src/conf/*.cpp \
-     ../sflphone-client-kde/build/src/*.h    ../sflphone-client-kde/build/src/*.cpp \
-     ../sflphone-client-gnome/src/*.c        ../sflphone-client-gnome/src/config/*.c \
-     ../sflphone-client-gnome/src/dbus/*.c   ../sflphone-client-gnome/src/contacts/*.c
-
-for fichier in `find  .  -name *.po `
-do
-msgmerge --update $fichier sflphone.pot
-done
\ No newline at end of file
diff --git a/lang/zh_CN/zh_CN.po b/lang/zh_CN/zh_CN.po
index 65542440d8..bfc3429d51 100644
--- a/lang/zh_CN/zh_CN.po
+++ b/lang/zh_CN/zh_CN.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: SFLphone 0.9.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-14 11:18-0400\n"
+"POT-Creation-Date: 2009-12-03 10:22-0500\n"
 "PO-Revision-Date: 2009-10-26 20:46+0000\n"
 "Last-Translator: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>\n"
 "Language-Team: SavoirFaireLinux Inc <sflphoneteam@savoirfairelinux.com>\n"
@@ -61,24 +61,15 @@ msgstr "Stun服务器无效"
 msgid "Invalid"
 msgstr "无效"
 
-#: ../sflphone-client-gnome/src/actions.c:54
-#: ../sflphone-client-gnome/src/sflnotify.c:94
-#, c-format
-msgid "%d voice mail"
-msgid_plural "%d voice mails"
-msgstr[0] "%d 个语音信息"
-
-#: ../sflphone-client-gnome/src/actions.c:83
-#: ../sflphone-client-gnome/src/actions.c:919
-#: ../sflphone-client-gnome/src/actions.c:926
+#: ../sflphone-client-gnome/src/actions.c:98
 msgid "Using account"
 msgstr "使用账户"
 
-#: ../sflphone-client-gnome/src/actions.c:89
+#: ../sflphone-client-gnome/src/actions.c:104
 msgid "No registered accounts"
 msgstr "没有已注册帐户"
 
-#: ../sflphone-client-gnome/src/actions.c:268
+#: ../sflphone-client-gnome/src/actions.c:285
 msgid ""
 "Unable to connect to the SFLphone server.\n"
 "Make sure the daemon is running."
@@ -86,26 +77,23 @@ msgstr ""
 "连接SFLphone服务器失败.\n"
 "请检查daemon是否还在运行."
 
-#: ../sflphone-client-gnome/src/actions.c:913
-#, c-format
-msgid "IP call - %s"
-msgstr "IP 电话 - %s"
-
-#: ../sflphone-client-gnome/src/actions.c:922
-msgid "Codec"
-msgstr "编码"
+#: ../sflphone-client-gnome/src/actions.c:589
+#: ../sflphone-client-gnome/src/actions.c:911
+msgid "Direct SIP call"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:1119
+#: ../sflphone-client-gnome/src/actions.c:1103
 #, c-format
 msgid ""
 "<b>Error: No audio codecs found.\n"
 "\n"
-"</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
-"<b>.sflphone</b> directory in your home( <i>%s</i> )"
+"</b> SFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</"
+"b> directory in your home( <i>%s</i> )"
 msgstr ""
 "<b>错误:无法找到codecs编码文件.\n"
 "\n"
-"</b> SFL声音codecs文件应位于<i>%s</i> 或 位于主目录( <i>%s</i> )的<b>.sflphone</b>目录下"
+"</b> SFL声音codecs文件应位于<i>%s</i> 或 位于主目录( <i>%s</i> )的<b>."
+"sflphone</b>目录下"
 
 #: ../sflphone-client-gnome/src/errors.c:29
 msgid ""
@@ -149,53 +137,53 @@ msgstr "有电话正在处理中"
 msgid "Do you still want to quit?"
 msgstr "确认要退出?"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:299
+#: ../sflphone-client-gnome/src/mainwindow.c:298
 msgid "SFLphone Error"
 msgstr "SFLphone出错"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:391
+#: ../sflphone-client-gnome/src/mainwindow.c:392
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:392
+#: ../sflphone-client-gnome/src/mainwindow.c:393
 msgid "Secure Communication Unavailable"
 msgstr "安全通信不可用"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:393
-#: ../sflphone-client-gnome/src/mainwindow.c:415
+#: ../sflphone-client-gnome/src/mainwindow.c:394
+#: ../sflphone-client-gnome/src/mainwindow.c:416
 msgid "Continue"
 msgstr "继续"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:394
-#: ../sflphone-client-gnome/src/mainwindow.c:416
-#: ../sflphone-client-gnome/src/mainwindow.c:430
+#: ../sflphone-client-gnome/src/mainwindow.c:395
+#: ../sflphone-client-gnome/src/mainwindow.c:417
+#: ../sflphone-client-gnome/src/mainwindow.c:431
 msgid "Stop Call"
 msgstr "停止呼叫"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:413
+#: ../sflphone-client-gnome/src/mainwindow.c:414
 #, c-format
 msgid ""
 "A %s error forced the call with %s to fall under unencrypted mode.\n"
 "Exact reason: %s\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:414
+#: ../sflphone-client-gnome/src/mainwindow.c:415
 msgid "ZRTP negotiation failed"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:427
+#: ../sflphone-client-gnome/src/mainwindow.c:428
 #, c-format
 msgid ""
 "%s wants to stop using secure communication. Confirm will resume "
 "conversation without SRTP.\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:428
+#: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm Go Clear"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:429
+#: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Confirm"
 msgstr "确认"
 
@@ -210,6 +198,12 @@ msgstr "%s 帐户: %s"
 msgid "<i>From</i> %s"
 msgstr "<i>拨入方</i> %s"
 
+#: ../sflphone-client-gnome/src/sflnotify.c:94
+#, c-format
+msgid "%d voice mail"
+msgid_plural "%d voice mails"
+msgstr[0] "%d 个语音信息"
+
 #: ../sflphone-client-gnome/src/sflnotify.c:111
 #, c-format
 msgid "Calling with %s account <i>%s</i>"
@@ -257,217 +251,413 @@ msgstr "扬声器音量"
 msgid "Mic volume"
 msgstr "话筒音量"
 
-#: ../sflphone-client-gnome/src/statusicon.c:91
+#: ../sflphone-client-gnome/src/statusicon.c:96
 msgid "_Show main window"
 msgstr "显示主窗口(S)"
 
-#: ../sflphone-client-gnome/src/statusicon.c:126
+#: ../sflphone-client-gnome/src/statusicon.c:131
 msgid "SFLphone"
 msgstr "SFLphone"
 
-#: ../sflphone-client-gnome/src/statusicon.c:127
+#: ../sflphone-client-gnome/src/statusicon.c:132
 #, c-format
 msgid "%i account configured"
 msgid_plural "%i accounts configured"
 msgstr[0] "已配置了%i个账户"
 
 #: ../sflphone-client-gnome/src/toolbar.c:38
-#: ../sflphone-client-gnome/src/uimanager.c:750
+#: ../sflphone-client-gnome/src/uimanager.c:693
+#: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Voicemail"
 msgstr "语音信箱"
 
-#: ../sflphone-client-gnome/src/uimanager.c:403
+#: ../sflphone-client-gnome/src/uimanager.c:117
+msgid "No address book selected"
+msgstr "地址簿"
+
+#: ../sflphone-client-gnome/src/uimanager.c:137
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "Address book"
+msgstr "地址簿"
+
+#: ../sflphone-client-gnome/src/uimanager.c:279
+msgid "Voicemail (%i)"
+msgstr "语音信箱 (%i)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:342
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
 msgstr "SFLphone是一个VoIP客户端,它兼容SIP和IAX2协议."
 
-#: ../sflphone-client-gnome/src/uimanager.c:406
+#: ../sflphone-client-gnome/src/uimanager.c:345
 msgid "About SFLphone"
 msgstr "关于SFLphone"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1028
+#: ../sflphone-client-gnome/src/uimanager.c:719
+msgid "Call"
+msgstr "电话(_C)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+#: ../sflphone-client-gnome/src/uimanager.c:1184
+msgid "_New call"
+msgstr "新电话(_N)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+msgid "Place a new call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:721
+#: ../sflphone-client-gnome/src/uimanager.c:979
 msgid "_Pick up"
 msgstr "接听(_P)"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1040
-#: ../sflphone-client-gnome/src/uimanager.c:1081
+#: ../sflphone-client-gnome/src/uimanager.c:721
+msgid "Answer the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:722
+#: ../sflphone-client-gnome/src/uimanager.c:991
+#: ../sflphone-client-gnome/src/uimanager.c:1032
 msgid "_Hang up"
 msgstr "挂断(_H)"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1052
-#: ../sflphone-client-gnome/src/uimanager.c:1093
-msgid "On _Hold"
+#: ../sflphone-client-gnome/src/uimanager.c:722
+msgid "Finish the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "O_n hold"
 msgstr "保持(_H)"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1064
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "Place the call on hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "O_ff hold"
+msgstr "恢复通话"
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "Place the call off hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:725
+#: ../sflphone-client-gnome/src/uimanager.c:1015
 msgid "_Record"
 msgstr "录音(_R)"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1154
+#: ../sflphone-client-gnome/src/uimanager.c:725
+msgid "Record the current conversation"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Configuration _Assistant"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Run the configuration assistant"
+msgstr "Stun配置有误"
+
+#: ../sflphone-client-gnome/src/uimanager.c:727
+msgid "Call your voicemail"
+msgstr "%d 个语音信息"
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "_Close"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "Minimize to system tray"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "_Quit"
+msgstr "编辑(_E)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "Quit the program"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:732
+msgid "_Edit"
+msgstr "编辑(_E)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "_Copy"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "Copy the selection"
+msgstr "删除所选账户"
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "_Paste"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "Paste the clipboard"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear _history"
+msgstr "清空历史记录(_H)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear the call history"
+msgstr "清空历史记录"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "_Accounts"
+msgstr "账户(_A)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "Edit your accounts"
+msgstr "当前帐户"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "_Preferences"
+msgstr "首选项"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "Change your preferences"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:740
+msgid "_View"
+msgstr "查看(_V)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:743
+msgid "_Help"
+msgstr "帮助(_H)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Contents"
+msgstr "继续"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Open the manual"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:745
+msgid "About this application"
+msgstr "身份验证"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "_Transfer"
+msgstr "转接"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "Transfer the call"
+msgstr "转给: "
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "_Show toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "Show the toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "_Dialpad"
+msgstr "禁用"
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "Show the dialpad"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "_Volume controls"
+msgstr "音量控制(V)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "Show the volume controls"
+msgstr "音量控制(V)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "_History"
+msgstr "历史"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "Calls history"
+msgstr "呼叫记录"
+
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "_Address book"
+msgstr "地址簿"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1003
+#: ../sflphone-client-gnome/src/uimanager.c:1044
+msgid "On _Hold"
+msgstr "保持(_H)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1107
 msgid "_Call back"
 msgstr "回叫(_C)"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1226
-msgid "_New call"
-msgstr "新电话(_N)"
-
-#: ../sflphone-client-gnome/src/uimanager.c:1300
+#: ../sflphone-client-gnome/src/uimanager.c:1258
 msgid "Edit phone number"
 msgstr "编辑电话号码"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1311
+#: ../sflphone-client-gnome/src/uimanager.c:1269
 msgid "Edit the phone number before making a call"
 msgstr "拨出电话前编辑电话号码"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:164
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:180
 msgid "Account Parameters"
 msgstr "帐户相关参数"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:173
-#: ../sflphone-client-gnome/src/config/assistant.c:294
-#: ../sflphone-client-gnome/src/config/assistant.c:402
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/assistant.c:314
+#: ../sflphone-client-gnome/src/config/assistant.c:427
 msgid "_Alias"
 msgstr "别名(A)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:181
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:197
 msgid "_Protocol"
 msgstr "协议(P)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:199
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:215
 msgid "Unknown"
 msgstr "未知"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:209
-#: ../sflphone-client-gnome/src/config/assistant.c:302
-#: ../sflphone-client-gnome/src/config/assistant.c:410
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
+#: ../sflphone-client-gnome/src/config/assistant.c:322
+#: ../sflphone-client-gnome/src/config/assistant.c:435
 msgid "_Host name"
 msgstr "主机名(H)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:217
-#: ../sflphone-client-gnome/src/config/assistant.c:310
-#: ../sflphone-client-gnome/src/config/assistant.c:418
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:233
+#: ../sflphone-client-gnome/src/config/assistant.c:330
+#: ../sflphone-client-gnome/src/config/assistant.c:443
 msgid "_User name"
 msgstr "用户名(U)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:234
-#: ../sflphone-client-gnome/src/config/assistant.c:326
-#: ../sflphone-client-gnome/src/config/assistant.c:433
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:346
+#: ../sflphone-client-gnome/src/config/assistant.c:458
 msgid "_Password"
 msgstr "密码(P)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:254
-#: ../sflphone-client-gnome/src/config/assistant.c:344
-#: ../sflphone-client-gnome/src/config/assistant.c:449
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:270
+#: ../sflphone-client-gnome/src/config/assistant.c:363
+#: ../sflphone-client-gnome/src/config/assistant.c:473
+msgid "Show password"
+msgstr "密码"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:274
+#: ../sflphone-client-gnome/src/config/assistant.c:368
+#: ../sflphone-client-gnome/src/config/assistant.c:478
 msgid "_Voicemail number"
 msgstr "语音信箱号码(V)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:340
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:361
 msgid "Authentication"
 msgstr "身份验证"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:362
 msgid "Secret"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:605
 msgid "Credential"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:501
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:640
 msgid "Authentication name"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:512
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:651
 msgid "Password"
 msgstr "密码"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:535
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:909
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:201
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1056
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:321
 msgid "Security"
 msgstr "安全"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:547
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:213
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:333
 msgid "Use TLS transport (sips)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:552
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:218
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:338
 msgid "SRTP key exchange"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:699
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
 msgid "Disabled"
 msgstr "禁用"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:795
 msgid "Registration"
 msgstr "注册"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:800
 msgid "Registration expire"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:809
 msgid "_Comply with RFC 3263"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
-msgid "Network"
-msgstr "网络"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:816
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:234
+msgid "Network Interface"
+msgstr "网络连接失败"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:830
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:249
 msgid "Local address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:301
 msgid "Local port"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:752
-msgid "Set published address and port:"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:893
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:928
+msgid "Published address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:756
-msgid "Using STUN "
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+msgid "Using STUN"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:761
-msgid "Same as local parameters"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:906
+msgid "STUN server URL"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:764
-msgid "Manually"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:914
+msgid "Same as local parameters"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:769
-msgid "Published address"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:917
+msgid "Set published address and port:"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:777
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:936
 msgid "Published port"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:785
-msgid "STUN server URL"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1027
 msgid "Account settings"
 msgstr "帐户设置"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1046
 msgid "Basic"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:904
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1051
 msgid "Advanced"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:169
-msgid "Server returned \""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:164
+#, c-format
+msgid "Server returned \"%s\" (%d)"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
@@ -486,32 +676,18 @@ msgstr "帐户"
 msgid "Configured Accounts"
 msgstr "已配置帐户"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
-msgid "There "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "is "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "are "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
-msgid " active account"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
-msgid "s"
-msgstr ""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:501
+#, c-format
+msgid "There is %d active account"
+msgid_plural "There are %d active accounts"
+msgstr[0] ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:507
 msgid "You have no active account"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:556
 msgid "General"
 msgstr "常用配置"
 
@@ -556,225 +732,220 @@ msgid "Select which Evolution address books to use"
 msgstr "选择使用如下Evolution地址薄"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:404
-#: ../sflphone-client-gnome/src/config/audioconf.c:578
+#: ../sflphone-client-gnome/src/config/audioconf.c:577
 msgid "Name"
 msgstr "名称"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:69
+#: ../sflphone-client-gnome/src/config/assistant.c:75
 #, c-format
 msgid "This assistant is now finished."
 msgstr "配置完成."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:71
+#: ../sflphone-client-gnome/src/config/assistant.c:77
 msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
 msgstr "你可以随时在 选项/帐户 窗口中查看注册状态或者修改帐户参数."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:74
+#: ../sflphone-client-gnome/src/config/assistant.c:80
 msgid "Alias"
 msgstr "别名"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:78
+#: ../sflphone-client-gnome/src/config/assistant.c:84
 msgid "Server"
 msgstr "服务器"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:82
+#: ../sflphone-client-gnome/src/config/assistant.c:88
 msgid "Username"
 msgstr "用户名"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:86
+#: ../sflphone-client-gnome/src/config/assistant.c:92
 msgid "Security: "
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:88
+#: ../sflphone-client-gnome/src/config/assistant.c:94
 msgid "SRTP/ZRTP draft-zimmermann"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:90
-#: ../sflphone-client-gnome/src/config/assistant.c:182
+#: ../sflphone-client-gnome/src/config/assistant.c:96
 msgid "None"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:210
+#: ../sflphone-client-gnome/src/config/assistant.c:229
 msgid "SFLphone account creation wizard"
 msgstr "SFLphone账户创建向导"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:236
+#: ../sflphone-client-gnome/src/config/assistant.c:255
 msgid "Welcome to the Account creation wizard of SFLphone!"
 msgstr "欢迎使用SFLphone帐户创建向导!"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:237
+#: ../sflphone-client-gnome/src/config/assistant.c:256
 msgid "This installation wizard will help you configure an account."
 msgstr "安装向导将帮助您配置帐户"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "VoIP Protocols"
 msgstr "VoIP协议"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "Select an account type"
 msgstr "选择帐户类型"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:253
+#: ../sflphone-client-gnome/src/config/assistant.c:272
 msgid "SIP (Session Initiation Protocol)"
 msgstr "SIP(会话初始化协议)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:255
+#: ../sflphone-client-gnome/src/config/assistant.c:274
 msgid "IAX2 (InterAsterix Exchange)"
 msgstr "IAX2(Asterisk内部交换协议)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Account"
 msgstr "帐户"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Please select one of the following options"
 msgstr "请选择以下选项中的一个"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:271
+#: ../sflphone-client-gnome/src/config/assistant.c:290
 msgid "Create a free SIP/IAX2 account on sflphone.org"
 msgstr "在sflphone.org上创建免费的SIP/IAX2帐户"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:273
+#: ../sflphone-client-gnome/src/config/assistant.c:292
 msgid "Register an existing SIP or IAX2 account"
 msgstr "注册已存在的SIP或IAX2帐户"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
+#: ../sflphone-client-gnome/src/config/assistant.c:306
 msgid "SIP account settings"
 msgstr "SIP帐户设置"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:306
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "Please fill the following information"
 msgstr "请填写以下信息"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:352
-#: ../sflphone-client-gnome/src/config/assistant.c:381
+#: ../sflphone-client-gnome/src/config/assistant.c:376
+#: ../sflphone-client-gnome/src/config/assistant.c:405
 msgid "Secure communications with _ZRTP"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "Optional email address"
 msgstr "可选邮件地址"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "This email address will be used to send your voicemail messages."
 msgstr "这个邮件地址将被用来发送您的语音邮箱消息"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:373
+#: ../sflphone-client-gnome/src/config/assistant.c:397
 msgid "_Email address"
 msgstr "邮件地址(E)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "IAX2 account settings"
 msgstr "IAX2帐户设置"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "Network Address Translation (NAT)"
 msgstr "网络地址解析(NAT)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "You should probably enable this if you are behind a firewall."
 msgstr "如果你使用网络使用防火墙,你很有可能需要设定此项."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:476
+#: ../sflphone-client-gnome/src/config/assistant.c:505
 msgid "E_nable STUN"
 msgstr "使用STUN(n)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:483
+#: ../sflphone-client-gnome/src/config/assistant.c:512
 msgid "_STUN server"
 msgstr "STUN服务器(S)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Account Registration"
 msgstr "帐户注册"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Congratulations!"
 msgstr "恭喜!"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:583
+#: ../sflphone-client-gnome/src/config/audioconf.c:582
 msgid "Frequency"
 msgstr "频率"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:588
+#: ../sflphone-client-gnome/src/config/audioconf.c:587
 msgid "Bitrate"
 msgstr "比率"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:593
+#: ../sflphone-client-gnome/src/config/audioconf.c:592
 msgid "Bandwidth"
 msgstr "带宽"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:673
+#: ../sflphone-client-gnome/src/config/audioconf.c:670
 msgid "ALSA plugin"
 msgstr "ALSA插件"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:695
+#: ../sflphone-client-gnome/src/config/audioconf.c:692
 msgid "Output"
 msgstr "输出"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:717
+#: ../sflphone-client-gnome/src/config/audioconf.c:714
 msgid "Input"
 msgstr "输入"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:752
+#: ../sflphone-client-gnome/src/config/audioconf.c:749
 msgid "_Voice Activity Detection"
 msgstr "声音状态检测(V)"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:762
+#: ../sflphone-client-gnome/src/config/audioconf.c:759
 msgid "_Noise Reduction (Narrow-Band Companding)"
 msgstr "降噪处理-窄频压缩(N)"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:798
+#: ../sflphone-client-gnome/src/config/audioconf.c:800
 msgid "Sound Manager"
 msgstr "音频管理器"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:807
+#: ../sflphone-client-gnome/src/config/audioconf.c:809
 msgid "_Pulseaudio"
 msgstr "Pulseaudio"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:811
+#: ../sflphone-client-gnome/src/config/audioconf.c:813
 msgid "_ALSA"
 msgstr "ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:816
-msgid "_Mute other applications during a call"
-msgstr "当有来电时静音其它应用程序(c)"
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:823
+#: ../sflphone-client-gnome/src/config/audioconf.c:819
 msgid "ALSA settings"
 msgstr "ALSA设置"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:840
+#: ../sflphone-client-gnome/src/config/audioconf.c:836
 msgid "Codecs"
 msgstr "Codecs编码"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:869
+#: ../sflphone-client-gnome/src/config/audioconf.c:865
 msgid "Recordings"
 msgstr "记录"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:873
+#: ../sflphone-client-gnome/src/config/audioconf.c:869
 msgid "Destination folder"
 msgstr "目标文件夹"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:877
+#: ../sflphone-client-gnome/src/config/audioconf.c:873
 msgid "Select a folder"
 msgstr "选择文件夹"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:883
+#: ../sflphone-client-gnome/src/config/audioconf.c:879
 msgid "Ringtones"
 msgstr "铃声"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:889
+#: ../sflphone-client-gnome/src/config/audioconf.c:885
 msgid "_Enable ringtones"
 msgstr "启用铃声(E)"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:895
+#: ../sflphone-client-gnome/src/config/audioconf.c:891
 msgid "Choose a ringtone"
 msgstr "选择铃声"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:901
+#: ../sflphone-client-gnome/src/config/audioconf.c:897
 msgid "Audio Files"
 msgstr "音频文件"
 
@@ -811,86 +982,66 @@ msgstr "重设电话号码"
 msgid "_Prefix dialed numbers with"
 msgstr "号码前缀(P)"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:195
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:225
 msgid ""
 "This profile is used when you want to reach a remote peer simply by typing a "
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
 "also be used if no account can be matched to an incoming or outgoing call."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:274
-msgid "SIP Port"
-msgstr "SIP端口号"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:281
-msgid "UDP Transport"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:319
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:440
 msgid "Desktop Notifications"
 msgstr "桌面提示"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:323
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:444
 msgid "_Enable notifications"
 msgstr "启用提示(E)"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:329
-msgid "Enable voicemail _notifications"
-msgstr "启用语音邮箱提示(n)"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:341
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:450
 msgid "System Tray Icon"
 msgstr "系统托盘图标"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
 msgid "_Popup main window on incoming call"
 msgstr "来电时弹出主窗口(P)"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:349
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:457
 msgid "Ne_ver popup main window"
 msgstr "从不弹出主窗口(v)"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:353
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
 msgid "Hide SFLphone window on _startup"
 msgstr "在启动时隐藏SFLphone主窗口"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:359
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:469
 msgid "Calls History"
 msgstr "拨号历史"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:362
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:472
 msgid "_Keep my history for at least"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:373
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:483
 msgid "days"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
-msgid "Configuration File"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
-msgid "Store SIP credentials as MD5 hash"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:423
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:536
 msgid "Preferences"
 msgstr "首选项"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:448
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:561
 msgid "Audio"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:566
 msgid "Address Book"
 msgstr "地址簿"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:458
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:571
 msgid "Hooks"
 msgstr "钩键"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:468
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:581
 msgid "Direct IP calls"
 msgstr ""
 
@@ -898,11 +1049,11 @@ msgstr ""
 msgid "Advanced options for TLS"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:56
 msgid "TLS transport"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:60
 msgid ""
 "TLS transport can be used along with UDP for those calls that would\n"
 "require secure sip transactions (aka SIPS). You can configure a different\n"
@@ -911,55 +1062,55 @@ msgid ""
 "port, different one from each other\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:103
 msgid "Certificate of Authority list"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:107
 msgid "Choose a CA list file (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:115
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:131
 msgid "Public endpoint certificate file"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:119
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:135
 msgid "Choose a public endpoint certificate (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:134
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:159
 msgid "Choose a private key file (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:145
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:181
 msgid "Password for the private key"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:168
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:204
 msgid "TLS protocol method"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:202
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:238
 msgid "TLS cipher list"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:211
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:247
 msgid "Server name instance for outgoing TLS connection"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:219
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:255
 msgid "Negotiation timeout (sec:msec)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:236
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:272
 msgid "Verify incoming certificates, as a server"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:242
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:278
 msgid "Verify certificates from answer, as a client"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:248
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:284
 msgid "Require certificate for incoming tls connections"
 msgstr ""
 
@@ -967,45 +1118,63 @@ msgstr ""
 msgid "ZRTP Options"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:68
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:69
 msgid "Send Hello Hash in S_DP"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:74
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:75
 msgid "Ask User to Confirm SAS"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:80
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:81
 msgid "_Warn if ZRTP not supported"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:86
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:87
 msgid "Display SAS once for hold events"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:56
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:58
 msgid "Search all"
 msgstr "查询所有"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:57
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:70
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:82
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:94
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:59
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:72
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:84
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:96
 msgid "Click here to change the search type"
 msgstr "请点击此处改变查询方式"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:69
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:71
 msgid "Search by missed call"
 msgstr "从未接电话中查询"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:81
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:83
 msgid "Search by incoming call"
 msgstr "从来电中查询"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:93
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:95
 msgid "Search by outgoing call"
 msgstr "从拨出电话中查询"
 
+#~ msgid "IP call - %s"
+#~ msgstr "IP 电话 - %s"
+
+#~ msgid "Codec"
+#~ msgstr "编码"
+
+#~ msgid "Network"
+#~ msgstr "网络"
+
+#~ msgid "_Mute other applications during a call"
+#~ msgstr "当有来电时静音其它应用程序(c)"
+
+#~ msgid "SIP Port"
+#~ msgstr "SIP端口号"
+
+#~ msgid "Enable voicemail _notifications"
+#~ msgstr "启用语音邮箱提示(n)"
+
 #~ msgid "Account creation wizard"
 #~ msgstr "帐户创建向导"
 
@@ -1026,9 +1195,6 @@ msgstr "从拨出电话中查询"
 #~ msgid "Default account"
 #~ msgstr "默认帐户"
 
-#~ msgid "Transfer to : "
-#~ msgstr "转给: "
-
 #~ msgid "SFLphone KDE Client"
 #~ msgstr "SFLphone KDE客户端"
 
@@ -1041,12 +1207,6 @@ msgstr "从拨出电话中查询"
 #~ msgid "Main screen"
 #~ msgstr "主屏幕"
 
-#~ msgid "Call history"
-#~ msgstr "呼叫记录"
-
-#~ msgid "Address book"
-#~ msgstr "地址簿"
-
 #~ msgid "Configure SFLphone"
 #~ msgstr "配置SFLphone"
 
@@ -1080,9 +1240,6 @@ msgstr "从拨出电话中查询"
 #~ msgid "Hold on"
 #~ msgstr "呼叫保持"
 
-#~ msgid "Transfer"
-#~ msgstr "转接"
-
 #~ msgid "Record"
 #~ msgstr "记录"
 
@@ -1101,29 +1258,32 @@ msgstr "从拨出电话中查询"
 #~ 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."
+#~ "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会使用列表当中第一个已注册的帐户。使用箭头\"上\"和\"下\"可以改变账户的顺序。选择账户名称左边的方框可以"
-#~ "启用帐户,取消选择则会禁用该账户。通过\"加\"\"减\"按钮可以添加或删除账户。点击\"编辑\"按钮可以改变账户的设置。"
-
-#~ msgid "Remove the selected account"
-#~ msgstr "删除所选账户"
+#~ "在默认情况下,当你打电话时,sflphone会使用列表当中第一个已注册的帐户。使用"
+#~ "箭头\"上\"和\"下\"可以改变账户的顺序。选择账户名称左边的方框可以启用帐户,"
+#~ "取消选择则会禁用该账户。通过\"加\"\"减\"按钮可以添加或删除账户。点击\"编辑"
+#~ "\"按钮可以改变账户的设置。"
 
 #~ 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 "该按钮会删除列表中被选定的账户。请确认你的操作。如果你希望继续使用某个账户,请取消对该账户的选择"
+#~ "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 ""
+#~ "该按钮会删除列表中被选定的账户。请确认你的操作。如果你希望继续使用某个账"
+#~ "户,请取消对该账户的选择"
 
 #~ msgid "Remove"
 #~ msgstr "删除"
 
 #~ 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 "通过该按钮可以创建一个新账户。添加该账户之后你还可以通过编辑按钮来修改设置。"
+#~ "This button enables you to initialize a new account. You will then be "
+#~ "able to edit it using the form on the right."
+#~ msgstr ""
+#~ "通过该按钮可以创建一个新账户。添加该账户之后你还可以通过编辑按钮来修改设"
+#~ "置。"
 
 #~ msgid "Add"
 #~ msgstr "添加"
@@ -1136,8 +1296,9 @@ msgstr "从拨出电话中查询"
 #~ "this list which is \"registered\". Change the order of the accounts using "
 #~ "the \"Up\" and \"Down\" arrows."
 #~ msgstr ""
-#~ "在默认情况下,当你打电话时,sflphone会使用列表当中第一个已注册的帐户。使用箭头\"上\"和\"下\"可以改变账户的顺序。选择账户名称左边的方框可以"
-#~ "启用帐户,取消选择则会禁用该账户。通过\"加\"\"减\"按钮可以添加或删除账户。"
+#~ "在默认情况下,当你打电话时,sflphone会使用列表当中第一个已注册的帐户。使用"
+#~ "箭头\"上\"和\"下\"可以改变账户的顺序。选择账户名称左边的方框可以启用帐户,"
+#~ "取消选择则会禁用该账户。通过\"加\"\"减\"按钮可以添加或删除账户。"
 
 #~ msgid "Down"
 #~ msgstr "下"
@@ -1220,9 +1381,6 @@ msgstr "从拨出电话中查询"
 #~ msgid "On start"
 #~ msgstr "正在启动"
 
-#~ msgid "Clear history"
-#~ msgstr "清空历史记录"
-
 #~ msgid "Trigger on specific SIP header"
 #~ msgstr "激活指定的SIP头"
 
@@ -1238,12 +1396,6 @@ msgstr "从拨出电话中查询"
 #~ msgid "Attention:number of results exceeds max displayed."
 #~ msgstr "注意:结果超过可显示的最大值"
 
-#~ msgid "_Volume controls"
-#~ msgstr "音量控制(V)"
-
-#~ msgid "History"
-#~ msgstr "历史"
-
 #~ msgid "_Enable this account"
 #~ msgstr "启用该账户(E)"
 
@@ -1392,9 +1544,6 @@ msgstr "从拨出电话中查询"
 #~ msgid "\"Voicemail\" <%s>"
 #~ msgstr "\"语音邮件\" <%s>"
 
-#~ msgid "Off Hold"
-#~ msgstr "恢复通话"
-
 #~ msgid "Record a call"
 #~ msgstr "记录通话"
 
@@ -1544,27 +1693,9 @@ msgstr "从拨出电话中查询"
 #~ msgid "_STUN Server"
 #~ msgstr "STUN服务器(S)"
 
-#~ msgid "_Edit"
-#~ msgstr "编辑(_E)"
-
-#~ msgid "_View"
-#~ msgstr "查看(_V)"
-
-#~ msgid "_Help"
-#~ msgstr "帮助(_H)"
-
 #~ msgid "_Account creation wizard"
 #~ msgstr "帐户创建向导(_A)"
 
-#~ msgid "_Call"
-#~ msgstr "电话(_C)"
-
-#~ msgid "Clear _history"
-#~ msgstr "清空历史记录(_H)"
-
-#~ msgid "_Accounts"
-#~ msgstr "账户(_A)"
-
 #~ msgctxt "NAME OF TRANSLATORS"
 #~ msgid "Your names"
 #~ msgstr ""
@@ -1576,6 +1707,7 @@ msgstr "从拨出电话中查询"
 #~ msgctxt "EMAIL OF TRANSLATORS"
 #~ msgid "Your emails"
 #~ msgstr ""
-#~ "yunliu2000@gmail.com,,,happyaron.xu@gmail.com,,,,happyaron.xu@gmail.com,,,rai"
-#~ "nofchaos@gmail.com,,,happyaron.xu@gmail.com,,,rainofchaos@gmail.com,,,,emmanu"
-#~ "el.milou@savoirfairelinux.com,,rainofchaos@gmail.com,wantinghard@gmail.com"
+#~ "yunliu2000@gmail.com,,,happyaron.xu@gmail.com,,,,happyaron.xu@gmail.com,,,"
+#~ "rainofchaos@gmail.com,,,happyaron.xu@gmail.com,,,rainofchaos@gmail.com,,,,"
+#~ "emmanuel.milou@savoirfairelinux.com,,rainofchaos@gmail.com,"
+#~ "wantinghard@gmail.com"
diff --git a/lang/zh_HK/zh_HK.po b/lang/zh_HK/zh_HK.po
index a4ba19605e..0e4afca0c5 100644
--- a/lang/zh_HK/zh_HK.po
+++ b/lang/zh_HK/zh_HK.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: SFLphone 0.9.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-14 11:18-0400\n"
+"POT-Creation-Date: 2009-12-03 10:22-0500\n"
 "PO-Revision-Date: 2009-10-26 20:46+0000\n"
 "Last-Translator: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>\n"
 "Language-Team: SavoirFaireLinux Inc <sflphoneteam@savoirfairelinux.com>\n"
@@ -61,24 +61,15 @@ msgstr "Stun伺服器無效"
 msgid "Invalid"
 msgstr "無效"
 
-#: ../sflphone-client-gnome/src/actions.c:54
-#: ../sflphone-client-gnome/src/sflnotify.c:94
-#, c-format
-msgid "%d voice mail"
-msgid_plural "%d voice mails"
-msgstr[0] "%d 個語音郵件"
-
-#: ../sflphone-client-gnome/src/actions.c:83
-#: ../sflphone-client-gnome/src/actions.c:919
-#: ../sflphone-client-gnome/src/actions.c:926
+#: ../sflphone-client-gnome/src/actions.c:98
 msgid "Using account"
 msgstr "使用賬戶"
 
-#: ../sflphone-client-gnome/src/actions.c:89
+#: ../sflphone-client-gnome/src/actions.c:104
 msgid "No registered accounts"
 msgstr "沒有已註冊帳戶"
 
-#: ../sflphone-client-gnome/src/actions.c:268
+#: ../sflphone-client-gnome/src/actions.c:285
 msgid ""
 "Unable to connect to the SFLphone server.\n"
 "Make sure the daemon is running."
@@ -86,26 +77,23 @@ msgstr ""
 "連接SFLphone伺服器失敗.\n"
 "請核查daemon是否正在運行."
 
-#: ../sflphone-client-gnome/src/actions.c:913
-#, c-format
-msgid "IP call - %s"
-msgstr "IP電話- %s"
-
-#: ../sflphone-client-gnome/src/actions.c:922
-msgid "Codec"
-msgstr "編碼"
+#: ../sflphone-client-gnome/src/actions.c:589
+#: ../sflphone-client-gnome/src/actions.c:911
+msgid "Direct SIP call"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:1119
+#: ../sflphone-client-gnome/src/actions.c:1103
 #, c-format
 msgid ""
 "<b>Error: No audio codecs found.\n"
 "\n"
-"</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
-"<b>.sflphone</b> directory in your home( <i>%s</i> )"
+"</b> SFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</"
+"b> directory in your home( <i>%s</i> )"
 msgstr ""
 "<b>錯誤:無法找到音訊編碼檔案.\n"
 "\n"
-"</b> SFL聲音編碼檔案應該位于<i>%s</i> 或者位于主目錄( <i>%s</i> )的<b>.sflphone</b>目錄下"
+"</b> SFL聲音編碼檔案應該位于<i>%s</i> 或者位于主目錄( <i>%s</i> )的<b>."
+"sflphone</b>目錄下"
 
 #: ../sflphone-client-gnome/src/errors.c:29
 msgid ""
@@ -149,53 +137,53 @@ msgstr "有電話正在處理中."
 msgid "Do you still want to quit?"
 msgstr "確認要退出?"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:299
+#: ../sflphone-client-gnome/src/mainwindow.c:298
 msgid "SFLphone Error"
 msgstr "SFLphone 出錯"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:391
+#: ../sflphone-client-gnome/src/mainwindow.c:392
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:392
+#: ../sflphone-client-gnome/src/mainwindow.c:393
 msgid "Secure Communication Unavailable"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:393
-#: ../sflphone-client-gnome/src/mainwindow.c:415
+#: ../sflphone-client-gnome/src/mainwindow.c:394
+#: ../sflphone-client-gnome/src/mainwindow.c:416
 msgid "Continue"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:394
-#: ../sflphone-client-gnome/src/mainwindow.c:416
-#: ../sflphone-client-gnome/src/mainwindow.c:430
+#: ../sflphone-client-gnome/src/mainwindow.c:395
+#: ../sflphone-client-gnome/src/mainwindow.c:417
+#: ../sflphone-client-gnome/src/mainwindow.c:431
 msgid "Stop Call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:413
+#: ../sflphone-client-gnome/src/mainwindow.c:414
 #, c-format
 msgid ""
 "A %s error forced the call with %s to fall under unencrypted mode.\n"
 "Exact reason: %s\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:414
+#: ../sflphone-client-gnome/src/mainwindow.c:415
 msgid "ZRTP negotiation failed"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:427
+#: ../sflphone-client-gnome/src/mainwindow.c:428
 #, c-format
 msgid ""
 "%s wants to stop using secure communication. Confirm will resume "
 "conversation without SRTP.\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:428
+#: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm Go Clear"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:429
+#: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Confirm"
 msgstr ""
 
@@ -210,6 +198,12 @@ msgstr "%s 帳戶 : %s"
 msgid "<i>From</i> %s"
 msgstr "<i>撥入方</i> %s"
 
+#: ../sflphone-client-gnome/src/sflnotify.c:94
+#, c-format
+msgid "%d voice mail"
+msgid_plural "%d voice mails"
+msgstr[0] "%d 個語音郵件"
+
 #: ../sflphone-client-gnome/src/sflnotify.c:111
 #, c-format
 msgid "Calling with %s account <i>%s</i>"
@@ -257,217 +251,413 @@ msgstr "揚聲器音量"
 msgid "Mic volume"
 msgstr "話筒音量"
 
-#: ../sflphone-client-gnome/src/statusicon.c:91
+#: ../sflphone-client-gnome/src/statusicon.c:96
 msgid "_Show main window"
 msgstr "顯示主窗口(S)"
 
-#: ../sflphone-client-gnome/src/statusicon.c:126
+#: ../sflphone-client-gnome/src/statusicon.c:131
 msgid "SFLphone"
 msgstr "SFLphone"
 
-#: ../sflphone-client-gnome/src/statusicon.c:127
+#: ../sflphone-client-gnome/src/statusicon.c:132
 #, c-format
 msgid "%i account configured"
 msgid_plural "%i accounts configured"
 msgstr[0] "已配置了%i個賬戶"
 
 #: ../sflphone-client-gnome/src/toolbar.c:38
-#: ../sflphone-client-gnome/src/uimanager.c:750
+#: ../sflphone-client-gnome/src/uimanager.c:693
+#: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Voicemail"
 msgstr "語音郵件"
 
-#: ../sflphone-client-gnome/src/uimanager.c:403
+#: ../sflphone-client-gnome/src/uimanager.c:117
+msgid "No address book selected"
+msgstr "地址簿"
+
+#: ../sflphone-client-gnome/src/uimanager.c:137
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "Address book"
+msgstr "地址簿"
+
+#: ../sflphone-client-gnome/src/uimanager.c:279
+msgid "Voicemail (%i)"
+msgstr "語音郵件 (%i)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:342
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
 msgstr "SFLphone是一個VoIP客戶端,它兼容SIP和IAX2协议."
 
-#: ../sflphone-client-gnome/src/uimanager.c:406
+#: ../sflphone-client-gnome/src/uimanager.c:345
 msgid "About SFLphone"
 msgstr "有關SFLphone"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1028
+#: ../sflphone-client-gnome/src/uimanager.c:719
+msgid "Call"
+msgstr "電話"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+#: ../sflphone-client-gnome/src/uimanager.c:1184
+msgid "_New call"
+msgstr "新電話(N)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+msgid "Place a new call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:721
+#: ../sflphone-client-gnome/src/uimanager.c:979
 msgid "_Pick up"
 msgstr "撥出(P)"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1040
-#: ../sflphone-client-gnome/src/uimanager.c:1081
+#: ../sflphone-client-gnome/src/uimanager.c:721
+msgid "Answer the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:722
+#: ../sflphone-client-gnome/src/uimanager.c:991
+#: ../sflphone-client-gnome/src/uimanager.c:1032
 msgid "_Hang up"
 msgstr "放下(H)"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1052
-#: ../sflphone-client-gnome/src/uimanager.c:1093
-msgid "On _Hold"
+#: ../sflphone-client-gnome/src/uimanager.c:722
+msgid "Finish the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "O_n hold"
 msgstr "待机"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1064
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "Place the call on hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "O_ff hold"
+msgstr "恢复通話"
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "Place the call off hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:725
+#: ../sflphone-client-gnome/src/uimanager.c:1015
 msgid "_Record"
 msgstr "記錄(R)"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1154
+#: ../sflphone-client-gnome/src/uimanager.c:725
+msgid "Record the current conversation"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Configuration _Assistant"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Run the configuration assistant"
+msgstr "Stun配置有誤"
+
+#: ../sflphone-client-gnome/src/uimanager.c:727
+msgid "Call your voicemail"
+msgstr "%d 個語音郵件"
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "_Close"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "Minimize to system tray"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "_Quit"
+msgstr "編輯(E)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "Quit the program"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:732
+msgid "_Edit"
+msgstr "編輯(E)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "_Copy"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "Copy the selection"
+msgstr "刪除所選賬戶"
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "_Paste"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "Paste the clipboard"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear _history"
+msgstr "清空曆史記錄(C)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear the call history"
+msgstr "清空曆史記錄"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "_Accounts"
+msgstr "帳戶(A)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "Edit your accounts"
+msgstr "當前帳戶"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "_Preferences"
+msgstr "屬性"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "Change your preferences"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:740
+msgid "_View"
+msgstr "查看(V)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:743
+msgid "_Help"
+msgstr "幫助(H)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Contents"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Open the manual"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:745
+msgid "About this application"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "_Transfer"
+msgstr "轉接"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "Transfer the call"
+msgstr "轉給: "
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "_Show toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "Show the toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "_Dialpad"
+msgstr "顯示撥號鍵盤"
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "Show the dialpad"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "_Volume controls"
+msgstr "音量控制(V)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "Show the volume controls"
+msgstr "音量控制(V)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "_History"
+msgstr "歷史"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "Calls history"
+msgstr "呼叫記錄"
+
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "_Address book"
+msgstr "地址簿"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1003
+#: ../sflphone-client-gnome/src/uimanager.c:1044
+msgid "On _Hold"
+msgstr "待机"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1107
 msgid "_Call back"
 msgstr "回叫(C)"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1226
-msgid "_New call"
-msgstr "新電話(N)"
-
-#: ../sflphone-client-gnome/src/uimanager.c:1300
+#: ../sflphone-client-gnome/src/uimanager.c:1258
 msgid "Edit phone number"
 msgstr "編輯電話號碼"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1311
+#: ../sflphone-client-gnome/src/uimanager.c:1269
 msgid "Edit the phone number before making a call"
 msgstr "撥出電話前編輯電話號碼"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:164
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:180
 msgid "Account Parameters"
 msgstr "帳戶相關參數"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:173
-#: ../sflphone-client-gnome/src/config/assistant.c:294
-#: ../sflphone-client-gnome/src/config/assistant.c:402
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/assistant.c:314
+#: ../sflphone-client-gnome/src/config/assistant.c:427
 msgid "_Alias"
 msgstr "別稱(A)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:181
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:197
 msgid "_Protocol"
 msgstr "協議(P)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:199
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:215
 msgid "Unknown"
 msgstr "未知"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:209
-#: ../sflphone-client-gnome/src/config/assistant.c:302
-#: ../sflphone-client-gnome/src/config/assistant.c:410
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
+#: ../sflphone-client-gnome/src/config/assistant.c:322
+#: ../sflphone-client-gnome/src/config/assistant.c:435
 msgid "_Host name"
 msgstr "主机名稱(H)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:217
-#: ../sflphone-client-gnome/src/config/assistant.c:310
-#: ../sflphone-client-gnome/src/config/assistant.c:418
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:233
+#: ../sflphone-client-gnome/src/config/assistant.c:330
+#: ../sflphone-client-gnome/src/config/assistant.c:443
 msgid "_User name"
 msgstr "使用者名稱(U)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:234
-#: ../sflphone-client-gnome/src/config/assistant.c:326
-#: ../sflphone-client-gnome/src/config/assistant.c:433
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:346
+#: ../sflphone-client-gnome/src/config/assistant.c:458
 msgid "_Password"
 msgstr "密碼(P)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:254
-#: ../sflphone-client-gnome/src/config/assistant.c:344
-#: ../sflphone-client-gnome/src/config/assistant.c:449
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:270
+#: ../sflphone-client-gnome/src/config/assistant.c:363
+#: ../sflphone-client-gnome/src/config/assistant.c:473
+msgid "Show password"
+msgstr "密碼"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:274
+#: ../sflphone-client-gnome/src/config/assistant.c:368
+#: ../sflphone-client-gnome/src/config/assistant.c:478
 msgid "_Voicemail number"
 msgstr "語音郵箱(V)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:340
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:361
 msgid "Authentication"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:362
 msgid "Secret"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:605
 msgid "Credential"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:501
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:640
 msgid "Authentication name"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:512
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:651
 msgid "Password"
 msgstr "密碼"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:535
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:909
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:201
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1056
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:321
 msgid "Security"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:547
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:213
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:333
 msgid "Use TLS transport (sips)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:552
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:218
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:338
 msgid "SRTP key exchange"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:699
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
 msgid "Disabled"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:795
 msgid "Registration"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:800
 msgid "Registration expire"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:809
 msgid "_Comply with RFC 3263"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
-msgid "Network"
-msgstr ""
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:816
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:234
+msgid "Network Interface"
+msgstr "網路連線失敗"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:830
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:249
 msgid "Local address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:301
 msgid "Local port"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:752
-msgid "Set published address and port:"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:893
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:928
+msgid "Published address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:756
-msgid "Using STUN "
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+msgid "Using STUN"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:761
-msgid "Same as local parameters"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:906
+msgid "STUN server URL"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:764
-msgid "Manually"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:914
+msgid "Same as local parameters"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:769
-msgid "Published address"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:917
+msgid "Set published address and port:"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:777
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:936
 msgid "Published port"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:785
-msgid "STUN server URL"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1027
 msgid "Account settings"
 msgstr "帳戶設置"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1046
 msgid "Basic"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:904
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1051
 msgid "Advanced"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:169
-msgid "Server returned \""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:164
+#, c-format
+msgid "Server returned \"%s\" (%d)"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
@@ -486,32 +676,18 @@ msgstr "帳戶"
 msgid "Configured Accounts"
 msgstr "已配置帳戶"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
-msgid "There "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "is "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "are "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
-msgid " active account"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
-msgid "s"
-msgstr ""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:501
+#, c-format
+msgid "There is %d active account"
+msgid_plural "There are %d active accounts"
+msgstr[0] ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:507
 msgid "You have no active account"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:556
 msgid "General"
 msgstr "常用配置"
 
@@ -556,225 +732,220 @@ msgid "Select which Evolution address books to use"
 msgstr "選擇使用如下Evolution地址薄"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:404
-#: ../sflphone-client-gnome/src/config/audioconf.c:578
+#: ../sflphone-client-gnome/src/config/audioconf.c:577
 msgid "Name"
 msgstr "名稱"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:69
+#: ../sflphone-client-gnome/src/config/assistant.c:75
 #, c-format
 msgid "This assistant is now finished."
 msgstr "配置完成."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:71
+#: ../sflphone-client-gnome/src/config/assistant.c:77
 msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
 msgstr "你可以隨時在 選項/帳戶 中查看註冊狀態或者修改帳戶信息."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:74
+#: ../sflphone-client-gnome/src/config/assistant.c:80
 msgid "Alias"
 msgstr "別稱"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:78
+#: ../sflphone-client-gnome/src/config/assistant.c:84
 msgid "Server"
 msgstr "伺服器"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:82
+#: ../sflphone-client-gnome/src/config/assistant.c:88
 msgid "Username"
 msgstr "使用者名稱"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:86
+#: ../sflphone-client-gnome/src/config/assistant.c:92
 msgid "Security: "
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:88
+#: ../sflphone-client-gnome/src/config/assistant.c:94
 msgid "SRTP/ZRTP draft-zimmermann"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:90
-#: ../sflphone-client-gnome/src/config/assistant.c:182
+#: ../sflphone-client-gnome/src/config/assistant.c:96
 msgid "None"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:210
+#: ../sflphone-client-gnome/src/config/assistant.c:229
 msgid "SFLphone account creation wizard"
 msgstr "SFLphone賬戶創建嚮導"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:236
+#: ../sflphone-client-gnome/src/config/assistant.c:255
 msgid "Welcome to the Account creation wizard of SFLphone!"
 msgstr "歡迎使用SFLphone帳戶創建嚮導!"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:237
+#: ../sflphone-client-gnome/src/config/assistant.c:256
 msgid "This installation wizard will help you configure an account."
 msgstr "安裝向導將幫助您配置帳戶"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "VoIP Protocols"
 msgstr "VoIP協議"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "Select an account type"
 msgstr "選擇帳戶類型"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:253
+#: ../sflphone-client-gnome/src/config/assistant.c:272
 msgid "SIP (Session Initiation Protocol)"
 msgstr "SIP(會話初始化協議)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:255
+#: ../sflphone-client-gnome/src/config/assistant.c:274
 msgid "IAX2 (InterAsterix Exchange)"
 msgstr "IAX2(Asterisk內部交換協議)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Account"
 msgstr "帳戶"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Please select one of the following options"
 msgstr "請選擇以下選項中的一個"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:271
+#: ../sflphone-client-gnome/src/config/assistant.c:290
 msgid "Create a free SIP/IAX2 account on sflphone.org"
 msgstr "在sflphone.org上創建免費的SIP/IAX2帳戶"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:273
+#: ../sflphone-client-gnome/src/config/assistant.c:292
 msgid "Register an existing SIP or IAX2 account"
 msgstr "註冊已存在的SIP或IAX2帳戶"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
+#: ../sflphone-client-gnome/src/config/assistant.c:306
 msgid "SIP account settings"
 msgstr "SIP帳戶配置"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:306
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "Please fill the following information"
 msgstr "請填寫如下信息"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:352
-#: ../sflphone-client-gnome/src/config/assistant.c:381
+#: ../sflphone-client-gnome/src/config/assistant.c:376
+#: ../sflphone-client-gnome/src/config/assistant.c:405
 msgid "Secure communications with _ZRTP"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "Optional email address"
 msgstr "可選郵件地址"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "This email address will be used to send your voicemail messages."
 msgstr "這個郵件地址將被用來發送您的語音"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:373
+#: ../sflphone-client-gnome/src/config/assistant.c:397
 msgid "_Email address"
 msgstr "郵件地址(E)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "IAX2 account settings"
 msgstr "IAX2帳戶配置"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "Network Address Translation (NAT)"
 msgstr "网络地址解析(NAT)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "You should probably enable this if you are behind a firewall."
 msgstr "如果你使用網路防火牆,你很有可能需要設定該項."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:476
+#: ../sflphone-client-gnome/src/config/assistant.c:505
 msgid "E_nable STUN"
 msgstr "啟用STUN(n)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:483
+#: ../sflphone-client-gnome/src/config/assistant.c:512
 msgid "_STUN server"
 msgstr "STUN伺服器(S)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Account Registration"
 msgstr "帳戶註冊"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Congratulations!"
 msgstr "恭喜!"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:583
+#: ../sflphone-client-gnome/src/config/audioconf.c:582
 msgid "Frequency"
 msgstr "顰律"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:588
+#: ../sflphone-client-gnome/src/config/audioconf.c:587
 msgid "Bitrate"
 msgstr "比率"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:593
+#: ../sflphone-client-gnome/src/config/audioconf.c:592
 msgid "Bandwidth"
 msgstr "顰寬"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:673
+#: ../sflphone-client-gnome/src/config/audioconf.c:670
 msgid "ALSA plugin"
 msgstr "ALSA插件"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:695
+#: ../sflphone-client-gnome/src/config/audioconf.c:692
 msgid "Output"
 msgstr "輸出"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:717
+#: ../sflphone-client-gnome/src/config/audioconf.c:714
 msgid "Input"
 msgstr "輸入"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:752
+#: ../sflphone-client-gnome/src/config/audioconf.c:749
 msgid "_Voice Activity Detection"
 msgstr "聲音狀態檢測(V)"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:762
+#: ../sflphone-client-gnome/src/config/audioconf.c:759
 msgid "_Noise Reduction (Narrow-Band Companding)"
 msgstr "降噪處理-窄頻壓縮(N)"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:798
+#: ../sflphone-client-gnome/src/config/audioconf.c:800
 msgid "Sound Manager"
 msgstr "聲音管理器"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:807
+#: ../sflphone-client-gnome/src/config/audioconf.c:809
 msgid "_Pulseaudio"
 msgstr "Pulseaudio"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:811
+#: ../sflphone-client-gnome/src/config/audioconf.c:813
 msgid "_ALSA"
 msgstr "ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:816
-msgid "_Mute other applications during a call"
-msgstr "當有來電時靜音其它應用程序(c)"
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:823
+#: ../sflphone-client-gnome/src/config/audioconf.c:819
 msgid "ALSA settings"
 msgstr "ALSA 配置"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:840
+#: ../sflphone-client-gnome/src/config/audioconf.c:836
 msgid "Codecs"
 msgstr "編碼"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:869
+#: ../sflphone-client-gnome/src/config/audioconf.c:865
 msgid "Recordings"
 msgstr "記錄"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:873
+#: ../sflphone-client-gnome/src/config/audioconf.c:869
 msgid "Destination folder"
 msgstr "目標文件夾"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:877
+#: ../sflphone-client-gnome/src/config/audioconf.c:873
 msgid "Select a folder"
 msgstr "選擇文件夾"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:883
+#: ../sflphone-client-gnome/src/config/audioconf.c:879
 msgid "Ringtones"
 msgstr "鈴聲"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:889
+#: ../sflphone-client-gnome/src/config/audioconf.c:885
 msgid "_Enable ringtones"
 msgstr "啟動鈴聲(E)"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:895
+#: ../sflphone-client-gnome/src/config/audioconf.c:891
 msgid "Choose a ringtone"
 msgstr "鈴聲選擇"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:901
+#: ../sflphone-client-gnome/src/config/audioconf.c:897
 msgid "Audio Files"
 msgstr "音訊檔案"
 
@@ -811,86 +982,66 @@ msgstr "重設電話號碼"
 msgid "_Prefix dialed numbers with"
 msgstr "號碼前綴(P)"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:195
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:225
 msgid ""
 "This profile is used when you want to reach a remote peer simply by typing a "
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
 "also be used if no account can be matched to an incoming or outgoing call."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:274
-msgid "SIP Port"
-msgstr "SIP端口"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:281
-msgid "UDP Transport"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:319
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:440
 msgid "Desktop Notifications"
 msgstr "桌面提示"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:323
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:444
 msgid "_Enable notifications"
 msgstr "啟動提示(E)"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:329
-msgid "Enable voicemail _notifications"
-msgstr "啟用語音郵箱提示(n)"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:341
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:450
 msgid "System Tray Icon"
 msgstr "系統托盤圖標"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
 msgid "_Popup main window on incoming call"
 msgstr "來電話時彈出主視窗(P)"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:349
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:457
 msgid "Ne_ver popup main window"
 msgstr "從不彈出主視窗(v)"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:353
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
 msgid "Hide SFLphone window on _startup"
 msgstr "在啟動時隱藏SFLphone主窗口"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:359
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:469
 msgid "Calls History"
 msgstr "打電話歷史"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:362
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:472
 msgid "_Keep my history for at least"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:373
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:483
 msgid "days"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
-msgid "Configuration File"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
-msgid "Store SIP credentials as MD5 hash"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:423
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:536
 msgid "Preferences"
 msgstr "屬性"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:448
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:561
 msgid "Audio"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:566
 msgid "Address Book"
 msgstr "地址簿"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:458
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:571
 msgid "Hooks"
 msgstr "鉤鍵"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:468
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:581
 msgid "Direct IP calls"
 msgstr ""
 
@@ -898,11 +1049,11 @@ msgstr ""
 msgid "Advanced options for TLS"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:56
 msgid "TLS transport"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:60
 msgid ""
 "TLS transport can be used along with UDP for those calls that would\n"
 "require secure sip transactions (aka SIPS). You can configure a different\n"
@@ -911,55 +1062,55 @@ msgid ""
 "port, different one from each other\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:103
 msgid "Certificate of Authority list"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:107
 msgid "Choose a CA list file (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:115
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:131
 msgid "Public endpoint certificate file"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:119
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:135
 msgid "Choose a public endpoint certificate (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:134
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:159
 msgid "Choose a private key file (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:145
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:181
 msgid "Password for the private key"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:168
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:204
 msgid "TLS protocol method"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:202
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:238
 msgid "TLS cipher list"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:211
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:247
 msgid "Server name instance for outgoing TLS connection"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:219
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:255
 msgid "Negotiation timeout (sec:msec)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:236
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:272
 msgid "Verify incoming certificates, as a server"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:242
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:278
 msgid "Verify certificates from answer, as a client"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:248
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:284
 msgid "Require certificate for incoming tls connections"
 msgstr ""
 
@@ -967,45 +1118,60 @@ msgstr ""
 msgid "ZRTP Options"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:68
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:69
 msgid "Send Hello Hash in S_DP"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:74
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:75
 msgid "Ask User to Confirm SAS"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:80
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:81
 msgid "_Warn if ZRTP not supported"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:86
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:87
 msgid "Display SAS once for hold events"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:56
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:58
 msgid "Search all"
 msgstr "查詢所有"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:57
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:70
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:82
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:94
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:59
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:72
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:84
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:96
 msgid "Click here to change the search type"
 msgstr "請點擊此處改變查詢方式"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:69
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:71
 msgid "Search by missed call"
 msgstr "從未接電話中查詢"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:81
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:83
 msgid "Search by incoming call"
 msgstr "從來電中查詢"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:93
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:95
 msgid "Search by outgoing call"
 msgstr "從撥出電話中查詢"
 
+#~ msgid "IP call - %s"
+#~ msgstr "IP電話- %s"
+
+#~ msgid "Codec"
+#~ msgstr "編碼"
+
+#~ msgid "_Mute other applications during a call"
+#~ msgstr "當有來電時靜音其它應用程序(c)"
+
+#~ msgid "SIP Port"
+#~ msgstr "SIP端口"
+
+#~ msgid "Enable voicemail _notifications"
+#~ msgstr "啟用語音郵箱提示(n)"
+
 #~ msgid "Account creation wizard"
 #~ msgstr "帳戶創建向導"
 
@@ -1026,9 +1192,6 @@ msgstr "從撥出電話中查詢"
 #~ msgid "Default account"
 #~ msgstr "默認帳戶"
 
-#~ msgid "Transfer to : "
-#~ msgstr "轉給: "
-
 #~ msgid "SFLphone KDE Client"
 #~ msgstr "SFLphone KDE客戶端"
 
@@ -1041,21 +1204,12 @@ msgstr "從撥出電話中查詢"
 #~ msgid "Main screen"
 #~ msgstr "主屏幕"
 
-#~ msgid "Call history"
-#~ msgstr "呼叫記錄"
-
-#~ msgid "Address book"
-#~ msgstr "地址簿"
-
 #~ msgid "Configure SFLphone"
 #~ msgstr "配置SFLphone"
 
 #~ msgid "Display volume controls"
 #~ msgstr "顯示音量控制"
 
-#~ msgid "Display dialpad"
-#~ msgstr "顯示撥號鍵盤"
-
 #~ msgid "Incoming call"
 #~ msgstr "來電"
 
@@ -1080,9 +1234,6 @@ msgstr "從撥出電話中查詢"
 #~ msgid "Hold on"
 #~ msgstr "呼叫保持"
 
-#~ msgid "Transfer"
-#~ msgstr "轉接"
-
 #~ msgid "Record"
 #~ msgstr "記錄"
 
@@ -1101,29 +1252,32 @@ msgstr "從撥出電話中查詢"
 #~ 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."
+#~ "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會使用列表當中第一個已註冊的帳戶。使用箭頭\"上\"和\"下\"可以改變賬戶的順序。選擇賬戶名稱左邊的方框可以"
-#~ "啟用帳戶,取消選擇則會禁用該賬戶。通過\"加\"\"減\"按鈕可以添加或刪除賬戶。點擊\"編輯\"按鈕可以改變賬戶的設置。"
-
-#~ msgid "Remove the selected account"
-#~ msgstr "刪除所選賬戶"
+#~ "在默認情況下,當你打電話時,sflphone會使用列表當中第一個已註冊的帳戶。使用"
+#~ "箭頭\"上\"和\"下\"可以改變賬戶的順序。選擇賬戶名稱左邊的方框可以啟用帳戶,"
+#~ "取消選擇則會禁用該賬戶。通過\"加\"\"減\"按鈕可以添加或刪除賬戶。點擊\"編輯"
+#~ "\"按鈕可以改變賬戶的設置。"
 
 #~ 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 "該按鈕會刪除列表中被選定的賬戶。請確認你的操作。如果你希望繼續使用某個賬戶,請取消對該賬戶的選擇"
+#~ "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 ""
+#~ "該按鈕會刪除列表中被選定的賬戶。請確認你的操作。如果你希望繼續使用某個賬"
+#~ "戶,請取消對該賬戶的選擇"
 
 #~ msgid "Remove"
 #~ msgstr "刪除"
 
 #~ 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 "通過該按鈕可以創建一個新賬戶。添加該賬戶之後你還可以通過編輯按鈕來修改設置。"
+#~ "This button enables you to initialize a new account. You will then be "
+#~ "able to edit it using the form on the right."
+#~ msgstr ""
+#~ "通過該按鈕可以創建一個新賬戶。添加該賬戶之後你還可以通過編輯按鈕來修改設"
+#~ "置。"
 
 #~ msgid "Add"
 #~ msgstr "添加"
@@ -1136,8 +1290,9 @@ msgstr "從撥出電話中查詢"
 #~ "this list which is \"registered\". Change the order of the accounts using "
 #~ "the \"Up\" and \"Down\" arrows."
 #~ msgstr ""
-#~ "在默認情況下,當你打電話時,sflphone會使用列表當中第一個已註冊的帳戶。使用箭頭\"上\"和\"下\"可以改變賬戶的順序。選擇賬戶名稱左邊的方框可以"
-#~ "啟用帳戶,取消選擇則會禁用該賬戶。通過\"加\"\"減\"按鈕可以添加或刪除賬戶。"
+#~ "在默認情況下,當你打電話時,sflphone會使用列表當中第一個已註冊的帳戶。使用"
+#~ "箭頭\"上\"和\"下\"可以改變賬戶的順序。選擇賬戶名稱左邊的方框可以啟用帳戶,"
+#~ "取消選擇則會禁用該賬戶。通過\"加\"\"減\"按鈕可以添加或刪除賬戶。"
 
 #~ msgid "Down"
 #~ msgstr "下"
@@ -1220,9 +1375,6 @@ msgstr "從撥出電話中查詢"
 #~ msgid "On start"
 #~ msgstr "正在啟動"
 
-#~ msgid "Clear history"
-#~ msgstr "清空曆史記錄"
-
 #~ msgid "Trigger on specific SIP header"
 #~ msgstr "激活指定的SIP頭"
 
@@ -1238,33 +1390,9 @@ msgstr "從撥出電話中查詢"
 #~ msgid "Attention:number of results exceeds max displayed."
 #~ msgstr "注意:結果超過可顯示的最大值"
 
-#~ msgid "_Help"
-#~ msgstr "幫助(H)"
-
 #~ msgid "_Account creation wizard"
 #~ msgstr "帳戶創建向導(A)"
 
-#~ msgid "_Call"
-#~ msgstr "電話"
-
-#~ msgid "Clear _history"
-#~ msgstr "清空曆史記錄(C)"
-
-#~ msgid "_Accounts"
-#~ msgstr "帳戶(A)"
-
-#~ msgid "_Edit"
-#~ msgstr "編輯(E)"
-
-#~ msgid "_Volume controls"
-#~ msgstr "音量控制(V)"
-
-#~ msgid "_View"
-#~ msgstr "查看(V)"
-
-#~ msgid "History"
-#~ msgstr "歷史"
-
 #~ msgid "_Enable this account"
 #~ msgstr "啟用該賬戶(E)"
 
@@ -1412,9 +1540,6 @@ msgstr "從撥出電話中查詢"
 #~ msgid "\"Voicemail\" <%s>"
 #~ msgstr "\"語音郵件\" <%s>"
 
-#~ msgid "Off Hold"
-#~ msgstr "恢复通話"
-
 #~ msgid "Record a call"
 #~ msgstr "記錄通話"
 
@@ -1570,12 +1695,12 @@ msgstr "從撥出電話中查詢"
 #~ msgctxt "NAME OF TRANSLATORS"
 #~ msgid "Your names"
 #~ msgstr ""
-#~ "Yun Liu, ,Launchpad Contributions:,Yun Liu, ,Launchpad "
-#~ "Contributions:,Emmanuel Milou,Yun Liu, ,Launchpad Contributions:,Emmanuel "
-#~ "Milou,Yun Liu, ,Launchpad Contributions:,Emmanuel Milou,Yun Liu"
+#~ "Yun Liu, ,Launchpad Contributions:,Yun Liu, ,Launchpad Contributions:,"
+#~ "Emmanuel Milou,Yun Liu, ,Launchpad Contributions:,Emmanuel Milou,Yun "
+#~ "Liu, ,Launchpad Contributions:,Emmanuel Milou,Yun Liu"
 
 #~ msgctxt "EMAIL OF TRANSLATORS"
 #~ msgid "Your emails"
 #~ msgstr ""
-#~ "yunliu2000@gmail.com,,,,,,emmanuel.milou@savoirfairelinux.com,,,,emmanuel.mil"
-#~ "ou@savoirfairelinux.com,,,,emmanuel.milou@savoirfairelinux.com,"
+#~ "yunliu2000@gmail.com,,,,,,emmanuel.milou@savoirfairelinux.com,,,,emmanuel."
+#~ "milou@savoirfairelinux.com,,,,emmanuel.milou@savoirfairelinux.com,"
diff --git a/lang/zh_TW/zh_TW.po b/lang/zh_TW/zh_TW.po
index e4a57b9b81..f7992fe2b8 100644
--- a/lang/zh_TW/zh_TW.po
+++ b/lang/zh_TW/zh_TW.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: sflphone\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-14 11:18-0400\n"
+"POT-Creation-Date: 2009-12-03 10:22-0500\n"
 "PO-Revision-Date: 2009-10-26 20:46+0000\n"
 "Last-Translator: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>\n"
 "Language-Team: Traditional Chinese <zh_TW@li.org>\n"
@@ -60,46 +60,32 @@ msgstr ""
 msgid "Invalid"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:54
-#: ../sflphone-client-gnome/src/sflnotify.c:94
-#, c-format
-msgid "%d voice mail"
-msgid_plural "%d voice mails"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../sflphone-client-gnome/src/actions.c:83
-#: ../sflphone-client-gnome/src/actions.c:919
-#: ../sflphone-client-gnome/src/actions.c:926
+#: ../sflphone-client-gnome/src/actions.c:98
 msgid "Using account"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:89
+#: ../sflphone-client-gnome/src/actions.c:104
 msgid "No registered accounts"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:268
+#: ../sflphone-client-gnome/src/actions.c:285
 msgid ""
 "Unable to connect to the SFLphone server.\n"
 "Make sure the daemon is running."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:913
-#, c-format
-msgid "IP call - %s"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/actions.c:922
-msgid "Codec"
+#: ../sflphone-client-gnome/src/actions.c:589
+#: ../sflphone-client-gnome/src/actions.c:911
+msgid "Direct SIP call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:1119
+#: ../sflphone-client-gnome/src/actions.c:1103
 #, c-format
 msgid ""
 "<b>Error: No audio codecs found.\n"
 "\n"
-"</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
-"<b>.sflphone</b> directory in your home( <i>%s</i> )"
+"</b> SFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</"
+"b> directory in your home( <i>%s</i> )"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/errors.c:29
@@ -135,53 +121,53 @@ msgstr ""
 msgid "Do you still want to quit?"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:299
+#: ../sflphone-client-gnome/src/mainwindow.c:298
 msgid "SFLphone Error"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:391
+#: ../sflphone-client-gnome/src/mainwindow.c:392
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:392
+#: ../sflphone-client-gnome/src/mainwindow.c:393
 msgid "Secure Communication Unavailable"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:393
-#: ../sflphone-client-gnome/src/mainwindow.c:415
+#: ../sflphone-client-gnome/src/mainwindow.c:394
+#: ../sflphone-client-gnome/src/mainwindow.c:416
 msgid "Continue"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:394
-#: ../sflphone-client-gnome/src/mainwindow.c:416
-#: ../sflphone-client-gnome/src/mainwindow.c:430
+#: ../sflphone-client-gnome/src/mainwindow.c:395
+#: ../sflphone-client-gnome/src/mainwindow.c:417
+#: ../sflphone-client-gnome/src/mainwindow.c:431
 msgid "Stop Call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:413
+#: ../sflphone-client-gnome/src/mainwindow.c:414
 #, c-format
 msgid ""
 "A %s error forced the call with %s to fall under unencrypted mode.\n"
 "Exact reason: %s\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:414
+#: ../sflphone-client-gnome/src/mainwindow.c:415
 msgid "ZRTP negotiation failed"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:427
+#: ../sflphone-client-gnome/src/mainwindow.c:428
 #, c-format
 msgid ""
 "%s wants to stop using secure communication. Confirm will resume "
 "conversation without SRTP.\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:428
+#: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm Go Clear"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:429
+#: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Confirm"
 msgstr ""
 
@@ -196,6 +182,13 @@ msgstr ""
 msgid "<i>From</i> %s"
 msgstr ""
 
+#: ../sflphone-client-gnome/src/sflnotify.c:94
+#, c-format
+msgid "%d voice mail"
+msgid_plural "%d voice mails"
+msgstr[0] ""
+msgstr[1] ""
+
 #: ../sflphone-client-gnome/src/sflnotify.c:111
 #, c-format
 msgid "Calling with %s account <i>%s</i>"
@@ -243,15 +236,15 @@ msgstr ""
 msgid "Mic volume"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/statusicon.c:91
+#: ../sflphone-client-gnome/src/statusicon.c:96
 msgid "_Show main window"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/statusicon.c:126
+#: ../sflphone-client-gnome/src/statusicon.c:131
 msgid "SFLphone"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/statusicon.c:127
+#: ../sflphone-client-gnome/src/statusicon.c:132
 #, c-format
 msgid "%i account configured"
 msgid_plural "%i accounts configured"
@@ -259,202 +252,399 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: ../sflphone-client-gnome/src/toolbar.c:38
-#: ../sflphone-client-gnome/src/uimanager.c:750
+#: ../sflphone-client-gnome/src/uimanager.c:693
+#: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Voicemail"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:403
+#: ../sflphone-client-gnome/src/uimanager.c:117
+msgid "No address book selected"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:137
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "Address book"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:279
+#, c-format
+msgid "Voicemail (%i)"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:342
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:406
+#: ../sflphone-client-gnome/src/uimanager.c:345
 msgid "About SFLphone"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1028
+#: ../sflphone-client-gnome/src/uimanager.c:719
+msgid "Call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+#: ../sflphone-client-gnome/src/uimanager.c:1184
+msgid "_New call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+msgid "Place a new call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:721
+#: ../sflphone-client-gnome/src/uimanager.c:979
 msgid "_Pick up"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1040
-#: ../sflphone-client-gnome/src/uimanager.c:1081
+#: ../sflphone-client-gnome/src/uimanager.c:721
+msgid "Answer the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:722
+#: ../sflphone-client-gnome/src/uimanager.c:991
+#: ../sflphone-client-gnome/src/uimanager.c:1032
 msgid "_Hang up"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1052
-#: ../sflphone-client-gnome/src/uimanager.c:1093
-msgid "On _Hold"
+#: ../sflphone-client-gnome/src/uimanager.c:722
+msgid "Finish the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "O_n hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "Place the call on hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "O_ff hold"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1064
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "Place the call off hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:725
+#: ../sflphone-client-gnome/src/uimanager.c:1015
 msgid "_Record"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1154
-msgid "_Call back"
+#: ../sflphone-client-gnome/src/uimanager.c:725
+msgid "Record the current conversation"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1226
-msgid "_New call"
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Configuration _Assistant"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Run the configuration assistant"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:727
+msgid "Call your voicemail"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "_Close"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "Minimize to system tray"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "_Quit"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "Quit the program"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:732
+msgid "_Edit"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "_Copy"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "Copy the selection"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "_Paste"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "Paste the clipboard"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear _history"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear the call history"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "_Accounts"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "Edit your accounts"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "_Preferences"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "Change your preferences"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:740
+msgid "_View"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:743
+msgid "_Help"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Contents"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Open the manual"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:745
+msgid "About this application"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "_Transfer"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "Transfer the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "_Show toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "Show the toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "_Dialpad"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "Show the dialpad"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "_Volume controls"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "Show the volume controls"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1300
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "_History"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "Calls history"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "_Address book"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:1003
+#: ../sflphone-client-gnome/src/uimanager.c:1044
+msgid "On _Hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:1107
+msgid "_Call back"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:1258
 msgid "Edit phone number"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1311
+#: ../sflphone-client-gnome/src/uimanager.c:1269
 msgid "Edit the phone number before making a call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:164
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:180
 msgid "Account Parameters"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:173
-#: ../sflphone-client-gnome/src/config/assistant.c:294
-#: ../sflphone-client-gnome/src/config/assistant.c:402
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/assistant.c:314
+#: ../sflphone-client-gnome/src/config/assistant.c:427
 msgid "_Alias"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:181
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:197
 msgid "_Protocol"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:199
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:215
 msgid "Unknown"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:209
-#: ../sflphone-client-gnome/src/config/assistant.c:302
-#: ../sflphone-client-gnome/src/config/assistant.c:410
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
+#: ../sflphone-client-gnome/src/config/assistant.c:322
+#: ../sflphone-client-gnome/src/config/assistant.c:435
 msgid "_Host name"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:217
-#: ../sflphone-client-gnome/src/config/assistant.c:310
-#: ../sflphone-client-gnome/src/config/assistant.c:418
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:233
+#: ../sflphone-client-gnome/src/config/assistant.c:330
+#: ../sflphone-client-gnome/src/config/assistant.c:443
 msgid "_User name"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:234
-#: ../sflphone-client-gnome/src/config/assistant.c:326
-#: ../sflphone-client-gnome/src/config/assistant.c:433
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:346
+#: ../sflphone-client-gnome/src/config/assistant.c:458
 msgid "_Password"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:254
-#: ../sflphone-client-gnome/src/config/assistant.c:344
-#: ../sflphone-client-gnome/src/config/assistant.c:449
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:270
+#: ../sflphone-client-gnome/src/config/assistant.c:363
+#: ../sflphone-client-gnome/src/config/assistant.c:473
+msgid "Show password"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:274
+#: ../sflphone-client-gnome/src/config/assistant.c:368
+#: ../sflphone-client-gnome/src/config/assistant.c:478
 msgid "_Voicemail number"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:340
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:361
 msgid "Authentication"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:362
 msgid "Secret"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:605
 msgid "Credential"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:501
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:640
 msgid "Authentication name"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:512
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:651
 msgid "Password"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:535
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:909
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:201
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1056
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:321
 msgid "Security"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:547
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:213
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:333
 msgid "Use TLS transport (sips)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:552
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:218
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:338
 msgid "SRTP key exchange"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:699
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
 msgid "Disabled"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:795
 msgid "Registration"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:800
 msgid "Registration expire"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:809
 msgid "_Comply with RFC 3263"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
-msgid "Network"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:816
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:234
+msgid "Network Interface"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:830
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:249
 msgid "Local address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:301
 msgid "Local port"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:752
-msgid "Set published address and port:"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:893
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:928
+msgid "Published address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:756
-msgid "Using STUN "
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+msgid "Using STUN"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:761
-msgid "Same as local parameters"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:906
+msgid "STUN server URL"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:764
-msgid "Manually"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:914
+msgid "Same as local parameters"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:769
-msgid "Published address"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:917
+msgid "Set published address and port:"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:777
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:936
 msgid "Published port"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:785
-msgid "STUN server URL"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1027
 msgid "Account settings"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1046
 msgid "Basic"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:904
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1051
 msgid "Advanced"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:169
-msgid "Server returned \""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:164
+#, c-format
+msgid "Server returned \"%s\" (%d)"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
@@ -473,32 +663,18 @@ msgstr ""
 msgid "Configured Accounts"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
-msgid "There "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "is "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "are "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
-msgid " active account"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
-msgid "s"
-msgstr ""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:501
+#, c-format
+msgid "There is %d active account"
+msgid_plural "There are %d active accounts"
+msgstr[0] ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:507
 msgid "You have no active account"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:556
 msgid "General"
 msgstr ""
 
@@ -543,225 +719,220 @@ msgid "Select which Evolution address books to use"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:404
-#: ../sflphone-client-gnome/src/config/audioconf.c:578
+#: ../sflphone-client-gnome/src/config/audioconf.c:577
 msgid "Name"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:69
+#: ../sflphone-client-gnome/src/config/assistant.c:75
 #, c-format
 msgid "This assistant is now finished."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:71
+#: ../sflphone-client-gnome/src/config/assistant.c:77
 msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:74
+#: ../sflphone-client-gnome/src/config/assistant.c:80
 msgid "Alias"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:78
+#: ../sflphone-client-gnome/src/config/assistant.c:84
 msgid "Server"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:82
+#: ../sflphone-client-gnome/src/config/assistant.c:88
 msgid "Username"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:86
+#: ../sflphone-client-gnome/src/config/assistant.c:92
 msgid "Security: "
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:88
+#: ../sflphone-client-gnome/src/config/assistant.c:94
 msgid "SRTP/ZRTP draft-zimmermann"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:90
-#: ../sflphone-client-gnome/src/config/assistant.c:182
+#: ../sflphone-client-gnome/src/config/assistant.c:96
 msgid "None"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:210
+#: ../sflphone-client-gnome/src/config/assistant.c:229
 msgid "SFLphone account creation wizard"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:236
+#: ../sflphone-client-gnome/src/config/assistant.c:255
 msgid "Welcome to the Account creation wizard of SFLphone!"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:237
+#: ../sflphone-client-gnome/src/config/assistant.c:256
 msgid "This installation wizard will help you configure an account."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "VoIP Protocols"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "Select an account type"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:253
+#: ../sflphone-client-gnome/src/config/assistant.c:272
 msgid "SIP (Session Initiation Protocol)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:255
+#: ../sflphone-client-gnome/src/config/assistant.c:274
 msgid "IAX2 (InterAsterix Exchange)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Account"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Please select one of the following options"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:271
+#: ../sflphone-client-gnome/src/config/assistant.c:290
 msgid "Create a free SIP/IAX2 account on sflphone.org"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:273
+#: ../sflphone-client-gnome/src/config/assistant.c:292
 msgid "Register an existing SIP or IAX2 account"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
+#: ../sflphone-client-gnome/src/config/assistant.c:306
 msgid "SIP account settings"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:306
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "Please fill the following information"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:352
-#: ../sflphone-client-gnome/src/config/assistant.c:381
+#: ../sflphone-client-gnome/src/config/assistant.c:376
+#: ../sflphone-client-gnome/src/config/assistant.c:405
 msgid "Secure communications with _ZRTP"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "Optional email address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "This email address will be used to send your voicemail messages."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:373
+#: ../sflphone-client-gnome/src/config/assistant.c:397
 msgid "_Email address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "IAX2 account settings"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "Network Address Translation (NAT)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "You should probably enable this if you are behind a firewall."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:476
+#: ../sflphone-client-gnome/src/config/assistant.c:505
 msgid "E_nable STUN"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:483
+#: ../sflphone-client-gnome/src/config/assistant.c:512
 msgid "_STUN server"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Account Registration"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Congratulations!"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:583
+#: ../sflphone-client-gnome/src/config/audioconf.c:582
 msgid "Frequency"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:588
+#: ../sflphone-client-gnome/src/config/audioconf.c:587
 msgid "Bitrate"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:593
+#: ../sflphone-client-gnome/src/config/audioconf.c:592
 msgid "Bandwidth"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:673
+#: ../sflphone-client-gnome/src/config/audioconf.c:670
 msgid "ALSA plugin"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:695
+#: ../sflphone-client-gnome/src/config/audioconf.c:692
 msgid "Output"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:717
+#: ../sflphone-client-gnome/src/config/audioconf.c:714
 msgid "Input"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:752
+#: ../sflphone-client-gnome/src/config/audioconf.c:749
 msgid "_Voice Activity Detection"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:762
+#: ../sflphone-client-gnome/src/config/audioconf.c:759
 msgid "_Noise Reduction (Narrow-Band Companding)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:798
+#: ../sflphone-client-gnome/src/config/audioconf.c:800
 msgid "Sound Manager"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:807
+#: ../sflphone-client-gnome/src/config/audioconf.c:809
 msgid "_Pulseaudio"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:811
+#: ../sflphone-client-gnome/src/config/audioconf.c:813
 msgid "_ALSA"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:816
-msgid "_Mute other applications during a call"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:823
+#: ../sflphone-client-gnome/src/config/audioconf.c:819
 msgid "ALSA settings"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:840
+#: ../sflphone-client-gnome/src/config/audioconf.c:836
 msgid "Codecs"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:869
+#: ../sflphone-client-gnome/src/config/audioconf.c:865
 msgid "Recordings"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:873
+#: ../sflphone-client-gnome/src/config/audioconf.c:869
 msgid "Destination folder"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:877
+#: ../sflphone-client-gnome/src/config/audioconf.c:873
 msgid "Select a folder"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:883
+#: ../sflphone-client-gnome/src/config/audioconf.c:879
 msgid "Ringtones"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:889
+#: ../sflphone-client-gnome/src/config/audioconf.c:885
 msgid "_Enable ringtones"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:895
+#: ../sflphone-client-gnome/src/config/audioconf.c:891
 msgid "Choose a ringtone"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:901
+#: ../sflphone-client-gnome/src/config/audioconf.c:897
 msgid "Audio Files"
 msgstr ""
 
@@ -798,86 +969,66 @@ msgstr ""
 msgid "_Prefix dialed numbers with"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:195
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:225
 msgid ""
 "This profile is used when you want to reach a remote peer simply by typing a "
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
 "also be used if no account can be matched to an incoming or outgoing call."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:274
-msgid "SIP Port"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:281
-msgid "UDP Transport"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:319
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:440
 msgid "Desktop Notifications"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:323
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:444
 msgid "_Enable notifications"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:329
-msgid "Enable voicemail _notifications"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:341
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:450
 msgid "System Tray Icon"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
 msgid "_Popup main window on incoming call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:349
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:457
 msgid "Ne_ver popup main window"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:353
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
 msgid "Hide SFLphone window on _startup"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:359
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:469
 msgid "Calls History"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:362
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:472
 msgid "_Keep my history for at least"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:373
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:483
 msgid "days"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
-msgid "Configuration File"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
-msgid "Store SIP credentials as MD5 hash"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:423
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:536
 msgid "Preferences"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:448
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:561
 msgid "Audio"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:566
 msgid "Address Book"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:458
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:571
 msgid "Hooks"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:468
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:581
 msgid "Direct IP calls"
 msgstr ""
 
@@ -885,11 +1036,11 @@ msgstr ""
 msgid "Advanced options for TLS"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:56
 msgid "TLS transport"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:60
 msgid ""
 "TLS transport can be used along with UDP for those calls that would\n"
 "require secure sip transactions (aka SIPS). You can configure a different\n"
@@ -898,55 +1049,55 @@ msgid ""
 "port, different one from each other\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:103
 msgid "Certificate of Authority list"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:107
 msgid "Choose a CA list file (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:115
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:131
 msgid "Public endpoint certificate file"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:119
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:135
 msgid "Choose a public endpoint certificate (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:134
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:159
 msgid "Choose a private key file (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:145
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:181
 msgid "Password for the private key"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:168
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:204
 msgid "TLS protocol method"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:202
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:238
 msgid "TLS cipher list"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:211
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:247
 msgid "Server name instance for outgoing TLS connection"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:219
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:255
 msgid "Negotiation timeout (sec:msec)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:236
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:272
 msgid "Verify incoming certificates, as a server"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:242
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:278
 msgid "Verify certificates from answer, as a client"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:248
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:284
 msgid "Require certificate for incoming tls connections"
 msgstr ""
 
@@ -954,54 +1105,54 @@ msgstr ""
 msgid "ZRTP Options"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:68
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:69
 msgid "Send Hello Hash in S_DP"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:74
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:75
 msgid "Ask User to Confirm SAS"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:80
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:81
 msgid "_Warn if ZRTP not supported"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:86
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:87
 msgid "Display SAS once for hold events"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:56
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:58
 msgid "Search all"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:57
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:70
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:82
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:94
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:59
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:72
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:84
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:96
 msgid "Click here to change the search type"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:69
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:71
 msgid "Search by missed call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:81
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:83
 msgid "Search by incoming call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:93
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:95
 msgid "Search by outgoing call"
 msgstr ""
 
 #~ msgctxt "NAME OF TRANSLATORS"
 #~ msgid "Your names"
 #~ msgstr ""
-#~ ",Launchpad Contributions:, ,Launchpad Contributions:,Emmanuel Milou, "
-#~ ",Launchpad Contributions:,Emmanuel Milou, ,Launchpad Contributions:,Emmanuel "
-#~ "Milou"
+#~ ",Launchpad Contributions:, ,Launchpad Contributions:,Emmanuel Milou, ,"
+#~ "Launchpad Contributions:,Emmanuel Milou, ,Launchpad Contributions:,"
+#~ "Emmanuel Milou"
 
 #~ msgctxt "EMAIL OF TRANSLATORS"
 #~ msgid "Your emails"
 #~ msgstr ""
-#~ ",,,,emmanuel.milou@savoirfairelinux.com,,,emmanuel.milou@savoirfairelinux.com"
-#~ ",,,emmanuel.milou@savoirfairelinux.com"
+#~ ",,,,emmanuel.milou@savoirfairelinux.com,,,emmanuel.milou@savoirfairelinux."
+#~ "com,,,emmanuel.milou@savoirfairelinux.com"
diff --git a/sflphone-client-gnome/po/Makefile.am b/sflphone-client-gnome/po/Makefile.am
index 04a94d39ff..6d2d320a9b 100644
--- a/sflphone-client-gnome/po/Makefile.am
+++ b/sflphone-client-gnome/po/Makefile.am
@@ -11,7 +11,8 @@ POFILES=\
      zh_HK/zh_HK.po \
 	 ru/ru.po \
 	 it/it.po \
-	 pt_BR/pt_BR.po
+	 pt_BR/pt_BR.po \
+	 da/da.po
 
 MOFILES=\
 	 fr/fr.mo \
@@ -21,7 +22,8 @@ MOFILES=\
      zh_HK/zh_HK.mo \
 	 ru/ru.mo \
 	 it/it.mo \
-	 pt_BR/pt_BR.mo
+	 pt_BR/pt_BR.mo \
+	 da/da.mo
 
 MSGFMT=msgfmt
 
diff --git a/sflphone-client-gnome/po/de/de.po b/sflphone-client-gnome/po/de/de.po
index 7459095a39..ca1afd15a4 100644
--- a/sflphone-client-gnome/po/de/de.po
+++ b/sflphone-client-gnome/po/de/de.po
@@ -7,15 +7,15 @@ msgid ""
 msgstr ""
 "Project-Id-Version: sflphone\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-14 11:18-0400\n"
-"PO-Revision-Date: 2009-10-15 00:00+0000\n"
+"POT-Creation-Date: 2009-12-03 10:22-0500\n"
+"PO-Revision-Date: 2009-10-26 20:46+0000\n"
 "Last-Translator: Maxime Chambreuil <maxime.chambreuil@gmail.com>\n"
 "Language-Team: SavoirFaire Linux Inc <sflphoneteam@savoirfairelinux.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2009-10-26 15:48+0000\n"
+"X-Launchpad-Export-Date: 2009-12-03 15:32+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
 #: ../sflphone-client-gnome/src/accountlist.c:175
@@ -60,25 +60,15 @@ msgstr "Ungültiger Stun server"
 msgid "Invalid"
 msgstr "Ungültig"
 
-#: ../sflphone-client-gnome/src/actions.c:54
-#: ../sflphone-client-gnome/src/sflnotify.c:94
-#, c-format
-msgid "%d voice mail"
-msgid_plural "%d voice mails"
-msgstr[0] "%d Voice Nachricht"
-msgstr[1] "%d Voice Nachricht"
-
-#: ../sflphone-client-gnome/src/actions.c:83
-#: ../sflphone-client-gnome/src/actions.c:919
-#: ../sflphone-client-gnome/src/actions.c:926
+#: ../sflphone-client-gnome/src/actions.c:98
 msgid "Using account"
 msgstr "Mit Konto"
 
-#: ../sflphone-client-gnome/src/actions.c:89
+#: ../sflphone-client-gnome/src/actions.c:104
 msgid "No registered accounts"
 msgstr "Kein registriertes Konto"
 
-#: ../sflphone-client-gnome/src/actions.c:268
+#: ../sflphone-client-gnome/src/actions.c:285
 msgid ""
 "Unable to connect to the SFLphone server.\n"
 "Make sure the daemon is running."
@@ -86,22 +76,18 @@ msgstr ""
 "SFLphone Server kann nicht verbunden werden. Stellen Sie sicher, dass der "
 "Dämon läuft."
 
-#: ../sflphone-client-gnome/src/actions.c:913
-#, c-format
-msgid "IP call - %s"
-msgstr "IP Anruf - %s"
-
-#: ../sflphone-client-gnome/src/actions.c:922
-msgid "Codec"
-msgstr "Codec"
+#: ../sflphone-client-gnome/src/actions.c:589
+#: ../sflphone-client-gnome/src/actions.c:911
+msgid "Direct SIP call"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:1119
+#: ../sflphone-client-gnome/src/actions.c:1103
 #, c-format
 msgid ""
 "<b>Error: No audio codecs found.\n"
 "\n"
-"</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
-"<b>.sflphone</b> directory in your home( <i>%s</i> )"
+"</b> SFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</"
+"b> directory in your home( <i>%s</i> )"
 msgstr ""
 "<b>Fehler: Kein Audio-Codec gefunden.\n"
 "\n"
@@ -150,55 +136,55 @@ msgstr "Laufende Anrufe."
 msgid "Do you still want to quit?"
 msgstr "Bitte bestätigen, dass Sie die Anwendung beenden möchten"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:299
+#: ../sflphone-client-gnome/src/mainwindow.c:298
 msgid "SFLphone Error"
 msgstr "SFLphone Fehler"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:391
+#: ../sflphone-client-gnome/src/mainwindow.c:392
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:392
-msgid "Secure Communication Unavailable"
-msgstr ""
-
 #: ../sflphone-client-gnome/src/mainwindow.c:393
-#: ../sflphone-client-gnome/src/mainwindow.c:415
-msgid "Continue"
-msgstr ""
+msgid "Secure Communication Unavailable"
+msgstr "Sichere Verbindung nicht verfügbar"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:394
 #: ../sflphone-client-gnome/src/mainwindow.c:416
-#: ../sflphone-client-gnome/src/mainwindow.c:430
+msgid "Continue"
+msgstr "Weiter"
+
+#: ../sflphone-client-gnome/src/mainwindow.c:395
+#: ../sflphone-client-gnome/src/mainwindow.c:417
+#: ../sflphone-client-gnome/src/mainwindow.c:431
 msgid "Stop Call"
-msgstr ""
+msgstr "Anruf beenden"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:413
+#: ../sflphone-client-gnome/src/mainwindow.c:414
 #, c-format
 msgid ""
 "A %s error forced the call with %s to fall under unencrypted mode.\n"
 "Exact reason: %s\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:414
+#: ../sflphone-client-gnome/src/mainwindow.c:415
 msgid "ZRTP negotiation failed"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:427
+#: ../sflphone-client-gnome/src/mainwindow.c:428
 #, c-format
 msgid ""
 "%s wants to stop using secure communication. Confirm will resume "
 "conversation without SRTP.\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:428
+#: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm Go Clear"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:429
+#: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Confirm"
-msgstr ""
+msgstr "Bestätigen"
 
 #: ../sflphone-client-gnome/src/sflnotify.c:71
 #: ../sflphone-client-gnome/src/sflnotify.c:91
@@ -211,6 +197,13 @@ msgstr "Konto %s : %s"
 msgid "<i>From</i> %s"
 msgstr "<i>Von</i> %s"
 
+#: ../sflphone-client-gnome/src/sflnotify.c:94
+#, c-format
+msgid "%d voice mail"
+msgid_plural "%d voice mails"
+msgstr[0] "%d Voice Nachricht"
+msgstr[1] "%d Voice Nachricht"
+
 #: ../sflphone-client-gnome/src/sflnotify.c:111
 #, c-format
 msgid "Calling with %s account <i>%s</i>"
@@ -258,15 +251,15 @@ msgstr "Lautsprecher Lautstärke"
 msgid "Mic volume"
 msgstr "Mikro Lautstärke"
 
-#: ../sflphone-client-gnome/src/statusicon.c:91
+#: ../sflphone-client-gnome/src/statusicon.c:96
 msgid "_Show main window"
 msgstr "_Hauptfenster anzeigen"
 
-#: ../sflphone-client-gnome/src/statusicon.c:126
+#: ../sflphone-client-gnome/src/statusicon.c:131
 msgid "SFLphone"
 msgstr "SFLphone"
 
-#: ../sflphone-client-gnome/src/statusicon.c:127
+#: ../sflphone-client-gnome/src/statusicon.c:132
 #, c-format
 msgid "%i account configured"
 msgid_plural "%i accounts configured"
@@ -274,203 +267,398 @@ msgstr[0] "%i Konto konfiguriert"
 msgstr[1] "%i Konten konfiguriert"
 
 #: ../sflphone-client-gnome/src/toolbar.c:38
-#: ../sflphone-client-gnome/src/uimanager.c:750
+#: ../sflphone-client-gnome/src/uimanager.c:693
+#: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Voicemail"
 msgstr "Voicemail"
 
-#: ../sflphone-client-gnome/src/uimanager.c:403
+#: ../sflphone-client-gnome/src/uimanager.c:117
+msgid "No address book selected"
+msgstr "Adressbuch"
+
+#: ../sflphone-client-gnome/src/uimanager.c:137
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "Address book"
+msgstr "Adressbuch"
+
+#: ../sflphone-client-gnome/src/uimanager.c:279
+msgid "Voicemail (%i)"
+msgstr "Voicemail (%i)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:342
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
-msgstr ""
-"SFLphone ist ein VoIP Client (kompatibel mit SIP und IAX2 Protokolle)"
+msgstr "SFLphone ist ein VoIP Client (kompatibel mit SIP und IAX2 Protokolle)"
 
-#: ../sflphone-client-gnome/src/uimanager.c:406
+#: ../sflphone-client-gnome/src/uimanager.c:345
 msgid "About SFLphone"
 msgstr "Über SFLphone"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1028
+#: ../sflphone-client-gnome/src/uimanager.c:719
+msgid "Call"
+msgstr "_Anruf"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+#: ../sflphone-client-gnome/src/uimanager.c:1184
+msgid "_New call"
+msgstr "_Neuer Anruf"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+msgid "Place a new call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:721
+#: ../sflphone-client-gnome/src/uimanager.c:979
 msgid "_Pick up"
 msgstr "_Abnehmen"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1040
-#: ../sflphone-client-gnome/src/uimanager.c:1081
+#: ../sflphone-client-gnome/src/uimanager.c:721
+msgid "Answer the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:722
+#: ../sflphone-client-gnome/src/uimanager.c:991
+#: ../sflphone-client-gnome/src/uimanager.c:1032
 msgid "_Hang up"
 msgstr "A_uflegen"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1052
-#: ../sflphone-client-gnome/src/uimanager.c:1093
-msgid "On _Hold"
+#: ../sflphone-client-gnome/src/uimanager.c:722
+msgid "Finish the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "O_n hold"
 msgstr "in _Warteschleife"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1064
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "Place the call on hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "O_ff hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "Place the call off hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:725
+#: ../sflphone-client-gnome/src/uimanager.c:1015
 msgid "_Record"
 msgstr "_Gespräch aufzeichnen"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1154
+#: ../sflphone-client-gnome/src/uimanager.c:725
+msgid "Record the current conversation"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Configuration _Assistant"
+msgstr "Einrichtungsdatei"
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Run the configuration assistant"
+msgstr "Stun: Konfigurationsfehler"
+
+#: ../sflphone-client-gnome/src/uimanager.c:727
+msgid "Call your voicemail"
+msgstr "%d Voice Nachricht"
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "_Close"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "Minimize to system tray"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "_Quit"
+msgstr "_Editieren"
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "Quit the program"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:732
+msgid "_Edit"
+msgstr "_Editieren"
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "_Copy"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "Copy the selection"
+msgstr "Entfernen Sie das ausgewählte Konto"
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "_Paste"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "Paste the clipboard"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear _history"
+msgstr "Liste der vorherigen Anrufen _leeren"
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear the call history"
+msgstr "Vorherigen Anrufen leeren"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "_Accounts"
+msgstr "_Konten"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "Edit your accounts"
+msgstr "Aktuelles Konto"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "_Preferences"
+msgstr "Einstellungen"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "Change your preferences"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:740
+msgid "_View"
+msgstr "_Anzeigen"
+
+#: ../sflphone-client-gnome/src/uimanager.c:743
+msgid "_Help"
+msgstr "_Hilfe"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Contents"
+msgstr "Weiter"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Open the manual"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:745
+msgid "About this application"
+msgstr "Authentifizierung"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "_Transfer"
+msgstr "Weiterleiten"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "Transfer the call"
+msgstr "Weiterleiten zu : "
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "_Show toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "Show the toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "_Dialpad"
+msgstr "_Wählscheibe"
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "Show the dialpad"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "_Volume controls"
+msgstr "Lautstärke-Regler anzeigen"
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "Show the volume controls"
+msgstr "Lautstärke-Regler anzeigen"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "_History"
+msgstr "Vorherige Anrufe"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "Calls history"
+msgstr "Liste der vorherigen Anrufen"
+
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "_Address book"
+msgstr "Adressbuch"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1003
+#: ../sflphone-client-gnome/src/uimanager.c:1044
+msgid "On _Hold"
+msgstr "in _Warteschleife"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1107
 msgid "_Call back"
 msgstr "_Zurückrufen"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1226
-msgid "_New call"
-msgstr "_Neuer Anruf"
-
-#: ../sflphone-client-gnome/src/uimanager.c:1300
+#: ../sflphone-client-gnome/src/uimanager.c:1258
 msgid "Edit phone number"
 msgstr "Nummer editieren"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1311
+#: ../sflphone-client-gnome/src/uimanager.c:1269
 msgid "Edit the phone number before making a call"
 msgstr "Nummer vor dem Anruf editieren"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:164
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:180
 msgid "Account Parameters"
-msgstr ""
+msgstr "Konto parameter"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:173
-#: ../sflphone-client-gnome/src/config/assistant.c:294
-#: ../sflphone-client-gnome/src/config/assistant.c:402
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/assistant.c:314
+#: ../sflphone-client-gnome/src/config/assistant.c:427
 msgid "_Alias"
 msgstr "_Alias"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:181
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:197
 msgid "_Protocol"
 msgstr "_Protokoll"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:199
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:215
 msgid "Unknown"
 msgstr "Unbekannt"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:209
-#: ../sflphone-client-gnome/src/config/assistant.c:302
-#: ../sflphone-client-gnome/src/config/assistant.c:410
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
+#: ../sflphone-client-gnome/src/config/assistant.c:322
+#: ../sflphone-client-gnome/src/config/assistant.c:435
 msgid "_Host name"
 msgstr "_Hostname"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:217
-#: ../sflphone-client-gnome/src/config/assistant.c:310
-#: ../sflphone-client-gnome/src/config/assistant.c:418
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:233
+#: ../sflphone-client-gnome/src/config/assistant.c:330
+#: ../sflphone-client-gnome/src/config/assistant.c:443
 msgid "_User name"
 msgstr "_Benutzername"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:234
-#: ../sflphone-client-gnome/src/config/assistant.c:326
-#: ../sflphone-client-gnome/src/config/assistant.c:433
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:346
+#: ../sflphone-client-gnome/src/config/assistant.c:458
 msgid "_Password"
 msgstr "_Passwort"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:254
-#: ../sflphone-client-gnome/src/config/assistant.c:344
-#: ../sflphone-client-gnome/src/config/assistant.c:449
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:270
+#: ../sflphone-client-gnome/src/config/assistant.c:363
+#: ../sflphone-client-gnome/src/config/assistant.c:473
+msgid "Show password"
+msgstr "Passwort"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:274
+#: ../sflphone-client-gnome/src/config/assistant.c:368
+#: ../sflphone-client-gnome/src/config/assistant.c:478
 msgid "_Voicemail number"
 msgstr "_Voicemail Nummer"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:340
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:361
 msgid "Authentication"
-msgstr ""
+msgstr "Authentifizierung"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:362
 msgid "Secret"
-msgstr ""
+msgstr "Geheim"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:605
 msgid "Credential"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:501
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:640
 msgid "Authentication name"
-msgstr ""
+msgstr "Authentifizierung Name"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:512
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:651
 msgid "Password"
 msgstr "Passwort"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:535
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:909
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:201
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1056
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:321
 msgid "Security"
 msgstr "Sicherheit"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:547
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:213
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:333
 msgid "Use TLS transport (sips)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:552
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:218
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:338
 msgid "SRTP key exchange"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:699
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
 msgid "Disabled"
-msgstr ""
+msgstr "Deaktiviert"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:795
 msgid "Registration"
-msgstr ""
+msgstr "Anmeldung"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:800
 msgid "Registration expire"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:809
 msgid "_Comply with RFC 3263"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
-msgid "Network"
-msgstr ""
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:816
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:234
+msgid "Network Interface"
+msgstr "Kein netzwerk"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:830
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:249
 msgid "Local address"
-msgstr ""
+msgstr "Adresse (lokal)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:301
 msgid "Local port"
+msgstr "Port (lokal)"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:893
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:928
+msgid "Published address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:752
-msgid "Set published address and port:"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+msgid "Using STUN"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:756
-msgid "Using STUN "
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:906
+msgid "STUN server URL"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:761
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:914
 msgid "Same as local parameters"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:764
-msgid "Manually"
-msgstr "Manuell"
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:769
-msgid "Published address"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:917
+msgid "Set published address and port:"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:777
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:936
 msgid "Published port"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:785
-msgid "STUN server URL"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1027
 msgid "Account settings"
 msgstr "Kontoeinstellungen"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1046
 msgid "Basic"
-msgstr ""
+msgstr "Allgemein"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:904
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1051
 msgid "Advanced"
-msgstr ""
+msgstr "Erweitert"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:169
-msgid "Server returned \""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:164
+#, c-format
+msgid "Server returned \"%s\" (%d)"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
@@ -483,40 +671,26 @@ msgstr "Status"
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:474
 msgid "Accounts"
-msgstr ""
+msgstr "Konten"
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:484
 msgid "Configured Accounts"
 msgstr "Konfigurierten Konten"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
-msgid "There "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "is "
-msgstr ""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:501
+msgid "There is %d active account"
+msgid_plural "There are %d active accounts"
+msgstr[0] " aktive Konten"
+msgstr[1] " aktive Konten"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "are "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
-msgid " active account"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
-msgid "s"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:507
 msgid "You have no active account"
-msgstr ""
+msgstr "Sie haben kein aktives Konto"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:556
 msgid "General"
-msgstr ""
+msgstr "Allgemein"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:312
 msgid "_Use Evolution address books"
@@ -559,16 +733,16 @@ msgid "Select which Evolution address books to use"
 msgstr "Adressbücher von Evolution zum verwenden auswählen"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:404
-#: ../sflphone-client-gnome/src/config/audioconf.c:578
+#: ../sflphone-client-gnome/src/config/audioconf.c:577
 msgid "Name"
 msgstr "Name"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:69
+#: ../sflphone-client-gnome/src/config/assistant.c:75
 #, c-format
 msgid "This assistant is now finished."
 msgstr "Assistent beendet."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:71
+#: ../sflphone-client-gnome/src/config/assistant.c:77
 msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
@@ -576,213 +750,207 @@ msgstr ""
 "Sie können jederzeit Ihres Registrierungsstatus überprüfen oder "
 "IhreKontoparameter ändern (Optionen/Konten)."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:74
+#: ../sflphone-client-gnome/src/config/assistant.c:80
 msgid "Alias"
 msgstr "Alias"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:78
+#: ../sflphone-client-gnome/src/config/assistant.c:84
 msgid "Server"
 msgstr "Server"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:82
+#: ../sflphone-client-gnome/src/config/assistant.c:88
 msgid "Username"
 msgstr "Benutzername"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:86
+#: ../sflphone-client-gnome/src/config/assistant.c:92
 msgid "Security: "
-msgstr ""
+msgstr "Sicherheit: "
 
-#: ../sflphone-client-gnome/src/config/assistant.c:88
+#: ../sflphone-client-gnome/src/config/assistant.c:94
 msgid "SRTP/ZRTP draft-zimmermann"
 msgstr "SRTP/ZRTP draft-zimmermann"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:90
-#: ../sflphone-client-gnome/src/config/assistant.c:182
+#: ../sflphone-client-gnome/src/config/assistant.c:96
 msgid "None"
 msgstr "Nichts"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:210
+#: ../sflphone-client-gnome/src/config/assistant.c:229
 msgid "SFLphone account creation wizard"
 msgstr "SFLphone Konto (Konfigurationsassistent)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:236
+#: ../sflphone-client-gnome/src/config/assistant.c:255
 msgid "Welcome to the Account creation wizard of SFLphone!"
 msgstr "Wilkommen zu SFLphone!"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:237
+#: ../sflphone-client-gnome/src/config/assistant.c:256
 msgid "This installation wizard will help you configure an account."
 msgstr ""
 "The Installationsassistent wird Ihnen helfen, ein Konto zu konfigurieren."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "VoIP Protocols"
 msgstr "VoIP Protokoll"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "Select an account type"
 msgstr "Kontotyp auswählen"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:253
+#: ../sflphone-client-gnome/src/config/assistant.c:272
 msgid "SIP (Session Initiation Protocol)"
 msgstr "SIP (Session Initiation Protocol)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:255
+#: ../sflphone-client-gnome/src/config/assistant.c:274
 msgid "IAX2 (InterAsterix Exchange)"
 msgstr "IAX2 (InterAsterisk Exchange)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Account"
 msgstr "Konto"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Please select one of the following options"
 msgstr "Bitte eine Option auswählen"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:271
+#: ../sflphone-client-gnome/src/config/assistant.c:290
 msgid "Create a free SIP/IAX2 account on sflphone.org"
 msgstr "SIP/IAX2 Konto bei sflphone.org erstellen lassen"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:273
+#: ../sflphone-client-gnome/src/config/assistant.c:292
 msgid "Register an existing SIP or IAX2 account"
 msgstr "Existierendes SIP/IAX2 Konto registrieren"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
+#: ../sflphone-client-gnome/src/config/assistant.c:306
 msgid "SIP account settings"
 msgstr "Konfiguration des SIP Konto"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:306
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "Please fill the following information"
 msgstr "Folgende Informationen bitte ausfühlen"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:352
-#: ../sflphone-client-gnome/src/config/assistant.c:381
+#: ../sflphone-client-gnome/src/config/assistant.c:376
+#: ../sflphone-client-gnome/src/config/assistant.c:405
 msgid "Secure communications with _ZRTP"
-msgstr ""
+msgstr "Sichere Kommunikation mit _ZRTP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "Optional email address"
 msgstr "Fakultative E-mail-Adresse"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "This email address will be used to send your voicemail messages."
 msgstr ""
 "Diese E-mail-Adresse wird benutzt, um Ihnen voicemail Meldungen zu schicken."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:373
+#: ../sflphone-client-gnome/src/config/assistant.c:397
 msgid "_Email address"
 msgstr "_Email"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "IAX2 account settings"
 msgstr "Konfiguration des IAX2 Konto"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "Network Address Translation (NAT)"
 msgstr "Network Address Translation (NAT)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "You should probably enable this if you are behind a firewall."
-msgstr ""
-"Sie sollten dieses einschalten, falls Sie hinter einer Firewall sind."
+msgstr "Sie sollten dieses einschalten, falls Sie hinter einer Firewall sind."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:476
+#: ../sflphone-client-gnome/src/config/assistant.c:505
 msgid "E_nable STUN"
 msgstr "STUN Ei_nschalten"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:483
+#: ../sflphone-client-gnome/src/config/assistant.c:512
 msgid "_STUN server"
 msgstr "_STUN Server"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Account Registration"
 msgstr "Konto Registrierung"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Congratulations!"
 msgstr "Gratulation!"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:583
+#: ../sflphone-client-gnome/src/config/audioconf.c:582
 msgid "Frequency"
 msgstr "Frequenz"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:588
+#: ../sflphone-client-gnome/src/config/audioconf.c:587
 msgid "Bitrate"
 msgstr "Bitrate"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:593
+#: ../sflphone-client-gnome/src/config/audioconf.c:592
 msgid "Bandwidth"
 msgstr "Bandbreite"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:673
+#: ../sflphone-client-gnome/src/config/audioconf.c:670
 msgid "ALSA plugin"
 msgstr "ALSA Plugin"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:695
+#: ../sflphone-client-gnome/src/config/audioconf.c:692
 msgid "Output"
 msgstr "Ausgabe"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:717
+#: ../sflphone-client-gnome/src/config/audioconf.c:714
 msgid "Input"
 msgstr "Eingabe"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:752
+#: ../sflphone-client-gnome/src/config/audioconf.c:749
 msgid "_Voice Activity Detection"
 msgstr "\"Voice Activity\" Erkennung"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:762
+#: ../sflphone-client-gnome/src/config/audioconf.c:759
 msgid "_Noise Reduction (Narrow-Band Companding)"
 msgstr "_Geräuschreduzierung (Narrow-Band Companding)"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:798
+#: ../sflphone-client-gnome/src/config/audioconf.c:800
 msgid "Sound Manager"
 msgstr "Sound Manager"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:807
+#: ../sflphone-client-gnome/src/config/audioconf.c:809
 msgid "_Pulseaudio"
 msgstr "Pulseaudio"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:811
+#: ../sflphone-client-gnome/src/config/audioconf.c:813
 msgid "_ALSA"
 msgstr "ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:816
-msgid "_Mute other applications during a call"
-msgstr "_Während eines Anrufs andere Anwendungen stumm schalten"
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:823
+#: ../sflphone-client-gnome/src/config/audioconf.c:819
 msgid "ALSA settings"
 msgstr "ALSA Konfiguration"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:840
+#: ../sflphone-client-gnome/src/config/audioconf.c:836
 msgid "Codecs"
 msgstr "Codecs"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:869
+#: ../sflphone-client-gnome/src/config/audioconf.c:865
 msgid "Recordings"
-msgstr ""
+msgstr "Aufnahmen"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:873
+#: ../sflphone-client-gnome/src/config/audioconf.c:869
 msgid "Destination folder"
 msgstr "Zielverzeichnis"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:877
+#: ../sflphone-client-gnome/src/config/audioconf.c:873
 msgid "Select a folder"
 msgstr "Verzeichnis auswählen"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:883
+#: ../sflphone-client-gnome/src/config/audioconf.c:879
 msgid "Ringtones"
 msgstr "Klingeltöne"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:889
+#: ../sflphone-client-gnome/src/config/audioconf.c:885
 msgid "_Enable ringtones"
 msgstr "Klingeltöne _einschalten"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:895
+#: ../sflphone-client-gnome/src/config/audioconf.c:891
 msgid "Choose a ringtone"
 msgstr "Klingelton auswählen"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:901
+#: ../sflphone-client-gnome/src/config/audioconf.c:897
 msgid "Audio Files"
 msgstr "Audio Dateien"
 
@@ -819,86 +987,66 @@ msgstr "Telefonnummer umformen"
 msgid "_Prefix dialed numbers with"
 msgstr "_Präfix vor Nummern einfügen"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:195
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:225
 msgid ""
 "This profile is used when you want to reach a remote peer simply by typing a "
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
 "also be used if no account can be matched to an incoming or outgoing call."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:274
-msgid "SIP Port"
-msgstr "SIP Port"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:281
-msgid "UDP Transport"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:319
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:440
 msgid "Desktop Notifications"
 msgstr "Desktopbenachrichtigungen"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:323
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:444
 msgid "_Enable notifications"
 msgstr "Benachrichtigungen _einschalten"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:329
-msgid "Enable voicemail _notifications"
-msgstr "_Benachrichtigung für Voice Nachrichten"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:341
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:450
 msgid "System Tray Icon"
 msgstr "Benachrichtigungsfeld (\"System Tray\") Icon"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
 msgid "_Popup main window on incoming call"
 msgstr "Hauptfenster anzeigen wenn eingehendes Gespräch"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:349
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:457
 msgid "Ne_ver popup main window"
 msgstr "_Hauptfenster nie anzeigen"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:353
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
 msgid "Hide SFLphone window on _startup"
 msgstr "_Unsichtbar beim Start"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:359
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:469
 msgid "Calls History"
 msgstr "Liste der vorherigen Anrufen"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:362
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:472
 msgid "_Keep my history for at least"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:373
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:483
 msgid "days"
 msgstr "Tage"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
-msgid "Configuration File"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
-msgid "Store SIP credentials as MD5 hash"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:423
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:536
 msgid "Preferences"
 msgstr "Einstellungen"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:448
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:561
 msgid "Audio"
 msgstr "Audio"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:566
 msgid "Address Book"
 msgstr "Adressbuch"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:458
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:571
 msgid "Hooks"
 msgstr "Hooks"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:468
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:581
 msgid "Direct IP calls"
 msgstr ""
 
@@ -906,11 +1054,11 @@ msgstr ""
 msgid "Advanced options for TLS"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:56
 msgid "TLS transport"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:60
 msgid ""
 "TLS transport can be used along with UDP for those calls that would\n"
 "require secure sip transactions (aka SIPS). You can configure a different\n"
@@ -919,101 +1067,134 @@ msgid ""
 "port, different one from each other\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:103
 msgid "Certificate of Authority list"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:107
 msgid "Choose a CA list file (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:115
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:131
 msgid "Public endpoint certificate file"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:119
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:135
 msgid "Choose a public endpoint certificate (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:134
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:159
 msgid "Choose a private key file (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:145
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:181
 msgid "Password for the private key"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:168
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:204
 msgid "TLS protocol method"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:202
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:238
 msgid "TLS cipher list"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:211
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:247
 msgid "Server name instance for outgoing TLS connection"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:219
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:255
 msgid "Negotiation timeout (sec:msec)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:236
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:272
 msgid "Verify incoming certificates, as a server"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:242
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:278
 msgid "Verify certificates from answer, as a client"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:248
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:284
 msgid "Require certificate for incoming tls connections"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:49
 msgid "ZRTP Options"
-msgstr ""
+msgstr "ZRTP Optionen"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:68
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:69
 msgid "Send Hello Hash in S_DP"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:74
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:75
 msgid "Ask User to Confirm SAS"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:80
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:81
 msgid "_Warn if ZRTP not supported"
-msgstr ""
+msgstr "_Warnung wenn ZRTP nicht unterstüzt"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:86
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:87
 msgid "Display SAS once for hold events"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:56
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:58
 msgid "Search all"
 msgstr "Suche alle"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:57
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:70
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:82
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:94
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:59
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:72
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:84
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:96
 msgid "Click here to change the search type"
 msgstr "Klicken Sie hier, um Suchtyp zu wechseln"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:69
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:71
 msgid "Search by missed call"
 msgstr "Suche nach Anruf in Abwesenheit"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:81
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:83
 msgid "Search by incoming call"
 msgstr "Suche nach eingehenden Anruf"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:93
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:95
 msgid "Search by outgoing call"
 msgstr "Suche nach ausgehenden Anru"
 
+#~ msgid "IP call - %s"
+#~ msgstr "IP Anruf - %s"
+
+#~ msgid "Codec"
+#~ msgstr "Codec"
+
+#~ msgid "Network"
+#~ msgstr "Netzwerk"
+
+#~ msgid "Manually"
+#~ msgstr "Manuell"
+
+#~ msgid "There "
+#~ msgstr "Es "
+
+#~ msgid "is "
+#~ msgstr "gibt "
+
+#~ msgid "are "
+#~ msgstr "gibt "
+
+#~ msgid "_Mute other applications during a call"
+#~ msgstr "_Während eines Anrufs andere Anwendungen stumm schalten"
+
+#~ msgid "SIP Port"
+#~ msgstr "SIP Port"
+
+#~ msgid "UDP Transport"
+#~ msgstr "UDP Transport"
+
+#~ msgid "Enable voicemail _notifications"
+#~ msgstr "_Benachrichtigung für Voice Nachrichten"
+
 #~ msgctxt "account state"
 #~ msgid "Error"
 #~ msgstr "Fehler"
@@ -1050,9 +1231,6 @@ msgstr "Suche nach ausgehenden Anru"
 #~ msgid "Default account"
 #~ msgstr "Default Konto"
 
-#~ msgid "Transfer to : "
-#~ msgstr "Weiterleiten zu : "
-
 #~ msgid "SFLphone KDE Client"
 #~ msgstr "SFLphone KDE Client"
 
@@ -1062,14 +1240,6 @@ msgstr "Suche nach ausgehenden Anru"
 #~ msgid "Jérémy Quentin"
 #~ msgstr "Jérémy Quentin"
 
-#~ msgctxt "NAME OF TRANSLATORS"
-#~ msgid "Your names"
-#~ msgstr "Ihre Namen, ,Launchpad Contributions:,Maxime Chambreuil,Sven Werlen"
-
-#~ msgctxt "EMAIL OF TRANSLATORS"
-#~ msgid "Your emails"
-#~ msgstr "Ihre E-Mail-Adressen,,,maxime.chambreuil@gmail.com,"
-
 #~ msgid "Incoming call"
 #~ msgstr "Eingehende Anrufe"
 
@@ -1085,12 +1255,6 @@ msgstr "Suche nach ausgehenden Anru"
 #~ msgid "Main screen"
 #~ msgstr "Hauptbildschirm"
 
-#~ msgid "Call history"
-#~ msgstr "Liste der vorherigen Anrufen"
-
-#~ msgid "Address book"
-#~ msgstr "Adressbuch"
-
 #~ msgid "Edit before call"
 #~ msgstr "Vor Aufruf bearbeiten"
 
@@ -1103,9 +1267,6 @@ msgstr "Suche nach ausgehenden Anru"
 #~ msgid "Hold on"
 #~ msgstr "In Warteschleife"
 
-#~ msgid "Transfer"
-#~ msgstr "Weiterleiten"
-
 #~ msgid "Record"
 #~ msgstr "Gespräch aufzeichnen"
 
@@ -1124,22 +1285,19 @@ msgstr "Suche nach ausgehenden Anru"
 #~ 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."
+#~ "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 verwendet das erste \"registrierte\" Konto in der Liste, wenn Sie "
-#~ "anrufen. Benutzen Sie die Pfeile, um die Anordnung der Kontos zu ändern. Mit "
-#~ "\"Plus\" und \"Minus\" können Sie ein Konto anlegen bzgl. entfernen. Mit "
-#~ "\"Editieren\" können Sie ein Konto bearbeiten."
-
-#~ msgid "Remove the selected account"
-#~ msgstr "Entfernen Sie das ausgewählte Konto"
+#~ "Sflphone verwendet das erste \"registrierte\" Konto in der Liste, wenn "
+#~ "Sie anrufen. Benutzen Sie die Pfeile, um die Anordnung der Kontos zu "
+#~ "ändern. Mit \"Plus\" und \"Minus\" können Sie ein Konto anlegen bzgl. "
+#~ "entfernen. Mit \"Editieren\" können Sie ein Konto bearbeiten."
 
 #~ 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."
+#~ "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 ""
 #~ "Diese Aktion entfernt das ausgewählte Konto aus der Liste. Stellen Sie "
 #~ "sicher, dass Sie es wirklich nicht mehr brauchen."
@@ -1161,8 +1319,9 @@ msgstr "Suche nach ausgehenden Anru"
 #~ "this list which is \"registered\". Change the order of the accounts using "
 #~ "the \"Up\" and \"Down\" arrows."
 #~ msgstr ""
-#~ "Sflphone verwendet das erste \"registrierte\" Konto in der Liste, wenn Sie "
-#~ "anrufen. Benutzen Sie die Pfeile, um die Anordnung der Kontos zu ändern."
+#~ "Sflphone verwendet das erste \"registrierte\" Konto in der Liste, wenn "
+#~ "Sie anrufen. Benutzen Sie die Pfeile, um die Anordnung der Kontos zu "
+#~ "ändern."
 
 #~ msgid "Down"
 #~ msgstr "Unten"
@@ -1248,9 +1407,6 @@ msgstr "Suche nach ausgehenden Anru"
 #~ msgid "On start"
 #~ msgstr "Beim Start"
 
-#~ msgid "Clear history"
-#~ msgstr "Vorherigen Anrufen leeren"
-
 #~ msgid "Connection"
 #~ msgstr "Anbindung"
 
@@ -1266,15 +1422,9 @@ msgstr "Suche nach ausgehenden Anru"
 #~ msgid "Prefix dialed numbers with"
 #~ msgstr "Präfix vor Nummern einfügen"
 
-#~ msgid "History"
-#~ msgstr "Vorherige Anrufe"
-
 #~ msgid "Configure SFLphone"
 #~ msgstr "Konfigurieren SFLphone"
 
-#~ msgid "Display volume controls"
-#~ msgstr "Lautstärke-Regler anzeigen"
-
 #~ msgid "Display dialpad"
 #~ msgstr "Wählscheibe anzeigen"
 
@@ -1285,27 +1435,6 @@ msgstr "Suche nach ausgehenden Anru"
 #~ msgid "Attention:number of results exceeds max displayed."
 #~ msgstr "Warnung: Anzahl Resultate überschreit definiertes Maximum"
 
-#~ msgid "_Help"
-#~ msgstr "_Hilfe"
-
-#~ msgid "_Call"
-#~ msgstr "_Anruf"
-
-#~ msgid "Clear _history"
-#~ msgstr "Liste der vorherigen Anrufen _leeren"
-
-#~ msgid "_Accounts"
-#~ msgstr "_Konten"
-
-#~ msgid "_Edit"
-#~ msgstr "_Editieren"
-
-#~ msgid "_Dialpad"
-#~ msgstr "_Wählscheibe"
-
-#~ msgid "_View"
-#~ msgstr "_Anzeigen"
-
 #~ msgid "%s - %s"
 #~ msgstr "%s - %s"
 
@@ -1317,3 +1446,15 @@ msgstr "Suche nach ausgehenden Anru"
 
 #~ msgid "Port"
 #~ msgstr "Port"
+
+#~ msgctxt "NAME OF TRANSLATORS"
+#~ msgid "Your names"
+#~ msgstr ""
+#~ "Ihre Namen, ,Launchpad Contributions:,Maxime Chambreuil,Sven Werlen, ,"
+#~ "Launchpad Contributions:,Maxime Chambreuil,Sven Werlen,Sven Werlen"
+
+#~ msgctxt "EMAIL OF TRANSLATORS"
+#~ msgid "Your emails"
+#~ msgstr ""
+#~ "Ihre E-Mail-Adressen,,,maxime.chambreuil@gmail.com,,,,maxime."
+#~ "chambreuil@gmail.com,,sven.werlen@gmail.com"
diff --git a/sflphone-client-gnome/po/es/es.po b/sflphone-client-gnome/po/es/es.po
index 3ec57681b1..a40c09ce90 100644
--- a/sflphone-client-gnome/po/es/es.po
+++ b/sflphone-client-gnome/po/es/es.po
@@ -9,15 +9,15 @@ msgid ""
 msgstr ""
 "Project-Id-Version: SFLphone 0.9.4\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-14 11:18-0400\n"
-"PO-Revision-Date: 2009-10-14 23:39+0000\n"
+"POT-Creation-Date: 2009-12-03 10:22-0500\n"
+"PO-Revision-Date: 2009-10-26 20:46+0000\n"
 "Last-Translator: Maxime Chambreuil <maxime.chambreuil@gmail.com>\n"
 "Language-Team: SavoirFaireLinux Inc <sflphoneteam@savoirfairelinux.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2009-10-26 15:48+0000\n"
+"X-Launchpad-Export-Date: 2009-12-03 15:32+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
 #: ../sflphone-client-gnome/src/accountlist.c:175
@@ -62,25 +62,15 @@ msgstr "Servidor stun inválido"
 msgid "Invalid"
 msgstr "Inválido"
 
-#: ../sflphone-client-gnome/src/actions.c:54
-#: ../sflphone-client-gnome/src/sflnotify.c:94
-#, c-format
-msgid "%d voice mail"
-msgid_plural "%d voice mails"
-msgstr[0] "%d mensaje de voz"
-msgstr[1] "%d mensajes de voz"
-
-#: ../sflphone-client-gnome/src/actions.c:83
-#: ../sflphone-client-gnome/src/actions.c:919
-#: ../sflphone-client-gnome/src/actions.c:926
+#: ../sflphone-client-gnome/src/actions.c:98
 msgid "Using account"
 msgstr "Usando la cuenta"
 
-#: ../sflphone-client-gnome/src/actions.c:89
+#: ../sflphone-client-gnome/src/actions.c:104
 msgid "No registered accounts"
 msgstr "Ninguna cuenta registrada"
 
-#: ../sflphone-client-gnome/src/actions.c:268
+#: ../sflphone-client-gnome/src/actions.c:285
 msgid ""
 "Unable to connect to the SFLphone server.\n"
 "Make sure the daemon is running."
@@ -88,22 +78,18 @@ msgstr ""
 "Incapaz de conectar con el servidor SFLphone.\n"
 " Asegúrese que el demonio esté funcionando."
 
-#: ../sflphone-client-gnome/src/actions.c:913
-#, c-format
-msgid "IP call - %s"
-msgstr "Llamada IP - %s"
-
-#: ../sflphone-client-gnome/src/actions.c:922
-msgid "Codec"
-msgstr "Códec"
+#: ../sflphone-client-gnome/src/actions.c:589
+#: ../sflphone-client-gnome/src/actions.c:911
+msgid "Direct SIP call"
+msgstr "Llamadas IP directas"
 
-#: ../sflphone-client-gnome/src/actions.c:1119
+#: ../sflphone-client-gnome/src/actions.c:1103
 #, c-format
 msgid ""
 "<b>Error: No audio codecs found.\n"
 "\n"
-"</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
-"<b>.sflphone</b> directory in your home( <i>%s</i> )"
+"</b> SFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</"
+"b> directory in your home( <i>%s</i> )"
 msgstr ""
 "<b>Error: Codecs de audio no encontrados.\n"
 "\n"
@@ -152,31 +138,31 @@ msgstr "Hay llamadas en curso."
 msgid "Do you still want to quit?"
 msgstr "Aún quiere salir ?"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:299
+#: ../sflphone-client-gnome/src/mainwindow.c:298
 msgid "SFLphone Error"
 msgstr "Error SFLphone"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:391
+#: ../sflphone-client-gnome/src/mainwindow.c:392
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
 msgstr "ZRTP no es compatible con %s\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:392
+#: ../sflphone-client-gnome/src/mainwindow.c:393
 msgid "Secure Communication Unavailable"
 msgstr "Comunicación segura no disponible"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:393
-#: ../sflphone-client-gnome/src/mainwindow.c:415
+#: ../sflphone-client-gnome/src/mainwindow.c:394
+#: ../sflphone-client-gnome/src/mainwindow.c:416
 msgid "Continue"
 msgstr "Seguir"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:394
-#: ../sflphone-client-gnome/src/mainwindow.c:416
-#: ../sflphone-client-gnome/src/mainwindow.c:430
+#: ../sflphone-client-gnome/src/mainwindow.c:395
+#: ../sflphone-client-gnome/src/mainwindow.c:417
+#: ../sflphone-client-gnome/src/mainwindow.c:431
 msgid "Stop Call"
 msgstr "Terminar llamada"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:413
+#: ../sflphone-client-gnome/src/mainwindow.c:414
 #, c-format
 msgid ""
 "A %s error forced the call with %s to fall under unencrypted mode.\n"
@@ -185,11 +171,11 @@ msgstr ""
 "Un error de %s obliga la llamada con %s a caer bajo un modo decifrado.\n"
 "Razón exacta: %s\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:414
+#: ../sflphone-client-gnome/src/mainwindow.c:415
 msgid "ZRTP negotiation failed"
 msgstr "Negociación ZRTP fracasada"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:427
+#: ../sflphone-client-gnome/src/mainwindow.c:428
 #, c-format
 msgid ""
 "%s wants to stop using secure communication. Confirm will resume "
@@ -198,11 +184,11 @@ msgstr ""
 "%s quiere parar la comunicación segura. Confirmar reanudará la conversación "
 "sin SRTP.\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:428
+#: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm Go Clear"
 msgstr "Confirmar"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:429
+#: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Confirm"
 msgstr "Confirmar"
 
@@ -217,6 +203,13 @@ msgstr "%s cuenta : %s"
 msgid "<i>From</i> %s"
 msgstr "<i>De</i> %s"
 
+#: ../sflphone-client-gnome/src/sflnotify.c:94
+#, c-format
+msgid "%d voice mail"
+msgid_plural "%d voice mails"
+msgstr[0] "%d mensaje de voz"
+msgstr[1] "%d mensajes de voz"
+
 #: ../sflphone-client-gnome/src/sflnotify.c:111
 #, c-format
 msgid "Calling with %s account <i>%s</i>"
@@ -266,15 +259,15 @@ msgstr "Volumen de altavoces"
 msgid "Mic volume"
 msgstr "Volumen del micrófono"
 
-#: ../sflphone-client-gnome/src/statusicon.c:91
+#: ../sflphone-client-gnome/src/statusicon.c:96
 msgid "_Show main window"
 msgstr "Mostrar ventana principal"
 
-#: ../sflphone-client-gnome/src/statusicon.c:126
+#: ../sflphone-client-gnome/src/statusicon.c:131
 msgid "SFLphone"
 msgstr "SFLphone"
 
-#: ../sflphone-client-gnome/src/statusicon.c:127
+#: ../sflphone-client-gnome/src/statusicon.c:132
 #, c-format
 msgid "%i account configured"
 msgid_plural "%i accounts configured"
@@ -282,203 +275,397 @@ msgstr[0] "%i cuenta configurada"
 msgstr[1] "%i cuentas configuradas"
 
 #: ../sflphone-client-gnome/src/toolbar.c:38
-#: ../sflphone-client-gnome/src/uimanager.c:750
+#: ../sflphone-client-gnome/src/uimanager.c:693
+#: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Voicemail"
 msgstr "Mensaje de voz"
 
-#: ../sflphone-client-gnome/src/uimanager.c:403
+#: ../sflphone-client-gnome/src/uimanager.c:117
+msgid "No address book selected"
+msgstr "Libreta de contactos"
+
+#: ../sflphone-client-gnome/src/uimanager.c:137
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "Address book"
+msgstr "Libreta de contactos"
+
+#: ../sflphone-client-gnome/src/uimanager.c:279
+msgid "Voicemail (%i)"
+msgstr "Mensaje de voz (%i)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:342
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
-msgstr ""
-"SFLphone es un teléfono VoIP compatible con los protocolos SIP y IAX2"
+msgstr "SFLphone es un teléfono VoIP compatible con los protocolos SIP y IAX2"
 
-#: ../sflphone-client-gnome/src/uimanager.c:406
+#: ../sflphone-client-gnome/src/uimanager.c:345
 msgid "About SFLphone"
 msgstr "Sobre SFLphone"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1028
+#: ../sflphone-client-gnome/src/uimanager.c:719
+msgid "Call"
+msgstr "_Llamar"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+#: ../sflphone-client-gnome/src/uimanager.c:1184
+msgid "_New call"
+msgstr "_Nueva llamada"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+msgid "Place a new call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:721
+#: ../sflphone-client-gnome/src/uimanager.c:979
 msgid "_Pick up"
 msgstr "_Descolgar"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1040
-#: ../sflphone-client-gnome/src/uimanager.c:1081
+#: ../sflphone-client-gnome/src/uimanager.c:721
+msgid "Answer the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:722
+#: ../sflphone-client-gnome/src/uimanager.c:991
+#: ../sflphone-client-gnome/src/uimanager.c:1032
 msgid "_Hang up"
 msgstr "_Colgar"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1052
-#: ../sflphone-client-gnome/src/uimanager.c:1093
-msgid "On _Hold"
+#: ../sflphone-client-gnome/src/uimanager.c:722
+msgid "Finish the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "O_n hold"
 msgstr "En _Espera"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1064
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "Place the call on hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "O_ff hold"
+msgstr "Seguir"
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "Place the call off hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:725
+#: ../sflphone-client-gnome/src/uimanager.c:1015
 msgid "_Record"
 msgstr "G_rabar"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1154
+#: ../sflphone-client-gnome/src/uimanager.c:725
+msgid "Record the current conversation"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Configuration _Assistant"
+msgstr "Archivo de configuración"
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Run the configuration assistant"
+msgstr "Error de configuración Stun"
+
+#: ../sflphone-client-gnome/src/uimanager.c:727
+msgid "Call your voicemail"
+msgstr "%d mensaje de voz"
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "_Close"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "Minimize to system tray"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "_Quit"
+msgstr "_Editar"
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "Quit the program"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:732
+msgid "_Edit"
+msgstr "_Editar"
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "_Copy"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "Copy the selection"
+msgstr "Eliminar la cuenta seleccionada"
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "_Paste"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "Paste the clipboard"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear _history"
+msgstr "_Limpiar historial"
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear the call history"
+msgstr "Limpiar historial"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "_Accounts"
+msgstr "_Cuentas"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "Edit your accounts"
+msgstr "Cuenta actual"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "_Preferences"
+msgstr "Preferencias"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "Change your preferences"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:740
+msgid "_View"
+msgstr "_Ver"
+
+#: ../sflphone-client-gnome/src/uimanager.c:743
+msgid "_Help"
+msgstr "_Ayuda"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Contents"
+msgstr "Seguir"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Open the manual"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:745
+msgid "About this application"
+msgstr "Autentificación"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "_Transfer"
+msgstr "Transferir"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "Transfer the call"
+msgstr "Transferir a : "
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "_Show toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "Show the toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "_Dialpad"
+msgstr "Desactivado"
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "Show the dialpad"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "_Volume controls"
+msgstr "_Controles de volumen"
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "Show the volume controls"
+msgstr "_Controles de volumen"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "_History"
+msgstr "Historia de Llamada"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "Calls history"
+msgstr "Historia de Llamada"
+
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "_Address book"
+msgstr "Libreta de contactos"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1003
+#: ../sflphone-client-gnome/src/uimanager.c:1044
+msgid "On _Hold"
+msgstr "En _Espera"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1107
 msgid "_Call back"
 msgstr "_Llamar"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1226
-msgid "_New call"
-msgstr "_Nueva llamada"
-
-#: ../sflphone-client-gnome/src/uimanager.c:1300
+#: ../sflphone-client-gnome/src/uimanager.c:1258
 msgid "Edit phone number"
 msgstr "Editar número de teléfono"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1311
+#: ../sflphone-client-gnome/src/uimanager.c:1269
 msgid "Edit the phone number before making a call"
 msgstr "Editar el número de teléfono antes de llamar"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:164
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:180
 msgid "Account Parameters"
 msgstr "Parámetros de cuenta"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:173
-#: ../sflphone-client-gnome/src/config/assistant.c:294
-#: ../sflphone-client-gnome/src/config/assistant.c:402
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/assistant.c:314
+#: ../sflphone-client-gnome/src/config/assistant.c:427
 msgid "_Alias"
 msgstr "_Alias"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:181
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:197
 msgid "_Protocol"
 msgstr "_Protocolo"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:199
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:215
 msgid "Unknown"
 msgstr "Desconocido"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:209
-#: ../sflphone-client-gnome/src/config/assistant.c:302
-#: ../sflphone-client-gnome/src/config/assistant.c:410
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
+#: ../sflphone-client-gnome/src/config/assistant.c:322
+#: ../sflphone-client-gnome/src/config/assistant.c:435
 msgid "_Host name"
 msgstr "_Nombre de equipo"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:217
-#: ../sflphone-client-gnome/src/config/assistant.c:310
-#: ../sflphone-client-gnome/src/config/assistant.c:418
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:233
+#: ../sflphone-client-gnome/src/config/assistant.c:330
+#: ../sflphone-client-gnome/src/config/assistant.c:443
 msgid "_User name"
 msgstr "_Usuario"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:234
-#: ../sflphone-client-gnome/src/config/assistant.c:326
-#: ../sflphone-client-gnome/src/config/assistant.c:433
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:346
+#: ../sflphone-client-gnome/src/config/assistant.c:458
 msgid "_Password"
 msgstr "_Contraseña"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:254
-#: ../sflphone-client-gnome/src/config/assistant.c:344
-#: ../sflphone-client-gnome/src/config/assistant.c:449
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:270
+#: ../sflphone-client-gnome/src/config/assistant.c:363
+#: ../sflphone-client-gnome/src/config/assistant.c:473
+msgid "Show password"
+msgstr "Contraseña"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:274
+#: ../sflphone-client-gnome/src/config/assistant.c:368
+#: ../sflphone-client-gnome/src/config/assistant.c:478
 msgid "_Voicemail number"
 msgstr "_Número de buzón de voz"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:340
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:361
 msgid "Authentication"
 msgstr "Autentificación"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:362
 msgid "Secret"
 msgstr "Secreto"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:605
 msgid "Credential"
 msgstr "Informaciónes"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:501
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:640
 msgid "Authentication name"
 msgstr "Nombre de autentificación"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:512
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:651
 msgid "Password"
 msgstr "Contraseña"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:535
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:909
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:201
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1056
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:321
 msgid "Security"
 msgstr "Seguridad"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:547
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:213
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:333
 msgid "Use TLS transport (sips)"
 msgstr "Usa transporte TLS (sips)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:552
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:218
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:338
 msgid "SRTP key exchange"
 msgstr "Intercambió de clave SRTP"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:699
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
 msgid "Disabled"
 msgstr "Desactivado"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:795
 msgid "Registration"
 msgstr "Registración"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:800
 msgid "Registration expire"
 msgstr "Registracíon expira"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:809
 msgid "_Comply with RFC 3263"
 msgstr "_Cumplir con RFC 3263"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
-msgid "Network"
-msgstr "Red"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:816
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:234
+msgid "Network Interface"
+msgstr "Red Inaccesible"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:830
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:249
 msgid "Local address"
 msgstr "Dirección local"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:301
 msgid "Local port"
 msgstr "Puerto local"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:752
-msgid "Set published address and port:"
-msgstr "Publicar dirección y puerto:"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:893
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:928
+msgid "Published address"
+msgstr "Dirección publicada"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:756
-msgid "Using STUN "
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+msgid "Using STUN"
 msgstr "Usando STUN "
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:761
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:906
+msgid "STUN server URL"
+msgstr "URL del servidor STUN"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:914
 msgid "Same as local parameters"
 msgstr "Igual que parámetros locales"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:764
-msgid "Manually"
-msgstr "Manualmente"
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:769
-msgid "Published address"
-msgstr "Dirección publicada"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:917
+msgid "Set published address and port:"
+msgstr "Publicar dirección y puerto:"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:777
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:936
 msgid "Published port"
 msgstr "Puerto publicado"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:785
-msgid "STUN server URL"
-msgstr "URL del servidor STUN"
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1027
 msgid "Account settings"
 msgstr "Configuración de cuentas"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1046
 msgid "Basic"
 msgstr "Básico"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:904
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1051
 msgid "Advanced"
 msgstr "Avanzado"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:169
-msgid "Server returned \""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:164
+msgid "Server returned \"%s\" (%d)"
 msgstr "Servidor contesta \""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
@@ -497,32 +684,18 @@ msgstr "Cuentas"
 msgid "Configured Accounts"
 msgstr "Cuentas Configuradas"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
-msgid "There "
-msgstr "Alla "
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "is "
-msgstr "es "
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "are "
-msgstr "son "
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
-msgid " active account"
-msgstr " cuenta activada"
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:501
+msgid "There is %d active account"
+msgid_plural "There are %d active accounts"
+msgstr[0] " cuenta activada"
+msgstr[1] " cuenta activada"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
-msgid "s"
-msgstr "s"
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:507
 msgid "You have no active account"
 msgstr "No tienes ninguna cuenta activada"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:556
 msgid "General"
 msgstr "General"
 
@@ -544,8 +717,7 @@ msgstr "_Mostrar fotos de contactos, si están disponibles"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:341
 msgid "Fields from Evolution's address books"
-msgstr ""
-"Usar los siguientes campos de la libreta de direcciones de Evolution:"
+msgstr "Usar los siguientes campos de la libreta de direcciones de Evolution:"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:345
 msgid "_Work"
@@ -568,16 +740,16 @@ msgid "Select which Evolution address books to use"
 msgstr "Seleccione la libreta de contactos de Evolution a usar"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:404
-#: ../sflphone-client-gnome/src/config/audioconf.c:578
+#: ../sflphone-client-gnome/src/config/audioconf.c:577
 msgid "Name"
 msgstr "Nombre"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:69
+#: ../sflphone-client-gnome/src/config/assistant.c:75
 #, c-format
 msgid "This assistant is now finished."
 msgstr "El asistente ha finalizado"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:71
+#: ../sflphone-client-gnome/src/config/assistant.c:77
 msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
@@ -585,211 +757,205 @@ msgstr ""
 "Puede comprobar en cualquier momento su estado de registro o modificar la "
 "configuración de sus cuentas en la ventana de Opciones/Cuentas."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:74
+#: ../sflphone-client-gnome/src/config/assistant.c:80
 msgid "Alias"
 msgstr "Alias"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:78
+#: ../sflphone-client-gnome/src/config/assistant.c:84
 msgid "Server"
 msgstr "Servidor"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:82
+#: ../sflphone-client-gnome/src/config/assistant.c:88
 msgid "Username"
 msgstr "Usuario"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:86
+#: ../sflphone-client-gnome/src/config/assistant.c:92
 msgid "Security: "
 msgstr "Seguridad: "
 
-#: ../sflphone-client-gnome/src/config/assistant.c:88
+#: ../sflphone-client-gnome/src/config/assistant.c:94
 msgid "SRTP/ZRTP draft-zimmermann"
 msgstr "SRTP/ZRTP draft-zimmermann"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:90
-#: ../sflphone-client-gnome/src/config/assistant.c:182
+#: ../sflphone-client-gnome/src/config/assistant.c:96
 msgid "None"
 msgstr "Ninguno"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:210
+#: ../sflphone-client-gnome/src/config/assistant.c:229
 msgid "SFLphone account creation wizard"
 msgstr "Asistente de creación de cuentas"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:236
+#: ../sflphone-client-gnome/src/config/assistant.c:255
 msgid "Welcome to the Account creation wizard of SFLphone!"
 msgstr "¡Bienvenido al asistente de configuración de cuentas de SFLphone"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:237
+#: ../sflphone-client-gnome/src/config/assistant.c:256
 msgid "This installation wizard will help you configure an account."
 msgstr "Este asistente de instalación le ayudará a configurar una cuenta."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "VoIP Protocols"
 msgstr "Protocolos VoIP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "Select an account type"
 msgstr "Escoja un tipo de cuenta"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:253
+#: ../sflphone-client-gnome/src/config/assistant.c:272
 msgid "SIP (Session Initiation Protocol)"
 msgstr "SIP (Session Initiation Protocol)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:255
+#: ../sflphone-client-gnome/src/config/assistant.c:274
 msgid "IAX2 (InterAsterix Exchange)"
 msgstr "IAX2 (InterAsterix Exchange)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Account"
 msgstr "Cuenta"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Please select one of the following options"
 msgstr "Por favor, elija una de las siguientes opciones"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:271
+#: ../sflphone-client-gnome/src/config/assistant.c:290
 msgid "Create a free SIP/IAX2 account on sflphone.org"
 msgstr "Crear una cuenta SIP/IAX2 gratis en sflphone.org"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:273
+#: ../sflphone-client-gnome/src/config/assistant.c:292
 msgid "Register an existing SIP or IAX2 account"
 msgstr "Registrar una cuenta SIP o IAX2 existente"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
+#: ../sflphone-client-gnome/src/config/assistant.c:306
 msgid "SIP account settings"
 msgstr "Configuración de cuenta SIP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:306
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "Please fill the following information"
 msgstr "Por favor, ingrese la siguiente información"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:352
-#: ../sflphone-client-gnome/src/config/assistant.c:381
+#: ../sflphone-client-gnome/src/config/assistant.c:376
+#: ../sflphone-client-gnome/src/config/assistant.c:405
 msgid "Secure communications with _ZRTP"
 msgstr "Communicaciòn segura con _ZRTP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "Optional email address"
 msgstr "Dirección de correo opcional"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "This email address will be used to send your voicemail messages."
 msgstr "Esta dirección de correo se usará para mandar sus mensajes de voz"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:373
+#: ../sflphone-client-gnome/src/config/assistant.c:397
 msgid "_Email address"
 msgstr "_Correo"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "IAX2 account settings"
 msgstr "Configuración de cuenta IAX2"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "Network Address Translation (NAT)"
 msgstr "Conversión de Dirección de Red (NAT)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "You should probably enable this if you are behind a firewall."
-msgstr ""
-"Probablemente tiene que activar esto si está detrás de un cortafuegos."
+msgstr "Probablemente tiene que activar esto si está detrás de un cortafuegos."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:476
+#: ../sflphone-client-gnome/src/config/assistant.c:505
 msgid "E_nable STUN"
 msgstr "A_ctivar STUN"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:483
+#: ../sflphone-client-gnome/src/config/assistant.c:512
 msgid "_STUN server"
 msgstr "_Servidor STUN"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Account Registration"
 msgstr "Registro de cuenta"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Congratulations!"
 msgstr "¡Enhorabuena!"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:583
+#: ../sflphone-client-gnome/src/config/audioconf.c:582
 msgid "Frequency"
 msgstr "Frecuencia"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:588
+#: ../sflphone-client-gnome/src/config/audioconf.c:587
 msgid "Bitrate"
 msgstr "Tasa de transferencia"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:593
+#: ../sflphone-client-gnome/src/config/audioconf.c:592
 msgid "Bandwidth"
 msgstr "Ancho de banda"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:673
+#: ../sflphone-client-gnome/src/config/audioconf.c:670
 msgid "ALSA plugin"
 msgstr "Plugin ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:695
+#: ../sflphone-client-gnome/src/config/audioconf.c:692
 msgid "Output"
 msgstr "Salida"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:717
+#: ../sflphone-client-gnome/src/config/audioconf.c:714
 msgid "Input"
 msgstr "Entrada"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:752
+#: ../sflphone-client-gnome/src/config/audioconf.c:749
 msgid "_Voice Activity Detection"
 msgstr "_Detección de actividad de voz"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:762
+#: ../sflphone-client-gnome/src/config/audioconf.c:759
 msgid "_Noise Reduction (Narrow-Band Companding)"
 msgstr "_Reducción de ruido"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:798
+#: ../sflphone-client-gnome/src/config/audioconf.c:800
 msgid "Sound Manager"
 msgstr "Gestor de audio"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:807
+#: ../sflphone-client-gnome/src/config/audioconf.c:809
 msgid "_Pulseaudio"
 msgstr "_Pulseaudio"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:811
+#: ../sflphone-client-gnome/src/config/audioconf.c:813
 msgid "_ALSA"
 msgstr "_ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:816
-msgid "_Mute other applications during a call"
-msgstr "Silenciar otras aplicaciones durante una llamada"
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:823
+#: ../sflphone-client-gnome/src/config/audioconf.c:819
 msgid "ALSA settings"
 msgstr "Configuración de ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:840
+#: ../sflphone-client-gnome/src/config/audioconf.c:836
 msgid "Codecs"
 msgstr "Códecs"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:869
+#: ../sflphone-client-gnome/src/config/audioconf.c:865
 msgid "Recordings"
 msgstr "Grabaciones"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:873
+#: ../sflphone-client-gnome/src/config/audioconf.c:869
 msgid "Destination folder"
 msgstr "Carpeta de destino"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:877
+#: ../sflphone-client-gnome/src/config/audioconf.c:873
 msgid "Select a folder"
 msgstr "Seleccione una carpeta"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:883
+#: ../sflphone-client-gnome/src/config/audioconf.c:879
 msgid "Ringtones"
 msgstr "Tonos de llamada"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:889
+#: ../sflphone-client-gnome/src/config/audioconf.c:885
 msgid "_Enable ringtones"
 msgstr "_Habilitar tonos de llamada"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:895
+#: ../sflphone-client-gnome/src/config/audioconf.c:891
 msgid "Choose a ringtone"
 msgstr "Elija un tono de llmada"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:901
+#: ../sflphone-client-gnome/src/config/audioconf.c:897
 msgid "Audio Files"
 msgstr "Archivos de Audio"
 
@@ -826,7 +992,7 @@ msgstr "Reescritura de número de teléfono"
 msgid "_Prefix dialed numbers with"
 msgstr "_Prefijar los números marcados con"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:195
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:225
 msgid ""
 "This profile is used when you want to reach a remote peer simply by typing a "
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
@@ -837,79 +1003,59 @@ msgstr ""
 "usted define aqui serán también utilizados si ninguná cuenta puede ser "
 "igualada a una llamada entrante o saliente."
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:274
-msgid "SIP Port"
-msgstr "Puerto SIP"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:281
-msgid "UDP Transport"
-msgstr "Transporte UDP"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:319
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:440
 msgid "Desktop Notifications"
 msgstr "Notificación de escritorio"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:323
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:444
 msgid "_Enable notifications"
 msgstr "_Activar notificaciones"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:329
-msgid "Enable voicemail _notifications"
-msgstr "Activar _notificaciones de mensajes de voz"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:341
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:450
 msgid "System Tray Icon"
 msgstr "Icono de bandeja del sistema"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
 msgid "_Popup main window on incoming call"
 msgstr "_Popup ventana principal al recibir llamadas"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:349
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:457
 msgid "Ne_ver popup main window"
 msgstr "_Nunca mostrar ventana principal"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:353
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
 msgid "Hide SFLphone window on _startup"
 msgstr "Esconder SFLphone al principio"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:359
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:469
 msgid "Calls History"
 msgstr "Historia de llamadas"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:362
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:472
 msgid "_Keep my history for at least"
 msgstr "_Guardar mi historia por lo menos"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:373
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:483
 msgid "days"
 msgstr "días"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
-msgid "Configuration File"
-msgstr "Archivo de configuración"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
-msgid "Store SIP credentials as MD5 hash"
-msgstr "Guarda informaciòn SIP como hash MD5"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:423
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:536
 msgid "Preferences"
 msgstr "Preferencias"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:448
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:561
 msgid "Audio"
 msgstr "Sonido"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:566
 msgid "Address Book"
 msgstr "Libreta de Direcciones"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:458
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:571
 msgid "Hooks"
 msgstr "Disparadores"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:468
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:581
 msgid "Direct IP calls"
 msgstr "Llamadas IP directas"
 
@@ -917,11 +1063,11 @@ msgstr "Llamadas IP directas"
 msgid "Advanced options for TLS"
 msgstr "Opciones avanzadas por TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:56
 msgid "TLS transport"
 msgstr "Transporte TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:60
 msgid ""
 "TLS transport can be used along with UDP for those calls that would\n"
 "require secure sip transactions (aka SIPS). You can configure a different\n"
@@ -934,55 +1080,55 @@ msgstr ""
 "diferente transporte TLS para cada cuenta. De cualquier forma, cada uno de "
 "ellos usará un puerto dedicado, diferente el uno del otro.\n"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:103
 msgid "Certificate of Authority list"
 msgstr "Lista de Certificados de Autoridad"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:107
 msgid "Choose a CA list file (optional)"
 msgstr "Escoge un archivo de lista de CA (opcional)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:115
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:131
 msgid "Public endpoint certificate file"
 msgstr "Archivo del certificado del par público"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:119
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:135
 msgid "Choose a public endpoint certificate (optional)"
 msgstr "Escoge un certificado de par público (opcional)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:134
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:159
 msgid "Choose a private key file (optional)"
 msgstr "Escoge un archivo de clave privada"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:145
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:181
 msgid "Password for the private key"
 msgstr "Contraseña de clave privada"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:168
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:204
 msgid "TLS protocol method"
 msgstr "Método de protocolo TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:202
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:238
 msgid "TLS cipher list"
 msgstr "Lista de cifrado TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:211
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:247
 msgid "Server name instance for outgoing TLS connection"
 msgstr "Nombre del servidor para conección TLS saliente"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:219
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:255
 msgid "Negotiation timeout (sec:msec)"
 msgstr "Negociación expirada"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:236
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:272
 msgid "Verify incoming certificates, as a server"
 msgstr "Checar certificados entrantes, como un servidor"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:242
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:278
 msgid "Verify certificates from answer, as a client"
 msgstr "Checar certificados de la respuesta, como cliente"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:248
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:284
 msgid "Require certificate for incoming tls connections"
 msgstr "Requiere certificado para conecciones TLS entrantes"
 
@@ -990,45 +1136,84 @@ msgstr "Requiere certificado para conecciones TLS entrantes"
 msgid "ZRTP Options"
 msgstr "Opciones ZRTP"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:68
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:69
 msgid "Send Hello Hash in S_DP"
 msgstr "Enviar Hello Hash en S_DP"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:74
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:75
 msgid "Ask User to Confirm SAS"
 msgstr "Preguntar al usuario de confirmar SAS"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:80
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:81
 msgid "_Warn if ZRTP not supported"
 msgstr "_Prevenir si ZRTP no es compatible"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:86
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:87
 msgid "Display SAS once for hold events"
 msgstr "Presentar SAS una vez para eventos en espera"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:56
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:58
 msgid "Search all"
 msgstr "Buscar todos"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:57
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:70
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:82
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:94
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:59
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:72
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:84
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:96
 msgid "Click here to change the search type"
 msgstr "Haz clic aqui para cambiar el type de busqueda"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:69
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:71
 msgid "Search by missed call"
 msgstr "Buscar en llamadas pérdidas"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:81
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:83
 msgid "Search by incoming call"
 msgstr "Buscar en llamadas entrantes"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:93
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:95
 msgid "Search by outgoing call"
 msgstr "Buscar en llamadas salientes"
 
+#~ msgid "IP call - %s"
+#~ msgstr "Llamada IP - %s"
+
+#~ msgid "Codec"
+#~ msgstr "Códec"
+
+#~ msgid "Network"
+#~ msgstr "Red"
+
+#~ msgid "Manually"
+#~ msgstr "Manualmente"
+
+#~ msgid "There "
+#~ msgstr "Alla "
+
+#~ msgid "is "
+#~ msgstr "es "
+
+#~ msgid "are "
+#~ msgstr "son "
+
+#~ msgid "s"
+#~ msgstr "s"
+
+#~ msgid "_Mute other applications during a call"
+#~ msgstr "Silenciar otras aplicaciones durante una llamada"
+
+#~ msgid "SIP Port"
+#~ msgstr "Puerto SIP"
+
+#~ msgid "UDP Transport"
+#~ msgstr "Transporte UDP"
+
+#~ msgid "Enable voicemail _notifications"
+#~ msgstr "Activar _notificaciones de mensajes de voz"
+
+#~ msgid "Store SIP credentials as MD5 hash"
+#~ msgstr "Guarda informaciòn SIP como hash MD5"
+
 #~ msgctxt "account state"
 #~ msgid "Registered"
 #~ msgstr "Registrado"
@@ -1047,9 +1232,6 @@ msgstr "Buscar en llamadas salientes"
 #~ msgid "Stun Server"
 #~ msgstr "Servidor STUN"
 
-#~ msgid "Transfer to : "
-#~ msgstr "Transferir a : "
-
 #~ msgid "Default account"
 #~ msgstr "Cuenta por defecto"
 
@@ -1065,9 +1247,6 @@ msgstr "Buscar en llamadas salientes"
 #~ msgid "Incoming call"
 #~ msgstr "Llamada entrante"
 
-#~ msgid "Transfer"
-#~ msgstr "Transferir"
-
 #~ msgid "Hang up"
 #~ msgstr "Colgar"
 
@@ -1090,9 +1269,6 @@ msgstr "Buscar en llamadas salientes"
 #~ msgid "Recordings"
 #~ msgstr "Grabaciones"
 
-#~ msgid "Remove the selected account"
-#~ msgstr "Eliminar la cuenta seleccionada"
-
 #~ msgid "Remove"
 #~ msgstr "Eliminar"
 
@@ -1130,21 +1306,6 @@ msgstr "Buscar en llamadas salientes"
 #~ msgid "Configure SFLphone"
 #~ msgstr "Configurar SFLphone"
 
-#~ msgid "_Help"
-#~ msgstr "_Ayuda"
-
-#~ msgid "_Call"
-#~ msgstr "_Llamar"
-
-#~ msgid "_Edit"
-#~ msgstr "_Editar"
-
-#~ msgid "_Accounts"
-#~ msgstr "_Cuentas"
-
-#~ msgid "_View"
-#~ msgstr "_Ver"
-
 #~ msgid "Port"
 #~ msgstr "Puerto"
 
@@ -1198,12 +1359,6 @@ msgstr "Buscar en llamadas salientes"
 #~ msgid "Address book loading..."
 #~ msgstr "Cargando el directorio..."
 
-#~ msgid "Call history"
-#~ msgstr "Historia de Llamada"
-
-#~ msgid "Address book"
-#~ msgstr "Libreta de contactos"
-
 #~ msgid "Edit before call"
 #~ msgstr "Editar antes de llamar"
 
@@ -1294,18 +1449,12 @@ msgstr "Buscar en llamadas salientes"
 #~ msgid "Prefix dialed numbers with"
 #~ msgstr "Prefijar los números marcados con"
 
-#~ msgid "History"
-#~ msgstr "Historia de Llamada"
-
 #~ msgid "Attention:number of results exceeds max displayed."
 #~ msgstr "Cuidado:número de resultatos excede el maximo a mostrar."
 
 #~ msgid "_Account creation wizard"
 #~ msgstr "Asistente de configuración de cuentas"
 
-#~ msgid "_Volume controls"
-#~ msgstr "_Controles de volumen"
-
 #~ msgid "_Enable this account"
 #~ msgstr "_Habilitar esta cuenta"
 
@@ -1435,9 +1584,6 @@ msgstr "Buscar en llamadas salientes"
 #~ msgid "\"Voicemail\" <%s>"
 #~ msgstr "\"Mensaje\" <%s>"
 
-#~ msgid "Off Hold"
-#~ msgstr "Seguir"
-
 #~ msgid "Record a call"
 #~ msgstr "Grabar una llamada"
 
@@ -1535,20 +1681,20 @@ msgstr "Buscar en llamadas salientes"
 #~ msgstr "Retomar"
 
 #~ 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."
+#~ "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 ""
-#~ "Este botón elimina la cuenta seleccionada en la siguiente lista. Asegúrese "
-#~ "de no necesitarla más. Si cree que la pueda necesitar más adelante, "
-#~ "simplemente quité la selección."
+#~ "Este botón elimina la cuenta seleccionada en la siguiente lista. "
+#~ "Asegúrese de no necesitarla más. Si cree que la pueda necesitar más "
+#~ "adelante, simplemente quité la selección."
 
 #~ msgid ""
-#~ "This button enables you to initialize a new account. You will then be able "
-#~ "to edit it using the form on the right."
+#~ "This button enables you to initialize a new account. You will then be "
+#~ "able to edit it using the form on the right."
 #~ msgstr ""
-#~ "Este botón le permite inicializar una nueva cuenta. Usted podrá corregirlo "
-#~ "con el formulario a la derecha."
+#~ "Este botón le permite inicializar una nueva cuenta. Usted podrá "
+#~ "corregirlo con el formulario a la derecha."
 
 #~ msgid ""
 #~ "By default, when you place a call, sflphone will use the first account in "
@@ -1571,18 +1717,12 @@ msgstr "Buscar en llamadas salientes"
 #~ msgid "Display phone numbers of these types :"
 #~ msgstr "Mostrar números de este tipo:"
 
-#~ msgid "Clear history"
-#~ msgstr "Limpiar historial"
-
 #~ msgid "Display dialpad"
 #~ msgstr "Mostrar teclado"
 
 #~ msgid "Command to run"
 #~ msgstr "Comando a ejecutar"
 
-#~ msgid "Clear _history"
-#~ msgstr "_Limpiar historial"
-
 #~ msgid "Keep my history for at least"
 #~ msgstr "Guardar el historial al menos"
 
@@ -1598,11 +1738,11 @@ msgstr "Buscar en llamadas salientes"
 #~ msgstr "NAT Traversal"
 
 #~ msgid ""
-#~ "Pressing \"apply\" will restart the network layer. Otherwise, SFLPhone would "
-#~ "have to be restarted."
+#~ "Pressing \"apply\" will restart the network layer. Otherwise, SFLPhone "
+#~ "would have to be restarted."
 #~ msgstr ""
-#~ "Presionar “aplica” recomenzará la capa de red. Si no, SFLPhone tendría que "
-#~ "ser reiniciado."
+#~ "Presionar “aplica” recomenzará la capa de red. Si no, SFLPhone tendría "
+#~ "que ser reiniciado."
 
 #~ msgid "_Volume Controls"
 #~ msgstr "_Controles de Volumen"
@@ -1619,26 +1759,29 @@ msgstr "Buscar en llamadas salientes"
 #~ 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."
+#~ "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 ""
 #~ "Por defecto, cuando usted realiza una llamada, sflphone usará la primera "
-#~ "cuenta en esta lista que este \"registrada\". Cambie el orden de las cuentas "
-#~ "usando las flechas \"Arriba\" y \"Abajo\". Las Activa/desactiva marcando la "
-#~ "opción de la izquierda. Adiciona o elimina con los botones de \"Más\" o "
-#~ "\"Menos\". Edita la cuenta seleccionada con el formulario a la derecha."
+#~ "cuenta en esta lista que este \"registrada\". Cambie el orden de las "
+#~ "cuentas usando las flechas \"Arriba\" y \"Abajo\". Las Activa/desactiva "
+#~ "marcando la opción de la izquierda. Adiciona o elimina con los botones de "
+#~ "\"Más\" o \"Menos\". Edita la cuenta seleccionada con el formulario a la "
+#~ "derecha."
 
 #~ msgctxt "NAME OF TRANSLATORS"
 #~ msgid "Your names"
 #~ msgstr ""
 #~ "Maxime Chambreuil, ,Launchpad Contributions:,Andres Mujica,Maxime "
-#~ "Chambreuil, ,Launchpad Contributions:,Andres Mujica,Maxime Chambreuil, "
-#~ ",Launchpad Contributions:,Andres Mujica,Maxime Chambreuil"
+#~ "Chambreuil, ,Launchpad Contributions:,Andres Mujica,Maxime Chambreuil, ,"
+#~ "Launchpad Contributions:,Andres Mujica,Maxime Chambreuil, ,Launchpad "
+#~ "Contributions:,Andres Mujica,Maxime Chambreuil"
 
 #~ msgctxt "EMAIL OF TRANSLATORS"
 #~ msgid "Your emails"
 #~ msgstr ""
-#~ "maxime.chambreuil@savoirfairelinux.com,,,andres.mujica@seaq.com.co,maxime.cha"
-#~ "mbreuil@gmail.com,,,andres.mujica@seaq.com.co,maxime.chambreuil@gmail.com,,,a"
-#~ "ndres.mujica@seaq.com.co,maxime.chambreuil@gmail.com"
+#~ "maxime.chambreuil@savoirfairelinux.com,,,andres.mujica@seaq.com.co,maxime."
+#~ "chambreuil@gmail.com,,,andres.mujica@seaq.com.co,maxime.chambreuil@gmail."
+#~ "com,,,andres.mujica@seaq.com.co,maxime.chambreuil@gmail.com,,,andres."
+#~ "mujica@seaq.com.co,maxime.chambreuil@gmail.com"
diff --git a/sflphone-client-gnome/po/fr/fr.po b/sflphone-client-gnome/po/fr/fr.po
index 53cac66386..c7ace4f55b 100644
--- a/sflphone-client-gnome/po/fr/fr.po
+++ b/sflphone-client-gnome/po/fr/fr.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: SFLphone 0.9.4\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-11-12 14:02-0500\n"
+"POT-Creation-Date: 2009-12-03 10:22-0500\n"
 "PO-Revision-Date: 2009-10-26 20:46+0000\n"
 "Last-Translator: Maxime Chambreuil <maxime.chambreuil@gmail.com>\n"
 "Language-Team: SavoirFaireLinux Inc <sflphoneteam@savoirfairelinux.com>\n"
@@ -62,15 +62,15 @@ msgstr "Serveur Stun invalide"
 msgid "Invalid"
 msgstr "Non valide"
 
-#: ../sflphone-client-gnome/src/actions.c:72
+#: ../sflphone-client-gnome/src/actions.c:98
 msgid "Using account"
 msgstr "Utilise le compte"
 
-#: ../sflphone-client-gnome/src/actions.c:78
+#: ../sflphone-client-gnome/src/actions.c:104
 msgid "No registered accounts"
 msgstr "Pas de compte enregistré"
 
-#: ../sflphone-client-gnome/src/actions.c:259
+#: ../sflphone-client-gnome/src/actions.c:285
 msgid ""
 "Unable to connect to the SFLphone server.\n"
 "Make sure the daemon is running."
@@ -78,11 +78,12 @@ msgstr ""
 "Impossible de se connecter au serveur SFLphone.\n"
 " Assurez-vous que le démon est lancé."
 
-#: ../sflphone-client-gnome/src/actions.c:879
+#: ../sflphone-client-gnome/src/actions.c:589
+#: ../sflphone-client-gnome/src/actions.c:911
 msgid "Direct SIP call"
 msgstr "Appel direct SIP"
 
-#: ../sflphone-client-gnome/src/actions.c:1071
+#: ../sflphone-client-gnome/src/actions.c:1103
 #, c-format
 msgid ""
 "<b>Error: No audio codecs found.\n"
@@ -137,31 +138,31 @@ msgstr "Vous avez des appels en cours."
 msgid "Do you still want to quit?"
 msgstr "Voulez-vous quitter?"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:297
+#: ../sflphone-client-gnome/src/mainwindow.c:298
 msgid "SFLphone Error"
 msgstr "Erreur SFLphone"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:391
+#: ../sflphone-client-gnome/src/mainwindow.c:392
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
 msgstr "ZRTP n'est pas supporté par %s\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:392
+#: ../sflphone-client-gnome/src/mainwindow.c:393
 msgid "Secure Communication Unavailable"
 msgstr "Communications sécurisées non disponibles"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:393
-#: ../sflphone-client-gnome/src/mainwindow.c:415
+#: ../sflphone-client-gnome/src/mainwindow.c:394
+#: ../sflphone-client-gnome/src/mainwindow.c:416
 msgid "Continue"
 msgstr "Continuer"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:394
-#: ../sflphone-client-gnome/src/mainwindow.c:416
-#: ../sflphone-client-gnome/src/mainwindow.c:430
+#: ../sflphone-client-gnome/src/mainwindow.c:395
+#: ../sflphone-client-gnome/src/mainwindow.c:417
+#: ../sflphone-client-gnome/src/mainwindow.c:431
 msgid "Stop Call"
 msgstr "Arrêter l'appel"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:413
+#: ../sflphone-client-gnome/src/mainwindow.c:414
 #, c-format
 msgid ""
 "A %s error forced the call with %s to fall under unencrypted mode.\n"
@@ -170,11 +171,11 @@ msgstr ""
 "L'appel avec %s est passé en mode non-crypté à cause d'une erreur %s.\n"
 "Raison exacte: %s\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:414
+#: ../sflphone-client-gnome/src/mainwindow.c:415
 msgid "ZRTP negotiation failed"
 msgstr "Erreur d'authentification"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:427
+#: ../sflphone-client-gnome/src/mainwindow.c:428
 #, c-format
 msgid ""
 "%s wants to stop using secure communication. Confirm will resume "
@@ -183,11 +184,11 @@ msgstr ""
 "%s ne désire plus utiliser la communication sécurisée. Confirmer que vous "
 "voulez continuer sans ZRTP.\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:428
+#: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm Go Clear"
 msgstr "Confirmer Communication en clair"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:429
+#: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Confirm"
 msgstr "Confirmer"
 
@@ -258,15 +259,15 @@ msgstr "Volume des hauts-parleurs"
 msgid "Mic volume"
 msgstr "Volume du micro"
 
-#: ../sflphone-client-gnome/src/statusicon.c:91
+#: ../sflphone-client-gnome/src/statusicon.c:96
 msgid "_Show main window"
 msgstr "_Afficher la fenêtre principale"
 
-#: ../sflphone-client-gnome/src/statusicon.c:126
+#: ../sflphone-client-gnome/src/statusicon.c:131
 msgid "SFLphone"
 msgstr "SFLphone"
 
-#: ../sflphone-client-gnome/src/statusicon.c:127
+#: ../sflphone-client-gnome/src/statusicon.c:132
 #, c-format
 msgid "%i account configured"
 msgid_plural "%i accounts configured"
@@ -274,388 +275,395 @@ msgstr[0] "%i compte configuré"
 msgstr[1] "%i comptes configurés"
 
 #: ../sflphone-client-gnome/src/toolbar.c:38
-#: ../sflphone-client-gnome/src/uimanager.c:628
-#: ../sflphone-client-gnome/src/uimanager.c:662
+#: ../sflphone-client-gnome/src/uimanager.c:693
+#: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Voicemail"
 msgstr "Boite vocale"
 
-#: ../sflphone-client-gnome/src/uimanager.c:115
+#: ../sflphone-client-gnome/src/uimanager.c:117
 msgid "No address book selected"
 msgstr "Aucun carnet d'adresses sélectionné"
 
-#: ../sflphone-client-gnome/src/uimanager.c:135
-#: ../sflphone-client-gnome/src/uimanager.c:691
+#: ../sflphone-client-gnome/src/uimanager.c:137
+#: ../sflphone-client-gnome/src/uimanager.c:756
 msgid "Address book"
 msgstr "Carnet d'adresses"
 
-#: ../sflphone-client-gnome/src/uimanager.c:237
+#: ../sflphone-client-gnome/src/uimanager.c:279
 #, c-format
 msgid "Voicemail (%i)"
 msgstr "Boite vocale (%i)"
 
-#: ../sflphone-client-gnome/src/uimanager.c:300
+#: ../sflphone-client-gnome/src/uimanager.c:342
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
 msgstr ""
 "SFLphone est un client VoIP compatible avec les protocoles SIP et IAX2."
 
-#: ../sflphone-client-gnome/src/uimanager.c:303
+#: ../sflphone-client-gnome/src/uimanager.c:345
 msgid "About SFLphone"
 msgstr "A propos de SFLphone"
 
-#: ../sflphone-client-gnome/src/uimanager.c:654
+#: ../sflphone-client-gnome/src/uimanager.c:719
 msgid "Call"
 msgstr "Actions"
 
-#: ../sflphone-client-gnome/src/uimanager.c:655
-#: ../sflphone-client-gnome/src/uimanager.c:1119
+#: ../sflphone-client-gnome/src/uimanager.c:720
+#: ../sflphone-client-gnome/src/uimanager.c:1184
 msgid "_New call"
 msgstr "_Nouvel appel"
 
-#: ../sflphone-client-gnome/src/uimanager.c:655
+#: ../sflphone-client-gnome/src/uimanager.c:720
 msgid "Place a new call"
 msgstr "Appeler"
 
-#: ../sflphone-client-gnome/src/uimanager.c:656
-#: ../sflphone-client-gnome/src/uimanager.c:914
+#: ../sflphone-client-gnome/src/uimanager.c:721
+#: ../sflphone-client-gnome/src/uimanager.c:979
 msgid "_Pick up"
 msgstr "_Décrocher"
 
-#: ../sflphone-client-gnome/src/uimanager.c:656
+#: ../sflphone-client-gnome/src/uimanager.c:721
 msgid "Answer the call"
 msgstr "Répondre à l'appel"
 
-#: ../sflphone-client-gnome/src/uimanager.c:657
-#: ../sflphone-client-gnome/src/uimanager.c:926
-#: ../sflphone-client-gnome/src/uimanager.c:967
+#: ../sflphone-client-gnome/src/uimanager.c:722
+#: ../sflphone-client-gnome/src/uimanager.c:991
+#: ../sflphone-client-gnome/src/uimanager.c:1032
 msgid "_Hang up"
 msgstr "_Raccrocher"
 
-#: ../sflphone-client-gnome/src/uimanager.c:657
+#: ../sflphone-client-gnome/src/uimanager.c:722
 msgid "Finish the call"
 msgstr "Terminer l'appel"
 
-#: ../sflphone-client-gnome/src/uimanager.c:658
+#: ../sflphone-client-gnome/src/uimanager.c:723
 msgid "O_n hold"
 msgstr "Mettre en attente"
 
-#: ../sflphone-client-gnome/src/uimanager.c:658
+#: ../sflphone-client-gnome/src/uimanager.c:723
 msgid "Place the call on hold"
 msgstr "Mettre l'appel en attente"
 
-#: ../sflphone-client-gnome/src/uimanager.c:659
+#: ../sflphone-client-gnome/src/uimanager.c:724
 msgid "O_ff hold"
 msgstr "Reprendre"
 
-#: ../sflphone-client-gnome/src/uimanager.c:659
+#: ../sflphone-client-gnome/src/uimanager.c:724
 msgid "Place the call off hold"
 msgstr "Reprendre l'appel"
 
-#: ../sflphone-client-gnome/src/uimanager.c:660
-#: ../sflphone-client-gnome/src/uimanager.c:950
+#: ../sflphone-client-gnome/src/uimanager.c:725
+#: ../sflphone-client-gnome/src/uimanager.c:1015
 msgid "_Record"
 msgstr "Enregistrer"
 
-#: ../sflphone-client-gnome/src/uimanager.c:660
+#: ../sflphone-client-gnome/src/uimanager.c:725
 msgid "Record the current conversation"
 msgstr "Enregistrer la conversation courante"
 
-#: ../sflphone-client-gnome/src/uimanager.c:661
+#: ../sflphone-client-gnome/src/uimanager.c:726
 msgid "Configuration _Assistant"
 msgstr "_Assistant de configuration"
 
-#: ../sflphone-client-gnome/src/uimanager.c:661
+#: ../sflphone-client-gnome/src/uimanager.c:726
 msgid "Run the configuration assistant"
 msgstr "Lancer l'assistant de configuration"
 
-#: ../sflphone-client-gnome/src/uimanager.c:662
+#: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Call your voicemail"
 msgstr "Appeler la boite vocale"
 
-#: ../sflphone-client-gnome/src/uimanager.c:663
+#: ../sflphone-client-gnome/src/uimanager.c:728
 msgid "_Close"
 msgstr "_Fermer"
 
-#: ../sflphone-client-gnome/src/uimanager.c:663
+#: ../sflphone-client-gnome/src/uimanager.c:728
 msgid "Minimize to system tray"
 msgstr "Minimiser dans la barre des tâches"
 
-#: ../sflphone-client-gnome/src/uimanager.c:664
+#: ../sflphone-client-gnome/src/uimanager.c:729
 msgid "_Quit"
 msgstr "_Quitter"
 
-#: ../sflphone-client-gnome/src/uimanager.c:664
+#: ../sflphone-client-gnome/src/uimanager.c:729
 msgid "Quit the program"
 msgstr "Quitter le programme"
 
-#: ../sflphone-client-gnome/src/uimanager.c:667
+#: ../sflphone-client-gnome/src/uimanager.c:732
 msgid "_Edit"
 msgstr "_Editer"
 
-#: ../sflphone-client-gnome/src/uimanager.c:668
+#: ../sflphone-client-gnome/src/uimanager.c:733
 msgid "_Copy"
 msgstr "_Copier"
 
-#: ../sflphone-client-gnome/src/uimanager.c:668
+#: ../sflphone-client-gnome/src/uimanager.c:733
 msgid "Copy the selection"
 msgstr "Copier la sélection"
 
-#: ../sflphone-client-gnome/src/uimanager.c:669
+#: ../sflphone-client-gnome/src/uimanager.c:734
 msgid "_Paste"
 msgstr "C_oller"
 
-#: ../sflphone-client-gnome/src/uimanager.c:669
+#: ../sflphone-client-gnome/src/uimanager.c:734
 msgid "Paste the clipboard"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:670
+#: ../sflphone-client-gnome/src/uimanager.c:735
 msgid "Clear _history"
 msgstr "Effacer l'_historique"
 
-#: ../sflphone-client-gnome/src/uimanager.c:670
+#: ../sflphone-client-gnome/src/uimanager.c:735
 msgid "Clear the call history"
 msgstr "Effacer l'historique"
 
-#: ../sflphone-client-gnome/src/uimanager.c:671
+#: ../sflphone-client-gnome/src/uimanager.c:736
 msgid "_Accounts"
 msgstr "Co_mptes"
 
-#: ../sflphone-client-gnome/src/uimanager.c:671
+#: ../sflphone-client-gnome/src/uimanager.c:736
 msgid "Edit your accounts"
 msgstr "Éditer les comptes"
 
-#: ../sflphone-client-gnome/src/uimanager.c:672
+#: ../sflphone-client-gnome/src/uimanager.c:737
 msgid "_Preferences"
 msgstr "Préférences"
 
-#: ../sflphone-client-gnome/src/uimanager.c:672
+#: ../sflphone-client-gnome/src/uimanager.c:737
 msgid "Change your preferences"
 msgstr "Modifier les préférences"
 
-#: ../sflphone-client-gnome/src/uimanager.c:675
+#: ../sflphone-client-gnome/src/uimanager.c:740
 msgid "_View"
 msgstr "A_ffichage"
 
-#: ../sflphone-client-gnome/src/uimanager.c:678
+#: ../sflphone-client-gnome/src/uimanager.c:743
 msgid "_Help"
 msgstr "A_ide"
 
-#: ../sflphone-client-gnome/src/uimanager.c:679
+#: ../sflphone-client-gnome/src/uimanager.c:744
 msgid "Contents"
 msgstr "Sommaire"
 
-#: ../sflphone-client-gnome/src/uimanager.c:679
+#: ../sflphone-client-gnome/src/uimanager.c:744
 msgid "Open the manual"
 msgstr "Ouvrir le manuel"
 
-#: ../sflphone-client-gnome/src/uimanager.c:680
+#: ../sflphone-client-gnome/src/uimanager.c:745
 msgid "About this application"
 msgstr "À propos de cette application"
 
-#: ../sflphone-client-gnome/src/uimanager.c:686
+#: ../sflphone-client-gnome/src/uimanager.c:751
 msgid "_Transfer"
 msgstr "Transférer"
 
-#: ../sflphone-client-gnome/src/uimanager.c:686
+#: ../sflphone-client-gnome/src/uimanager.c:751
 msgid "Transfer the call"
 msgstr "Transférer à : "
 
-#: ../sflphone-client-gnome/src/uimanager.c:687
+#: ../sflphone-client-gnome/src/uimanager.c:752
 msgid "_Show toolbar"
 msgstr "Afficher la _barre d'outil"
 
-#: ../sflphone-client-gnome/src/uimanager.c:687
+#: ../sflphone-client-gnome/src/uimanager.c:752
 msgid "Show the toolbar"
 msgstr "Afficher la barre d'outil"
 
-#: ../sflphone-client-gnome/src/uimanager.c:688
+#: ../sflphone-client-gnome/src/uimanager.c:753
 msgid "_Dialpad"
 msgstr "_Clavier"
 
-#: ../sflphone-client-gnome/src/uimanager.c:688
+#: ../sflphone-client-gnome/src/uimanager.c:753
 msgid "Show the dialpad"
 msgstr "Afficher le clavier"
 
-#: ../sflphone-client-gnome/src/uimanager.c:689
+#: ../sflphone-client-gnome/src/uimanager.c:754
 msgid "_Volume controls"
 msgstr "Contrôle du _volume"
 
-#: ../sflphone-client-gnome/src/uimanager.c:689
+#: ../sflphone-client-gnome/src/uimanager.c:754
 msgid "Show the volume controls"
 msgstr "Afficher les controles du volume"
 
-#: ../sflphone-client-gnome/src/uimanager.c:690
+#: ../sflphone-client-gnome/src/uimanager.c:755
 msgid "_History"
 msgstr "Historique"
 
-#: ../sflphone-client-gnome/src/uimanager.c:690
+#: ../sflphone-client-gnome/src/uimanager.c:755
 msgid "Calls history"
 msgstr "Historique d'appels"
 
-#: ../sflphone-client-gnome/src/uimanager.c:691
+#: ../sflphone-client-gnome/src/uimanager.c:756
 msgid "_Address book"
 msgstr "Carnet d'adresses"
 
-#: ../sflphone-client-gnome/src/uimanager.c:938
-#: ../sflphone-client-gnome/src/uimanager.c:979
+#: ../sflphone-client-gnome/src/uimanager.c:1003
+#: ../sflphone-client-gnome/src/uimanager.c:1044
 msgid "On _Hold"
 msgstr "_Mettre en attente"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1042
+#: ../sflphone-client-gnome/src/uimanager.c:1107
 msgid "_Call back"
 msgstr "_Rappeler"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1193
+#: ../sflphone-client-gnome/src/uimanager.c:1258
 msgid "Edit phone number"
 msgstr "Éditer le numéro"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1204
+#: ../sflphone-client-gnome/src/uimanager.c:1269
 msgid "Edit the phone number before making a call"
 msgstr "Éditer le numéro de téléphone avant d'appeler"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:172
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:180
 msgid "Account Parameters"
 msgstr "Paramètres du Compte"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:181
-#: ../sflphone-client-gnome/src/config/assistant.c:307
-#: ../sflphone-client-gnome/src/config/assistant.c:415
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/assistant.c:314
+#: ../sflphone-client-gnome/src/config/assistant.c:427
 msgid "_Alias"
 msgstr "A_lias"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:197
 msgid "_Protocol"
 msgstr "P_rotocole"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:207
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:215
 msgid "Unknown"
 msgstr "Inconnu"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:217
-#: ../sflphone-client-gnome/src/config/assistant.c:315
-#: ../sflphone-client-gnome/src/config/assistant.c:423
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
+#: ../sflphone-client-gnome/src/config/assistant.c:322
+#: ../sflphone-client-gnome/src/config/assistant.c:435
 msgid "_Host name"
 msgstr "_Serveur"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
-#: ../sflphone-client-gnome/src/config/assistant.c:323
-#: ../sflphone-client-gnome/src/config/assistant.c:431
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:233
+#: ../sflphone-client-gnome/src/config/assistant.c:330
+#: ../sflphone-client-gnome/src/config/assistant.c:443
 msgid "_User name"
 msgstr "Usa_ger"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:242
-#: ../sflphone-client-gnome/src/config/assistant.c:339
-#: ../sflphone-client-gnome/src/config/assistant.c:446
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:346
+#: ../sflphone-client-gnome/src/config/assistant.c:458
 msgid "_Password"
 msgstr "_Mot de passe"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:262
-#: ../sflphone-client-gnome/src/config/assistant.c:357
-#: ../sflphone-client-gnome/src/config/assistant.c:462
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:270
+#: ../sflphone-client-gnome/src/config/assistant.c:363
+#: ../sflphone-client-gnome/src/config/assistant.c:473
+#, fuzzy
+msgid "Show password"
+msgstr "Mot de passe"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:274
+#: ../sflphone-client-gnome/src/config/assistant.c:368
+#: ../sflphone-client-gnome/src/config/assistant.c:478
 msgid "_Voicemail number"
 msgstr "_Boite vocale #"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:348
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:361
 msgid "Authentication"
 msgstr "Identification"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:349
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:362
 msgid "Secret"
 msgstr "Mot de passe"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:579
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:605
 msgid "Credential"
 msgstr "Informations"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:614
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:640
 msgid "Authentication name"
 msgstr "Nom d'authentification"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:625
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:651
 msgid "Password"
 msgstr "Mot de passe"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:649
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1029
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:306
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1056
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:321
 msgid "Security"
 msgstr "Sécurité"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:662
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:318
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:333
 msgid "Use TLS transport (sips)"
 msgstr "Utiliser un transport TLS (sips)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:668
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:323
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:338
 msgid "SRTP key exchange"
 msgstr "Échange de clé SRTP"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:329
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:699
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
 msgid "Disabled"
 msgstr "Désactivé"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:770
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:795
 msgid "Registration"
 msgstr "Expiration d'enregistrement"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:775
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:800
 msgid "Registration expire"
 msgstr "Expiration d'enregistrement"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:784
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:809
 msgid "_Comply with RFC 3263"
 msgstr "Respecter RFC 3263"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:791
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:221
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:816
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:234
 msgid "Network Interface"
 msgstr "Interface réseau"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:805
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:236
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:830
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:249
 msgid "Local address"
 msgstr "Adresse locale"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:855
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:292
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:301
 msgid "Local port"
 msgstr "Port local"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:868
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:903
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:893
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:928
 msgid "Published address"
 msgstr "Adresse de publication"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:874
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
 msgid "Using STUN"
 msgstr "Utiliser STUN "
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:881
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:906
 msgid "STUN server URL"
 msgstr "URL du serveur STUN"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:889
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:914
 msgid "Same as local parameters"
 msgstr "Identique aux paramètres locaux"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:892
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:917
 msgid "Set published address and port:"
 msgstr "Configurer l'adresse et le port à publier"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:911
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:936
 msgid "Published port"
 msgstr "Port de publication"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1000
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1027
 msgid "Account settings"
 msgstr "Paramètre des comptes"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1019
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1046
 msgid "Basic"
 msgstr "Général"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1024
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1051
 msgid "Advanced"
 msgstr "Avancé"
 
@@ -664,35 +672,35 @@ msgstr "Avancé"
 msgid "Server returned \"%s\" (%d)"
 msgstr "Le serveur a répondu \"%s\" (%d)"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:387
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
 msgid "Protocol"
 msgstr "Protocole"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:394
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:396
 msgid "Status"
 msgstr "Statut"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:472
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:474
 msgid "Accounts"
 msgstr "Comptes"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:482
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:484
 msgid "Configured Accounts"
 msgstr "Comptes Configurés"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:499
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:501
 #, c-format
 msgid "There is %d active account"
 msgid_plural "There are %d active accounts"
 msgstr[0] " %d compte actif"
 msgstr[1] " %d comptes actifs"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:507
 msgid "You have no active account"
 msgstr "Vous n'avez aucun compte actif"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:537
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:556
 msgid "General"
 msgstr "Général"
 
@@ -741,12 +749,12 @@ msgstr "Sélectionnez les carnets d'adresses d'Evolution à utiliser"
 msgid "Name"
 msgstr "Nom"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:69
+#: ../sflphone-client-gnome/src/config/assistant.c:75
 #, c-format
 msgid "This assistant is now finished."
 msgstr "Cet assistant est maintenant terminé."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:71
+#: ../sflphone-client-gnome/src/config/assistant.c:77
 msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
@@ -754,127 +762,127 @@ msgstr ""
 "Vous pouvez à tout moment vérifier votre état d'enregistrement ou modifier "
 "les paramètres de vos comptes dans la fenêtre Options/Comptes."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:74
+#: ../sflphone-client-gnome/src/config/assistant.c:80
 msgid "Alias"
 msgstr "Alias"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:78
+#: ../sflphone-client-gnome/src/config/assistant.c:84
 msgid "Server"
 msgstr "Serveur"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:82
+#: ../sflphone-client-gnome/src/config/assistant.c:88
 msgid "Username"
 msgstr "Nom d'utilisateur"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:86
+#: ../sflphone-client-gnome/src/config/assistant.c:92
 msgid "Security: "
 msgstr "Sécurité: "
 
-#: ../sflphone-client-gnome/src/config/assistant.c:88
+#: ../sflphone-client-gnome/src/config/assistant.c:94
 msgid "SRTP/ZRTP draft-zimmermann"
 msgstr "SRTP/ZRTP draft-zimmermann"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:90
+#: ../sflphone-client-gnome/src/config/assistant.c:96
 msgid "None"
 msgstr "Aucun"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:223
+#: ../sflphone-client-gnome/src/config/assistant.c:229
 msgid "SFLphone account creation wizard"
 msgstr "Assistant de création de compte de SFLphone"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:249
+#: ../sflphone-client-gnome/src/config/assistant.c:255
 msgid "Welcome to the Account creation wizard of SFLphone!"
 msgstr "Bienvenue dans l'assistant de création de compte de SFLphone !"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:256
 msgid "This installation wizard will help you configure an account."
 msgstr "Cet assistant vous guidera dans la configuration d'un compte."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:264
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "VoIP Protocols"
 msgstr "Protocoles VoIP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:264
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "Select an account type"
 msgstr "Sélectionnez un type de compte"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:266
+#: ../sflphone-client-gnome/src/config/assistant.c:272
 msgid "SIP (Session Initiation Protocol)"
 msgstr "SIP (Session Initiation Protocol)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:268
+#: ../sflphone-client-gnome/src/config/assistant.c:274
 msgid "IAX2 (InterAsterix Exchange)"
 msgstr "IAX2 (InterAsterix Exchange)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:282
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Account"
 msgstr "Compte"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:282
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Please select one of the following options"
 msgstr "Veuillez sélectionner une des options suivantes"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:284
+#: ../sflphone-client-gnome/src/config/assistant.c:290
 msgid "Create a free SIP/IAX2 account on sflphone.org"
 msgstr "Créer un compte SIP/IAX2 gratuit sur sflphone.org"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
+#: ../sflphone-client-gnome/src/config/assistant.c:292
 msgid "Register an existing SIP or IAX2 account"
 msgstr "Enregistrer un compte SIP ou IAX2 existant"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:299
+#: ../sflphone-client-gnome/src/config/assistant.c:306
 msgid "SIP account settings"
 msgstr "Paramètres de compte SIP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:299
-#: ../sflphone-client-gnome/src/config/assistant.c:407
+#: ../sflphone-client-gnome/src/config/assistant.c:306
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "Please fill the following information"
 msgstr "Veuillez remplir les champs suivants"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:376
+#: ../sflphone-client-gnome/src/config/assistant.c:405
 msgid "Secure communications with _ZRTP"
 msgstr "Communications sécurisées avec _ZRTP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:378
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "Optional email address"
 msgstr "Adresse courriel optionnelle"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:378
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "This email address will be used to send your voicemail messages."
 msgstr "Vos messages vocaux seront envoyés par courriel à cette adresse."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:386
+#: ../sflphone-client-gnome/src/config/assistant.c:397
 msgid "_Email address"
 msgstr "A_dresse courriel"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:407
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "IAX2 account settings"
 msgstr "Paramètres de compte IAX2"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:480
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "Network Address Translation (NAT)"
 msgstr "Network Address Translation (NAT)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:480
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "You should probably enable this if you are behind a firewall."
 msgstr ""
 "Vous devriez probablement activer cette option si vous vous trouvez derrière "
 "un pare-feu."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:489
+#: ../sflphone-client-gnome/src/config/assistant.c:505
 msgid "E_nable STUN"
 msgstr "A_ctiver STUN"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:496
+#: ../sflphone-client-gnome/src/config/assistant.c:512
 msgid "_STUN server"
 msgstr "S_erveur STUN"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:510
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Account Registration"
 msgstr "Enregistrement du compte"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:510
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Congratulations!"
 msgstr "Félicitations!"
 
@@ -910,51 +918,51 @@ msgstr "Détection de l'activité de la voix"
 msgid "_Noise Reduction (Narrow-Band Companding)"
 msgstr "Réduction du bruit (Compresseur extenseur LBR)"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:795
+#: ../sflphone-client-gnome/src/config/audioconf.c:800
 msgid "Sound Manager"
 msgstr "Interface Audio"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:804
+#: ../sflphone-client-gnome/src/config/audioconf.c:809
 msgid "_Pulseaudio"
 msgstr "_Pulseaudio"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:808
+#: ../sflphone-client-gnome/src/config/audioconf.c:813
 msgid "_ALSA"
 msgstr "_ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:814
+#: ../sflphone-client-gnome/src/config/audioconf.c:819
 msgid "ALSA settings"
 msgstr "Paramètres ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:831
+#: ../sflphone-client-gnome/src/config/audioconf.c:836
 msgid "Codecs"
 msgstr "Codecs"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:860
+#: ../sflphone-client-gnome/src/config/audioconf.c:865
 msgid "Recordings"
 msgstr "Enregistrements"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:864
+#: ../sflphone-client-gnome/src/config/audioconf.c:869
 msgid "Destination folder"
 msgstr "Dossier de destination"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:868
+#: ../sflphone-client-gnome/src/config/audioconf.c:873
 msgid "Select a folder"
 msgstr "Choisissez un dossier"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:874
+#: ../sflphone-client-gnome/src/config/audioconf.c:879
 msgid "Ringtones"
 msgstr "Sonneries"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:880
+#: ../sflphone-client-gnome/src/config/audioconf.c:885
 msgid "_Enable ringtones"
 msgstr "_Activer les sonneries"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:886
+#: ../sflphone-client-gnome/src/config/audioconf.c:891
 msgid "Choose a ringtone"
 msgstr "Sélectionner une sonnerie"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:892
+#: ../sflphone-client-gnome/src/config/audioconf.c:897
 msgid "Audio Files"
 msgstr "Fichier Audio"
 
@@ -991,7 +999,7 @@ msgstr "Réécriture des numéros appelés"
 msgid "_Prefix dialed numbers with"
 msgstr "_Préfixer les numéros composés par"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:212
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:225
 msgid ""
 "This profile is used when you want to reach a remote peer simply by typing a "
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
@@ -1002,67 +1010,59 @@ msgstr ""
 "sont aussi utilisé si aucun compte ne peut être attribué à un appel entrant "
 "ou sortant."
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:425
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:440
 msgid "Desktop Notifications"
 msgstr "Notifications de Bureau"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:429
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:444
 msgid "_Enable notifications"
 msgstr "_Activer les notifications"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:435
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:450
 msgid "System Tray Icon"
 msgstr "Icône dans la barre des tâches"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:438
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
 msgid "_Popup main window on incoming call"
 msgstr "Faire apparaître la fenêtre _principale lors d'appel entrant"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:457
 msgid "Ne_ver popup main window"
 msgstr "Ne _jamais afficher la fenêtre principale"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:447
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
 msgid "Hide SFLphone window on _startup"
 msgstr "_Cacher la fenêtre de SFLphone au démarrage"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:469
 msgid "Calls History"
 msgstr "Historique des appels"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:456
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:472
 msgid "_Keep my history for at least"
 msgstr "Garder mon historique au moins"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:467
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:483
 msgid "days"
 msgstr "jours"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:471
-msgid "Configuration File"
-msgstr "Fichier de configuration"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:473
-msgid "Store SIP credentials as MD5 hash"
-msgstr "Stocker les informations d'authentification sour forme encryptée (MD5)"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:517
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:536
 msgid "Preferences"
 msgstr "Préférences"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:542
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:561
 msgid "Audio"
 msgstr "Audio"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:547
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:566
 msgid "Address Book"
 msgstr "Carnet d'adresse"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:552
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:571
 msgid "Hooks"
 msgstr "Ancrage"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:562
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:581
 msgid "Direct IP calls"
 msgstr "Appels IP"
 
@@ -1070,11 +1070,11 @@ msgstr "Appels IP"
 msgid "Advanced options for TLS"
 msgstr "Options avancées TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:56
 msgid "TLS transport"
 msgstr "Transport TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:60
 msgid ""
 "TLS transport can be used along with UDP for those calls that would\n"
 "require secure sip transactions (aka SIPS). You can configure a different\n"
@@ -1087,55 +1087,55 @@ msgstr ""
 "TLS différent pour chaque compte. Cependant, chacun écoutera sur un port "
 "différent.\n"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:103
 msgid "Certificate of Authority list"
 msgstr "Liste des autorités de certification"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:107
 msgid "Choose a CA list file (optional)"
 msgstr "Choisir une liste d'AC (optionnel)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:128
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:131
 msgid "Public endpoint certificate file"
 msgstr "Fichier de certificats de l'extrémité public"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:132
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:135
 msgid "Choose a public endpoint certificate (optional)"
 msgstr "Sélectionner le certificat de l'extrémité public"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:156
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:159
 msgid "Choose a private key file (optional)"
 msgstr "Choisir une clé privée (optionnel)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:178
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:181
 msgid "Password for the private key"
 msgstr "Mot de passe pour la clé privée"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:201
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:204
 msgid "TLS protocol method"
 msgstr "Méthode pour TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:235
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:238
 msgid "TLS cipher list"
 msgstr "Liste de cryptogramme TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:244
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:247
 msgid "Server name instance for outgoing TLS connection"
 msgstr "Instance du serveur pour les connections TLS sortantes"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:252
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:255
 msgid "Negotiation timeout (sec:msec)"
 msgstr "Expiration de la négociation"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:269
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:272
 msgid "Verify incoming certificates, as a server"
 msgstr "En tant que serveur, vérifier les certificats entrants"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:275
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:278
 msgid "Verify certificates from answer, as a client"
 msgstr "En tant que client, vérifier les certificats dans les réponses"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:281
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:284
 msgid "Require certificate for incoming tls connections"
 msgstr "Exiger un certificat pour les connexions TLS entrantes"
 
@@ -1159,29 +1159,36 @@ msgstr "_Avertir si ZRTP n'est pas supporté"
 msgid "Display SAS once for hold events"
 msgstr "Afficher le SAS seulement une fois sur les mises en attente"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:56
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:58
 msgid "Search all"
 msgstr "Rechercher dans tous"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:57
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:70
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:82
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:94
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:59
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:72
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:84
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:96
 msgid "Click here to change the search type"
 msgstr "Cliquez ici pour changer le type de recherche"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:69
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:71
 msgid "Search by missed call"
 msgstr "Rechercher dans les appels manqués"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:81
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:83
 msgid "Search by incoming call"
 msgstr "Rechercher dans les appels entrants"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:93
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:95
 msgid "Search by outgoing call"
 msgstr "Rechercher dans les appels sortants"
 
+#~ msgid "Configuration File"
+#~ msgstr "Fichier de configuration"
+
+#~ msgid "Store SIP credentials as MD5 hash"
+#~ msgstr ""
+#~ "Stocker les informations d'authentification sour forme encryptée (MD5)"
+
 #~ msgid "IP call - %s"
 #~ msgstr "Appel IP - %s"
 
diff --git a/sflphone-client-gnome/po/it/it.po b/sflphone-client-gnome/po/it/it.po
index 88fc58458f..cf8644aea9 100644
--- a/sflphone-client-gnome/po/it/it.po
+++ b/sflphone-client-gnome/po/it/it.po
@@ -1,21 +1,21 @@
-# SFLphone italian translation.
+# SOME DESCRIPTIVE TITLE.
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: 0.9.7\n"
+"Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-14 11:18-0400\n"
+"POT-Creation-Date: 2009-12-03 10:22-0500\n"
 "PO-Revision-Date: 2009-10-14 17:47+0000\n"
-"Last-Translator: Stefano Scamuzzo <stefano.scamuzzo@eng.it>\n"
+"Last-Translator: Maxime Chambreuil <maxime.chambreuil@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2009-10-26 15:48+0000\n"
+"X-Launchpad-Export-Date: 2009-12-03 15:32+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
 #: ../sflphone-client-gnome/src/accountlist.c:175
@@ -60,25 +60,15 @@ msgstr "Server STUN non valido"
 msgid "Invalid"
 msgstr "Non valido"
 
-#: ../sflphone-client-gnome/src/actions.c:54
-#: ../sflphone-client-gnome/src/sflnotify.c:94
-#, c-format
-msgid "%d voice mail"
-msgid_plural "%d voice mails"
-msgstr[0] "%d messaggio vocale"
-msgstr[1] "%d messaggi vocali"
-
-#: ../sflphone-client-gnome/src/actions.c:83
-#: ../sflphone-client-gnome/src/actions.c:919
-#: ../sflphone-client-gnome/src/actions.c:926
+#: ../sflphone-client-gnome/src/actions.c:98
 msgid "Using account"
 msgstr "Account in uso:"
 
-#: ../sflphone-client-gnome/src/actions.c:89
+#: ../sflphone-client-gnome/src/actions.c:104
 msgid "No registered accounts"
 msgstr "Nessun account registrato"
 
-#: ../sflphone-client-gnome/src/actions.c:268
+#: ../sflphone-client-gnome/src/actions.c:285
 msgid ""
 "Unable to connect to the SFLphone server.\n"
 "Make sure the daemon is running."
@@ -86,27 +76,23 @@ msgstr ""
 "Impossibile connettersi al server SFLphone.\n"
 "Accertarsi che il demone sia in esecuzione."
 
-#: ../sflphone-client-gnome/src/actions.c:913
-#, c-format
-msgid "IP call - %s"
-msgstr "Chiamata IP diretta - %s"
-
-#: ../sflphone-client-gnome/src/actions.c:922
-msgid "Codec"
-msgstr "Codec"
+#: ../sflphone-client-gnome/src/actions.c:589
+#: ../sflphone-client-gnome/src/actions.c:911
+msgid "Direct SIP call"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:1119
+#: ../sflphone-client-gnome/src/actions.c:1103
 #, c-format
 msgid ""
 "<b>Error: No audio codecs found.\n"
 "\n"
-"</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
-"<b>.sflphone</b> directory in your home( <i>%s</i> )"
+"</b> SFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</"
+"b> directory in your home( <i>%s</i> )"
 msgstr ""
-"<b>Errore: Non è stato trovato alcun codec audio.</b>\n"
+"<b>Errore: Non è stato trovato alcun codec audio.</b>\n"
 "\n"
-"I codec audio SFL devono trovarsi in <i>%s</i> o nella sottocartella "
-"<b>.sflphone</b> della cartella home dell'utente (</i>%s</i>)"
+"I codec audio SFL devono trovarsi in <i>%s</i> o nella sottocartella <b>."
+"sflphone</b> della cartella home dell'utente (</i>%s</i>)"
 
 #: ../sflphone-client-gnome/src/errors.c:29
 msgid ""
@@ -133,11 +119,11 @@ msgid ""
 "Pulseaudio is not running"
 msgstr ""
 "Notifica PulseAudio\n"
-"PulseAudio non è in esecuzione"
+"PulseAudio non è in esecuzione"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:73
 msgid "There is one call in progress."
-msgstr "C'è una chiamata in corso."
+msgstr "C'è una chiamata in corso."
 
 #: ../sflphone-client-gnome/src/mainwindow.c:77
 msgid "There are calls in progress."
@@ -147,57 +133,55 @@ msgstr "Ci sono chiamate in corso."
 msgid "Do you still want to quit?"
 msgstr "Vuoi veramente uscire?"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:299
+#: ../sflphone-client-gnome/src/mainwindow.c:298
 msgid "SFLphone Error"
 msgstr "Errore SFLphone"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:391
+#: ../sflphone-client-gnome/src/mainwindow.c:392
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
-msgstr "ZRPT non supportato dal nodo %s\n"
-
-#: ../sflphone-client-gnome/src/mainwindow.c:392
-msgid "Secure Communication Unavailable"
-msgstr "Comunicazione sicura non disponibile"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/mainwindow.c:393
-#: ../sflphone-client-gnome/src/mainwindow.c:415
-msgid "Continue"
-msgstr "Continua"
+msgid "Secure Communication Unavailable"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/mainwindow.c:394
 #: ../sflphone-client-gnome/src/mainwindow.c:416
-#: ../sflphone-client-gnome/src/mainwindow.c:430
+msgid "Continue"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/mainwindow.c:395
+#: ../sflphone-client-gnome/src/mainwindow.c:417
+#: ../sflphone-client-gnome/src/mainwindow.c:431
 msgid "Stop Call"
-msgstr "Chiudi la chiamata"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:413
+#: ../sflphone-client-gnome/src/mainwindow.c:414
 #, c-format
 msgid ""
 "A %s error forced the call with %s to fall under unencrypted mode.\n"
 "Exact reason: %s\n"
-msgstr "Un errore %s ha provocato il passaggio della chiamata %s in modalità non sicura.\n"
-"Motivo esatto: %s\n"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:414
+#: ../sflphone-client-gnome/src/mainwindow.c:415
 msgid "ZRTP negotiation failed"
-msgstr "Negoziazione ZRTP fallita"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:427
+#: ../sflphone-client-gnome/src/mainwindow.c:428
 #, c-format
 msgid ""
 "%s wants to stop using secure communication. Confirm will resume "
 "conversation without SRTP.\n"
-msgstr "%s vuole terminare l'uso della comunicazione sicura. Conferma ripristinerà "
-"la converazione senza SRTP.\n"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:428
+#: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm Go Clear"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:429
+#: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Confirm"
-msgstr "Conferma"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/sflnotify.c:71
 #: ../sflphone-client-gnome/src/sflnotify.c:91
@@ -210,6 +194,13 @@ msgstr "Account %s: %s"
 msgid "<i>From</i> %s"
 msgstr "<i>Da</i> %s"
 
+#: ../sflphone-client-gnome/src/sflnotify.c:94
+#, c-format
+msgid "%d voice mail"
+msgid_plural "%d voice mails"
+msgstr[0] "%d messaggio vocale"
+msgstr[1] "%d messaggi vocali"
+
 #: ../sflphone-client-gnome/src/sflnotify.c:111
 #, c-format
 msgid "Calling with %s account <i>%s</i>"
@@ -233,23 +224,21 @@ msgid ""
 "<i>With:</i> %s \n"
 "using %s"
 msgstr ""
-"<i>con:</i> %s \n"
-"utilizzando $s"
 
 #: ../sflphone-client-gnome/src/sflnotify.c:205
 #, c-format
 msgid "%s does not support ZRTP."
-msgstr "%s non supporta ZRTP."
+msgstr ""
 
 #: ../sflphone-client-gnome/src/sflnotify.c:220
 #, c-format
 msgid "ZRTP negotiation failed with %s"
-msgstr "Negoziazione ZRTP con %s fallita"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/sflnotify.c:235
 #, c-format
 msgid "<i>With:</i> %s"
-msgstr "<i>Con:</i> %s"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/sliders.c:162
 msgid "Speakers volume"
@@ -259,15 +248,15 @@ msgstr "Volume altoparlante"
 msgid "Mic volume"
 msgstr "Volume microfono"
 
-#: ../sflphone-client-gnome/src/statusicon.c:91
+#: ../sflphone-client-gnome/src/statusicon.c:96
 msgid "_Show main window"
 msgstr "Mostra la finestra principale"
 
-#: ../sflphone-client-gnome/src/statusicon.c:126
+#: ../sflphone-client-gnome/src/statusicon.c:131
 msgid "SFLphone"
 msgstr "SFLphone"
 
-#: ../sflphone-client-gnome/src/statusicon.c:127
+#: ../sflphone-client-gnome/src/statusicon.c:132
 #, c-format
 msgid "%i account configured"
 msgid_plural "%i accounts configured"
@@ -275,203 +264,399 @@ msgstr[0] "%i account configurato"
 msgstr[1] "%i account configurati"
 
 #: ../sflphone-client-gnome/src/toolbar.c:38
-#: ../sflphone-client-gnome/src/uimanager.c:750
+#: ../sflphone-client-gnome/src/uimanager.c:693
+#: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Voicemail"
 msgstr "Segreteria telefonica"
 
-#: ../sflphone-client-gnome/src/uimanager.c:403
+#: ../sflphone-client-gnome/src/uimanager.c:117
+msgid "No address book selected"
+msgstr "Rubrica"
+
+#: ../sflphone-client-gnome/src/uimanager.c:137
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "Address book"
+msgstr "Rubrica"
+
+#: ../sflphone-client-gnome/src/uimanager.c:279
+msgid "Voicemail (%i)"
+msgstr "Segreteria telefonica (%i)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:342
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
-msgstr "SFLphone è un client VoIP compatibile con i protocolli SIP e IAX2."
+msgstr "SFLphone è un client VoIP compatibile con i protocolli SIP e IAX2."
 
-#: ../sflphone-client-gnome/src/uimanager.c:406
+#: ../sflphone-client-gnome/src/uimanager.c:345
 msgid "About SFLphone"
 msgstr "Informazioni su SFLphone"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1028
+#: ../sflphone-client-gnome/src/uimanager.c:719
+msgid "Call"
+msgstr "_Chiama"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+#: ../sflphone-client-gnome/src/uimanager.c:1184
+msgid "_New call"
+msgstr "Chiama"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+msgid "Place a new call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:721
+#: ../sflphone-client-gnome/src/uimanager.c:979
 msgid "_Pick up"
 msgstr "Rispondi"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1040
-#: ../sflphone-client-gnome/src/uimanager.c:1081
+#: ../sflphone-client-gnome/src/uimanager.c:721
+msgid "Answer the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:722
+#: ../sflphone-client-gnome/src/uimanager.c:991
+#: ../sflphone-client-gnome/src/uimanager.c:1032
 msgid "_Hang up"
 msgstr "_Chiudi"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1052
-#: ../sflphone-client-gnome/src/uimanager.c:1093
-msgid "On _Hold"
+#: ../sflphone-client-gnome/src/uimanager.c:722
+msgid "Finish the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "O_n hold"
 msgstr "Attesa"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1064
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "Place the call on hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "O_ff hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "Place the call off hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:725
+#: ../sflphone-client-gnome/src/uimanager.c:1015
 msgid "_Record"
 msgstr "_Registra"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1154
-msgid "_Call back"
-msgstr "Richiama"
+#: ../sflphone-client-gnome/src/uimanager.c:725
+msgid "Record the current conversation"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1226
-msgid "_New call"
-msgstr "Chiama"
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Configuration _Assistant"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Run the configuration assistant"
+msgstr "Errore di configurazione STUN"
+
+#: ../sflphone-client-gnome/src/uimanager.c:727
+msgid "Call your voicemail"
+msgstr "%d messaggio vocale"
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "_Close"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "Minimize to system tray"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "_Quit"
+msgstr "_Modifica"
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "Quit the program"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:732
+msgid "_Edit"
+msgstr "_Modifica"
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "_Copy"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "Copy the selection"
+msgstr "Elimina l'account selezionato"
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "_Paste"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "Paste the clipboard"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear _history"
+msgstr "Cancella la cronologia"
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear the call history"
+msgstr "Cancella la cronologia"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "_Accounts"
+msgstr "_Account"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "Edit your accounts"
+msgstr "Account attivo"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "_Preferences"
+msgstr "Preferenze"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1300
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "Change your preferences"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:740
+msgid "_View"
+msgstr "_Visualizza"
+
+#: ../sflphone-client-gnome/src/uimanager.c:743
+msgid "_Help"
+msgstr "_Aiuto"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Contents"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Open the manual"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:745
+msgid "About this application"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "_Transfer"
+msgstr "Inoltra"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "Transfer the call"
+msgstr "Inoltra a: "
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "_Show toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "Show the toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "_Dialpad"
+msgstr "Mostra tastiera"
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "Show the dialpad"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "_Volume controls"
+msgstr "Mostra i controlli del volume"
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "Show the volume controls"
+msgstr "Mostra i controlli del volume"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "_History"
+msgstr "Cronologia"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "Calls history"
+msgstr "Cronologia chiamate"
+
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "_Address book"
+msgstr "Rubrica"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1003
+#: ../sflphone-client-gnome/src/uimanager.c:1044
+msgid "On _Hold"
+msgstr "Attesa"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1107
+msgid "_Call back"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:1258
 msgid "Edit phone number"
-msgstr "Modifica numero di telefono"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/uimanager.c:1311
+#: ../sflphone-client-gnome/src/uimanager.c:1269
 msgid "Edit the phone number before making a call"
-msgstr "Modifica il numero di telefono prima di chiamare"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:164
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:180
 msgid "Account Parameters"
 msgstr "Parametri account"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:173
-#: ../sflphone-client-gnome/src/config/assistant.c:294
-#: ../sflphone-client-gnome/src/config/assistant.c:402
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/assistant.c:314
+#: ../sflphone-client-gnome/src/config/assistant.c:427
 msgid "_Alias"
 msgstr "_Pseudonimo"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:181
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:197
 msgid "_Protocol"
 msgstr "_Protocollo"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:199
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:215
 msgid "Unknown"
 msgstr "Sconosciuto"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:209
-#: ../sflphone-client-gnome/src/config/assistant.c:302
-#: ../sflphone-client-gnome/src/config/assistant.c:410
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
+#: ../sflphone-client-gnome/src/config/assistant.c:322
+#: ../sflphone-client-gnome/src/config/assistant.c:435
 msgid "_Host name"
 msgstr "Nome _host"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:217
-#: ../sflphone-client-gnome/src/config/assistant.c:310
-#: ../sflphone-client-gnome/src/config/assistant.c:418
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:233
+#: ../sflphone-client-gnome/src/config/assistant.c:330
+#: ../sflphone-client-gnome/src/config/assistant.c:443
 msgid "_User name"
 msgstr "Nome _utente"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:234
-#: ../sflphone-client-gnome/src/config/assistant.c:326
-#: ../sflphone-client-gnome/src/config/assistant.c:433
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:346
+#: ../sflphone-client-gnome/src/config/assistant.c:458
 msgid "_Password"
 msgstr "_Password"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:254
-#: ../sflphone-client-gnome/src/config/assistant.c:344
-#: ../sflphone-client-gnome/src/config/assistant.c:449
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:270
+#: ../sflphone-client-gnome/src/config/assistant.c:363
+#: ../sflphone-client-gnome/src/config/assistant.c:473
+msgid "Show password"
+msgstr "Password"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:274
+#: ../sflphone-client-gnome/src/config/assistant.c:368
+#: ../sflphone-client-gnome/src/config/assistant.c:478
 msgid "_Voicemail number"
 msgstr "Numero segreteria telefonica"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:340
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:361
 msgid "Authentication"
-msgstr "Autenticazione"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:362
 msgid "Secret"
-msgstr "Segreto"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:605
 msgid "Credential"
-msgstr "Credenziali"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:501
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:640
 msgid "Authentication name"
-msgstr "Nome autenticazione"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:512
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:651
 msgid "Password"
 msgstr "Password"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:535
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:909
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:201
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1056
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:321
 msgid "Security"
-msgstr "Sicurezza"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:547
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:213
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:333
 msgid "Use TLS transport (sips)"
-msgstr "Utilizza il trasporto TLS (sips)"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:552
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:218
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:338
 msgid "SRTP key exchange"
-msgstr "Scambio di chiavi SRTP"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:699
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
 msgid "Disabled"
-msgstr "Disabilitato"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:795
 msgid "Registration"
-msgstr "Registrazione"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:800
 msgid "Registration expire"
 msgstr "Scadenza registrazione"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:809
 msgid "_Comply with RFC 3263"
-msgstr "Compatibile con RFC 3263"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
-msgid "Network"
-msgstr "Rete"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:816
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:234
+msgid "Network Interface"
+msgstr "Rete irraggiungibile"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:830
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:249
 msgid "Local address"
-msgstr "Indirizzo locale"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:301
 msgid "Local port"
-msgstr "Porta locale"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:752
-msgid "Set published address and port:"
-msgstr "Configura indirizzo pubblicato e porta:"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:893
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:928
+msgid "Published address"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:756
-msgid "Using STUN "
-msgstr "Utilizza STUN "
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+msgid "Using STUN"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:761
-msgid "Same as local parameters"
-msgstr "Come paramteri locali"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:906
+msgid "STUN server URL"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:764
-msgid "Manually"
-msgstr "Manuale"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:914
+msgid "Same as local parameters"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:769
-msgid "Published address"
-msgstr "Indirizzo pubblicato"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:917
+msgid "Set published address and port:"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:777
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:936
 msgid "Published port"
-msgstr "Porta pubblicata"
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:785
-msgid "STUN server URL"
-msgstr "URL del server STUN"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1027
 msgid "Account settings"
 msgstr "Impostazioni dell'account"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1046
 msgid "Basic"
 msgstr "Generale"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:904
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1051
 msgid "Advanced"
 msgstr "Avanzate"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:169
-msgid "Server returned \""
-msgstr "Il server ha restituito \""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:164
+#, c-format
+msgid "Server returned \"%s\" (%d)"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
 msgid "Protocol"
@@ -483,40 +668,27 @@ msgstr "Stato"
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:474
 msgid "Accounts"
-msgstr "Accounts"
+msgstr "Account"
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:484
 msgid "Configured Accounts"
 msgstr "Account configurati"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
-msgid "There "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "is "
-msgstr "è"
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "are "
-msgstr "sono"
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
-msgid " active account"
-msgstr " account attivo"
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
-msgid "s"
-msgstr ""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:501
+#, c-format
+msgid "There is %d active account"
+msgid_plural "There are %d active accounts"
+msgstr[0] ""
+msgstr[1] ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:507
 msgid "You have no active account"
-msgstr "Non ci sono account attivi"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:556
 msgid "General"
-msgstr "Generale"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:312
 msgid "_Use Evolution address books"
@@ -524,11 +696,11 @@ msgstr "_Usa la rubrica di Evolution"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:319
 msgid "Download limit :"
-msgstr "Limite per il download: "
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:327
 msgid "cards"
-msgstr "schede"
+msgstr "tessere"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:333
 msgid "_Display contact photo if available"
@@ -559,244 +731,238 @@ msgid "Select which Evolution address books to use"
 msgstr "Selezionare la rubrica di Evolution da usare"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:404
-#: ../sflphone-client-gnome/src/config/audioconf.c:578
+#: ../sflphone-client-gnome/src/config/audioconf.c:577
 msgid "Name"
 msgstr "Nome"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:69
+#: ../sflphone-client-gnome/src/config/assistant.c:75
 #, c-format
 msgid "This assistant is now finished."
 msgstr "La procedura guidata è terminata."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:71
+#: ../sflphone-client-gnome/src/config/assistant.c:77
 msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
-msgstr "In qualsiasi momento puoi controllare lo stato della tua registrazione o modificare i tuoi parametri"
-"di acccount nella finestra Opzioni/Accounts."
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:74
+#: ../sflphone-client-gnome/src/config/assistant.c:80
 msgid "Alias"
-msgstr "Alias"
+msgstr "Pseudonimo"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:78
+#: ../sflphone-client-gnome/src/config/assistant.c:84
 msgid "Server"
 msgstr "Server"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:82
+#: ../sflphone-client-gnome/src/config/assistant.c:88
 msgid "Username"
 msgstr "Nome utente"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:86
+#: ../sflphone-client-gnome/src/config/assistant.c:92
 msgid "Security: "
-msgstr "Sicurezza: "
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:88
+#: ../sflphone-client-gnome/src/config/assistant.c:94
 msgid "SRTP/ZRTP draft-zimmermann"
-msgstr "SRTP/ZRTP draft-zimmermann"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:90
-#: ../sflphone-client-gnome/src/config/assistant.c:182
+#: ../sflphone-client-gnome/src/config/assistant.c:96
 msgid "None"
-msgstr "Nessuno"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:210
+#: ../sflphone-client-gnome/src/config/assistant.c:229
 msgid "SFLphone account creation wizard"
-msgstr "Procedura guidata per la creazione dell'account SFLphone"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:236
+#: ../sflphone-client-gnome/src/config/assistant.c:255
 msgid "Welcome to the Account creation wizard of SFLphone!"
 msgstr ""
 "Benvenuti alla procedura guidata per la creazione di un account SFLphone"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:237
+#: ../sflphone-client-gnome/src/config/assistant.c:256
 msgid "This installation wizard will help you configure an account."
-msgstr "Questa procedura di installazione permetterà  di configurare un account."
+msgstr "Questa procedura permetterà di configurare un account."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "VoIP Protocols"
 msgstr "Protocolli VoIP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "Select an account type"
 msgstr "Selezionare un tipo di account"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:253
+#: ../sflphone-client-gnome/src/config/assistant.c:272
 msgid "SIP (Session Initiation Protocol)"
 msgstr "SIP (Session Initiation Protocol)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:255
+#: ../sflphone-client-gnome/src/config/assistant.c:274
 msgid "IAX2 (InterAsterix Exchange)"
 msgstr "IAX2 (InterAsterix Exchange)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Account"
 msgstr "Account"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Please select one of the following options"
 msgstr "Scegliere una delle seguenti opzioni"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:271
+#: ../sflphone-client-gnome/src/config/assistant.c:290
 msgid "Create a free SIP/IAX2 account on sflphone.org"
 msgstr "Creare un account SIP/IAX2 gratuito  su sflphone.org"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:273
+#: ../sflphone-client-gnome/src/config/assistant.c:292
 msgid "Register an existing SIP or IAX2 account"
 msgstr "Registrare un account SIP o IAX2 esistente"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
+#: ../sflphone-client-gnome/src/config/assistant.c:306
 msgid "SIP account settings"
 msgstr "Impostazioni account SIP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:306
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "Please fill the following information"
-msgstr "Per favore compila le seguenti informazioni"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:352
-#: ../sflphone-client-gnome/src/config/assistant.c:381
+#: ../sflphone-client-gnome/src/config/assistant.c:376
+#: ../sflphone-client-gnome/src/config/assistant.c:405
 msgid "Secure communications with _ZRTP"
-msgstr "Comunicazioni sicure con _ZRTP"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "Optional email address"
 msgstr "Indirizzo email opzionale"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "This email address will be used to send your voicemail messages."
 msgstr ""
-"L'indirizzo email sarà usato per l'invio dei messaggi della segreteria "
+"L'indirizzo email sarà usato per l'invio dei messaggi della segreteria "
 "telefonica."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:373
+#: ../sflphone-client-gnome/src/config/assistant.c:397
 msgid "_Email address"
 msgstr "Indirizzo _email"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "IAX2 account settings"
 msgstr "Impostazioni account IAX2"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "Network Address Translation (NAT)"
 msgstr "Network Address Translation (NAT)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "You should probably enable this if you are behind a firewall."
 msgstr "Dovrebbe essere abilitato se ci si trova dietro ad un firewall."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:476
+#: ../sflphone-client-gnome/src/config/assistant.c:505
 msgid "E_nable STUN"
 msgstr "Abilita STUN"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:483
+#: ../sflphone-client-gnome/src/config/assistant.c:512
 msgid "_STUN server"
 msgstr "Server STUN"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Account Registration"
 msgstr "Registrazione account"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Congratulations!"
 msgstr "Congratulazioni!"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:583
+#: ../sflphone-client-gnome/src/config/audioconf.c:582
 msgid "Frequency"
 msgstr "Frequenza"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:588
+#: ../sflphone-client-gnome/src/config/audioconf.c:587
 msgid "Bitrate"
 msgstr "Bitrate"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:593
+#: ../sflphone-client-gnome/src/config/audioconf.c:592
 msgid "Bandwidth"
 msgstr "Banda"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:673
+#: ../sflphone-client-gnome/src/config/audioconf.c:670
 msgid "ALSA plugin"
 msgstr "Plugin ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:695
+#: ../sflphone-client-gnome/src/config/audioconf.c:692
 msgid "Output"
 msgstr "Uscita"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:717
+#: ../sflphone-client-gnome/src/config/audioconf.c:714
 msgid "Input"
 msgstr "Ingresso"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:752
+#: ../sflphone-client-gnome/src/config/audioconf.c:749
 msgid "_Voice Activity Detection"
-msgstr "Rilevazione dell'attività _Voce"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:762
+#: ../sflphone-client-gnome/src/config/audioconf.c:759
 msgid "_Noise Reduction (Narrow-Band Companding)"
-msgstr "Riduzione del rumore (Narrow-Band Companding)"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:798
+#: ../sflphone-client-gnome/src/config/audioconf.c:800
 msgid "Sound Manager"
-msgstr "Gestore del suono"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:807
+#: ../sflphone-client-gnome/src/config/audioconf.c:809
 msgid "_Pulseaudio"
 msgstr "_Pulseaudio"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:811
+#: ../sflphone-client-gnome/src/config/audioconf.c:813
 msgid "_ALSA"
 msgstr "_ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:816
-msgid "_Mute other applications during a call"
-msgstr "Spegni l'audio delle altre applicazioni durante una chiamata"
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:823
+#: ../sflphone-client-gnome/src/config/audioconf.c:819
 msgid "ALSA settings"
 msgstr "Impostazioni ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:840
+#: ../sflphone-client-gnome/src/config/audioconf.c:836
 msgid "Codecs"
 msgstr "Codec"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:869
+#: ../sflphone-client-gnome/src/config/audioconf.c:865
 msgid "Recordings"
 msgstr "Registrazioni"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:873
+#: ../sflphone-client-gnome/src/config/audioconf.c:869
 msgid "Destination folder"
 msgstr "Cartella di destinazione"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:877
+#: ../sflphone-client-gnome/src/config/audioconf.c:873
 msgid "Select a folder"
 msgstr "Seleziona una cartella"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:883
+#: ../sflphone-client-gnome/src/config/audioconf.c:879
 msgid "Ringtones"
 msgstr "Suonerie"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:889
+#: ../sflphone-client-gnome/src/config/audioconf.c:885
 msgid "_Enable ringtones"
 msgstr "Abilita suonerie"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:895
+#: ../sflphone-client-gnome/src/config/audioconf.c:891
 msgid "Choose a ringtone"
 msgstr "Selezionare una suoneria"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:901
+#: ../sflphone-client-gnome/src/config/audioconf.c:897
 msgid "Audio Files"
 msgstr "File audio"
 
 #: ../sflphone-client-gnome/src/config/hooks-config.c:130
 msgid "URL Argument"
-msgstr "Stringa URL"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/hooks-config.c:135
 msgid "Custom commands on incoming calls with URL"
-msgstr "Comandi custom sulle chiamate in ingresso con URL"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/hooks-config.c:138
 #, c-format
 msgid "%s will be replaced with the passed URL."
-msgstr "%s saranno rimpiazzati dall'URL fornito."
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/hooks-config.c:141
 msgid "Trigger on specific _SIP header"
@@ -818,101 +984,78 @@ msgstr "Riscrittura numero telefonico"
 msgid "_Prefix dialed numbers with"
 msgstr "Prefisso da aggiungere ai numeri da chiamare"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:195
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:225
 msgid ""
 "This profile is used when you want to reach a remote peer simply by typing a "
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
 "also be used if no account can be matched to an incoming or outgoing call."
 msgstr ""
-"Questo profilo è utilizzato quando vuoi raggiungere un nodo remoto semplicemente digitando un "
-"URI sip tipo <b>sip:remotepeer</b>. Le configurazione che definisci qui saranno "
-"usate anche se nessun account corrisponde ad una chiamata in ingresso o in uscita."
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:274
-msgid "SIP Port"
-msgstr "SIP Port"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:281
-msgid "UDP Transport"
-msgstr "Trasporto UDP"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:319
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:440
 msgid "Desktop Notifications"
 msgstr "Notifiche"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:323
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:444
 msgid "_Enable notifications"
 msgstr "Abilita notifiche"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:329
-msgid "Enable voicemail _notifications"
-msgstr "Abilita notifiche messaggi vocali"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:341
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:450
 msgid "System Tray Icon"
 msgstr "Icona per area di notifica"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
 msgid "_Popup main window on incoming call"
 msgstr "Mostra la finestra principale all'arrivo delle chiamate"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:349
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:457
 msgid "Ne_ver popup main window"
 msgstr "Non mostrare mai la finestra principale"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:353
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
 msgid "Hide SFLphone window on _startup"
 msgstr "Nascondi la finestra di SFLphone all'avvio"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:359
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:469
 msgid "Calls History"
 msgstr "Cronologia chiamate"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:362
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:472
 msgid "_Keep my history for at least"
 msgstr "Mantieni la cronologia per almeno"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:373
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:483
 msgid "days"
 msgstr "giorni"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
-msgid "Configuration File"
-msgstr "File di configurazione"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
-msgid "Store SIP credentials as MD5 hash"
-msgstr "Memorizza le credenziali SIP in MD5"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:423
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:536
 msgid "Preferences"
 msgstr "Preferenze"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:448
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:561
 msgid "Audio"
 msgstr "Audio"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:566
 msgid "Address Book"
 msgstr "Rubrica"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:458
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:571
 msgid "Hooks"
-msgstr "Agganci"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:468
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:581
 msgid "Direct IP calls"
-msgstr "Chiamate IP dirette"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:38
 msgid "Advanced options for TLS"
-msgstr "Opzioni avanzate per TLS"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:56
 msgid "TLS transport"
-msgstr "Trasporto TLS"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:60
 msgid ""
 "TLS transport can be used along with UDP for those calls that would\n"
 "require secure sip transactions (aka SIPS). You can configure a different\n"
@@ -920,117 +1063,125 @@ msgid ""
 "dedicated\n"
 "port, different one from each other\n"
 msgstr ""
-"Il trasporto TLS può essere utilizzato con UDP per le chiamate che\n"
-"richiedono transazioni sip sicure (aka SIPS). Puoi configurare un trasporto\n"
-"TLS diverso per ognia account. Tuttavia, ognuino di essi girerà su una "
-"porta dedicata, differente dalle altre\n"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:103
 msgid "Certificate of Authority list"
-msgstr "Lista delle Autorità di certificazione"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:107
 msgid "Choose a CA list file (optional)"
-msgstr "Scelgi una lista di CA (opzionale)"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:115
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:131
 msgid "Public endpoint certificate file"
-msgstr "File di certificato dell'endpoint pubblico"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:119
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:135
 msgid "Choose a public endpoint certificate (optional)"
-msgstr "Scegli un certificato dell'endpoint pubblico (opzionale)"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:134
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:159
 msgid "Choose a private key file (optional)"
-msgstr "Scegli un file con la chiave privata (opzionale)"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:145
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:181
 msgid "Password for the private key"
-msgstr "Password per la chiave privata"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:168
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:204
 msgid "TLS protocol method"
-msgstr "Metodo del protocollo TLS"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:202
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:238
 msgid "TLS cipher list"
-msgstr "Cifratura TLS"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:211
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:247
 msgid "Server name instance for outgoing TLS connection"
-msgstr "Nome dell'istanza serfer pre connessioni TLS in uscita"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:219
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:255
 msgid "Negotiation timeout (sec:msec)"
-msgstr "Timeout di negoziazione (sec:msec)"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:236
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:272
 msgid "Verify incoming certificates, as a server"
-msgstr "Verifica certificati in ingresso, come server"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:242
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:278
 msgid "Verify certificates from answer, as a client"
-msgstr "Verifica certificati nella risposta, come client"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:248
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:284
 msgid "Require certificate for incoming tls connections"
-msgstr "Richiede un certificato per le connessioni tls in ingresso"
+msgstr ""
 
 #: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:49
 msgid "ZRTP Options"
-msgstr "Opziobi ZRTP"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:68
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:69
 msgid "Send Hello Hash in S_DP"
-msgstr "Invia Hello Hash in S_DP"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:74
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:75
 msgid "Ask User to Confirm SAS"
-msgstr "Chiedi all'utente di confermare SAS"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:80
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:81
 msgid "_Warn if ZRTP not supported"
-msgstr "Notifica se ZRTP non è supportato"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:86
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:87
 msgid "Display SAS once for hold events"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:56
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:58
 msgid "Search all"
 msgstr "Cerca tra tutte le chiamate"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:57
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:70
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:82
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:94
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:59
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:72
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:84
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:96
 msgid "Click here to change the search type"
 msgstr "Fare clic qui per cambiare il tipo di ricerca"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:69
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:71
 msgid "Search by missed call"
 msgstr "Cerca tra le chiamate perse"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:81
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:83
 msgid "Search by incoming call"
 msgstr "Cerca tra le chiamate ricevute"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:93
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:95
 msgid "Search by outgoing call"
 msgstr "Cerca tra le chiamate effettuate"
 
-#~ msgid "(C) 2009 Savoir-faire Linux"
-#~ msgstr "(C) 2009 Savoir-faire Linux"
+#~ msgid "IP call - %s"
+#~ msgstr "Chiamata IP diretta - %s"
+
+#~ msgid "Codec"
+#~ msgstr "Codec"
 
-#~ msgid "Jérémy Quentin"
-#~ msgstr "Jérémy Quentin"
+#~ msgid "Network"
+#~ msgstr "Rete"
 
-#~ msgid "Address book"
-#~ msgstr "Rubrica"
+#~ msgid "_Mute other applications during a call"
+#~ msgstr "Spegni l'audio delle altre applicazioni durante una chiamata"
 
-#~ msgid "Call history"
-#~ msgstr "Cronologia chiamate"
+#~ msgid "SIP Port"
+#~ msgstr "SIP Port"
+
+#~ msgid "Enable voicemail _notifications"
+#~ msgstr "Abilita notifiche messaggi vocali"
+
+#~ msgid "(C) 2009 Savoir-faire Linux"
+#~ msgstr "(C) 2009 Savoir-faire Linux"
+
+#~ msgid "Jérémy Quentin"
+#~ msgstr "Jérémy Quentin"
 
 #~ msgid "Hang up"
 #~ msgstr "Chiudi"
@@ -1077,26 +1228,8 @@ msgstr "Cerca tra le chiamate effettuate"
 #~ msgid "Enable notifications"
 #~ msgstr "Attiva le notifiche"
 
-#~ msgid "History"
-#~ msgstr "Cronologia"
-
-#~ msgid "_Call"
-#~ msgstr "_Chiama"
-
-#~ msgid "_Help"
-#~ msgstr "_Aiuto"
-
-#~ msgid "_View"
-#~ msgstr "_Visualizza"
-
-#~ msgid "_Edit"
-#~ msgstr "_Modifica"
-
-#~ msgid "_Accounts"
-#~ msgstr "_Account"
-
 #~ msgid "Port"
-#~ msgstr "Porta"
+#~ msgstr "Port"
 
 #~ msgid "PulseAudio sound server"
 #~ msgstr "Server audio PulseAudio"
@@ -1107,9 +1240,6 @@ msgstr "Cerca tra le chiamate effettuate"
 #~ msgid "You have an incoming call from"
 #~ msgstr "Chiamata in arrivo da"
 
-#~ msgid "Transfer"
-#~ msgstr "Inoltra"
-
 #~ msgid "Hold on"
 #~ msgstr "Attesa"
 
@@ -1122,15 +1252,6 @@ msgstr "Cerca tra le chiamate effettuate"
 #~ msgid "Command to run"
 #~ msgstr "Comando da eseguire"
 
-#~ msgid "Display volume controls"
-#~ msgstr "Mostra i controlli del volume"
-
-#~ msgid "Display dialpad"
-#~ msgstr "Mostra tastiera"
-
-#~ msgid "Clear _history"
-#~ msgstr "Cancella la cronologia"
-
 #~ msgid "_Enable this account"
 #~ msgstr "Abilita questo account"
 
@@ -1143,9 +1264,6 @@ msgstr "Cerca tra le chiamate effettuate"
 #~ msgid "Stun Server"
 #~ msgstr "Server STUN"
 
-#~ msgid "Transfer to : "
-#~ msgstr "Inoltra a: "
-
 #~ msgid "Address book loading..."
 #~ msgstr "Caricamento rubrica..."
 
@@ -1156,14 +1274,11 @@ msgstr "Cerca tra le chiamate effettuate"
 #~ msgstr "Abilita STUN"
 
 #~ msgid "Format : name.server:port"
-#~ msgstr "Formato: nome.server:porta"
+#~ msgstr "Formato: nome.del.server:porta"
 
 #~ msgid "Incoming call"
 #~ msgstr "Chiamata in arrivo"
 
-#~ msgid "Remove the selected account"
-#~ msgstr "Elimina l'account selezionato"
-
 #~ msgid "Display photo if available"
 #~ msgstr "Mostrare foto se disponibile"
 
@@ -1179,9 +1294,6 @@ msgstr "Cerca tra le chiamate effettuate"
 #~ msgid "Show main window"
 #~ msgstr "Mostra finestra principale"
 
-#~ msgid "Clear history"
-#~ msgstr "Cancella la cronologia"
-
 #~ msgid "Prefix dialed numbers with"
 #~ msgstr "Prefisso da aggiungere al numero da chiamare"
 
@@ -1192,27 +1304,27 @@ msgstr "Cerca tra le chiamate effettuate"
 #~ msgstr "Scadenza registrazione"
 
 #~ msgid ""
-#~ "Pressing \"apply\" will restart the network layer. Otherwise, SFLPhone would "
-#~ "have to be restarted."
+#~ "Pressing \"apply\" will restart the network layer. Otherwise, SFLPhone "
+#~ "would have to be restarted."
 #~ msgstr ""
-#~ "Premendo il tasto \"Applica\" il modulo di rete verrà  riavviato. In "
+#~ "Premendo il tasto \"Applica\" il modulo di rete verrà riavviato. In "
 #~ "alternativa occorrerebbe riavviare SFLphone."
 
 #~ msgid "Creation of account has failed for the reason"
-#~ msgstr "La creazione dell'account è fallita per il seguente motivo"
+#~ msgstr "La creazione dell'accound è fallita per il seguente motivo"
 
 #~ msgid "Account creation wizard"
 #~ msgstr "Procedura guidata creazione account"
 
 #~ msgctxt "NAME OF TRANSLATORS"
 #~ msgid "Your names"
-#~ msgstr "I tuoi nomi"
+#~ msgstr ""
 #~ ",Launchpad Contributions:,Maurizio Porrato,Maxime Chambreuil, ,Launchpad "
 #~ "Contributions:,Maurizio Porrato,Maxime Chambreuil, ,Launchpad "
 #~ "Contributions:,Maurizio Porrato,Maxime Chambreuil"
 
 #~ msgctxt "EMAIL OF TRANSLATORS"
 #~ msgid "Your emails"
-#~ msgstr "I tuoi indirizzi email"
-#~ ",,,maxime.chambreuil@gmail.com,,,,maxime.chambreuil@gmail.com,,,,maxime.chamb"
-#~ "reuil@gmail.com"
+#~ msgstr ""
+#~ ",,,maxime.chambreuil@gmail.com,,,,maxime.chambreuil@gmail.com,,,,maxime."
+#~ "chambreuil@gmail.com"
diff --git a/sflphone-client-gnome/po/pt_BR/pt_BR.po b/sflphone-client-gnome/po/pt_BR/pt_BR.po
index 34f94f3dfd..0a5429e6c0 100644
--- a/sflphone-client-gnome/po/pt_BR/pt_BR.po
+++ b/sflphone-client-gnome/po/pt_BR/pt_BR.po
@@ -7,15 +7,15 @@ msgid ""
 msgstr ""
 "Project-Id-Version: sflphone\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-14 11:18-0400\n"
-"PO-Revision-Date: 2009-10-15 18:00+0000\n"
+"POT-Creation-Date: 2009-12-03 10:22-0500\n"
+"PO-Revision-Date: 2009-10-26 20:46+0000\n"
 "Last-Translator: kalib <kalibslack@gmail.com>\n"
 "Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Launchpad-Export-Date: 2009-10-26 15:48+0000\n"
+"X-Launchpad-Export-Date: 2009-12-03 15:32+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
 #: ../sflphone-client-gnome/src/accountlist.c:175
@@ -60,25 +60,15 @@ msgstr "Servidor stun inválido"
 msgid "Invalid"
 msgstr "Inválido"
 
-#: ../sflphone-client-gnome/src/actions.c:54
-#: ../sflphone-client-gnome/src/sflnotify.c:94
-#, c-format
-msgid "%d voice mail"
-msgid_plural "%d voice mails"
-msgstr[0] "%d mensagem de voz"
-msgstr[1] "%d mensagens de voz"
-
-#: ../sflphone-client-gnome/src/actions.c:83
-#: ../sflphone-client-gnome/src/actions.c:919
-#: ../sflphone-client-gnome/src/actions.c:926
+#: ../sflphone-client-gnome/src/actions.c:98
 msgid "Using account"
 msgstr "Utilizando conta"
 
-#: ../sflphone-client-gnome/src/actions.c:89
+#: ../sflphone-client-gnome/src/actions.c:104
 msgid "No registered accounts"
 msgstr "Sem contas registradas"
 
-#: ../sflphone-client-gnome/src/actions.c:268
+#: ../sflphone-client-gnome/src/actions.c:285
 msgid ""
 "Unable to connect to the SFLphone server.\n"
 "Make sure the daemon is running."
@@ -86,22 +76,18 @@ msgstr ""
 "Incapaz de conectar ao servidor SFLphone.\n"
 "Tenha certeza de que o daemon está rodando."
 
-#: ../sflphone-client-gnome/src/actions.c:913
-#, c-format
-msgid "IP call - %s"
-msgstr "Ligação IP - %s"
-
-#: ../sflphone-client-gnome/src/actions.c:922
-msgid "Codec"
-msgstr "Codec"
+#: ../sflphone-client-gnome/src/actions.c:589
+#: ../sflphone-client-gnome/src/actions.c:911
+msgid "Direct SIP call"
+msgstr "Ligações IP diretas"
 
-#: ../sflphone-client-gnome/src/actions.c:1119
+#: ../sflphone-client-gnome/src/actions.c:1103
 #, c-format
 msgid ""
 "<b>Error: No audio codecs found.\n"
 "\n"
-"</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
-"<b>.sflphone</b> directory in your home( <i>%s</i> )"
+"</b> SFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</"
+"b> directory in your home( <i>%s</i> )"
 msgstr ""
 "<b>Erro: Não foram encontrados codecs de áudio.\n"
 "\n"
@@ -150,31 +136,31 @@ msgstr "Existem ligações em progresso"
 msgid "Do you still want to quit?"
 msgstr "Você ainda deseja sair?"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:299
+#: ../sflphone-client-gnome/src/mainwindow.c:298
 msgid "SFLphone Error"
 msgstr "Erro no SFLphone"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:391
+#: ../sflphone-client-gnome/src/mainwindow.c:392
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
 msgstr "ZRTP não é suportado pelo peer %s\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:392
+#: ../sflphone-client-gnome/src/mainwindow.c:393
 msgid "Secure Communication Unavailable"
 msgstr "Comunicação Segura Indisponível"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:393
-#: ../sflphone-client-gnome/src/mainwindow.c:415
+#: ../sflphone-client-gnome/src/mainwindow.c:394
+#: ../sflphone-client-gnome/src/mainwindow.c:416
 msgid "Continue"
 msgstr "Continuar"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:394
-#: ../sflphone-client-gnome/src/mainwindow.c:416
-#: ../sflphone-client-gnome/src/mainwindow.c:430
+#: ../sflphone-client-gnome/src/mainwindow.c:395
+#: ../sflphone-client-gnome/src/mainwindow.c:417
+#: ../sflphone-client-gnome/src/mainwindow.c:431
 msgid "Stop Call"
 msgstr "Finalizar Chamada"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:413
+#: ../sflphone-client-gnome/src/mainwindow.c:414
 #, c-format
 msgid ""
 "A %s error forced the call with %s to fall under unencrypted mode.\n"
@@ -183,11 +169,11 @@ msgstr ""
 "Um erro %s forçou a ligação com %s a mudar para um modo não encriptado.\n"
 "Motivo exato: %s\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:414
+#: ../sflphone-client-gnome/src/mainwindow.c:415
 msgid "ZRTP negotiation failed"
 msgstr "Negociação ZRTP falhou"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:427
+#: ../sflphone-client-gnome/src/mainwindow.c:428
 #, c-format
 msgid ""
 "%s wants to stop using secure communication. Confirm will resume "
@@ -196,11 +182,11 @@ msgstr ""
 "%s deseja finalizar a utilização de comunicação segura. A confirmação irá "
 "retomar sem SRTP.\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:428
+#: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm Go Clear"
 msgstr "Confirmar Vá Limpar"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:429
+#: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Confirm"
 msgstr "Confirmar"
 
@@ -215,6 +201,13 @@ msgstr "%s conta : %s"
 msgid "<i>From</i> %s"
 msgstr "<i>De</i> %s"
 
+#: ../sflphone-client-gnome/src/sflnotify.c:94
+#, c-format
+msgid "%d voice mail"
+msgid_plural "%d voice mails"
+msgstr[0] "%d mensagem de voz"
+msgstr[1] "%d mensagens de voz"
+
 #: ../sflphone-client-gnome/src/sflnotify.c:111
 #, c-format
 msgid "Calling with %s account <i>%s</i>"
@@ -264,15 +257,15 @@ msgstr "Volume dos auto-falantes"
 msgid "Mic volume"
 msgstr "Volume do microfone"
 
-#: ../sflphone-client-gnome/src/statusicon.c:91
+#: ../sflphone-client-gnome/src/statusicon.c:96
 msgid "_Show main window"
 msgstr "_Apresentar janela principal"
 
-#: ../sflphone-client-gnome/src/statusicon.c:126
+#: ../sflphone-client-gnome/src/statusicon.c:131
 msgid "SFLphone"
 msgstr "SFLphone"
 
-#: ../sflphone-client-gnome/src/statusicon.c:127
+#: ../sflphone-client-gnome/src/statusicon.c:132
 #, c-format
 msgid "%i account configured"
 msgid_plural "%i accounts configured"
@@ -280,202 +273,397 @@ msgstr[0] "%i conta configurada"
 msgstr[1] "%i contas configuradas"
 
 #: ../sflphone-client-gnome/src/toolbar.c:38
-#: ../sflphone-client-gnome/src/uimanager.c:750
+#: ../sflphone-client-gnome/src/uimanager.c:693
+#: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Voicemail"
 msgstr "Correio de voz"
 
-#: ../sflphone-client-gnome/src/uimanager.c:403
+#: ../sflphone-client-gnome/src/uimanager.c:117
+msgid "No address book selected"
+msgstr "Catálogo de endereços"
+
+#: ../sflphone-client-gnome/src/uimanager.c:137
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "Address book"
+msgstr "Catálogo de endereços"
+
+#: ../sflphone-client-gnome/src/uimanager.c:279
+msgid "Voicemail (%i)"
+msgstr "Correio de voz (%i)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:342
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
 msgstr "SFLphone é um cliente VoIP compatível com os protocolos SIP e IAX2."
 
-#: ../sflphone-client-gnome/src/uimanager.c:406
+#: ../sflphone-client-gnome/src/uimanager.c:345
 msgid "About SFLphone"
 msgstr "Sobre o SFLphone"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1028
+#: ../sflphone-client-gnome/src/uimanager.c:719
+msgid "Call"
+msgstr "_Chamar"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+#: ../sflphone-client-gnome/src/uimanager.c:1184
+msgid "_New call"
+msgstr "_Nova ligação"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+msgid "Place a new call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:721
+#: ../sflphone-client-gnome/src/uimanager.c:979
 msgid "_Pick up"
 msgstr "_Atender"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1040
-#: ../sflphone-client-gnome/src/uimanager.c:1081
+#: ../sflphone-client-gnome/src/uimanager.c:721
+msgid "Answer the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:722
+#: ../sflphone-client-gnome/src/uimanager.c:991
+#: ../sflphone-client-gnome/src/uimanager.c:1032
 msgid "_Hang up"
 msgstr "_Desligar"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1052
-#: ../sflphone-client-gnome/src/uimanager.c:1093
-msgid "On _Hold"
+#: ../sflphone-client-gnome/src/uimanager.c:722
+msgid "Finish the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "O_n hold"
 msgstr "Em _Espera"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1064
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "Place the call on hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "O_ff hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "Place the call off hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:725
+#: ../sflphone-client-gnome/src/uimanager.c:1015
 msgid "_Record"
 msgstr "_Gravar"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1154
+#: ../sflphone-client-gnome/src/uimanager.c:725
+msgid "Record the current conversation"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Configuration _Assistant"
+msgstr "Arquivo de Configuração"
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Run the configuration assistant"
+msgstr "Erro de configuração no stun"
+
+#: ../sflphone-client-gnome/src/uimanager.c:727
+msgid "Call your voicemail"
+msgstr "%d mensagem de voz"
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "_Close"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "Minimize to system tray"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "_Quit"
+msgstr "_Editar"
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "Quit the program"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:732
+msgid "_Edit"
+msgstr "_Editar"
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "_Copy"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "Copy the selection"
+msgstr "Remover a conta selecionada"
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "_Paste"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "Paste the clipboard"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear _history"
+msgstr "Limpar _histórico"
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear the call history"
+msgstr "Limpar histórico"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "_Accounts"
+msgstr "_Contas"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "Edit your accounts"
+msgstr "Conta atual"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "_Preferences"
+msgstr "Preferências"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "Change your preferences"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:740
+msgid "_View"
+msgstr "_Exibir"
+
+#: ../sflphone-client-gnome/src/uimanager.c:743
+msgid "_Help"
+msgstr "_Ajuda"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Contents"
+msgstr "Continuar"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Open the manual"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:745
+msgid "About this application"
+msgstr "Autenticação"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "_Transfer"
+msgstr "Transferir"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "Transfer the call"
+msgstr "Transfirir para: "
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "_Show toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "Show the toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "_Dialpad"
+msgstr "Desabilitado"
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "Show the dialpad"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "_Volume controls"
+msgstr "_Controle de Volumes"
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "Show the volume controls"
+msgstr "Exibir controles de volume"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "_History"
+msgstr "Histórico"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "Calls history"
+msgstr "Histórico de chamadas"
+
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "_Address book"
+msgstr "Catálogo de endereços"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1003
+#: ../sflphone-client-gnome/src/uimanager.c:1044
+msgid "On _Hold"
+msgstr "Em _Espera"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1107
 msgid "_Call back"
 msgstr "_Ligar de volta"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1226
-msgid "_New call"
-msgstr "_Nova ligação"
-
-#: ../sflphone-client-gnome/src/uimanager.c:1300
+#: ../sflphone-client-gnome/src/uimanager.c:1258
 msgid "Edit phone number"
 msgstr "Editar número de telefone"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1311
+#: ../sflphone-client-gnome/src/uimanager.c:1269
 msgid "Edit the phone number before making a call"
 msgstr "Edite o número de telefone antes de fazer uma ligação"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:164
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:180
 msgid "Account Parameters"
 msgstr "Parâmetros de conta"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:173
-#: ../sflphone-client-gnome/src/config/assistant.c:294
-#: ../sflphone-client-gnome/src/config/assistant.c:402
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/assistant.c:314
+#: ../sflphone-client-gnome/src/config/assistant.c:427
 msgid "_Alias"
 msgstr "_Apelido"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:181
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:197
 msgid "_Protocol"
 msgstr "_Protocolo"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:199
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:215
 msgid "Unknown"
 msgstr "Desconhecido"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:209
-#: ../sflphone-client-gnome/src/config/assistant.c:302
-#: ../sflphone-client-gnome/src/config/assistant.c:410
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
+#: ../sflphone-client-gnome/src/config/assistant.c:322
+#: ../sflphone-client-gnome/src/config/assistant.c:435
 msgid "_Host name"
 msgstr "_Nome do host"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:217
-#: ../sflphone-client-gnome/src/config/assistant.c:310
-#: ../sflphone-client-gnome/src/config/assistant.c:418
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:233
+#: ../sflphone-client-gnome/src/config/assistant.c:330
+#: ../sflphone-client-gnome/src/config/assistant.c:443
 msgid "_User name"
 msgstr "_Nome do usuário"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:234
-#: ../sflphone-client-gnome/src/config/assistant.c:326
-#: ../sflphone-client-gnome/src/config/assistant.c:433
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:346
+#: ../sflphone-client-gnome/src/config/assistant.c:458
 msgid "_Password"
 msgstr "_Senha"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:254
-#: ../sflphone-client-gnome/src/config/assistant.c:344
-#: ../sflphone-client-gnome/src/config/assistant.c:449
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:270
+#: ../sflphone-client-gnome/src/config/assistant.c:363
+#: ../sflphone-client-gnome/src/config/assistant.c:473
+msgid "Show password"
+msgstr "Senha"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:274
+#: ../sflphone-client-gnome/src/config/assistant.c:368
+#: ../sflphone-client-gnome/src/config/assistant.c:478
 msgid "_Voicemail number"
 msgstr "_Senha da caixa postal de voz"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:340
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:361
 msgid "Authentication"
 msgstr "Autenticação"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:362
 msgid "Secret"
 msgstr "Segredo"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:605
 msgid "Credential"
 msgstr "Credencial"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:501
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:640
 msgid "Authentication name"
 msgstr "Nome de autenticação"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:512
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:651
 msgid "Password"
 msgstr "Senha"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:535
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:909
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:201
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1056
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:321
 msgid "Security"
 msgstr "Segurança"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:547
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:213
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:333
 msgid "Use TLS transport (sips)"
 msgstr "Use transporte TLS (sips)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:552
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:218
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:338
 msgid "SRTP key exchange"
 msgstr "Troca de chave SRTP"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:699
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
 msgid "Disabled"
 msgstr "Desabilitado"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:795
 msgid "Registration"
 msgstr "Registro"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:800
 msgid "Registration expire"
 msgstr "Registro expira"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:809
 msgid "_Comply with RFC 3263"
 msgstr "_De acordo com RFC 3263"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
-msgid "Network"
-msgstr "Rede"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:816
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:234
+msgid "Network Interface"
+msgstr "A rede está inacessível"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:830
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:249
 msgid "Local address"
 msgstr "Endereço local"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:301
 msgid "Local port"
 msgstr "Porta local"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:752
-msgid "Set published address and port:"
-msgstr "Indique endereço e portas publicadas"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:893
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:928
+msgid "Published address"
+msgstr "Endereço publicado"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:756
-msgid "Using STUN "
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+msgid "Using STUN"
 msgstr "Utilizando STUN "
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:761
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:906
+msgid "STUN server URL"
+msgstr "URL do servidor STUN"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:914
 msgid "Same as local parameters"
 msgstr "Igual aos parâmetros locais"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:764
-msgid "Manually"
-msgstr "Manualmente"
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:769
-msgid "Published address"
-msgstr "Endereço publicado"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:917
+msgid "Set published address and port:"
+msgstr "Indique endereço e portas publicadas"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:777
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:936
 msgid "Published port"
 msgstr "Porta publicada"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:785
-msgid "STUN server URL"
-msgstr "URL do servidor STUN"
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1027
 msgid "Account settings"
 msgstr "Configurações da conta"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1046
 msgid "Basic"
 msgstr "Básico"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:904
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1051
 msgid "Advanced"
 msgstr "Avançado"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:169
-msgid "Server returned \""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:164
+msgid "Server returned \"%s\" (%d)"
 msgstr "Servidor retornou \""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
@@ -494,32 +682,18 @@ msgstr "Contas"
 msgid "Configured Accounts"
 msgstr "Contas Configuradas"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
-msgid "There "
-msgstr "Ali "
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "is "
-msgstr "está "
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "are "
-msgstr "estão "
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:501
+msgid "There is %d active account"
+msgid_plural "There are %d active accounts"
+msgstr[0] " conta ativa"
+msgstr[1] " conta ativa"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
-msgid " active account"
-msgstr " conta ativa"
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
-msgid "s"
-msgstr "s"
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:507
 msgid "You have no active account"
 msgstr "Você não possui uma conta ativa"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:556
 msgid "General"
 msgstr "Geral"
 
@@ -564,16 +738,16 @@ msgid "Select which Evolution address books to use"
 msgstr "Selecione qual catálogo de endereços do Evolution deseja utilizar"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:404
-#: ../sflphone-client-gnome/src/config/audioconf.c:578
+#: ../sflphone-client-gnome/src/config/audioconf.c:577
 msgid "Name"
 msgstr "Nome"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:69
+#: ../sflphone-client-gnome/src/config/assistant.c:75
 #, c-format
 msgid "This assistant is now finished."
 msgstr "Este assistente está finalizado."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:71
+#: ../sflphone-client-gnome/src/config/assistant.c:77
 msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
@@ -581,213 +755,208 @@ msgstr ""
 "Você pode a qualquer momento checar seu estado de registro ou modificar seus "
 "parâmetros de conta na janela Opções/Contas."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:74
+#: ../sflphone-client-gnome/src/config/assistant.c:80
 msgid "Alias"
 msgstr "Apelido"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:78
+#: ../sflphone-client-gnome/src/config/assistant.c:84
 msgid "Server"
 msgstr "Servidor"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:82
+#: ../sflphone-client-gnome/src/config/assistant.c:88
 msgid "Username"
 msgstr "Nome de usuário"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:86
+#: ../sflphone-client-gnome/src/config/assistant.c:92
 msgid "Security: "
 msgstr "Segurança: "
 
-#: ../sflphone-client-gnome/src/config/assistant.c:88
+#: ../sflphone-client-gnome/src/config/assistant.c:94
 msgid "SRTP/ZRTP draft-zimmermann"
 msgstr "SRTP/ZRTP rascunho-zimmermann"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:90
-#: ../sflphone-client-gnome/src/config/assistant.c:182
+#: ../sflphone-client-gnome/src/config/assistant.c:96
 msgid "None"
 msgstr "Nenhum"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:210
+#: ../sflphone-client-gnome/src/config/assistant.c:229
 msgid "SFLphone account creation wizard"
 msgstr "Assistente de criação de contas do SFLphone"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:236
+#: ../sflphone-client-gnome/src/config/assistant.c:255
 msgid "Welcome to the Account creation wizard of SFLphone!"
 msgstr "Bem vindo ao assistente de criação de contas do SFLphone!"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:237
+#: ../sflphone-client-gnome/src/config/assistant.c:256
 msgid "This installation wizard will help you configure an account."
 msgstr "Este assistente de instalação irá lhe ajudar a configurar uma conta."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "VoIP Protocols"
 msgstr "Protocolos VoIP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "Select an account type"
 msgstr "Selecione um tipo de conta"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:253
+#: ../sflphone-client-gnome/src/config/assistant.c:272
 msgid "SIP (Session Initiation Protocol)"
 msgstr "SIP (Session Initiation Protocol)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:255
+#: ../sflphone-client-gnome/src/config/assistant.c:274
 msgid "IAX2 (InterAsterix Exchange)"
 msgstr "IAX2 (InterAsterix Exchange)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Account"
 msgstr "Conta"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Please select one of the following options"
 msgstr "Por favor, selecione uma das seguintes opções"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:271
+#: ../sflphone-client-gnome/src/config/assistant.c:290
 msgid "Create a free SIP/IAX2 account on sflphone.org"
 msgstr "Criar uma conta gratuita SIP/IAX2 em sflphone.org"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:273
+#: ../sflphone-client-gnome/src/config/assistant.c:292
 msgid "Register an existing SIP or IAX2 account"
 msgstr "Registrar uma conta SIP ou IAX2 existente"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
+#: ../sflphone-client-gnome/src/config/assistant.c:306
 msgid "SIP account settings"
 msgstr "Configurações de conta SIP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:306
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "Please fill the following information"
 msgstr "Por favor, preencha as informações a seguir"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:352
-#: ../sflphone-client-gnome/src/config/assistant.c:381
+#: ../sflphone-client-gnome/src/config/assistant.c:376
+#: ../sflphone-client-gnome/src/config/assistant.c:405
 msgid "Secure communications with _ZRTP"
 msgstr "Comunicações seguras com _ZRTP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "Optional email address"
 msgstr "Endereço de e-mail opcional"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "This email address will be used to send your voicemail messages."
 msgstr ""
 "Este endereço de email será utilizado para enviar as mensagens de voz em sua "
 "caixa postal."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:373
+#: ../sflphone-client-gnome/src/config/assistant.c:397
 msgid "_Email address"
 msgstr "_endereço de email"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "IAX2 account settings"
 msgstr "Configurações de conta IAX2"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "Network Address Translation (NAT)"
 msgstr "Network Address Translation (NAT)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "You should probably enable this if you are behind a firewall."
 msgstr ""
 "Você provavelmente precise habilitar isto se estiver por trás de um firewall."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:476
+#: ../sflphone-client-gnome/src/config/assistant.c:505
 msgid "E_nable STUN"
 msgstr "Ha_bilitar STUN"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:483
+#: ../sflphone-client-gnome/src/config/assistant.c:512
 msgid "_STUN server"
 msgstr "_Servidor STUN"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Account Registration"
 msgstr "Registro de conta"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Congratulations!"
 msgstr "Parabéns!"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:583
+#: ../sflphone-client-gnome/src/config/audioconf.c:582
 msgid "Frequency"
 msgstr "Frequência"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:588
+#: ../sflphone-client-gnome/src/config/audioconf.c:587
 msgid "Bitrate"
 msgstr "Taxa de bits"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:593
+#: ../sflphone-client-gnome/src/config/audioconf.c:592
 msgid "Bandwidth"
 msgstr "Largura de banda"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:673
+#: ../sflphone-client-gnome/src/config/audioconf.c:670
 msgid "ALSA plugin"
 msgstr "Plugin ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:695
+#: ../sflphone-client-gnome/src/config/audioconf.c:692
 msgid "Output"
 msgstr "Saída"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:717
+#: ../sflphone-client-gnome/src/config/audioconf.c:714
 msgid "Input"
 msgstr "Entrada"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:752
+#: ../sflphone-client-gnome/src/config/audioconf.c:749
 msgid "_Voice Activity Detection"
 msgstr "_Detecção de atividade de voz"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:762
+#: ../sflphone-client-gnome/src/config/audioconf.c:759
 msgid "_Noise Reduction (Narrow-Band Companding)"
 msgstr "_Redução de ruído (Utilização de banda-estreita)"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:798
+#: ../sflphone-client-gnome/src/config/audioconf.c:800
 msgid "Sound Manager"
 msgstr "Gerenciador de Som"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:807
+#: ../sflphone-client-gnome/src/config/audioconf.c:809
 msgid "_Pulseaudio"
 msgstr "_Pulseaudio"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:811
+#: ../sflphone-client-gnome/src/config/audioconf.c:813
 msgid "_ALSA"
 msgstr "_ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:816
-msgid "_Mute other applications during a call"
-msgstr "_Silenciar outras aplicações durante uma ligação"
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:823
+#: ../sflphone-client-gnome/src/config/audioconf.c:819
 msgid "ALSA settings"
 msgstr "Configurações do ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:840
+#: ../sflphone-client-gnome/src/config/audioconf.c:836
 msgid "Codecs"
 msgstr "Codecs"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:869
+#: ../sflphone-client-gnome/src/config/audioconf.c:865
 msgid "Recordings"
 msgstr "Gravações"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:873
+#: ../sflphone-client-gnome/src/config/audioconf.c:869
 msgid "Destination folder"
 msgstr "Pasta de destino"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:877
+#: ../sflphone-client-gnome/src/config/audioconf.c:873
 msgid "Select a folder"
 msgstr "Selecione uma pasta"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:883
+#: ../sflphone-client-gnome/src/config/audioconf.c:879
 msgid "Ringtones"
 msgstr "Ringtones"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:889
+#: ../sflphone-client-gnome/src/config/audioconf.c:885
 msgid "_Enable ringtones"
 msgstr "_Habilitar ringtones"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:895
+#: ../sflphone-client-gnome/src/config/audioconf.c:891
 msgid "Choose a ringtone"
 msgstr "Escolha um ringtone"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:901
+#: ../sflphone-client-gnome/src/config/audioconf.c:897
 msgid "Audio Files"
 msgstr "Arquivos de Áudio"
 
@@ -824,7 +993,7 @@ msgstr "Reescrevendo número do telefone"
 msgid "_Prefix dialed numbers with"
 msgstr "_Prefixo de números discados com"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:195
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:225
 msgid ""
 "This profile is used when you want to reach a remote peer simply by typing a "
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
@@ -835,79 +1004,59 @@ msgstr ""
 "configurações que você definir aqui também serão utilizadas se nenhuma conta "
 "puder ser combinada a uma chamada de entrada ou de saída."
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:274
-msgid "SIP Port"
-msgstr "Porta SIP"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:281
-msgid "UDP Transport"
-msgstr "Transporte UDP"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:319
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:440
 msgid "Desktop Notifications"
 msgstr "Notificações de Desktop"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:323
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:444
 msgid "_Enable notifications"
 msgstr "_Habilitar notificações"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:329
-msgid "Enable voicemail _notifications"
-msgstr "Habilitar _notificações de correio de voz"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:341
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:450
 msgid "System Tray Icon"
 msgstr "Ícone da bandeja do sistema"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
 msgid "_Popup main window on incoming call"
 msgstr "_Popup na janela principal ao receber ligação"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:349
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:457
 msgid "Ne_ver popup main window"
 msgstr "Nu_nca apresentar popup na janela principal"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:353
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
 msgid "Hide SFLphone window on _startup"
 msgstr "Esconder o SFLphone na _inicialização"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:359
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:469
 msgid "Calls History"
 msgstr "Histórico de Chamadas"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:362
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:472
 msgid "_Keep my history for at least"
 msgstr "_Manter meu histórico por pelo ao menos"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:373
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:483
 msgid "days"
 msgstr "dias"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
-msgid "Configuration File"
-msgstr "Arquivo de Configuração"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
-msgid "Store SIP credentials as MD5 hash"
-msgstr "Armazenar as credenciais SIP como hash MD5"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:423
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:536
 msgid "Preferences"
 msgstr "Preferências"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:448
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:561
 msgid "Audio"
 msgstr "Áudio"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:566
 msgid "Address Book"
 msgstr "Catálogo de endereços"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:458
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:571
 msgid "Hooks"
 msgstr "Ganchos"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:468
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:581
 msgid "Direct IP calls"
 msgstr "Ligações IP diretas"
 
@@ -915,11 +1064,11 @@ msgstr "Ligações IP diretas"
 msgid "Advanced options for TLS"
 msgstr "Opções avançadas para o TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:56
 msgid "TLS transport"
 msgstr "Transporte TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:60
 msgid ""
 "TLS transport can be used along with UDP for those calls that would\n"
 "require secure sip transactions (aka SIPS). You can configure a different\n"
@@ -934,55 +1083,55 @@ msgstr ""
 "funcionar em uma\n"
 "porta dedicada, uma diferente da outra\n"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:103
 msgid "Certificate of Authority list"
 msgstr "Certificado da lista de Autoridades"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:107
 msgid "Choose a CA list file (optional)"
 msgstr "Escolha um arquivo de lista CA (opcional)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:115
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:131
 msgid "Public endpoint certificate file"
 msgstr "Arquivo certificado endpoint público"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:119
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:135
 msgid "Choose a public endpoint certificate (optional)"
 msgstr "Escolha um certificado endpoint público (opcional)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:134
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:159
 msgid "Choose a private key file (optional)"
 msgstr "Escolha um arquivo de chave privada (opcional)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:145
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:181
 msgid "Password for the private key"
 msgstr "Senha para a chave privada"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:168
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:204
 msgid "TLS protocol method"
 msgstr "Método do protocolo TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:202
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:238
 msgid "TLS cipher list"
 msgstr "Lista de cifras TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:211
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:247
 msgid "Server name instance for outgoing TLS connection"
 msgstr "Instância de nome do servidor para saída da conexão TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:219
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:255
 msgid "Negotiation timeout (sec:msec)"
 msgstr "Tempo de negociação expirado (seg:mseg)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:236
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:272
 msgid "Verify incoming certificates, as a server"
 msgstr "Verificar os certificados de entrada, como um servidor"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:242
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:278
 msgid "Verify certificates from answer, as a client"
 msgstr "Verificar certificados de resposta, como um cliente"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:248
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:284
 msgid "Require certificate for incoming tls connections"
 msgstr "Requer certificado para conexões tls entrantes"
 
@@ -990,51 +1139,87 @@ msgstr "Requer certificado para conexões tls entrantes"
 msgid "ZRTP Options"
 msgstr "Opções ZRTP"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:68
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:69
 msgid "Send Hello Hash in S_DP"
 msgstr "Enviar um Hash Olá no S_DP"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:74
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:75
 msgid "Ask User to Confirm SAS"
 msgstr "Pergunta ao Usuário para Confirmar SAS"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:80
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:81
 msgid "_Warn if ZRTP not supported"
 msgstr "_Alerta se o ZRTP não é suportado"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:86
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:87
 msgid "Display SAS once for hold events"
 msgstr "Apresenta o SAS uma vez para realizar eventos"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:56
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:58
 msgid "Search all"
 msgstr "Buscar todos"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:57
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:70
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:82
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:94
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:59
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:72
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:84
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:96
 msgid "Click here to change the search type"
 msgstr "Clique aqui para alterar o tipo de pesquisa"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:69
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:71
 msgid "Search by missed call"
 msgstr "Buscar por ligações perdidas"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:81
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:83
 msgid "Search by incoming call"
 msgstr "Buscar por ligações recebidas"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:93
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:95
 msgid "Search by outgoing call"
 msgstr "Buscar por ligações feitas"
 
+#~ msgid "IP call - %s"
+#~ msgstr "Ligação IP - %s"
+
+#~ msgid "Codec"
+#~ msgstr "Codec"
+
+#~ msgid "Network"
+#~ msgstr "Rede"
+
+#~ msgid "Manually"
+#~ msgstr "Manualmente"
+
+#~ msgid "There "
+#~ msgstr "Ali "
+
+#~ msgid "is "
+#~ msgstr "está "
+
+#~ msgid "are "
+#~ msgstr "estão "
+
+#~ msgid "s"
+#~ msgstr "s"
+
+#~ msgid "_Mute other applications during a call"
+#~ msgstr "_Silenciar outras aplicações durante uma ligação"
+
+#~ msgid "SIP Port"
+#~ msgstr "Porta SIP"
+
+#~ msgid "UDP Transport"
+#~ msgstr "Transporte UDP"
+
+#~ msgid "Enable voicemail _notifications"
+#~ msgstr "Habilitar _notificações de correio de voz"
+
+#~ msgid "Store SIP credentials as MD5 hash"
+#~ msgstr "Armazenar as credenciais SIP como hash MD5"
+
 #~ msgid "Stun Server"
 #~ msgstr "Servidor STUN"
 
-#~ msgid "Call history"
-#~ msgstr "Histórico de chamadas"
-
 #~ msgid "(C) 2009 Savoir-faire Linux"
 #~ msgstr "(C) 2009 Savoir-faire Linux"
 
@@ -1050,15 +1235,9 @@ msgstr "Buscar por ligações feitas"
 #~ msgid "Record"
 #~ msgstr "Gravar"
 
-#~ msgid "Transfer"
-#~ msgstr "Transferir"
-
 #~ msgid "Hang up"
 #~ msgstr "Desligar"
 
-#~ msgid "Remove the selected account"
-#~ msgstr "Remover a conta selecionada"
-
 #~ msgid "Display"
 #~ msgstr "Exibir"
 
@@ -1095,18 +1274,6 @@ msgstr "Buscar por ligações feitas"
 #~ msgid "Enable notifications"
 #~ msgstr "Habilitar notificações"
 
-#~ msgid "History"
-#~ msgstr "Histórico"
-
-#~ msgid "_Help"
-#~ msgstr "_Ajuda"
-
-#~ msgid "_Call"
-#~ msgstr "_Chamar"
-
-#~ msgid "_Edit"
-#~ msgstr "_Editar"
-
 #~ msgid "NAT Traversal"
 #~ msgstr "NAT Traversal"
 
@@ -1126,15 +1293,12 @@ msgstr "Buscar por ligações feitas"
 #~ "After checking the settings you chose, click \"Finish\" to create the "
 #~ "account."
 #~ msgstr ""
-#~ "Após checar as configurações que deseja, clique em \"Finalizar\" para criar "
-#~ "a conta."
+#~ "Após checar as configurações que deseja, clique em \"Finalizar\" para "
+#~ "criar a conta."
 
 #~ msgid "Enable STUN"
 #~ msgstr "Habilitar STUN"
 
-#~ msgid "Transfer to : "
-#~ msgstr "Transfirir para: "
-
 #~ msgid "Default account"
 #~ msgstr "Conta padrão"
 
@@ -1144,12 +1308,6 @@ msgstr "Buscar por ligações feitas"
 #~ msgid "Main screen"
 #~ msgstr "Tela principal"
 
-#~ msgid "Address book"
-#~ msgstr "Catálogo de endereços"
-
-#~ msgid "Display volume controls"
-#~ msgstr "Exibir controles de volume"
-
 #~ msgid "Configure SFLphone"
 #~ msgstr "Configurar SFLphone"
 
@@ -1186,32 +1344,32 @@ msgstr "Buscar por ligações feitas"
 #~ 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."
+#~ "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 ""
 #~ "Por padrão, quando você realiza uma ligação, sflphone utilizará a prieira "
-#~ "conta desta lista que estiver \"registrada\". Modifique a ordem das contas "
-#~ "utilizando as setas de \"Cima\" e \"Baixo\". Habilite/desabilite as "
-#~ "marcando/desmarcando à esquerda de cada item. Adicione ou remova algumas com "
-#~ "os botões \"Adicionar\" e \"Remover\". Edite a conta selecionada com o "
-#~ "formulário à direita."
+#~ "conta desta lista que estiver \"registrada\". Modifique a ordem das "
+#~ "contas utilizando as setas de \"Cima\" e \"Baixo\". Habilite/desabilite "
+#~ "as marcando/desmarcando à esquerda de cada item. Adicione ou remova "
+#~ "algumas com os botões \"Adicionar\" e \"Remover\". Edite a conta "
+#~ "selecionada com o formulário à direita."
 
 #~ 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."
+#~ "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 ""
 #~ "Este botão irá remover a conta selecionada na lista apresentada. Tenha "
 #~ "certeza de que você não precisa mais dela. Se você acha que você irá "
 #~ "utilizar ela novamente, apenas desmarque a opção."
 
 #~ msgid ""
-#~ "This button enables you to initialize a new account. You will then be able "
-#~ "to edit it using the form on the right."
+#~ "This button enables you to initialize a new account. You will then be "
+#~ "able to edit it using the form on the right."
 #~ msgstr ""
-#~ "Este botão lhe permite iniciar uma nova conta. Em seguida você poderá edita-"
-#~ "la utilizando o formulário à direita."
+#~ "Este botão lhe permite iniciar uma nova conta. Em seguida você poderá "
+#~ "edita-la utilizando o formulário à direita."
 
 #~ msgid "Get this account down"
 #~ msgstr "Desabilitar esta conta"
@@ -1222,8 +1380,8 @@ msgstr "Buscar por ligações feitas"
 #~ "the \"Up\" and \"Down\" arrows."
 #~ msgstr ""
 #~ "Por padrão, quando você inicia uma ligação, o sflphone irá utilizar a "
-#~ "primeira conta desta lista que estiver \"registrada\". Modifique a ordem das "
-#~ "contas utilizando as setas para \"Cima\" e para \"Baixo\"."
+#~ "primeira conta desta lista que estiver \"registrada\". Modifique a ordem "
+#~ "das contas utilizando as setas para \"Cima\" e para \"Baixo\"."
 
 #~ msgid "Get this account up"
 #~ msgstr "Habilite esta conta"
@@ -1294,9 +1452,6 @@ msgstr "Buscar por ligações feitas"
 #~ msgid "Trigger on specific SIP header"
 #~ msgstr "Gancho no cabeçalho SIP específico"
 
-#~ msgid "Clear history"
-#~ msgstr "Limpar histórico"
-
 #~ msgid "Attention:number of results exceeds max displayed."
 #~ msgstr "Atencão:número de resultados excede o máximo de exibição"
 
@@ -1306,18 +1461,6 @@ msgstr "Buscar por ligações feitas"
 #~ msgid "_Account creation wizard"
 #~ msgstr "_Assistante de criação de conta"
 
-#~ msgid "_View"
-#~ msgstr "_Exibir"
-
-#~ msgid "_Accounts"
-#~ msgstr "_Contas"
-
-#~ msgid "Clear _history"
-#~ msgstr "Limpar _histórico"
-
-#~ msgid "_Volume Controls"
-#~ msgstr "_Controle de Volumes"
-
 #~ msgid "_Enable this account"
 #~ msgstr "_Habilitar esta conta"
 
@@ -1333,11 +1476,11 @@ msgstr "Buscar por ligações feitas"
 #~ "sessões."
 
 #~ msgid ""
-#~ "Pressing \"apply\" will restart the network layer. Otherwise, SFLPhone would "
-#~ "have to be restarted."
+#~ "Pressing \"apply\" will restart the network layer. Otherwise, SFLPhone "
+#~ "would have to be restarted."
 #~ msgstr ""
-#~ "Pressionando \"aplicar\" a camada de rede será reiniciada. De outra forma o "
-#~ "SFKPhone teria que ser reiniciado."
+#~ "Pressionando \"aplicar\" a camada de rede será reiniciada. De outra forma "
+#~ "o SFKPhone teria que ser reiniciado."
 
 #~ msgid "PulseAudio sound server"
 #~ msgstr "Servidor de som PulseAudio"
@@ -1347,10 +1490,11 @@ msgstr "Buscar por ligações feitas"
 #~ msgstr ""
 #~ ",Launchpad Contributions:,Maxime Chambreuil,kalib, ,Launchpad "
 #~ "Contributions:,Maxime Chambreuil,kalib, ,Launchpad Contributions:,Maxime "
-#~ "Chambreuil,kalib"
+#~ "Chambreuil,kalib, ,Launchpad Contributions:,Maxime Chambreuil,kalib"
 
 #~ msgctxt "EMAIL OF TRANSLATORS"
 #~ msgid "Your emails"
 #~ msgstr ""
-#~ ",,maxime.chambreuil@gmail.com,kalibslack@gmail.com,,,maxime.chambreuil@gmail."
-#~ "com,kalibslack@gmail.com,,,maxime.chambreuil@gmail.com,kalibslack@gmail.com"
+#~ ",,maxime.chambreuil@gmail.com,kalibslack@gmail.com,,,maxime."
+#~ "chambreuil@gmail.com,kalibslack@gmail.com,,,maxime.chambreuil@gmail.com,"
+#~ "kalibslack@gmail.com,,,maxime.chambreuil@gmail.com,kalibslack@gmail.com"
diff --git a/sflphone-client-gnome/po/ru/ru.po b/sflphone-client-gnome/po/ru/ru.po
index 319dfce2c0..18045ccd61 100644
--- a/sflphone-client-gnome/po/ru/ru.po
+++ b/sflphone-client-gnome/po/ru/ru.po
@@ -7,16 +7,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: SFLphone 0.9.6\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-14 11:18-0400\n"
-"PO-Revision-Date: 2009-10-21 22:26+0000\n"
-"Last-Translator: Hussein Abdallah <Unknown>\n"
+"POT-Creation-Date: 2009-12-03 10:22-0500\n"
+"PO-Revision-Date: 2009-10-26 20:46+0000\n"
+"Last-Translator: Emmanuel Milou <emmanuel.milou@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"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
-"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Launchpad-Export-Date: 2009-10-26 15:48+0000\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Launchpad-Export-Date: 2009-12-03 15:32+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
 #: ../sflphone-client-gnome/src/accountlist.c:175
@@ -61,26 +61,15 @@ msgstr "Неверный сервер Stun"
 msgid "Invalid"
 msgstr "Неверный"
 
-#: ../sflphone-client-gnome/src/actions.c:54
-#: ../sflphone-client-gnome/src/sflnotify.c:94
-#, c-format
-msgid "%d voice mail"
-msgid_plural "%d voice mails"
-msgstr[0] "%d голосовое письмо"
-msgstr[1] "%d голосовые письма"
-msgstr[2] "%d голосовые письма"
-
-#: ../sflphone-client-gnome/src/actions.c:83
-#: ../sflphone-client-gnome/src/actions.c:919
-#: ../sflphone-client-gnome/src/actions.c:926
+#: ../sflphone-client-gnome/src/actions.c:98
 msgid "Using account"
 msgstr "Используя учетную запись"
 
-#: ../sflphone-client-gnome/src/actions.c:89
+#: ../sflphone-client-gnome/src/actions.c:104
 msgid "No registered accounts"
 msgstr "У вас нет зарегистрированных аккаунтов"
 
-#: ../sflphone-client-gnome/src/actions.c:268
+#: ../sflphone-client-gnome/src/actions.c:285
 msgid ""
 "Unable to connect to the SFLphone server.\n"
 "Make sure the daemon is running."
@@ -88,27 +77,23 @@ msgstr ""
 "Невозможно подключиться к SFLphone-серверу.\n"
 "Проверьте если демон работает."
 
-#: ../sflphone-client-gnome/src/actions.c:913
-#, c-format
-msgid "IP call - %s"
-msgstr "IP звонок  - %s"
-
-#: ../sflphone-client-gnome/src/actions.c:922
-msgid "Codec"
-msgstr "Codec"
+#: ../sflphone-client-gnome/src/actions.c:589
+#: ../sflphone-client-gnome/src/actions.c:911
+msgid "Direct SIP call"
+msgstr "Прямые IP-звонки"
 
-#: ../sflphone-client-gnome/src/actions.c:1119
+#: ../sflphone-client-gnome/src/actions.c:1103
 #, c-format
 msgid ""
 "<b>Error: No audio codecs found.\n"
 "\n"
-"</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
-"<b>.sflphone</b> directory in your home( <i>%s</i> )"
+"</b> SFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</"
+"b> directory in your home( <i>%s</i> )"
 msgstr ""
 "<b>Ошибка: звуковые кодеки не найдены.\n"
 "\n"
-"</b> Звуковые кодеки SFL должны находиться в <i>%s</i> или в "
-"<b>.sflphone</b> каталоге в вашем домашнем каталоге( <i>%s</i> )"
+"</b> Звуковые кодеки SFL должны находиться в <i>%s</i> или в <b>.sflphone</"
+"b> каталоге в вашем домашнем каталоге( <i>%s</i> )"
 
 #: ../sflphone-client-gnome/src/errors.c:29
 msgid ""
@@ -152,31 +137,31 @@ msgstr "Несколько звонков ещё не окончены."
 msgid "Do you still want to quit?"
 msgstr "Вы уверенны что хотите выйти?"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:299
+#: ../sflphone-client-gnome/src/mainwindow.c:298
 msgid "SFLphone Error"
 msgstr "Ошибка SFLphone."
 
-#: ../sflphone-client-gnome/src/mainwindow.c:391
+#: ../sflphone-client-gnome/src/mainwindow.c:392
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
 msgstr "не поддерживается устройством %s\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:392
+#: ../sflphone-client-gnome/src/mainwindow.c:393
 msgid "Secure Communication Unavailable"
 msgstr "Зашифрованная связь недоступна."
 
-#: ../sflphone-client-gnome/src/mainwindow.c:393
-#: ../sflphone-client-gnome/src/mainwindow.c:415
+#: ../sflphone-client-gnome/src/mainwindow.c:394
+#: ../sflphone-client-gnome/src/mainwindow.c:416
 msgid "Continue"
 msgstr "Продолжить"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:394
-#: ../sflphone-client-gnome/src/mainwindow.c:416
-#: ../sflphone-client-gnome/src/mainwindow.c:430
+#: ../sflphone-client-gnome/src/mainwindow.c:395
+#: ../sflphone-client-gnome/src/mainwindow.c:417
+#: ../sflphone-client-gnome/src/mainwindow.c:431
 msgid "Stop Call"
 msgstr "Закончить звонок"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:413
+#: ../sflphone-client-gnome/src/mainwindow.c:414
 #, c-format
 msgid ""
 "A %s error forced the call with %s to fall under unencrypted mode.\n"
@@ -185,11 +170,11 @@ msgstr ""
 "Из-за ошибки %s переговор с %s перейдëт в не зашифрованный режим.\n"
 "Точная причина: %s\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:414
+#: ../sflphone-client-gnome/src/mainwindow.c:415
 msgid "ZRTP negotiation failed"
 msgstr "Неудачный обмен информации ZRTP"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:427
+#: ../sflphone-client-gnome/src/mainwindow.c:428
 #, c-format
 msgid ""
 "%s wants to stop using secure communication. Confirm will resume "
@@ -198,11 +183,11 @@ msgstr ""
 "%s хочет остановить зашифрованную связь. В случае подтверждения переговор "
 "продолжится без SRTP.\n"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:428
+#: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm Go Clear"
 msgstr "Подтвердить переход на незашифрованную связь"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:429
+#: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Confirm"
 msgstr "Подтвердить"
 
@@ -217,6 +202,14 @@ msgstr "%s аккаунт: %s"
 msgid "<i>From</i> %s"
 msgstr "<i>От:</i> %s"
 
+#: ../sflphone-client-gnome/src/sflnotify.c:94
+#, c-format
+msgid "%d voice mail"
+msgid_plural "%d voice mails"
+msgstr[0] "%d голосовое письмо"
+msgstr[1] "%d голосовые письма"
+msgstr[2] "%d голосовые письма"
+
 #: ../sflphone-client-gnome/src/sflnotify.c:111
 #, c-format
 msgid "Calling with %s account <i>%s</i>"
@@ -266,15 +259,15 @@ msgstr "Громкость"
 msgid "Mic volume"
 msgstr "Громкость микрофона"
 
-#: ../sflphone-client-gnome/src/statusicon.c:91
+#: ../sflphone-client-gnome/src/statusicon.c:96
 msgid "_Show main window"
 msgstr "_Показать главное окно"
 
-#: ../sflphone-client-gnome/src/statusicon.c:126
+#: ../sflphone-client-gnome/src/statusicon.c:131
 msgid "SFLphone"
 msgstr "SFLphone"
 
-#: ../sflphone-client-gnome/src/statusicon.c:127
+#: ../sflphone-client-gnome/src/statusicon.c:132
 #, c-format
 msgid "%i account configured"
 msgid_plural "%i accounts configured"
@@ -283,202 +276,397 @@ msgstr[1] "%i аккаунтов настроены"
 msgstr[2] "%i аккаунтов настроены"
 
 #: ../sflphone-client-gnome/src/toolbar.c:38
-#: ../sflphone-client-gnome/src/uimanager.c:750
+#: ../sflphone-client-gnome/src/uimanager.c:693
+#: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Voicemail"
 msgstr "Автоответчик"
 
-#: ../sflphone-client-gnome/src/uimanager.c:403
+#: ../sflphone-client-gnome/src/uimanager.c:117
+msgid "No address book selected"
+msgstr "Адресная книга"
+
+#: ../sflphone-client-gnome/src/uimanager.c:137
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "Address book"
+msgstr "Адресная книга"
+
+#: ../sflphone-client-gnome/src/uimanager.c:279
+msgid "Voicemail (%i)"
+msgstr "Автоответчик"
+
+#: ../sflphone-client-gnome/src/uimanager.c:342
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
 msgstr "SFLphone - SIP и IAX2-совместимый VoIP-клиент"
 
-#: ../sflphone-client-gnome/src/uimanager.c:406
+#: ../sflphone-client-gnome/src/uimanager.c:345
 msgid "About SFLphone"
 msgstr "О SFLphone"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1028
+#: ../sflphone-client-gnome/src/uimanager.c:719
+msgid "Call"
+msgstr "_Звонок"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+#: ../sflphone-client-gnome/src/uimanager.c:1184
+msgid "_New call"
+msgstr "_Новый звонок"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+msgid "Place a new call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:721
+#: ../sflphone-client-gnome/src/uimanager.c:979
 msgid "_Pick up"
 msgstr "_Взять трубку"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1040
-#: ../sflphone-client-gnome/src/uimanager.c:1081
+#: ../sflphone-client-gnome/src/uimanager.c:721
+msgid "Answer the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:722
+#: ../sflphone-client-gnome/src/uimanager.c:991
+#: ../sflphone-client-gnome/src/uimanager.c:1032
 msgid "_Hang up"
 msgstr "_Положить трубку"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1052
-#: ../sflphone-client-gnome/src/uimanager.c:1093
-msgid "On _Hold"
+#: ../sflphone-client-gnome/src/uimanager.c:722
+msgid "Finish the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "O_n hold"
 msgstr "_Удержать звонок"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1064
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "Place the call on hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "O_ff hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "Place the call off hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:725
+#: ../sflphone-client-gnome/src/uimanager.c:1015
 msgid "_Record"
 msgstr "Записать"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1154
+#: ../sflphone-client-gnome/src/uimanager.c:725
+msgid "Record the current conversation"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Configuration _Assistant"
+msgstr "Файл конфигурации"
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Run the configuration assistant"
+msgstr "Ошибка конфигурации Stun"
+
+#: ../sflphone-client-gnome/src/uimanager.c:727
+msgid "Call your voicemail"
+msgstr "%d голосовое письмо"
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "_Close"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "Minimize to system tray"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "_Quit"
+msgstr "_Правка"
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "Quit the program"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:732
+msgid "_Edit"
+msgstr "_Правка"
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "_Copy"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "Copy the selection"
+msgstr "Удалить выбранную учетную запись"
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "_Paste"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "Paste the clipboard"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear _history"
+msgstr "_Стереть журнал"
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear the call history"
+msgstr "Очистить историю"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "_Accounts"
+msgstr "_Аккаунты"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "Edit your accounts"
+msgstr "Нынешний аккаунт"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "_Preferences"
+msgstr "Предпочтения"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "Change your preferences"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:740
+msgid "_View"
+msgstr "_Вид"
+
+#: ../sflphone-client-gnome/src/uimanager.c:743
+msgid "_Help"
+msgstr "_Помощь"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Contents"
+msgstr "Продолжить"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Open the manual"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:745
+msgid "About this application"
+msgstr "Идентификация"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "_Transfer"
+msgstr "Переслать звонок на другой номер"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "Transfer the call"
+msgstr "Передать : "
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "_Show toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "Show the toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "_Dialpad"
+msgstr "Отключен"
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "Show the dialpad"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "_Volume controls"
+msgstr "_Настройки громкости"
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "Show the volume controls"
+msgstr "_Настройки громкости"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "_History"
+msgstr "Журнал"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "Calls history"
+msgstr "История звонков"
+
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "_Address book"
+msgstr "Адресная книга"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1003
+#: ../sflphone-client-gnome/src/uimanager.c:1044
+msgid "On _Hold"
+msgstr "_Удержать звонок"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1107
 msgid "_Call back"
 msgstr "_Перезвонить"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1226
-msgid "_New call"
-msgstr "_Новый звонок"
-
-#: ../sflphone-client-gnome/src/uimanager.c:1300
+#: ../sflphone-client-gnome/src/uimanager.c:1258
 msgid "Edit phone number"
 msgstr "Мобильный телефон"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1311
+#: ../sflphone-client-gnome/src/uimanager.c:1269
 msgid "Edit the phone number before making a call"
 msgstr "Изменить номер телефона перед звонком"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:164
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:180
 msgid "Account Parameters"
 msgstr "Параметры учетной записи"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:173
-#: ../sflphone-client-gnome/src/config/assistant.c:294
-#: ../sflphone-client-gnome/src/config/assistant.c:402
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/assistant.c:314
+#: ../sflphone-client-gnome/src/config/assistant.c:427
 msgid "_Alias"
 msgstr "_Псевдоним"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:181
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:197
 msgid "_Protocol"
 msgstr "Пр_отокол"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:199
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:215
 msgid "Unknown"
 msgstr "Неизвестный"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:209
-#: ../sflphone-client-gnome/src/config/assistant.c:302
-#: ../sflphone-client-gnome/src/config/assistant.c:410
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
+#: ../sflphone-client-gnome/src/config/assistant.c:322
+#: ../sflphone-client-gnome/src/config/assistant.c:435
 msgid "_Host name"
 msgstr "Имя или IP-адрес _сервера"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:217
-#: ../sflphone-client-gnome/src/config/assistant.c:310
-#: ../sflphone-client-gnome/src/config/assistant.c:418
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:233
+#: ../sflphone-client-gnome/src/config/assistant.c:330
+#: ../sflphone-client-gnome/src/config/assistant.c:443
 msgid "_User name"
 msgstr "Имя или _номер пользователя"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:234
-#: ../sflphone-client-gnome/src/config/assistant.c:326
-#: ../sflphone-client-gnome/src/config/assistant.c:433
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:346
+#: ../sflphone-client-gnome/src/config/assistant.c:458
 msgid "_Password"
 msgstr "Па_роль"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:254
-#: ../sflphone-client-gnome/src/config/assistant.c:344
-#: ../sflphone-client-gnome/src/config/assistant.c:449
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:270
+#: ../sflphone-client-gnome/src/config/assistant.c:363
+#: ../sflphone-client-gnome/src/config/assistant.c:473
+msgid "Show password"
+msgstr "Пароль"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:274
+#: ../sflphone-client-gnome/src/config/assistant.c:368
+#: ../sflphone-client-gnome/src/config/assistant.c:478
 msgid "_Voicemail number"
 msgstr "Номер _автоответчика #"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:340
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:361
 msgid "Authentication"
 msgstr "Идентификация"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:362
 msgid "Secret"
 msgstr "Секретный"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:605
 msgid "Credential"
 msgstr "Параметры доступа"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:501
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:640
 msgid "Authentication name"
 msgstr "Имя для аутентификации"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:512
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:651
 msgid "Password"
 msgstr "Пароль"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:535
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:909
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:201
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1056
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:321
 msgid "Security"
 msgstr "Безопасность"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:547
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:213
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:333
 msgid "Use TLS transport (sips)"
 msgstr "Имя для аутентификации"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:552
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:218
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:338
 msgid "SRTP key exchange"
 msgstr "Обмена ключей SRTP"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:699
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
 msgid "Disabled"
 msgstr "Отключен"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:795
 msgid "Registration"
 msgstr "Регистрация"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:800
 msgid "Registration expire"
 msgstr "Истек срок регистрации"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:809
 msgid "_Comply with RFC 3263"
 msgstr "_Соотвествует RFC 3263"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
-msgid "Network"
-msgstr "Сеть"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:816
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:234
+msgid "Network Interface"
+msgstr "Сеть недоступна"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:830
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:249
 msgid "Local address"
 msgstr "Локальный адрес"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:301
 msgid "Local port"
 msgstr "Локальный порт"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:752
-msgid "Set published address and port:"
-msgstr "Настроить видимый адрес и порт :"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:893
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:928
+msgid "Published address"
+msgstr "издаваемый адрес"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:756
-msgid "Using STUN "
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+msgid "Using STUN"
 msgstr "Использует STUN "
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:761
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:906
+msgid "STUN server URL"
+msgstr "URL STUN-сервера"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:914
 msgid "Same as local parameters"
 msgstr "Использовать локальный адрес и порт"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:764
-msgid "Manually"
-msgstr "Вручную"
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:769
-msgid "Published address"
-msgstr "издаваемый адрес"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:917
+msgid "Set published address and port:"
+msgstr "Настроить видимый адрес и порт :"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:777
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:936
 msgid "Published port"
 msgstr "издаваемый порт"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:785
-msgid "STUN server URL"
-msgstr "URL STUN-сервера"
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1027
 msgid "Account settings"
 msgstr "Настройки аккаунта"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1046
 msgid "Basic"
 msgstr "Основные"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:904
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1051
 msgid "Advanced"
 msgstr "Дополнительные"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:169
-msgid "Server returned \""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:164
+msgid "Server returned \"%s\" (%d)"
 msgstr "Сервер ответил \""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
@@ -497,32 +685,19 @@ msgstr "Учётные записи"
 msgid "Configured Accounts"
 msgstr "Нынешний аккаунт"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
-msgid "There "
-msgstr "Здесь "
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "is "
-msgstr "Зарегестрирован "
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "are "
-msgstr "Зарегестрированны "
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:501
+msgid "There is %d active account"
+msgid_plural "There are %d active accounts"
+msgstr[0] " действующий аккаунт"
+msgstr[1] " действующий аккаунт"
+msgstr[2] " действующий аккаунт"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
-msgid " active account"
-msgstr " действующий аккаунт"
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
-msgid "s"
-msgstr "a"
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:507
 msgid "You have no active account"
 msgstr "У вас нет активного аккаунта"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:556
 msgid "General"
 msgstr "Общие настройки"
 
@@ -567,16 +742,16 @@ msgid "Select which Evolution address books to use"
 msgstr "Выбрать адресную книгу Evolution:"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:404
-#: ../sflphone-client-gnome/src/config/audioconf.c:578
+#: ../sflphone-client-gnome/src/config/audioconf.c:577
 msgid "Name"
 msgstr "Имя"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:69
+#: ../sflphone-client-gnome/src/config/assistant.c:75
 #, c-format
 msgid "This assistant is now finished."
 msgstr "Мастер закончил настройку."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:71
+#: ../sflphone-client-gnome/src/config/assistant.c:77
 msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
@@ -584,211 +759,205 @@ msgstr ""
 "Вы можете в любое время проверить статус регистрации или изменитьпараметры  "
 "ваших аккаунтов в меню Правка / Аккаунты."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:74
+#: ../sflphone-client-gnome/src/config/assistant.c:80
 msgid "Alias"
 msgstr "Псевдоним"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:78
+#: ../sflphone-client-gnome/src/config/assistant.c:84
 msgid "Server"
 msgstr "Сервер"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:82
+#: ../sflphone-client-gnome/src/config/assistant.c:88
 msgid "Username"
 msgstr "Пользователь"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:86
+#: ../sflphone-client-gnome/src/config/assistant.c:92
 msgid "Security: "
 msgstr "Безопасность "
 
-#: ../sflphone-client-gnome/src/config/assistant.c:88
+#: ../sflphone-client-gnome/src/config/assistant.c:94
 msgid "SRTP/ZRTP draft-zimmermann"
 msgstr "SRTP/ZRTP draft-zimmermann"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:90
-#: ../sflphone-client-gnome/src/config/assistant.c:182
+#: ../sflphone-client-gnome/src/config/assistant.c:96
 msgid "None"
 msgstr "Нет"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:210
+#: ../sflphone-client-gnome/src/config/assistant.c:229
 msgid "SFLphone account creation wizard"
 msgstr "Мастер настройки SFLphone"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:236
+#: ../sflphone-client-gnome/src/config/assistant.c:255
 msgid "Welcome to the Account creation wizard of SFLphone!"
 msgstr "Добро пожаловать в SFLphone!"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:237
+#: ../sflphone-client-gnome/src/config/assistant.c:256
 msgid "This installation wizard will help you configure an account."
 msgstr "Этот мастер установки поможет вам настроить ваш аккаунт."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "VoIP Protocols"
 msgstr "VoIP-протоколы"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "Select an account type"
 msgstr "Выберите тип аккаунта"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:253
+#: ../sflphone-client-gnome/src/config/assistant.c:272
 msgid "SIP (Session Initiation Protocol)"
 msgstr "SIP (Session Initiation Protocol)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:255
+#: ../sflphone-client-gnome/src/config/assistant.c:274
 msgid "IAX2 (InterAsterix Exchange)"
 msgstr "IAX2 (InterAsterix Exchange)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Account"
 msgstr "Аккаунты"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Please select one of the following options"
 msgstr "Введите пожалуйста следующие данные"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:271
+#: ../sflphone-client-gnome/src/config/assistant.c:290
 msgid "Create a free SIP/IAX2 account on sflphone.org"
 msgstr "Создать бесплатный SIP/IAX2-аккаунт на sflphone.org"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:273
+#: ../sflphone-client-gnome/src/config/assistant.c:292
 msgid "Register an existing SIP or IAX2 account"
 msgstr "Зарегистрировать существующий SIP или IAX2 аккаунт"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
+#: ../sflphone-client-gnome/src/config/assistant.c:306
 msgid "SIP account settings"
 msgstr "Настройка SIP-аккаунта"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:306
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "Please fill the following information"
 msgstr "Введите пожалуйста следующие данные"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:352
-#: ../sflphone-client-gnome/src/config/assistant.c:381
+#: ../sflphone-client-gnome/src/config/assistant.c:376
+#: ../sflphone-client-gnome/src/config/assistant.c:405
 msgid "Secure communications with _ZRTP"
 msgstr "Защищëнная связь с _ZRTP"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "Optional email address"
 msgstr "Электронный адрес (необязательный)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "This email address will be used to send your voicemail messages."
 msgstr "Этот электронный адрес будет использоваться для речевых сообщений"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:373
+#: ../sflphone-client-gnome/src/config/assistant.c:397
 msgid "_Email address"
 msgstr "_Адрес эл. почты"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "IAX2 account settings"
 msgstr "Настройка IAX2-аккаунта"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "Network Address Translation (NAT)"
 msgstr "Network Address Translation (NAT)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "You should probably enable this if you are behind a firewall."
-msgstr ""
-"Вы наверное должны это включить если вы находитесь за сетевым экраном."
+msgstr "Вы наверное должны это включить если вы находитесь за сетевым экраном."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:476
+#: ../sflphone-client-gnome/src/config/assistant.c:505
 msgid "E_nable STUN"
 msgstr "Включить STUN"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:483
+#: ../sflphone-client-gnome/src/config/assistant.c:512
 msgid "_STUN server"
 msgstr "_STUN-сервер"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Account Registration"
 msgstr "Регистрация аккаунта"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Congratulations!"
 msgstr "Поздравляем!"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:583
+#: ../sflphone-client-gnome/src/config/audioconf.c:582
 msgid "Frequency"
 msgstr "Частота"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:588
+#: ../sflphone-client-gnome/src/config/audioconf.c:587
 msgid "Bitrate"
 msgstr "Битрейт"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:593
+#: ../sflphone-client-gnome/src/config/audioconf.c:592
 msgid "Bandwidth"
 msgstr "Пропускная способность"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:673
+#: ../sflphone-client-gnome/src/config/audioconf.c:670
 msgid "ALSA plugin"
 msgstr "ALSA-плагин"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:695
+#: ../sflphone-client-gnome/src/config/audioconf.c:692
 msgid "Output"
 msgstr "Выход"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:717
+#: ../sflphone-client-gnome/src/config/audioconf.c:714
 msgid "Input"
 msgstr "Вход"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:752
+#: ../sflphone-client-gnome/src/config/audioconf.c:749
 msgid "_Voice Activity Detection"
 msgstr "Включить детектор тишины"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:762
+#: ../sflphone-client-gnome/src/config/audioconf.c:759
 msgid "_Noise Reduction (Narrow-Band Companding)"
 msgstr "Шумоподавление"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:798
+#: ../sflphone-client-gnome/src/config/audioconf.c:800
 msgid "Sound Manager"
 msgstr "Менеджер звука"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:807
+#: ../sflphone-client-gnome/src/config/audioconf.c:809
 msgid "_Pulseaudio"
 msgstr "_Pulseaudio"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:811
+#: ../sflphone-client-gnome/src/config/audioconf.c:813
 msgid "_ALSA"
 msgstr "_ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:816
-msgid "_Mute other applications during a call"
-msgstr "Приглушать звук других програм во время звонка"
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:823
+#: ../sflphone-client-gnome/src/config/audioconf.c:819
 msgid "ALSA settings"
 msgstr "Настройка ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:840
+#: ../sflphone-client-gnome/src/config/audioconf.c:836
 msgid "Codecs"
 msgstr "Кодеки"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:869
+#: ../sflphone-client-gnome/src/config/audioconf.c:865
 msgid "Recordings"
 msgstr "Записи"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:873
+#: ../sflphone-client-gnome/src/config/audioconf.c:869
 msgid "Destination folder"
 msgstr "Папка назначения"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:877
+#: ../sflphone-client-gnome/src/config/audioconf.c:873
 msgid "Select a folder"
 msgstr "Выберите папку"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:883
+#: ../sflphone-client-gnome/src/config/audioconf.c:879
 msgid "Ringtones"
 msgstr "Звонки"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:889
+#: ../sflphone-client-gnome/src/config/audioconf.c:885
 msgid "_Enable ringtones"
 msgstr "Включить звонок"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:895
+#: ../sflphone-client-gnome/src/config/audioconf.c:891
 msgid "Choose a ringtone"
 msgstr "Выберите звонок"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:901
+#: ../sflphone-client-gnome/src/config/audioconf.c:897
 msgid "Audio Files"
 msgstr "Звуковые файлы"
 
@@ -825,7 +994,7 @@ msgstr "Переписка номера телефона"
 msgid "_Prefix dialed numbers with"
 msgstr "Добавить перед на набранными номерами"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:195
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:225
 msgid ""
 "This profile is used when you want to reach a remote peer simply by typing a "
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
@@ -836,79 +1005,59 @@ msgstr ""
 "настройки так-же будут использованы если не будет подходящего аккаунта для "
 "входящего или выходящего звонка."
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:274
-msgid "SIP Port"
-msgstr "SIP-порт"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:281
-msgid "UDP Transport"
-msgstr "Транспорт UDP"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:319
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:440
 msgid "Desktop Notifications"
 msgstr "Извещения на рабочем столе"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:323
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:444
 msgid "_Enable notifications"
 msgstr "Включить звонок"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:329
-msgid "Enable voicemail _notifications"
-msgstr "Включить предупреждения о речевых сообщениях"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:341
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:450
 msgid "System Tray Icon"
 msgstr "System Tray Icon"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
 msgid "_Popup main window on incoming call"
 msgstr "_Показать главное окно при входящем звонке"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:349
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:457
 msgid "Ne_ver popup main window"
 msgstr "Никогда не показывать главное окно"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:353
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
 msgid "Hide SFLphone window on _startup"
 msgstr "Спрятать окно SFLphone при пуске"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:359
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:469
 msgid "Calls History"
 msgstr "Журнал звонков"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:362
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:472
 msgid "_Keep my history for at least"
 msgstr "Со_хранить мой журнал звонков как минимум в течении"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:373
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:483
 msgid "days"
 msgstr "дней"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
-msgid "Configuration File"
-msgstr "Файл конфигурации"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
-msgid "Store SIP credentials as MD5 hash"
-msgstr "Записать параметры доступа SIP с шифровкой MD5."
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:423
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:536
 msgid "Preferences"
 msgstr "Предпочтения"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:448
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:561
 msgid "Audio"
 msgstr "Звук"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:566
 msgid "Address Book"
 msgstr "Адресная книга"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:458
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:571
 msgid "Hooks"
 msgstr "Зацепки"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:468
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:581
 msgid "Direct IP calls"
 msgstr "Прямые IP-звонки"
 
@@ -916,11 +1065,11 @@ msgstr "Прямые IP-звонки"
 msgid "Advanced options for TLS"
 msgstr "Дополнительные опции для TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:56
 msgid "TLS transport"
 msgstr "Транспорт TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:60
 msgid ""
 "TLS transport can be used along with UDP for those calls that would\n"
 "require secure sip transactions (aka SIPS). You can configure a different\n"
@@ -933,55 +1082,55 @@ msgstr ""
 "каждого аккаунта (но каждый из них будет использовать свой выделенный "
 "порт).\n"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:103
 msgid "Certificate of Authority list"
 msgstr "Список центра сертификации"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:107
 msgid "Choose a CA list file (optional)"
 msgstr "Выберите файл Центра сертификации (необязательный)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:115
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:131
 msgid "Public endpoint certificate file"
 msgstr "Файл с публичным сертификатом"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:119
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:135
 msgid "Choose a public endpoint certificate (optional)"
 msgstr "Выберите публичный сертификат (необязательный)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:134
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:159
 msgid "Choose a private key file (optional)"
 msgstr "Выберите файл с секретным ключом (необязательно)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:145
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:181
 msgid "Password for the private key"
 msgstr "Пароль для секретного ключа"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:168
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:204
 msgid "TLS protocol method"
 msgstr "Метод протокола TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:202
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:238
 msgid "TLS cipher list"
 msgstr "Список шифров TLS"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:211
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:247
 msgid "Server name instance for outgoing TLS connection"
 msgstr "Имя сервера для выходящих TLS-подключений."
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:219
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:255
 msgid "Negotiation timeout (sec:msec)"
 msgstr "Время ожидания соединения (сек:мсек)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:236
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:272
 msgid "Verify incoming certificates, as a server"
 msgstr "Проверять входящие сертификаты (в качестве сервера)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:242
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:278
 msgid "Verify certificates from answer, as a client"
 msgstr "Проверять входящие сертификаты (в качестве клиента)"
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:248
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:284
 msgid "Require certificate for incoming tls connections"
 msgstr "Требовать сертификат для входящих TLS-подключений"
 
@@ -989,54 +1138,90 @@ msgstr "Требовать сертификат для входящих TLS-по
 msgid "ZRTP Options"
 msgstr "Опции ZRTP"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:68
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:69
 msgid "Send Hello Hash in S_DP"
 msgstr "Послать hello-хэш в S_DP"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:74
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:75
 msgid "Ask User to Confirm SAS"
 msgstr "Попросить пользователя подтвердить пароль SAS"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:80
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:81
 msgid "_Warn if ZRTP not supported"
 msgstr "_Предупредить если ZRTP не пддерживается"
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:86
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:87
 msgid "Display SAS once for hold events"
 msgstr "Показать SAS один раз"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:56
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:58
 msgid "Search all"
 msgstr "Искать все"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:57
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:70
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:82
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:94
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:59
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:72
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:84
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:96
 msgid "Click here to change the search type"
 msgstr "Нажмите, чтобы изменить тип поиска"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:69
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:71
 msgid "Search by missed call"
 msgstr "Поиск по пропущенным вызовам"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:81
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:83
 msgid "Search by incoming call"
 msgstr "Поиск по входящим вызовам"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:93
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:95
 msgid "Search by outgoing call"
 msgstr "Поиск по исходящим вызовам"
 
+#~ msgid "IP call - %s"
+#~ msgstr "IP звонок  - %s"
+
+#~ msgid "Codec"
+#~ msgstr "Codec"
+
+#~ msgid "Network"
+#~ msgstr "Сеть"
+
+#~ msgid "Manually"
+#~ msgstr "Вручную"
+
+#~ msgid "There "
+#~ msgstr "Здесь "
+
+#~ msgid "is "
+#~ msgstr "Зарегестрирован "
+
+#~ msgid "are "
+#~ msgstr "Зарегестрированны "
+
+#~ msgid "s"
+#~ msgstr "a"
+
+#~ msgid "_Mute other applications during a call"
+#~ msgstr "Приглушать звук других програм во время звонка"
+
+#~ msgid "SIP Port"
+#~ msgstr "SIP-порт"
+
+#~ msgid "UDP Transport"
+#~ msgstr "Транспорт UDP"
+
+#~ msgid "Enable voicemail _notifications"
+#~ msgstr "Включить предупреждения о речевых сообщениях"
+
+#~ msgid "Store SIP credentials as MD5 hash"
+#~ msgstr "Записать параметры доступа SIP с шифровкой MD5."
+
 #~ msgid "Account creation wizard"
 #~ msgstr "Мастер настройки SFLphone"
 
 #~ msgid "Voicemail number"
 #~ msgstr "Номер автоответчика #"
 
-#~ msgid "Address book"
-#~ msgstr "Адресная книга"
-
 #~ msgid "Display volume controls"
 #~ msgstr "_Настройки громкости"
 
@@ -1049,9 +1234,6 @@ msgstr "Поиск по исходящим вызовам"
 #~ msgid "Hold on"
 #~ msgstr "Удержать звонок"
 
-#~ msgid "Transfer"
-#~ msgstr "Переслать звонок на другой номер"
-
 #~ msgid "Record"
 #~ msgstr "Записать переговор"
 
@@ -1091,33 +1273,9 @@ msgstr "Поиск по исходящим вызовам"
 #~ msgid "Prefix dialed numbers with"
 #~ msgstr "Добавить перед на набранными номерами"
 
-#~ msgid "_Help"
-#~ msgstr "_Помощь"
-
 #~ msgid "_Account creation wizard"
 #~ msgstr "Мастер настройки SFLphone"
 
-#~ msgid "_Call"
-#~ msgstr "_Звонок"
-
-#~ msgid "Clear _history"
-#~ msgstr "_Стереть журнал"
-
-#~ msgid "_Accounts"
-#~ msgstr "_Аккаунты"
-
-#~ msgid "_Edit"
-#~ msgstr "_Правка"
-
-#~ msgid "_Volume controls"
-#~ msgstr "_Настройки громкости"
-
-#~ msgid "_View"
-#~ msgstr "_Вид"
-
-#~ msgid "History"
-#~ msgstr "Журнал"
-
 #~ msgid "_Enable this account"
 #~ msgstr "_Включить"
 
@@ -1185,9 +1343,6 @@ msgstr "Поиск по исходящим вызовам"
 #~ msgid "Enable STUN"
 #~ msgstr "Задействовать STUN"
 
-#~ msgid "Transfer to : "
-#~ msgstr "Передать : "
-
 #~ msgid "Default account"
 #~ msgstr "Учетная запись по умолчанию"
 
@@ -1218,12 +1373,9 @@ msgstr "Поиск по исходящим вызовам"
 #~ msgid "Give up transfer"
 #~ msgstr "Прекратить передачу"
 
-#~ msgid "Remove the selected account"
-#~ msgstr "Удалить выбранную учетную запись"
-
 #~ msgid ""
-#~ "This button enables you to initialize a new account. You will then be able "
-#~ "to edit it using the form on the right."
+#~ "This button enables you to initialize a new account. You will then be "
+#~ "able to edit it using the form on the right."
 #~ msgstr ""
 #~ "Эта кнопка позволяет инициализировать новую учетную запись. Редактировать "
 #~ "данные будет возможно в форме справа."
@@ -1275,18 +1427,9 @@ msgstr "Поиск по исходящим вызовам"
 #~ msgid "Keep my history for at least"
 #~ msgstr "По крайней мере хранить историю"
 
-#~ msgid "Clear history"
-#~ msgstr "Очистить историю"
-
-#~ msgid "Call history"
-#~ msgstr "История звонков"
-
 #~ msgid "Incoming call"
 #~ msgstr "Входящий звонок"
 
-#~ msgid "Call back"
-#~ msgstr "Обратный вызов"
-
 #~ msgid "(C) 2009 Savoir-faire Linux"
 #~ msgstr "(C) 2009 Savoir-faire Linux"
 
@@ -1317,13 +1460,16 @@ msgstr "Поиск по исходящим вызовам"
 #~ msgctxt "NAME OF TRANSLATORS"
 #~ msgid "Your names"
 #~ msgstr ""
-#~ ",Launchpad Contributions:,Hussein Abdallah, ,Launchpad "
-#~ "Contributions:,Emmanuel Milou,Hussein Abdallah,Maxime Chambreuil,Pavlo "
-#~ "Kucheriavyi,Sergei Sedov, ,Launchpad Contributions:,Emmanuel Milou,Hussein "
-#~ "Abdallah,Hussein Abdallah,Maxime Chambreuil,Pavlo Kucheriavyi,Sergei Sedov"
+#~ ",Launchpad Contributions:,Hussein Abdallah, ,Launchpad Contributions:,"
+#~ "Emmanuel Milou,Hussein Abdallah,Maxime Chambreuil,Pavlo Kucheriavyi,"
+#~ "Sergei Sedov, ,Launchpad Contributions:,Emmanuel Milou,Hussein Abdallah,"
+#~ "Hussein Abdallah,Maxime Chambreuil,Pavlo Kucheriavyi,Sergei Sedov, ,"
+#~ "Launchpad Contributions:,Emmanuel Milou,Hussein Abdallah,Hussein Abdallah,"
+#~ "Maxime Chambreuil,Pavlo Kucheriavyi,Sergey Sedov"
 
 #~ msgctxt "EMAIL OF TRANSLATORS"
 #~ msgid "Your emails"
 #~ msgstr ""
-#~ ",,,,,emmanuel.milou@savoirfairelinux.com,,maxime.chambreuil@gmail.com,,,,,emm"
-#~ "anuel.milou@savoirfairelinux.com,,,maxime.chambreuil@gmail.com,,"
+#~ ",,,,,emmanuel.milou@savoirfairelinux.com,,maxime.chambreuil@gmail.com,,,,,"
+#~ "emmanuel.milou@savoirfairelinux.com,,,maxime.chambreuil@gmail.com,,,,,"
+#~ "emmanuel.milou@savoirfairelinux.com,,,maxime.chambreuil@gmail.com,,"
diff --git a/sflphone-client-gnome/po/sflphone_es.po.patch b/sflphone-client-gnome/po/sflphone_es.po.patch
deleted file mode 100644
index 80b09273b2..0000000000
--- a/sflphone-client-gnome/po/sflphone_es.po.patch
+++ /dev/null
@@ -1,395 +0,0 @@
---- sflphone_es.po.orig	2008-05-21 23:16:55.000000000 +0200
-+++ sflphone_es.po	2008-08-13 11:53:32.000000000 +0200
-@@ -11,7 +11,7 @@ msgid ""
- msgstr ""
- "Project-Id-Version: SFLphone 0.8.2\n"
- "Report-Msgid-Bugs-To: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com >\n"
--"PO-Revision-Date: 2008-03-27 11:15\n"
-+"PO-Revision-Date: 2008-08-13 11:53+0200\n"
- "Last-Translator: Maxime Chambreuil <maxime.chambreuil@savoirfairelinux.com>\n"
- "Language-Team: SavoirFaireLinux Inc <sflphoneteam@savoirfairelinux.com>\n"
- "MIME-Version: 1.0\n"
-@@ -21,19 +21,19 @@ msgstr ""
- 
- #: src/audio/audiolayer.cpp: 318
- msgid "Error while opening capture device "
--msgstr "Error abriendo el dispositivo de captura "
-+msgstr "Error al abrir el dispositivo de captura "
- 
- #: src/audio/audiolayer.cpp: 349
- msgid "Error while opening playback device "
--msgstr "Error abriendo el dispositivo del aparato de lectura "
-+msgstr "Error al abrir el dispositivo de reproducción "
- 
- #: sflphone-gtk/src/menus.c: 119
- msgid "About SFLphone"
--msgstr "Sobre SFLphone"
-+msgstr "Acerca de SFLphone"
- 
- #: sflphone-gtk/src/menus.c: 124
- msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
--msgstr "SFLphone es un telefono por Internet compatible con los protocolos SIP y IAX2" 
-+msgstr "SFLphone es un cliente de VoIP compatible con los protocolos SIP y IAX2." 
- 
- #: sflphone-gtk/src/menus.c: 150
- msgid "_Help" 
-@@ -45,15 +45,15 @@ msgstr "_Nueva llamada"
- 
- #: sflphone-gtk/src/menus.c: 217 menus.c: 605
- msgid "_Pick up" 
--msgstr "_Colgar"
-+msgstr "_Descolgar"
- 
- #: sflphone-gtk/src/menus.c: 225 menus.c: 617
- msgid "_Hang up"
--msgstr "_Descolgar"
-+msgstr "_Colgar"
- 
- #: sflphone-gtk/src/menus.c: 233 menus.c: 629
- msgid "On _Hold" 
--msgstr "_Sostener"
-+msgstr "En _Espera"
- 
- #: sflphone-gtk/src/menus.c: 254
- msgid "_Call"
-@@ -69,11 +69,11 @@ msgstr "_Cuentas"
- 
- #: sflphone-gtk/src/menus.c: 438
- msgid "_Edit"
--msgstr "_Edición"
-+msgstr "_Editar"
- 
- #: sflphone-gtk/src/menus.c: 462
- msgid "_Dialpad"
--msgstr "_Pantalla de numero"
-+msgstr "_Teclado numérico"
- 
- #: sflphone-gtk/src/menus.c: 471
- msgid "_Volume controls"
-@@ -93,11 +93,11 @@ msgstr "Llamar"
- 
- #: sflphone-gtk/src/calltree.c: 343 sflphone-gtk/src/calltree.c: 344
- msgid "Pick up" 
--msgstr "Colgar"
-+msgstr "Descolgar"
- 
- #: sflphone-gtk/src/calltree.c: 351 sflphone-gtk/src/calltree.c: 352
- msgid "Hang up"
--msgstr "Descolgar"
-+msgstr "Colgar"
- 
- #: sflphone-gtk/src/calltree.c: 359 sflphone-gtk/src/calltree.c: 360
- msgid "Off Hold"
-@@ -105,7 +105,7 @@ msgstr "Seguir"
- 
- #: sflphone-gtk/src/calltree.c: 367 sflphone-gtk/src/calltree.c: 368
- msgid "On Hold"
--msgstr "Sostener"
-+msgstr "Retener"
- 
- #: sflphone-gtk/src/calltree.c: 375 sflphone-gtk/src/calltree.c: 376
- msgid "Transfer"
-@@ -117,11 +117,11 @@ msgstr "Nombre"
- 
- #: sflphone-gtk/src/configwindow.c: 804
- msgid "Frequency"
--msgstr "Frequencia"
-+msgstr "Frecuencia"
- 
- #: sflphone-gtk/src/configwindow.c: 809
- msgid "Bitrate"
--msgstr "Bitrato"
-+msgstr "Tasa de transferencia"
- 
- #: sflphone-gtk/src/configwindow.c: 814
- msgid "Bandwidth"
-@@ -137,11 +137,11 @@ msgstr "Estado"
- 
- #: sflphone-gtk/src/configwindow.c: 934
- msgid "Default"
--msgstr "Defecto"
-+msgstr "Predeterminado"
- 
- #: sflphone-gtk/src/configwindow.c: 935
- msgid "Set the selected account as the default one to make calls"
--msgstr "Fije la cuenta seleccionada como el defecto para llamar"
-+msgstr "Establecer la cuenta seleccionada como predeterminada para hacer llamadas"
- 
- #: sflphone-gtk/src/configwindow.c: 976
- msgid "Devices"
-@@ -161,19 +161,19 @@ msgstr "Periférico de entrada"
- 
- #: sflphone-gtk/src/configwindow.c: 1080
- msgid "Detect all"
--msgstr "Detecte todos"
-+msgstr "Detectar todos"
- 
- #: sflphone-gtk/src/configwindow.c: 1107
- msgid "_Enable ringtones"
--msgstr "_Permitir los ringtones"
-+msgstr "_Habilitar tonos de llamada"
- 
- #: sflphone-gtk/src/configwindow.c: 1112
- msgid "Choose a ringtone"
--msgstr "Elija un ringtones"
-+msgstr "Elija un tono de llamada"
- 
- #: sflphone-gtk/src/configwindow.c: 1117
- msgid "Audio Files"
--msgstr "Archivos Audio"
-+msgstr "Archivos de Audio"
- 
- #: sflphone-gtk/src/configwindow.c: 1142
- msgid "Preferences"
-@@ -181,7 +181,7 @@ msgstr "Preferencias"
- 
- #: sflphone-gtk/src/configwindow.c: 1167
- msgid "Audio Settings"
--msgstr "Configuración Audio"
-+msgstr "Configuración de audio"
- 
- #: sflphone-gtk/src/configwindow.c: 1191
- msgid "Accounts"
-@@ -193,7 +193,7 @@ msgstr "Cuentas existentes"
- 
- #: sflphone-gtk/src/configwindow.c: 1254
- msgid "Desktop Notification"
--msgstr "Notificación de Escritorio"
-+msgstr "Notificación de escritorio"
- 
- #: sflphone-gtk/src/configwindow.c: 1263
- msgid "_Enable"
-@@ -201,31 +201,31 @@ msgstr "_Activar"
- 
- #: sflphone-gtk/src/configwindow.c: 1268
- msgid "_Notify Voice Mails"
--msgstr "_Notificar Mensajes Vocales"
-+msgstr "_Notificar mensajes de voz"
- 
- #: sflphone-gtk/src/configwindow.c: 1274
- msgid "System Tray Icon"
--msgstr "Icono de Bandeja del Sistema"
-+msgstr "Icono de bandeja del sistema"
- 
- #: sflphone-gtk/src/configwindow.c: 1283
- msgid "_Popup Main Window On Incoming Call"
--msgstr "_Popup Ventana Principal por las Llamadas Recibidas"
-+msgstr "_Mostrar ventana principal al recibir llamadas"
- 
- #: sflphone-gtk/src/configwindow.c: 1288
- msgid "Ne_ver Popup Main Window"
--msgstr "_Jamas Popup Ventana Principal"
-+msgstr "_Nunca mostrar ventana principal"
- 
- #: sflphone-gtk/src/configwindow.c: 1292
- msgid "_Start Hidden"
--msgstr "_Iniciar Escondido"
-+msgstr "_Iniciar oculto"
- 
- #: sflphone-gtk/src/configwindow.c: 1297
- msgid "Calls History"
--msgstr "Historia de Llamada"
-+msgstr "Historial de llamadas"
- 
- #: sflphone-gtk/src/configwindow.c: 1307
- msgid "_Maximum number of calls"
--msgstr "_Numero Maximo de Llamadas"
-+msgstr "_Número máximo de llamadas"
- 
- #: sflphone-gtk/src/accountwindow.c: 139
- msgid "Account settings"
-@@ -233,7 +233,7 @@ msgstr "Configuración de cuentas"
- 
- #: sflphone-gtk/src/accountwindow.c: 151
- msgid "Account parameters"
--msgstr "Paràmetros de Cuenta"
-+msgstr "Parámetros de cuenta"
- 
- #: sflphone-gtk/src/accountwindow.c: 174
- msgid "_Enabled"
-@@ -253,7 +253,7 @@ msgstr "Desconocido"
- 
- #: sflphone-gtk/src/accountwindow.c: 216 sflphone-gtk/src/assistant.c: 169 sflphone-gtk/src/assistant.c: 218
- msgid "_Host name"
--msgstr "_Parte del servidor"
-+msgstr "_Nombre de equipo"
- 
- #: sflphone-gtk/src/accountwindow.c: 224 sflphone-gtk/src/assistant.c: 177 sflphone-gtk/src/assistant.c: 226
- msgid "_User name"
-@@ -265,11 +265,11 @@ msgstr "_Contraseña"
- 
- #: sflphone-gtk/src/accountwindow.c: 241
- msgid "_Voicemail box #"
--msgstr "_Numero de Caja de Voz"
-+msgstr "_Número de buzón de voz"
- 
- #: sflphone-gtk/src/accountwindow.c: 252 sflphone-gtk/src/assistant.c: 256
- msgid "Network Address Translation"
--msgstr "Conversión de Dirección de Red"
-+msgstr "Conversión de Dirección de Red (NAT)"
- 
- #: sflphone-gtk/src/accountwindow.c: 264 sflphone-gtk/src/assistant.c: 265
- msgid "E_nable STUN"
-@@ -277,7 +277,7 @@ msgstr "A_ctivar STUN"
- 
- #: sflphone-gtk/src/accountwindow.c: 267
- msgid "Enable it if you are behind a firewall, then restart SFLphone"
--msgstr "Activar si esta atras un cortafuego, despues reiniciar SFLphone"
-+msgstr "Actívelo si está detrás de un cortafuegos, después reinicie SFLphone"
- 
- #: sflphone-gtk/src/accountwindow.c: 270 sflphone-gtk/src/assistant.c: 272
- msgid "_STUN Server"
-@@ -289,44 +289,44 @@ msgstr "Formato: nombre.servidor:puerto"
- 
- #: sflphone-gtk/src/actions.c: 45
- msgid "%d voice mails"
--msgstr "%d mensajes"
-+msgstr "%d mensajes de voz"
- 
- #: sflphone-gtk/src/actions.c: 47
- msgid "%d voice mail"
--msgstr "%d mensaje"
-+msgstr "%d mensaje de voz"
- 
- #: sflphone-gtk/src/actions.c: 162
- msgid "Unable to connect to the SFLphone server.\n"
- " Make sure the daemon is running."
--msgstr "Incapaz e conectar con el servidor SFLphone.\n"
--" Checa que el demonio está funcionando."
-+msgstr "Incapaz de conectar con el servidor SFLphone.\n"
-+" Asegúrese de que el demonio esté funcionando."
- 
- #: sflphone-gtk/src/actions.c: 544
- msgid "The account selected as default is not registered."
--msgstr "La cuenta seleccionada como defecto no es registrada."
-+msgstr "La cuenta seleccionada como predeterminada no está registrada."
- 
- #: sflphone-gtk/src/actions.c: 557
- msgid "There is no registered account to make this call with."
--msgstr "No hay cuenta registrada para hacer esta llamada"
-+msgstr "No hay ninguna cuenta registrada para hacer esta llamada."
- 
- #: sflphone-gtk/src/actions.c: 591
- msgid "<b>ALSA notification</b>\n\n"
- "Error while opening playback device"
- msgstr "<b>Notificación ALSA</b>\n\n"
--"Error abriendo el dispositivo del aparato de lectura"
-+"Error al abrir el dispositivo de reproducción"
- 
- #: sflphone-gtk/src/actions.c: 594
- msgid "<b>ALSA notification</b>\n\n"
- "Error while opening capture device"
- msgstr "<b>Notificación ALSA</b>\n\n"
--"Error abriendo el dispositivo de captura"
-+"Error al abrir el dispositivo de captura"
- 
- #r sflphone-gtk/src/actions.c: 632
- msgid "<b>Error: No audio codecs found.\n\n</b>"
- " SFL audio codecs have to be placed in <i>%s</i>"
- " or in the <b>.sflphone</b> directory in your home( <i>%s</i> )"
--msgstr "<b>Error: No codec audio encontrado.\n\n</b>"
--" Los codecs audio de SFLphone deben estar en <i>%s</i>"
-+msgstr "<b>Error: Codecs de audio no encontrados.\n\n</b>"
-+" Los codecs de audio de SFLphone deben estar en <i>%s</i>"
- " o en el directorio <b>.sflphone</b> de su home( <i>%s</i> )"
- 
- #: sflphone-gtk/src/accountlist.c: 148 
-@@ -339,7 +339,7 @@ msgstr "No registrado"
- 
- #: sflphone-gtk/src/accountlist.c: 154
- msgid "Trying..."
--msgstr "Tratando..."
-+msgstr "Intentando..."
- 
- #: sflphone-gtk/src/accountlist.c: 157
- msgid "Error"
-@@ -362,8 +362,8 @@ msgid "<b><big>Welcome to SFLphone!</big
- "There is no VoIP account configured.\n"
- " Would you like to create one now?"
- msgstr "<b><big>Bienvenido en SFLphone!</big></b>\n\n"
--"No hay cuenta VoIP configurada.\n"
--" Usted quiere crear una ?"
-+"No hay ninguna cuenta VoIP configurada.\n"
-+" ¿Quiere crear una?"
- 
- #: sflphone-gtk/src/SFLnotify.c: 32
- msgid "%s account: %s"
-@@ -379,7 +379,7 @@ msgstr "Aceptar"
- 
- #: sflphone-gtk/src/SFLnotify.c: 51
- msgid "Refuse"
--msgstr "Renunciar"
-+msgstr "Rechazar"
- 
- #: sflphone-gtk/src/SFLnotify.c: 52
- msgid "Ignore"
-@@ -387,7 +387,7 @@ msgstr "Ignorar"
- 
- #: sflphone-gtk/src/statusicon.c: 80 
- msgid "Show main window"
--msgstr "Mostrar Ventana Principal"
-+msgstr "Mostrar ventana principal"
- 
- #: sflphone-gtk/src/statusicon.c: 113
- msgid "SFLphone - %i account registered"
-@@ -397,15 +397,15 @@ msgstr[1] "SFLphone - %i cuentas registr
- 
- #: sflphone-gtk/src/assistant.c: 91
- msgid "SFLphone account configuration wizard"
--msgstr "Asistante de Configuración de Cuenta SFLphone"
-+msgstr "Asistente de configuración de cuentas de SFLphone"
- 
- #: sflphone-gtk/src/assistant.c: 122
- msgid "Welcome to SFLphone!"
--msgstr "Bienvenido en SFLphone!"
-+msgstr "¡Bienvenido a SFLphone!"
- 
- #: sflphone-gtk/src/assistant.c: 119
- msgid "This installation wizard will help you configure an account."
--msgstr "Ese asistante de instalaciòn ayuda usted a configurar una cuenta."
-+msgstr "Este asistente de instalación le ayudará a configurar una cuenta."
- 
- #: sflphone-gtk/src/assistant.c: 134
- msgid "VoIP Protocols"
-@@ -413,33 +413,33 @@ msgstr "Protocolos VoIP"
- 
- #: sflphone-gtk/src/assistant.c: 134
- msgid "Select an account type:"
--msgstr "Escoje un tipo de cuenta:"
-+msgstr "Escoja un tipo de cuenta:"
- 
- #: sflphone-gtk/src/assistant.c: 153
- msgid "SIP account configuration"
--msgstr "Configuraciòn de cuenta SIP"
-+msgstr "Configuración de cuenta SIP"
- 
- #: sflphone-gtk/src/assistant.c: 153 sflphone-gtk/src/assistant.c: 202
- msgid "Please fill the following information:"
--msgstr "Por favor de llenar esas informaciones:"
-+msgstr "Por favor, rellene la siguiente información:"
- 
- #: sflphone-gtk/src/assistant.c: 202
- msgid "IAX2 account configuration"
--msgstr "Configuraciòn de cuenta IAX2"
-+msgstr "Configuración de cuenta IAX2"
- 
- #: sflphone-gtk/src/assistant.c: 256
- msgid "You should probably enable this if you are behind a firewall."
--msgstr "Probablemente, tiene que activar eso si usted esta atras de un cortafuego."
-+msgstr "Probablemente tiene que activar esto si está detrás de un cortafuegos."
- 
- #: sflphone-gtk/src/assistant.c: 289
- msgid "Account Registration"
--msgstr "Registraciòn de Cuenta"
-+msgstr "Registro de cuenta"
- 
- #: sflphone-gtk/src/assistant.c: 289
- msgid "Congratulations!"
--msgstr "Felicitaciones!"
-+msgstr "¡Enhorabuena!"
- 
- #: sflphone-gtk/src/assistant.c: 291
- msgid "This assistant is now finished.\n\n You can at any time check your registration state or modify your accounts parameters in the Options/Accounts window."
--msgstr "Ese asistante esta terminado.\n\n Usted puede checar su estado de registraciòn o cambiar sus parametros de cuentas en cualquier momento en la ventana de Opciones/Cuentas."
-+msgstr "Este asistente ha finalizado.\n\n  Puede comprobar en cualquier momento su estado de registro o modificar la configuración de sus cuentas en la ventana de Opciones/Cuentas."
- 
diff --git a/sflphone-client-gnome/po/zh_CN/zh_CN.po b/sflphone-client-gnome/po/zh_CN/zh_CN.po
index 3defe8ab2e..bfc3429d51 100644
--- a/sflphone-client-gnome/po/zh_CN/zh_CN.po
+++ b/sflphone-client-gnome/po/zh_CN/zh_CN.po
@@ -8,15 +8,15 @@ msgid ""
 msgstr ""
 "Project-Id-Version: SFLphone 0.9.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-14 11:18-0400\n"
-"PO-Revision-Date: 2009-10-15 13:46+0000\n"
-"Last-Translator: Yinghua Wang <Unknown>\n"
+"POT-Creation-Date: 2009-12-03 10:22-0500\n"
+"PO-Revision-Date: 2009-10-26 20:46+0000\n"
+"Last-Translator: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>\n"
 "Language-Team: SavoirFaireLinux Inc <sflphoneteam@savoirfairelinux.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2009-10-26 15:48+0000\n"
+"X-Launchpad-Export-Date: 2009-12-03 15:32+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
 #: ../sflphone-client-gnome/src/accountlist.c:175
@@ -61,24 +61,15 @@ msgstr "Stun服务器无效"
 msgid "Invalid"
 msgstr "无效"
 
-#: ../sflphone-client-gnome/src/actions.c:54
-#: ../sflphone-client-gnome/src/sflnotify.c:94
-#, c-format
-msgid "%d voice mail"
-msgid_plural "%d voice mails"
-msgstr[0] "%d 个语音信息"
-
-#: ../sflphone-client-gnome/src/actions.c:83
-#: ../sflphone-client-gnome/src/actions.c:919
-#: ../sflphone-client-gnome/src/actions.c:926
+#: ../sflphone-client-gnome/src/actions.c:98
 msgid "Using account"
 msgstr "使用账户"
 
-#: ../sflphone-client-gnome/src/actions.c:89
+#: ../sflphone-client-gnome/src/actions.c:104
 msgid "No registered accounts"
 msgstr "没有已注册帐户"
 
-#: ../sflphone-client-gnome/src/actions.c:268
+#: ../sflphone-client-gnome/src/actions.c:285
 msgid ""
 "Unable to connect to the SFLphone server.\n"
 "Make sure the daemon is running."
@@ -86,26 +77,23 @@ msgstr ""
 "连接SFLphone服务器失败.\n"
 "请检查daemon是否还在运行."
 
-#: ../sflphone-client-gnome/src/actions.c:913
-#, c-format
-msgid "IP call - %s"
-msgstr "IP 电话 - %s"
-
-#: ../sflphone-client-gnome/src/actions.c:922
-msgid "Codec"
-msgstr "编码"
+#: ../sflphone-client-gnome/src/actions.c:589
+#: ../sflphone-client-gnome/src/actions.c:911
+msgid "Direct SIP call"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:1119
+#: ../sflphone-client-gnome/src/actions.c:1103
 #, c-format
 msgid ""
 "<b>Error: No audio codecs found.\n"
 "\n"
-"</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
-"<b>.sflphone</b> directory in your home( <i>%s</i> )"
+"</b> SFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</"
+"b> directory in your home( <i>%s</i> )"
 msgstr ""
 "<b>错误:无法找到codecs编码文件.\n"
 "\n"
-"</b> SFL声音codecs文件应位于<i>%s</i> 或 位于主目录( <i>%s</i> )的<b>.sflphone</b>目录下"
+"</b> SFL声音codecs文件应位于<i>%s</i> 或 位于主目录( <i>%s</i> )的<b>."
+"sflphone</b>目录下"
 
 #: ../sflphone-client-gnome/src/errors.c:29
 msgid ""
@@ -149,53 +137,53 @@ msgstr "有电话正在处理中"
 msgid "Do you still want to quit?"
 msgstr "确认要退出?"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:299
+#: ../sflphone-client-gnome/src/mainwindow.c:298
 msgid "SFLphone Error"
 msgstr "SFLphone出错"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:391
+#: ../sflphone-client-gnome/src/mainwindow.c:392
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:392
+#: ../sflphone-client-gnome/src/mainwindow.c:393
 msgid "Secure Communication Unavailable"
 msgstr "安全通信不可用"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:393
-#: ../sflphone-client-gnome/src/mainwindow.c:415
+#: ../sflphone-client-gnome/src/mainwindow.c:394
+#: ../sflphone-client-gnome/src/mainwindow.c:416
 msgid "Continue"
 msgstr "继续"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:394
-#: ../sflphone-client-gnome/src/mainwindow.c:416
-#: ../sflphone-client-gnome/src/mainwindow.c:430
+#: ../sflphone-client-gnome/src/mainwindow.c:395
+#: ../sflphone-client-gnome/src/mainwindow.c:417
+#: ../sflphone-client-gnome/src/mainwindow.c:431
 msgid "Stop Call"
 msgstr "停止呼叫"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:413
+#: ../sflphone-client-gnome/src/mainwindow.c:414
 #, c-format
 msgid ""
 "A %s error forced the call with %s to fall under unencrypted mode.\n"
 "Exact reason: %s\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:414
+#: ../sflphone-client-gnome/src/mainwindow.c:415
 msgid "ZRTP negotiation failed"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:427
+#: ../sflphone-client-gnome/src/mainwindow.c:428
 #, c-format
 msgid ""
 "%s wants to stop using secure communication. Confirm will resume "
 "conversation without SRTP.\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:428
+#: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm Go Clear"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:429
+#: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Confirm"
 msgstr "确认"
 
@@ -210,6 +198,12 @@ msgstr "%s 帐户: %s"
 msgid "<i>From</i> %s"
 msgstr "<i>拨入方</i> %s"
 
+#: ../sflphone-client-gnome/src/sflnotify.c:94
+#, c-format
+msgid "%d voice mail"
+msgid_plural "%d voice mails"
+msgstr[0] "%d 个语音信息"
+
 #: ../sflphone-client-gnome/src/sflnotify.c:111
 #, c-format
 msgid "Calling with %s account <i>%s</i>"
@@ -257,217 +251,413 @@ msgstr "扬声器音量"
 msgid "Mic volume"
 msgstr "话筒音量"
 
-#: ../sflphone-client-gnome/src/statusicon.c:91
+#: ../sflphone-client-gnome/src/statusicon.c:96
 msgid "_Show main window"
 msgstr "显示主窗口(S)"
 
-#: ../sflphone-client-gnome/src/statusicon.c:126
+#: ../sflphone-client-gnome/src/statusicon.c:131
 msgid "SFLphone"
 msgstr "SFLphone"
 
-#: ../sflphone-client-gnome/src/statusicon.c:127
+#: ../sflphone-client-gnome/src/statusicon.c:132
 #, c-format
 msgid "%i account configured"
 msgid_plural "%i accounts configured"
 msgstr[0] "已配置了%i个账户"
 
 #: ../sflphone-client-gnome/src/toolbar.c:38
-#: ../sflphone-client-gnome/src/uimanager.c:750
+#: ../sflphone-client-gnome/src/uimanager.c:693
+#: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Voicemail"
 msgstr "语音信箱"
 
-#: ../sflphone-client-gnome/src/uimanager.c:403
+#: ../sflphone-client-gnome/src/uimanager.c:117
+msgid "No address book selected"
+msgstr "地址簿"
+
+#: ../sflphone-client-gnome/src/uimanager.c:137
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "Address book"
+msgstr "地址簿"
+
+#: ../sflphone-client-gnome/src/uimanager.c:279
+msgid "Voicemail (%i)"
+msgstr "语音信箱 (%i)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:342
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
 msgstr "SFLphone是一个VoIP客户端,它兼容SIP和IAX2协议."
 
-#: ../sflphone-client-gnome/src/uimanager.c:406
+#: ../sflphone-client-gnome/src/uimanager.c:345
 msgid "About SFLphone"
 msgstr "关于SFLphone"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1028
+#: ../sflphone-client-gnome/src/uimanager.c:719
+msgid "Call"
+msgstr "电话(_C)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+#: ../sflphone-client-gnome/src/uimanager.c:1184
+msgid "_New call"
+msgstr "新电话(_N)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+msgid "Place a new call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:721
+#: ../sflphone-client-gnome/src/uimanager.c:979
 msgid "_Pick up"
 msgstr "接听(_P)"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1040
-#: ../sflphone-client-gnome/src/uimanager.c:1081
+#: ../sflphone-client-gnome/src/uimanager.c:721
+msgid "Answer the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:722
+#: ../sflphone-client-gnome/src/uimanager.c:991
+#: ../sflphone-client-gnome/src/uimanager.c:1032
 msgid "_Hang up"
 msgstr "挂断(_H)"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1052
-#: ../sflphone-client-gnome/src/uimanager.c:1093
-msgid "On _Hold"
+#: ../sflphone-client-gnome/src/uimanager.c:722
+msgid "Finish the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "O_n hold"
 msgstr "保持(_H)"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1064
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "Place the call on hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "O_ff hold"
+msgstr "恢复通话"
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "Place the call off hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:725
+#: ../sflphone-client-gnome/src/uimanager.c:1015
 msgid "_Record"
 msgstr "录音(_R)"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1154
+#: ../sflphone-client-gnome/src/uimanager.c:725
+msgid "Record the current conversation"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Configuration _Assistant"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Run the configuration assistant"
+msgstr "Stun配置有误"
+
+#: ../sflphone-client-gnome/src/uimanager.c:727
+msgid "Call your voicemail"
+msgstr "%d 个语音信息"
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "_Close"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "Minimize to system tray"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "_Quit"
+msgstr "编辑(_E)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "Quit the program"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:732
+msgid "_Edit"
+msgstr "编辑(_E)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "_Copy"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "Copy the selection"
+msgstr "删除所选账户"
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "_Paste"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "Paste the clipboard"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear _history"
+msgstr "清空历史记录(_H)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear the call history"
+msgstr "清空历史记录"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "_Accounts"
+msgstr "账户(_A)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "Edit your accounts"
+msgstr "当前帐户"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "_Preferences"
+msgstr "首选项"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "Change your preferences"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:740
+msgid "_View"
+msgstr "查看(_V)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:743
+msgid "_Help"
+msgstr "帮助(_H)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Contents"
+msgstr "继续"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Open the manual"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:745
+msgid "About this application"
+msgstr "身份验证"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "_Transfer"
+msgstr "转接"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "Transfer the call"
+msgstr "转给: "
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "_Show toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "Show the toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "_Dialpad"
+msgstr "禁用"
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "Show the dialpad"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "_Volume controls"
+msgstr "音量控制(V)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "Show the volume controls"
+msgstr "音量控制(V)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "_History"
+msgstr "历史"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "Calls history"
+msgstr "呼叫记录"
+
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "_Address book"
+msgstr "地址簿"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1003
+#: ../sflphone-client-gnome/src/uimanager.c:1044
+msgid "On _Hold"
+msgstr "保持(_H)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1107
 msgid "_Call back"
 msgstr "回叫(_C)"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1226
-msgid "_New call"
-msgstr "新电话(_N)"
-
-#: ../sflphone-client-gnome/src/uimanager.c:1300
+#: ../sflphone-client-gnome/src/uimanager.c:1258
 msgid "Edit phone number"
 msgstr "编辑电话号码"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1311
+#: ../sflphone-client-gnome/src/uimanager.c:1269
 msgid "Edit the phone number before making a call"
 msgstr "拨出电话前编辑电话号码"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:164
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:180
 msgid "Account Parameters"
 msgstr "帐户相关参数"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:173
-#: ../sflphone-client-gnome/src/config/assistant.c:294
-#: ../sflphone-client-gnome/src/config/assistant.c:402
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/assistant.c:314
+#: ../sflphone-client-gnome/src/config/assistant.c:427
 msgid "_Alias"
 msgstr "别名(A)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:181
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:197
 msgid "_Protocol"
 msgstr "协议(P)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:199
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:215
 msgid "Unknown"
 msgstr "未知"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:209
-#: ../sflphone-client-gnome/src/config/assistant.c:302
-#: ../sflphone-client-gnome/src/config/assistant.c:410
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
+#: ../sflphone-client-gnome/src/config/assistant.c:322
+#: ../sflphone-client-gnome/src/config/assistant.c:435
 msgid "_Host name"
 msgstr "主机名(H)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:217
-#: ../sflphone-client-gnome/src/config/assistant.c:310
-#: ../sflphone-client-gnome/src/config/assistant.c:418
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:233
+#: ../sflphone-client-gnome/src/config/assistant.c:330
+#: ../sflphone-client-gnome/src/config/assistant.c:443
 msgid "_User name"
 msgstr "用户名(U)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:234
-#: ../sflphone-client-gnome/src/config/assistant.c:326
-#: ../sflphone-client-gnome/src/config/assistant.c:433
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:346
+#: ../sflphone-client-gnome/src/config/assistant.c:458
 msgid "_Password"
 msgstr "密码(P)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:254
-#: ../sflphone-client-gnome/src/config/assistant.c:344
-#: ../sflphone-client-gnome/src/config/assistant.c:449
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:270
+#: ../sflphone-client-gnome/src/config/assistant.c:363
+#: ../sflphone-client-gnome/src/config/assistant.c:473
+msgid "Show password"
+msgstr "密码"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:274
+#: ../sflphone-client-gnome/src/config/assistant.c:368
+#: ../sflphone-client-gnome/src/config/assistant.c:478
 msgid "_Voicemail number"
 msgstr "语音信箱号码(V)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:340
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:361
 msgid "Authentication"
 msgstr "身份验证"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:362
 msgid "Secret"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:605
 msgid "Credential"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:501
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:640
 msgid "Authentication name"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:512
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:651
 msgid "Password"
 msgstr "密码"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:535
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:909
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:201
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1056
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:321
 msgid "Security"
 msgstr "安全"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:547
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:213
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:333
 msgid "Use TLS transport (sips)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:552
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:218
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:338
 msgid "SRTP key exchange"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:699
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
 msgid "Disabled"
 msgstr "禁用"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:795
 msgid "Registration"
 msgstr "注册"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:800
 msgid "Registration expire"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:809
 msgid "_Comply with RFC 3263"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
-msgid "Network"
-msgstr "网络"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:816
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:234
+msgid "Network Interface"
+msgstr "网络连接失败"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:830
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:249
 msgid "Local address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:301
 msgid "Local port"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:752
-msgid "Set published address and port:"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:893
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:928
+msgid "Published address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:756
-msgid "Using STUN "
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+msgid "Using STUN"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:761
-msgid "Same as local parameters"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:906
+msgid "STUN server URL"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:764
-msgid "Manually"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:914
+msgid "Same as local parameters"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:769
-msgid "Published address"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:917
+msgid "Set published address and port:"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:777
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:936
 msgid "Published port"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:785
-msgid "STUN server URL"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1027
 msgid "Account settings"
 msgstr "帐户设置"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1046
 msgid "Basic"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:904
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1051
 msgid "Advanced"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:169
-msgid "Server returned \""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:164
+#, c-format
+msgid "Server returned \"%s\" (%d)"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
@@ -486,32 +676,18 @@ msgstr "帐户"
 msgid "Configured Accounts"
 msgstr "已配置帐户"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
-msgid "There "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "is "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "are "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
-msgid " active account"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
-msgid "s"
-msgstr ""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:501
+#, c-format
+msgid "There is %d active account"
+msgid_plural "There are %d active accounts"
+msgstr[0] ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:507
 msgid "You have no active account"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:556
 msgid "General"
 msgstr "常用配置"
 
@@ -556,225 +732,220 @@ msgid "Select which Evolution address books to use"
 msgstr "选择使用如下Evolution地址薄"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:404
-#: ../sflphone-client-gnome/src/config/audioconf.c:578
+#: ../sflphone-client-gnome/src/config/audioconf.c:577
 msgid "Name"
 msgstr "名称"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:69
+#: ../sflphone-client-gnome/src/config/assistant.c:75
 #, c-format
 msgid "This assistant is now finished."
 msgstr "配置完成."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:71
+#: ../sflphone-client-gnome/src/config/assistant.c:77
 msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
 msgstr "你可以随时在 选项/帐户 窗口中查看注册状态或者修改帐户参数."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:74
+#: ../sflphone-client-gnome/src/config/assistant.c:80
 msgid "Alias"
 msgstr "别名"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:78
+#: ../sflphone-client-gnome/src/config/assistant.c:84
 msgid "Server"
 msgstr "服务器"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:82
+#: ../sflphone-client-gnome/src/config/assistant.c:88
 msgid "Username"
 msgstr "用户名"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:86
+#: ../sflphone-client-gnome/src/config/assistant.c:92
 msgid "Security: "
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:88
+#: ../sflphone-client-gnome/src/config/assistant.c:94
 msgid "SRTP/ZRTP draft-zimmermann"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:90
-#: ../sflphone-client-gnome/src/config/assistant.c:182
+#: ../sflphone-client-gnome/src/config/assistant.c:96
 msgid "None"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:210
+#: ../sflphone-client-gnome/src/config/assistant.c:229
 msgid "SFLphone account creation wizard"
 msgstr "SFLphone账户创建向导"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:236
+#: ../sflphone-client-gnome/src/config/assistant.c:255
 msgid "Welcome to the Account creation wizard of SFLphone!"
 msgstr "欢迎使用SFLphone帐户创建向导!"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:237
+#: ../sflphone-client-gnome/src/config/assistant.c:256
 msgid "This installation wizard will help you configure an account."
 msgstr "安装向导将帮助您配置帐户"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "VoIP Protocols"
 msgstr "VoIP协议"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "Select an account type"
 msgstr "选择帐户类型"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:253
+#: ../sflphone-client-gnome/src/config/assistant.c:272
 msgid "SIP (Session Initiation Protocol)"
 msgstr "SIP(会话初始化协议)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:255
+#: ../sflphone-client-gnome/src/config/assistant.c:274
 msgid "IAX2 (InterAsterix Exchange)"
 msgstr "IAX2(Asterisk内部交换协议)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Account"
 msgstr "帐户"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Please select one of the following options"
 msgstr "请选择以下选项中的一个"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:271
+#: ../sflphone-client-gnome/src/config/assistant.c:290
 msgid "Create a free SIP/IAX2 account on sflphone.org"
 msgstr "在sflphone.org上创建免费的SIP/IAX2帐户"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:273
+#: ../sflphone-client-gnome/src/config/assistant.c:292
 msgid "Register an existing SIP or IAX2 account"
 msgstr "注册已存在的SIP或IAX2帐户"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
+#: ../sflphone-client-gnome/src/config/assistant.c:306
 msgid "SIP account settings"
 msgstr "SIP帐户设置"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:306
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "Please fill the following information"
 msgstr "请填写以下信息"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:352
-#: ../sflphone-client-gnome/src/config/assistant.c:381
+#: ../sflphone-client-gnome/src/config/assistant.c:376
+#: ../sflphone-client-gnome/src/config/assistant.c:405
 msgid "Secure communications with _ZRTP"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "Optional email address"
 msgstr "可选邮件地址"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "This email address will be used to send your voicemail messages."
 msgstr "这个邮件地址将被用来发送您的语音邮箱消息"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:373
+#: ../sflphone-client-gnome/src/config/assistant.c:397
 msgid "_Email address"
 msgstr "邮件地址(E)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "IAX2 account settings"
 msgstr "IAX2帐户设置"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "Network Address Translation (NAT)"
 msgstr "网络地址解析(NAT)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "You should probably enable this if you are behind a firewall."
 msgstr "如果你使用网络使用防火墙,你很有可能需要设定此项."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:476
+#: ../sflphone-client-gnome/src/config/assistant.c:505
 msgid "E_nable STUN"
 msgstr "使用STUN(n)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:483
+#: ../sflphone-client-gnome/src/config/assistant.c:512
 msgid "_STUN server"
 msgstr "STUN服务器(S)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Account Registration"
 msgstr "帐户注册"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Congratulations!"
 msgstr "恭喜!"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:583
+#: ../sflphone-client-gnome/src/config/audioconf.c:582
 msgid "Frequency"
 msgstr "频率"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:588
+#: ../sflphone-client-gnome/src/config/audioconf.c:587
 msgid "Bitrate"
 msgstr "比率"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:593
+#: ../sflphone-client-gnome/src/config/audioconf.c:592
 msgid "Bandwidth"
 msgstr "带宽"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:673
+#: ../sflphone-client-gnome/src/config/audioconf.c:670
 msgid "ALSA plugin"
 msgstr "ALSA插件"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:695
+#: ../sflphone-client-gnome/src/config/audioconf.c:692
 msgid "Output"
 msgstr "输出"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:717
+#: ../sflphone-client-gnome/src/config/audioconf.c:714
 msgid "Input"
 msgstr "输入"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:752
+#: ../sflphone-client-gnome/src/config/audioconf.c:749
 msgid "_Voice Activity Detection"
 msgstr "声音状态检测(V)"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:762
+#: ../sflphone-client-gnome/src/config/audioconf.c:759
 msgid "_Noise Reduction (Narrow-Band Companding)"
 msgstr "降噪处理-窄频压缩(N)"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:798
+#: ../sflphone-client-gnome/src/config/audioconf.c:800
 msgid "Sound Manager"
 msgstr "音频管理器"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:807
+#: ../sflphone-client-gnome/src/config/audioconf.c:809
 msgid "_Pulseaudio"
 msgstr "Pulseaudio"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:811
+#: ../sflphone-client-gnome/src/config/audioconf.c:813
 msgid "_ALSA"
 msgstr "ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:816
-msgid "_Mute other applications during a call"
-msgstr "当有来电时静音其它应用程序(c)"
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:823
+#: ../sflphone-client-gnome/src/config/audioconf.c:819
 msgid "ALSA settings"
 msgstr "ALSA设置"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:840
+#: ../sflphone-client-gnome/src/config/audioconf.c:836
 msgid "Codecs"
 msgstr "Codecs编码"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:869
+#: ../sflphone-client-gnome/src/config/audioconf.c:865
 msgid "Recordings"
 msgstr "记录"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:873
+#: ../sflphone-client-gnome/src/config/audioconf.c:869
 msgid "Destination folder"
 msgstr "目标文件夹"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:877
+#: ../sflphone-client-gnome/src/config/audioconf.c:873
 msgid "Select a folder"
 msgstr "选择文件夹"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:883
+#: ../sflphone-client-gnome/src/config/audioconf.c:879
 msgid "Ringtones"
 msgstr "铃声"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:889
+#: ../sflphone-client-gnome/src/config/audioconf.c:885
 msgid "_Enable ringtones"
 msgstr "启用铃声(E)"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:895
+#: ../sflphone-client-gnome/src/config/audioconf.c:891
 msgid "Choose a ringtone"
 msgstr "选择铃声"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:901
+#: ../sflphone-client-gnome/src/config/audioconf.c:897
 msgid "Audio Files"
 msgstr "音频文件"
 
@@ -811,86 +982,66 @@ msgstr "重设电话号码"
 msgid "_Prefix dialed numbers with"
 msgstr "号码前缀(P)"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:195
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:225
 msgid ""
 "This profile is used when you want to reach a remote peer simply by typing a "
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
 "also be used if no account can be matched to an incoming or outgoing call."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:274
-msgid "SIP Port"
-msgstr "SIP端口号"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:281
-msgid "UDP Transport"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:319
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:440
 msgid "Desktop Notifications"
 msgstr "桌面提示"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:323
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:444
 msgid "_Enable notifications"
 msgstr "启用提示(E)"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:329
-msgid "Enable voicemail _notifications"
-msgstr "启用语音邮箱提示(n)"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:341
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:450
 msgid "System Tray Icon"
 msgstr "系统托盘图标"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
 msgid "_Popup main window on incoming call"
 msgstr "来电时弹出主窗口(P)"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:349
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:457
 msgid "Ne_ver popup main window"
 msgstr "从不弹出主窗口(v)"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:353
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
 msgid "Hide SFLphone window on _startup"
 msgstr "在启动时隐藏SFLphone主窗口"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:359
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:469
 msgid "Calls History"
 msgstr "拨号历史"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:362
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:472
 msgid "_Keep my history for at least"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:373
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:483
 msgid "days"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
-msgid "Configuration File"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
-msgid "Store SIP credentials as MD5 hash"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:423
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:536
 msgid "Preferences"
 msgstr "首选项"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:448
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:561
 msgid "Audio"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:566
 msgid "Address Book"
 msgstr "地址簿"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:458
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:571
 msgid "Hooks"
 msgstr "钩键"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:468
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:581
 msgid "Direct IP calls"
 msgstr ""
 
@@ -898,11 +1049,11 @@ msgstr ""
 msgid "Advanced options for TLS"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:56
 msgid "TLS transport"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:60
 msgid ""
 "TLS transport can be used along with UDP for those calls that would\n"
 "require secure sip transactions (aka SIPS). You can configure a different\n"
@@ -911,55 +1062,55 @@ msgid ""
 "port, different one from each other\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:103
 msgid "Certificate of Authority list"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:107
 msgid "Choose a CA list file (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:115
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:131
 msgid "Public endpoint certificate file"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:119
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:135
 msgid "Choose a public endpoint certificate (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:134
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:159
 msgid "Choose a private key file (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:145
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:181
 msgid "Password for the private key"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:168
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:204
 msgid "TLS protocol method"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:202
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:238
 msgid "TLS cipher list"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:211
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:247
 msgid "Server name instance for outgoing TLS connection"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:219
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:255
 msgid "Negotiation timeout (sec:msec)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:236
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:272
 msgid "Verify incoming certificates, as a server"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:242
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:278
 msgid "Verify certificates from answer, as a client"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:248
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:284
 msgid "Require certificate for incoming tls connections"
 msgstr ""
 
@@ -967,45 +1118,63 @@ msgstr ""
 msgid "ZRTP Options"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:68
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:69
 msgid "Send Hello Hash in S_DP"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:74
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:75
 msgid "Ask User to Confirm SAS"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:80
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:81
 msgid "_Warn if ZRTP not supported"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:86
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:87
 msgid "Display SAS once for hold events"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:56
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:58
 msgid "Search all"
 msgstr "查询所有"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:57
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:70
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:82
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:94
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:59
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:72
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:84
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:96
 msgid "Click here to change the search type"
 msgstr "请点击此处改变查询方式"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:69
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:71
 msgid "Search by missed call"
 msgstr "从未接电话中查询"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:81
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:83
 msgid "Search by incoming call"
 msgstr "从来电中查询"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:93
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:95
 msgid "Search by outgoing call"
 msgstr "从拨出电话中查询"
 
+#~ msgid "IP call - %s"
+#~ msgstr "IP 电话 - %s"
+
+#~ msgid "Codec"
+#~ msgstr "编码"
+
+#~ msgid "Network"
+#~ msgstr "网络"
+
+#~ msgid "_Mute other applications during a call"
+#~ msgstr "当有来电时静音其它应用程序(c)"
+
+#~ msgid "SIP Port"
+#~ msgstr "SIP端口号"
+
+#~ msgid "Enable voicemail _notifications"
+#~ msgstr "启用语音邮箱提示(n)"
+
 #~ msgid "Account creation wizard"
 #~ msgstr "帐户创建向导"
 
@@ -1026,9 +1195,6 @@ msgstr "从拨出电话中查询"
 #~ msgid "Default account"
 #~ msgstr "默认帐户"
 
-#~ msgid "Transfer to : "
-#~ msgstr "转给: "
-
 #~ msgid "SFLphone KDE Client"
 #~ msgstr "SFLphone KDE客户端"
 
@@ -1041,12 +1207,6 @@ msgstr "从拨出电话中查询"
 #~ msgid "Main screen"
 #~ msgstr "主屏幕"
 
-#~ msgid "Call history"
-#~ msgstr "呼叫记录"
-
-#~ msgid "Address book"
-#~ msgstr "地址簿"
-
 #~ msgid "Configure SFLphone"
 #~ msgstr "配置SFLphone"
 
@@ -1080,9 +1240,6 @@ msgstr "从拨出电话中查询"
 #~ msgid "Hold on"
 #~ msgstr "呼叫保持"
 
-#~ msgid "Transfer"
-#~ msgstr "转接"
-
 #~ msgid "Record"
 #~ msgstr "记录"
 
@@ -1101,29 +1258,32 @@ msgstr "从拨出电话中查询"
 #~ 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."
+#~ "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会使用列表当中第一个已注册的帐户。使用箭头\"上\"和\"下\"可以改变账户的顺序。选择账户名称左边的方框可以"
-#~ "启用帐户,取消选择则会禁用该账户。通过\"加\"\"减\"按钮可以添加或删除账户。点击\"编辑\"按钮可以改变账户的设置。"
-
-#~ msgid "Remove the selected account"
-#~ msgstr "删除所选账户"
+#~ "在默认情况下,当你打电话时,sflphone会使用列表当中第一个已注册的帐户。使用"
+#~ "箭头\"上\"和\"下\"可以改变账户的顺序。选择账户名称左边的方框可以启用帐户,"
+#~ "取消选择则会禁用该账户。通过\"加\"\"减\"按钮可以添加或删除账户。点击\"编辑"
+#~ "\"按钮可以改变账户的设置。"
 
 #~ 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 "该按钮会删除列表中被选定的账户。请确认你的操作。如果你希望继续使用某个账户,请取消对该账户的选择"
+#~ "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 ""
+#~ "该按钮会删除列表中被选定的账户。请确认你的操作。如果你希望继续使用某个账"
+#~ "户,请取消对该账户的选择"
 
 #~ msgid "Remove"
 #~ msgstr "删除"
 
 #~ 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 "通过该按钮可以创建一个新账户。添加该账户之后你还可以通过编辑按钮来修改设置。"
+#~ "This button enables you to initialize a new account. You will then be "
+#~ "able to edit it using the form on the right."
+#~ msgstr ""
+#~ "通过该按钮可以创建一个新账户。添加该账户之后你还可以通过编辑按钮来修改设"
+#~ "置。"
 
 #~ msgid "Add"
 #~ msgstr "添加"
@@ -1136,8 +1296,9 @@ msgstr "从拨出电话中查询"
 #~ "this list which is \"registered\". Change the order of the accounts using "
 #~ "the \"Up\" and \"Down\" arrows."
 #~ msgstr ""
-#~ "在默认情况下,当你打电话时,sflphone会使用列表当中第一个已注册的帐户。使用箭头\"上\"和\"下\"可以改变账户的顺序。选择账户名称左边的方框可以"
-#~ "启用帐户,取消选择则会禁用该账户。通过\"加\"\"减\"按钮可以添加或删除账户。"
+#~ "在默认情况下,当你打电话时,sflphone会使用列表当中第一个已注册的帐户。使用"
+#~ "箭头\"上\"和\"下\"可以改变账户的顺序。选择账户名称左边的方框可以启用帐户,"
+#~ "取消选择则会禁用该账户。通过\"加\"\"减\"按钮可以添加或删除账户。"
 
 #~ msgid "Down"
 #~ msgstr "下"
@@ -1220,9 +1381,6 @@ msgstr "从拨出电话中查询"
 #~ msgid "On start"
 #~ msgstr "正在启动"
 
-#~ msgid "Clear history"
-#~ msgstr "清空历史记录"
-
 #~ msgid "Trigger on specific SIP header"
 #~ msgstr "激活指定的SIP头"
 
@@ -1238,12 +1396,6 @@ msgstr "从拨出电话中查询"
 #~ msgid "Attention:number of results exceeds max displayed."
 #~ msgstr "注意:结果超过可显示的最大值"
 
-#~ msgid "_Volume controls"
-#~ msgstr "音量控制(V)"
-
-#~ msgid "History"
-#~ msgstr "历史"
-
 #~ msgid "_Enable this account"
 #~ msgstr "启用该账户(E)"
 
@@ -1392,9 +1544,6 @@ msgstr "从拨出电话中查询"
 #~ msgid "\"Voicemail\" <%s>"
 #~ msgstr "\"语音邮件\" <%s>"
 
-#~ msgid "Off Hold"
-#~ msgstr "恢复通话"
-
 #~ msgid "Record a call"
 #~ msgstr "记录通话"
 
@@ -1544,36 +1693,21 @@ msgstr "从拨出电话中查询"
 #~ msgid "_STUN Server"
 #~ msgstr "STUN服务器(S)"
 
-#~ msgid "_Edit"
-#~ msgstr "编辑(_E)"
-
-#~ msgid "_View"
-#~ msgstr "查看(_V)"
-
-#~ msgid "_Help"
-#~ msgstr "帮助(_H)"
-
 #~ msgid "_Account creation wizard"
 #~ msgstr "帐户创建向导(_A)"
 
-#~ msgid "_Call"
-#~ msgstr "电话(_C)"
-
-#~ msgid "Clear _history"
-#~ msgstr "清空历史记录(_H)"
-
-#~ msgid "_Accounts"
-#~ msgstr "账户(_A)"
-
 #~ msgctxt "NAME OF TRANSLATORS"
 #~ msgid "Your names"
 #~ msgstr ""
 #~ "Yun Liu, ,Launchpad Contributions:,Aron Xu,Yun Liu, ,Launchpad "
 #~ "Contributions:,Aron Xu,Yinghua Wang,Yun Liu,rainofchaos, ,Launchpad "
-#~ "Contributions:,Aron Xu,Yinghua Wang,Yun Liu,冯超"
+#~ "Contributions:,Aron Xu,Yinghua Wang,Yun Liu,冯超, ,Launchpad "
+#~ "Contributions:,Aron Xu,Emmanuel Milou,Yun Liu,冯超,王英华"
 
 #~ msgctxt "EMAIL OF TRANSLATORS"
 #~ msgid "Your emails"
 #~ msgstr ""
-#~ "yunliu2000@gmail.com,,,happyaron.xu@gmail.com,,,,happyaron.xu@gmail.com,,,rai"
-#~ "nofchaos@gmail.com,,,happyaron.xu@gmail.com,,,rainofchaos@gmail.com"
+#~ "yunliu2000@gmail.com,,,happyaron.xu@gmail.com,,,,happyaron.xu@gmail.com,,,"
+#~ "rainofchaos@gmail.com,,,happyaron.xu@gmail.com,,,rainofchaos@gmail.com,,,,"
+#~ "emmanuel.milou@savoirfairelinux.com,,rainofchaos@gmail.com,"
+#~ "wantinghard@gmail.com"
diff --git a/sflphone-client-gnome/po/zh_HK/zh_HK.po b/sflphone-client-gnome/po/zh_HK/zh_HK.po
index 7a9dcac8aa..0e4afca0c5 100644
--- a/sflphone-client-gnome/po/zh_HK/zh_HK.po
+++ b/sflphone-client-gnome/po/zh_HK/zh_HK.po
@@ -8,15 +8,15 @@ msgid ""
 msgstr ""
 "Project-Id-Version: SFLphone 0.9.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-14 11:18-0400\n"
-"PO-Revision-Date: 2009-10-14 17:28+0000\n"
+"POT-Creation-Date: 2009-12-03 10:22-0500\n"
+"PO-Revision-Date: 2009-10-26 20:46+0000\n"
 "Last-Translator: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>\n"
 "Language-Team: SavoirFaireLinux Inc <sflphoneteam@savoirfairelinux.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2009-10-26 15:48+0000\n"
+"X-Launchpad-Export-Date: 2009-12-03 15:32+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
 #: ../sflphone-client-gnome/src/accountlist.c:175
@@ -61,24 +61,15 @@ msgstr "Stun伺服器無效"
 msgid "Invalid"
 msgstr "無效"
 
-#: ../sflphone-client-gnome/src/actions.c:54
-#: ../sflphone-client-gnome/src/sflnotify.c:94
-#, c-format
-msgid "%d voice mail"
-msgid_plural "%d voice mails"
-msgstr[0] "%d 個語音郵件"
-
-#: ../sflphone-client-gnome/src/actions.c:83
-#: ../sflphone-client-gnome/src/actions.c:919
-#: ../sflphone-client-gnome/src/actions.c:926
+#: ../sflphone-client-gnome/src/actions.c:98
 msgid "Using account"
 msgstr "使用賬戶"
 
-#: ../sflphone-client-gnome/src/actions.c:89
+#: ../sflphone-client-gnome/src/actions.c:104
 msgid "No registered accounts"
 msgstr "沒有已註冊帳戶"
 
-#: ../sflphone-client-gnome/src/actions.c:268
+#: ../sflphone-client-gnome/src/actions.c:285
 msgid ""
 "Unable to connect to the SFLphone server.\n"
 "Make sure the daemon is running."
@@ -86,26 +77,23 @@ msgstr ""
 "連接SFLphone伺服器失敗.\n"
 "請核查daemon是否正在運行."
 
-#: ../sflphone-client-gnome/src/actions.c:913
-#, c-format
-msgid "IP call - %s"
-msgstr "IP電話- %s"
-
-#: ../sflphone-client-gnome/src/actions.c:922
-msgid "Codec"
-msgstr "編碼"
+#: ../sflphone-client-gnome/src/actions.c:589
+#: ../sflphone-client-gnome/src/actions.c:911
+msgid "Direct SIP call"
+msgstr ""
 
-#: ../sflphone-client-gnome/src/actions.c:1119
+#: ../sflphone-client-gnome/src/actions.c:1103
 #, c-format
 msgid ""
 "<b>Error: No audio codecs found.\n"
 "\n"
-"</b> SFL audio codecs have to be placed in <i>%s</i> or in the "
-"<b>.sflphone</b> directory in your home( <i>%s</i> )"
+"</b> SFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</"
+"b> directory in your home( <i>%s</i> )"
 msgstr ""
 "<b>錯誤:無法找到音訊編碼檔案.\n"
 "\n"
-"</b> SFL聲音編碼檔案應該位于<i>%s</i> 或者位于主目錄( <i>%s</i> )的<b>.sflphone</b>目錄下"
+"</b> SFL聲音編碼檔案應該位于<i>%s</i> 或者位于主目錄( <i>%s</i> )的<b>."
+"sflphone</b>目錄下"
 
 #: ../sflphone-client-gnome/src/errors.c:29
 msgid ""
@@ -149,53 +137,53 @@ msgstr "有電話正在處理中."
 msgid "Do you still want to quit?"
 msgstr "確認要退出?"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:299
+#: ../sflphone-client-gnome/src/mainwindow.c:298
 msgid "SFLphone Error"
 msgstr "SFLphone 出錯"
 
-#: ../sflphone-client-gnome/src/mainwindow.c:391
+#: ../sflphone-client-gnome/src/mainwindow.c:392
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:392
+#: ../sflphone-client-gnome/src/mainwindow.c:393
 msgid "Secure Communication Unavailable"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:393
-#: ../sflphone-client-gnome/src/mainwindow.c:415
+#: ../sflphone-client-gnome/src/mainwindow.c:394
+#: ../sflphone-client-gnome/src/mainwindow.c:416
 msgid "Continue"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:394
-#: ../sflphone-client-gnome/src/mainwindow.c:416
-#: ../sflphone-client-gnome/src/mainwindow.c:430
+#: ../sflphone-client-gnome/src/mainwindow.c:395
+#: ../sflphone-client-gnome/src/mainwindow.c:417
+#: ../sflphone-client-gnome/src/mainwindow.c:431
 msgid "Stop Call"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:413
+#: ../sflphone-client-gnome/src/mainwindow.c:414
 #, c-format
 msgid ""
 "A %s error forced the call with %s to fall under unencrypted mode.\n"
 "Exact reason: %s\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:414
+#: ../sflphone-client-gnome/src/mainwindow.c:415
 msgid "ZRTP negotiation failed"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:427
+#: ../sflphone-client-gnome/src/mainwindow.c:428
 #, c-format
 msgid ""
 "%s wants to stop using secure communication. Confirm will resume "
 "conversation without SRTP.\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:428
+#: ../sflphone-client-gnome/src/mainwindow.c:429
 msgid "Confirm Go Clear"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/mainwindow.c:429
+#: ../sflphone-client-gnome/src/mainwindow.c:430
 msgid "Confirm"
 msgstr ""
 
@@ -210,6 +198,12 @@ msgstr "%s 帳戶 : %s"
 msgid "<i>From</i> %s"
 msgstr "<i>撥入方</i> %s"
 
+#: ../sflphone-client-gnome/src/sflnotify.c:94
+#, c-format
+msgid "%d voice mail"
+msgid_plural "%d voice mails"
+msgstr[0] "%d 個語音郵件"
+
 #: ../sflphone-client-gnome/src/sflnotify.c:111
 #, c-format
 msgid "Calling with %s account <i>%s</i>"
@@ -257,217 +251,413 @@ msgstr "揚聲器音量"
 msgid "Mic volume"
 msgstr "話筒音量"
 
-#: ../sflphone-client-gnome/src/statusicon.c:91
+#: ../sflphone-client-gnome/src/statusicon.c:96
 msgid "_Show main window"
 msgstr "顯示主窗口(S)"
 
-#: ../sflphone-client-gnome/src/statusicon.c:126
+#: ../sflphone-client-gnome/src/statusicon.c:131
 msgid "SFLphone"
 msgstr "SFLphone"
 
-#: ../sflphone-client-gnome/src/statusicon.c:127
+#: ../sflphone-client-gnome/src/statusicon.c:132
 #, c-format
 msgid "%i account configured"
 msgid_plural "%i accounts configured"
 msgstr[0] "已配置了%i個賬戶"
 
 #: ../sflphone-client-gnome/src/toolbar.c:38
-#: ../sflphone-client-gnome/src/uimanager.c:750
+#: ../sflphone-client-gnome/src/uimanager.c:693
+#: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Voicemail"
 msgstr "語音郵件"
 
-#: ../sflphone-client-gnome/src/uimanager.c:403
+#: ../sflphone-client-gnome/src/uimanager.c:117
+msgid "No address book selected"
+msgstr "地址簿"
+
+#: ../sflphone-client-gnome/src/uimanager.c:137
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "Address book"
+msgstr "地址簿"
+
+#: ../sflphone-client-gnome/src/uimanager.c:279
+msgid "Voicemail (%i)"
+msgstr "語音郵件 (%i)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:342
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
 msgstr "SFLphone是一個VoIP客戶端,它兼容SIP和IAX2协议."
 
-#: ../sflphone-client-gnome/src/uimanager.c:406
+#: ../sflphone-client-gnome/src/uimanager.c:345
 msgid "About SFLphone"
 msgstr "有關SFLphone"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1028
+#: ../sflphone-client-gnome/src/uimanager.c:719
+msgid "Call"
+msgstr "電話"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+#: ../sflphone-client-gnome/src/uimanager.c:1184
+msgid "_New call"
+msgstr "新電話(N)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+msgid "Place a new call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:721
+#: ../sflphone-client-gnome/src/uimanager.c:979
 msgid "_Pick up"
 msgstr "撥出(P)"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1040
-#: ../sflphone-client-gnome/src/uimanager.c:1081
+#: ../sflphone-client-gnome/src/uimanager.c:721
+msgid "Answer the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:722
+#: ../sflphone-client-gnome/src/uimanager.c:991
+#: ../sflphone-client-gnome/src/uimanager.c:1032
 msgid "_Hang up"
 msgstr "放下(H)"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1052
-#: ../sflphone-client-gnome/src/uimanager.c:1093
-msgid "On _Hold"
+#: ../sflphone-client-gnome/src/uimanager.c:722
+msgid "Finish the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "O_n hold"
 msgstr "待机"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1064
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "Place the call on hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "O_ff hold"
+msgstr "恢复通話"
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "Place the call off hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:725
+#: ../sflphone-client-gnome/src/uimanager.c:1015
 msgid "_Record"
 msgstr "記錄(R)"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1154
+#: ../sflphone-client-gnome/src/uimanager.c:725
+msgid "Record the current conversation"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Configuration _Assistant"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Run the configuration assistant"
+msgstr "Stun配置有誤"
+
+#: ../sflphone-client-gnome/src/uimanager.c:727
+msgid "Call your voicemail"
+msgstr "%d 個語音郵件"
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "_Close"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "Minimize to system tray"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "_Quit"
+msgstr "編輯(E)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "Quit the program"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:732
+msgid "_Edit"
+msgstr "編輯(E)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "_Copy"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "Copy the selection"
+msgstr "刪除所選賬戶"
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "_Paste"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "Paste the clipboard"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear _history"
+msgstr "清空曆史記錄(C)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear the call history"
+msgstr "清空曆史記錄"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "_Accounts"
+msgstr "帳戶(A)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "Edit your accounts"
+msgstr "當前帳戶"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "_Preferences"
+msgstr "屬性"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "Change your preferences"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:740
+msgid "_View"
+msgstr "查看(V)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:743
+msgid "_Help"
+msgstr "幫助(H)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Contents"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Open the manual"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:745
+msgid "About this application"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "_Transfer"
+msgstr "轉接"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "Transfer the call"
+msgstr "轉給: "
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "_Show toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "Show the toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "_Dialpad"
+msgstr "顯示撥號鍵盤"
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "Show the dialpad"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "_Volume controls"
+msgstr "音量控制(V)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "Show the volume controls"
+msgstr "音量控制(V)"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "_History"
+msgstr "歷史"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "Calls history"
+msgstr "呼叫記錄"
+
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "_Address book"
+msgstr "地址簿"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1003
+#: ../sflphone-client-gnome/src/uimanager.c:1044
+msgid "On _Hold"
+msgstr "待机"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1107
 msgid "_Call back"
 msgstr "回叫(C)"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1226
-msgid "_New call"
-msgstr "新電話(N)"
-
-#: ../sflphone-client-gnome/src/uimanager.c:1300
+#: ../sflphone-client-gnome/src/uimanager.c:1258
 msgid "Edit phone number"
 msgstr "編輯電話號碼"
 
-#: ../sflphone-client-gnome/src/uimanager.c:1311
+#: ../sflphone-client-gnome/src/uimanager.c:1269
 msgid "Edit the phone number before making a call"
 msgstr "撥出電話前編輯電話號碼"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:164
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:180
 msgid "Account Parameters"
 msgstr "帳戶相關參數"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:173
-#: ../sflphone-client-gnome/src/config/assistant.c:294
-#: ../sflphone-client-gnome/src/config/assistant.c:402
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/assistant.c:314
+#: ../sflphone-client-gnome/src/config/assistant.c:427
 msgid "_Alias"
 msgstr "別稱(A)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:181
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:197
 msgid "_Protocol"
 msgstr "協議(P)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:199
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:215
 msgid "Unknown"
 msgstr "未知"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:209
-#: ../sflphone-client-gnome/src/config/assistant.c:302
-#: ../sflphone-client-gnome/src/config/assistant.c:410
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
+#: ../sflphone-client-gnome/src/config/assistant.c:322
+#: ../sflphone-client-gnome/src/config/assistant.c:435
 msgid "_Host name"
 msgstr "主机名稱(H)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:217
-#: ../sflphone-client-gnome/src/config/assistant.c:310
-#: ../sflphone-client-gnome/src/config/assistant.c:418
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:233
+#: ../sflphone-client-gnome/src/config/assistant.c:330
+#: ../sflphone-client-gnome/src/config/assistant.c:443
 msgid "_User name"
 msgstr "使用者名稱(U)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:234
-#: ../sflphone-client-gnome/src/config/assistant.c:326
-#: ../sflphone-client-gnome/src/config/assistant.c:433
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:346
+#: ../sflphone-client-gnome/src/config/assistant.c:458
 msgid "_Password"
 msgstr "密碼(P)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:254
-#: ../sflphone-client-gnome/src/config/assistant.c:344
-#: ../sflphone-client-gnome/src/config/assistant.c:449
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:270
+#: ../sflphone-client-gnome/src/config/assistant.c:363
+#: ../sflphone-client-gnome/src/config/assistant.c:473
+msgid "Show password"
+msgstr "密碼"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:274
+#: ../sflphone-client-gnome/src/config/assistant.c:368
+#: ../sflphone-client-gnome/src/config/assistant.c:478
 msgid "_Voicemail number"
 msgstr "語音郵箱(V)"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:340
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:361
 msgid "Authentication"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:341
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:362
 msgid "Secret"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:466
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:605
 msgid "Credential"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:501
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:640
 msgid "Authentication name"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:512
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:651
 msgid "Password"
 msgstr "密碼"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:535
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:909
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:201
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1056
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:321
 msgid "Security"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:547
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:213
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:333
 msgid "Use TLS transport (sips)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:552
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:218
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:338
 msgid "SRTP key exchange"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:558
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:224
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:699
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
 msgid "Disabled"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:795
 msgid "Registration"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:679
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:800
 msgid "Registration expire"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:809
 msgid "_Comply with RFC 3263"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
-msgid "Network"
-msgstr ""
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:816
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:234
+msgid "Network Interface"
+msgstr "網路連線失敗"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:707
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:830
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:249
 msgid "Local address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:744
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:301
 msgid "Local port"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:752
-msgid "Set published address and port:"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:893
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:928
+msgid "Published address"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:756
-msgid "Using STUN "
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+msgid "Using STUN"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:761
-msgid "Same as local parameters"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:906
+msgid "STUN server URL"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:764
-msgid "Manually"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:914
+msgid "Same as local parameters"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:769
-msgid "Published address"
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:917
+msgid "Set published address and port:"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:777
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:936
 msgid "Published port"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:785
-msgid "STUN server URL"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1027
 msgid "Account settings"
 msgstr "帳戶設置"
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1046
 msgid "Basic"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:904
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1051
 msgid "Advanced"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:169
-msgid "Server returned \""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:164
+#, c-format
+msgid "Server returned \"%s\" (%d)"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
@@ -486,32 +676,18 @@ msgstr "帳戶"
 msgid "Configured Accounts"
 msgstr "已配置帳戶"
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:505
-msgid "There "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "is "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:506
-msgid "are "
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:508
-msgid " active account"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:509
-msgid "s"
-msgstr ""
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:501
+#, c-format
+msgid "There is %d active account"
+msgid_plural "There are %d active accounts"
+msgstr[0] ""
 
-#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:514
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:507
 msgid "You have no active account"
 msgstr ""
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:443
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:556
 msgid "General"
 msgstr "常用配置"
 
@@ -556,225 +732,220 @@ msgid "Select which Evolution address books to use"
 msgstr "選擇使用如下Evolution地址薄"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:404
-#: ../sflphone-client-gnome/src/config/audioconf.c:578
+#: ../sflphone-client-gnome/src/config/audioconf.c:577
 msgid "Name"
 msgstr "名稱"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:69
+#: ../sflphone-client-gnome/src/config/assistant.c:75
 #, c-format
 msgid "This assistant is now finished."
 msgstr "配置完成."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:71
+#: ../sflphone-client-gnome/src/config/assistant.c:77
 msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
 msgstr "你可以隨時在 選項/帳戶 中查看註冊狀態或者修改帳戶信息."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:74
+#: ../sflphone-client-gnome/src/config/assistant.c:80
 msgid "Alias"
 msgstr "別稱"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:78
+#: ../sflphone-client-gnome/src/config/assistant.c:84
 msgid "Server"
 msgstr "伺服器"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:82
+#: ../sflphone-client-gnome/src/config/assistant.c:88
 msgid "Username"
 msgstr "使用者名稱"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:86
+#: ../sflphone-client-gnome/src/config/assistant.c:92
 msgid "Security: "
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:88
+#: ../sflphone-client-gnome/src/config/assistant.c:94
 msgid "SRTP/ZRTP draft-zimmermann"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:90
-#: ../sflphone-client-gnome/src/config/assistant.c:182
+#: ../sflphone-client-gnome/src/config/assistant.c:96
 msgid "None"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:210
+#: ../sflphone-client-gnome/src/config/assistant.c:229
 msgid "SFLphone account creation wizard"
 msgstr "SFLphone賬戶創建嚮導"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:236
+#: ../sflphone-client-gnome/src/config/assistant.c:255
 msgid "Welcome to the Account creation wizard of SFLphone!"
 msgstr "歡迎使用SFLphone帳戶創建嚮導!"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:237
+#: ../sflphone-client-gnome/src/config/assistant.c:256
 msgid "This installation wizard will help you configure an account."
 msgstr "安裝向導將幫助您配置帳戶"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "VoIP Protocols"
 msgstr "VoIP協議"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:251
+#: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "Select an account type"
 msgstr "選擇帳戶類型"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:253
+#: ../sflphone-client-gnome/src/config/assistant.c:272
 msgid "SIP (Session Initiation Protocol)"
 msgstr "SIP(會話初始化協議)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:255
+#: ../sflphone-client-gnome/src/config/assistant.c:274
 msgid "IAX2 (InterAsterix Exchange)"
 msgstr "IAX2(Asterisk內部交換協議)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Account"
 msgstr "帳戶"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:269
+#: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Please select one of the following options"
 msgstr "請選擇以下選項中的一個"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:271
+#: ../sflphone-client-gnome/src/config/assistant.c:290
 msgid "Create a free SIP/IAX2 account on sflphone.org"
 msgstr "在sflphone.org上創建免費的SIP/IAX2帳戶"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:273
+#: ../sflphone-client-gnome/src/config/assistant.c:292
 msgid "Register an existing SIP or IAX2 account"
 msgstr "註冊已存在的SIP或IAX2帳戶"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
+#: ../sflphone-client-gnome/src/config/assistant.c:306
 msgid "SIP account settings"
 msgstr "SIP帳戶配置"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:286
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:306
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "Please fill the following information"
 msgstr "請填寫如下信息"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:352
-#: ../sflphone-client-gnome/src/config/assistant.c:381
+#: ../sflphone-client-gnome/src/config/assistant.c:376
+#: ../sflphone-client-gnome/src/config/assistant.c:405
 msgid "Secure communications with _ZRTP"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "Optional email address"
 msgstr "可選郵件地址"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:365
+#: ../sflphone-client-gnome/src/config/assistant.c:389
 msgid "This email address will be used to send your voicemail messages."
 msgstr "這個郵件地址將被用來發送您的語音"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:373
+#: ../sflphone-client-gnome/src/config/assistant.c:397
 msgid "_Email address"
 msgstr "郵件地址(E)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:394
+#: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "IAX2 account settings"
 msgstr "IAX2帳戶配置"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "Network Address Translation (NAT)"
 msgstr "网络地址解析(NAT)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:467
+#: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "You should probably enable this if you are behind a firewall."
 msgstr "如果你使用網路防火牆,你很有可能需要設定該項."
 
-#: ../sflphone-client-gnome/src/config/assistant.c:476
+#: ../sflphone-client-gnome/src/config/assistant.c:505
 msgid "E_nable STUN"
 msgstr "啟用STUN(n)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:483
+#: ../sflphone-client-gnome/src/config/assistant.c:512
 msgid "_STUN server"
 msgstr "STUN伺服器(S)"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Account Registration"
 msgstr "帳戶註冊"
 
-#: ../sflphone-client-gnome/src/config/assistant.c:497
+#: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Congratulations!"
 msgstr "恭喜!"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:583
+#: ../sflphone-client-gnome/src/config/audioconf.c:582
 msgid "Frequency"
 msgstr "顰律"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:588
+#: ../sflphone-client-gnome/src/config/audioconf.c:587
 msgid "Bitrate"
 msgstr "比率"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:593
+#: ../sflphone-client-gnome/src/config/audioconf.c:592
 msgid "Bandwidth"
 msgstr "顰寬"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:673
+#: ../sflphone-client-gnome/src/config/audioconf.c:670
 msgid "ALSA plugin"
 msgstr "ALSA插件"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:695
+#: ../sflphone-client-gnome/src/config/audioconf.c:692
 msgid "Output"
 msgstr "輸出"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:717
+#: ../sflphone-client-gnome/src/config/audioconf.c:714
 msgid "Input"
 msgstr "輸入"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:752
+#: ../sflphone-client-gnome/src/config/audioconf.c:749
 msgid "_Voice Activity Detection"
 msgstr "聲音狀態檢測(V)"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:762
+#: ../sflphone-client-gnome/src/config/audioconf.c:759
 msgid "_Noise Reduction (Narrow-Band Companding)"
 msgstr "降噪處理-窄頻壓縮(N)"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:798
+#: ../sflphone-client-gnome/src/config/audioconf.c:800
 msgid "Sound Manager"
 msgstr "聲音管理器"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:807
+#: ../sflphone-client-gnome/src/config/audioconf.c:809
 msgid "_Pulseaudio"
 msgstr "Pulseaudio"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:811
+#: ../sflphone-client-gnome/src/config/audioconf.c:813
 msgid "_ALSA"
 msgstr "ALSA"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:816
-msgid "_Mute other applications during a call"
-msgstr "當有來電時靜音其它應用程序(c)"
-
-#: ../sflphone-client-gnome/src/config/audioconf.c:823
+#: ../sflphone-client-gnome/src/config/audioconf.c:819
 msgid "ALSA settings"
 msgstr "ALSA 配置"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:840
+#: ../sflphone-client-gnome/src/config/audioconf.c:836
 msgid "Codecs"
 msgstr "編碼"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:869
+#: ../sflphone-client-gnome/src/config/audioconf.c:865
 msgid "Recordings"
 msgstr "記錄"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:873
+#: ../sflphone-client-gnome/src/config/audioconf.c:869
 msgid "Destination folder"
 msgstr "目標文件夾"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:877
+#: ../sflphone-client-gnome/src/config/audioconf.c:873
 msgid "Select a folder"
 msgstr "選擇文件夾"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:883
+#: ../sflphone-client-gnome/src/config/audioconf.c:879
 msgid "Ringtones"
 msgstr "鈴聲"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:889
+#: ../sflphone-client-gnome/src/config/audioconf.c:885
 msgid "_Enable ringtones"
 msgstr "啟動鈴聲(E)"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:895
+#: ../sflphone-client-gnome/src/config/audioconf.c:891
 msgid "Choose a ringtone"
 msgstr "鈴聲選擇"
 
-#: ../sflphone-client-gnome/src/config/audioconf.c:901
+#: ../sflphone-client-gnome/src/config/audioconf.c:897
 msgid "Audio Files"
 msgstr "音訊檔案"
 
@@ -811,86 +982,66 @@ msgstr "重設電話號碼"
 msgid "_Prefix dialed numbers with"
 msgstr "號碼前綴(P)"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:195
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:225
 msgid ""
 "This profile is used when you want to reach a remote peer simply by typing a "
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
 "also be used if no account can be matched to an incoming or outgoing call."
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:274
-msgid "SIP Port"
-msgstr "SIP端口"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:281
-msgid "UDP Transport"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:319
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:440
 msgid "Desktop Notifications"
 msgstr "桌面提示"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:323
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:444
 msgid "_Enable notifications"
 msgstr "啟動提示(E)"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:329
-msgid "Enable voicemail _notifications"
-msgstr "啟用語音郵箱提示(n)"
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:341
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:450
 msgid "System Tray Icon"
 msgstr "系統托盤圖標"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
 msgid "_Popup main window on incoming call"
 msgstr "來電話時彈出主視窗(P)"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:349
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:457
 msgid "Ne_ver popup main window"
 msgstr "從不彈出主視窗(v)"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:353
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
 msgid "Hide SFLphone window on _startup"
 msgstr "在啟動時隱藏SFLphone主窗口"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:359
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:469
 msgid "Calls History"
 msgstr "打電話歷史"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:362
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:472
 msgid "_Keep my history for at least"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:373
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:483
 msgid "days"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:377
-msgid "Configuration File"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:379
-msgid "Store SIP credentials as MD5 hash"
-msgstr ""
-
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:423
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:536
 msgid "Preferences"
 msgstr "屬性"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:448
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:561
 msgid "Audio"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:566
 msgid "Address Book"
 msgstr "地址簿"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:458
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:571
 msgid "Hooks"
 msgstr "鉤鍵"
 
-#: ../sflphone-client-gnome/src/config/preferencesdialog.c:468
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:581
 msgid "Direct IP calls"
 msgstr ""
 
@@ -898,11 +1049,11 @@ msgstr ""
 msgid "Advanced options for TLS"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:55
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:56
 msgid "TLS transport"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:59
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:60
 msgid ""
 "TLS transport can be used along with UDP for those calls that would\n"
 "require secure sip transactions (aka SIPS). You can configure a different\n"
@@ -911,55 +1062,55 @@ msgid ""
 "port, different one from each other\n"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:100
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:103
 msgid "Certificate of Authority list"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:104
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:107
 msgid "Choose a CA list file (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:115
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:131
 msgid "Public endpoint certificate file"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:119
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:135
 msgid "Choose a public endpoint certificate (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:134
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:159
 msgid "Choose a private key file (optional)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:145
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:181
 msgid "Password for the private key"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:168
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:204
 msgid "TLS protocol method"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:202
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:238
 msgid "TLS cipher list"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:211
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:247
 msgid "Server name instance for outgoing TLS connection"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:219
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:255
 msgid "Negotiation timeout (sec:msec)"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:236
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:272
 msgid "Verify incoming certificates, as a server"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:242
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:278
 msgid "Verify certificates from answer, as a client"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:248
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:284
 msgid "Require certificate for incoming tls connections"
 msgstr ""
 
@@ -967,45 +1118,60 @@ msgstr ""
 msgid "ZRTP Options"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:68
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:69
 msgid "Send Hello Hash in S_DP"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:74
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:75
 msgid "Ask User to Confirm SAS"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:80
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:81
 msgid "_Warn if ZRTP not supported"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:86
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:87
 msgid "Display SAS once for hold events"
 msgstr ""
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:56
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:58
 msgid "Search all"
 msgstr "查詢所有"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:57
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:70
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:82
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:94
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:59
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:72
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:84
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:96
 msgid "Click here to change the search type"
 msgstr "請點擊此處改變查詢方式"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:69
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:71
 msgid "Search by missed call"
 msgstr "從未接電話中查詢"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:81
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:83
 msgid "Search by incoming call"
 msgstr "從來電中查詢"
 
-#: ../sflphone-client-gnome/src/contacts/searchbar.c:93
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:95
 msgid "Search by outgoing call"
 msgstr "從撥出電話中查詢"
 
+#~ msgid "IP call - %s"
+#~ msgstr "IP電話- %s"
+
+#~ msgid "Codec"
+#~ msgstr "編碼"
+
+#~ msgid "_Mute other applications during a call"
+#~ msgstr "當有來電時靜音其它應用程序(c)"
+
+#~ msgid "SIP Port"
+#~ msgstr "SIP端口"
+
+#~ msgid "Enable voicemail _notifications"
+#~ msgstr "啟用語音郵箱提示(n)"
+
 #~ msgid "Account creation wizard"
 #~ msgstr "帳戶創建向導"
 
@@ -1026,9 +1192,6 @@ msgstr "從撥出電話中查詢"
 #~ msgid "Default account"
 #~ msgstr "默認帳戶"
 
-#~ msgid "Transfer to : "
-#~ msgstr "轉給: "
-
 #~ msgid "SFLphone KDE Client"
 #~ msgstr "SFLphone KDE客戶端"
 
@@ -1041,21 +1204,12 @@ msgstr "從撥出電話中查詢"
 #~ msgid "Main screen"
 #~ msgstr "主屏幕"
 
-#~ msgid "Call history"
-#~ msgstr "呼叫記錄"
-
-#~ msgid "Address book"
-#~ msgstr "地址簿"
-
 #~ msgid "Configure SFLphone"
 #~ msgstr "配置SFLphone"
 
 #~ msgid "Display volume controls"
 #~ msgstr "顯示音量控制"
 
-#~ msgid "Display dialpad"
-#~ msgstr "顯示撥號鍵盤"
-
 #~ msgid "Incoming call"
 #~ msgstr "來電"
 
@@ -1080,9 +1234,6 @@ msgstr "從撥出電話中查詢"
 #~ msgid "Hold on"
 #~ msgstr "呼叫保持"
 
-#~ msgid "Transfer"
-#~ msgstr "轉接"
-
 #~ msgid "Record"
 #~ msgstr "記錄"
 
@@ -1101,29 +1252,32 @@ msgstr "從撥出電話中查詢"
 #~ 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."
+#~ "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會使用列表當中第一個已註冊的帳戶。使用箭頭\"上\"和\"下\"可以改變賬戶的順序。選擇賬戶名稱左邊的方框可以"
-#~ "啟用帳戶,取消選擇則會禁用該賬戶。通過\"加\"\"減\"按鈕可以添加或刪除賬戶。點擊\"編輯\"按鈕可以改變賬戶的設置。"
-
-#~ msgid "Remove the selected account"
-#~ msgstr "刪除所選賬戶"
+#~ "在默認情況下,當你打電話時,sflphone會使用列表當中第一個已註冊的帳戶。使用"
+#~ "箭頭\"上\"和\"下\"可以改變賬戶的順序。選擇賬戶名稱左邊的方框可以啟用帳戶,"
+#~ "取消選擇則會禁用該賬戶。通過\"加\"\"減\"按鈕可以添加或刪除賬戶。點擊\"編輯"
+#~ "\"按鈕可以改變賬戶的設置。"
 
 #~ 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 "該按鈕會刪除列表中被選定的賬戶。請確認你的操作。如果你希望繼續使用某個賬戶,請取消對該賬戶的選擇"
+#~ "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 ""
+#~ "該按鈕會刪除列表中被選定的賬戶。請確認你的操作。如果你希望繼續使用某個賬"
+#~ "戶,請取消對該賬戶的選擇"
 
 #~ msgid "Remove"
 #~ msgstr "刪除"
 
 #~ 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 "通過該按鈕可以創建一個新賬戶。添加該賬戶之後你還可以通過編輯按鈕來修改設置。"
+#~ "This button enables you to initialize a new account. You will then be "
+#~ "able to edit it using the form on the right."
+#~ msgstr ""
+#~ "通過該按鈕可以創建一個新賬戶。添加該賬戶之後你還可以通過編輯按鈕來修改設"
+#~ "置。"
 
 #~ msgid "Add"
 #~ msgstr "添加"
@@ -1136,8 +1290,9 @@ msgstr "從撥出電話中查詢"
 #~ "this list which is \"registered\". Change the order of the accounts using "
 #~ "the \"Up\" and \"Down\" arrows."
 #~ msgstr ""
-#~ "在默認情況下,當你打電話時,sflphone會使用列表當中第一個已註冊的帳戶。使用箭頭\"上\"和\"下\"可以改變賬戶的順序。選擇賬戶名稱左邊的方框可以"
-#~ "啟用帳戶,取消選擇則會禁用該賬戶。通過\"加\"\"減\"按鈕可以添加或刪除賬戶。"
+#~ "在默認情況下,當你打電話時,sflphone會使用列表當中第一個已註冊的帳戶。使用"
+#~ "箭頭\"上\"和\"下\"可以改變賬戶的順序。選擇賬戶名稱左邊的方框可以啟用帳戶,"
+#~ "取消選擇則會禁用該賬戶。通過\"加\"\"減\"按鈕可以添加或刪除賬戶。"
 
 #~ msgid "Down"
 #~ msgstr "下"
@@ -1220,9 +1375,6 @@ msgstr "從撥出電話中查詢"
 #~ msgid "On start"
 #~ msgstr "正在啟動"
 
-#~ msgid "Clear history"
-#~ msgstr "清空曆史記錄"
-
 #~ msgid "Trigger on specific SIP header"
 #~ msgstr "激活指定的SIP頭"
 
@@ -1238,33 +1390,9 @@ msgstr "從撥出電話中查詢"
 #~ msgid "Attention:number of results exceeds max displayed."
 #~ msgstr "注意:結果超過可顯示的最大值"
 
-#~ msgid "_Help"
-#~ msgstr "幫助(H)"
-
 #~ msgid "_Account creation wizard"
 #~ msgstr "帳戶創建向導(A)"
 
-#~ msgid "_Call"
-#~ msgstr "電話"
-
-#~ msgid "Clear _history"
-#~ msgstr "清空曆史記錄(C)"
-
-#~ msgid "_Accounts"
-#~ msgstr "帳戶(A)"
-
-#~ msgid "_Edit"
-#~ msgstr "編輯(E)"
-
-#~ msgid "_Volume controls"
-#~ msgstr "音量控制(V)"
-
-#~ msgid "_View"
-#~ msgstr "查看(V)"
-
-#~ msgid "History"
-#~ msgstr "歷史"
-
 #~ msgid "_Enable this account"
 #~ msgstr "啟用該賬戶(E)"
 
@@ -1412,9 +1540,6 @@ msgstr "從撥出電話中查詢"
 #~ msgid "\"Voicemail\" <%s>"
 #~ msgstr "\"語音郵件\" <%s>"
 
-#~ msgid "Off Hold"
-#~ msgstr "恢复通話"
-
 #~ msgid "Record a call"
 #~ msgstr "記錄通話"
 
@@ -1570,12 +1695,12 @@ msgstr "從撥出電話中查詢"
 #~ msgctxt "NAME OF TRANSLATORS"
 #~ msgid "Your names"
 #~ msgstr ""
-#~ "Yun Liu, ,Launchpad Contributions:,Yun Liu, ,Launchpad "
-#~ "Contributions:,Emmanuel Milou,Yun Liu, ,Launchpad Contributions:,Emmanuel "
-#~ "Milou,Yun Liu"
+#~ "Yun Liu, ,Launchpad Contributions:,Yun Liu, ,Launchpad Contributions:,"
+#~ "Emmanuel Milou,Yun Liu, ,Launchpad Contributions:,Emmanuel Milou,Yun "
+#~ "Liu, ,Launchpad Contributions:,Emmanuel Milou,Yun Liu"
 
 #~ msgctxt "EMAIL OF TRANSLATORS"
 #~ msgid "Your emails"
 #~ msgstr ""
-#~ "yunliu2000@gmail.com,,,,,,emmanuel.milou@savoirfairelinux.com,,,,emmanuel.mil"
-#~ "ou@savoirfairelinux.com,"
+#~ "yunliu2000@gmail.com,,,,,,emmanuel.milou@savoirfairelinux.com,,,,emmanuel."
+#~ "milou@savoirfairelinux.com,,,,emmanuel.milou@savoirfairelinux.com,"
-- 
GitLab


From a74d099103f72cc237ba39d562f7e233b98f3a5a Mon Sep 17 00:00:00 2001
From: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
Date: Thu, 3 Dec 2009 11:41:43 -0500
Subject: [PATCH 050/188] [#2402] make indent

---
 sflphone-common/src/audio/mainbuffer.cpp |  63 +++++++-------
 sflphone-common/src/conference.cpp       |   2 +-
 sflphone-common/src/iax/iaxvoiplink.cpp  |   2 +-
 sflphone-common/src/managerimpl.cpp      |  15 ++--
 sflphone-common/src/sip/sipvoiplink.cpp  | 104 ++++++++++++-----------
 5 files changed, 97 insertions(+), 89 deletions(-)

diff --git a/sflphone-common/src/audio/mainbuffer.cpp b/sflphone-common/src/audio/mainbuffer.cpp
index 46bec0f751..35c2470dec 100644
--- a/sflphone-common/src/audio/mainbuffer.cpp
+++ b/sflphone-common/src/audio/mainbuffer.cpp
@@ -79,7 +79,7 @@ bool MainBuffer::removeCallIDSet (CallID set_id)
 
     if (callid_set != NULL) {
         if (_callIDMap.erase (set_id) != 0) {
-	    // _debug ("          callid set %s erased!\n", set_id.c_str());
+            // _debug ("          callid set %s erased!\n", set_id.c_str());
             return true;
         } else {
             _debug ("removeCallIDSet error while removing callid set %s!\n", set_id.c_str());
@@ -107,7 +107,7 @@ void MainBuffer::removeCallIDfromSet (CallID set_id, CallID call_id)
 
     if (callid_set != NULL) {
         if (callid_set->erase (call_id) != 0) {
-	   // _debug ("          callid %s erased from set %s!\n", call_id.c_str(), set_id.c_str());
+            // _debug ("          callid %s erased from set %s!\n", call_id.c_str(), set_id.c_str());
         } else {
             _debug ("removeCallIDfromSet error while removing callid %s from set %s!\n", call_id.c_str(), set_id.c_str());
         }
@@ -147,7 +147,7 @@ bool MainBuffer::removeRingBuffer (CallID call_id)
 
     if (ring_buffer != NULL) {
         if (_ringBufferMap.erase (call_id) != 0) {
-	  // _debug ("removeRingBuffer ringbuffer %s removed!\n", call_id.c_str());
+            // _debug ("removeRingBuffer ringbuffer %s removed!\n", call_id.c_str());
             return true;
         } else {
             _debug ("removeRingBuffer error while deleting ringbuffer %s!\n", call_id.c_str());
@@ -545,27 +545,28 @@ void MainBuffer::stateInfo()
     CallIDMap::iterator iter_call = _callIDMap.begin();
 
     // print each call and bound call ids
-    while(iter_call != _callIDMap.end()) {
 
-        std::string dbg_str("    Call: ");
-	dbg_str.append(std::string(iter_call->first.c_str()));
-	dbg_str.append(std::string("   is bound to: "));
- 
-	CallIDSet* call_id_set = (CallIDSet*)iter_call->second;
+    while (iter_call != _callIDMap.end()) {
 
-	CallIDSet::iterator iter_call_id = call_id_set->begin();
+        std::string dbg_str ("    Call: ");
+        dbg_str.append (std::string (iter_call->first.c_str()));
+        dbg_str.append (std::string ("   is bound to: "));
 
-	while (iter_call_id != call_id_set->end()) {
+        CallIDSet* call_id_set = (CallIDSet*) iter_call->second;
 
-	    dbg_str.append (std::string (*iter_call_id));
-	    dbg_str.append (std::string (", "));
+        CallIDSet::iterator iter_call_id = call_id_set->begin();
 
-	    iter_call_id++;
-	}
+        while (iter_call_id != call_id_set->end()) {
 
-	_debug ("%s\n", dbg_str.c_str());
+            dbg_str.append (std::string (*iter_call_id));
+            dbg_str.append (std::string (", "));
 
-	iter_call++;
+            iter_call_id++;
+        }
+
+        _debug ("%s\n", dbg_str.c_str());
+
+        iter_call++;
     }
 
     // Print ringbuffers ids and readpointers
@@ -573,36 +574,36 @@ void MainBuffer::stateInfo()
 
     while (iter_buffer != _ringBufferMap.end()) {
 
-        RingBuffer* rbuffer = (RingBuffer*)iter_buffer->second;
-	ReadPointer* rpointer = NULL;
+        RingBuffer* rbuffer = (RingBuffer*) iter_buffer->second;
+        ReadPointer* rpointer = NULL;
 
         std::string dbg_str ("    Buffer: ");
 
         dbg_str.append (std::string (iter_buffer->first.c_str()));
         dbg_str.append (std::string ("   as read pointer: "));
 
-	if(rbuffer)
-	    rpointer = rbuffer->getReadPointerList();
+        if (rbuffer)
+            rpointer = rbuffer->getReadPointerList();
+
+        if (rpointer) {
 
-	if(rpointer) {
+            ReadPointer::iterator iter_pointer = rpointer->begin();
 
-	    ReadPointer::iterator iter_pointer = rpointer->begin();
-	    
-	    while(iter_pointer != rpointer->end()) {
+            while (iter_pointer != rpointer->end()) {
 
-	        dbg_str.append (string (iter_pointer->first.c_str()));
+                dbg_str.append (string (iter_pointer->first.c_str()));
                 dbg_str.append (string (", "));
 
-	        iter_pointer++;
-	    }
-	}
+                iter_pointer++;
+            }
+        }
 
-	_debug ("%s\n", dbg_str.c_str());
+        _debug ("%s\n", dbg_str.c_str());
 
         iter_buffer++;
     }
 
 
 
-    
+
 }
diff --git a/sflphone-common/src/conference.cpp b/sflphone-common/src/conference.cpp
index 4149e29caf..70e70d831e 100644
--- a/sflphone-common/src/conference.cpp
+++ b/sflphone-common/src/conference.cpp
@@ -100,7 +100,7 @@ void Conference::bindParticipant (CallID participant_id)
 
             if (participant_id != (*iter)) {
 
-	      // _debug ("---- Conference:: bind callid %s with %s in conference add\n", participant_id.c_str(), (*iter).c_str());
+                // _debug ("---- Conference:: bind callid %s with %s in conference add\n", participant_id.c_str(), (*iter).c_str());
                 Manager::instance().getAudioDriver()->getMainBuffer()->bindCallID (participant_id, *iter);
             }
 
diff --git a/sflphone-common/src/iax/iaxvoiplink.cpp b/sflphone-common/src/iax/iaxvoiplink.cpp
index b6377ea7f4..d6c3b4f17d 100644
--- a/sflphone-common/src/iax/iaxvoiplink.cpp
+++ b/sflphone-common/src/iax/iaxvoiplink.cpp
@@ -831,7 +831,7 @@ IAXVoIPLink::iaxHandleCallEvent (iax_event* event, IAXCall* call)
                 Manager::instance().peerAnsweredCall (id);
 
                 // start audio here?
-		audiolayer->startStream();
+                audiolayer->startStream();
                 audiolayer->flushMain();
             } else {
                 // deja connecté ?
diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index c97310af27..e8b7edaaa8 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -1246,8 +1246,8 @@ ManagerImpl::joinParticipant (const CallID& call_id1, const CallID& call_id2)
 
     // switchCall(conf->getConfID());
 
-    if(_audiodriver)
-      _audiodriver->getMainBuffer()->stateInfo();
+    if (_audiodriver)
+        _audiodriver->getMainBuffer()->stateInfo();
 
 }
 
@@ -1349,7 +1349,7 @@ ManagerImpl::removeParticipant (const CallID& call_id)
 
     }
 
-     if(_audiodriver)
+    if (_audiodriver)
         _audiodriver->getMainBuffer()->stateInfo();
 
 }
@@ -1498,7 +1498,7 @@ ManagerImpl::addStream (const CallID& call_id)
 
     }
 
-    if(_audiodriver)
+    if (_audiodriver)
         _audiodriver->getMainBuffer()->stateInfo();
 }
 
@@ -1513,7 +1513,7 @@ ManagerImpl::removeStream (const CallID& call_id)
         removeParticipant (call_id);
     }
 
-    if(_audiodriver)
+    if (_audiodriver)
         _audiodriver->getMainBuffer()->stateInfo();
 }
 
@@ -1546,10 +1546,11 @@ ManagerImpl::initRegisterAccounts()
         if (iter->second) {
             iter->second->loadConfig();
 
-	    // TODO: take off this protection by storing localIPAddress using interface name
-	    setConfig(iter->second->getAccountID(), LOCAL_ADDRESS, "0.0.0.0");
+            // TODO: take off this protection by storing localIPAddress using interface name
+            setConfig (iter->second->getAccountID(), LOCAL_ADDRESS, "0.0.0.0");
 
             /* If the account is set as enabled, try to register */
+
             if (iter->second->isEnabled()) {
                 status = iter->second->registerVoIPLink();
 
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index a712ae4636..3cf1daf653 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -682,15 +682,18 @@ SIPVoIPLink::newOutgoingCall (const CallID& id, const std::string& toUrl)
 
         call->setPeerNumber (toUri);
 
-		localAddr = account->getLocalAddress ();
-		if (localAddr == "0.0.0.0")
-			loadSIPLocalIP (&localAddr);
+        localAddr = account->getLocalAddress ();
+
+        if (localAddr == "0.0.0.0")
+            loadSIPLocalIP (&localAddr);
+
         setCallAudioLocal (call, localAddr);
 
         // May use the published address as well
-		account->isStunEnabled () ? addrSdp = account->getPublishedAddress () : addrSdp = account->getLocalAddress ();		
-		if (addrSdp == "0.0.0.0")
-			loadSIPLocalIP (&addrSdp);
+        account->isStunEnabled () ? addrSdp = account->getPublishedAddress () : addrSdp = account->getLocalAddress ();
+
+        if (addrSdp == "0.0.0.0")
+            loadSIPLocalIP (&addrSdp);
 
         try {
             _debug ("Creating new rtp session in newOutgoingCall\n");
@@ -946,7 +949,7 @@ int SIPVoIPLink::inv_session_reinvite (SIPCall *call, std::string direction)
         _debug ("! SIP Failure: unable to find local_sdp\n");
         return !PJ_SUCCESS;
     }
-	
+
     // Reinvite only if connected
     // Build the local SDP offer
     status = call->getLocalSDP()->create_initial_offer();
@@ -1460,10 +1463,11 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
             return !PJ_SUCCESS;
         }
 
-		// Set the local address
-		localAddress = account->getLocalAddress ();
+        // Set the local address
+        localAddress = account->getLocalAddress ();
+
         // Set SDP parameters - Set to local or published address
-		account->isStunEnabled () ? addrSdp = account->getPublishedAddress () :  addrSdp = account->getLocalAddress (); 
+        account->isStunEnabled () ? addrSdp = account->getPublishedAddress () :  addrSdp = account->getLocalAddress ();
 
         _debug ("new_ip_to_ip_call localAddress: %s\n", localAddress.c_str());
 
@@ -1472,9 +1476,9 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
             loadSIPLocalIP (&localAddress);
         }
 
-		if (addrSdp == "0.0.0.0") {
-			addrSdp = localAddress;
-		}
+        if (addrSdp == "0.0.0.0") {
+            addrSdp = localAddress;
+        }
 
         setCallAudioLocal (call, localAddress);
 
@@ -1649,11 +1653,11 @@ pj_status_t SIPVoIPLink::enable_dns_srv_resolver (pjsip_endpoint *endpt, pj_dns_
     }
 
     // Build the nameservers list needed by pjsip
-    if ((scount = dns_servers.size ()) <= 0) {
-        _debug("No server detected while fetching DNS information, stop dns resolution\n");
-	return 0;
+    if ( (scount = dns_servers.size ()) <= 0) {
+        _debug ("No server detected while fetching DNS information, stop dns resolution\n");
+        return 0;
     }
-    
+
     pj_str_t nameservers[scount];
 
     for (i = 0; i<scount; i++) {
@@ -1970,8 +1974,8 @@ int SIPVoIPLink::createUDPServer (AccountID id)
     } else {
         // We are trying to initialize a UDP transport available for all local accounts and direct IP calls
         if (account->getLocalAddress () != "0.0.0.0") {
-	    listeningAddress = account->getLocalAddress ();
-	}
+            listeningAddress = account->getLocalAddress ();
+        }
 
         listeningPort = account->getLocalPort ();
     }
@@ -2033,8 +2037,8 @@ int SIPVoIPLink::createUDPServer (AccountID id)
         if (account == NULL)
             _localUDPTransport = transport;
         else {
-	    account->setAccountTransport (transport);
-	}
+            account->setAccountTransport (transport);
+        }
     }
 
     _debug ("Transport initialized successfully on %s:%i\n", listeningAddress.c_str (), listeningPort);
@@ -2856,35 +2860,34 @@ void call_on_forked (pjsip_inv_session *inv, pjsip_event *e)
 
 void call_on_tsx_changed (pjsip_inv_session *inv, pjsip_transaction *tsx, pjsip_event *e)
 {
-    _debug("call_on_tsx_changed to state %s\n", transactionStateMap[tsx->state]);
+    _debug ("call_on_tsx_changed to state %s\n", transactionStateMap[tsx->state]);
 
     if (tsx->role==PJSIP_ROLE_UAS && tsx->state==PJSIP_TSX_STATE_TRYING &&
-        pjsip_method_cmp (&tsx->method, &pjsip_refer_method) ==0) {
+            pjsip_method_cmp (&tsx->method, &pjsip_refer_method) ==0) {
         /** Handle the refer method **/
         onCallTransfered (inv, e->body.tsx_state.src.rdata);
-    }
-    else if (tsx->role==PJSIP_ROLE_UAS && tsx->state==PJSIP_TSX_STATE_TRYING) {
+    } else if (tsx->role==PJSIP_ROLE_UAS && tsx->state==PJSIP_TSX_STATE_TRYING) {
 
-	if (e && e->body.rx_msg.rdata) {
+        if (e && e->body.rx_msg.rdata) {
 
-	    pjsip_tx_data* t_data;
-	    pjsip_rx_data* r_data = e->body.rx_msg.rdata;
+            pjsip_tx_data* t_data;
+            pjsip_rx_data* r_data = e->body.rx_msg.rdata;
 
-	    if(r_data->msg_info.msg->line.req.method.id == PJSIP_OTHER_METHOD) {
+            if (r_data->msg_info.msg->line.req.method.id == PJSIP_OTHER_METHOD) {
 
-	        std::string method_name = "INFO";
-		std::string request =  r_data->msg_info.msg->line.req.method.name.ptr;
+                std::string method_name = "INFO";
+                std::string request =  r_data->msg_info.msg->line.req.method.name.ptr;
 
-		if (request.find (method_name) != (size_t)-1) {
+                if (request.find (method_name) != (size_t)-1) {
 
-		    _debug("%s\n", pjsip_rx_data_get_info(r_data));
+                    _debug ("%s\n", pjsip_rx_data_get_info (r_data));
 
-		    pjsip_dlg_create_response (inv->dlg, r_data, PJSIP_SC_OK, NULL, &t_data);
-		  
-		    pjsip_dlg_send_response(inv->dlg, tsx, t_data);
-		}
-	    }
-	}
+                    pjsip_dlg_create_response (inv->dlg, r_data, PJSIP_SC_OK, NULL, &t_data);
+
+                    pjsip_dlg_send_response (inv->dlg, tsx, t_data);
+                }
+            }
+        }
     }
 }
 
@@ -3121,7 +3124,7 @@ mod_on_rx_request (pjsip_rx_data *rdata)
 
     /************************************************************************************************/
 
-    _debug("create a new call\n");
+    _debug ("create a new call\n");
 
     // Generate a new call ID for the incoming call!
     id = Manager::instance().getNewCallID();
@@ -3137,6 +3140,7 @@ mod_on_rx_request (pjsip_rx_data *rdata)
 
 
     std::string addrToUse, addrSdp ="0.0.0.0";
+
     pjsip_tpselector *tp;
 
     account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (account_id));
@@ -3144,12 +3148,12 @@ mod_on_rx_request (pjsip_rx_data *rdata)
     if (account != NULL) {
 
         // May use the published address as well
-		addrToUse = account->getLocalAddress ();
-		account->isStunEnabled () ? addrSdp = account->getPublishedAddress () : addrSdp = account->getLocalAddress ();		
-		// Set the appropriate transport to have the right VIA header
-		link->init_transport_selector (account->getAccountTransport (), &tp);
+        addrToUse = account->getLocalAddress ();
+        account->isStunEnabled () ? addrSdp = account->getPublishedAddress () : addrSdp = account->getLocalAddress ();
+        // Set the appropriate transport to have the right VIA header
+        link->init_transport_selector (account->getAccountTransport (), &tp);
     }
-    
+
     if (addrToUse == "0.0.0.0") {
         link->loadSIPLocalIP (&addrToUse);
     }
@@ -3169,7 +3173,8 @@ mod_on_rx_request (pjsip_rx_data *rdata)
 
     // Notify UI there is an incoming call
 
-    _debug("Add call to account link\n");
+    _debug ("Add call to account link\n");
+
     if (Manager::instance().incomingCall (call, account_id)) {
         // Add this call to the callAccountMap in ManagerImpl
         Manager::instance().getAccountLink (account_id)->addCall (call);
@@ -3210,8 +3215,9 @@ mod_on_rx_request (pjsip_rx_data *rdata)
 
     // Specify media capability during invite session creation
     status = pjsip_inv_create_uas (dialog, rdata, call->getLocalSDP()->get_local_sdp_session(), 0, &inv);
-	// Explicitly set the transport
-	status = pjsip_dlg_set_transport (dialog, tp);
+
+    // Explicitly set the transport
+    status = pjsip_dlg_set_transport (dialog, tp);
 
 
     PJ_ASSERT_RETURN (status == PJ_SUCCESS, 1);
@@ -3768,7 +3774,7 @@ bool setCallAudioLocal (SIPCall* call, std::string localIP)
         if (account->isStunEnabled ()) {
             // If use Stun server
             callLocalExternAudioPort = account->getStunPort ();
-			//localIP = account->getPublishedAddress ();
+            //localIP = account->getPublishedAddress ();
         }
 
         _debug ("            Setting local ip address: %s\n", localIP.c_str());
-- 
GitLab


From 4e0edeefd98e092af8089adfc9d1da937b85b9d3 Mon Sep 17 00:00:00 2001
From: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
Date: Thu, 3 Dec 2009 11:44:43 -0500
Subject: [PATCH 051/188] [#2402] Add user documentation

---
 sflphone-client-gnome/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sflphone-client-gnome/Makefile.am b/sflphone-client-gnome/Makefile.am
index e8c86ca078..47bb88964f 100644
--- a/sflphone-client-gnome/Makefile.am
+++ b/sflphone-client-gnome/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = src pixmaps tests man po
+SUBDIRS = src pixmaps tests man po doc
 
 ACLOCAL_AMFLAGS = -I m4
 
-- 
GitLab


From 3e48f48e2efbdf779111b916e45f17ce1e6b31df Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 3 Dec 2009 12:30:43 -0500
Subject: [PATCH 052/188] [#2519] Add debug info concerning sip transport used
 on sending/receiving requests

---
 sflphone-common/src/sip/sipvoiplink.cpp | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index a712ae4636..050ea5c14c 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -613,6 +613,8 @@ int SIPVoIPLink::sendRegister (AccountID id)
 
     account->setRegistrationInfo (regc);
 
+    _debug("Sent account registration using transport: %s\n", account->getAccountTransport()->info);
+
     return true;
 }
 
@@ -1339,6 +1341,8 @@ SIPVoIPLink::SIPStartCall (SIPCall* call, const std::string& subject UNUSED)
         return false;
     }
 
+    _debug("Sent invite request using transport: %s\n", account->getAccountTransport()->info);
+
     return true;
 }
 
@@ -2018,7 +2022,7 @@ int SIPVoIPLink::createUDPServer (AccountID id)
 
     tpmgr = pjsip_endpt_get_tpmgr (_endpt);
 
-    _debug ("number of transport: %i\n", pjsip_tpmgr_get_transport_count (tpmgr));
+    _debug ("Number of transport: %i\n", pjsip_tpmgr_get_transport_count (tpmgr));
 
     pjsip_tpmgr_dump_transports (tpmgr);
 
@@ -3148,6 +3152,8 @@ mod_on_rx_request (pjsip_rx_data *rdata)
 		account->isStunEnabled () ? addrSdp = account->getPublishedAddress () : addrSdp = account->getLocalAddress ();		
 		// Set the appropriate transport to have the right VIA header
 		link->init_transport_selector (account->getAccountTransport (), &tp);
+
+		_debug("Answer invite request using transport: %s\n", account->getAccountTransport()->info);
     }
     
     if (addrToUse == "0.0.0.0") {
-- 
GitLab


From 18700e6af5b3e65c5d1b5bc3631317418f61d5ae Mon Sep 17 00:00:00 2001
From: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
Date: Thu, 3 Dec 2009 12:39:33 -0500
Subject: [PATCH 053/188] [#1060] Oups ... add danish translation for real

---
 sflphone-client-gnome/po/da/da.po | 1215 +++++++++++++++++++++++++++++
 1 file changed, 1215 insertions(+)
 create mode 100644 sflphone-client-gnome/po/da/da.po

diff --git a/sflphone-client-gnome/po/da/da.po b/sflphone-client-gnome/po/da/da.po
new file mode 100644
index 0000000000..1c011969ac
--- /dev/null
+++ b/sflphone-client-gnome/po/da/da.po
@@ -0,0 +1,1215 @@
+# Danish translation for sflphone
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the sflphone package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sflphone\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-12-03 10:22-0500\n"
+"PO-Revision-Date: 2009-11-03 03:52+0000\n"
+"Last-Translator: Jonas Fonseca <fonseca@diku.dk>\n"
+"Language-Team: Danish <da@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Launchpad-Export-Date: 2009-12-03 15:32+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../sflphone-client-gnome/src/accountlist.c:175
+msgid "Registered"
+msgstr "Registreret"
+
+#: ../sflphone-client-gnome/src/accountlist.c:178
+msgid "Not Registered"
+msgstr "Ikke registreret"
+
+#: ../sflphone-client-gnome/src/accountlist.c:181
+msgid "Trying..."
+msgstr "Forsøger..."
+
+#: ../sflphone-client-gnome/src/accountlist.c:184
+#: ../sflphone-client-gnome/src/sflnotify.c:131
+#: ../sflphone-client-gnome/src/sflnotify.c:148
+msgid "Error"
+msgstr "Fejl"
+
+#: ../sflphone-client-gnome/src/accountlist.c:187
+msgid "Authentication Failed"
+msgstr "Godkendelse mislykkedes"
+
+#: ../sflphone-client-gnome/src/accountlist.c:190
+msgid "Network unreachable"
+msgstr "Netværk kan ikke nås"
+
+#: ../sflphone-client-gnome/src/accountlist.c:193
+msgid "Host unreachable"
+msgstr "Vært kan ikke nås"
+
+#: ../sflphone-client-gnome/src/accountlist.c:196
+msgid "Stun configuration error"
+msgstr "Stun konfigureringsfejl"
+
+#: ../sflphone-client-gnome/src/accountlist.c:199
+msgid "Stun server invalid"
+msgstr "Stun server ugyldig"
+
+#: ../sflphone-client-gnome/src/accountlist.c:202
+msgid "Invalid"
+msgstr "Ugyldig"
+
+#: ../sflphone-client-gnome/src/actions.c:98
+msgid "Using account"
+msgstr "Benytter konto"
+
+#: ../sflphone-client-gnome/src/actions.c:104
+msgid "No registered accounts"
+msgstr "Ingen registrerede konti"
+
+#: ../sflphone-client-gnome/src/actions.c:285
+msgid ""
+"Unable to connect to the SFLphone server.\n"
+"Make sure the daemon is running."
+msgstr ""
+"Forbindelse til SFLphone serveren kan ikke oprettes.\n"
+"Sørg for at server-dæmonen kører."
+
+#: ../sflphone-client-gnome/src/actions.c:589
+#: ../sflphone-client-gnome/src/actions.c:911
+msgid "Direct SIP call"
+msgstr "Direkte IP opkald"
+
+#: ../sflphone-client-gnome/src/actions.c:1103
+#, c-format
+msgid ""
+"<b>Error: No audio codecs found.\n"
+"\n"
+"</b> SFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</"
+"b> directory in your home( <i>%s</i> )"
+msgstr ""
+"<b>Fejl: Ingen audio-codec fundet\n"
+"\n"
+"</b>SFL audio-codecs skal installeres i <i>%s</i> eller i mappen <b>."
+"sflphone</b> i dit hjemmekatalog (<i>%s</i>)"
+
+#: ../sflphone-client-gnome/src/errors.c:29
+msgid ""
+"ALSA notification\n"
+"\n"
+"Error while opening playback device"
+msgstr ""
+"ALSA meddelelse\n"
+"\n"
+"Fejl opstod mens afspilningsenhed blev åbnet"
+
+#: ../sflphone-client-gnome/src/errors.c:32
+msgid ""
+"ALSA notification\n"
+"\n"
+"Error while opening capture device"
+msgstr ""
+"ALSA meddelelse\n"
+"\n"
+"Fejl opstod mens optageenhed blev åbnet"
+
+#: ../sflphone-client-gnome/src/errors.c:35
+msgid ""
+"Pulseaudio notification\n"
+"\n"
+"Pulseaudio is not running"
+msgstr ""
+"PulseAudio meddelelse\n"
+"\n"
+"PulseAudio er tilgængelig"
+
+#: ../sflphone-client-gnome/src/mainwindow.c:73
+msgid "There is one call in progress."
+msgstr "Et igangværende opkald eksisterer"
+
+#: ../sflphone-client-gnome/src/mainwindow.c:77
+msgid "There are calls in progress."
+msgstr "Igangværende opkald eksisterer"
+
+#: ../sflphone-client-gnome/src/mainwindow.c:86
+msgid "Do you still want to quit?"
+msgstr "Ønsker du stadig at afslutte"
+
+#: ../sflphone-client-gnome/src/mainwindow.c:298
+msgid "SFLphone Error"
+msgstr "SFLphone fejl"
+
+#: ../sflphone-client-gnome/src/mainwindow.c:392
+#, c-format
+msgid "ZRTP is not supported by peer %s\n"
+msgstr "ZRTP er ikke understøttet af modtageren %s\n"
+
+#: ../sflphone-client-gnome/src/mainwindow.c:393
+msgid "Secure Communication Unavailable"
+msgstr "Sikker kommunikation ikke tilgængelig"
+
+#: ../sflphone-client-gnome/src/mainwindow.c:394
+#: ../sflphone-client-gnome/src/mainwindow.c:416
+msgid "Continue"
+msgstr "Fortsæt"
+
+#: ../sflphone-client-gnome/src/mainwindow.c:395
+#: ../sflphone-client-gnome/src/mainwindow.c:417
+#: ../sflphone-client-gnome/src/mainwindow.c:431
+msgid "Stop Call"
+msgstr "Afslut opkald"
+
+#: ../sflphone-client-gnome/src/mainwindow.c:414
+#, c-format
+msgid ""
+"A %s error forced the call with %s to fall under unencrypted mode.\n"
+"Exact reason: %s\n"
+msgstr ""
+"En \"%s\"-fejl medførte at opkaldet til %s blev ændret til ukrypteret "
+"tilstand.\n"
+"Den præcise årsag: %s\n"
+
+#: ../sflphone-client-gnome/src/mainwindow.c:415
+msgid "ZRTP negotiation failed"
+msgstr "ZRTP-forhandling mislykkedes"
+
+#: ../sflphone-client-gnome/src/mainwindow.c:428
+#, c-format
+msgid ""
+"%s wants to stop using secure communication. Confirm will resume "
+"conversation without SRTP.\n"
+msgstr ""
+"%s ønsker at afslutte brugen af sikker kommunikation. Ved at godkende vil "
+"samtalen fortætte uden SRTP\n"
+
+#: ../sflphone-client-gnome/src/mainwindow.c:429
+msgid "Confirm Go Clear"
+msgstr "Godkend sikkerhedsændring"
+
+#: ../sflphone-client-gnome/src/mainwindow.c:430
+msgid "Confirm"
+msgstr "Godkend"
+
+#: ../sflphone-client-gnome/src/sflnotify.c:71
+#: ../sflphone-client-gnome/src/sflnotify.c:91
+#, c-format
+msgid "%s account : %s"
+msgstr "%s konto : %s"
+
+#: ../sflphone-client-gnome/src/sflnotify.c:75
+#, c-format
+msgid "<i>From</i> %s"
+msgstr "<i>Fra</i> %s"
+
+#: ../sflphone-client-gnome/src/sflnotify.c:94
+#, c-format
+msgid "%d voice mail"
+msgid_plural "%d voice mails"
+msgstr[0] "%d indtalt besked"
+msgstr[1] "%d indtalte beskeder"
+
+#: ../sflphone-client-gnome/src/sflnotify.c:111
+#, c-format
+msgid "Calling with %s account <i>%s</i>"
+msgstr "Kalder op med %s konto <i>%s</i>"
+
+#: ../sflphone-client-gnome/src/sflnotify.c:115
+msgid "Current account"
+msgstr "Nuværende konto"
+
+#: ../sflphone-client-gnome/src/sflnotify.c:130
+msgid "You have no accounts set up"
+msgstr "Du har ingen oprettede konti"
+
+#: ../sflphone-client-gnome/src/sflnotify.c:147
+msgid "You have no registered accounts"
+msgstr "Du har ingen registrerede konti"
+
+#: ../sflphone-client-gnome/src/sflnotify.c:190
+#, c-format
+msgid ""
+"<i>With:</i> %s \n"
+"using %s"
+msgstr ""
+"<i>Med:</i> %s \n"
+"benyttende %s"
+
+#: ../sflphone-client-gnome/src/sflnotify.c:205
+#, c-format
+msgid "%s does not support ZRTP."
+msgstr "%s understøtter ikke ZRTP."
+
+#: ../sflphone-client-gnome/src/sflnotify.c:220
+#, c-format
+msgid "ZRTP negotiation failed with %s"
+msgstr "ZRTP forhandling mislykkedes med %s"
+
+#: ../sflphone-client-gnome/src/sflnotify.c:235
+#, c-format
+msgid "<i>With:</i> %s"
+msgstr "<i>Med:</i> %s"
+
+#: ../sflphone-client-gnome/src/sliders.c:162
+msgid "Speakers volume"
+msgstr "Højtaler lydstyrke"
+
+#: ../sflphone-client-gnome/src/sliders.c:164
+msgid "Mic volume"
+msgstr "Mikrofon lydstyrke"
+
+#: ../sflphone-client-gnome/src/statusicon.c:96
+msgid "_Show main window"
+msgstr "_Vis hovedvindue"
+
+#: ../sflphone-client-gnome/src/statusicon.c:131
+msgid "SFLphone"
+msgstr "SFLphone"
+
+#: ../sflphone-client-gnome/src/statusicon.c:132
+#, c-format
+msgid "%i account configured"
+msgid_plural "%i accounts configured"
+msgstr[0] "%i konto oprettet"
+msgstr[1] "%i konti oprettet"
+
+#: ../sflphone-client-gnome/src/toolbar.c:38
+#: ../sflphone-client-gnome/src/uimanager.c:693
+#: ../sflphone-client-gnome/src/uimanager.c:727
+msgid "Voicemail"
+msgstr "Talebesked"
+
+#: ../sflphone-client-gnome/src/uimanager.c:117
+msgid "No address book selected"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:137
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "Address book"
+msgstr "Adressebog"
+
+#: ../sflphone-client-gnome/src/uimanager.c:279
+msgid "Voicemail (%i)"
+msgstr "Talebesked"
+
+#: ../sflphone-client-gnome/src/uimanager.c:342
+msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
+msgstr "SFLphone er en VoIP-klient kompatibel med SIP og IAX2 protokoller"
+
+#: ../sflphone-client-gnome/src/uimanager.c:345
+msgid "About SFLphone"
+msgstr "Om SFLphone"
+
+#: ../sflphone-client-gnome/src/uimanager.c:719
+msgid "Call"
+msgstr "Afslut opkald"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+#: ../sflphone-client-gnome/src/uimanager.c:1184
+msgid "_New call"
+msgstr "_Nyt opkald"
+
+#: ../sflphone-client-gnome/src/uimanager.c:720
+msgid "Place a new call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:721
+#: ../sflphone-client-gnome/src/uimanager.c:979
+msgid "_Pick up"
+msgstr "_Svar"
+
+#: ../sflphone-client-gnome/src/uimanager.c:721
+msgid "Answer the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:722
+#: ../sflphone-client-gnome/src/uimanager.c:991
+#: ../sflphone-client-gnome/src/uimanager.c:1032
+msgid "_Hang up"
+msgstr "_Læg på"
+
+#: ../sflphone-client-gnome/src/uimanager.c:722
+msgid "Finish the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "O_n hold"
+msgstr "I _venteposition"
+
+#: ../sflphone-client-gnome/src/uimanager.c:723
+msgid "Place the call on hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "O_ff hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:724
+msgid "Place the call off hold"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:725
+#: ../sflphone-client-gnome/src/uimanager.c:1015
+msgid "_Record"
+msgstr "_Optag"
+
+#: ../sflphone-client-gnome/src/uimanager.c:725
+msgid "Record the current conversation"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Configuration _Assistant"
+msgstr "Konfigurationsfil"
+
+#: ../sflphone-client-gnome/src/uimanager.c:726
+msgid "Run the configuration assistant"
+msgstr "Stun konfigureringsfejl"
+
+#: ../sflphone-client-gnome/src/uimanager.c:727
+msgid "Call your voicemail"
+msgstr "%d indtalt besked"
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "_Close"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:728
+msgid "Minimize to system tray"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "_Quit"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:729
+msgid "Quit the program"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:732
+msgid "_Edit"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "_Copy"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:733
+msgid "Copy the selection"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "_Paste"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:734
+msgid "Paste the clipboard"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear _history"
+msgstr "Opkaldshistorik"
+
+#: ../sflphone-client-gnome/src/uimanager.c:735
+msgid "Clear the call history"
+msgstr "Opkaldshistorik"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "_Accounts"
+msgstr "Konti"
+
+#: ../sflphone-client-gnome/src/uimanager.c:736
+msgid "Edit your accounts"
+msgstr "Nuværende konto"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "_Preferences"
+msgstr "Indstillinger"
+
+#: ../sflphone-client-gnome/src/uimanager.c:737
+msgid "Change your preferences"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:740
+msgid "_View"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:743
+msgid "_Help"
+msgstr "_Hjem"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Contents"
+msgstr "Fortsæt"
+
+#: ../sflphone-client-gnome/src/uimanager.c:744
+msgid "Open the manual"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:745
+msgid "About this application"
+msgstr "Godkendelse"
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "_Transfer"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:751
+msgid "Transfer the call"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "_Show toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:752
+msgid "Show the toolbar"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "_Dialpad"
+msgstr "Deaktiveret"
+
+#: ../sflphone-client-gnome/src/uimanager.c:753
+msgid "Show the dialpad"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "_Volume controls"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:754
+msgid "Show the volume controls"
+msgstr ""
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "_History"
+msgstr "Opkaldshistorik"
+
+#: ../sflphone-client-gnome/src/uimanager.c:755
+msgid "Calls history"
+msgstr "Opkaldshistorik"
+
+#: ../sflphone-client-gnome/src/uimanager.c:756
+msgid "_Address book"
+msgstr "Adressebog"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1003
+#: ../sflphone-client-gnome/src/uimanager.c:1044
+msgid "On _Hold"
+msgstr "I _venteposition"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1107
+msgid "_Call back"
+msgstr "_Besvar opkald"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1258
+msgid "Edit phone number"
+msgstr "Ændre telefonnummer"
+
+#: ../sflphone-client-gnome/src/uimanager.c:1269
+msgid "Edit the phone number before making a call"
+msgstr "Ændre telefonnummeret før opkald"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:180
+msgid "Account Parameters"
+msgstr "Kontoparametre"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:189
+#: ../sflphone-client-gnome/src/config/assistant.c:314
+#: ../sflphone-client-gnome/src/config/assistant.c:427
+msgid "_Alias"
+msgstr "_Alias"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:197
+msgid "_Protocol"
+msgstr "_Protokol"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:215
+msgid "Unknown"
+msgstr "Ukendt"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:225
+#: ../sflphone-client-gnome/src/config/assistant.c:322
+#: ../sflphone-client-gnome/src/config/assistant.c:435
+msgid "_Host name"
+msgstr "_Værtsnavn"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:233
+#: ../sflphone-client-gnome/src/config/assistant.c:330
+#: ../sflphone-client-gnome/src/config/assistant.c:443
+msgid "_User name"
+msgstr "_Brugernavn"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:250
+#: ../sflphone-client-gnome/src/config/assistant.c:346
+#: ../sflphone-client-gnome/src/config/assistant.c:458
+msgid "_Password"
+msgstr "_Adgangskode"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:270
+#: ../sflphone-client-gnome/src/config/assistant.c:363
+#: ../sflphone-client-gnome/src/config/assistant.c:473
+msgid "Show password"
+msgstr "Adgangskode"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:274
+#: ../sflphone-client-gnome/src/config/assistant.c:368
+#: ../sflphone-client-gnome/src/config/assistant.c:478
+msgid "_Voicemail number"
+msgstr "_Nummer for talebesked"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:361
+msgid "Authentication"
+msgstr "Godkendelse"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:362
+msgid "Secret"
+msgstr "Hemmelig"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:605
+msgid "Credential"
+msgstr "Legitimationsoplysning"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:640
+msgid "Authentication name"
+msgstr "Godkendelsesnavn"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:651
+msgid "Password"
+msgstr "Adgangskode"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:674
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1056
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:321
+msgid "Security"
+msgstr "Sikkerhed"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:333
+msgid "Use TLS transport (sips)"
+msgstr "Benyt TLS transport (sips)"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:338
+msgid "SRTP key exchange"
+msgstr "SRTP-nøgleudveksling"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:699
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:344
+msgid "Disabled"
+msgstr "Deaktiveret"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:795
+msgid "Registration"
+msgstr "Registrering"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:800
+msgid "Registration expire"
+msgstr "Forældelse af registrering"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:809
+msgid "_Comply with RFC 3263"
+msgstr "_Overhold RFC 3263"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:816
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:234
+msgid "Network Interface"
+msgstr "Netværk kan ikke nås"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:830
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:249
+msgid "Local address"
+msgstr "Lokal adresse"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:880
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:301
+msgid "Local port"
+msgstr "Lokal port"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:893
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:928
+msgid "Published address"
+msgstr "Offentliggjort adresse"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
+msgid "Using STUN"
+msgstr "Ved brug af STUN "
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:906
+msgid "STUN server URL"
+msgstr "STUN serveradresse"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:914
+msgid "Same as local parameters"
+msgstr "Samme som lokale parametre"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:917
+msgid "Set published address and port:"
+msgstr "Konfigurer offentliggjort adresse og port:"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:936
+msgid "Published port"
+msgstr "Offentliggjort port"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1027
+msgid "Account settings"
+msgstr "Kontoindstillinger"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1046
+msgid "Basic"
+msgstr "Grundlæggende"
+
+#: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1051
+msgid "Advanced"
+msgstr "Advanceret"
+
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:164
+msgid "Server returned \"%s\" (%d)"
+msgstr "Server svarede \""
+
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:389
+msgid "Protocol"
+msgstr "Protokol"
+
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:396
+msgid "Status"
+msgstr "Status"
+
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:474
+msgid "Accounts"
+msgstr "Konti"
+
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:484
+msgid "Configured Accounts"
+msgstr "Oprettede konti"
+
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:501
+msgid "There is %d active account"
+msgid_plural "There are %d active accounts"
+msgstr[0] " aktiv konto"
+msgstr[1] " aktiv konto"
+
+#: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:507
+msgid "You have no active account"
+msgstr "Der er ingen aktive konti"
+
+#: ../sflphone-client-gnome/src/config/addressbook-config.c:306
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:556
+msgid "General"
+msgstr "Generelt"
+
+#: ../sflphone-client-gnome/src/config/addressbook-config.c:312
+msgid "_Use Evolution address books"
+msgstr "_Benyt Evolution adressekartotek"
+
+#: ../sflphone-client-gnome/src/config/addressbook-config.c:319
+msgid "Download limit :"
+msgstr "Download begrænsning :"
+
+#: ../sflphone-client-gnome/src/config/addressbook-config.c:327
+msgid "cards"
+msgstr "kort"
+
+#: ../sflphone-client-gnome/src/config/addressbook-config.c:333
+msgid "_Display contact photo if available"
+msgstr "Vis _kontaktbillede hvis tilgængeligt"
+
+#: ../sflphone-client-gnome/src/config/addressbook-config.c:341
+msgid "Fields from Evolution's address books"
+msgstr "Felter fra Evolutions adressekartotek"
+
+#: ../sflphone-client-gnome/src/config/addressbook-config.c:345
+msgid "_Work"
+msgstr "_Arbejde"
+
+#: ../sflphone-client-gnome/src/config/addressbook-config.c:351
+msgid "_Home"
+msgstr "_Hjem"
+
+#: ../sflphone-client-gnome/src/config/addressbook-config.c:357
+msgid "_Mobile"
+msgstr "_Mobil"
+
+#: ../sflphone-client-gnome/src/config/addressbook-config.c:364
+msgid "Address Books"
+msgstr "Adressekartoteker"
+
+#: ../sflphone-client-gnome/src/config/addressbook-config.c:368
+msgid "Select which Evolution address books to use"
+msgstr "Vælg hvilke af Evolutions adressekartoteker skal benyttes"
+
+#: ../sflphone-client-gnome/src/config/addressbook-config.c:404
+#: ../sflphone-client-gnome/src/config/audioconf.c:577
+msgid "Name"
+msgstr "Navn"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:75
+#, c-format
+msgid "This assistant is now finished."
+msgstr "Denne vejledning er nu fuldført"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:77
+msgid ""
+"You can at any time check your registration state or modify your accounts "
+"parameters in the Options/Accounts window."
+msgstr ""
+"Du kan til enhver tid undersøge din registrering eller ændre dine kontis "
+"parametre i vinduet Indstillinger/Konti"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:80
+msgid "Alias"
+msgstr "Alias"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:84
+msgid "Server"
+msgstr "Server"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:88
+msgid "Username"
+msgstr "Brugernavn"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:92
+msgid "Security: "
+msgstr "Sikkerhed: "
+
+#: ../sflphone-client-gnome/src/config/assistant.c:94
+msgid "SRTP/ZRTP draft-zimmermann"
+msgstr "SRTP/ZRTP draft-zimmermann"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:96
+msgid "None"
+msgstr "Ingen"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:229
+msgid "SFLphone account creation wizard"
+msgstr "SFLphone-guiden til oprettelse af konto"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:255
+msgid "Welcome to the Account creation wizard of SFLphone!"
+msgstr "Velkommen til kontooperettelsesvejledning for SFLphone"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:256
+msgid "This installation wizard will help you configure an account."
+msgstr ""
+"Denne installeringsvejledning vil hjælpe dig med at konfigurere en konto"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:270
+msgid "VoIP Protocols"
+msgstr "VoIP protokoller"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:270
+msgid "Select an account type"
+msgstr "Vælg en kontotype"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:272
+msgid "SIP (Session Initiation Protocol)"
+msgstr "SIP (Session Initiation Protocol)"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:274
+msgid "IAX2 (InterAsterix Exchange)"
+msgstr "IAX2 (InterAsterix Exchange)"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:288
+msgid "Account"
+msgstr "Konto"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:288
+msgid "Please select one of the following options"
+msgstr "Vælg en af følgende indstillinger"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:290
+msgid "Create a free SIP/IAX2 account on sflphone.org"
+msgstr "Opret en gratis SIP/IAX2 konto hos sflphone.org"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:292
+msgid "Register an existing SIP or IAX2 account"
+msgstr "Registrer en eksisterende SIP eller IAX2 konto"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:306
+msgid "SIP account settings"
+msgstr "SIP kontoindstillinger"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:306
+#: ../sflphone-client-gnome/src/config/assistant.c:419
+msgid "Please fill the following information"
+msgstr "Udfyld venligst følgende information"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:376
+#: ../sflphone-client-gnome/src/config/assistant.c:405
+msgid "Secure communications with _ZRTP"
+msgstr "Sikker kommunikation med _ZRTP"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:389
+msgid "Optional email address"
+msgstr "Valgfri emailadresse"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:389
+msgid "This email address will be used to send your voicemail messages."
+msgstr "Denne emailadresse vil blive brugt til at sende dig indtalte beskeder"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:397
+msgid "_Email address"
+msgstr "_Emailadresse"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:419
+msgid "IAX2 account settings"
+msgstr "IAX2 kontoindstillinger"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:496
+msgid "Network Address Translation (NAT)"
+msgstr "Network Address Translation (NAT)"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:496
+msgid "You should probably enable this if you are behind a firewall."
+msgstr "Du opfordres til at aktivere dette hvis du er bag en firewall"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:505
+msgid "E_nable STUN"
+msgstr "_Benyt STUN"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:512
+msgid "_STUN server"
+msgstr "_STUN server"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:526
+msgid "Account Registration"
+msgstr "Kontoregistrering"
+
+#: ../sflphone-client-gnome/src/config/assistant.c:526
+msgid "Congratulations!"
+msgstr "Tillykke!"
+
+#: ../sflphone-client-gnome/src/config/audioconf.c:582
+msgid "Frequency"
+msgstr "Frekvens"
+
+#: ../sflphone-client-gnome/src/config/audioconf.c:587
+msgid "Bitrate"
+msgstr "Bithastighed"
+
+#: ../sflphone-client-gnome/src/config/audioconf.c:592
+msgid "Bandwidth"
+msgstr "Båndbredde"
+
+#: ../sflphone-client-gnome/src/config/audioconf.c:670
+msgid "ALSA plugin"
+msgstr "ALSA plugin"
+
+#: ../sflphone-client-gnome/src/config/audioconf.c:692
+msgid "Output"
+msgstr "Uddata"
+
+#: ../sflphone-client-gnome/src/config/audioconf.c:714
+msgid "Input"
+msgstr "Inddata"
+
+#: ../sflphone-client-gnome/src/config/audioconf.c:749
+msgid "_Voice Activity Detection"
+msgstr "_Detektering af taleaktivitet"
+
+#: ../sflphone-client-gnome/src/config/audioconf.c:759
+msgid "_Noise Reduction (Narrow-Band Companding)"
+msgstr "_Støjreducering (Narrow-Band Companding)"
+
+#: ../sflphone-client-gnome/src/config/audioconf.c:800
+msgid "Sound Manager"
+msgstr "Lydhåndtering"
+
+#: ../sflphone-client-gnome/src/config/audioconf.c:809
+msgid "_Pulseaudio"
+msgstr "_PulseAudio"
+
+#: ../sflphone-client-gnome/src/config/audioconf.c:813
+msgid "_ALSA"
+msgstr "_ALSA"
+
+#: ../sflphone-client-gnome/src/config/audioconf.c:819
+msgid "ALSA settings"
+msgstr "ALSA indstillinger"
+
+#: ../sflphone-client-gnome/src/config/audioconf.c:836
+msgid "Codecs"
+msgstr "Codecs"
+
+#: ../sflphone-client-gnome/src/config/audioconf.c:865
+msgid "Recordings"
+msgstr "Optagelser"
+
+#: ../sflphone-client-gnome/src/config/audioconf.c:869
+msgid "Destination folder"
+msgstr "Destinationsmappe"
+
+#: ../sflphone-client-gnome/src/config/audioconf.c:873
+msgid "Select a folder"
+msgstr "Vælg en mappe"
+
+#: ../sflphone-client-gnome/src/config/audioconf.c:879
+msgid "Ringtones"
+msgstr "Ringetoner"
+
+#: ../sflphone-client-gnome/src/config/audioconf.c:885
+msgid "_Enable ringtones"
+msgstr "Aktiver _ringetoner"
+
+#: ../sflphone-client-gnome/src/config/audioconf.c:891
+msgid "Choose a ringtone"
+msgstr "Vælg en ringetone"
+
+#: ../sflphone-client-gnome/src/config/audioconf.c:897
+msgid "Audio Files"
+msgstr "Lydfiler"
+
+#: ../sflphone-client-gnome/src/config/hooks-config.c:130
+msgid "URL Argument"
+msgstr "Adresseargument"
+
+#: ../sflphone-client-gnome/src/config/hooks-config.c:135
+msgid "Custom commands on incoming calls with URL"
+msgstr "Brugerdefinerede kommandoer ved indgående opkald med webadresse"
+
+#: ../sflphone-client-gnome/src/config/hooks-config.c:138
+#, c-format
+msgid "%s will be replaced with the passed URL."
+msgstr "%s vil blive erstattet med den givne webadresse."
+
+#: ../sflphone-client-gnome/src/config/hooks-config.c:141
+msgid "Trigger on specific _SIP header"
+msgstr "Udløse ved specifik _SIP protokolhoved"
+
+#: ../sflphone-client-gnome/src/config/hooks-config.c:150
+msgid "Trigger on _IAX2 URL"
+msgstr "Udløse ved _IAX2 webadresse"
+
+#: ../sflphone-client-gnome/src/config/hooks-config.c:155
+msgid "Command to _run"
+msgstr "Kommando som skal _kaldes"
+
+#: ../sflphone-client-gnome/src/config/hooks-config.c:165
+msgid "Phone number rewriting"
+msgstr "Omskrivning af telefonnummer"
+
+#: ../sflphone-client-gnome/src/config/hooks-config.c:169
+msgid "_Prefix dialed numbers with"
+msgstr "_Præfiks for indtastede numre"
+
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:225
+msgid ""
+"This profile is used when you want to reach a remote peer simply by typing a "
+"sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
+"also be used if no account can be matched to an incoming or outgoing call."
+msgstr ""
+"Denne profil benyttes når du ønsker at kontakte en ekstern peer ved blot at "
+"indtaste en sip-adresse såsom <b>sip:eksternpeer</b>. De indstillinger som "
+"du definerer her vil også benyttes hvis ingen konto kan tilknyttes et "
+"indgående eller udgående opkald."
+
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:440
+msgid "Desktop Notifications"
+msgstr "Meddelelser"
+
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:444
+msgid "_Enable notifications"
+msgstr "_Aktiver meddelelser"
+
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:450
+msgid "System Tray Icon"
+msgstr "Systembakke-ikon"
+
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
+msgid "_Popup main window on incoming call"
+msgstr "_Vis hovedvindue ved indgående opkald"
+
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:457
+msgid "Ne_ver popup main window"
+msgstr "Aldrig _pop-op hovedvindue"
+
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:463
+msgid "Hide SFLphone window on _startup"
+msgstr "Skjul SFLphone vinduet ved _start"
+
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:469
+msgid "Calls History"
+msgstr "Opkaldshistorik"
+
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:472
+msgid "_Keep my history for at least"
+msgstr "_Gem min historik i mindst"
+
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:483
+msgid "days"
+msgstr "dage"
+
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:536
+msgid "Preferences"
+msgstr "Indstillinger"
+
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:561
+msgid "Audio"
+msgstr "Audio"
+
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:566
+msgid "Address Book"
+msgstr "Adressebog"
+
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:571
+msgid "Hooks"
+msgstr "Hooks"
+
+#: ../sflphone-client-gnome/src/config/preferencesdialog.c:581
+msgid "Direct IP calls"
+msgstr "Direkte IP opkald"
+
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:38
+msgid "Advanced options for TLS"
+msgstr "Advancerede indstillinger for TLS"
+
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:56
+msgid "TLS transport"
+msgstr "TLS transport"
+
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:60
+msgid ""
+"TLS transport can be used along with UDP for those calls that would\n"
+"require secure sip transactions (aka SIPS). You can configure a different\n"
+"TLS transport for each account. However, each of them will run on a "
+"dedicated\n"
+"port, different one from each other\n"
+msgstr ""
+"TLS transport kan benyttes sammen med UDP for de opkald som kræver\n"
+"sikker sip transaktion (også kaldet SIPS). Du kan konfigurere forskellige\n"
+"TLS transporter for de enkelte konti. Bemærk dog at de hver vil benytte\n"
+"en dedikeret port forskellig fra hinanden.\n"
+
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:103
+msgid "Certificate of Authority list"
+msgstr "Autoritetscertifikatsliste"
+
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:107
+msgid "Choose a CA list file (optional)"
+msgstr "Vælg en fil med en autoritetscertifikatsliste (valgfri)"
+
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:131
+msgid "Public endpoint certificate file"
+msgstr "Offentlig endpoint certifikatsfil"
+
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:135
+msgid "Choose a public endpoint certificate (optional)"
+msgstr "Vælg et offentligt endpoint-certifikat (valgfri)"
+
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:159
+msgid "Choose a private key file (optional)"
+msgstr "Vælg en privat nøglefil (valgfri)"
+
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:181
+msgid "Password for the private key"
+msgstr "Adgangskode for den private nøgle"
+
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:204
+msgid "TLS protocol method"
+msgstr "TLS protokolmetode"
+
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:238
+msgid "TLS cipher list"
+msgstr "TLS cifferliste"
+
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:247
+msgid "Server name instance for outgoing TLS connection"
+msgstr "Server navneinstans for udgående TLS forbindelse"
+
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:255
+msgid "Negotiation timeout (sec:msec)"
+msgstr "Forhandlingstimeout"
+
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:272
+msgid "Verify incoming certificates, as a server"
+msgstr "Udfør kontrol af indgående certifikater, som en server"
+
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:278
+msgid "Verify certificates from answer, as a client"
+msgstr "Udfør kontrol af certifikater fra svar, som en klient"
+
+#: ../sflphone-client-gnome/src/config/tlsadvanceddialog.c:284
+msgid "Require certificate for incoming tls connections"
+msgstr "Kræv certifikat for indgående TLS forbindelser"
+
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:49
+msgid "ZRTP Options"
+msgstr "ZRTP indstillinger"
+
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:69
+msgid "Send Hello Hash in S_DP"
+msgstr "Send \"Hello Hash\" i S_DP"
+
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:75
+msgid "Ask User to Confirm SAS"
+msgstr "_Spørg bruger om at godkende SAS"
+
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:81
+msgid "_Warn if ZRTP not supported"
+msgstr "_Advar hvis ZRTP ikke understøttes"
+
+#: ../sflphone-client-gnome/src/config/zrtpadvanceddialog.c:87
+msgid "Display SAS once for hold events"
+msgstr "_Vis SAS en enkelt gang for vente-hændelser"
+
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:58
+msgid "Search all"
+msgstr "Søg alle"
+
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:59
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:72
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:84
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:96
+msgid "Click here to change the search type"
+msgstr "Klik her for at ændre søgningstypen"
+
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:71
+msgid "Search by missed call"
+msgstr "Søg i ubesvarede opkald"
+
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:83
+msgid "Search by incoming call"
+msgstr "Søg i indgående opkald"
+
+#: ../sflphone-client-gnome/src/contacts/searchbar.c:95
+msgid "Search by outgoing call"
+msgstr "Søg i udgående opkald"
+
+#~ msgid "IP call - %s"
+#~ msgstr "IP opkald - %s"
+
+#~ msgid "Codec"
+#~ msgstr "Kodning"
+
+#~ msgid "Network"
+#~ msgstr "Netværk"
+
+#~ msgid "Manually"
+#~ msgstr "Manuelt"
+
+#~ msgid "There "
+#~ msgstr "Der "
+
+#~ msgid "is "
+#~ msgstr "er "
+
+#~ msgid "are "
+#~ msgstr "er "
+
+#~ msgid "s"
+#~ msgstr "s"
+
+#~ msgid "_Mute other applications during a call"
+#~ msgstr "_Dæmp andre programmer ved opkald"
+
+#~ msgid "SIP Port"
+#~ msgstr "SIP Port"
+
+#~ msgid "UDP Transport"
+#~ msgstr "UDP transport"
+
+#~ msgid "Enable voicemail _notifications"
+#~ msgstr "Aktiver _talebeskedsmeddelelser"
+
+#~ msgid "Store SIP credentials as MD5 hash"
+#~ msgstr "Gem SIP-legitimationsoplysninger som _MD5-hash-værdi"
-- 
GitLab


From 4fbeeec5e130ddc07d99339e685e84fec02af027 Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Fri, 4 Dec 2009 10:52:37 -0500
Subject: [PATCH 054/188] [#2181] Updated spec files

---
 tools/build-system/build-osc.sh                    |  2 +-
 tools/build-system/osc/sflphone-client-gnome.spec  |  1 +
 .../sflphone-common-dbus-service-in-libdir.patch   | 14 --------------
 tools/build-system/osc/sflphone-common.spec        |  4 +---
 4 files changed, 3 insertions(+), 18 deletions(-)
 delete mode 100644 tools/build-system/osc/sflphone-common-dbus-service-in-libdir.patch

diff --git a/tools/build-system/build-osc.sh b/tools/build-system/build-osc.sh
index 13432ab327..8735ba83df 100755
--- a/tools/build-system/build-osc.sh
+++ b/tools/build-system/build-osc.sh
@@ -23,7 +23,7 @@ LAUNCHPAD_PACKAGES=( "sflphone-client-gnome" "sflphone-common" )
 
 REFERENCE_REPOSITORY="${ROOT_DIR}/sflphone-source-repository"
 
-SOFTWARE_VERSION="0.9.7.rc1"
+SOFTWARE_VERSION="0.9.7.rc2"
 
 VERSION_INDEX=1
 
diff --git a/tools/build-system/osc/sflphone-client-gnome.spec b/tools/build-system/osc/sflphone-client-gnome.spec
index 794dc7784e..dba4cd8ebb 100644
--- a/tools/build-system/osc/sflphone-client-gnome.spec
+++ b/tools/build-system/osc/sflphone-client-gnome.spec
@@ -125,6 +125,7 @@ make clean
 %lang(zh_HK) %{_prefix}/share/locale/zh_HK/LC_MESSAGES/*.mo
 %lang(it) %{_prefix}/share/locale/it/LC_MESSAGES/*.mo
 %lang(pt_BR) %{_prefix}/share/locale/pt_BR/LC_MESSAGES/*.mo
+%lang(da) %{_prefix}/share/locale/da/LC_MESSAGES/*.mo
 %doc AUTHORS COPYING README
 %doc %{_prefix}/share/man/man1/sflphone-client-gnome.1.gz
 %doc %{_prefix}/share/man/man1/sflphone.1.gz
diff --git a/tools/build-system/osc/sflphone-common-dbus-service-in-libdir.patch b/tools/build-system/osc/sflphone-common-dbus-service-in-libdir.patch
deleted file mode 100644
index 72d23454fb..0000000000
--- a/tools/build-system/osc/sflphone-common-dbus-service-in-libdir.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git sflphone-common/src/dbus/Makefile.am sflphone-common/src/dbus/Makefile.am
-index 5a2745e..5ca2e42 100644
---- sflphone-common/src/dbus/Makefile.am
-+++ sflphone-common/src/dbus/Makefile.am
-@@ -38,7 +38,7 @@ service_DATA = $(service_in_files:.service.in=.service)
- 
- # Rule to make the service file with bindir expanded
- $(service_DATA): $(service_in_files) Makefile
--	sed -e "s|libexec|$(prefix)/lib/sflphone|" $<> $@
-+	sed -e "s|libexec|$(libdir)/sflphone|" $<> $@
- 
- EXTRA_DIST = *.xml README
- 
-
diff --git a/tools/build-system/osc/sflphone-common.spec b/tools/build-system/osc/sflphone-common.spec
index 0bc1a2b573..d44f94103e 100644
--- a/tools/build-system/osc/sflphone-common.spec
+++ b/tools/build-system/osc/sflphone-common.spec
@@ -21,7 +21,6 @@ Packager:	Julien Bonjean <julien.bonjean@savoirfairelinux.com>
 
 BuildRoot:      %{_tmppath}/%{name}
 Source0:        sflphone-common-%{version}.tar.gz
-Patch0:		sflphone-common-dbus-service-in-libdir.patch
 BuildRequires:	speex-devel
 BuildRequires:	gcc-c++
 BuildRequires:	expat
@@ -95,7 +94,6 @@ Authors:
 
 %prep
 %setup -q
-%patch0 -p1
 
 %build
 cd libs/pjproject
@@ -127,7 +125,7 @@ make clean
 %dir %{_libdir}/sflphone/plugins
 %dir %{_prefix}/share/sflphone
 %dir %{_prefix}/share/sflphone/ringtones
-%{_libdir}/libdbus-*
+%{_libdir}/sflphone/libdbus-*
 %{_libdir}/sflphone/codecs/*
 %{_libdir}/sflphone/plugins/*
 %{_prefix}/share/dbus-1/services/org.sflphone.*
-- 
GitLab


From b9bf4bf6cb984bf2bf61c1bcd7d37abe49aa2757 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Fri, 4 Dec 2009 15:16:24 -0500
Subject: [PATCH 055/188] [#2519] Decrease transport reference counter when
 setting transport

Pjsip's set_transport methods all increase transport's reference counter.
This incrementation is never decreased after
---
 sflphone-common/src/sip/sipvoiplink.cpp | 156 ++++++++++++++++++++++--
 1 file changed, 149 insertions(+), 7 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 050ea5c14c..8e085aecfd 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -408,6 +408,7 @@ int SIPVoIPLink::sendRegister (AccountID id)
         _debug ("In sendRegister: account is null");
         return false;
     }
+    
 
     // Resolve hostname here and keep its
     // IP address for the whole time the
@@ -591,9 +592,20 @@ int SIPVoIPLink::sendRegister (AccountID id)
 
     pjsip_tpselector *tp;
 
-    init_transport_selector (account->getAccountTransport (), &tp);
+    init_transport_selector (account->getAccountTransport (), &tp); 
+    
+    // pjsip_regc_set_transport increments transport ref count by one
     status = pjsip_regc_set_transport (regc, tp);
 
+    // decrease transport's ref count
+    pjsip_transport_dec_ref(account->getAccountTransport ());
+
+    _debug("After setting the transport in account registration using transport: %s %s (refcnt=%d)\n",
+	       account->getAccountTransport()->obj_name,
+	       account->getAccountTransport()->info,
+	       (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
+
+
     if (status != PJ_SUCCESS) {
         _debug ("UserAgent: Unable to set transport.\n");
         _mutexSIP.leaveMutex ();
@@ -613,7 +625,10 @@ int SIPVoIPLink::sendRegister (AccountID id)
 
     account->setRegistrationInfo (regc);
 
-    _debug("Sent account registration using transport: %s\n", account->getAccountTransport()->info);
+    _debug("Sent account registration using transport: %s %s (refcnt=%d)\n",
+	   account->getAccountTransport()->obj_name,
+	   account->getAccountTransport()->info,
+	   (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
 
     return true;
 }
@@ -629,6 +644,11 @@ SIPVoIPLink::sendUnregister (AccountID id)
     account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (id));
     regc = account->getRegistrationInfo();
 
+    _debug("Sending account unregistration using transport: %s %s (refcnt=%d)\n",
+	   account->getAccountTransport()->obj_name,
+	   account->getAccountTransport()->info,
+	   (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
+
     if (!account->isRegister()) {
         account->setRegistrationState (Unregistered);
         return true;
@@ -653,6 +673,37 @@ SIPVoIPLink::sendUnregister (AccountID id)
         return false;
     }
 
+    if(account->getAccountTransport()) {
+
+        if(account->getAccountTransport() != _localUDPTransport) {
+
+	  // status = pjsip_transport_dec_ref(account->getAccountTransport());
+	  // status = pjsip_transport_shutdown(account->getAccountTransport());
+	    // status = pjsip_transport_destroy(account->getAccountTransport());
+	    // account->getAccountTransport()->destroy(account->getAccountTransport());
+
+	}
+
+	_debug("Sent account unregistration using transport: %s %s (refcnt=%d)\n",
+	       account->getAccountTransport()->obj_name,
+	       account->getAccountTransport()->info,
+	       (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
+
+	pj_sockaddr *addr = (pj_sockaddr*)&(account->getAccountTransport()->key.rem_addr);
+
+	static char str[PJ_INET6_ADDRSTRLEN];
+	pj_inet_ntop(((const pj_sockaddr*)addr)->addr.sa_family, 
+		     pj_sockaddr_get_addr(addr),
+		     str, sizeof(str));
+	
+    
+	_debug("------------------------------------- KEY: %s:%d\n",
+	       // addr_string(account->getAccountTransport()->key.rem_addr),
+	       str,
+	       pj_sockaddr_get_port((const pj_sockaddr*)&(account->getAccountTransport()->key.rem_addr)));
+
+    }
+
     //account->setRegistrationInfo(regc);
     account->setRegister (false);
 
@@ -1332,8 +1383,13 @@ SIPVoIPLink::SIPStartCall (SIPCall* call, const std::string& subject UNUSED)
 
     init_transport_selector (account->getAccountTransport (), &tp);
 
+    // increment transport's ref count by one
     status = pjsip_dlg_set_transport (dialog, tp);
 
+    // decrement transport's ref count
+    pjsip_transport_dec_ref(account->getAccountTransport());
+    
+
     status = pjsip_inv_send_msg (inv, tdata);
 
     if (status != PJ_SUCCESS) {
@@ -1341,7 +1397,10 @@ SIPVoIPLink::SIPStartCall (SIPCall* call, const std::string& subject UNUSED)
         return false;
     }
 
-    _debug("Sent invite request using transport: %s\n", account->getAccountTransport()->info);
+    _debug("Sent invite request using transport: %s %s (refcnt=%d)\n",
+	               account->getAccountTransport()->obj_name,
+		       account->getAccountTransport()->info,
+	               (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
 
     return true;
 }
@@ -1561,8 +1620,12 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
 
         init_transport_selector (account->getAccountTransport(), &tp);
 
+	// set_transport methods increment transport's ref_count
         status = pjsip_dlg_set_transport (dialog, tp);
 
+	// decrement transport's ref count
+	pjsip_transport_dec_ref(account->getAccountTransport());
+
         if (status != PJ_SUCCESS) {
             _debug ("Failed to set the transport for an IP call\n");
             return status;
@@ -2009,13 +2072,35 @@ int SIPVoIPLink::createUDPServer (AccountID id)
 
     a_name.port = listeningPort;
 
-
     //pj_strdup2 (_pool, &a_name.host, tmpIP);
 
     //a_name.port = (pj_uint16_t) listeningPort;
 
     status = pjsip_udp_transport_start (_endpt, &bound_addr, &a_name, 1, &transport);
 
+    if(transport) {
+
+      /*
+    _debug("------------------------------- INITIAL REF COUNT: %s %s (refcnt=%i)\n",
+	   transport->obj_name,
+	   transport->info,
+	   (int)pj_atomic_get(transport->ref_cnt));
+
+
+    pj_sockaddr *addr = (pj_sockaddr*)&(transport->key.rem_addr);
+
+    static char str[PJ_INET6_ADDRSTRLEN];
+    pj_inet_ntop(((const pj_sockaddr*)addr)->addr.sa_family, 
+		 pj_sockaddr_get_addr(addr),
+		 str, sizeof(str));
+     
+    
+    _debug("------------------------------------- KEY: %s:%d\n",
+	   // addr_string(account->getAccountTransport()->key.rem_addr),
+	   str,
+	   pj_sockaddr_get_port((const pj_sockaddr*)&(transport->key.rem_addr)));
+      */
+    }
     // Get the transport manager associated with
     // this endpoint
     pjsip_tpmgr * tpmgr = NULL;
@@ -2024,6 +2109,8 @@ int SIPVoIPLink::createUDPServer (AccountID id)
 
     _debug ("Number of transport: %i\n", pjsip_tpmgr_get_transport_count (tpmgr));
 
+    // status = pjsip_transport_register( tpmgr, (pjsip_transport*)transport);
+
     pjsip_tpmgr_dump_transports (tpmgr);
 
     if (status != PJ_SUCCESS) {
@@ -2043,6 +2130,7 @@ int SIPVoIPLink::createUDPServer (AccountID id)
 
     _debug ("Transport initialized successfully on %s:%i\n", listeningAddress.c_str (), listeningPort);
 
+
     return PJ_SUCCESS;
 }
 
@@ -2356,6 +2444,38 @@ pj_status_t SIPVoIPLink::createAlternateUdpTransport (AccountID id)
 
     account->setAccountTransport (transport);
 
+    if(transport) {
+
+    _debug("------------------------------- INITIAL REF COUNT: %s %s (refcnt=%i)\n",
+	   transport->obj_name,
+	   transport->info,
+	   (int)pj_atomic_get(transport->ref_cnt));
+
+
+    pj_sockaddr *addr = (pj_sockaddr*)&(transport->key.rem_addr);
+
+    static char str[PJ_INET6_ADDRSTRLEN];
+    pj_inet_ntop(((const pj_sockaddr*)addr)->addr.sa_family, 
+		 pj_sockaddr_get_addr(addr),
+		 str, sizeof(str));
+    
+    
+    _debug("------------------------------------- KEY: %s:%d\n",
+	   // addr_string(account->getAccountTransport()->key.rem_addr),
+	   str,
+	   pj_sockaddr_get_port((const pj_sockaddr*)&(transport->key.rem_addr)));
+
+    }
+    pjsip_tpmgr * tpmgr = NULL;
+
+    tpmgr = pjsip_endpt_get_tpmgr (_endpt);
+
+    _debug ("Number of transport: %i\n", pjsip_tpmgr_get_transport_count (tpmgr));
+
+    // status = pjsip_transport_register( tpmgr, (pjsip_transport*)transport);
+
+    pjsip_tpmgr_dump_transports (tpmgr);
+
     return PJ_SUCCESS;
 }
 
@@ -2993,6 +3113,11 @@ mod_on_rx_request (pjsip_rx_data *rdata)
     // Handle the incoming call invite in this function
     _debug ("UserAgent: Callback on_rx_request is involved! \n");
 
+    _debug("Receiving request using transport: %s %s (refcnt=%d)\n",
+	   rdata->tp_info.transport->obj_name,
+	   rdata->tp_info.transport->info,
+	   (int)pj_atomic_get(rdata->tp_info.transport->ref_cnt));
+
     /* First, let's got the username and server name from the invite.
      * We will use them to detect which account is the callee.
      */
@@ -3153,7 +3278,12 @@ mod_on_rx_request (pjsip_rx_data *rdata)
 		// Set the appropriate transport to have the right VIA header
 		link->init_transport_selector (account->getAccountTransport (), &tp);
 
-		_debug("Answer invite request using transport: %s\n", account->getAccountTransport()->info);
+		if(account->getAccountTransport()) {
+		_debug("Answer invite request using transport: %s %s (refcnt=%i)\n",
+		       account->getAccountTransport()->obj_name,
+		       account->getAccountTransport()->info,
+		       (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
+		}
     }
     
     if (addrToUse == "0.0.0.0") {
@@ -3216,9 +3346,11 @@ mod_on_rx_request (pjsip_rx_data *rdata)
 
     // Specify media capability during invite session creation
     status = pjsip_inv_create_uas (dialog, rdata, call->getLocalSDP()->get_local_sdp_session(), 0, &inv);
-	// Explicitly set the transport
-	status = pjsip_dlg_set_transport (dialog, tp);
+    // Explicitly set the transport, set_transport methods increment transport's reference counter
+    status = pjsip_dlg_set_transport (dialog, tp);
 
+    // decrement transport's reference counter
+    pjsip_transport_dec_ref(rdata->tp_info.transport);
 
     PJ_ASSERT_RETURN (status == PJ_SUCCESS, 1);
 
@@ -3751,8 +3883,18 @@ void handle_incoming_options (pjsip_rx_data *rdata)
     /* Send response statelessly */
     pjsip_get_response_addr (tdata->pool, rdata, &res_addr);
 
+    _debug("--------------- Before sending option response: %s %s (refcnt=%d)\n",
+	   res_addr.transport->obj_name,
+	   res_addr.transport->info,
+	   (int)pj_atomic_get(res_addr.transport->ref_cnt));
+
     status = pjsip_endpt_send_response (_endpt, &res_addr, tdata, NULL, NULL);
 
+    _debug("--------------- After sending option response: %s %s (refcnt=%d)\n",
+	   res_addr.transport->obj_name,
+	   res_addr.transport->info,
+	   (int)pj_atomic_get(res_addr.transport->ref_cnt));
+
     if (status != PJ_SUCCESS)
         pjsip_tx_data_dec_ref (tdata);
 }
-- 
GitLab


From 37bcb5551be91574fb375b6456224fa72256329f Mon Sep 17 00:00:00 2001
From: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
Date: Mon, 7 Dec 2009 11:05:17 -0500
Subject: [PATCH 056/188] [#1060] Update user manual translation (french,
 spanish)

---
 sflphone-client-gnome/doc/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sflphone-client-gnome/doc/Makefile.am b/sflphone-client-gnome/doc/Makefile.am
index 2993072194..f258a20f31 100644
--- a/sflphone-client-gnome/doc/Makefile.am
+++ b/sflphone-client-gnome/doc/Makefile.am
@@ -28,4 +28,4 @@ DOC_FIGURES =	figures/addressbook-button.png \
 				figures/conference.png	 			\
 				figures/conference_detached.png			\
 				figures/conference_attached.png
-DOC_LINGUAS = fr de es it zh_TW zh_HK zh_CN ko pl pt_BR pt ru
+DOC_LINGUAS = fr es
-- 
GitLab


From 74e25aced43c2118cff58d2b4a44be2de8a6dbe1 Mon Sep 17 00:00:00 2001
From: Jonas Fonseca <jonas.fonseca@savoirfairelinux.com>
Date: Mon, 7 Dec 2009 12:29:32 -0500
Subject: [PATCH 057/188] Remove undefined SFL_CXX_WITH_DEBUG macro

It was originally defined in the toplevel m4/sfl-internal.m4 file and
later inlined in the configure.ac. While the definition removed, the
reference was not and causes the configure script to print an error
message.
---
 sflphone-common/configure.ac | 1 -
 1 file changed, 1 deletion(-)

diff --git a/sflphone-common/configure.ac b/sflphone-common/configure.ac
index e3c869ac13..41bfe9221b 100644
--- a/sflphone-common/configure.ac
+++ b/sflphone-common/configure.ac
@@ -94,7 +94,6 @@ AC_SUBST(PKGADD_VENDOR)
 
 	dnl Check for programs
 	AC_PROG_CC
-	SFL_CXX_WITH_DEBUG
 	AC_PROG_CXX
 	AC_PROG_CPP
 	AC_PROG_INSTALL
-- 
GitLab


From 7fb6a39a07ead5f688aa7f45004567584466156f Mon Sep 17 00:00:00 2001
From: Jonas Fonseca <jonas.fonseca@savoirfairelinux.com>
Date: Mon, 7 Dec 2009 12:33:00 -0500
Subject: [PATCH 058/188] Tweak mo clean and install targets

This ensures that .mo files are up-to-date when using `make install`.
Before you had to first run `make`.
---
 sflphone-client-gnome/po/Makefile.am | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sflphone-client-gnome/po/Makefile.am b/sflphone-client-gnome/po/Makefile.am
index 6d2d320a9b..2f8eebd1cc 100644
--- a/sflphone-client-gnome/po/Makefile.am
+++ b/sflphone-client-gnome/po/Makefile.am
@@ -38,7 +38,7 @@ SUFFIXES=.po .mo
 .po.mo:
 	$(MSGFMT) -o $@ $<
 
-install-data-local:
+install-data-local: $(MOFILES)
 	@catalogs='$(MOFILES)'; \
 	for i in $$catalogs; do \
 		destdir=$(locale_installdir); \
@@ -58,4 +58,4 @@ uninstall-local:
 	done
 
 clean-local:
-	rm -rf *.mo
+	rm -f $(MOFILES)
-- 
GitLab


From 640d4abcb7fa3cd45d0dce26a85105b8044aead4 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Tue, 8 Dec 2009 13:04:20 -0500
Subject: [PATCH 059/188] [#2554] Fix "hangup" action close audio if there's
 still an active call

---
 sflphone-common/src/managerimpl.cpp | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index 7e960cb76d..75b3fb021a 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -413,7 +413,6 @@ ManagerImpl::hangupCall (const CallID& call_id)
     PulseLayer *pulselayer;
     AccountID account_id;
     bool returnValue;
-    AudioLayer *audiolayer;
 
     // store the current call id
     CallID current_call_id = getCurrentCallId();
@@ -425,17 +424,6 @@ ManagerImpl::hangupCall (const CallID& call_id)
 
     if (_dbus) _dbus->getCallManager()->callStateChanged (call_id, "HUNGUP");
 
-    int nbCalls = getCallList().size();
-
-    audiolayer = getAudioDriver();
-
-    // stop streams
-    if (audiolayer && (nbCalls <= 1)) {
-        _debug ("    hangupCall: stop audio stream, ther is only %i call(s) remaining", nbCalls);
-        audiolayer->stopStream();
-    }
-
-
     if (participToConference (call_id)) {
 
         Conference *conf = getConferenceFromCallID (call_id);
@@ -472,6 +460,16 @@ ManagerImpl::hangupCall (const CallID& call_id)
         removeCallAccount (call_id);
     }
 
+    int nbCalls = getCallList().size();
+
+    AudioLayer *audiolayer = getAudioDriver();
+
+    // stop streams
+    if (audiolayer && (nbCalls <= 1)) {
+        _debug ("    hangupCall: stop audio stream, ther is only %i call(s) remaining", nbCalls);
+        audiolayer->stopStream();
+    }
+
     if (_audiodriver->getLayerType() == PULSEAUDIO) {
         pulselayer = dynamic_cast<PulseLayer *> (getAudioDriver());
     }
-- 
GitLab


From f6565bb48624cca79f29291cc2286da411a8e6a4 Mon Sep 17 00:00:00 2001
From: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
Date: Tue, 8 Dec 2009 13:14:01 -0500
Subject: [PATCH 060/188] [#2413] Add SRTP documentation in user manual

---
 .../doc/C/figures/accounts_security.png       | Bin 0 -> 27664 bytes
 .../doc/C/figures/srtp_enabled.png            | Bin 0 -> 5873 bytes
 .../doc/C/figures/zrtp_options.png            | Bin 0 -> 17688 bytes
 sflphone-client-gnome/doc/C/sflphone.xml      | 131 +++++++++++++++++-
 sflphone-client-gnome/doc/Makefile.am         |   5 +-
 5 files changed, 129 insertions(+), 7 deletions(-)
 create mode 100644 sflphone-client-gnome/doc/C/figures/accounts_security.png
 create mode 100644 sflphone-client-gnome/doc/C/figures/srtp_enabled.png
 create mode 100644 sflphone-client-gnome/doc/C/figures/zrtp_options.png

diff --git a/sflphone-client-gnome/doc/C/figures/accounts_security.png b/sflphone-client-gnome/doc/C/figures/accounts_security.png
new file mode 100644
index 0000000000000000000000000000000000000000..ca3f76c3d9a899589dc29b299a3117ae8ebe110f
GIT binary patch
literal 27664
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

literal 0
HcmV?d00001

diff --git a/sflphone-client-gnome/doc/C/figures/srtp_enabled.png b/sflphone-client-gnome/doc/C/figures/srtp_enabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..68dabf1d368e614c3bf2326a0d8331eea4736154
GIT binary patch
literal 5873
zcmeAS@N?(olHy`uVBq!ia0y~yV4T3fz@Wpy#=yYfec)Xg0|NtNage(c!@6@aFBupZ
z*pj^6T^Rm@;DWu&Co?cGa29w(7Bet#3xhBt!>l<H3=9nHC7!;n>^FHh1WZL@bEXS1
zFfd4#xJHyX=jZ08=9Mrw7o{eaq^2m8XO?6rxO@5rgg5euGcbtxc)B=-RNQ(yH$6t=
zx>Wo8yQwc1g}e+}qLFaaO(-z`&9SZp8(n%0pB-y5RWskF@oknwaF4E7PT-rps%6PK
z2}%(G8??=qoYC7|Y~P^dWtwqd&hziq@)F-{i=Wv(t-m!V@XQ>`U_O3+bz586Mh67}
z4z9z8+xY{z%sE(?8Xu$zFewReurMhqFo7hIITgZ&0(t^dOtwh&S56Re-}Ow)YA?%)
zLz+jsn5JIhNIv{&it%T++=PEY8&7QN@mub^{<`vMrT%|meHtPfQ@uj8M7dg>I653Y
z7%lPKzVq(~i*Vt0MQXoTPM-8Uu_?}CS%kE<s#xlp51&`}t-j6s=G3)gM^0?>D17m?
zO2zZho12@D96L5?&Kw<?-{waS-?<}GUS7T`Y;9L(C#P5H%Na64OiCJtFTMzs%g=qV
z{jYoFmluY*v%eg=x>d<*sh7oaiHomGkHq&SU*C5%W?xMw8}C$$$p7q1FKzg+*k$ds
z*xh9d12i&jZ_}MNZQ9aR&toP{NS(Q4i3*>*-I+dF>x_GQERP*Kwp8hD60b`@(vJCm
z#KVQ(O`f&r;bl9)9Xo$=e5??i8n^P$<;6m^RedV9zV3&fs=QPEADZ#Ir-vsgIXQ6k
z)shz%7`3&v73J!SS(1{IomYpgH83|<S5sqK8>Y?TqM*T*IcxSDtJ)4R-`$gTzEeE3
znum+kBvZt#<cwj^($}sM2VZpd^{H7{M2Or<5}Q=@^;O}&Kb0z;LQF~mBCK=m<~}+8
zy|AoE_}q!s$L{}K)@p^XDcrTI>XU{g=iZnfY~IsS<?QQxb{0K#Steo}78Yhx^`)by
zheuI?$?@WZiK(_+ts2wTuVoBawaH9VBv*Xujnc2L+!QzIOqcrK<yzu+a<X8gNx;vA
z*H5cztaq{dJ6n)RNn@h2;Kz6Fj{gKXybf@Di~s%P7WbLD+f&P*t4~s#=lX$7P`>`@
zS*gOi_9u>*)!m4UPJVl(cW=L|+<$FWm*P@s;oa=PCr>i6v$Mz4yuS44aHh<T<?KK0
zq;I9f)eFthX1`o}iErKA81L-%IsZ>fW*PkY(kuSv?yBucA0|mma&2FGWpYu4#=dWH
z7S9Bu*6!?%+jqY0n&tZ4Az6OkJF9n;6)Ug(ys>;seY@fEynPAp<JKxW*ZtdkWy-=6
zCrnxPU+y_^!u0=v125zPb=Pj(c8;&_pReSG7iaE&h-d3u{r~uzAJcUHEBAHR|2<*-
zY?0j*k+}OJ(@LgECfd%-zR}vTbn}X*87Cee$>4iudHk-4Z3L5s!3y)4ypvxgtg1b+
z^zMCwl1J@ditnB5iM{Q4m2pX-)*|8gv9Awbveexe%H);&#-`WeThHFklG&3_yBX$G
zsDH3I)3d-xX}kAnmfk;)E=n9@Y>wEz*m_pF{^|aowN>_Rax0uN&KhYv5lIn|xFYR*
zWl7YGO!=b1^ZY#XKWP4)yJ*J7*Wy7X3@_)*yU;Coy=udg*=jd57?*NBwY@4+d+c7w
zuEQr&1$pG}3EwPMzubJryQjV=+4YIkz8^I@b#+sJBpu0^@U`TX%qOnPAMYfs*HJ#r
z#nZHGQ)-s2&(hm-B0jM;x0keZ9iRF4+UL@MemCZ}wx3^<x8AX=mtLCgoV7D5@#7Oa
zSLwqdkL;R+Y?)5(D4ZZW{nVwhLlL{o*Z8T*+h^^)-T8qtIpg(|waHrC;#yVJj~|D3
zKdW`WaMrYW$K;b1KSLLKP1Oon`KW*SRH@dP+*6r1t@~M>oWJHo;(O^2W^>*BpVi)0
z`IfiWqw#+971fRPCC+zN*LXZxx<<G6<;NTeS+CghX9Rom5BLB0_M)~Vr64sfIVP*`
z;TdDW)BI(ZP9L8gXD#<6?!f0B{w<xSIo3u@ypY<Nvd?LW;=9{vAuF!T?%iH8^W*a4
zn-g=?oAwyJja|Jp;m5Ms{>#^XIk|ks_2qVPe0&x^%o1PhYFV>GCF%M1$9s3(o4MHd
zIm4`P@h)eQEsu*tG<$l_yrIewFU~%v=ti^NONPt4uN*vkkg@&LS&3a0g72$C7u|n2
zg=zlU7rd9d9TQ(Q^zXN4Wb|*+-}Z6hnH!m2&*v}uSjTGWf6FLTQeCU6@=@qcwzGCp
zKH}GT9{H(04*1!bn`(1vW#9~}hrd<)?ET;Lh*-Ya`}ehw*(>dP+xH&dr~7fq$(_sJ
zmbU)+BfPVQSMc%jjb>Svv$wBH%)L^ibj)A5=;th_<IyoIbYeb!`gm~rDeID-S!{RT
zyxWxine~$C^O=F?CvHDhcl`PL(4$9}*&N(_Zn5Wnmn$c}vFy5)keuv%bbIy3uM?|Z
zJgIisTC(hAQ?$qavZIHOu`OR$?ZI~9G~0p|-z%@B9ZEXZe)ZtxgKWFIdL{OJ<C>*j
z=fB_O%8R}$g{QZaf5|>{f!EyVb$ngn>6J(HWIZOI`gY^SjfCX)t{2$t3*&^Cf?AxO
zcFcX~?DxL=SzMypt5QvsH}NNzv6$Lzonu(Da=Gy_A6_d><^OWt$8yW+ZnnuuYa8ZX
z{$BFUfax#uxB83o9NBFpxBLn3lf8NL%{0$5?=DS`&(kQ#yE^%mXP{2MXYH-iJHOv{
zstYw+=6<(m&xg3YeIH*2>~1kEj!{r|ZxgO`?Jjv&Z8vw0!{(R5nSpVvzka{@yM|YO
zeZz$OZN)EsC~iCR%CX_*<a;xw?cX=sr)2H=i0$>#_NCW07kwx&yMK|nYKxcrz4=?(
znveH?em(2_$N$M9caQz|J7sLU_r}lF25+{{d(l!+C!KtL*}}+gyQKeoy8rIXu5Wsq
z%VeJ3cvUxJ{fra$)R{sKY~IUt>Ada|{~viVcE1}p@~$b;Kd~!Bs4n{SG#1l)jeYu&
zZ9Imd&3=ouH+o;6v_!G!XVx^=bIY@?GBB(P<4uTsQlm6|z1t*{{|Vg5QzF^t|MGW!
z!>?^9w`D5#_WTXMg}wP|uC+1l4@)_*%K6X7-*(To>^psCgWZ~afz!6l7QT7!FyG=|
zr+1Wm*SkK=Y>`h`?1`(-eog)q*7DmX`}1Qi9`?K^cfPKc`FCpG*N4tGYohsoRlkwE
z)phT*V#>R`zPUEXzU5av%-2&EpD?dS+xw+;j{3X!oJSEQJoRs)&!qdt8dNdI-K)<H
zj^J8dE@{6{bZ-0h!};rU?=?1FsatI*yKBqxzUIKNW^Lu%_dVMWU+(12YSn+*F2LSZ
zv!L~xUAoe8!OFWcq7J^3c&aIP{iaQg!bA2~2Gy5MqO4aL-=25-_6)hyL&u|!2|b&A
z^UDsNIbQpD-*2k8FY9zj>T}}ViGT86YVPCVITTahzPFn%`Bo9Dscuo`X|AsIn{EAM
z(+v`fncKeqon#+0t$6QM8>QJd7crHXZ#Sr2d!(9sfBJ>pkxWnD^wnSEU^=kqVTIb)
zyoOe$KkU5=E?)Zg#%8`-bhPoG>Tl=&=r(-*-6OZX`Rrk{f;u1FRjHQOm!0*nTbbT1
z^&#Wx>|e>hHhr#<S{t*?=zTz>UBrLYTxK7Ja5tY{b9>K*iM+b$WPMvaJMz+f`x7_b
zUEXn{K+D>GZA)ffmxl7&7rpBrPu}0VLh>K;{ni`%T_mdx%oM#ZP<gi_>TB$0J?H-h
zZf<RB?(g{2`kIlkZf9J5ZpQn<s+%d(;*6J-ZIE`mb6#ip+G9pLCMvr%y!)uPY@O-D
z{np1X-ZZ~_cwO@{V}n(S+~4mhZt=b;{`%6|wLT}$FH?5i??0_K_xHvx+?$+vE4KZc
z!KQ4V^!uktRJOTcs;^b<v_B^<9Gf=t>-nS23=ZYVmHS?1KAwM~cB=GO>Coec9a;Il
z?fBJYIzcJP=V;z%i%WWqliB%;{v0v<wpP+@_swpJO_j3FOq;Gbyz)!Pb<yQ{|NrQ%
zLg&aG-$gthe%+`W;x%7f!I-J4?(`J3Yn41(xBRg*?%8)rt!96<)mqt2`AVuXPo1J{
zj!TCnJSz@+7cM_x;TOdphZBt0{+xN=-&CPqsoq_;eaYDqt7bgC=B=Y)_r}nqV9DPr
zAO8rMOqi<nHqu5fyH0L`P`|K#_2t!Bks_5TOM`vCzd06?+u1y`ttG^E!Q*$0mOT=m
zg>Rp~clO@O)Jt>RB`4h6v})sL&G~n|!)GSv>J+Mm_CLFoxlYSQ@=fNXxwGFnR!FYZ
zxU$(XkX2=V?w(t#*Sxttf9Wg!2;0@FeQckK%eZ)6^*x&2@k-)Ow`$fO53%>X5APjV
zkbY{yoa41mVpvX0X^;z^dF6;uYNurLlqaIKl9|yO@62wNZaCF`-+1p#Uay~a3yy7^
zrG3o*^-)2+WwDQb-1hUS)>G?W&3_@tZ2GQ{3B9jW-z{e1*;u=fZ%MIb=>IMMzOMWA
z=#7(Oq4w?aMZ51av0Ynna8jCY#+UiiTDI^XJM5##vgAZ?<g;}wW~HhdGSlrOuT19T
zo%QK$&*3kT5z3$cr{4Xr_KmybpAWOApE|i9u;-q{sZUN{73OmU<emvpi?H4ubWg`#
zTlAY_ufe^a+N;Y|FRYpEUZx*>O?h>e!S5q(PN$#i*|(KeUyS&w*v)r;q0^zHa~3T|
zON-=|XNW1;U6?FWKBf4j!!c1k`x6YW5BcrUm}kut)yO0%DOr2TjP2_T&r9x~Z|*kY
zDAyLg)c-|!Lv>c)GLMBJdoD<bWbND(a6YW%>n5JqckY%aH0R9w$f?Zt^V8F5|3b`9
zDIA~ZxQT78+!V2IJ1Q#@-aR~c!Lr}-VusP;Yg<zit#7X}TH?5Rvg5Ud6HPo;rN0%G
zxbm;*#Kx<Jp_0jOpR}x9$@N9b>(ob=|1YM5^wpd?G1Gq&+uAh;7UZ$)?^)kF^OQuk
zdia|&Aq%EYFo`OuV)bg}>s49EuHxAp7up=TfBo{sv3jZQUe1drJFa(C_Vj4owDX71
z_njSn{4ch8Oq#N@OfmDqNu#Q@ElVycDo<WGae~Ux;-7&IcMdGi_P_MwKv>zEyXX5l
z6@6yjYJF<0E*P_}ME}kI%`45d`j?w7v9IuP(|bFmu{gSIi`ld5krQKdo;;i~lPP58
zDZ6*99q!K_NAESAWNN=v>0NgjPek?Cmy0$|^v<>U(f!qZ(uvR6BB@!I9@_@<or^wo
z=;+2BrF;jq`@iio`1tbu`}8*rp%GuA&zw0X-toeI{^wch-?kQnAKCc#%VDMO_FJ#_
z6@~@3+R2+PTC|l@%azSD{rtxT6ZCr}tildP)=z8}zr5+Xf}VWUE{+I|c+sW&v$yV6
zPe1YCT;InpGmHDfHZQ+)HFoar_wzX7uie)=zU)hW-kF1z**jI9{@tCvUR!t0hfg05
zEnmcKrgqBa(&t~!asMW&bWZpd+u8Zg`1scuFYGxp?~8g);u6g-d?H-*OlepDdi{NI
zc{gTheLgGi{QSU~O~pU-cI~<Jga4+@UbWK_R@cw0s^`C8pB}zqN2pi@Yx~ESGj^`I
zZ8&|wlCLgq%SE&6_FQCIw0qyI{zJcvb8nXQ9Xlc<UEHxXnBC~vlCA^Su4+uao#B`0
zc-Mc|qoP7a`*{_i`TUXz*GrUM@8f&);=s3_8)e-*4ypGiB`y?uBY9_bXQ29y64Qy@
z%ga80ZkedlReg!s<lz2njxhG+2JaW~-@UbC;W_UcTwVV4{d<$yHXSQsC}uZb_;^XC
zN#}fz{gs6t4X5_8Hs6-qwDG_CnR{|)pJq?*yt%(iwK^|g!ZxWJp~pfi8`rYuFLG7;
z`bX>785{0a8AoXgv*q8T`6F#qn!Xx##@Oy|)l^p6InVTx=A89iX1tSjPBpjo5D&jl
z{~)cz_qR}1eY5@I<c>P2e=6_Nw0^1Ij((c{#&B`j`)?MpT`3Pw9{1nQar*p!J?#m{
zzfKa^B>isA^{ZLTPKR$@T<jiyZceA;w6AmQWPSVPYB_nc+oN&=R#bGmy3G5fFTZip
z=C@OxMjL1>;i+!_l6dKt{f-$kPP9(m9ch#((*5|-{H{xzziUl7d-~3E%h_+X#kfW8
zvt+(4wJ|fne&4;qw$tJI!h7>Yy}!k{hdbQKH2mE0!>sG@bD^D;#`EmA<tqC{%gI}Z
zt`whe-K=$~&TD_?_h)tH+BVGW?7zUQ)@PbwS0tLeJKSOJ)&t+1&fncGEg$~3ufwuh
zGVu4_<=IR}yQP+wZH}0It39mNDruWZm*Lm783vik+;9IKZxLKO<FkOl#^qkk=XmsI
z&*e~lA8_ycoWoCwY%^X?>bIWy^i!w5<E3|jE$g=`)<oO?@in@xu68EF@x$@?pAOfX
z86LPk$u0Prv3Zh(@NcukA}fh$>;0B@{9=98aB82fv6}p%^Bb%x_%|Q8^i$VP;zE=1
z<)??VI24P;C*R2DV3s=X9&Fa2H=p<M+Z#6}BsI7ywk=AZ5vOmzeQ(I|yUNm*dW^S~
zUu^p8D!u!i_f6YNn$@MsyYD)_z1tYaXm9-WcXP}2oSv;l)xWd))~-2!!zMfaQJ7?r
zXGHsiZ6}OMxZZYdFL!<PNY5bc&2#_t`)8Fr`6PE@^Z(PT4=t;HGIVWX>F-aP_trzL
z{@$#e{S3*~Oj0d|SDa>E<<wZ!8)IV@nVqyrM_K#S#e_pr&mw9LF8RMLA<IhQX6WL_
z;rZec<|niA@@D(2_v}<To$w^0yYKR|i^qdwU!4~UMjCuN=slsTXW>_?!pbX&VWk@X
z*IP=vNn6i-P`>@b=L2PSs{(BPPB^{&+Qy=zT5MnbF1u0_@Vr#0{GF7eqvM^u)4vC*
zW?x&A{^i8S9@+1zii){hqVLN;vkPC-6xsgiE!R#q<&6aooqm0L+wHbkP%`+8PQ-?W
z4I2z}balN;tmN%#H28vRe!iPN?fCci0^6&UUN3R0xqjjuuNePK_vK-mG&LK3g`PTm
z_OOn`Ki=@weTzDiKZ-BBWHF_FukwUFwU-w<XEQOc4qn)FTKoIM&p)3$dp50}{o$w7
ziIw>hP7ZO?ra1GgxY@Z@^4*sCKTUac@4xY{I@N!EQ_cyFwmXv;jPFQ)O+EM}FC<`p
zQ}xT#l)VBI{`{FNzfSMm`lI#dxjkxX{&;iGci=d&pZjxy*pd4`rrWG(+LYg){CQ>J
z`piAdRTpnO@$~%EE5HgGzd89TQT*_`1?G3{Rb6db8aNmQIlRtzxGxNtG;NlaUH0tz
z94_HCOq2d{K3wE`P)mgC(xpo-X?wb&7HHUBe(2=DqRKY)(hQ?#)9&o7W|o$Ae>mZJ
z!O8^RM_X?s^?p8gH#=g=Mz@s)dO^(Td3k<bUR=wTEmKPFnt0_(h>nhqS8qp0-n<1z
z60)8&?5~&QlfSPt=i@AkiWK3{)mILlII!+RZ(C63_U-0|hK8!obpM(wGR(0oW{Z!H
zzmiqDQp0{#+SysXE2FpPy-VlkWLYnmyj9ifaI}h=TEV9;`4Q8L4_w*eGjVx1%TMLg
zReATk5`MosI%T7Q@&Yf{H@dGEg^1-jIjsyy%FH}@b94I6s;^pRW@by59n@aAWXY0(
zFE0YOMCo2#6?*v2ojphTom4!9f+L!QOk~2O5~Ix~JZP&DT7T!^htBwlFE8dr1n8%U
zaH*#1u2~tjR_)xnYY{WAyDZhZmH748v12B=x29ZP?!USGecYtUlaDt2@_ydV#LdlZ
zV`KB-)2BmMu57vDlgP;^I7P#!C#P^rRzqi^&N|Uki>Ir4ef#)y>86uTD-8}^I3VU-
z9N)v!{cmO5(xA?jD>WM%8(COb7F>SW((uPu(9po(z>y;?Q@uj7F6pwk1Uw3mo{<>7
zuC2gDGvf;nFR!7AiO9Jh+s{dHh=WFI9XL8bgSRaWm>dNb7X<+hmip%Z%%@azYcfCb
Se_&u>VDNPHb6Mw<&;$VWm|gw=

literal 0
HcmV?d00001

diff --git a/sflphone-client-gnome/doc/C/figures/zrtp_options.png b/sflphone-client-gnome/doc/C/figures/zrtp_options.png
new file mode 100644
index 0000000000000000000000000000000000000000..b9229d7b81f31aa6e4a66759bd1856959c82f233
GIT binary patch
literal 17688
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
CrDyX1

literal 0
HcmV?d00001

diff --git a/sflphone-client-gnome/doc/C/sflphone.xml b/sflphone-client-gnome/doc/C/sflphone.xml
index b104b8b2f8..c08d76564a 100644
--- a/sflphone-client-gnome/doc/C/sflphone.xml
+++ b/sflphone-client-gnome/doc/C/sflphone.xml
@@ -270,15 +270,31 @@
 	</sect2>
 	<sect2 id="account_security">
 		<title>Security features</title>
-			<para>These features are only available with SIP.</para>
-		<sect3 id="accounts_zrtp">
-			<title>Secure RTP</title>
+        	<para>These features are only available with SIP.</para>
+			<para>Follow the indications to <link linkend='account_edit'>edit an account</link> and choose the <guimenu>Security</guimenu> tab.</para>
+        <!-- ==== Figure ==== -->
+        <figure id="account-security-fig">
+            <title>Security features configuration panel</title>
+            <screenshot>
+                <mediaobject>
+                    <imageobject>
+                        <imagedata fileref="figures/accounts_security.png" format="PNG"/>
+                    </imageobject>
+                </mediaobject>
+            </screenshot>
+        </figure>
+        <!-- ==== End of Figure ==== -->
+
+		<sect3 id="realms">
+			<title>Credentials</title>
+			<para>SFLphone supports multiple realms.</para> 
 		</sect3>
-		<sect3 id="accounts_tls">
-			<title>TLS</title>
+
+		<sect3 id="security_frame">
+			<title>Security </title>
+			<para>Please refer to the section <link linkend="detailed_security_features">Security features</link> for detailed information about security features.</para>
 		</sect3>
 	</sect2>
-
 </sect1>
 
 <sect1 id="call_features">
@@ -607,6 +623,109 @@
 </sect1>
 
 
+<sect1 id="detailed_security_features">
+	<title>Security features</title>
+             <sect2 id="zrtp_srtp">
+				<title>SRTP/ZRTP</title>
+				<sect3 id="zrtp_srtp_definition">
+             	<title>SRTP and ZRTP, the big picture</title>
+                       <para>RTP is the underlying protocol that is used in pair with the widely used SIP protocol to carry voice data. RTP alone does not provide any security features.</para>
+                        <para>Details for implementing Secure RTP (SRTP) were described independently in a separate document (RFC). However, in this paper, one aspect was deliberately left unspecified: how should the encryption keys be exchanged between the two parties involved in a secure RTP session ?</para>
+                        
+                        <para>Mutiple solutions were proposed to fill in that blank. Among them, are SDES (RFC4568) and ZRTP which are probably the most popular today. For the 0.9.7 release, SFLphone integrates support for Secure RTP through the ZRTP protocol, and SDES is expected to be implemented in the very few next releases.</para>
+                        
+                        <para>As of today, blueprints for ZRTP are still laid out and are recognized under the name "zrtp-draftzimmerman" in the RFC machine. The author of ZRTP is Phil Zimmermann, that same person who brought us PGP. Therefore, it is not suprising that he designed ZRTP as an anti-PKI solution for key exchange.</para>
+                        
+                        <para>ZRTP makes possible for two parties to automatically establish a shared secret in a very simple way from the users's point of view. Indeed under SFLphone no special configuration is needed, appart from  enabling the option itself.</para>
+                        
+                        <para>If you want to use ZRTP, please take note that if you are connecting to a PBX, this one must have been configured to support ZRTP. Unfortunately, security for VoIP communications is still young and chances are that your PBX software won't support it.</para>
+                        
+                        <para>This does not mean that you want be able to benefit from ZRTP ! In fact, it turns out that you will be able to use it, as long as the server does not need to decode the RTP stream. This is often the case when the person you are calling to uses a codec that you don't support. In that case, the server will need to transcode the RTP packets and obviously need to be able to handle the ZRTP stream.</para>
+                        
+                        <para>Obviously, if you are calling another user (for example by prefixing the number with "sip:") directly, then this one will have to support ZRTP as well if you want to use it.</para>
+					</sect3>
+					
+					<sect3 id="enabling_srtp">
+						<title>Enabling SRTP/ZRTP</title>
+							<para>To enable ZRTP per account basis, perform the following steps:</para>
+  								<orderedlist>
+									<listitem><para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage accounts</guimenuitem></menuchoice>.</para></listitem>
+									<listitem><para>Select in the list the account you would like to edit, then click on the <guilabel>Edit</guilabel> button.</para></listitem>
+									<listitem><para>Select the <guilabel>Security</guilabel> tab.</para></listitem>
+									<listitem><para>Select <guilabel>ZRTP</guilabel> from the select box named <guilabel>SRTP Key Exchange</guilabel>.</para></listitem>
+     							</orderedlist>
+		<!-- ==== Figure ==== -->
+        							<figure id="srtp-enabled-fig">
+            							<title>Enabling SRTP</title>
+            							<screenshot>
+                							<mediaobject>
+                    							<imageobject>
+                        							<imagedata fileref="figures/srtp_enabled.png" format="PNG"/>
+                    							</imageobject>
+                							</mediaobject>
+            							</screenshot>
+        							</figure>
+        							<!-- ==== End of Figure ==== -->
+					</sect3>
+
+					<sect3 id="account_zrtp">
+                        <title>Configuration options</title>
+                        
+                        <para>After enabling SRTP, click the <guilabel>Preferences</guilabel> button.</para>
+						<para>For basic usage, one don't have to worry about that.</para>
+                        
+						<!-- ==== Figure ==== -->
+                                    <figure id="zrtp-options-fig">
+                                        <title>ZRTP configuration panel</title>
+                                        <screenshot>
+                                            <mediaobject>
+                                                <imageobject>
+                                                    <imagedata fileref="figures/zrtp_options.png" format="PNG"/>
+                                                </imageobject>
+                                            </mediaobject>
+                                        </screenshot>
+                                    </figure>
+                                    <!-- ==== End of Figure ==== -->
+
+
+							<variablelist>
+                    			<varlistentry>
+                        			<term><guilabel>Send Hello Hash in SDP</guilabel></term>
+                        				<listitem><para>Selecting this option will cause the program to compute an hash function over the "Hello" packet and send it as an SDP field "zrtp-hash:". The remote end might be interested in getting this value to add an additional layer of protection based on another communication channel. Upon receiving this value, the remote point can compute the hash function on the received hello packet and compare it.</para>
+                        				<para>Take note that for 0.9.7, SFLPhone does not perform the comparasion on its side.</para></listitem>
+								</varlistentry>
+                        
+                        		<varlistentry>
+									<term><guilabel>Ask user to confirm SAS</guilabel></term>
+                        			<listitem><para>The short authentication mechanism is at the heart of the ZRTP protocol. Not requirering the user to manually check the SAS value presents a security risk over Man in the Middle type of attacks.</para>
+                        
+                        			<para>Disabling this option will stop the program from prompting the user with the SAS.</para>
+                        
+                        			<para>Such an option was motivated to be developped at that time by the the state of the libzrtpcpp library that SFLPhone was making use of. It is only from version x.x that this library can cache results of SAS computation between two peers.</para>
+									</listitem>
+								</varlistentry>
+                        
+								<varlistentry>
+                        		<term><guilabel>Display SAS once for hold event</guilabel></term>
+                        			<listitem><para>When call is put on hold, the RTP stream is stopped and reinitiated later. From the ZRTP point of view, this appears as a "new call".  Therefore, the SAS will be redisplayed unless this option is selected.</para></listitem>
+                       			</varlistentry> 
+								<varlistentry>
+                        			<term><guilabel>ZRTP for direct peer-to-peer calls</guilabel></term>
+                        			<listitem><para>If you want to use ZRTP for calls that are placed directly to a user (without an intervening PBX), you must enable the option under the "Direct IP Calls" tab in the "configuration" window, available from the "edit" menu.</para>
+                        
+                        <para>Configuration instruction from that point are the same as for configured accounts.</para>
+									</listitem>
+								</varlistentry>
+							</variablelist>
+                </sect3>
+			</sect2>
+            <sect2 id="accounts_tls">
+                        <title>TLS</title>
+            </sect2>
+</sect1>
+
+
+
 <sect1 id="audio_interfaces">
 	<title>Audio configuration</title>
 	<para>
diff --git a/sflphone-client-gnome/doc/Makefile.am b/sflphone-client-gnome/doc/Makefile.am
index f258a20f31..6727048ed8 100644
--- a/sflphone-client-gnome/doc/Makefile.am
+++ b/sflphone-client-gnome/doc/Makefile.am
@@ -24,8 +24,11 @@ DOC_FIGURES =	figures/addressbook-button.png \
 				figures/systemtray-settings.png			\
 				figures/voicemail-notif.png			\
 				figures/account_advanced.png 			\
+				figures/accounts_security.png 			\
 				figures/drag_n_drop.png 			\
 				figures/conference.png	 			\
 				figures/conference_detached.png			\
-				figures/conference_attached.png
+				figures/conference_attached.png			\
+				figures/srtp_enabled.png				\
+				figures/zrtp_options.png	
 DOC_LINGUAS = fr es
-- 
GitLab


From c38b106707c57bd9ca61e20e739c6a84654e0ad7 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Tue, 8 Dec 2009 13:16:17 -0500
Subject: [PATCH 061/188] [2553] Fix stop audio when transfering a conference
 call

---
 sflphone-common/src/managerimpl.cpp | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index 75b3fb021a..d79591622f 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -1855,17 +1855,6 @@ ManagerImpl::peerHungupCall (const CallID& call_id)
         }
     }
 
-    int nbCalls = getCallList().size();
-
-    // stop streams
-
-    if (nbCalls <= 1) {
-        _debug ("    hangupCall: stop audio stream, ther is only %i call(s) remaining", nbCalls);
-
-        AudioLayer* audiolayer = getAudioDriver();
-        audiolayer->stopStream();
-    }
-
     /* Direct IP to IP call */
     if (getConfigFromCall (call_id) == Call::IPtoIP) {
         SIPVoIPLink::instance (AccountNULL)->hangup (call_id);
@@ -1890,6 +1879,18 @@ ManagerImpl::peerHungupCall (const CallID& call_id)
 
     removeCallAccount (call_id);
 
+     int nbCalls = getCallList().size();
+
+    // stop streams
+
+    if (nbCalls <= 0) {
+        _debug ("    hangupCall: stop audio stream, ther is only %i call(s) remaining", nbCalls);
+
+        AudioLayer* audiolayer = getAudioDriver();
+        audiolayer->stopStream();
+    }
+
+
     if (_audiodriver->getLayerType() == PULSEAUDIO) {
         pulselayer = dynamic_cast<PulseLayer *> (getAudioDriver());
     }
-- 
GitLab


From 26ce7dfd12b813d2a112193c881334dd53b415b5 Mon Sep 17 00:00:00 2001
From: Jonas Fonseca <jonas.fonseca@savoirfairelinux.com>
Date: Mon, 7 Dec 2009 12:29:32 -0500
Subject: [PATCH 062/188] Remove undefined SFL_CXX_WITH_DEBUG macro

It was originally defined in the toplevel m4/sfl-internal.m4 file and
later inlined in the configure.ac. While the definition removed, the
reference was not and causes the configure script to print an error
message.
---
 sflphone-common/configure.ac | 1 -
 1 file changed, 1 deletion(-)

diff --git a/sflphone-common/configure.ac b/sflphone-common/configure.ac
index 8ea46baa20..1a6b5e5eaf 100644
--- a/sflphone-common/configure.ac
+++ b/sflphone-common/configure.ac
@@ -90,7 +90,6 @@ AC_SUBST(PKGADD_VENDOR)
 
 	dnl Check for programs
 	AC_PROG_CC
-	SFL_CXX_WITH_DEBUG
 	AC_PROG_CXX
 	AC_PROG_CPP
 	AC_PROG_INSTALL
-- 
GitLab


From 1c9753a7e2bccb0c11096e306d64b7fb56afde38 Mon Sep 17 00:00:00 2001
From: Jonas Fonseca <jonas.fonseca@savoirfairelinux.com>
Date: Mon, 7 Dec 2009 12:33:00 -0500
Subject: [PATCH 063/188] Tweak mo clean and install targets

This ensures that .mo files are up-to-date when using `make install`.
Before you had to first run `make`.
---
 sflphone-client-gnome/po/Makefile.am | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sflphone-client-gnome/po/Makefile.am b/sflphone-client-gnome/po/Makefile.am
index 6d2d320a9b..2f8eebd1cc 100644
--- a/sflphone-client-gnome/po/Makefile.am
+++ b/sflphone-client-gnome/po/Makefile.am
@@ -38,7 +38,7 @@ SUFFIXES=.po .mo
 .po.mo:
 	$(MSGFMT) -o $@ $<
 
-install-data-local:
+install-data-local: $(MOFILES)
 	@catalogs='$(MOFILES)'; \
 	for i in $$catalogs; do \
 		destdir=$(locale_installdir); \
@@ -58,4 +58,4 @@ uninstall-local:
 	done
 
 clean-local:
-	rm -rf *.mo
+	rm -f $(MOFILES)
-- 
GitLab


From 68104630cef2e94c6a3ec30fc80a0db0499052b4 Mon Sep 17 00:00:00 2001
From: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
Date: Tue, 8 Dec 2009 14:03:00 -0500
Subject: [PATCH 064/188] [#2402] Update user manual template (localization)

---
 .../doc/C/sflphone-usermanual.pot             | 470 +++++++++++++-----
 1 file changed, 336 insertions(+), 134 deletions(-)

diff --git a/sflphone-client-gnome/doc/C/sflphone-usermanual.pot b/sflphone-client-gnome/doc/C/sflphone-usermanual.pot
index 337598a62a..5783d55d7c 100644
--- a/sflphone-client-gnome/doc/C/sflphone-usermanual.pot
+++ b/sflphone-client-gnome/doc/C/sflphone-usermanual.pot
@@ -1,7 +1,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2009-10-26 15:41-0400\n"
+"POT-Creation-Date: 2009-12-08 13:58-0500\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"
@@ -17,121 +17,163 @@ msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: sflphone.xml:296(None)
+#: sflphone.xml:281(None)
+msgid "@@image: 'figures/accounts_security.png'; md5=14161ae9857c046d571e5e9501c35fa5"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:312(None)
 msgid "@@image: 'figures/dial.png'; md5=81ff4280c293e62a49fad3a4b61b9bb5"
 msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: sflphone.xml:311(None)
+#: sflphone.xml:327(None)
 msgid "@@image: 'figures/call-second.png'; md5=fa490e3b07eebaa9f4ff719f579d68ef"
 msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: sflphone.xml:330(None)
+#: sflphone.xml:346(None)
 msgid "@@image: 'figures/call.png'; md5=ecd96beec76f808b5c1469ecc1293237"
 msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: sflphone.xml:348(None)
+#: sflphone.xml:364(None)
 msgid "@@image: 'figures/answer.png'; md5=c168995c6b36b5d200c49d1c02c2ea52"
 msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: sflphone.xml:365(None)
+#: sflphone.xml:381(None)
 msgid "@@image: 'figures/hangup.png'; md5=0cac4dfe3a9a4bdf4d12229f77e3723a"
 msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: sflphone.xml:385(None)
+#: sflphone.xml:401(None)
 msgid "@@image: 'figures/refuse.png'; md5=34b6cbf068e56163058e79de3ca70c59"
 msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: sflphone.xml:403(None)
+#: sflphone.xml:419(None)
 msgid "@@image: 'figures/holdon.png'; md5=655078b8b495ada29f65b58501187d16"
 msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: sflphone.xml:415(None)
+#: sflphone.xml:431(None)
 msgid "@@image: 'figures/holdoff.png'; md5=e06b8eba03f1545cd18891630b22f281"
 msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: sflphone.xml:430(None)
+#: sflphone.xml:446(None)
 msgid "@@image: 'figures/transfer.png'; md5=92f921c7c6ba4ee2487ccf6e02226d9a"
 msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: sflphone.xml:444(None)
+#: sflphone.xml:460(None)
 msgid "@@image: 'figures/transfer-go.png'; md5=553b57d5a9fc9f248ba15cecc32d343f"
 msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: sflphone.xml:465(None)
+#: sflphone.xml:481(None)
 msgid "@@image: 'figures/rec-settings.png'; md5=27d51e45ff23dde58b0512f90773f6ce"
 msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: sflphone.xml:478(None)
+#: sflphone.xml:494(None)
 msgid "@@image: 'figures/record.png'; md5=7a594660924940e8def9ecfcee0e8cb4"
 msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: sflphone.xml:496(None)
+#: sflphone.xml:512(None)
 msgid "@@image: 'figures/voicemail.png'; md5=36dbeb4bcc6a68519d474552a888ce1e"
 msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: sflphone.xml:684(None)
+#: sflphone.xml:548(None)
+msgid "@@image: 'figures/drag_n_drop.png'; md5=fed5f0da9f162ca96bda0d49935a5354"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:560(None)
+msgid "@@image: 'figures/conference.png'; md5=36f68c0a1fd7450487009126fff544bd"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:582(None)
+msgid "@@image: 'figures/conference_detached.png'; md5=145189452009ea3110bb569c92997a4c"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:594(None)
+msgid "@@image: 'figures/conference_attached.png'; md5=73411e05f2f2b185c34b5935ef7c49f0"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:663(None)
+msgid "@@image: 'figures/srtp_enabled.png'; md5=6d4679f6afec1a8b84ce69f617cb4fa7"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:683(None)
+msgid "@@image: 'figures/zrtp_options.png'; md5=2468eca925b188356bcc0c341c3fd912"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:849(None)
 msgid "@@image: 'figures/addressbook-button.png'; md5=b4a820013ef8b8f48e7de780a66c7800"
 msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: sflphone.xml:719(None)
+#: sflphone.xml:884(None)
 msgid "@@image: 'figures/desktop-notif-settings.png'; md5=2bca85d6d9871883399481b994bd3384"
 msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: sflphone.xml:738(None)
+#: sflphone.xml:903(None)
 msgid "@@image: 'figures/notif-example.png'; md5=d09008bedcaee435b12cd165d42e39b7"
 msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: sflphone.xml:755(None)
+#: sflphone.xml:920(None)
 msgid "@@image: 'figures/voicemail-notif.png'; md5=a33ed4ce4b693d67ee453b4ef1fa6c30"
 msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: sflphone.xml:774(None)
+#: sflphone.xml:939(None)
 msgid "@@image: 'figures/systemtray-settings.png'; md5=638612a08eb31eb768c4f08ace9c909a"
 msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: sflphone.xml:814(None)
+#: sflphone.xml:979(None)
 msgid "@@image: 'figures/callshistory-settings.png'; md5=287d8aed7d7c71752257c64e89a9127d"
 msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: sflphone.xml:838(None)
+#: sflphone.xml:1003(None)
 msgid "@@image: 'figures/configfile-settings.png'; md5=eb4a5545f137b825dcdaf0396a9f1a7d"
 msgstr ""
 
@@ -196,7 +238,7 @@ msgid "emmanuel.milou@savoirfairelinux.com"
 msgstr ""
 
 #: sflphone.xml:58(firstname)
-msgid "Jérémy"
+msgid "Jeremy"
 msgstr ""
 
 #: sflphone.xml:59(surname)
@@ -315,7 +357,7 @@ msgstr ""
 msgid "To create a new account, perform the following steps:"
 msgstr ""
 
-#: sflphone.xml:153(para) sflphone.xml:191(para) sflphone.xml:201(para)
+#: sflphone.xml:153(para) sflphone.xml:191(para) sflphone.xml:201(para) sflphone.xml:652(para)
 msgid "Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage accounts</guimenuitem></menuchoice>."
 msgstr ""
 
@@ -387,7 +429,7 @@ msgstr ""
 msgid "To edit an existing account, perform the following steps:"
 msgstr ""
 
-#: sflphone.xml:192(para)
+#: sflphone.xml:192(para) sflphone.xml:653(para)
 msgid "Select in the list the account you would like to edit, then click on the <guilabel>Edit</guilabel> button."
 msgstr ""
 
@@ -463,7 +505,7 @@ msgstr ""
 msgid "To register to some VoIP services, you will need to set this value at at least 1600 seconds (Example: French VoIP server freephonie.net)."
 msgstr ""
 
-#: sflphone.xml:244(title) sflphone.xml:873(title)
+#: sflphone.xml:244(title) sflphone.xml:1038(title)
 msgid "Network"
 msgstr ""
 
@@ -507,429 +549,589 @@ msgstr ""
 msgid "Manually"
 msgstr ""
 
-#: sflphone.xml:272(title)
+#: sflphone.xml:272(title) sflphone.xml:627(title)
 msgid "Security features"
 msgstr ""
 
-#: sflphone.xml:275(title)
-msgid "Secure RTP"
+#: sflphone.xml:274(para)
+msgid "Follow the indications to <link linkend=\"account_edit\">edit an account</link> and choose the <guimenu>Security</guimenu> tab."
 msgstr ""
 
-#: sflphone.xml:278(title)
-msgid "TLS"
+#: sflphone.xml:277(title)
+msgid "Security features configuration panel"
+msgstr ""
+
+#: sflphone.xml:289(title)
+msgid "Credentials"
 msgstr ""
 
-#: sflphone.xml:285(title)
+#: sflphone.xml:290(para)
+msgid "SFLphone supports multiple realms."
+msgstr ""
+
+#: sflphone.xml:294(title)
+msgid "Security"
+msgstr ""
+
+#: sflphone.xml:295(para)
+msgid "Please refer to the section <link linkend=\"detailed_security_features\">Security features</link> for detailed information about security features."
+msgstr ""
+
+#: sflphone.xml:301(title)
 msgid "Call features"
 msgstr ""
 
-#: sflphone.xml:287(para)
+#: sflphone.xml:303(para)
 msgid "All the following features are available with both SIP and IAX2 accounts."
 msgstr ""
 
-#: sflphone.xml:292(title)
+#: sflphone.xml:308(title)
 msgid "Dial button"
 msgstr ""
 
 #. ==== End of Figure ====
-#: sflphone.xml:303(para)
+#: sflphone.xml:319(para)
 msgid "You may have an unlimited number of calls at the same time, even with different accounts."
 msgstr ""
 
-#: sflphone.xml:304(para)
+#: sflphone.xml:320(para)
 msgid "To create a new call when you already have a current call, just click on the <guilabel>Dial</guilabel> button. The current call will automatically be put on hold."
 msgstr ""
 
-#: sflphone.xml:307(title)
+#: sflphone.xml:323(title)
 msgid "Make an other call"
 msgstr ""
 
 #. ==== End of Figure ====
-#: sflphone.xml:318(para)
+#: sflphone.xml:334(para)
 msgid "Keyboard shortcut to perform this action: <accel>NUMPAD</accel> or almost any keys."
 msgstr ""
 
-#: sflphone.xml:326(title)
+#: sflphone.xml:342(title)
 msgid "Call button"
 msgstr ""
 
 #. ==== End of Figure ====
-#: sflphone.xml:337(para) sflphone.xml:355(para)
+#: sflphone.xml:353(para) sflphone.xml:371(para)
 msgid "Keyboard shortcut to perform this action: <accel>Enter</accel>."
 msgstr ""
 
-#: sflphone.xml:344(title)
+#: sflphone.xml:360(title)
 msgid "Answer button"
 msgstr ""
 
-#: sflphone.xml:361(title)
+#: sflphone.xml:377(title)
 msgid "Hangup button"
 msgstr ""
 
 #. ==== End of Figure ====
-#: sflphone.xml:372(para) sflphone.xml:392(para)
+#: sflphone.xml:388(para) sflphone.xml:408(para)
 msgid "Keyboard shortcut to perform this action: <accel>ESC</accel>."
 msgstr ""
 
-#: sflphone.xml:377(para)
+#: sflphone.xml:393(para)
 msgid "When you refuse a call, your caller is automatically redirected to your voicemail box, if applicable."
 msgstr ""
 
-#: sflphone.xml:381(title)
+#: sflphone.xml:397(title)
 msgid "Refuse button"
 msgstr ""
 
-#: sflphone.xml:399(title)
+#: sflphone.xml:415(title)
 msgid "Hold on button"
 msgstr ""
 
-#: sflphone.xml:411(title)
+#: sflphone.xml:427(title)
 msgid "Hold off button"
 msgstr ""
 
-#: sflphone.xml:426(title)
+#: sflphone.xml:442(title)
 msgid "Transfer button"
 msgstr ""
 
 #. ==== End of Figure ====
-#: sflphone.xml:437(para)
+#: sflphone.xml:453(para)
 msgid "Then type the number you want to transfer the current call to."
 msgstr ""
 
-#: sflphone.xml:440(title)
+#: sflphone.xml:456(title)
 msgid "Validate the transfer"
 msgstr ""
 
 #. ==== End of Figure ====
-#: sflphone.xml:451(para)
+#: sflphone.xml:467(para)
 msgid "And press <accel>Enter</accel>. Clicking again on the transfer button cancels the transfer."
 msgstr ""
 
-#: sflphone.xml:457(para)
+#: sflphone.xml:473(para)
 msgid "Go to <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem><guimenuitem>Audio</guimenuitem></menuchoice> to configure the recordings destination folder."
 msgstr ""
 
-#: sflphone.xml:461(title)
+#: sflphone.xml:477(title)
 msgid "Record settings"
 msgstr ""
 
-#: sflphone.xml:474(title)
+#: sflphone.xml:490(title)
 msgid "Record button"
 msgstr ""
 
-#: sflphone.xml:488(caution)
+#: sflphone.xml:504(caution)
 msgid "This feature is available only if you fill out the voicemail number information for your default account."
 msgstr ""
 
-#: sflphone.xml:492(title)
+#: sflphone.xml:508(title)
 msgid "Voicemail button"
 msgstr ""
 
-#: sflphone.xml:506(para)
+#: sflphone.xml:522(para)
 msgid "A direct IP call is a call established between two peers without any accounts. When dialing, such a call must prefixed with <guilabel>sip:</guilabel>."
 msgstr ""
 
-#: sflphone.xml:508(para)
+#: sflphone.xml:524(para)
 msgid "Direct IP calls use SIP protocol to establish communication and RTP to transport data. It is right now not available with IAX2."
 msgstr ""
 
-#: sflphone.xml:510(para)
+#: sflphone.xml:526(para)
 msgid "Go to <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem><guimenuitem>Direct IP calls</guimenuitem></menuchoice> to configure the advanced security features for this kind of calls."
 msgstr ""
 
-#: sflphone.xml:514(para)
+#: sflphone.xml:530(para)
 msgid "SFLphone now supports conference call hosting integrating server like features in a simple GUI."
 msgstr ""
 
-#: sflphone.xml:520(guilabel)
+#: sflphone.xml:536(guilabel)
 msgid "Create a conference"
 msgstr ""
 
-#: sflphone.xml:521(para)
+#: sflphone.xml:537(para)
 msgid "To host a conference, simply drag and drop one call on another. Additional participants are added the same way, dragging a call on the conference icon."
 msgstr ""
 
-#: sflphone.xml:528(guilabel)
+#: sflphone.xml:544(title)
+msgid "Creating a new conference"
+msgstr ""
+
+#: sflphone.xml:556(title)
+msgid "Conference call"
+msgstr ""
+
+#: sflphone.xml:568(guilabel)
 msgid "Leave a conference"
 msgstr ""
 
-#: sflphone.xml:529(para)
-msgid "SFLphone conference model let you leave a conference that you are currently hosting to answer any other incoming communication or even initiate new ones. The conference is not interupted Double clicking the conference icon let you reintroduce the conference."
+#: sflphone.xml:569(para)
+msgid "SFLphone conference model let you leave a conference that you are currently hosting to answer any other incoming communication or even initiate new ones. The conference is not interupted, double clicking the conference icon let you reintroduce it at any momment."
+msgstr ""
+
+#: sflphone.xml:578(title)
+msgid "Conference detached"
+msgstr ""
+
+#: sflphone.xml:590(title)
+msgid "Conference attached"
 msgstr ""
 
-#: sflphone.xml:538(guilabel)
+#: sflphone.xml:602(guilabel)
 msgid "Multiple conference"
 msgstr ""
 
-#: sflphone.xml:539(para)
+#: sflphone.xml:603(para)
 msgid "SFLphone supports multiple conferences running simultaneously. Two conferences can be joined the same way they are created, dragging one on the other."
 msgstr ""
 
-#: sflphone.xml:547(guilabel)
+#: sflphone.xml:611(guilabel)
 msgid "Hangup/Hold a conference"
 msgstr ""
 
-#: sflphone.xml:548(para)
-msgid "Right click the conference icon. Holding the conference put all participants on hold. Hangup a conference hangup all participants."
+#: sflphone.xml:612(para)
+msgid "Select the conference icon and press hangup/hold button on the toolbar. The selected action is applied on every conference participants."
+msgstr ""
+
+#: sflphone.xml:629(title)
+msgid "SRTP/ZRTP"
+msgstr ""
+
+#: sflphone.xml:631(title)
+msgid "SRTP and ZRTP, the big picture"
+msgstr ""
+
+#: sflphone.xml:632(para)
+msgid "RTP is the underlying protocol that is used in pair with the widely used SIP protocol to carry voice data. RTP alone does not provide any security features."
+msgstr ""
+
+#: sflphone.xml:633(para)
+msgid "Details for implementing Secure RTP (SRTP) were described independently in a separate document (RFC). However, in this paper, one aspect was deliberately left unspecified: how should the encryption keys be exchanged between the two parties involved in a secure RTP session ?"
+msgstr ""
+
+#: sflphone.xml:635(para)
+msgid "Mutiple solutions were proposed to fill in that blank. Among them, are SDES (RFC4568) and ZRTP which are probably the most popular today. For the 0.9.7 release, SFLphone integrates support for Secure RTP through the ZRTP protocol, and SDES is expected to be implemented in the very few next releases."
+msgstr ""
+
+#: sflphone.xml:637(para)
+msgid "As of today, blueprints for ZRTP are still laid out and are recognized under the name \"zrtp-draftzimmerman\" in the RFC machine. The author of ZRTP is Phil Zimmermann, that same person who brought us PGP. Therefore, it is not suprising that he designed ZRTP as an anti-PKI solution for key exchange."
+msgstr ""
+
+#: sflphone.xml:639(para)
+msgid "ZRTP makes possible for two parties to automatically establish a shared secret in a very simple way from the users's point of view. Indeed under SFLphone no special configuration is needed, appart from enabling the option itself."
 msgstr ""
 
-#: sflphone.xml:565(title)
+#: sflphone.xml:641(para)
+msgid "If you want to use ZRTP, please take note that if you are connecting to a PBX, this one must have been configured to support ZRTP. Unfortunately, security for VoIP communications is still young and chances are that your PBX software won't support it."
+msgstr ""
+
+#: sflphone.xml:643(para)
+msgid "This does not mean that you want be able to benefit from ZRTP ! In fact, it turns out that you will be able to use it, as long as the server does not need to decode the RTP stream. This is often the case when the person you are calling to uses a codec that you don't support. In that case, the server will need to transcode the RTP packets and obviously need to be able to handle the ZRTP stream."
+msgstr ""
+
+#: sflphone.xml:645(para)
+msgid "Obviously, if you are calling another user (for example by prefixing the number with \"sip:\") directly, then this one will have to support ZRTP as well if you want to use it."
+msgstr ""
+
+#: sflphone.xml:649(title)
+msgid "Enabling SRTP/ZRTP"
+msgstr ""
+
+#: sflphone.xml:650(para)
+msgid "To enable ZRTP per account basis, perform the following steps:"
+msgstr ""
+
+#: sflphone.xml:654(para)
+msgid "Select the <guilabel>Security</guilabel> tab."
+msgstr ""
+
+#: sflphone.xml:655(para)
+msgid "Select <guilabel>ZRTP</guilabel> from the select box named <guilabel>SRTP Key Exchange</guilabel>."
+msgstr ""
+
+#: sflphone.xml:659(title)
+msgid "Enabling SRTP"
+msgstr ""
+
+#: sflphone.xml:672(title)
+msgid "Configuration options"
+msgstr ""
+
+#: sflphone.xml:674(para)
+msgid "After enabling SRTP, click the <guilabel>Preferences</guilabel> button."
+msgstr ""
+
+#: sflphone.xml:675(para)
+msgid "For basic usage, one don't have to worry about that."
+msgstr ""
+
+#: sflphone.xml:679(title)
+msgid "ZRTP configuration panel"
+msgstr ""
+
+#: sflphone.xml:693(guilabel)
+msgid "Send Hello Hash in SDP"
+msgstr ""
+
+#: sflphone.xml:694(para)
+msgid "Selecting this option will cause the program to compute an hash function over the \"Hello\" packet and send it as an SDP field \"zrtp-hash:\". The remote end might be interested in getting this value to add an additional layer of protection based on another communication channel. Upon receiving this value, the remote point can compute the hash function on the received hello packet and compare it."
+msgstr ""
+
+#: sflphone.xml:695(para)
+msgid "Take note that for 0.9.7, SFLPhone does not perform the comparasion on its side."
+msgstr ""
+
+#: sflphone.xml:699(guilabel)
+msgid "Ask user to confirm SAS"
+msgstr ""
+
+#: sflphone.xml:700(para)
+msgid "The short authentication mechanism is at the heart of the ZRTP protocol. Not requirering the user to manually check the SAS value presents a security risk over Man in the Middle type of attacks."
+msgstr ""
+
+#: sflphone.xml:702(para)
+msgid "Disabling this option will stop the program from prompting the user with the SAS."
+msgstr ""
+
+#: sflphone.xml:704(para)
+msgid "Such an option was motivated to be developped at that time by the the state of the libzrtpcpp library that SFLPhone was making use of. It is only from version x.x that this library can cache results of SAS computation between two peers."
+msgstr ""
+
+#: sflphone.xml:709(guilabel)
+msgid "Display SAS once for hold event"
+msgstr ""
+
+#: sflphone.xml:710(para)
+msgid "When call is put on hold, the RTP stream is stopped and reinitiated later. From the ZRTP point of view, this appears as a \"new call\". Therefore, the SAS will be redisplayed unless this option is selected."
+msgstr ""
+
+#: sflphone.xml:713(guilabel)
+msgid "ZRTP for direct peer-to-peer calls"
+msgstr ""
+
+#: sflphone.xml:714(para)
+msgid "If you want to use ZRTP for calls that are placed directly to a user (without an intervening PBX), you must enable the option under the \"Direct IP Calls\" tab in the \"configuration\" window, available from the \"edit\" menu."
+msgstr ""
+
+#: sflphone.xml:716(para)
+msgid "Configuration instruction from that point are the same as for configured accounts."
+msgstr ""
+
+#: sflphone.xml:723(title)
+msgid "TLS"
+msgstr ""
+
+#: sflphone.xml:730(title)
 msgid "Audio configuration"
 msgstr ""
 
-#: sflphone.xml:566(para)
+#: sflphone.xml:731(para)
 msgid "ALSA and Pulseaudio native interfaces are available."
 msgstr ""
 
-#: sflphone.xml:582(title)
+#: sflphone.xml:747(title)
 msgid "Codecs overview"
 msgstr ""
 
-#: sflphone.xml:583(para)
+#: sflphone.xml:748(para)
 msgid "SFLphone supports several widely used audio codec:"
 msgstr ""
 
-#: sflphone.xml:587(guilabel)
+#: sflphone.xml:752(guilabel)
 msgid "PCMU/PCMA"
 msgstr ""
 
-#: sflphone.xml:588(para)
+#: sflphone.xml:753(para)
 msgid "ITU-T telefony standard PCM formats, 8kHz, 64 kbit/s, using logarithmic byte compression algorithm."
 msgstr ""
 
-#: sflphone.xml:594(guilabel)
+#: sflphone.xml:759(guilabel)
 msgid "GSM"
 msgstr ""
 
-#: sflphone.xml:595(para)
+#: sflphone.xml:760(para)
 msgid "Global System for Mobile communications (GSM) narrowband 8kHz standard based on linear prediction encoding."
 msgstr ""
 
-#: sflphone.xml:601(guilabel)
+#: sflphone.xml:766(guilabel)
 msgid "G722"
 msgstr ""
 
-#: sflphone.xml:602(para)
+#: sflphone.xml:767(para)
 msgid "ITU-T standard wideband 16kHz standard based on linear prediction."
 msgstr ""
 
-#: sflphone.xml:607(guilabel)
+#: sflphone.xml:772(guilabel)
 msgid "SPEEX"
 msgstr ""
 
-#: sflphone.xml:608(para)
+#: sflphone.xml:773(para)
 msgid "High quality voice encoding/decoding available in narrowband 8Khz, wideband 16khz (HD Voice), and ultra-wideband 32 kHz. Integrate additional features such as Variable Bit Rate (VBR) and noise reduction."
 msgstr ""
 
-#: sflphone.xml:617(guilabel)
+#: sflphone.xml:782(guilabel)
 msgid "CELT"
 msgstr ""
 
-#: sflphone.xml:628(title)
+#: sflphone.xml:793(title)
 msgid "Address books"
 msgstr ""
 
-#: sflphone.xml:630(title)
+#: sflphone.xml:795(title)
 msgid "Enable the address book support"
 msgstr ""
 
-#: sflphone.xml:631(para)
+#: sflphone.xml:796(para)
 msgid "To enable the address book, perform the following steps:"
 msgstr ""
 
-#: sflphone.xml:634(para)
+#: sflphone.xml:799(para)
 msgid "Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice>."
 msgstr ""
 
-#: sflphone.xml:638(para)
+#: sflphone.xml:803(para)
 msgid "Select the <menuchoice><guimenu>Address book</guimenu></menuchoice> tab."
 msgstr ""
 
-#: sflphone.xml:642(para)
+#: sflphone.xml:807(para)
 msgid "Check the <guilabel>Use Evolution address books</guilabel> box."
 msgstr ""
 
-#: sflphone.xml:645(para)
+#: sflphone.xml:810(para)
 msgid "Every address books you configured in Evolution will be now available in <application>SFLphone</application>. Please be sure you selected at least one address book."
 msgstr ""
 
-#: sflphone.xml:649(title)
+#: sflphone.xml:814(title)
 msgid "Available options"
 msgstr ""
 
-#: sflphone.xml:650(para)
+#: sflphone.xml:815(para)
 msgid "In <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem><guimenuitem>Address book</guimenuitem></menuchoice>, you may select one or all of the following options:"
 msgstr ""
 
-#: sflphone.xml:653(guilabel)
+#: sflphone.xml:818(guilabel)
 msgid "Display contact photo if available"
 msgstr ""
 
-#: sflphone.xml:654(para)
+#: sflphone.xml:819(para)
 msgid "The contact photo will be displayed as a thumbnail beside the phone number."
 msgstr ""
 
-#: sflphone.xml:659(guilabel)
+#: sflphone.xml:824(guilabel)
 msgid "Fields from Evolution's address book"
 msgstr ""
 
-#: sflphone.xml:660(para)
+#: sflphone.xml:825(para)
 msgid "You may use one or all of these following information from your contact."
 msgstr ""
 
-#: sflphone.xml:663(listitem)
+#: sflphone.xml:828(listitem)
 msgid "Work phone number"
 msgstr ""
 
-#: sflphone.xml:664(listitem)
+#: sflphone.xml:829(listitem)
 msgid "Home phone number"
 msgstr ""
 
-#: sflphone.xml:665(listitem)
+#: sflphone.xml:830(listitem)
 msgid "Mobile phone number"
 msgstr ""
 
-#: sflphone.xml:673(title)
+#: sflphone.xml:838(title)
 msgid "Using the address book"
 msgstr ""
 
-#: sflphone.xml:676(para)
+#: sflphone.xml:841(para)
 msgid "On the toolbar, click on the following button to display the address book window:"
 msgstr ""
 
-#: sflphone.xml:680(title)
+#: sflphone.xml:845(title)
 msgid "Address book toolbar button"
 msgstr ""
 
-#: sflphone.xml:693(para)
+#: sflphone.xml:858(para)
 msgid "Search for a contact"
 msgstr ""
 
-#: sflphone.xml:697(para)
+#: sflphone.xml:862(para)
 msgid "New entries should have appeared in the window. Double click on it to call the contact. You may also <menuchoice><guimenu>Right click</guimenu><guimenuitem>Edit before calling</guimenuitem></menuchoice> to modify the entry before calling."
 msgstr ""
 
-#: sflphone.xml:704(title)
+#: sflphone.xml:869(title)
 msgid "Preferences"
 msgstr ""
 
-#: sflphone.xml:706(para)
+#: sflphone.xml:871(para)
 msgid "Go to <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice> to access the configuration panel."
 msgstr ""
 
-#: sflphone.xml:707(para)
+#: sflphone.xml:872(para)
 msgid "Each section is detailed below."
 msgstr ""
 
-#: sflphone.xml:710(title)
+#: sflphone.xml:875(title)
 msgid "General"
 msgstr ""
 
-#: sflphone.xml:711(para)
+#: sflphone.xml:876(para)
 msgid "This section provides the user general settings regarding the application."
 msgstr ""
 
-#: sflphone.xml:715(title)
+#: sflphone.xml:880(title)
 msgid "Desktop notifications options"
 msgstr ""
 
-#: sflphone.xml:729(guilabel)
+#: sflphone.xml:894(guilabel)
 msgid "Enable notifications"
 msgstr ""
 
-#: sflphone.xml:730(para)
+#: sflphone.xml:895(para)
 msgid "Both clients use their desktop environment notification system. If checked, you will receive desktop notifications for events such as incoming calls and system messages."
 msgstr ""
 
-#: sflphone.xml:734(title)
+#: sflphone.xml:899(title)
 msgid "Example of an incoming call notification"
 msgstr ""
 
-#: sflphone.xml:746(guilabel)
+#: sflphone.xml:911(guilabel)
 msgid "Enable voicemail notifications"
 msgstr ""
 
-#: sflphone.xml:747(para)
+#: sflphone.xml:912(para)
 msgid "The voicemail notifications are handled separatly. If checked, you will be notified with the number of unread voicemails for your accounts."
 msgstr ""
 
-#: sflphone.xml:751(title)
+#: sflphone.xml:916(title)
 msgid "Example of a voicemail notification"
 msgstr ""
 
-#: sflphone.xml:770(title)
+#: sflphone.xml:935(title)
 msgid "System tray options"
 msgstr ""
 
-#: sflphone.xml:784(guilabel)
+#: sflphone.xml:949(guilabel)
 msgid "Popup main window on incoming call"
 msgstr ""
 
-#: sflphone.xml:785(para)
+#: sflphone.xml:950(para)
 msgid "If SFLphone is closed on the system tray, pops the main window up on foreground when receiving an incoming call."
 msgstr ""
 
-#: sflphone.xml:790(guilabel)
+#: sflphone.xml:955(guilabel)
 msgid "Never popup main window"
 msgstr ""
 
-#: sflphone.xml:791(para)
+#: sflphone.xml:956(para)
 msgid "If SFLphone is closed on the system tray, never pops the main window up on foreground when receiving an incoming call."
 msgstr ""
 
-#: sflphone.xml:796(guilabel)
+#: sflphone.xml:961(guilabel)
 msgid "Hide SFLphone window on startup"
 msgstr ""
 
-#: sflphone.xml:797(para)
+#: sflphone.xml:962(para)
 msgid "On startup, SFLphone will go directly on the system tray."
 msgstr ""
 
-#: sflphone.xml:810(title)
+#: sflphone.xml:975(title)
 msgid "Calls history options"
 msgstr ""
 
-#: sflphone.xml:823(guilabel)
+#: sflphone.xml:988(guilabel)
 msgid "Keep my history for at least n days"
 msgstr ""
 
-#: sflphone.xml:824(para)
+#: sflphone.xml:989(para)
 msgid "If checked, calls will be kept up to N days in the history. You may select a custom number of days. Do not check it if you don't want to use this feature."
 msgstr ""
 
-#: sflphone.xml:834(title)
+#: sflphone.xml:999(title)
 msgid "Configuration file options"
 msgstr ""
 
-#: sflphone.xml:847(guilabel)
+#: sflphone.xml:1012(guilabel)
 msgid "Store SIP credentials as MD5 hash"
 msgstr ""
 
-#: sflphone.xml:848(para)
+#: sflphone.xml:1013(para)
 msgid "If checked, your password information will be encrypted in the configuration file, instead of plain text."
 msgstr ""
 
-#: sflphone.xml:859(title)
+#: sflphone.xml:1024(title)
 msgid "Audio"
 msgstr ""
 
-#: sflphone.xml:863(title)
+#: sflphone.xml:1028(title)
 msgid "Address book"
 msgstr ""
 
-#: sflphone.xml:865(para)
+#: sflphone.xml:1030(para)
 msgid "Refer to the <link linkend=\"addressbook\">Address books</link> section for more information."
 msgstr ""
 
-#: sflphone.xml:869(title)
+#: sflphone.xml:1034(title)
 msgid "Hooks"
 msgstr ""
 
-#: sflphone.xml:877(title)
+#: sflphone.xml:1042(title)
 msgid "Direct IP calls"
 msgstr ""
 
-#: sflphone.xml:878(para)
+#: sflphone.xml:1043(para)
 msgid "Refer to the <link linkend=\"directip\">Direct IP calls</link> section for more information."
 msgstr ""
 
-- 
GitLab


From a830947b580b7e39cba6455f1bb7bf7881f2115a Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Wed, 9 Dec 2009 10:28:19 -0500
Subject: [PATCH 065/188] [#2557] Display complete sip uri for outgoing calls

---
 sflphone-client-gnome/src/actions.c           |  2 ++
 sflphone-client-gnome/src/contacts/calltree.c | 32 ++++++++++++-------
 2 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/sflphone-client-gnome/src/actions.c b/sflphone-client-gnome/src/actions.c
index 28db999a2d..7d8eb3eb07 100644
--- a/sflphone-client-gnome/src/actions.c
+++ b/sflphone-client-gnome/src/actions.c
@@ -696,6 +696,8 @@ sflphone_new_call()
     peer_name = g_strdup ("");
     create_new_call (CALL, CALL_STATE_DIALING, "", "", peer_name, peer_number, &c);
 
+    c->_history_state = OUTGOING;
+
     calllist_add (current_calls,c);
     calltree_add_call (current_calls, c, NULL);
     update_actions();
diff --git a/sflphone-client-gnome/src/contacts/calltree.c b/sflphone-client-gnome/src/contacts/calltree.c
index fc95d12eca..fc694bfd29 100644
--- a/sflphone-client-gnome/src/contacts/calltree.c
+++ b/sflphone-client-gnome/src/contacts/calltree.c
@@ -351,25 +351,33 @@ calltree_display_call_info(callable_obj_t * c, CallDisplayType display_type, gch
 
     DEBUG("Display call info");
 
-    // Get the hostname for this call (NULL if not existent)
-    hostname = g_strrstr(peer_number, "@");
+    // If call is outgoing, keep the hostname, strip it elsewhere
+    if(c->_type == CALL && c->_history_state == OUTGOING) {
 
-    // Test if we are dialing a new number
-    if(g_strcmp0("", c->_peer_number) != 0) {
+        display_number = peer_number; 
 
-        // Strip the hostname if existent
-        if(hostname) {
-	    display_number = g_strndup(peer_number, hostname - peer_number);
+    }
+    else {
+
+        // Get the hostname for this call (NULL if not existent)
+        hostname = g_strrstr(peer_number, "@");
+
+	// Test if we are dialing a new number
+	if(g_strcmp0("", c->_peer_number) != 0) {
+
+	    // Strip the hostname if existent
+	    if(hostname) {
+	        display_number = g_strndup(peer_number, hostname - peer_number);
+	    }
+	    else {
+	        display_number = peer_number;
+	    }
 	}
 	else {
+
 	    display_number = peer_number;
 	}
     }
-    else {
-
-        display_number = peer_number;
-    }
-
     // Different display depending on type
     switch(display_type) {
 
-- 
GitLab


From 57ff688820c49dd33c49464255c829944b23e014 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Wed, 9 Dec 2009 10:43:47 -0500
Subject: [PATCH 066/188] [#2554] nbCalls must be zero to close audio layer

---
 sflphone-common/src/managerimpl.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index d79591622f..6be2cf6c59 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -465,7 +465,7 @@ ManagerImpl::hangupCall (const CallID& call_id)
     AudioLayer *audiolayer = getAudioDriver();
 
     // stop streams
-    if (audiolayer && (nbCalls <= 1)) {
+    if (audiolayer && (nbCalls <= 0)) {
         _debug ("    hangupCall: stop audio stream, ther is only %i call(s) remaining", nbCalls);
         audiolayer->stopStream();
     }
-- 
GitLab


From d1a6194b7ba81dcff70ae796ed3e0dc2cfb83d19 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Wed, 9 Dec 2009 13:08:58 -0500
Subject: [PATCH 067/188] [#2556] Handle history entries in calltre_update_call

---
 sflphone-client-gnome/src/contacts/calltree.c | 207 ++++++++++--------
 1 file changed, 115 insertions(+), 92 deletions(-)

diff --git a/sflphone-client-gnome/src/contacts/calltree.c b/sflphone-client-gnome/src/contacts/calltree.c
index fc694bfd29..e416a29586 100644
--- a/sflphone-client-gnome/src/contacts/calltree.c
+++ b/sflphone-client-gnome/src/contacts/calltree.c
@@ -355,7 +355,6 @@ calltree_display_call_info(callable_obj_t * c, CallDisplayType display_type, gch
     if(c->_type == CALL && c->_history_state == OUTGOING) {
 
         display_number = peer_number; 
-
     }
     else {
 
@@ -722,7 +721,6 @@ calltree_update_call (calltab_t* tab, callable_obj_t * c, GtkTreeIter *parent)
     account_t* account_details=NULL;
     gchar *audio_codec = "";
 
-
     int nbChild = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), parent);
     int i;
 
@@ -744,121 +742,146 @@ calltree_update_call (calltab_t* tab, callable_obj_t * c, GtkTreeIter *parent)
 
     for( i = 0; i < nbChild; i++) {
 
-      if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, parent, i)) {
+        if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, parent, i)) {
 
-	if(gtk_tree_model_iter_has_child(GTK_TREE_MODEL(store), &iter)) {
-				calltree_update_call (tab, c, &iter);
-	}
+	    if(gtk_tree_model_iter_has_child(GTK_TREE_MODEL(store), &iter)) {
+	      calltree_update_call (tab, c, &iter);
+	    }
 
-	val.g_type = 0;
-	gtk_tree_model_get_value (GTK_TREE_MODEL(store), &iter, COLUMN_ACCOUNT_PTR, &val);
+	    val.g_type = 0;
+	    gtk_tree_model_get_value (GTK_TREE_MODEL(store), &iter, COLUMN_ACCOUNT_PTR, &val);
 
 	
-	iterCall = (callable_obj_t*) g_value_get_pointer(&val);
-	g_value_unset(&val);
+	    iterCall = (callable_obj_t*) g_value_get_pointer(&val);
+	    g_value_unset(&val);
 	
-	if(iterCall != c) {
-	    continue;
-	}
+	    if(iterCall != c) {
+	        continue;
+	    }
 
-	/* Update text */
-	gchar * description;
-	gchar * date="";
-	gchar * duration="";
-	audio_codec = call_get_audio_codec (c);
+	    /* Update text */
+	    gchar * description;
+	    gchar * date="";
+	    gchar * duration="";
+	    audio_codec = call_get_audio_codec (c);
 	
-	if(c->_state == CALL_STATE_TRANSFERT) {
+	    if(c->_state == CALL_STATE_TRANSFERT) {
 
-	  calltree_display_call_info(c, DISPLAY_TYPE_CALL_TRANSFER, NULL, &description);
+	        calltree_display_call_info(c, DISPLAY_TYPE_CALL_TRANSFER, NULL, &description);
 			    
-	}
-	else {
+	    }
+	    else {
 
-	    if((c->_sas != NULL) && (display_sas == TRUE) && (c->_srtp_state == SRTP_STATE_SAS_UNCONFIRMED) && (c->_zrtp_confirmed == FALSE)) {
+	        if((c->_sas != NULL) && (display_sas == TRUE) && (c->_srtp_state == SRTP_STATE_SAS_UNCONFIRMED) && (c->_zrtp_confirmed == FALSE)) {
 
-	        calltree_display_call_info(c, DISPLAY_TYPE_SAS, NULL, &description);
+		    calltree_display_call_info(c, DISPLAY_TYPE_SAS, NULL, &description);
 				  
-	    } else {
+		} else {
 
-	        calltree_display_call_info(c, DISPLAY_TYPE_STATE_CODE, audio_codec, &description);
-				    
+		    calltree_display_call_info(c, DISPLAY_TYPE_STATE_CODE, audio_codec, &description);		    
+		}
 	    }
-	}
 
-			/* Update icons */
-	if( tab == current_calls ) {
-	    DEBUG("Receiving in state %d", c->_state);
-	    switch(c->_state) {
-	    case CALL_STATE_HOLD:
-	        pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/hold.svg", NULL);
-		break;
-	    case CALL_STATE_INCOMING:
-	    case CALL_STATE_RINGING:
-	        pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/ring.svg", NULL);
-		break;
-	    case CALL_STATE_CURRENT:
-	         pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/current.svg", NULL);
-		 break;
-	    case CALL_STATE_DIALING:
-	        pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/dial.svg", NULL);
-		break;
-	    case CALL_STATE_FAILURE:
-	        pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/fail.svg", NULL);
-		break;
-	    case CALL_STATE_BUSY:
-	        pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/busy.svg", NULL);
-		break;
-	    case CALL_STATE_TRANSFERT:
-	        pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/transfert.svg", NULL);
-		break;
-	    case CALL_STATE_RECORD:
-	        pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/icon_rec.svg", NULL);
-		break;
-	    default:
-	      WARN("Update calltree - Should not happen!");
-	    }        
-
-	    switch(c->_srtp_state) {
-	    case SRTP_STATE_SAS_UNCONFIRMED:
-	        DEBUG("Secure is ON");
-		pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_unconfirmed.svg", NULL);
-		if(c->_sas != NULL) { DEBUG("SAS is ready with value %s", c->_sas); }
-		break;
-	    case SRTP_STATE_SAS_CONFIRMED:
-	        DEBUG("SAS is confirmed");
-		pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_confirmed.svg", NULL);   
-		break;
-	    case SRTP_STATE_SAS_SIGNED:   
-	        DEBUG("Secure is ON with SAS signed and verified");
-		pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_certified.svg", NULL);
-		break;
-	    case SRTP_STATE_UNLOCKED:  
-	        DEBUG("Secure is off calltree %d", c->_state);
-		if(g_strcasecmp(srtp_enabled,"true") == 0) {
-		  pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_off.svg", NULL); 
+	    /* Update icons */
+	    if( tab == current_calls ) {
+	        DEBUG("Receiving in state %d", c->_state);
+		switch(c->_state) {
+		case CALL_STATE_HOLD:
+		    pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/hold.svg", NULL);
+		    break;
+		case CALL_STATE_INCOMING:
+		case CALL_STATE_RINGING:
+		    pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/ring.svg", NULL);
+		    break;
+		case CALL_STATE_CURRENT:
+		    pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/current.svg", NULL);
+		    break;
+		case CALL_STATE_DIALING:
+	            pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/dial.svg", NULL);
+		    break;
+		case CALL_STATE_FAILURE:
+		    pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/fail.svg", NULL);
+		    break;
+		case CALL_STATE_BUSY:
+	            pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/busy.svg", NULL);
+		    break;
+		case CALL_STATE_TRANSFERT:
+	            pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/transfert.svg", NULL);
+		    break;
+		case CALL_STATE_RECORD:
+	            pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/icon_rec.svg", NULL);
+		    break;
+		default:
+		    WARN("Update calltree - Should not happen!");
+		}        
+
+		switch(c->_srtp_state) {
+		case SRTP_STATE_SAS_UNCONFIRMED:
+	            DEBUG("Secure is ON");
+		    pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_unconfirmed.svg", NULL);
+		    if(c->_sas != NULL) { DEBUG("SAS is ready with value %s", c->_sas); }
+		    break;
+		case SRTP_STATE_SAS_CONFIRMED:
+		    DEBUG("SAS is confirmed");
+		    pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_confirmed.svg", NULL);   
+		    break;
+		case SRTP_STATE_SAS_SIGNED:   
+		    DEBUG("Secure is ON with SAS signed and verified");
+		    pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_certified.svg", NULL);
+		    break;
+		case SRTP_STATE_UNLOCKED:  
+		    DEBUG("Secure is off calltree %d", c->_state);
+		    if(g_strcasecmp(srtp_enabled,"true") == 0) {
+		        pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_off.svg", NULL); 
+		    }
+		    break;
+		default:
+		    WARN("Update calltree srtp state #%d- Should not happen!", c->_srtp_state); 
+		    if(g_strcasecmp(srtp_enabled,"true") == 0) {
+		        pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_off.svg", NULL);    
+		    }
+
 		}
-		break;
-	    default:
-	        WARN("Update calltree srtp state #%d- Should not happen!", c->_srtp_state); 
-		if(g_strcasecmp(srtp_enabled,"true") == 0) {
-		  pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_off.svg", NULL);    
+	
+	    }
+
+	    if(tab == history) {
+
+	        switch(c->_history_state) {
+		case INCOMING:
+		    pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/incoming.svg", NULL);
+		    break;
+		case OUTGOING:
+		    pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/outgoing.svg", NULL);
+		    break;
+		case MISSED:
+		    pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/missed.svg", NULL);
+		    break;
+		default:
+		    WARN("History - Should not happen!");
 		}
 
+		calltree_display_call_info(c, DISPLAY_TYPE_HISTORY, NULL, &description);
+
+		date = get_formatted_start_timestamp (c);
+		duration = get_call_duration (c);
+		duration = g_strconcat( date , duration , NULL);
+		description = g_strconcat( description , duration, NULL);
 	    }
+
 	    gtk_tree_store_set(store, &iter,
-			       0, pixbuf, // Icon
-			       1, description, // Description
-			       2, pixbuf_security,
-			       3, c,
-			       -1);
+			   0, pixbuf, // Icon
+			   1, description, // Description
+			   2, pixbuf_security,
+			   3, c,
+			   -1);
 
 	    if (pixbuf != NULL)
-	      g_object_unref(G_OBJECT(pixbuf));
-	    
+	        g_object_unref(G_OBJECT(pixbuf));
 	}
-      }
       
     }
+
     update_actions();
 }
 
-- 
GitLab


From 3b243a1ec9cc410490d54458db2fae62d2a76967 Mon Sep 17 00:00:00 2001
From: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
Date: Wed, 9 Dec 2009 14:02:27 -0500
Subject: [PATCH 068/188] [#2554] Fix "hangup" action close audio if there's
 still an active call

Conflicts:

	sflphone-common/src/managerimpl.cpp
---
 sflphone-common/src/managerimpl.cpp | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index e8b7edaaa8..0f9b601acd 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -413,7 +413,6 @@ ManagerImpl::hangupCall (const CallID& call_id)
     PulseLayer *pulselayer;
     AccountID account_id;
     bool returnValue;
-    AudioLayer *audiolayer;
 
     // store the current call id
     CallID current_call_id = getCurrentCallId();
@@ -425,17 +424,6 @@ ManagerImpl::hangupCall (const CallID& call_id)
 
     if (_dbus) _dbus->getCallManager()->callStateChanged (call_id, "HUNGUP");
 
-    int nbCalls = getCallList().size();
-
-    audiolayer = getAudioDriver();
-
-    // stop streams
-    if (audiolayer && (nbCalls <= 1)) {
-        _debug ("    hangupCall: stop audio stream, ther is only %i call(s) remaining\n", nbCalls);
-        audiolayer->stopStream();
-    }
-
-
     if (participToConference (call_id)) {
 
         Conference *conf = getConferenceFromCallID (call_id);
@@ -472,6 +460,16 @@ ManagerImpl::hangupCall (const CallID& call_id)
         removeCallAccount (call_id);
     }
 
+    int nbCalls = getCallList().size();
+
+    AudioLayer *audiolayer = getAudioDriver();
+
+    // stop streams
+    if (audiolayer && (nbCalls <= 1)) {
+        _debug ("    hangupCall: stop audio stream, ther is only %i call(s) remaining", nbCalls);
+        audiolayer->stopStream();
+    }
+
     if (_audiodriver->getLayerType() == PULSEAUDIO) {
         pulselayer = dynamic_cast<PulseLayer *> (getAudioDriver());
     }
-- 
GitLab


From 0e39027e72df4d8dacc3f4ec91fff9138237ab2e Mon Sep 17 00:00:00 2001
From: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
Date: Wed, 9 Dec 2009 14:03:27 -0500
Subject: [PATCH 069/188] [2553] Fix stop audio when transfering a conference
 call

Conflicts:

	sflphone-common/src/managerimpl.cpp
---
 sflphone-common/src/managerimpl.cpp | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index 0f9b601acd..89d57b6f47 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -1899,18 +1899,7 @@ ManagerImpl::peerHungupCall (const CallID& call_id)
         }
     }
 
-    int nbCalls = getCallList().size();
-
-    // stop streams
-
-    if (nbCalls <= 1) {
-        _debug ("    hangupCall: stop audio stream, ther is only %i call(s) remaining\n", nbCalls);
-
-        AudioLayer* audiolayer = getAudioDriver();
-        audiolayer->stopStream();
-    }
-
-    /* Direct IP to IP call */
+   /* Direct IP to IP call */
     if (getConfigFromCall (call_id) == Call::IPtoIP) {
         SIPVoIPLink::instance (AccountNULL)->hangup (call_id);
     }
@@ -1934,6 +1923,18 @@ ManagerImpl::peerHungupCall (const CallID& call_id)
 
     removeCallAccount (call_id);
 
+     int nbCalls = getCallList().size();
+
+    // stop streams
+
+    if (nbCalls <= 0) {
+        _debug ("    hangupCall: stop audio stream, ther is only %i call(s) remaining", nbCalls);
+
+        AudioLayer* audiolayer = getAudioDriver();
+        audiolayer->stopStream();
+    }
+
+
     if (_audiodriver->getLayerType() == PULSEAUDIO) {
         pulselayer = dynamic_cast<PulseLayer *> (getAudioDriver());
     }
-- 
GitLab


From e52805f907eafe43c3ee75a255432a34e7d5d4d7 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Wed, 9 Dec 2009 10:28:19 -0500
Subject: [PATCH 070/188] [#2557] Display complete sip uri for outgoing calls

---
 sflphone-client-gnome/src/actions.c           |  2 ++
 sflphone-client-gnome/src/contacts/calltree.c | 32 ++++++++++++-------
 2 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/sflphone-client-gnome/src/actions.c b/sflphone-client-gnome/src/actions.c
index 829160960e..5a28359011 100644
--- a/sflphone-client-gnome/src/actions.c
+++ b/sflphone-client-gnome/src/actions.c
@@ -694,6 +694,8 @@ sflphone_new_call()
     peer_name = g_strdup ("");
     create_new_call (CALL, CALL_STATE_DIALING, "", "", peer_name, peer_number, &c);
 
+    c->_history_state = OUTGOING;
+
     calllist_add (current_calls,c);
     calltree_add_call (current_calls, c, NULL);
     update_actions();
diff --git a/sflphone-client-gnome/src/contacts/calltree.c b/sflphone-client-gnome/src/contacts/calltree.c
index 9fc579db20..5925a499e5 100644
--- a/sflphone-client-gnome/src/contacts/calltree.c
+++ b/sflphone-client-gnome/src/contacts/calltree.c
@@ -351,25 +351,33 @@ calltree_display_call_info(callable_obj_t * c, CallDisplayType display_type, gch
 
     DEBUG("Display call info");
 
-    // Get the hostname for this call (NULL if not existent)
-    hostname = g_strrstr(peer_number, "@");
+    // If call is outgoing, keep the hostname, strip it elsewhere
+    if(c->_type == CALL && c->_history_state == OUTGOING) {
 
-    // Test if we are dialing a new number
-    if(g_strcmp0("", c->_peer_number) != 0) {
+        display_number = peer_number; 
 
-        // Strip the hostname if existent
-        if(hostname) {
-	    display_number = g_strndup(peer_number, hostname - peer_number);
+    }
+    else {
+
+        // Get the hostname for this call (NULL if not existent)
+        hostname = g_strrstr(peer_number, "@");
+
+	// Test if we are dialing a new number
+	if(g_strcmp0("", c->_peer_number) != 0) {
+
+	    // Strip the hostname if existent
+	    if(hostname) {
+	        display_number = g_strndup(peer_number, hostname - peer_number);
+	    }
+	    else {
+	        display_number = peer_number;
+	    }
 	}
 	else {
+
 	    display_number = peer_number;
 	}
     }
-    else {
-
-        display_number = peer_number;
-    }
-
     // Different display depending on type
     switch(display_type) {
 
-- 
GitLab


From fb28036026a5b0a526d5ef00959a2691d3ec6393 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Wed, 9 Dec 2009 10:43:47 -0500
Subject: [PATCH 071/188] [#2554] nbCalls must be zero to close audio layer

---
 sflphone-common/src/managerimpl.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index 89d57b6f47..2a3d6d1f9a 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -465,7 +465,7 @@ ManagerImpl::hangupCall (const CallID& call_id)
     AudioLayer *audiolayer = getAudioDriver();
 
     // stop streams
-    if (audiolayer && (nbCalls <= 1)) {
+    if (audiolayer && (nbCalls <= 0)) {
         _debug ("    hangupCall: stop audio stream, ther is only %i call(s) remaining", nbCalls);
         audiolayer->stopStream();
     }
-- 
GitLab


From 14edff0e1c9c10c80882c9284ba910e147eeaa4d Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Wed, 9 Dec 2009 13:08:58 -0500
Subject: [PATCH 072/188] [#2556] Handle history entries in calltre_update_call

---
 sflphone-client-gnome/src/contacts/calltree.c | 207 ++++++++++--------
 1 file changed, 115 insertions(+), 92 deletions(-)

diff --git a/sflphone-client-gnome/src/contacts/calltree.c b/sflphone-client-gnome/src/contacts/calltree.c
index 5925a499e5..8bb20d52a5 100644
--- a/sflphone-client-gnome/src/contacts/calltree.c
+++ b/sflphone-client-gnome/src/contacts/calltree.c
@@ -355,7 +355,6 @@ calltree_display_call_info(callable_obj_t * c, CallDisplayType display_type, gch
     if(c->_type == CALL && c->_history_state == OUTGOING) {
 
         display_number = peer_number; 
-
     }
     else {
 
@@ -722,7 +721,6 @@ calltree_update_call (calltab_t* tab, callable_obj_t * c, GtkTreeIter *parent)
     account_t* account_details=NULL;
     gchar *audio_codec = "";
 
-
     int nbChild = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), parent);
     int i;
 
@@ -744,121 +742,146 @@ calltree_update_call (calltab_t* tab, callable_obj_t * c, GtkTreeIter *parent)
 
     for( i = 0; i < nbChild; i++) {
 
-      if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, parent, i)) {
+        if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, parent, i)) {
 
-	if(gtk_tree_model_iter_has_child(GTK_TREE_MODEL(store), &iter)) {
-				calltree_update_call (tab, c, &iter);
-	}
+	    if(gtk_tree_model_iter_has_child(GTK_TREE_MODEL(store), &iter)) {
+	      calltree_update_call (tab, c, &iter);
+	    }
 
-	val.g_type = 0;
-	gtk_tree_model_get_value (GTK_TREE_MODEL(store), &iter, COLUMN_ACCOUNT_PTR, &val);
+	    val.g_type = 0;
+	    gtk_tree_model_get_value (GTK_TREE_MODEL(store), &iter, COLUMN_ACCOUNT_PTR, &val);
 
 	
-	iterCall = (callable_obj_t*) g_value_get_pointer(&val);
-	g_value_unset(&val);
+	    iterCall = (callable_obj_t*) g_value_get_pointer(&val);
+	    g_value_unset(&val);
 	
-	if(iterCall != c) {
-	    continue;
-	}
+	    if(iterCall != c) {
+	        continue;
+	    }
 
-	/* Update text */
-	gchar * description;
-	gchar * date="";
-	gchar * duration="";
-	audio_codec = call_get_audio_codec (c);
+	    /* Update text */
+	    gchar * description;
+	    gchar * date="";
+	    gchar * duration="";
+	    audio_codec = call_get_audio_codec (c);
 	
-	if(c->_state == CALL_STATE_TRANSFERT) {
+	    if(c->_state == CALL_STATE_TRANSFERT) {
 
-	  calltree_display_call_info(c, DISPLAY_TYPE_CALL_TRANSFER, NULL, &description);
+	        calltree_display_call_info(c, DISPLAY_TYPE_CALL_TRANSFER, NULL, &description);
 			    
-	}
-	else {
+	    }
+	    else {
 
-	    if((c->_sas != NULL) && (display_sas == TRUE) && (c->_srtp_state == SRTP_STATE_SAS_UNCONFIRMED) && (c->_zrtp_confirmed == FALSE)) {
+	        if((c->_sas != NULL) && (display_sas == TRUE) && (c->_srtp_state == SRTP_STATE_SAS_UNCONFIRMED) && (c->_zrtp_confirmed == FALSE)) {
 
-	        calltree_display_call_info(c, DISPLAY_TYPE_SAS, NULL, &description);
+		    calltree_display_call_info(c, DISPLAY_TYPE_SAS, NULL, &description);
 				  
-	    } else {
+		} else {
 
-	        calltree_display_call_info(c, DISPLAY_TYPE_STATE_CODE, audio_codec, &description);
-				    
+		    calltree_display_call_info(c, DISPLAY_TYPE_STATE_CODE, audio_codec, &description);		    
+		}
 	    }
-	}
 
-			/* Update icons */
-	if( tab == current_calls ) {
-	    DEBUG("Receiving in state %d", c->_state);
-	    switch(c->_state) {
-	    case CALL_STATE_HOLD:
-	        pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/hold.svg", NULL);
-		break;
-	    case CALL_STATE_INCOMING:
-	    case CALL_STATE_RINGING:
-	        pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/ring.svg", NULL);
-		break;
-	    case CALL_STATE_CURRENT:
-	         pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/current.svg", NULL);
-		 break;
-	    case CALL_STATE_DIALING:
-	        pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/dial.svg", NULL);
-		break;
-	    case CALL_STATE_FAILURE:
-	        pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/fail.svg", NULL);
-		break;
-	    case CALL_STATE_BUSY:
-	        pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/busy.svg", NULL);
-		break;
-	    case CALL_STATE_TRANSFERT:
-	        pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/transfert.svg", NULL);
-		break;
-	    case CALL_STATE_RECORD:
-	        pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/icon_rec.svg", NULL);
-		break;
-	    default:
-	      WARN("Update calltree - Should not happen!");
-	    }        
-
-	    switch(c->_srtp_state) {
-	    case SRTP_STATE_SAS_UNCONFIRMED:
-	        DEBUG("Secure is ON");
-		pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_unconfirmed.svg", NULL);
-		if(c->_sas != NULL) { DEBUG("SAS is ready with value %s", c->_sas); }
-		break;
-	    case SRTP_STATE_SAS_CONFIRMED:
-	        DEBUG("SAS is confirmed");
-		pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_confirmed.svg", NULL);   
-		break;
-	    case SRTP_STATE_SAS_SIGNED:   
-	        DEBUG("Secure is ON with SAS signed and verified");
-		pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_certified.svg", NULL);
-		break;
-	    case SRTP_STATE_UNLOCKED:  
-	        DEBUG("Secure is off calltree %d", c->_state);
-		if(g_strcasecmp(srtp_enabled,"true") == 0) {
-		  pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_off.svg", NULL); 
+	    /* Update icons */
+	    if( tab == current_calls ) {
+	        DEBUG("Receiving in state %d", c->_state);
+		switch(c->_state) {
+		case CALL_STATE_HOLD:
+		    pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/hold.svg", NULL);
+		    break;
+		case CALL_STATE_INCOMING:
+		case CALL_STATE_RINGING:
+		    pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/ring.svg", NULL);
+		    break;
+		case CALL_STATE_CURRENT:
+		    pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/current.svg", NULL);
+		    break;
+		case CALL_STATE_DIALING:
+	            pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/dial.svg", NULL);
+		    break;
+		case CALL_STATE_FAILURE:
+		    pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/fail.svg", NULL);
+		    break;
+		case CALL_STATE_BUSY:
+	            pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/busy.svg", NULL);
+		    break;
+		case CALL_STATE_TRANSFERT:
+	            pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/transfert.svg", NULL);
+		    break;
+		case CALL_STATE_RECORD:
+	            pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/icon_rec.svg", NULL);
+		    break;
+		default:
+		    WARN("Update calltree - Should not happen!");
+		}        
+
+		switch(c->_srtp_state) {
+		case SRTP_STATE_SAS_UNCONFIRMED:
+	            DEBUG("Secure is ON");
+		    pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_unconfirmed.svg", NULL);
+		    if(c->_sas != NULL) { DEBUG("SAS is ready with value %s", c->_sas); }
+		    break;
+		case SRTP_STATE_SAS_CONFIRMED:
+		    DEBUG("SAS is confirmed");
+		    pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_confirmed.svg", NULL);   
+		    break;
+		case SRTP_STATE_SAS_SIGNED:   
+		    DEBUG("Secure is ON with SAS signed and verified");
+		    pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_certified.svg", NULL);
+		    break;
+		case SRTP_STATE_UNLOCKED:  
+		    DEBUG("Secure is off calltree %d", c->_state);
+		    if(g_strcasecmp(srtp_enabled,"true") == 0) {
+		        pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_off.svg", NULL); 
+		    }
+		    break;
+		default:
+		    WARN("Update calltree srtp state #%d- Should not happen!", c->_srtp_state); 
+		    if(g_strcasecmp(srtp_enabled,"true") == 0) {
+		        pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_off.svg", NULL);    
+		    }
+
 		}
-		break;
-	    default:
-	        WARN("Update calltree srtp state #%d- Should not happen!", c->_srtp_state); 
-		if(g_strcasecmp(srtp_enabled,"true") == 0) {
-		  pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_off.svg", NULL);    
+	
+	    }
+
+	    if(tab == history) {
+
+	        switch(c->_history_state) {
+		case INCOMING:
+		    pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/incoming.svg", NULL);
+		    break;
+		case OUTGOING:
+		    pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/outgoing.svg", NULL);
+		    break;
+		case MISSED:
+		    pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/missed.svg", NULL);
+		    break;
+		default:
+		    WARN("History - Should not happen!");
 		}
 
+		calltree_display_call_info(c, DISPLAY_TYPE_HISTORY, NULL, &description);
+
+		date = get_formatted_start_timestamp (c);
+		duration = get_call_duration (c);
+		duration = g_strconcat( date , duration , NULL);
+		description = g_strconcat( description , duration, NULL);
 	    }
+
 	    gtk_tree_store_set(store, &iter,
-			       0, pixbuf, // Icon
-			       1, description, // Description
-			       2, pixbuf_security,
-			       3, c,
-			       -1);
+			   0, pixbuf, // Icon
+			   1, description, // Description
+			   2, pixbuf_security,
+			   3, c,
+			   -1);
 
 	    if (pixbuf != NULL)
-	      g_object_unref(G_OBJECT(pixbuf));
-	    
+	        g_object_unref(G_OBJECT(pixbuf));
 	}
-      }
       
     }
+
     update_actions();
 }
 
-- 
GitLab


From 89b8db28639fb797fecec380d1a0ddd755661c89 Mon Sep 17 00:00:00 2001
From: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
Date: Wed, 9 Dec 2009 14:07:51 -0500
Subject: [PATCH 073/188] [#2402] Update screenshots in user manual

---
 .../doc/C/figures/addressbook-button.png      | Bin 17814 -> 18968 bytes
 .../doc/C/figures/answer.png                  | Bin 23558 -> 20951 bytes
 .../doc/C/figures/call-second.png             | Bin 19906 -> 18514 bytes
 sflphone-client-gnome/doc/C/figures/call.png  | Bin 18472 -> 19068 bytes
 sflphone-client-gnome/doc/C/figures/dial.png  | Bin 17097 -> 18409 bytes
 .../doc/C/figures/hangup.png                  | Bin 19870 -> 18509 bytes
 .../doc/C/figures/history.png                 | Bin 17019 -> 18596 bytes
 .../doc/C/figures/holdoff.png                 | Bin 20461 -> 21009 bytes
 .../doc/C/figures/holdon.png                  | Bin 19996 -> 21042 bytes
 .../doc/C/figures/record.png                  | Bin 19939 -> 20033 bytes
 .../doc/C/figures/refuse.png                  | Bin 23461 -> 19497 bytes
 .../doc/C/figures/transfer-go.png             | Bin 19799 -> 17351 bytes
 .../doc/C/figures/transfer.png                | Bin 20122 -> 20160 bytes
 .../doc/C/figures/voicemail.png               | Bin 17558 -> 17751 bytes
 14 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/sflphone-client-gnome/doc/C/figures/addressbook-button.png b/sflphone-client-gnome/doc/C/figures/addressbook-button.png
index acf0c185b7621d0b4b05d58c16b118ff62eeeca3..90d6d8a0413e4bc0970bc6847fc0b7d74a3e0f72 100644
GIT binary patch
literal 18968
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

literal 17814
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
T1(6913=9mOu6{1-oD!M<M5C!o

diff --git a/sflphone-client-gnome/doc/C/figures/answer.png b/sflphone-client-gnome/doc/C/figures/answer.png
index 14fda5f03aeac15f9819631a2d0d631b1516cbfa..cef5996aa2621a5494fb888e5a607521f86a3d2e 100644
GIT binary patch
literal 20951
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%0DaH1L&88{0FNv@)HZT0et2ar-
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
Bpa=i}

literal 23558
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

diff --git a/sflphone-client-gnome/doc/C/figures/call-second.png b/sflphone-client-gnome/doc/C/figures/call-second.png
index e6527821f6c6b05d05b9697b5a80166a3539ed08..7b1d8df4f674a26c6102c0bc64ddb7eedef395a7 100644
GIT binary patch
literal 18514
zcmeAS@N?(olHy`uVBq!ia0y~yU@T`~VA#sR#=yX^WcvQE3=9m6#X;^)4C~IxykuZt
zU`z6LcVYMsf(!O8pUl9(z**oCS<Jw|Eeyhp4727)FfcH%mw5WRvft$45Mej`Be?$u
z0|SF(iEBiObAE1aYF-J0b5UwyNotBhd1gt5g1e`0KzJjcI0J(MgQtsQNX4x;bIU74
zkA82zzt`4QQDBk-7pLM90gk=jwL-f%R&;P_ajl35)Y0hrw3T7oe2uVKOiCSG9`EN~
z$aeBp-g|%7@86HxCbY0LwTL~domZ={yE^^+yt#kh+%(>798^`cD`{iIhN!g>I$}Cv
z+@GJHcUKVLU@7O%-}f`EbHC|ymb*D-n@e5>eOmIgL@pw{!b?Gb<DHVqbUzEt+QPy@
z$F*U~M~@%ZR-4?p)O-4+J--7P)|jpSFvUSZ;Erp?6)A?YbzI4Z+jzg7_&aIC>@#i;
z6&oECc5rVLWqbNfVQ+KnozF|2I>g>`tI@Vm0oiM~+t1E>-WHj&e|~<RX;Z1IHks2k
zuqB;^squl{vdp`YA;Cu%?cCzTvD-mGAVfCg5Nnf=$eX8IHRNk*YBK)+%+xugy#3hm
zL+_hrtG?@6)bUhIe_N03naYLsXJ6mS&yt_-aA;Qf<Aa^{1&1Pb%>QXJzkJ7*y;p*M
zJBFoCzqS1Md6kI#3)@aleRS^g?58}NcZ<!--kxunt-0^+nV0(3qQ91l+t1k^vv<v=
zKVkFsJI}iK{O0+a6&H(qrFAuT|H%AwxFlO9rX+T;74PGx`P(OF?d|H%pLKupkL(41
zZL(}PbmbJj5B=%t@@~6uHq(AP%Z}^M-#@9jw{)tS(Rul#!-wiEvc>eYgnf0Z?1Xav
z|6f@7r*>aNPqy9ZF4p63M0ejjT=M;5$i2d1{SE0KL)!TMO;KL<soZ$ppGNmvUms7+
z|Nk@~sqSK_ujRIR^X-3iK7Ly2QQYzD?%cv7M~`m&^-^KWBQNf}&?kADZ+3KcCZ3yP
zd1j_@`-~Y9IcBpfy#5_`J$LVLezZ?Rm)qp<!ap@OAH|a_cN7}N`$)PpY`YQsBgjMC
za_U+2<j!8*7{7lW>d%9I2b?qf{QX0eb9_y0ZRYQ5GIkY9bW3Y%Kk~jj5WM;O<Yeui
zSJ)>M_ZxlRDcAD**CXjGZO8ZBbMK4EsK4h~SD(%ztMuo?*RMy-cWBnm``fivbDDPF
z^}JItcG8zSFKjxc*^&D5%EXdBt_{<J*YooG#2xt<vs32&%8&1Uap+!QaG$yTk<PP2
zxyy`C|M;rXFfFXVY+>6+DYI#hw=XIUl;89_#^z)Cx6h}YP2axu(|gu``Pimh<GGJ+
zFIV4a$Gw2<yYJ7rwj0Ge_6wYD+-h(5bYoh@3a?)gJ4^2T+3S-R*KSq%>cZF6mtCKi
z`2LSMeg2qo&4o>N{rTE^md$p%wf*<Eq`XC;ce<x;IWx<&du8zQX%T5>XO$j)su#0k
z!j2s~7VUrh=uyOug2Yy(?_B09<ZLP?%$OmutNcCRfmx>60V1s{R%m?e_~YLns$0dI
zFwL{y_RPlOtsS4r4=b-={oAb9$r}(;-xYV0`@jCm30(j66vdBz*ZjBp(EnrS>Y8^3
z%4S|uXy#@2-}Gkf!iZY)Po?XnR&>2Buev6orYR)UVAxl`%;xm<xBpX<?uv-@ygS<c
z`ZHr^*4Dj-aUKcpCzVU?d9PIe=QEpc$k9_jf2rE76?Kf&x2W1!VVS8@w@O_&?0M4@
z-@{>BPu$zye)fLv^6#14uj?ed)*3bChxYc_T=F{IcUH_#FXr4#b+v%-^haMN-M8Rf
zkbhcvE!U5)QD(1BeY-vNb;=X%bqA+@?|%73>6zTd|ND;}{(pRVzv*GlfD3_Z<I?4-
zS8h1d^hi_Ul*eh2b(_^<Zrh(S{d4D2bj_>wfX8<{gBX@bv9Rr2RJNkKJ*s5M3Y|@x
zHq9`}4C*X>zyJR~-rw6JH>dsi_xnAMgaJdtQt#<T2?rXurba*9a%P@w^@~eOyKSpJ
zd|m22UGL4!&F(Q*|95$N&y$p6IIwf)`OEu#SxTE0z5I0{`^>#59y23nI<LRHEzaQJ
z!Pe6al`6N^{l5_Om_K6U8}Vm)@dvNCF<Acj`qMsqT4=I`{rmpMUyg0>U{L7WT5YUh
z@kv&G{dx8;TmIfR`<8S6=seZ_$J_$u?Ju)0d37b8@cy&6P*pp;&d<AaV^Lq-arf25
zjP=L#?w{zo|1aU}sqmHDPuBl$dEY;E^8bL)<#$h%y<qhFf9jHj@C?6=DJLTtWUOtS
zE+4VHo}L^jQ!zD-aqG(1<%a!#CgsG7*VxxKe@T6pw@<*?hM{Uvb<5+D=FlT0d;e*k
zKHq+)BIBI=p8K0Fl;+w!de19;<HLELsxa}$o7Qs=9B^RckvMQ^sdsmat%1RYqRU39
zZ<VEz@|Rq^)H?0`nv}QO*BfsNH*T_3*|4M_=kNJF#&7K6BIkF;__ahBb?hmczp1~n
zvfANy+LZupjV%3H+dghyZ?n7o^Rh|5f8P5qu-4{k#@@vo<=fYvK7T^>?TtJkMvnA?
z^mr343-@n}i%S`})yw7_4p}3!U+yl)6-^JneLr@KX+M8)&dJc``1IOWfxF9co2+~u
zi!gkAV>dPUN%N)WkM4aEw6bKHlX~${aEfg7k@w;ZF)yqZNy@D6=sjgxTWP5t*ZqQV
zz2W=q&p9r~E>`?C>$_{`;%S@Dxuv!KDb}@rp13yPufXYEvxIv(wL0(TtuKgjo3>u=
zxQn~{=lA>nU)oum&TwsAtanMt7t?z69a4NO<<f_z<Rvpm-*kUw^zGlt9HV6)&gZw!
zytGcWuV~{Ghi3j8ACDL8xq9^Ugo)kn7i(y2>d~3HPOxa=j|ksuhwh(<(7mSQI5AZ+
za@U^ui`$t`7;REo7#Ob==cZ{jBjvuHx9TbPi4(h*ntwTW>rj!yTCLS{q)Oy2PCp>T
zxN)8pV^m6{o7U;lb-t1pkG9rNdtUJH`~07_wOeD)*j5=V>J<JIFS=o)&i>fT_n+R^
zmYUD@V^d@Cj2r*YD;C`{*SD_HKi#+KTIdn`qjll)=6laeU%CIi;gdtzF)~}DdR08l
zL)I<Q2%i#tZP)9kZ*FdO6|_DuN!44zAc29Ak@5Pw>VS*QE-p9X&xEg!<8^p^thf6b
z=RaoF-#_jzvH$Sm;{12HQV*Ula$0>|?CzATxn2K5?xtwFZRVW(YSWI)605G)ms_XS
z7uD3%N)=4855M_1`j2#QH2d{;3AzuX_H*8QquhB|Cu+LKefAmyxtMdiLaLL~Jc{j0
z=Il?i%=<d~(P2BGi7T(w+Dx{tx)HCc`%)%qvuNpt%b_(7oF=zdJ=*xk+(@WC@l%tN
z<eq#B-nk(jqMHnt2kEc0%TPG{y8hgj<OxRQI{H`sHf?V=KklBd_V$R_zlgGV*B-kC
z?Qhb*YW{5gq<z;it~Bu8oYEh;(f;#0*Sa4M*)LtX<h5pX{C>OI-{1BwEQ*bdooSXE
z)mh5c{IKoq-L2W-oQCoS2@Jc--tMw1+<)!$eics_H#Z?k$;zXbJwM2ANG+~8`h88*
zC)?n4H(q#N|F`hP`U+j`{TsJ*9G?6#puT8h@4-ELp5-6ArnSxg&GRq0TN++1nUuv;
zu<Us7-IbB6)Y((_N@;QJ`n9-X;o+FLdjSWYO}}-aCe4@YocbjGfaif~Wvkkj%-Nl0
zdF$8W88<TZ^w)VOUp!IvCjZ`ys8uF@Z>?SSXwK>{|GH>j^3Te|<15&Au0NK4#&_qJ
zX#tb%_+1hLL{?1by_x!B8`D2M{#=2@X?qWEJD9&wQM<MNUS&i5J<WeMug*7Z>|d~A
z-P`1)7tUY*((mnh>e3_Gm%OtdCw{NkRXWG>?1RKJe?A$$di8$o?Yt{10-w6wGe30M
z-@Z2Zl&nccKxfgPzkfe||GxeXTd1SzV*bY;&F3xf|17Xart3;$mZEIMpUtg%ZXf%)
zj5YjVa=PKp<?3p}4<ydi=KneLWu9q3_!b6V-L{&&b0qysmaJ=cx%JcK)7N`0{1v^d
z`}aB}FXxI{_c8TCc>SlNm+x|{PJDFb9B<BzI-%gVX<sU<RC;692inRiN!~jD`_uic
z>_$uW?JLUNbMLg2(WLj+bdp{zp3C{&NF+A={I0hWh947O#rDs*x1zplX@Qe`^=$XW
zwi5$9tcxcpx1XD=|L%}huSx1Dk<?F5PNt-#api}k_WYi4Cr@Gj5~mNRvwuX_XebMW
zL<$KDyFSqq;9v<AG}L;s*J<VH=v}YpIVh}H^hj^TBMB+P)bt$5-tA0{4leJQK+Rok
z0n7462L*vgAWcoX8;y$JDY+_xn!Dml+XDn9f*Z4rEjzebm>fl2mZY*UH7?*%xMalC
z=up6~a3mJg<Q6U5pK3fK;?d8g@hrCg^{?3}7QEb_e|*yJ&gIgk$&dQ>SRbBeeN_LE
z%u%Ij)^%npyn614_N0e>y!pd%OaChOy;WaVTwkKC95?suGM3M8<#)TBe6l{VwQOos
zRjqLO+e*z4K9<sV{?`M<cQ0P^{O3Y{mA%jB?EaRoed1A~po`r%@yu|a8%Zk9=9*o3
zZ8mxGwV<*)o*Fa%nCeV9vD|!Obds~(?fLmWFD4va(s6PZOH=eYUegs){q=_zH`_mR
zxzTL%eSdhyo97*tFEwV@{h#>VF8{>);MorgLK8Re$AwnOo!azl$)Ef~ix(&?%=~0!
z@6)B1*3IQEAAcoP);UmPPMw@<(ekH1zGqafT%)vKW2)JQu=e(-1E)XVm~m+?W86`<
zkn`P%2jf?^*j#L9*lS(deY?=TvwERzc+BQQmEWdt`BenoydI|@kU8^z$5Wa8`~GSE
zZjMhlc>etdkL_tL*ZLO}9zW<aV`EF}dG`g!&#asupOkT3t);C^Nb24!NB#4UJ?^dD
zTN;|z*dlsPDK-8O=cg-*j787%_SJ3D=5=!B%r%^0K7Ic348O{3rebyzjh;`%H$Rl<
z-?LAA_GC+*OIw@Jtv^?#x2=tu-JY@j?%_LIPeydFJ%7`B{?(fkdEP&5-_|1AI^*1@
z>+JoPwgze}T)5EWy>a8s-NqXiPWbv>*d*`29=i{Nk*0Thp#2uZ^SPQmYd2prT2?5n
z_TKp3ty^L1&Zb^nAF=P9sOS33`=73T@Y~YSx5RPwLZ6@7`!3y^#loccE;V8Aj)|)5
zSGUx?Vsu(JBi5}uy3{@7#Eeiyp32wmVe6ug-?!iA@R#}h=PO@o%a7?8Z0lZAk;yav
z=+;MjUH@-NJEw7_*ghpVF4Efi^262pXNLH@pIE)xvgD7&@p8Z2iNY$|(|TS!I&<*n
zYL5*uex+~bY@gTk;$g{0y~j_z&Lw@G(mr#`UcTi0e`jy~ua_FtU$Rf`FVpEsDRT~4
z3r^VB9P25jF#qvuKgE}4W$x6787K7IJ|L*t!{@lYpl|EyTRGbLO$y(hKiy%wy=Cq1
zZySHTO}MtlX4d+?*+=JU3*1?=rAPIp#L0?_W(PiMtz@!IJnSx9_R@d8;~t|--PLOU
z&#nw#oVh@6>a!JZwzwyD9o_Sdb5@Jk{RdwA=U@N4?|s&@oWg_;{p&C2U*cSG);s@w
z%GD41yK*#g<8NwqNFVHU<NtP~_y|+j9O-kxj!{px=$^TqwD{?kZz18D8rLS3Md<%K
z{k&dE;_L0zcjOl_ANYQ<T;lU}hG+SHOXKgmZCUkE@HKy`;VJ9Rv+gl3&37?MUw@~1
zQ>ZERx!)!xd8IQOh4y7?TtD9Ga<f0tcW2w#zuv!Z#cfHR-f461jO<h<Q|sRJ8kcap
zndL2o`Q{?!>m3UAK8ovHXqb6>f9k0%^CPNt-hO($Wuf%VuoXX+%rzI0j-OdPeM<<p
zNrGin152oYf18Eq+qVJRbrpB*&wJ@w&{5N1caJ;ri@Q$0ZT$3}-r}1JGtaNNcJ)-v
zR-^bEzH>h6{Ql+kF?D4wBWGkpDdU#TOB*ZhY8EZ>+n~JO?s0XQLf$*CzLf7r_9)JK
zwN@%Hwph5fXJYewn`73NqFW@F8=boPNcw5{PM@vT2NUyB<Sdyv3dK3{x^`q|U0bf^
zZCPc;zjWWaGbiUf{Zc>E<Qun<Tiv-$mS;bHH%Pek*J$p%Q~Q_lrfF?wc;)W$ASSD}
zk;y}9%hBHHTQZhJ*NA>m<dJ!Cp1*r~LDCryzH{9NH-65UwQFj6N6(_X6I;H1mJDzX
zefF(tu9L=$tuvK>_fL9JFaL0>^o3)8i?7LBb-Y|MuPvGR!rc)0=aXMAYn{V&E5}#k
z^;U-2p_(7J=LpB<vovwto&0oZ>bk8fvbUr<v`k(5|GV^ZpQYPppY%F;c*=(9$<sL8
z?Cwl+;J4M%St4ueI4xB3X19}O-I+`E_g@74v&`J1{4r2ZU~+<1RJxbd0n5ojeYQec
zq8gjlPWrtfi}Q_j%Pvjr8QVXVi^&u&Kfa;OLNoRD!mqhL3dbWi8uLcaeCoNwZQEh<
zpYdY4c79vUcnhvyUz9rK(7D$An@&ee?^A4>{r+)M=CthFHBYy)Ym1l3C|(ZRad*y%
zd$lunT>mcqch*s*X|u1Lk9~c7Lb>{d2T#;_s=vfOTX*yH#mDY9w-*{3&zC=Q;e21h
zT0yT|&A$5bm?KS2j&FkO{=Aa7^XNpxIh(^954T&!Y>|1G62z$WKF{Ws(%ee<|9)!%
z9Sx6ed~<oeW%Rq(UEEu<R(amp)_qz0@`)3x_M|1|zMW?yG40%>?P-O3+~nmr^!E#|
zytUf;JYPZLWoh9bZ`MnkQ#m4BUZBivUpfEh^0&RcQS+afly*KopBpB%ZB?rn^Fi4r
zkGRc!-TU5VJ}AqsJ`;ZAnbGaCvcLV`pS^#WlcX~{-T&F=$&5U81~DzEOb5@N-sx@8
z();kY{hyz|Cg1#XpZl|iA@jL^CU5Pgn9u7ybW^+Q`@MT7Kj)V&zByZO$Mvj(8w~H>
z_<MA1&DO9D@8+I5-0Z#XtAtIz>3g@!zZdK8_;5;^C(}@NZnbWd%?AnHZME@!k$PJs
z%%>fDeE;!3zWk=!41Ib37ff2$!hg5T{L$a*-yfM5BuLs$@Ot8q@%veg-THrW^Y{E!
z*j&ueEH0SKZg_8Nz?QF$B^=j3-u_l##U{zXIlY6AWz*a(%g%nhc<)vD5w06CZs%;D
zd|dt^`Y+So`@1{NDtEE}|6Xqs8?XK@rtv`(mo2m%vSj&k@wFy1eGVBn-R@TH`!8+K
zP~Z0dXufh*=gd2-P1y^s$M<neo;-Q=H(O!3y06#2E4%mI`Dk`ev+Q2S-|}CU94w&|
zwRGQ=H!ryJc9FVEw8D<=Be6c$6nFeJHJ)Ht|1P~}uT$5?G?u2<E<Mjd?GvRUaSj%y
z#*RCzpytPOmv@DQg@=qmZ1KQd&!c8Oy0@pY_@O4KUDJKy?Ag8Bc1*wL2_7>P7k%}7
zod%cLY~ILe?`Iwh^PCj0GGxWoEEP{7Q&$Cn5Z%IX5!S^QPjm{acXW5}R$o-*IjNwe
z<jDE+{TntI$jHjJ9^htaTBZ6fZS%~tv(1$~h5r8fdie6?&8N8M>YQG(WXXoy+h%6D
zw_Mu!WDO*EoF1?;9gIC3y4xvgZJ6JDyWX(XsV62VhOCeKJ5Ru3s+a58S*9=V@3%j9
z?%W)ULZ;PMwX(V$6jn$*(mQRW?l)(Fb35Pnlq*`ELTjV8D(UI@^-R$e;8@kSL%Yi<
zE>7<1s?go(vQJ*V^o)y>Gn?&uMXb@G;CjG9wyV~LS?AB3Kd_+mzyi}dcb3oh3Vml1
zW-fd*jXC<}$_1ZvCSH+J*&21_Rnn5D&xDHqF;$<NlYDvQ<vF`&9Qs#&f6b@odtdjo
zr8O!|)j0BZ-Jz~UH$2W+H7_qN{UW8W;^`eK?diBNa^utIqN~b|%B_=Pci+)|^sd_J
zIlC$*{!Kr>`STgeZ}Y6(!}8>^#KSjz;gk647oz-h-iM>Vgsnte7gfr32Use;D`!p<
zS;}C*XsMCGz}&TnoyQ~S>dZRdjZqVOS;OzIobuwdly27CfAd!E+36;1`24(Z@js^M
zr1J$vih?FtXU?rlc_nLD`8%<&Kx0ltv}5Yd?MgRO4Xx&U;S$`Z)Fl3>j(xLr9(ST$
zqs6P-1y63d#u+wDYHQ+-WR;xb?Z0$k{A4Ymwy25RpVn(V3%3#A;S1e&=-EskpU8ja
z?2m*!&Uv`Me&p4+*w~WKZ^kS4#LHQZffG`sZ|$*}6FjN#%qfT2^ZlJXj@XtKpXU0r
z$M^i>w<1n^TxL%c_#W-jr`cY(`q+fjGYpdNR$rfg@uGk7wpkTvPbGprPj+nUYmA+7
z;gPG<kM@smxAhkW+%707J%0Fs_X_{wGuv{$&Ar(X_0+AzA^MHv%m3Hh6iypWQn@Rb
z%VXBf8tquunzM6C^YtA&LVt42j!j5OJ;SKiW_~0_UBq?M>KUh!9OuvOwKJD~{zfO{
z7}FJv9Z_c_bkc-m<~Z*A&T=ki@{gps%)+~$J`VSFQ#kT>+2$7~oTjDgI!tod=yd2_
zg`2zm*;kiW|FHcke&K{hm__Xa5#cBs|DbP?d-jCPIluqJx-WZEmd<`DaY26T6R(uF
z8FRk;a+>)&|54uNn-!0H%|W=Jpul12uCtakvw5Rmp7<*jxF=`rt)Ex-?6L8iW6|if
z_}H5lEy-C%eK#W|iZ&fcI;Nn#V<uOD@$7<aGcIbE85(<OO_~$?KB{p0sf3MQGjbEA
zs-6imh<^J&Dkov0s?W4Txn>(~sC1<-;5zf+<^H}s7p>=K`8hpk-Elv~=NeOvTfoT$
zGY+oO+#|S_HR5whh*W@1LU2w))0zkak0_lm?U#`^=XiS_%3)5Q%jiB=`^3+0hbH{g
z?_Hg?d1mJ2WfLb(Jox+l{{G#&f9Hx;98GdOcYb|=*RxCctBf|MpMUmX<>eFe;#T;$
ztvWjQ(0&E}^v#0l-IAu?Bp;|wZCP_Q!EAQm>Z{-WwEVsLW}Qv`Y#udj30)ypvCbM}
zkr{9Qn@6d9;`*<*?{3(ukjq7?%l^DPVg2`0L9xK(j~s>jJ0(o|Ja#S+>DqnmYF^jk
zYn)p>dvmrdjBw1oz#t?wbsp2?-aS6Td0pC#>-b(=(dv07qn9#gQJ(L9r@;UDO*-QD
zew?1J@4oorhj+W*KYI48>^4i>w$KHRTc^Cx4*jDY)$5kL->)lng(~N(Q(|W}@%roQ
zJ2^RVaB?p6n`>23S-G+Jx!<#MbGbKdeUbYjPE9fR=<a$e!%_#is<i?Yito%j*_GQj
zKfV*TiOa~bao*P|<_o4ftd*VICeNxC6v>djAQ-UtMAf7qpDiEqngYWfFDP?9)Df5M
zyn5TFcQ5pmvdxd5{(9`wIcf8}C84XsEUc`IGB2sb#Kz{wN2&ckwWX(MDns1Hd(L<7
zrATg#I=iFr@rTc!ofofk2%XltK-NF#^S$`KJvY_)*Zxp(>iF&3d1otM&DH<AwXbDg
zjY|9Wb5&1u<k1~{>lt<~cv7JBk}2|MVMuw|!TX!#>gHXHIpMK4ad%Tw(~S*@%(=I>
z9X)ukQ9Q2V;WnP)H4!@B>fVXw-kGYBa(b`oJFTf*R;90Et}_QSMEhsX*mY>)_FvDG
zj~x<zR2O`sFj4yC&yx%$-*X$cZ{}zCE%d#>?zs)aMN{d=&!71xd=)siL|*muoR&D{
ziMeJEH7y%LWI1hx`dBKe?riW4TRnBd1_RLW-SIxzZmID6pW>^+w2K@aTQ3<N?b+Xc
z<gY!)Rvjr}{f)0W`m+4E9`6?6NarYA|K!EPJ85ixZ!=HUl0V8OxGKY}|JLb`Q<A?#
zUu?DU73<=CrLpi$?IVd!%g!$mw*>wDMgO%i%=w&cu=O*~fvrLN1Ge7G$uN<UGRrw}
zYO40jYip%rca<zmKR<8B?%nq{<xTQhxy8q|ull{qyRO(3Q(yl+x%Y<Xr>vU&M;mr8
zKBT<1=a8h+9qs-jb6B{Z)PyvoG&8NXZSpwluj+ozN%i*i**V`XN?iVQ>BPj(o}T9)
zFHxO2%PfD3Rk_N_qWvefM6F$MHET<h?%CPq=|{Un@08!Kb#Zq$E_&iIXU-h0*ayCz
zoDrLiyw`Qx*MB{+cSf4%Up2*fHp`V&^*5}Ru9_bey8hX%f6gL$NB(m4B$Y5JzB6zA
z<E_c@`}i`~rcefvZ}rO~7WXG@`o3;s)B%;10p3&d_nl4C?z*SyxhVJcHl4^#Esf0V
zj~+gB{QvK-c5RwkZ@2bI@4BN!hA(ef$3NY1v$|~3-t_c~b-SeEe)LF``Y%hp^!ZbS
zbon&qzPu-^RI2r*Cr;BmxZ#=Fu`S|(y9K^`Ez4Xh){=4Pr1|s33=`)CGPGP<;lE-X
zW92d#5zbeYEsO!j7xO9J`nBZg@`WA`o=Y`!-&=a=?WU-;878xo8rfgm+N%Be`T6uC
z9fB{uR#km{)!N+byp(g#t&=lvEuQz}(DwL5oAPBmw(AcRdc9rzeQoP|W&Z_bMe7zl
zS~o@b!s(jLX|l!J@|HU+RlI$cdA3*UDYb64t4SsN=AVQ5YaVhazMJabP|dLWnB2ak
z+S22%-qid$Ao_almvcEXn}0vs|Mqr{>&lsrCMSP?cX#&9&FRKzXC%H<*~acFS$SpU
z_Ygk5D{`NC#P`ke{I^nA^p|htaWj@H3%|Wc53sZfyE{w!wtb%VxsQ*J&$P%_e6GSP
z9(!lwijdZwmA}JJN6nUS;8wVG|J3WfuKtpW@4ib+zhrduvhj2YqZAIe#S=M&)jm9(
z9)D?HZS`;QiBnZSRM~Dl?)Tu3xbX?w4gb5|da?3777=Uwze9Y&m(cVQ57)pB%lby<
zpKj-N>=3Oz5;AB1|9`XRUtjZh&SYuMb??e-x8HnoC{E*p)a<DrZf$+{@>lHoWxeIU
zo_5>4bGnl+mu`IC;L-WU8!Flw0uS#^$p8JvC#z12x&D1CtFVSZ0!P}x2lr1JKfP4$
zS<dw&Cg8yJfZ49iVIftI(>|_<T^qJIXk|xNmy({|x{UcvO-#r7WKZv@{G4%TN8wSs
z1uIt^cwO?Nw|d^^`Sotsw&{xg4qV6|vuO4M`?{p5Lf>?c`+xZLDD}w=ohKPzBUb%h
zFez8{h^?8~w5i(RMfV;!Eo)}(T604>UC;GxSJSzyqv6{=y50Z%?&j>fw|$?T-B)Sx
z^62rH?cFnt)0qtF{`~mA<?lLy@B97ro^ME%*D_6DES|LYX5IInvN8tm+}3V2Uy=6w
zDTBat!Q+LG8GB~gh;XMoSu!#A)UmSxJCzmVx^4&y3*X$7%B}3)m-6Ms#hQ;t#e3vz
zrNYC*L$pM#=JGWkEO0G}m-LY0{r5QjfsD}0|Lax-SRLCN%l>Cxz2MZaXw|%?rY5Gi
zxqoG)FB^G${-ARH;Ld;*sS`xMs3|`?baCUhoSRK2Q=GC34kc`yu>6w93Dy~NU~2(f
z-$+FsyP9(-cBw(>hrcbqf88nF7qHr4J)>vPg{%V$SU1a^30r!n@o?GEscR<dv9)^c
z{d9DPQTc)Bj7lcE;%7c-XJ!Oy9;*9&+308MN;d9*nt8oU)#oMFOp$mHXeO2xsr&8W
z!92FG)l;WT5n<z%atR9)`}_NQ`j;0MeP$Z5_PROmE_+*`b0#%=Yt$BVZ=X=DKk9oL
zmIO`SRB|%3{Og-ac}D$xJgZh2N{2c+GV1%)&R?4)`|)1g4V9G!T-&*=yLwKg9lm_^
z-hy}U-=BYXcQ@ymlPdm84_-`h3iMnN5a6w~%eBRDU$uD6oxAVPUC$QHDB=2c@t3yR
zx!>or-xS|s;Ipb&7;SeiZ_)M(Z_^I7a59{kVaPoB<dM(k?fDNZpI>+CdVKxaA0Hog
zf7_XT)b@ZbN9;bv#W^lU%?o$M8tjd&HISIAx#6i&q{Hj1_sTEdJ?K05#ABZ&|4AMz
zbz8n!r{>$6+S$!}c)0!Yj>6=ipr9G1*<zE`{nPI3DAbAC((&%@?#FN5)MT@XOjh}G
z%)Z@gx$?)~mf>!U4rdqgKl=a2WmVAY8%?a-7Fn$&<@`Ab;@=jDboboKI(&W3d244j
z#tZvut8>hxt;^mV(AMTY`M~9D14EQ)uGi#W3p3t5T*-cQ(xDmO-2NPmcvn8>!1+0r
zlUcdN7$(e|8M*RMTw>vV$@%xb^X%+rWu9JaciHZY!}14u8eLA#?=!@Bqa1U7Wimvu
zZgCA1$=Z1>?co7?i)lqX4Qg9wFAROHb#|NgQ=1<Tnz!WLowa;kRo9<CHEz99M_V|B
zE8gvV{^QGK|IW_Ng~`YJBzW4Q!z8n8O~pJHKmF6=@4e=`>}Qp_$7&%vPu0J;pr{k&
zt`fQJdsm>y1W}d9V;86NPd|C$@Y<*g+v4snG6{WtZtlxFJ2waPJ<_ii;>k{2v~T+h
zrYd#rKTAb?Q@MVZy1p}aeqep&Wy~|fDE2K&OC4@&Uo&5Ow`tkd=sO~_^`>6knjJ1z
z`z3JEqD2>8e>KUv(sADY|D5ab^>f>Jr8m|7E{ochQ|WzF_Q3bfiz~jcCEc$Q7HMq=
zk6U^z*gy1Sm%N;u->-#-pFGVdJbC`;lB<ih-n<a0TVZMa`Pl}=Eu1U0MIK3g$<A1|
zasP{dmCLznUjDydRJi_AV4v5~=={B|@9*th8N8hDUF*-Ao|DxK6Amz#<=i;%@NoOf
ztE;c)Zoc^YVf(}{RXIC%{;>NNF?Fw4zuhm5g}1kDeEz`k+|y^x&CClO9ZT|Ld}H6w
zTC^#w!R(;etm}fw+;@DL>Z6au22Qzc^yckam(^E4-6=l5@M4D7m)QKPt3;LEdJg26
zUEZD_AGIwf^2&lL>lHr_Fo*6twEAk+t!=s9x3}dUz58E2Q&y+tZ`|{3%TnKMIkET0
zf`sYk!k1qbl#=pV?l-rfxcKnJiyxnTogm1;(sb(5mg-My);^zkd8OIf^m)gE-n=*4
zoTMrH-eXdW+v0;~&+?X+mzP-G)s_AhULbmAW6e$79y|Nk2llB`*M9tS$$ZYc_~U_j
zJ+rrWE?+dupwRuQbhGQZI|r95M+NFz%y{r&`Hd;+tFG8;zMFo@$hCXUu}gNQD*_Mq
zvrkt^)V($B@UOteAAC`sVK49B3G`0Pe^~TiZ)eDxt7^@n&aZ{c(v)|qnmyTE>*V~3
zFUIAR?QLma#s61|>||=?&%S0CmXYyk?sKmExm$M0J>|ExUbl?eSZ<%+`(`O`F#pWF
z&=TiA^6x*^r|<rJ_E+qiyB{Uj&S{ajw>fjB_CyBd?0dhvm~HQ?-Ey=D4lp~G{Qvmj
z@BYtyCacf<a@R!3MrY1#tNxere9P}|{GWVt%es*Dk76&XZtwGn|Hr=5$bpf4S$|5=
zA&q^%cZgpNZAdw=`rT6fpDAb3F1*aU*1ffN%MFnwR&O&Oh4=n9+xF`0w!ngFrE*tC
z$KLGa$1|r}wrhGn>Rwdt<$i#5qt0BLj<m+Oipt8s^?x6qxizgVbfV|~Yz@c2^_!ME
zI0ojZ=)ZCHU9T`NVt(%b+++4U++7Ke&iygUoxq(G`Rf|<7M@MhW34x->+5<SStMck
z?QO)nY_Xo{)5YWL9+p(6@v#>@3A(r==-vJ6vOB|V<{vmYU(IMouygg1u=SRI)&CuO
zXtUI1*TUz=KhOLZA-?D}yYQtQ^6T~O`+r_qJ9As_%>Ggp9g7(cmN8e<zSHl~(yvXp
zb3R)4P-TX%-^mi^!_W3?+P&aK#ohb=+fF*)zP!az;-N0v=WAWuuE%#@6uFT<*-lOE
ziK^I{%9)P2i&n_rYkBAIlYTJ#uYvx|Bgc0aYnR+h_3}B#xKIB2+!YTJn!MlYryu`t
z_;YP$l=+MY4+^aM{!F;a`E<Hk`kN=G)vZK-e(kkC7nr$m%dx2kK6of8D|hzvD4dAx
zeiAYJm*7N~YsD##i)$-?Y<^#v9uck7^!noO*UB>cCRQyHDfo0fT=Is}m4Cl4sFl?J
zN>4f~xkf_j+=BQZgM3-%#Sb2w&Y!((^O_mI4CX4m%@^*iwmtp-?Wqm*9$^)G<mAt3
zragXnYNc}1ZS{BITzmfR7MhxF9#?&9{#*HT3FYThFY2pJ+E#LHuT{fyGxpDi{`kJR
z^-<sW*OE^+KP-=!l5p5^lXa=lwoSSRdlo$@s<>LH(meC;>m)-huAj^QJzXH=`8?t8
z)J56e>2JMjB{ws$osBxV?e6Ue!^eS2b5c@{ws~@;9@*lWb9e7--)?omjo*FcW^L+@
zSvq5`s$7`)jA=XPb-0Tjx={XXQ`%#<u)m*_9vTKq{(TttsoS2RE~e?<$<{YERV`O1
zXMMV!Jvnl!R<mxWeOyJ8zL1qs?aeB)KVMY*y8j(NX7jX7&SH6eOxtU2@0*1NZKm(p
zKELno|NL~L^#0OZaq~?YZmz4<+XKSGH@&LdR^4=PU*?*qnkh}$bIUEu<mdm@Y@fa7
z;Ge19Ka)DnJPOzQ`BF(+&F;+Z-Od$>|FW*>&3Al%N4_%a$#WUQshJw5)$PuyZ(RE`
z;ic8J|355V#oO(0+#h$})Z**m_Y(8sj@+AkJmQ-R!yO0Pjr0Cb?aW`NobZV0THf7b
zZBOGr#fZn3R9vWjm?*}-zHi-E^EdXjvlidqay;@}%H`<86{*nz=j--&@xGpByf@t{
z-tL=By~@o~8w~|6Ze76DQGN6MEVfs@Rg?EE`?+WHi#wvc(c8MUf8GybpZDvLY}+=D
zgZc`S<b;<QpDSm#U*qo@x>)n=-gBSweZ;ynr+sC=EAb^q`_r~JN;k6<6JMKcYT9-A
zz|&J~KGB!B{%t?vvOhBZqtp7fD=TB$+2+bUnCNGhQMlmXib9^(S0*gDwUsl|a?bYq
zZ+#BFN}aP~rSN%;8P|IjC3ePSF}wYl8J*)Iz%0mbdvwCLi7eMvxfXn8pJB4omNonT
zqY%T3AK(1eS{xnXuKkkp%~y@wt?d!jw>nG<P3?2aQ-5p;e<}RX{q2W1pE;ix?C#9q
zuq>;csU98T+{-s#Pya*B5zA-iZ4dSCIz6eTM<wghf<Er>7}wa`MSoR{{O7B`mwFy6
zrzfjsoSIUt^vZ0(b7SGm^_CGYmWQ5+Tc3JhOS!}~osNbNc{blqa<?2i`+RwGxL<sR
zZ_Ls1*|HT0w^Z0nJ{;Fyq`!V&wf)tdrF)OWRP8xs{C4lf)g~4eyY2+oPTZ_NVIkLo
z(%%|PSyh3%<G9~R-)X(It4QvU=6|E&osGxsXC7IQcJRtK{^h4{e6P5bE?#WDRJ8YL
z$R#)3McD^q=N0c)Y6|UoRIKv-+a3$O7Qg?$Th@N}*SwQ*|9(Z8^>Xe<H|`oX_<K!_
zd|qRf7OU`fap{@p(w;Xj7U!JgeZJH#*3$O5KVRCnqg$TYnBFp7x+`j72}7>U_HGN+
zmg9@=yb&y4IVb7WGyRIMZ*Q)#np3sYyv136lMa_xV5RDPx2}Kt8p}9*FPs0YEK1h<
z-m?99`291Q)860t#+&c=cb=*HWxd;JFZ{NNzF9b-Pf9Uv`eLQ6!dJhzoqKvZLWoab
zJ=dd~R@3)SxXQj|!MePQydliGTcv&lU&&ciwmh#zduIE&3EJj|3Qk{I^>luDW!Y~t
zt|K2O9eQE&q0FSvF8<gg3Fkc_?Z;nRi*rucmKHp#qVCAS%QtUGO|9ZkJvL#%s?(Rh
z>TTDtx{~W}`?o8)<Xu#a)D<`Xr&oky4>$5~&py3c)@s8B@AO;cFZ}-R%jGE0iS9f5
zyj(Ed=JdU|hc$6o(GE3gVkW6KG*;}ISe>|(N9v;*bL5#Rl}mR`)imnbWoVrA$kWG1
zXJbz7O1ml<&ew8Y2j_j2xv{zJ#{oH)pXLjlw?1BTZ-0O2@h>Lt1S;-M_4NDQ{#^cV
zOH1DTjo$)v#D#<`x26cZ%X+%(c%s&JheOKxPs8+|hwI<oHY@zt8I_Hn-T!R;Y@qHp
z_t}FzjNv!bRxZ)L$Mr-1ns<R~#Zrx>X)A*_+<cO>RQtrWQy-^XTWx3R`OG2b+|+Bc
z^*6lV(^S1d-tYg*J*pvDp({;~exJVX)iiCs#X-S~Y6F(;Y@J`=y<+PtrQLZu=1Clq
z*j*s~|I9px@cBMwbykzk-Mya>oMy@I<?0q_p7iV6<T-Y=yN+!7wzI1BdxEDlYpBul
zIHT=--rn=-6}u)I+a)=-#i%Ikx^<T0k%ss7Wl7q`^K~CeU7dN$^S?p;KfzVy9mnoI
zaKD|=x_1AcLuSbuv9GPC%w)fQHP1`-C5v{l(M0cD<M<mV6TL-}=e=+#FlE-#St4iW
zwQTE^XpfhBe(9dr87=(1;L5Fr<8p5uCM;*%nxgvlMxl}R4b_0xml@)tb#6b>Tdw8v
zysY3<%)GgM6&6l)ZjKjMZ#DhQ)2X^BQCobQtm5xWTHZp{-_jn)$u)fDwflE9?yba?
z1INDQ*FD~{Gv&7Pt!4R<QyzG3cT5Z^OV?hT@0_Jsm}50BT*r0GY}?GdEBs}97d^_Z
zUHl<bZ-f5BqH~9*lr(H!cKh?kd%f3$e^>96R(#w3;mVVle|9CY>0bW-WV>?e@*O2x
zXA7J#{C8(!pM?D<Iic^Hs!xlEJDb)u-%nUk$GdsEm`LZ^RnKaDWF8&b)w%d*!b>^7
zx%S6b)@J|6e3epXk?0aAvSr`ejE6;Cs<YR)Y+u_NW+-sUa>kPSu*os2jeBF38uhPV
zb+h|9`-@1sJRRdOIfZvlGVIs?pYqQZ4#;YGs6Y47`?H-hL}%`qy#Ld=<?dXEx1Ro{
zJ;g@;so0lkf!9~`%WqtBYhDj)Ytv=#ivOP%hnUD*`cd-u;<TG*s^2>Qv#DwPu~_@(
zm$UJnI>s*SU$$o6J=D6mxc+%X<KFL=KD~@DTykYj?Xy_<Pv7pu&hfQ4du)At^07{b
zHooo$ZSC%te|<i1<#}d7k`=$5-CWgZ{=!E$;=<~`3mu*p*Y@q-_sWf#PyHXQ{rK+O
zi@vnF`nS1a?>ZmfxmZ8b@S||wb;)DOyfUXgWS7fj&pdXgU#$4niUl*0ekT9wpR?E3
z{8{fc;mZ@>|9tWK=^Kl}#%}TRo9eG-`9<wn@jUd~?v7n){%SlWiHBF8|L}4C@6PW1
z4sRO2o|$de8t*r=CFtJl%$ZJeq>SG^4a?}>@3Q*N%OC%Y_Eq1RI(7ZGrM2DDw#fex
z`kWN|p;-IPjhq$U)7h#nxLq<m!Z@Lz_mz|Efz7GfHKk7@-#ISlpZ?)!g7N41?>uKe
z%YE_vPQT2#=>gT>(|>JQH>YZ;>DR+jm;Sx%b+N6Mmn(OO&ni8;ujWIXdeZ$DE{9);
zmCW5Rlg<C@fyIm7|Cf?ytFfBB@m_Z2&Up4){Xd%CG@ieF%CXr`d8*`2^U9COa>YLy
z8v_MRUj1RRUNnEn+Q}hG*JJa)MEv<L>A$_~uH@IrosIKrj~hSS<z<=P-m&q|rZ>rK
zudaPKxZ>ZJSGFzB>uuZ*Pk+AYPxI_6$7A2RzVEM3D*9q*SG7QU?ysKYorjfcz8>D(
z^7`~1gD-!7NXtEzW^*xL61hD6ro>McUD=TGbX&s=&$z#a{`amohOM<Se$=f}RrABt
zpJjTnZ|J)%_347~_ODL8I@$c<);{LDZN5o~Yq+=GJ<_teT=~)z&EP2~C#z4MH?QvL
z<@+g*w%@ONd{TY>k*vMt?R<aV?SB8_@^b%+9uv!@o=rA>d9_@XfBmm!_rL3ny>t4W
zp1!yD=j(@8b!wMvlTZs$Siz*CuHIe!^PRKe^8-o${P>sqrucf?J9s|7#?|SFiq-Fq
z)0zStT=Ac@bu_zXM11#iJZF9CP`LW%s4mF@l?{g<*Ze%#{G(gni-qan*N)$N4d(s6
z+uRbp`lQZ1yPZW{mst(Vz6KuSI?lxs+LgUc%yUx9&6@Xp3JW#5Bp!t;2!yOX5j#mm
zMppLZnKOHmrG@j&X3m_sW5*7TMsW_7Q1znll_4zb?83sr#q9lO>x!rU{rz27M5M({
zSxTFg$x&3Wyw}ay!-M1I&6{hYwsxI4bEaD9`#KFSNlD2yaeJi}U+kDaU!IRI=|EMZ
zL&5igvjtZY3@)sTweFL*KR3%X`^4$ft3NU6dkUR9ckajU-@(iMWMyP!16Lkd0$%CX
zxm(54!qQSuRMa&iL&I$L+j$-L^v}-CGLQ&ZeN?=Psc}J9=Wo@8m$SBJY+a<h)j>hv
z&elhDPfiFvlmyR0bMW);-?n4EO=S>xcgm_+JD5w}%+}wd3R+>u_<Fi^+{SlWmgR<b
z8bDgtcKoYlYIF!-)if^>XKv+WVR94|DW5n^kOQ<(3cOxV`pDi_9=m;RwfWXqJ!kpN
zpEg04x#Gi(N5?BoegsW!p1C+)Kl#_Cibs=tZZK@=V=-BGe8O|9OX@!1H!Kz=*wi=8
zx4(HTezyLkG)A6tS8}g+ZNJyA=1}ukRe<B&j}v=OJ-L%=l+?G;P>p?hmXyc#xVoBH
zEBB*bm-;OHVy`@kJ1iMmr}wh*=bXD6=l|~w7u>XmJF#lRoV%yBov&{=&yq3c19zdz
z<oTy>+I~!#AuXuD)+fTjQod)${X;kY{<!Fp5~-+j=)2k!y@&rVH0#t~lKi`|Ued~_
zt!L3^Z5ww_|JgGiM?PQU%DX^h!_%WT_iVeyqo$k|$!OWnE59y%J}1xF-5<WD_i_|%
z=>Mn}t)n3|@t6<?OL^lC?d=YCHgD$oQFzm8+Y(u~K+QY#t9YG%ZE;$=?vC87DE{;<
z4I5v~nR3W@PfcG`y6DU7u#fldgnZh($wDyO?WypI57%!AKU|=Y9-DAfPnsd`Q(@fu
zO>IAzMDxBnN&NE?Z!@{p5ysW%P$2H|&OC5sN@U{yeVhMms@7$f^-G*6s=^*oQN?T*
zz53$9+#6>tHw3-<zx3S2850i7t6e!gTqSkFoJ`j+2Txz+od%01@A=Jijxp}X(%2_|
zIv>}3P2szB)LHV0x}CHD2g~<@Cw1R^wC3l;Io14SNfAkLpV0T(qs%M)-n-H*8DZjk
z_x*Y9=M=_hm&c~EF8`JF(knlw+PHJhZ<kB_%Q5o~cY5THU-ExyG`g<_hh1KE)#297
zoD;3pt7d<Ba(w;aLVw#6E%#PiruaVi9{Tc2^&R1fW#Swx<xHzqdp|rIxvJ9Y(TdB-
zrdlW50?s598ZJJ2Wn#*yCvRqUhyVS%k6Uui`4j*7kFPuM(^KeNT_aEJnr*iK^L(EM
zOcI?sn|odB{xx#%I=iDB-^R_|b@k2bPm_Ej@)w;yq9nGlV`<W@va?&xobA378_WAc
zYE|J9g==*h+!{hFQbm8NDSz~Qd1dwU*hl7Sv(Mc7{BjG|8ow$1+U$>vKbG%5xAJ}0
z{K-W-xA*8O&%0_JYV!I`@A5FFY`)!L%Wmv;S#<oer_<Yq&Z`+L%ET`DEt{OZx-mM;
zs_@&j$URPTFLbT1Vr4owcmA}UJ6pm&CkH=cJmZ%pBJ3e_<BZY7tIR6`&#ry(qkYn*
zjt^z7%flv4NzE5p`}E;~`|iTp8H;^B$)BG2q0-2$m@$$e<<sRAH+8PQ%=q!lAdcTB
z>ERMzALm~0Qf99-xt*;)OKZE2m8@Ipbg|+>dW=SQyp7+tZ~H5gj?}GMs#bK0ErdHc
zB|SZ)!+$>u(?MCicjnQ{4*kh~IPb|R*Xtn{8iMC3*S_ACaHOFu<a3FZ)xKu8qaT;Z
zysF-v;J;D(sL@-|je!TJ&2}!TI;q%`yOT8~z#(g2&y!cKyZcNvZ_ITH%93Mfn-yoW
zdp&2ry;#$BH%66JrEgA6zdUEg$ES&9b3IgKZ5eYHSNwS@wxwjhXuk`nTsnO8?)m%7
z+u!;v$q1TwWy14G{)<$5v*z`w_Q}TF?VNgi(#rR5d%|=Rr{-pKsjXhu(JQo1xovaa
zk*nWU9$nGjZuBZ@--IhyUR|5kziaDW-uG6ZLQ67p=IlB4W#0=_E}1s$m{TD#S9GfI
z96vuLQ&sl!ug<CFP81b!Js7xL?Rdt~yN=u%Nl&~Q9TYU$Z{IT9?fjQxRqD=WsQ~9y
zc9ZX4%hNBf-yC`@aJg8xuYv%_zw9S<+Lw5~9^Uiu=F5YwmZF}_YU;+>=Z+Yd>{XS!
zI_FJO-sFonj<YN{kmS02TGvfACD4-Q9eRb^Z=Es!{~+pxsL0u!J5r2Rr7LGDo}F-Z
z&eQCf9|HIpzRfwUa_P3<>a#tr+iw2fdU8cTUS}_;lvVov-{JH#$3K$Mb4#MlRvdhk
zkyiXDaF<-Kiqe_s3jXdkbGJmKO76XN@8*XTFFD1yKJdb%rlK8hn-^MGzkVrwXG+$}
zJP#=cUU6BYnL9tp_pplD%ze|mBs)aN*2$L9V&W|S2;b+{rzU#EaoP7r9hfrpXREyZ
zU7It<%M7v(r13rP=F$=1SZ7?cf2wWZtu3ogpZlzSb4ESK<YP@s+KZ2gr2XAB>v`LE
zhiRf^?|PQz1^Di%jeRK|$oz6w?v$N7-YVGtt>{_HUVLJ+=ML82#rJ1S>v{2@N$kL!
zQ*YR(ZQA<XVV`6yudc%Lr5j2<d8NsJe>PK6_C;)X_0tZsO%rARN1vU4Pxt4lZswpo
zsrvKxPT!XnwwRaTcF{txvc6cYkNa47`OCx!=T1dN|H!N~$~4n0t=jtF>h#ybFACni
zy|qBVDkFSDMZEE$sMlI%hx{Jy)b-l6=hQ|&S-GmkvftfB{M;7Z@VHerL4Ke8xxQx0
zC(Kp(`ceEDM@}UE`{6PDRKUeQliMq|e|>t>^Nf1g=PSy;JCApZhksc*dwI*8x-RkG
zdB;kBaop3}rq9~x^Zvhh`f<AxXBhpaEAvFl{qKoBb7@-b%xfky<<pODD2wNFyK*H*
z=-3O-vzg)ErHB8mK2g@_uq0KBac|sN<+-<tsv?Cp%5{2VoiLZUIjMx_aE$KlNqz|>
zW{>JFw5rc8TUfc->UufD%`*%0|3AEHY3X8fqh<Q>YYUbwYgl}`?Bh@E(;h!l6ojLt
z70jC#Yf3RG&%LlHq0j#8^YghWi>sOKek|qewNW`GwOB3tcbVPI2j_%8Gk*xso^fto
zn)f8(x5r8zt+ZnMl+5?(qx$QL<!+|?DvrqZn$EV5k2@B=@?g*JJ*J68Ht~D6%v|{|
zuEzA#<6F14o^x?O&^2|XMD*_fLEA~i#uin9u8YHe8*N)CmF>oLdRgA1*(cYz=;wG%
zxOL=U{=bJ)<u`Fk-)WhCtm@(86y?JInPUI<bWhFA`q+`q<{qpXBdhQ*gYVikxo=!4
zXP@3b&o}vzR^!2LhV<R>Iv+icoYvdItMT*gI$hnV!Io@FuU-X+M(0}<PGBwEXY<d8
z>Al^~-Yx6aR{owIb;V%mhvU`KGk)zdzF#li*k9EAZ}+vbh1^Z6WOv?=a<0kRX{@x!
zHeNpBsOxr~0Owg&?V_C3ngO#fJY98i&9vj@*4G}qHRZ6c@9$Fc@%Ue^Jo)*Pi<!S1
z=4HPQ5Yc42R@{Cge&$DC8Gdu_!+)KO#8bj={aShQ#@5;8adsYI)4$dH3^K6WRaBGY
zmHzSgMhm`|{=cP!x|nutSmyI{!3{e{U&%l2I``k6KKf&W^s&(BnYAmd&g*6P`sa&2
zICVId|HGwSDVOBR+-tACm8)2Jwc=W-LcXik%P{#G?F-gdY7}R3Z<2PFs($od-Eo1n
zvYX7)`7ckZNQvGl%Xzd`z9{qeJ%_k=kB%%=Vs_5D^k^Rw7mwB%_eq`0rS4Wm{CFOq
z=XR7?U1U@FyNAy=Z+#K{ovD7so)s&%?hj3!=b?CdE1RO+DxrPG^So6Y-ySoFKl}7+
zk=^ZmmYuum^<T}qc_=YgAy~cb;t9?Jt&Dq<e-tP3-4tVedrSIbyz3wB7RQ3`#nEo9
zI{BH`m+3M8ogJ)uUDT6#5?hg|^0u04bC0X8yy<7eBlo4|A3d$>k@)b;=8Wp?&rh1Q
z9rD;%5NIuM?-J`d^~ovIPFl@$+O}DH)z;S%)(<88{J$h#%Xa+n;*`F9em+mV+VzAN
zf8V`0b<_Qvr>dIZpIN&SHl%I*^}Ir+%52%<?@P@YIobJjCAc*VVv~0-Vlc|u+Y*$p
z<Up99{f+awr%%om@b9|zRAu&oo093-T>H;jbzfSkd%mQ|CHB>KEp=wUS5E(TTwjvu
zT^{mLb4iq_!P1RCHW&Y}kK=b<#k;;O&%%o<L9sBNZ_<AAeZL+(z3I_)^1!1|Vf*K&
zU+WegpHaPoO_{CwfnY@Qt79hHjy*{VO!<`TZ}@(D%%Qf{Aotqlf2$|dA61&RyFTQE
zwbz}{tQXh!3d-6leb6Y_#=U1(0fW2n4DOs0tOXihWqwvJ<C>ajQ#NJmO1~1hH?5OH
z+CIz@4QTY*G+~3jwCZ!7_}ZC%t23D^(s!u)ty(=b|JjXC6+VFrO;*QkJ1>&VroAjD
zX}Z6N@UPttUN*DOy~w<^Sc>l`i~jpXoJTJ<*gbxA`|Tmk$>kS&9xXWT7%O=H)_LCh
zvnpPTY?$eJYu|i*u_pn0-8KGwTz+H18;5rG+Jey7wLLN+|4cbo1Ph=4A~LDR$WwdU
z=jCcm>bD~;r>#&kI3&o+b>ov|-6^N9Z0{_@^@9zI^wh+26L_<-^w;0EelD>rt~cW;
z=dTGI^Ik0c@cc;Ym)yU$%<gZTrEd50%au5nHvd~a0~9)1Hc#Ha{k186`E`R${?SY9
zRm0Tf6=El6|8ELqo2`;;@Y294;^bMwhYwclPE*eM_0gorB+un)P<*A|rq0X1iw>^O
zs?-x<U|^pLIv0S^H1y{h+suPoBNeWGoBKFq4ySkY@zv$(M$ZL`&p54hG%c9A?#s+M
zbI<$<58Hf1>>T^%MVzHi{@>pH{lSV;);*8!@15ssHakVwAt~?4p`$ShF<A_(J8wG9
z)>KGXzV?OBa$TmS3xZ#Xs0DZUZM^2E5pk)kWQm5T?$V@}5r&6Z=0rJk8*+Ly?eyX>
zoFE}2G->age-m9^D5&VRN<I7eXZq*7bNhZ<r_ZbXzUTeBg`XF@NpYmt{Yjm!@@MXx
zH7|}$es(m&qV8;2zvvkU^Q)@j1-%_ghpZZsMPEEP;wgVc?$N}|+WQP;Mp^$#%+^VG
zJ$S2Z60IaLKVko`eO2ELOVU^pFS2p=aoK6DPyPQn_s&+k-Wi*ZUSYM>dGWg3U3=;B
zwJJTI9~kIc|JB<T9F%SJCt6Tq?``J!HD|ovw|;)`En|-C^NQ53_bZf5dbhH69=Un`
z^SNvLKi~SM_00dg(z1WQUYRfWmDRd7!|Cg>g59z<bBslA$FCK+HvLjY{?RXum$Qz4
zIsD~@VT=0?whPDi$^Y4uv^nNyM18I5Zf~8Gb=}IlUdtT!i}v_gXV(ApK-c_tkIh%c
zr#}_BewF#&eb3s}QxiSi-Y@MrU9^ASq_eB<FD*HfVzyS=bI<DK_6ND=#%z&x*`fDU
z|3XREA}RJrZRNr*m-7;m=Gi-6<kT*IQdR9f|L=>8r#CV^BF&~BUoI8#mTytgofhkA
zJ@1-V+znSd3)jxBDc@4G=AfI?GU@iqe!ni1l|7R`G~H@q6K9#;o9sn5WnHsE&fC@Y
z`p)^(ZuGe9_J03mW^)&=IeK(P&xCoiX4;+FHvN*(XSp<<=4H136OONRsrwcsHZzYw
z|6_Jk<@4K5->g6RVD|OM{f$?`pNP#5`1^m}lZ6ZUrakdF7A<jV-6v&<hh^_%=AHUG
z`S_$MGPVcoqB=Z!552WMJMmPWT54QWUwWC@=IX=0L)3dyKc5k(nQs#G{JVkr!IKk~
ztb8)>#%bZ#T^{$!^ew}8o3F}DN;<qD{+{^cZIgoLMFqQEXWsntYI$<UhMCjdnibjH
zHcbAeCu}TYP%Cpg(CO%gz%?hfIN#iQ+t=9Ra^qtWYvB`fGroLVIRE68Hn&$bi9V<0
zoPsvJ?MjxJ_Ts3p#o6kqcWa(*lKNV+<Kx3}iv<fO?sAZ@EHv|(?HJTGcbYk`T$FuN
z#_IWxk3Ls4n<|lhKAX4f_X|F@m*3b8&+a=qt4`~_#&SKSKGBtCK9^MrmUX>lzpGP|
zD53ac<=PDO2fiw|c7$wxcmCGSgj*b?G4+3ctzUmA)}(0v!x+Ufu{-mR3Y1HHEDTiX
zmuWisY5rGT73I0Ei&y{nyQ|s7cA95dQ|q-=Y~OOVm%TW|Q5Q48v+MMe&9l_b?NXAg
zoz1FKW;E^Gql=&R=KQ^A?^#o)G;^MQgzvioL3zmqYmWAJ%5pnOar191t5sdsdO5=K
z^n#tsW~LpGd#6~oLN@#phtVANn?HkeIX~a6iK>_qzb{WYJ=ov=#rnOQJMH&YOlwgM
zKKY4f4WF#3uZgAd$)2B&Zg;k%EZJP(BYL~8sNqAXq>rbe!R=cXl{>n&_qlD#I&HDX
z)OQZ=M<Xq%18%owvF_P*s_S-gtAq8`r?D<QUmtD!_U68z_~{)V9{*AO@9d`MuXORn
zqFpPd+<&*@#N3^aJ-AI7?bXYtU79fW?3>%w%Np`#i?n|JY7}?l>C=U~@BYYsUGelK
zmzA1tT3Qop_>t0U>-U#UjJChCUna*)+c>RvS6}y!i8|-zcW-=J`|r<_**Wi-+RZ1e
zS?`y4x;)5(b2CHTIg$D55|jPbtk&Og_-E9;5-qu#=iAix=G>i8^i;^wUE=X2SrM`A
z7i-sZFJ9ehd%o7Ene&a+iO0M3Y)$H3*3|tiu=uv3A}n`D^YZ$-2KhZ%kNo^n0{_K`
z`M&w9bkX#7^Oe6J4O$Z=ZT>p^VBn8CpKbj3Qs?elO%?7c-JjkcjxCsS_xzrt@>UG9
z9doL9E{iP}c>N(bv_{TYuk+#F%Q9hyJCDEk`+uF8*DJ*`Pl?*cb>24$raezjuH4oV
zZxiLkpndO(#k*>)_WUz1BC{lI!jGT+{pN{{xbyky<*e_&>^>1)HKQpve{+rT1HN>p
zb9Zxo#TgyW{d@I!{RO?E?hQ|#KApL9=S~xI^ZI>-=jYk>%nw}miYF!H&%xa~w=*XE
z{^Sxg*ZkYgnybevlD=v#%bj(&Y01HT64nl1-+$Y*t;mK|TDT)*Q`evCb{bM=_f&qi
z`@ehR#*e3KBhw5xWUZ&AcKcntDaf+?DVtqz!!fTJlgs&wC+9Wp-paNsqthetCVz70
zmRB*tJ2R)Jnyfc*2s6Lg?S8*y*3FK&bKP>@|9-c?-sYOXG5Z<oihZA?weNO&r=-MH
zE+{C;^Kf1NDJ3PTo!uQL5;(qdYMx(ZrKHq+pq)K_Ptxo#@$Qa0O(Iamfjhc8Iu6CU
zxPSx}6^ILB2ne?B2B}aLz$t~$3|6ag#}#fGT)^d_9>jGZ(?BY~0_GR?GZ?h4%xcM=
S`k#S;fx*+&&t;ucLK6UoG|>$J

literal 19906
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

diff --git a/sflphone-client-gnome/doc/C/figures/call.png b/sflphone-client-gnome/doc/C/figures/call.png
index 6361dec67a85d9a4df7a35eb79fe6d1a6d6d7b4a..e80b4eafa4a4167048e66693d3cb5ef8c0128e0a 100644
GIT binary patch
literal 19068
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
F0stL)wL1U+

literal 18472
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
JtaD0e0sw6vY@GlA

diff --git a/sflphone-client-gnome/doc/C/figures/dial.png b/sflphone-client-gnome/doc/C/figures/dial.png
index 2baf736e3072d38a4deba2fdb603ba59b8ed9ac4..0b3d44b95b0c18e74c18ee2888792e7401978283 100644
GIT binary patch
literal 18409
zcmeAS@N?(olHy`uVBq!ia0y~yU@T`~VCdywV_;zL*=J?Sz`(#*9OUlAu<o49O9lo8
zwj^(N7l!{JxM1({$qWn(oCO|{#S9GG!XV7ZFl&wk0|NtliKnkC`%NAW5e`xJF85~)
z3=EPbt`Q~9`MJ5Nc_j?aMX8A;sVNHOnI#zt?w-B@;f;La3=9eko-U3d6}R5ZEw2$h
z`m25ZU0dC!O9VJPJv=-(I2Bo%N?yvcICcevh={r#U3dMpsOY-A;yT~ccUHaZ;!yIK
z-uLC6r;~z!!rpnicJH_M6B6?9Xt*$`)^2|2xp!%0-{#(Yzwh(8H$4+(&Rl6F!#BrI
zov)p_{qVsxk()1oz>d<2w_C5D`g2W`d)M8(^nZVTig0khG~BW=O_P_Gw>O&O;2l~1
zQh~J1lAe<U{N`FMy_IA3?EHNH+ji`X1*iPZ21!XtNo^Of@?<|SE!8)2b6W4|Vtui)
z*>_h(dN?~fKNfS*D>@bHR~0^ehd2j!<FS&gZ*$WW!A8$m>pp*pLqtd3wKb7Gv$k-}
zKHIix)vQz#6BCoX#3=KBO;$-tyB^8T+K`=*k#R-F<t&R->V`KD<`*`yu(4fA&0^v^
zt91SNu~~Ob*G=8Adey4j>y?u?Z~J_>xH<FojjsXhY;6~}<mS8C{a1Eh<NExj@Qhnq
zfBayL{@^j~d0c_t{meOKajEytg?G(9pV#-e=Jx6ran<$in-+g5wC0R2)!*b_UuW}j
zM@iJvn`@P--M1w^m>e8geJ(IlPBt_8=lvzWU)<GNv?S*7uKq_$-~Us)TgfRMZ@l~Y
zhKd!h?WFGP?TLANbM?pB&vxGTn6v!n&x?tFvagBxiHW@5GO@NuKKq%D;>~q4SHzU?
zz9_HX^ZNepv`^1Z2HCB%o$0!nf2UU2?B6ehSFGOm`q}agf3I)fk^VznW<zMrtgkQn
z@7(|C_wVCfu5U}lrcKGdweYG>_5XUAbr}w`qHX@)o8%G{By?K6W$|^dsK-^6?>6ad
zuKu1^_v0Zu2$#LT*Q;~-R`e$>bJcR|{W%*Lm2}m0AAdL*Jjcs3<^8SrpGBt(oW3r-
zcj%~I?3?H{_Om>ak}j5gQQuV^SHLG4v$??fe~zF_K!Cv9xc`mi@7}vSUZBvVwENSI
z?YmD*KE3ZN<CH(mXDXKI8#+3&wBA3rBfo6Ya*?O|A873Nm2<wHrpUs|DkySsR-=F2
z*<&WhU9Z2kNoAYg_uen0@@0fj<d16+RYzKPUCJ!7F87~x`eDsdrrVw@Uv|we6FT6S
zrss7muH;PFpYl38t_8~vGuy6AU#rqDdSh)${GI9?>%y+!<K>2b@BLa=>t3Jg*tGS}
zo|}Ci@3w?T%w-PfXAG`Ou1?}w9wc;g^Q(Fv$?I(K8`tz+ee_!FT|&@pH<PR@9dYsM
zQ|<&W{kHPVxogaOF5As&Hxr%ua@WRnj~)NcocQX>yrWsS_WgLoeXr{ETBF<I@im24
zU!I$3+`eSVl1cYHJw4CNG+ypCuX?I=$oF@5Prtjn`{m{3{0!RR>s&%ZA3b`sCH#r#
z-mtF{r46x)#)bCnekKa*7MkyS_*OzDPRGn4^RH&+Ch@<~0)kz2(<gRcdOqdf?nU)#
zb-%TYAMLuhtWqrdo7~gy*WVwM+%hfy*L7!|(zrw7k1Jh81sK+N>dgG4a=#?<;OE}U
zGyZzi$3?_)a9rW!J20zgmh9($XFtq+9<kv`Xr8e5($8nRYc4I2?EU-j!OlxBQ$D;-
z{##L1X~)61<;8`DJ9BSG{{I_%XX1kg>*e1sbhJFTJz~A|_woyyEB7`pE*2~L^Kf})
z&W4Ew@5O}}dgkuf-`qN1`}E?4HM?W?_&e@g!J}6fm%~{+v+%&z_f_Bjw)-F3dXPE5
zFkrbS|FOLhQ<g0);b<#5WaRpL&T{ST{ZXBBZ`Zpgl&F05lTqb$Sm7SALwr(na*b-P
zf@|r-$&(Ljuiq1tcK>$%{@SbGaxX9A-T(KSv~wE|W5T~bKY1jLmUz7kv((vK`@5{_
z+nbl4<eHjZ+}x~wdwc$MudiN)+n;w{T*xqI#z&pz{Cu~?A1bQu{`TJ&JKbw%;LO_p
zi-IR}C@FPqQ#AIRs{j9z)9UhwFTYFDbYhM~>oR_duqi!xH1n$T*)6f2Dr;)zrZK2&
z%yJi-#(e+t#aB)TJeKpDZ~XgyZO;7f0*(xx_8$(O>e-Ye@l&aOUF@k#OM^4@r+Phq
z@O{sI8~KbAkGZdJdNG}KP0TN&-o`^$<v-td7CmBrWLJsYZAoQ^L+8)<Z)$ui@%fo5
z^MiYT>!OzbE2ym0>9^IttY$Lff!o?0^}iyo@9WqtA(E%_y`=h7o*!d^%D#Lax$sEW
zoax!~KfT#=es*<z#DUvyyM4-k|NgTxjW>H*jobcRQ6b;b)OB=v6rI})>i_)_O62F}
zUVU$aPv!Fr*^S|sGc%X{eX?}TuXpi1Z|}Ep#52ld%0$`ro?OiKq5tYl4bh5@)VU|R
z&ujjl^}N5mEYsQ6({<{f%-ZUX?DS7%ez#7|6EC^Gx8%d*3+zV(A3weoK4Yr?v4y!y
zm;?@gkaK(y@}Xz%WVupC8JU|kOwlV#oPK>%JF`Hkg5~0c)ge~w+eJDba_*D5(emIy
z!lB*!P8%}#ZG0OM*U785M|}Rb@0ah&D$LxuUrzb?g_t^TMuW@QKGGI3Q*BmFz4fWa
zXAk2?=YJ>9#Lru}a^a-D7hdzbjl$O^%=amq`X+ehT<(Ifm30}nua+gmY1giKF>`%U
zgj=BA+v7)$AK#pGl&k8?3&sPhLRWY6_pkr*-bAleT5#`i<E7s#9Mrxa;E~&(E%bU#
zrq0h)`(Uf>$73}`g);u}%@*%bbI_XG))e$hCe$@lMC9QisfANI`Y%7z`6bP|{BWd_
zM%SVR9M8`ee=lWrbqr)J2`c==m38tc%k@H6jmdVanu4_UB!0OfzLa@VM4Z*v7lvs9
ziK#M4%DqlsHM*Jt=Dpk#WxQ<pOjYjB9zS!X_NVHVckaxOKX&I?<E9;4l{)A1rrz59
zDBV^3#vFxf1x(Vrr@c{L?|u8z-tV721>W1Y>c;Xb_d`>jZ~9(&@O@NUP{^^R6ID1J
z1=eZBhKA~UZQoNn-Mgr$sPj0VLH<3PHXcc*jEsz@$^5ITCZ?T@;r;yd^mOJ6t3p>#
zs+9_FNL82Lw~68YzUG(3)x}O{l&Ti*d$Mo}k5YKZT@m%L-Mq6a;_j5NF)#h9nfg**
zrcP_tGnps-se1pXwXNkab9l<UhIP-PeC39@a}w=~|9hogxZ4=<UGK^IlJNAjl-mM4
zbJm#1zJGCzWz*ykkyl?TyFBmK#QJ)=tNjkkbLsl9qlNd(ow9uU8u5QlVXsQm&gxA%
z$hbK3p`ucVW`E_?s3pffEbQr<cWQULLhiB0HrIc6-;=mI&0+D}9%bo>55GOF{A9dK
zM5V8Wr_bNC?b=Hf2e*x)N#U{Y_uM+sZ~xE3&CP9Q?Zt~1d8ABUth)5|)2Byw%kS%M
zKA&O~TUxh0?{1XanRXt@L)X?u>-*o)&i=>U<dBo2vvK1_@x60R)-hO4KivKA^rp)H
zsi$1o|GqG_;Ck$Oc2k$NxAzVE&UF_jd&%}ZSUR=-Q$=&oa}~eTfYUdxsLm~sZcwk4
zf9?F2+pQ=d?s7n=p^N>A;@I>Lm!!B~$M2cDZT|J+MMhJd8r=9l)O@$%c-853`J%i1
ziO+Y_KOBmeJR^I1W^8WsMTavFZk(%~v+3yPi`V|S><*U^FYA{+*-*9LKzZ$ssR8pF
z%gqljSrxF<=GnC5+gdkvD}8xr^W$iW8E^euQ_D=9nKkC#YSZiFdDFf<{=T?t>g@>K
zO~p&U8HTIs+A?lr-0)8%r@HIjUAyIVM>OpIXUX*TZhgJ6`olqX?Js-Qw{Z%q#Y`?~
z=amjqo7=`KeQ87D;a6`1uC7Sy@vVGuwO#UtnNa<9q0$9@DdBRzO8EZoyZd^UWw>B}
z{lO)5bvJSvs#%!h=AL8!`${p?lrfgst!DFt^K$RplH(hDCa)BcV(yUt<e&Ec6Ms}?
zh~e{H3T?H2+2j3Q_+G9u>&uNiJZpb{5_jI=1Dwg3FGD@QmUKUzXU%->KcC#Gj*R55
z&psA)n-=NZUq9z`H2)WcWA{UX*46b|8$bK`JEO=lscP#tP0>T0Qs3G5kNj3#Fsbm5
z2K%?UO9HC7vP}+6(G0%gIazJu+_`Hb7po=TJ-OtZ^UQgCg8FNp_`h|Q<n5L6&dOT#
zY$v$+>9QqKF`HXl<bA92cM}tntQ9-5uN3&`&fKKBan8ADUS8g_#n-{@Y1Io!??7$h
zSvx@bGVX9qkuJXOWC9Y}E++1`a6u(l+El>zjw#3>g{TNOXJ_ZdYztb!P2Vg=h|Viw
zh5PfgXIS_d{ymrW<+uN$Y{v)O_4hk;>t%(bwmtlLmet(7E>CQC#`hJux5_TBXAA9}
zx4Y}>4<ozUEQ#1hvo0+06rOeGTDPHo{pnqoze(Gdcg{NdDA4uiu7ubB>piEg_g35`
zcrV#t@1iq$&X)e49v_H!_v4|<)B0%FI@zl|HwwE??#MVOroCJJzTf0~^NX)kI@;x_
zUC9ya?@}r|WcBH^jK-7q>Cu9wkHRl)Il9ZlWSw>R)rDEMf9h=v{wVjE$euKo|JNL*
z`0mDenUuTv_8*^J5&QEkO!|(VCeON)tMy{qH|;UiT<=p662ell{cpE?e5d|Yal!8g
z6qbBiw{Vq+u6@7Oj|=}+nrFt(3G0l#k~O<x_3OQFA1s}@#`pDMf&W3qtHj@=eS1`*
zBroT&;$r);rJoCfJF5fh^t3iFD*bjvORpmEZtD7l3tLmy2^{CF`*&UaO;<(V&C6=V
z_3zD&xS1~w-Tu(#?@gO$Hn(|{%ldq)CstS8bqfg*2{e?I{C3HQPbB8Pd-xZ=#hDki
zg4XG_71%Q~ElA0KI@`VaqK#J9in7C%xeq<Pu1zVQmv(HzGuOB}yKJ>D&)+JS_3gVo
z`^E~5MYs0VT&-MP{CjW7#r*VRt2SGBzde83u>0xGjXm$=oA&wGb!|}H{9`Wri>pRm
zD^_US;;WgJzdcoX@uba<5~E6gnpfvAaAkgW7nHr)m2M{T^P1&qiTkh0)ZT81yMHSz
zao*|G@trl7?Wg^FUw8cV;@y|^?4~{2e*f^4qsv#Vy}D%K!p>?-i}Pz!@5OcY_22b<
z;=20ui;wGG_jNSI_M{wnZNKr$`u#sXFMr-~@3UEd?S{|KB3Rw*jxQ2F{y8&<{ob72
zO;hb{I!qqhUK5>CzDYfH|G&xMvm`odDlLEW$v^urt$e)|cT>6au`gdz-mgiWQ#Oac
zG-u{cDepfSRcuo(?+7Z2uzzY7_j9*kfBkp$)nR9z-`zK}=JSc-KXq;gm6usBjGTS5
z>KLO)(U0}X9B$Ut*VU8R*LY@IEHGP|{i8G{`R%02Y1*F@Jmzc@c%S}kW8rhZY5N5a
zo|-QA@b%%cw<oV&*b$Z}d3>hxoTKyo7QUO#Au5q+^-FM;*nb|GWA<^8M>l!a7rl8}
zG0R)L#d4MPn?RAIjq9ss++O4*|KZWO%+;0F8J6}r1<61B|35ev!LKkw{QiwYn=W>H
ze=11)cZ%OJhF5Nj%uW9NhMOZxl1%zrUk4hQ85B4B{4U=e5FQdZH}&&Fo9#_2>t|Ga
zm_B`{_9X^~3yUX9?yun3d~JF0^99pNR(!Wx{r%~OgaeY-KsLJ1+FW*(@0^uVVa`n_
zzZ-i^O4qmLOKEK>6f9hqZE;!a<mU(6xo^F0?S1~)=E^blz}8=P=RaDRw)aQHGe)(2
z7oDoBOilE{@2tLPs`mK(`x&3!{f{WscwAF_>&omH^^n?&=T?8})$iNMUG=JEW`WF|
z!<mM2+?8#;&Xr}~>GU}K=yeoF-o|ocg9N@}aTTL?H;<*PoqI4XR(#)!h~;;dO|?yx
z_Pmx-#@F?DHFsa@ymJRLIi7yAVBY_)v}ex_<s7|^XDjPsJ!fs4!o2hEhV_=NclmTz
zuHM~dcI?!>{^N$0>$@tCEuK^ImE~yb9RJ`?ii=j7-(>G&29;wm!iCqb_Aj&hY&j#Q
zK`K|H+%R3Wn039)Kh?<O<)41@=VrdhKD6zv>Mr}RidgG2F7E>t%{D#!x#_Q%s6fdJ
z@AS9}i-p$}Yf30fT5VCZ|7X>&{P_5$@@IK>s%yNn-**`;THvKyQT|n@?TYYe+j~o@
zRi^1*D^9rX7$nW7pti$u`){Arulx4i=#$F)SfSCDo%Pu1)84NW!jIZm`%k~F<50FL
zwN87J*%vqG#a`!AToY%WGFus^-eyv~>7)Jrf-_|g3#~0PS#S8ge=uROWb*shE;H5(
z3bISG_fL2na=LF(fOq`oL-)gXht~M-YKUOEDpEFo+tfFk=iWTbIXlX+j>SbV#C6>>
z!&Oy>*m@Tf-cm}_``deyz2=4WDpt9ypFc0KZ&m6!taEEpV@zHZQ{2Y6oL0M=cJ7y3
zcJA%jkA`LoYUiAqW@*3q>a7`h6PIP@KMqQqcItCY;mzjBQ_ixVnAY8QJNV{CW9j)X
z+HUPg%e}lU+w5Gd{GpC|d*9EC<&9r8)*B~3<>QmHJ8^F7{!c$QAKv-=GPA{NS3w<>
zjY*#^WmZH8J^y^~diw*b>SJEt3i;mNKmTviTL$;@5dzFrpB;Alq}6?q?hF&XI_=2&
z`98`!4?XLe$@Wz>$UIl|VGLWO<<;xDYxv(CKe24)nd-mXeAlH<+%**CSDO0g_lG9}
z#;@aQXZef2fA-^Lu*%!m({uXor-e1G-W(`@W7@T6D*tXgS>oEx_QFu`qUoH?+W#NL
z1c=Y7j=wMXIrL=l&RXke`zL23Z+rUrru^MLc}A7Vl!wa6Cfj|SAKyB9hxN{^zUTY7
zr9PcKe*e?_=V_DD*lnaQ?K*F}=U0l%ynlszejXE>SG(6dH_rI+<pr{fk9|+OJ^lLT
z%(aj1d=&f6tH1kt`46A4f7bJ?@BN=NrGC$;jxza#519_TcOSo)ce!5M<FwE2&i>1<
zR+{fz{W|-BZA)|g{$O8KL67$rbt`|zTXRTSZJ8tJk(#7XQk5$f{CeNX<M};LZrdDq
z;=kGNaK)+B9$R`Jmh>8aIDOx+gxj2v=~-GV=i_{%sO_o&^?Pr3gq|q2H2i*|T~0aW
zXYrkn&n#2!Te#KzkXLh&-l87vyx6F9o>6L-RpuoXBV%LlvRgT3XN{!H#oUGdOB%JP
zE*AfMdIsAquXj>XQxi<)edjno&o+AV{FyUmc$?qnm$4|g{QP6u$>&#}{7>7@&f7c7
zqgU*Ev|~VC>BY+~(aw*>gvxU_^7Tr`8y}YVe_Zd_ZmlI|*L&KIr7k-AeBHu@3l~C~
zCsMN@yu!~F?>s#{p`&t&dNMo1*6rAydpm6Nl(x3EW4bPNb#+f4)jjkCwQr=hi-k%(
zU$;tYlg?rdueC38L|GUEMZlerEwdIaTo}0dNNi~6nlNqmJ{d(#&6QylUz-#jynE;8
z;lbfM+wADwyRpI*yu7`$RNs~Dp8NInb!85w@_Uu)b#-;7aW6z%6?JuceP^3(%)4u~
ztL$yp$&^bhan8<<r#+nHtT@+Cos*OE#n&pg9tp?0yGpZL4|Fc_`1|Xtq)mmvym|9v
zEQ?r{UtW1t3}n9IyRJnAPfiH#DtjBHy*JEJ;KhZ7%$}Z}w|r(wNlBTy-w6#}x?n+r
zRq3lMQOrMo{tOHVXwW$wm3#5Rg&nCYg4$o5eX%uNJT39k?!-&8*S)>%FQOfD>{Xge
zXlRa^G+#S&posTd_R!D^ufNXlQCs^g{J@;4?Kd`Pv#wimj@#hHH@7c&((5EYNnQV#
zl)gG*woBlZUq|%9@8sLfS+VNO%{h;MR9-u};<LNJmkeXg9fvYzMn>LP6Xv5PY&Dn9
zQ6PXZG_b%zCM7-n@ypC(w{NfR`H|hUu*l}ANVmD%;pKj^hnn~3S@+g-H_s23y?W%Y
z)b!xQL`6$W%Z^1Ie#@OFEt#}-$GPrB5lTO{hJML6EZn|$mDmBcCkq!b`>a?cXrRck
zwfg7QIdf!m#JC+B8$Bk4ytCwMZw_AWxA3y(jI(LJx(u!pJuPdS?$oGT&7C*zBV$RP
zWYx??iziH+diwX}bD3;=r*S20pFD4#Ut*%7+hRe_NvAj}U)D?Wu=%(tvo$j=6tgng
z-m@d$`<BDy0|s|`jaK~Bn;7o9AZ<aC+VM$8JI|CvwcH8I)~-uTRNQnqa^VK%7hkJ#
z%B;n@U4_3Zec~$STqA!Xe)qRW@85ervXoX2mtE^{<n(v7*hGENa{uygs>=kW<NS@^
zm}bm;_Vg(z=63J4PTRcG=SE0qC}jAX;bz|PX)_ydp5~sMKQ~JKgSpS0&pDMoF=q2*
zvc)tE7Mx6w>zv<kH}i4l(#M|qHr!k#+^<hwejB%-^6;{n?Jt$@s7RLU%h&iiy0C6L
zs`q@;=O0lj7ia&t;Mc$vvp?-dBQyJp8yl5x-n?nP$3Rz%+b?ooihZZf=^MFbZ_0Kr
z6LXEw4a*7RX7?8plD^*)+aC1s<JVPNEZ_f1x~=-kYvPVO*EVs!KQqtseB<#Qwm;++
zy(+oH6XSa$$E>KRXo3o-zyJA3rp{9rO;~*R;eoWxiQ8`ngfdR{b2{a*SV5V0?n&Og
z?d@vst~c*wf40FO-K>dWm9XD?i=)aPg(K!|=(&Gsd9$Bmsnel($u@W2MV@=2_V~Si
z(WVbF(Z=NyCTA{>evzPZu=~b?3Y(r|N{RdTJ*qP{4d1(GPe6!8osHyut9?Hzs;8H*
za5p(rxv^DN{=D+}yZa=SIezL^bGLmd2`f{Jn-_Pab;Xsf@=wo6FyH?_)noE9LD7o$
zT3to=qC>oFjxUm0A)F~AduUnmX4As;YIFS5EiElAWcbdc8M8GnJQBS9_S+jdW;tfk
zVXH;k4>w*+aWZ{TFyqdN)2EKk40ec}EN!*&Tg7|xHz&7Q>YfM_5Dj?y;EJZ6{;AA^
zkqZ=FIg~c6In~g$$jX4TO2$uprsd8#9@fpVZ2rxh<;~(6t?P~itni(?`skxaPv82^
zwJP;Eed0k(l+@3kKj#?FbDlPrqp87f`SGl+O0P;-*x4Vye%!lP!=`wpfnV-{({Il1
zEKbi5ec69BEBWiX$v>`guT}W7Xqr&Do=`<(*aq#NODrc{czMS(blozmyp0hjPM$10
zdeL{8Q2ySC3*P_lCm19cNnCu%V{!JLh}G8{mp6Shs$O7xUGDwgw$9z2&-*6uXHDGk
zdT&f*;q_{Tn<^r!dtR}eT*Ay!vPiJocbUTNw(YN6XH1u7^E{GuURm|EMDOc%k<O~O
zU8`@tEqlYK&eqJh{PM|@PlTVOr9XWAy4z2E;R&NvixM`91VsdNT+KWD=4EGlyEWhP
z$xPj>=8FaQ#>HnJJ)B~6VMC&X{QsJU6KRG|X4QVUJhk@WRa5B~Lc#sV8q@Cd3hiv=
z<6HJ*L(zB1O`mdAo%FS}n3Spx_B!RdZq8a*F=hH94T)Yi5m(K}E5*C3KDM{bn>UYR
zQp43u=fDu2D%Nvzmt1&q<i-laNejz(_UuS}WM@=nGTT2#<@h9CtuNU{><oLAei^8J
z61?>Jd?VLfr`?P~tCF7h%<3&;+@2V!az`bfWsSsFqpFi9<Jq?hN#7Bx*MA@N{Gv$I
z+8b}n&MldD>}A0v6DujtONr$-4sOoS*}!GCyZ7>PzsWT=oU^Zb$?ms`SYsA&HA?qg
zX6DNsyLSq|NIf1>Fhim|qD<nDRO^COT5py9N?cQHY1XvVxm`JH4U=_TUezs^Umt&+
zu-NzWv%zow6!FS0Tue$rRU%hcX%?F%Y>d#*&~R9Oc`8rqo`5U4X3|}Y9=v_pdrqU!
z#(1KPHyf9hh0KJRj_ZuOXY6A9@#|_|zfu02=j+NJzdm?BeoMUm%bzt5u8Y477n#_3
z_aEbv=2^!l8f!igQ473&*~fXmTFZ~4lP67$d#zPh<+f~fW!Bb3lT~INH9MTQS@ASi
zoSJdcO3m)n$YX~OH@|t4b8en(_t7NBD=z~?S=UF|6dgNzcJ7%sKEJkeAALFHX0ZzE
z-h14xfgL<1##?F)?yt2tw(s%H7cPt}qN`)mE*~r|>0Eohg)wl?pT}iITyHEySud_y
zFwf^$L_l@?jH|7SG;X{tONn$_e)(a6#fIB&Q;+QZvEyLEf!oK~XJ<VOxaC*m;Wi;f
z<Yp(Y$GITG`M$^ByzTW1|Li=`e2aN*@hP=)V)IxR<OWzX*)TKSn7M22<VtnMj`jDu
z1m3r`T<v{Q@yxO4O}fD=mZG<2e^|@~UMVHG9GDwme?KbpBdeo=hC#!dIWj>-#T^}e
z#~v0aoaSnJ@vGuw-uA_-wDR)uUX)m!Ni%j^EZBb7v8u}I;X}b6KYm@wV*L2=>#^gv
zyZzJhmM2d32$Gq|!m{hptMYBR2R6m7eB*m+QFcykTWJo5!=srtO|PpyJh@(fdC^4u
zz0qtRKksr8aXsp7aB+Vg&n8QG?_*VW{%rBPs_iP`S~96+#R&;jPV>z>T|RWXpRkzg
zCvx-a*R9j1i)XTmrJQVfGL7F#dea++DR(YDzcumv5(V}v&d*;Lr^YL0KZ>)I_Ft2J
zqif%dBTgZbvpPSnsV`t}zsy(oe9=6S7exW78B5$YK7Q!D<k`|o<#pzN{<uiZa{8#V
z=6JNN9rK>7ui~rTy?Zyuw)&ju|9*uz@{crjA2NIS@}-3gpOk4<$fJYOy>735TsxSw
zF=1mAhrzY=SD7YFE8}ZE*Kkq8;h^Q6PemSQzAo}~5ja@)uIA(M#F{%_dEVcc&>9^a
zvHd-dFuQ5%qQ0wpk8jS9d)2*Wg{yv;^t)vtA;AVOBh?EooBVne_0vjLj!*iXn4o`s
zy~^T^XA0s&LpR=96S1aMgUcdRy~)q*`Ld=sx6)G_tD0uVx@w$JP*#=H-`g>}U42qS
zvF#6OwRbBkmv7W)?PySFKAKtBD#>;EWN?vy==HkUZ(gaK)HtEwuc@NDxnXhN<}1^g
zFG$x2uq3Zt_oHmLtn0*;@8kEMSrvG6e(dQ@Jvyf?<{n*~R<dB#k82-YFTJ!Ve;2b>
zUTEd1fEOB1=H(?a%&~c!a-U86-n*(bd^6`TNuQParO?GxFYl$SegE9LBR;>5uuom%
z_bfz2<f!Vm6+#~S6t2Gu^tjr3Fy+wU%RUEhnz-24-zlk5xfpt0)$`E14aGLf6E8=e
z)M)Zqr^~&1O7l6D<~X+!trLFMGap%QyREw9$!3;Qnl9|eg`)I*guiDyC0;!Iw4^pC
z>eGhEhD9IWPpPsCnVntIdzsP9(M4#B;jN<^Jpzkri(;!H7BA3<;N~`*>C@2^VD!*?
z2m24$T7XG@lLS~9%bR;Nnl5Wz&njFmFVJu}@A2$-v*7KH9GsGAP13V8Hdq+Ga8U_V
zSbpHD(yI5#PkhoC8TaL_Xz)|NuragNOxC7*k%mR;(a=g(W35{mGhaCvNf@x2JV;sB
zyr+k$smHB{O}0s4k%rdJ)}1nbcTaa7y6cfwcES3>^^FRZ786}1FKQ~U64N>NSVeTs
zfiR8YUnLroR5Bmc>1NzrAUkoF1lQZv6%K3SWf%g#F6uNgS$<$zyOx9S{bdX$pK@K6
z*v;xW#1q2kw8zO%dh7Y;p)t-!by~&t)b2TbCN9&qYD&xge}}A9SpF}XD8sPGul?Tn
z=HTDY0~U0<@bay@YIf$-DF@afS++BNjM2|BxqM0|ini8tPZmqG%dwktY~JHYn_Kp?
zuAFiDQ+vnYm8xCM3f+^>KSl1+eY)ql-U~q&evx#sMSiOnUwyQ9_wL8R+xaS&`#&xb
zzxey7Qinpo6{DkVStr~}^&L!3cBrYZI@qRlYl5qE*>dLDCmXN6Jn)WT@uN21ZC5g8
z-!&-Y|H_&A`tfi5Tk+TT>P4%)*_pAw{o>@UkGE%T{lmm^;Otr6{k!T^AL(*1aWE~L
zAdvU^N~ds`c3FJ<s~^7>t(s8%&0yv1WkRBg6Kjg}-M2pzx}I9Hc59+z<LXl5ItP|X
zeoA{6&iyX7<l(!Q2j|}olDN21usyiwN6A0CsFtga0uN&PrcT%;H^=An^BXJYe3m!V
z<oe~rKC@oVY5C>mV%|HJ9;;V`cgCp)-oGw<H&goC=9LnA&b;u^`+3Pz$jZ|xAXMaF
zV-M@{N&Ra?9vo@%-IiQzwZSs=jUQ`!aJzb$%fhtpmotm^-Fr1PZoR&wVL;WdV8IE-
z#+d@r-lxOXTGT${S*4LwQ0_kEvcZJTo0oa@^ZET`ZpN<8y`f+sF*ok~p{?u@n@n5h
zn>`V}v_i3K(S{OtE_eUuA8xIfR+97T{KF|S+vI(ZznqdO^5A5HnWBcP?CP#Xi%w{<
z%@wY{pY!Uf_yzB%jAgqFs;ZJWxE{_~qrUxuDVNU_7nQkuqSx;j?_{-1d9rNc%<{f9
zhl-y>8EI~LnpkcT@J6XCxc}9aMx~(3i_^@{6#JjEJ2%6=O^MqtVBt)E?tRi0y<ZNM
zwEep#&u$i=ctzykn}_=Y6HcdJ*kczlr6xe}gvgmYiQQR$S^iqh<(up0pOmD;D`j%v
z`t|EyJ@+h1`1IZV{mV|qj=nxU!Ft(Bi`<(h`hImZb(rohD_`~O*^`Dv1va-^_Aj@O
zwB-CDk@KSanf}jD-<eB#xl<Bux7pk==VEXTwX9H@J^#Ae0+G^Xt5!uB6-qbprC6_8
zRJtl`wz`(*j;m|iCnT%d+j7hED_c$GoV(<3?DN))wcT^rSGcA4Gq&e5cKNYIy5xU8
zboZ8ka9zTb4;NXJ&91&tJYfDN^WWzePT#D{l)M_4-=xP}F3GdrIn(x9u18gPdsd#K
z9D`@1r_8o@2Ulr3lsbgPvF+Rzv&Z+|)_s?*uYBwsRwl;Qyl{zg=v0-Gyu1LDlry()
zr>X~vY)q9`*L|w-llSh%=QlKc{Ff`JbLa2BW$Bxn7pHeGE&tdzjss_x7;NwqSpR>H
z(_y!TuAh$`=$gAcVxKZ=zPW9ln{4FIuur;u-Opwg9=)T=5-cmAs=+liGlc(Lo|@Ai
z8%>KUj;qI8vdk8{FPd3ylD6CYIaiLw+;q#B4P7O*Y<zP?L)lI~bX30lb_@T@=Jt!s
zo>v~f4&1yyWbebpsUZhd-%XkK?%*RS$>zyM!Zuph7EPOS*wl80TVQK>`SJVr=eHbj
zSv1SUQGmt9#^w}HcZuSJ*}LXG`Kx{M^l4Rd>+U^gVm@7-baPV?qiuWt>Zz-ZO*wd;
zotbH@vSi7_kkU2wGkgm&G$yGmTBR^`mW0lIy~*jNi&ibT{xU#wmd_fG2dZ;f7V&+F
zQ&_daYg?G(YC%sS!{5IWK7LcxJ>GOwng43qL0jYbZfy34n3y#Kj4VoX<kPuSWfo<(
z%=Mi5;o}<bh`Yxssw?hqIo*DZqmchA-|>KqL#rYL-z2PhJ<C!5fVRNotHRxL`X4at
zou1vZq<=QQ+HC9AZ%i!K5;i?MUT)dy(7p2g`~Is*iHDE%vaqrV$;$T5o*jL1O+VY>
ziD#}T=gj!4WT|<3<>Txl51uh5DYDHy_2~V*W6R?Na(D5sDBY&LK_ubZr<C8G%yx_i
zpKuG+xiL@D5c7S!T1m9>*-=Hwu5aS}enFz5qN2@?{fCzonHh>RN*-OlG0bvx<D<&z
zkWkmFF9Tj(Q~&8=m6W9A=BRcc<H+Uf;?2`JtM|3Mx}X@{tFcOY1=FgGlA|{R^$RMp
zcJ7GpKDzL?D__F53$1g`l=&K8uwA6SYSkqrg?T#<i%py{lfj|=g5Qc&Ud-zgp7F#U
zSh&TR;f~lHw!JAkQpMKoyLMtz&)tVA3JMINp*Q!}+ox?7_gkL5Fvm6Uq?i9ekxTN6
z>$!WXv@5IfOBAc3c!D@jT?n?fSQB<j&sv*XUOs-;afuH_-pkWhu*?6O=j0MnF|i|f
z6U*eNFY=;a|7;BUZzlDHqja&sy`Ld#=X>q6dcE!POP$EnlP^maElM!bII)R!Z=n0a
zC5I=??~jP^C`%M$+pYgqM%Qr?Bcu62>GFf@%boQiZT2mj?myM`d$!`DSn01C-=$=o
ztuGpGx$OEontl7?(t_RDvzA9sJ><mg*4%jD00WDo#!SAeS3OrLbqUp7)HOJ=^=R7W
z$<xaC^y}+++?WqGbwqUkUh3R*_{P?B_Bgk49W(X%TtCGnfg)<jg=;?4*lGtq)>~1h
zwZQyEfQ(sCaB${@1&(Xqe^}4gb=_^M%E~7*%gc=gZyk`23|#Qy@t#Ku57fogmGr&o
zb$<Iu%2Lhqg{rNcTxo&vuFQG6kF9N8zMNf7?w#t?Yljar_ZLkQ4GtA8H&^C$Zpu!r
z*&B1avO-8u?Buk)$0H{zB%7HZT5@Z{^Ba1X3b$@ykAHMw{`WiQ)l!WY6?0h4^%MS<
zwW#7^_FTX4O-z?tX9ul%ysP3>@1wO92j5&ep2Zx>cRC~P)7kfTLzZ5OyK{1tA_tSB
zqazO|S5ik>U-Z7d>^m%plDxdUyuI019<7{O{?_Is|J~-7KPs8}KGogd^3(3<7e~V{
zKh<77JNNwSq6FFgqj!&ep3S}f&5y5#=A8)NJKN|(y{1L}(J$FiwtEfgL(i;F{cio`
z-A6X-Rg0}orqBGJ;O=&QPg!c1YT<s3V@p#E>Jw~VUFA-Evd7rMyYK17Uk44E+H_Ty
z&)IR~?B==hjDi2&Z@O*jem3c%ZEvPko$k+6K9Nt~FY9L5l;~x0DL|%67oVLfKIb#b
ze^~+N|L-T~FBES)b2Hxkl8RE3+<du%%l7We<0yXLx$Gr#_lX@Zl7+N)$L0IG^!r;D
ztvs}IPF0n2%q{H`^K06UzW?8K{O{wAV)lXwyPn9($=>TW^Hu8TcyWCD$v&>unum*Z
zJ32ZNu1u1-Znx5|cHWDVo$LP{UYGr(I;Qn4>w#0J%=f4DyH+c#^Iy8g`FQ&Mhez{D
zciJ`Y5P9?M^^cu1jHf=m{Oy6L?17n;#g<vC9lw`xU;O*;+lETE?8{HNqnvin+-fmb
zO_}}ji3;PZm$U!N+?@RU^V@d@Zr`&5L{5iojAmiF-T&z3^Id@-@67iL693cv-T#Q7
z*Uf)S-*-&Bqp17nzgb%B<jlNvXNto^Lsa(cvUhp@Mt+9T`;gA>=UU}9s80Mjx$UCb
z8TtD9`dKBF9r|Xe4?;wZ#P2&-+&P`IeFbQs(~^1Rd--#RR~N_D&)(V+`0#8+op<6-
z+b7dpp6#zQe|tDKll}O&$4Bo67p@57tNm`le9Ps*`}h6z2|Rn}|7f(WJjHr%N7Tdj
zuV3wq&nynwTJYuhbje$KT^$`9N{jLqpKr-jx%Da1b{~Jf+_u6eZ{=LvT?7hmcjs(v
zn6!Jg{CruL*T)21T#j7GeN(MtpR0d)&->r^_<iKAcBTnVJhC<4&1L!ao8ev=SKoyC
zWZY~z9+noKy|iRb%#j{tL7Q*a_P?02eS+ohQ&qfP*TnW!?XdP$R_e&GZ3!2jqw)A|
z{HGtT-><b;@AEv6=bd&j`ujy&v!;#?j;OEolm6$Nb=tS2R@*Xc;^*lbC;A^RQ?gQO
zI<f6=Wo;nWw?}*8SH-L<_|wF_@!i^gN48YYiSN6uzgy<jojUp0(%Un(J@T13!SUX=
znL4LCQ_nOAEb)H2e2zhTmUr4kYyJzy=Te_9d)sdG^8Ds?U-U!ST%Vdf=w_`k-N$Yy
zC}{HblfnHrrxeTY``g?-|5R|h>`z8%<L-F3vc7-sE8EJ;WxF#jO*?qrKfS)Osx?uW
zefhNiZbgR~x2%r-V`U&vb^Y|7kB6LjUJEpNu2|uB{^?Wx;>rhie`loZc(6cm&OO<Z
zoPU+-JIyZ@@7Gwfu<6D1+4X)IC+@$mJ+^I6(nWpMNkwY)du>|MuepD?v!*oX?w+Re
zY|B2sd~tk6b<{EAZT!8P%r?E;A{%-({r{%J9BS6P|9Kr*wMs-T`e2;tG&#Xz-LB#1
zQm%G4OV~@d)oz^Pd)sW|i_PpA&lWCNVPvM*W%&MF>f>#>Ykq$fo%Ob&w|aSwYP{~$
z^G5osr6s2A3|edd)A;=UZ{iEjpHI7b%y&)X57F~qcn&F4TzdO|+Q+OZ6V=wQc@*Hp
z#Ch9(LGMGE?s@zB>+`#x?2J4ex%GqbyA%IAk00}UdZ1GD$&LQ~iL(r*%ewP#&V8p6
zmHOx0d3GIDx%_9xGS^J6D#(wPUzPu+sdvdw`{GSE_udh_J@fZ2t4OQl=RXam*7UWW
zw?A^cQ?@ewU;LVXFBO-(e7|AakH)ocez<-w>$rdX=cn(l7ymfEtYF@s_eR(LY@NXW
zEA`XW9qADTZu?qlcRtz3Rb$^*V?Fgroc!jLw?X^%-#@Tt`SFie6|GN9ozfjMwMcuN
z$jddej3&8@yMO$4$6rz~ZO0$8o&MJEUcWs#Z>G29Qww>kJ2thV*TTMEylubv)z8Ac
zrIEj1-L)|lZ>!nT5Skrs`2BBn=BtOZ<|W=$J+<IQS^NI^r#7C;|MYtP=E|)<^Xw$-
z=eeuDRd_dbrq0aYcCmgnhd<AMe>Ccjmay{9^iMot>tauDdZ{n4`M0iIWj=ej2xH)9
ziw)0I=AE7WxZbk)_}i0bejZPckgx3jt#m5;)eMeo`L5dcQGK`b7VMZF&+TJU`N5R!
zW}0E;yUuPawkO5jKMVFr_t#p^tiI(cBqZg1f4O}^(uK6Tn7Mrs>rG?-Ope@W&3<*-
ziC25?@l<bOW|iJnbnWGXFUNeJw0vK<Gg3pHWm^aT^P4+9cdxHpSI;fQYQCuQ`|h3l
zs}-v5Wc+*J;#QjPSW#dw@vZykWBaQUBL7*tuQ6X8vie52okusv^zV;u%`$%0|A%XD
zvZ{Hjj^UKP*hd^|-}@I#F5{87H#x!CHLyRmW_Q&23FYd>t9&gM8t$!p_V{^+*Q}%e
zzs>tT>1=KMvraum30K*9iM0~9_2#Q?{uaQnAZ0_|ue3YA`<8{4u5(VbKBd2Z>E)^%
z|5vZiY}vP6|I(|>oReYRpZ@)=GJjY1U9`<4-@{|G<DNh7cdzii+BdyCzpd$N&BhBy
zoaOf)+F&NgV&1dx`Qv;e#R6^PYpD<RwAAWf|Hg2vO#kz-8QWS+Gkm5WzxQzGi^peX
z6*m0wI<<7w(>CR)s_Xk6oV=?0GvOUO52s;FVq(RmtS=0I_|7F=<eYB4E+sGFSJljK
z-%AgFj}iSGEL0SC>iPcL5+5Eex4CIO?E>3Elh;O5F2*tmTn_v2Q}xsWi-NRwzoaI=
zf9-KuEmy+sqnuRQo5O#ONcX(H)N|s8^-PO(oHu8iO@39-nYOuFKG|h@#33mYg+*`g
z?lD@)JuS4`vP@Me%m4WcNp-v4KYGe%Qj`mSan~%gIaZx4mAFD-%Ud~t9>d=f>1)kB
z?r48X3k_kJueZm*aFVTj-I-%DOP?&}3k}_<_TRTjwX=VBtB`=egIi8kAHM}^N2(id
zls@!ADF4BOP0ml|-8|IxM}m!4#wFua(YLhpjnz**UzO(h#=d;?I@&)+)w6er|D1A5
zx$Tp;l+OPca6ZDRYu)XXFG59|f=(39$*-Nld-%?a4LuF(zP>&awV{Dk^>)s`yC)+S
zmgi*HObPV;{;}x#I-dGJrgrl;&wFyH>+@@myJs~Q3dSz7^}clFdj8qmI!hU^6Q!oj
z7lm)w%n-77{<8S;-?@cr=A8UyGvWN2gj;&?Y<)e4_e#CLw<+JOUZmv7Kfk(;hUm`|
zc|P4av4wZ0hHIt0uGzBU$)DxZcACC(5?&lolt10d&+>bk{m!W>*+#*?kI$)J==S|t
zGmCWO@=bzziT6)$wSB>nC*B+WQF!@k|I-!moA_naKVMmT`e@YBqRquGPXDf~a@Bc%
zzOvn#>1%kXT;5stqVxnM`~TBAcxP_8dimy>*QaW?Uw2#=ROgkMe2Q<<)ni|B-qi-i
zu3N(+<N8$WiqV#og@to188$0U*x@GU`ts!m9s}iwO@*S3KF5}=uS`ma4)-upYMS;q
zY{Kl)S$DK0XDL~1xN$JyO6X1LZR-C{aNmDX@o8^h%&LznuY6yKYKtweN<Q-U(hE-c
z&r;4mr)nDOcO<UlT6LxCeA#>@Q`4<ywtYOB(X-?77JrdxZ&%;kT&ueL&@Z9uAIx@L
zvpn-D);hB6gvaW2i81elZg?FNnpgWE+3)+mDWSiGJT2#*+E{t`!^FIIp}MZ`4U&?Q
zJ9Tf)5`0(O*?#59l;h8Hl1^^-zpQOAd+Yq3rS9{?Bd4zoxg=P(QkiK|oL1?y2LIc?
zUn;ImJT|Q)XxiB)4u5w`2!_t(p8R}s^0B0Isrrv6-j>=e_hH7tntHAIyqCi!t38%F
zr{X2ybv+`m{GW60DNyEJ)ugrcN%Q{xNfRanq(y)A5$>73>AmR9d8@Uid&^H>aete1
z;!o)xxmP{kgh#6!^JwGee)=T8*fOY~P4sg4qkFIIZvEm2J(C|Qy=LkZ$H1;dA*&L)
z!=x^AipOlONZQ`>^iT4i=S#j-%s(3at@ud<Q*}Du&QH(d3yxopJuoSE?~9|M3pW>~
znC>>-_Q9=x*}7kMl4MrD)ry{%;d<o4O%eAwDc)vbC#Cb73mzZ&`-t!A=XrY1zS;ba
zk#V=Lo^KlI<+*&7;tt-2GAaL#l{_hWe3L1z(3Zn)b4%oAzJTr7Hg?Mdtd6eEnPWHC
z_nJnP>+Y$qeWjbCFMC)Vx^(xZ>gA1M`QN7Kz9~Oq`0wF6mn(*fj}&VEJ8qgQUXxqB
zu)MDO=$%-<Zu5z;ZXa$eIsdcrV)~Zzf12a@A{YfdOU{Nxe3IhJa%48`EN$mLSN%DC
z`$pTtvtMwm@6v8gxB33HJpD5N=9y-XB^1l~Rrg43jXits%$88DyZ3)ib?p|Ln#27s
zU#D^R^366^JMA?36ii#^E<eA0b#D5%2|2;t@7`WIemeIj%Y8SA_8-Z`X-9)S!ZYrB
z^-VR-QcC@-Sk$fm#OC<AxsgAPv;?XDxb!q>P0&uyA7wQ&U&eoXeB;T)JsTce3FX=|
z@q^-bfyz9^%hS&!KdY1f)!%viGuNw$iaSIX9x@DjcXp>o%<2%f>9@tF?wZ?t?paUu
z0_}%&YAOdkk1af$692NHs5Um~5bqLMyWppZN9WDG_xyZNY2`)z$vb^p(*DmmJAeL{
z<5%@xt7vPorYCSqN$fOy6!$M<=A|SJL8CvR?+n*Hx!pTWXrt(B{s%t=)BaWc6TCNb
z|J-DC|AL(7UjM#dQ>n8_at#gr;wYPuZg*@?sox`OQ-}4lI^GB#oT+-+^7aCD-MuYE
z>-Dd_Kfl?zM`z9ti}|{DorAoDs>A=E`5!jdZSD0bZHEm1#mw)D4b`ytWjxv5GT={@
z{>lAbH-882+<N40*@OLi{-1R+llOdhXJ<;8ZuGgpc6;AHr3;KND>yv)a%{h4m09zd
zH%=Tc4lCb%^XJ=n^BJ3MJB8W9KivE*U%ca@#=HD?Wu4kHJ9a+Td-dlp=YQXvGb<Q*
z4MQH+rsT~yX0=uM`?qY*l9G~>Vz)C{m|x2$9D6i*MPseRb-QNC_y4_`LS472ZhFu>
z-$U=(1Fyd6?IHW+{rOEdKYObF<3)e0%3LqS!t+^abq1|3kLOI^@?JGJKCm*kZu&{%
z?GtOP8n^zhoY~LcR&;(vT18lp-Y%`_vt9Pin>_PtV)eE?CbO=GFNwX%ZuDycV^8PF
zly|G=7oDg#P)?4$eknH1cG9cwsgD$xyW=aStq*&r{<FmB_w}>M&t@5GOr3IYs>0Q7
zwHB9Ye{03qwWhUH?y>!<5Pt9Xd&kTB&Ia)1Deb%>9emFF*@1nvZ~RXjSQzDDyJ>#y
zZ~o$40gj(|7J9DSC39DWWwYM_<sF>9PJ3f@y|y+S&h~$BccHLio3zTi(B1#Td}>xQ
zS9$qPQ~!10?c4i5|0(KE+h^0E_x9H1)F0hvd`yHN#a=N@%<?(^%<aPQOWK!s1wM4W
z_EbKwzLvd7YggvQ>F?g3eSG?1S(@*Q<8O2GpPx&wOR8VkAYw3s|K8i98|zC{c4cz!
z@`>=iGnx6r+Dzk`SzqSF{uAuyd*Rj2XDjjfspPMH-+B4nB^dOrY>X#f;|!L#vQam;
zYTr4(-S*`*U+mS6%0K$MyZU170~fJfch6t9xAXK-o!7kZW57E;_JvO+ezAtXuPI)=
z{BQ4tG6`M%Hw#SNF6{TW?K>CeFln=0v)wQIV;}2zI`bW8zw_T@_AT+&?#`oJMK2#e
zy{0I?%V*wcbN-5rHJ1#kN?&@t4_t4ce$i*c_L9usahJY5jhdjw@2~LVeCL;UciP$O
zw-jApe*d#e591QAQ?9$_6kQfJdBL3K-<S0Bh~b{yil4QjS{=XaTravv)~TIeebbMq
zOR3kCFHT>VfA-;J#j?7273#KD-xH2>U$)E;6wuOc))xH!tGVL&*>@`YZp{_@`1Zxu
zFIBVbuZhRsoqBpn{PT-<rfr^+y0mTUll+RAj?L`GkB%NqnS98<pEvo#T;-n``B$sl
zukMNcv+Z;@qjJ&?G3{WE;AK96>b|pF(w-fidLV7{$J6@zKfGAn|ER=j<=UG6f4}p{
zSP00=&yUJx*17#7eEUY3|If3Q@vdCHcFnrL(;5k<SO2YW{55Ck<i~}(Uwsj|B-Zn|
zPk#4@)8`*^Tn*39J3r5Mwe4c5sXN8_xQv2tntoOmyRqAFU3To+OBq+3Y<9d|8U8YK
z!^|VEekjGCOF18Be{5eJKkwJ;YR7M_nIJWN*@ygj@4qmdo*MA3<~#GQA6dccvaa~4
z{NK0dTVknd*z|ep>s-!f&$u6DKY#ZkjaxPsr<X)neLmaBa+Xg@YP-bLZ5vn}59DpX
zeq#3Y)R`wIs|QC!M5L)s=Z?>r^&vYW<4)EKE#b2A^72iaH)p4$FFKp{c(T8pqPlv!
z=VY~qj~^Fbyi|Pi=1tIgqz9%ZCRu&Y^}3V<1qI*S+xuH>-t51p%p=Qc)wZRa6uMXS
zS{Jl#CUxf-%iU#fm27PGWGu`CjX6m@*!jA|N=aEca&MLC>1n!)b8l~}sII<lp<nj)
z*4C027Z}US%jZ?Uvpkb#ymRNyoV&Y3T?0FMdyl3VO?_E@!D>c+oL;E?R<RjvYVTZU
z_^4TxzdQ5raC_v=B2`vaR#UedIcC?{IUhcJxF&LQTc50T5op0#>1(&UyGl8Ec~y0E
zc+AbsSsXPwPfsuZKkLT*n54LSP7j(Crc9Zv_DO1M+#OcO1BVYc@7Q6nXwf3CLt>_l
zhYmT#RlQW5<EQRB+bs3#tE(liul3%z5%KHW+wT5;eznP*fg;{c7N(U?0(^!4Tw+?^
zxu;F-ov4jQ)n2*1aq)}u_Wh^>&*xuU<jOrwFV^e*y}cj5eM|fD;$lPgj+BiOQ@-6Z
zUAW(pb#KImZtLUT@Ac0wzJ6ha>7%*_2O6UaKZ|w04mMtXxl_gS#n-A^+j37Ya_!#n
zxX=2;i4zOT-`|tqX%lkP7yF)c@cNOz&xF4x1&X_FJXE`sHBPvycb0>XkI&Obbzfdw
zj7sczG-J2UY1MnX6*x*>UFnRk|2uW}yItL9&iFif{P^PQug|aNUET9N`cSsM*w;({
z^>x3@+L3+5s*qjc_kkHw`8`cdOlm$e8ZN(dS$=schmFJfxV<xMtId*+^*sFMC;Q^^
z@uvs1yP9-PYjg!2tG>?i@0mbZpopNWpy#BnZI}L+<sN-LMXZLmH+ts$x;cScH~8c_
zPkTD)LXV24D*tcU@;e8&->*BZ{8-*mfW@l(UC1XP4gUwGc{LWxB5ssg#h(2Cwd(7l
zVtpNB-v_2yQnPkU=Q=%w@4Sd{(h-g|Vcf#%cIUYDU4-Q0+4sg>Ir2bkVd0Z-(W;-f
zt_VrZ+Ht+WtNQKHv){yYqbAIl5mD0CbTsMlWPhO_Pp2Dh$&+pMQ_pPMee&jphru~!
z(K8eK7ilcgIOTfTCnF={QCzd__bXRI%yMoVxUn(0^2fvWpRZQ0-|_w4MG=uRs#d$~
z-4@GDKG~t8J!{8(B@3B8p}_LJd!}|TTX<nlIj`@X><!Q7O`CRXL*n5RCr>7RcyQ3>
z(+OptnMSOEBAGWg@x|`mrYZGaf8q7)Lv^bYw%-<X-53(z>HTDDolx(rzH4Tzesisk
zPEd5txMwqM#R|2We?Ol~@UW@*%{kG;%FQUc`6jQve)*j{JyDbYiG98^*H7JV`Q{bE
zd)~ZI^L=1yQn>zLkBsG{vbVQB{1EQ{c<1wZqtaI)Ma9LH&t|4ul>88I?|YKCJ-m=N
z^10=|%ZVIo?d)2ejo+GPWyK~u_P()a&4zfHNf$3%II@@R^6GGYx!E5ybfb=3T<Wc!
zlswz8^i{~2G-KW9Eh+#1>F7*b6ng%uP2JmCb~(A{=KD`PpZTGdsd84>otpQJL5J4y
z#$H|Fd*#)P-5Onc{vA_c<9XqKxJ_}!*)$nG_VaeXP55mL`b@L0ZOFfGmz4Zh|A#kY
z>~r;qpP9yY)<)+1{`kM*(@M_^PptR7TM)WxHfLzyR{nD)Cg=BVOEi$E_;z!7XJ=+t
zf4~39AJ4Dl{@cH|n7?n;zDGaO-=DRc<jW(Fa<cnM9+%2e6^TbZYNafa-B)L3ut{V`
zCFq15WSP>{HtoffmkvT}epNFtu<L-%1?aJ0-LiIp?lC{f6-ur=Q{1frPI8DPGq-X~
zk>cQOYYT5anP$Fwd%aHi&2*;>E0uRY&)xC-wtaSW(Yv2#pU<m)clZ9u<g2fyE?K%f
zD9WsV&mNUEVcriSKZ;2wAL~=HHgBJK+H0omBct8-?VU4{OVoS!#~pl9czN&4f4Zt7
z=T<I!*meKbhq<~rQ8A8vXRB2WuKeTqY(9Uv^n%T;zEAB_?{K`YUitI%PuE!McN^rs
z=4pR;oWA0eZqlRk|BiI?+xwlG!0zEO*Z-w_)JM~>o{ad%kFJStsC`_@SH_f4v$0O_
z<F(8`56;Wp+rPJ@At{=3>F?c#n#~v8ul=%^-Bs&2#}n5;p7OWa`&X`Vs@XI3Mg(_P
z(udyJXVbX2-!Ixyq8Gf(N6pewZ1KkSZkeMkS6S}H${kwsr7!qo!nadTO-$A;uDh*s
zOg`rH7S-Mu#t&OIXCG8b`^P6&SuENvbwA<!EcTO~*Du(-y`ra+{%&5#Df9j3F7Drd
z>Q=kn=b(??IX|YW=bWk9BD$}@@$vey<hUP3%k}b}T|T99PrJ5P_qoZ7i~HQ1&dJ`;
zmszxKsq~8{C$<GkB*k8NZ`IBG!lG;f+nbv79?dH`{&n{!$P1=zT-JQId0FMUV-{A=
zw&z^j;u)#t@-MskcmK?@X+pxnhElyHmQ_F8R;`}vfB&ED)pVabmX?y-2P0R_oTI*M
z^5Xq6rSell*?%P8wCmG7ulBu0_O#h9je9?2o(2mWF!XpSvKMTBlXP=;+Np1L=e}>=
zds;Z%Cj8Xq*{3QNe-pYt+fwJnn>(A=?z!<n?~c`9L$R7_4mX9*50&24?wj=XxQs~o
z`}a5h_2{VGtULYfm-ZR|+~jg+n|>SPS#xjqeR3^lTes_Q%ockOKc^QPi?_RclYViN
zUs-A53h|T0@65wa9t{jW=&|~r)wDb6VjF)ox`>=(UB2Q^^?PfZzkhyTk=a-BHnVSs
z_0BhJ$5*=fWxceithPDGQDP$du)>}D_h<P<MlWoCzbuR4Iedpbdg8JMUG0~*>ZU}r
z9pClikN4X0-_t~v`IvnA_U-Z?_5Gdux75#7J^J%c@>x46J<&^B7mMCrqT|*wGu8Iz
z-PQ6;<r6&~{Hs6py;F0}>Avtyo#AJB{N+!csBm3h#FDh?t@6A%8ymMRuRC;HzUTP7
zlx4;DxsLf2U&uZh{&~U5<cR7&qF!#_{^_2Q-kKWV<R2$>tMtb86aVtq=Gw1+o-aRt
z$;~?Rosx@Z&e<~W?R=T#uRA*bd=k;Awb}LmvY~LN%RL)kzJt8;M1?2+e757Z#Pq2}
zyl)bp<k+1`Ojld#@0;?az<AX`-`fw>^y1Dg(Upw6!F%?~m3U6Z>8i@JeP&gZ-%qu<
z{?Yzx+UoVM?(S<`xc&LWx^K#>R?pt?_1;C5qc?Y?FFMx#y6nS3<>ud;bp^l4-hBV>
zo3o10j_zNvZntx5d^6Kt-}}7d!jDf8y4~9L?(1DwXtL_eOMJ4|GBo7soG0_orf05L
z`_$a}_J<`R8<re7b*}Ps#mBklEedx{6`ucRs(F0G;alfpYPVetUwJ+8{uHx$O)bVb
zcP{(>vo-UXadOryx6{{{=lGsi&R?PUXrJ;=U;E#RLY#M8|LU1O&8yq_imz|_-w98q
z2&tV}m40Y*xuH+|JU7n=`>uwrsopaCRpjTN*KSz){JO|4^U5G0KxoFMB39{Vkt-uV
zBo}R#Q!anCdQa&guVVsB-*5Y6W4-QhU5-?+y2QbZ=l?dQ9dLNmQe)KkkoB>rvFp8Z
zmHo-TZu3vn;7X0yRkAWHFz{e2w|Gr+^tPPDYj4~aKU2t<^(_0w!=jx9R<RZ`d@_9O
zva+&svSWQ54_-EkW}EryRalaNj>@^LqglPmdU|}_N1Ki&9ZdOTR&#xJ)rnIR79Cvk
zYWua|kdP<UcW>R&npu5d=DF)96t}1^&zKNrxl*euiKAnAeT}P<=4ltzC%l`Oo+R|A
z&Zt|-R66m1ZP&qf_gx}QDwa-<U81?o<AGiRKf|6?r(*XU<SjR4_;Aortdr$kAj7u@
zXJSLIHl*ELbWr{8vP_EuzmLbN{5qv-R>a|CT&{mZH2!eT2fIo|sT!l1K6V?b%{9+<
zu)GW8{8lh?x9w-sIiUJgc>3wmt);WSU-az1KWWpV+2Yo&fdT7|X{)&%%`joh37RFy
zd52YGpLG7JRS70i%*RR}u$TRqxb<Lu-5I9G!otGBOcl1-*BSMNIPWahslKi#n5UT#
z8tNRi-ScsKqp*4Xf!FqXXYPKbebyt=O{Jh;$-;%H#^A=?Jaa=s!%Mqz84lS>eE3)T
ztsr6gr5=w5a;4LMcuCx-4hUu49{trZcGI`UnR|cV7x~^^`(g7trHKb@xr{4hKUkTR
zOjw;|aAWU$@dNk&?09*a>j(2a``O>+C-=mHEOE$~CB{@y>+}Ea<BvZQ^df&BICJl-
zgqzmE6UFb88mq6QH?;|Lyq<7fwLpGGc-%n-@de$BeE+i=btOpGeUS$py2Ie<>gTe~
HDWM4fp|N1P

literal 17097
zcmeAS@N?(olHy`uVBq!ia0y~yVAN+|U})oDV_;zD*~R0<z`(#*9OUlAu<o49O9lo8
zwj^(N7l!{JxM1({$qWn(oCO|{#S9GG!XV7ZFl&wk0|NtliKnkC`%O+3F(&2{%>QOH
zFfd4#xJHyX=jZ08=9Mrw7o{eaq^2m8XO?6rxO@5rgg5euGcYJHc)B=-RNQ(qx4a_6
z_4cv)<vG6ZTUD-HSiMI{A>m+CSJ#)gxAVKYc&m?IZ)#dEy3{)~K+`NFWK~0hf^Lg|
zhsXPy`<B<#FPSjmf)m5(d)G_X-L&0pZET%>uJ+yYndxaQlO_qp28!&7(-&QN{q@q|
z<$gaNH1pg25#5k^SuG{fZCWZ18#7xo<4&!_N*lRb+w=Jk^hg>T%s#tf)vIhv`I;5%
z5jtYm*2nu#*Nc7icHgAbnP+F4U*4SV&rtXGYxu6x*KLb5zE0Y&;+b=EQ|mn2>PH0@
zTIZ{6<cy4rGVbmw-TL_}>*kwh{{8)(d25TN-t_LgySqXs%~-W6V^)}3T-Txyq3dsM
zZa#VTZ0hN0x;yUX#rJ<c*k0VA(KU5_b91w&mzR?Oi<g(zE7ku84mj}1*>oICU{J8M
zl=PhR%Jlz|B`PVA%QkG-@M+Kf{q~ZQk|N^b;nwl-9GskrrlwOTO%iemOnG%>B}2*U
zYrVYEW>W;WuUb{HH}2N<{PW)WdygD!W<PoA)S<^8e^kxmx0|C}61)D}E+^9v+xm4s
zSFehi8GrQk<)`r<cPel!|1)n{=G3oiXDwf~Dm^AF_W$&CuQO)3<>l#>?UuE-w_oNr
z_tewr@#orjrTb?0GVrxGCm-+o>EkM2W8wc~X=YUKXYpBkN@CZWd|eavT9eb~dZ~!(
z%8BVm>n-O$3H`c%%Cu>VG`J?Igw9&KX^}?Bt1F!+C#wg?#Jo|~1Dg=)sP}c{9uwcy
zW#{Mh?J@B^oM2FJJ+_>2L%~C*J#qP_pT8aXb=_@;y7E@88*j@(LXY0RzyI2vy>a?}
z%Y_$T?6{d@r<oZxh4(>;)yY$*9=+TB{@JS4>$Hre8M(N)w6u%WG)i}RoH}z*x8sDH
zvciIjI}#>SkG$|`S}PWR{_DZ^;1!*#%$Mq%PM^}gNFzdLnw6%$Yaj<V_u}~dbuMmh
zi(XqPyY)Oct-oKz-hTfzt2t}VsT-?nzq+s`Gq~#8o0E%NyDyaPm1?Zq8<&)vyz|?w
z?8u!(s!NwHRaZSL{5f1?X^?5yr0~qlmy&|h*S&sYQN^=7<v_x=ppX!kz%spE>x5st
z_piv{sOIW2OnG`?XQ0ia%$zKFJ)xdnNxM{|a5krBpVBKn-p;9+_50C;={IxI4z+Nm
zPdR>PXYuM@m3f+#D_41?q^LBr@gB-B*;Mf{NyIhrKm#L>tksnBcE5Y(%$ei0`Hjzs
z*C8&EAt5d<E-a6a_dj3UZ|5{ERmIaOP((>dNx~#UfUmvz(4j+8sbRX?&89{*?>Tqn
z<o1sj1a%H7E|Ilt(($@6*Uu!DJyw1Bf`&VXoKifOgkDx#V_h*r?yS_`*PK2dvJZta
zvlrf7dX~eOQRBvEV~b7svfbkUe3pq%P<r|KjW$omTHn|2pVss5JFDkE^}Wo@^U1+=
zO9NJap3Cy<<MmzZ7XSXS^xyiwoVEK`Nro`?A8)>!XTSK5jhsKP@tUl8TkpP!TR(lp
z3XNm^^8JS&KDg{}uWD^A9eaJIdA^*oTTjBDA0N-mv7G$o&6`sbPX}M!xyrIq$t7^f
ziWMC{KR+)%E?aJpc!(wK+?>cvw?1j}zDJLe($3GT^{T&pa!Tyc>Ypj1D|mNbGB#jk
zD}0e5H9242f4iUTi{k6G8j6Am299xJ6?Zi9_;-I(zqqW@c$=)>V(-Z<_4)5bonO{n
zU(Ayo8anCpk5<(SyQ<ZdrcIkXo&Ueo{P0}!Cu<@%pVP4SoMa%?YbxS(_0Q^QuRm5~
zTw21Je7sN9*m$yK@v|wGyHEQb`SYjdUj6^tWBu~yZNJ|+Jjb%w!_#x6&f^ff^}&{J
zc-feD?%e4!-)?TFuzJz;*z%93_4i*`A8-HZ^XH#G9`{dF;S3bX{#$$Xk3ZYaM~5$K
z>bD<vp15f8%+e|CZv4;fbE7U9n6*7uvp+aFd%IJfSccS*BZs%e2b%WoW#_-BqBzfK
z_v852%)&aoFRlf#l?2&WPh5F_`9qgu_M14@Mz>FVeDz}Kf-ZqaFPP@l<o+!TU7D@Y
z)u$KwlkaKP%Ol=tIfpvJ=RaAca3XH=gxtWrJD1gpsD-md@1JvYk9=_9ynuNLc@F0{
zmS1@PsqIH)(T$H!dD7Nu{+^f6wea-X=AA36rIY@;eh`_k>96}V-N?g@L2Iij@1IQ#
z{$Uz(e<$NK;m?L{MJLZX@7U=c{fJ4W;Ms=!$6jK(_kG%;|6dn~%zY9nXc;H&Wb;wY
z{^MSau9UR2O{K5H!q&(2DsWuoa29bDaea80-+oE{{e3BEX<@(jtV>Hi`hU~SoHH{F
zn{VgupPP8NEifeH2)leu!@&dxftJbtzJ;VEr{49?>6k3bzPackE93UluAf^fZf(yw
z*>|_T=(6ftPHr9sM~2Cqhm;hRmYvzTY*odcIKGspbBx~Ce_FVbD^AqmfW21V4Fm2)
z@0OapX4wCC%S4|3x}eOOKLHp0e$Sot(<Rn=j&@U#r(F_rvCee9xkqmFF-}cOVqKKK
zr(JNmdIGC~+ojA8vN6)y3%M7T?0=s5ZpS*=jsKXo{c*Z;EMQiN?2*O(JPSHk{^}Je
z{VS1|w`Nj&O_H5rOxbngJH^iIkN$Xj*iP`-CgQpJo^ZvhdGA^{{`c(*aO4UV_1^o%
z(AQbSRmF4FvPoK}N_OAXiQdNJD4@l;_*I}|#_4Ighu@ZkU)!vd?|XTI%1XDH>7VRb
z99PJ2h_EcY_2R|Ly694q&D-qij-6V4;_bm_p@DyyJal!qS7zMWpcuaYo7~U3gAe36
z;>=%2nPl<lsZSA^6dll@sPbgbk)}Vo4=fH`-~Z&owsMt+d({kfiZ7TpVPC%W>;17O
z{j0eHwf^{t?)Q{9xcYs+#XR>{F=~7NaJPo;Up(KXGW2I(U51_hzFpI74(<H4^19^B
z8&1z>TM2G@oc?L`v(Qi4`S#}hwb!yMs!jz6bu6k)uHQFp-NN{2;RmVj->6qs$1)y!
z=3M!*Gn=z_S6kiN{fV#ow0@@49OTwt^JK<S?f$)`>bgfh)f~y*v9_7@#N*l1=Re$h
zIPb}f*%c3`G9KBoxAh*c+2$`V?C+PYEAY9Vo)f}4G2}_?)R0xb?rOPd_=o1@-e0M3
zKsfZ$Ns*hKYMXB6JnOT5w_wYbDOXpA7oXPMUhw^HxpDF_9v-&Cn$9MEX;#-(?eTlL
zYa*|RH`|u7>6?<iGm5w>9yssi5g^bZ^n<<eCcnS|dxl#vOo6-`cH3tBPix=%F5&;7
z=as+iF8%Z6x8tT9E04w_TlY>{*l%-uhFRU5_18|`o$NA^EyGpj&g}3qqeYU5SO0Dl
z$%#AtPl$J^!PG59`!`;^@8i&%)-vVh#+*Nk8AN5%Ux}4XW$-ZZ;8~s(R(ZR8(o@#E
zbN$yX_OdJNY+)2Q$9ul!z?#U-Gd`YTIQ6Ac!Z-QMpWx~fonD8|pXcvC9-P1G^y{xl
zTca+TtbH?&hvUH0qPY_{S>6pa+$1g_&~W|r+HaAelh<uK{P?4QjLaEkejA6vLc{la
zzsp&dy?JoA{JyG{)vW6Gd$+goe@Hp?dWqe7Vd<Y!#FY$Kbn0?+wVqD5{r&RhD$8K@
z@2M9i<$vU0nxU)Em7v|)u)v6QS>}rm??dAlc1=#+Uw`<|{r!wCYdFIT-v=vaCi6U*
zbo%j(|Ih30gx*#!)#Km)rTFYbmz8FlH%<#Y(#77V5~5}3D5PDRsy?fCosjsdb&IpL
zy264FHrCzAx#}Oc@Aym2-}9C&e6{sy@EQ5+?Gu7?&uy6gM(4eK*_O?(GNLjwHFcx5
zJm|Oox1jLxvGk|USMhc&+K_%;E^2F*Yi6cq-1_Nexwkgd{jG}HmJ^xz>gv{ea{cW~
zmZ+@T@u(~6x!1g$4gS|lo0^&=jMI3`X7~2n{o;tdZYb3&A|_^3{Vm6>N8;d)!pAc#
zi=Rmf)~{XMyIe|gWmw?R=K46bb#Hh&@(&rG-j{ZCNyV+>E}xv<uk-m=X6xwKxFu8I
z;4%B{jkYY4zCTds>NxhGUcYkYtV{Ji;W_*B(~jQ@DVi(Qb-a63=$7oM>i(je9+;>p
zHgz~oo4EDy{y<UIwOspK%J)rS)4uGX+UITEI&JP5OP6)-?$fi2|Ap%Y9G+J;foYb2
zm$P2J{Gt5UTn1))rj#`@Xi0kRtoYJ#`B}2Jx7K<0B_+qhb?&5U|LzrWINZ1Pg3;;2
zx&L0uv9vd@SfO!iYxeQ?`~SzSOnc>}w@K&n#$<OVXXleAPB5HOt1o|jt+!X&Jk0O+
zYHc1iX4|SS4wII6nU<@iEnc;%rM*2kCgw~NEBC6Ozg0Yybai`|dQUHUyY;$|oSdJd
z<3UY#X@4t)f@Sq8Co+yGdrX+f$^O0I$juq<_kT9<%hgU;_;!|Xmf6DHb7F34O-#IP
zwjueu`~t0(V=l@6%-sbz#UA}D)}3Cmf7(M+JDt?y%Sv9Eu<m=P5%)VIWUBDYntw-(
z*Q~n5zbOCN&hm8&S{#^q8T{)0SKXF8-d1^O-}COf;YJJRcA5#_OSz@nDxu_L$egl1
z@u&RK7cO(m<nwPyO?$s<((T*q7al(}&nQxuSz|llh8i!YvD~A{ozb4fe~Zr^TXo{p
zDJ27g3A6Kdz1%W+(Rr2kd-mA$$y%4~5l=}Il94%+yZvt2xvq^#K_y{fVQ-tBseCqZ
z4NUp}@9&$No7uaM1}V!pO-l_53aWTMw|qjX<m8hjL7%K<`oCFo=9t>Ug-=qSB$-Hj
zsJIhh)c>K{Q7ymLW^()c83#%`c{MlO^gMm`@m$aEm%q>JoMI*8G0A0fNBzdb_ll>y
z7pw0sinN|(p5?G%rO(zWa<@+(o5~%z?Rej^VB3r-ldT{7f0engvX0j{y!ODY4YPNy
zjaJxUbo19yp0r$DJ>!=pdv`6;)?a_Cp<&YTUH@(SxBoZDdwFr%jgEj1A_XtLo9e{=
zkY%4MC2?M7{@4H2eBakP@7S4MEflpyS*&%^8Rndu`=+I|AKSmOT0~qtI3}j%-Y0z>
z9UJ}ASFX6_sXy*r)e>_1`6QLZtx^8JDzE<7I(cUAp>uPszslKG85BG?aM|zFz1cIJ
zS87b2Jl)?TK*5obQKDq-x3jYfey<R8X=f>Za>H;_(dWuf_3xEW8@cs&`+eN_qo6S%
z=hTdq=Pz1w7)`S~7QA{>&E>k973DvE|K6N=S#90EUs*-P#joc|G&eWj+>pp@Tm22x
zD`;Dv|Mb+<^mm_`GDKw$UQ<4vam|2n^GT0}`Sy(e!en-xoATX$QDlzEqJsyf+5Yb2
z;8oN&p8T!%(Z9RresSk7zrwTp!`3eTuRQkl_93CFs;aFQE?lTOZ?CDz>3i8=rce5_
z4fet@w>B_V8*S1wiR|d^Q?pZJo4hgSz@67$C(WDd+<CSwO?zSX<BFQgn`%EioX<Y{
z?6Iri@n@I$&c3lR*?sRb-7clV!orx^uUAb&!cAMl63zG|3?8hxwzsTmugodk1M4y)
z*3@w{b)3#SuJgi#kN@cXlrOP~@-;u$ou{Q9I(&Gw?#1BwPa*;W0#<8#2a1HPkE<;!
zj0;VimU`=mOPIanoAP67EBNhxeE8mW{k5vG@#m)L)iqTUY*+d{dD_fx_oKitz%%Y;
z{N88Tyz(^`=gnvFmmWX)=;4z`XOiNbe?MsM-}BFG#f%m`^LNF%HHP=MU!4guY<m^M
ziMrf(OwWGL6R`X7;P8E}Me8|hJ{)Y{ul!`nQ{&ogJ3*?xE9*BaUU!cJt2m$2v;QY&
zyf$bQpx*w|s)|BKGerUC7awngsD1BqSn>96tBsHDj1RX~_vB>l+3|J9jkgbe=kI%*
zUvVJP|BRS{+m`3IX0Ly`=^7`CG-J5j$@-ip?fG?S@r^}=VFm(!UYL9gJ!ZP{XW+H2
z=|A7|Th1x^YkSuB+x+O8Qv>%Y%@a8n+HZR@b@uWPzi!!VDPD0amESM9BVF%&?S|${
zS-r_iE-px~+;P?I-|tuYS5N=fcKERP@)6CRP4y=x%fEkIan?trueS5|q3IvbT)D6D
zu~NEbM}*z_Ri|E;7#xc`{NJ{U+wkS<NZa?^L7(oNI9RylRh8=B-!jj(vYuQXC%UC*
z>MkvwsIRqi|GWKM#?U_P<GW9XLtia;sCPy`I(+Z8T_JzMHWwybb>a*8>2rPMbk)>v
zf99|xS6whlP>=3fePMxR<GZ;`Cw?Sq&y<sny87wA(25A2jn9OxPW|n3ZCk>lm+N-E
zpZED;)8y$Ae%l4jFKcA0uJ`-j*VFZM<K_OM7w6CZ5y?2P*xM!EaL&W<t&0nHux<(J
z%lkd6)%*J7cbEFtn}&um1<9)f?yH@xJo}5Xd%-m=m05*%UrfAnK~3gn-ITA|=8DYg
ziY_m^zWDs5*WWdLB7?n7ThCiqzlP)Q{N$?o10SWo+nVk7Gu6KPpSyaB^^2=!9l5W$
zwZz#>%wIXOXG>|9Jy{s0y+1}(N@>TFX$$XM+ROS-tsv!1%Gpb<e`dTnaOa_1oXnil
z|L6VhQI2aopvV95)QgC+eZP5(zgr)?)mI%a<M#0P`OO+fi~Vw=cFwB{{iJm}=&42J
z+%4<AJ?8K0%GPl${5#pd=;gerD&}uom+w&UdAB&{PYvJcZO?y;`F(l#=H%;=2~M{z
zm^wZ`pe~(tb6(uxz(;I79#vw})Bl{=lOr9J;k{1IuBAH9_E@)fP(i%O`8a|9lC}J`
z%G(Y9e=YaCD1EW|ib2%u&}~<KY?{2+I4<SpWB<#!pHKh!zP#92y42lh|GT2X`15=%
zIWgYz!qO(0zQ4+rd@B8oR>;bYFJ>kzz50M%a^i;W^L9Uanq7@H#<CgwnpZew&lkJf
zm;R}oU(bHF$+hpvtc(kGY<t)qMYk)z_jm5ea-K8cT-zG%4dRb7U;T>CT)VgPg|^<)
z{_^<rPmb!2vTcT$f9~Gc9G6_$_Gq_u?TYkITv-kVt#8hj&UI3(^!Wd^`jYlNv7D5j
zo3@om-RgYtR8!{Sx!18Rci#Q4czpMj%a+t%mvuB=9JspHCa3B-_cobQ#>$$VJ0xZ0
z-qkS9y5afi*V`#}SDMdF-2W+dTGxa7P4jeJCp~+=(1m%4@D8&Lw&o?@HhepqnxnUW
z=I8yfXZWYvIGzt<%(*%1(7#7@TYNt}UVca*>gdgzyPk2Zy=|%(VbykHjpVgE@t(!6
zpD*-1UHF9O^{%Dg=G@)A?@@cRnaP5J?_OcDwG*SOj&7_fT=jn4mxXm_kDWU2zq6#z
z!{PI538N2QRwf)4c2i#7?2No}@haEn$1IyS+SSCpSkZ3xyncRoV8yN`-Q&F?_a_8w
z`tfeY=1cC6Pu=leR&<h6?KNj~`PIutr`9P;-w3<WocF);QTx=HKeoSfEiUCZ{x)@5
z?$1)EpKTkKxkxH!e0pN?YtDr5ycMDsXP@4u%ysvcTe4TL>cx_tQ0s33H&+Yup1Ezf
zg>P|6J=f7wl^MZ3DtD^nopn=do$O*`OT%@q$0*yIE<cmP9`H70+0BpM9WK}Tf4}pR
ze>Hv2ltsxR7pMN<5MEN9y;qav|F@n!yZIUI&pvqilKteyY6BDL)7sx>teQM8?!HRk
zx9GF;e4}*j^o6Z5q`Jb69$cfPVWqw{{O^P;)=K&0$Ioomy}LH`#`}7uh3Uz6cHdLI
zxi0iq^Q!I54GWeUy+3JwBj$C%JcncJe0pl5h3;!KPPmgRbJq5d-R<5jz8(iI9PoZ+
zZdq|&^TUsn+^j<>!3T=kN~b#cXWZVj$JKMqGjCy+k0$(X@--HLT5}bz9J0Sz6SCy#
z*SnpDSI!)h%5dV#^_o*NMgICb)zi-$FRL;=l1iAW_ila&S6`4q%SDYZJErQio2gt<
znDgb>)e?sl>sQX_irl|eS^0(imsdBY#&MQyTkpNLG=cHJ?D<Z78%z9nEKbTXSZ!Ne
zeS-g$!}fQ)8h6WCW~<Nt>#nfTonMG|=9_bS4CIbozP`0=ez?nLi$7X*3T&5`bjpAG
zB6DB%<>8x?uV*qJzG8E&epiz+?=Qp5M*{0I?oZiq!(!H!cW(D@&wsKp`q9L$%O@`{
zdO1O&V?ndwE2CfcFD$6pvFBA?o%*}?;rx!-Rvp(oq>daHj(^(0Yqm)2&4cC4|6&SX
zr@BZoSWeR09^>lLT3C`~E5cscs<lv8sFU;4@$*SG&ws6~yd61R%wfA=ZDzopsip2Q
zp?2%z_C@`$);8arVf?8q@8zA2jtc=w(%Y6DU)%gbG<I9-?n(6xDd8ruQ5{R(op-)?
zH|5<qwI$BhO`pC`h+1{kd-k=e+;gkeU3sN7LFl*PlJMX|&Wkc?|8nGYolQKvK64*~
z&;3HXrjXJ*nfDFfK8^Wxr^?p+P91Bb(StLOADoMi-1Exd+@g?Y`dQ~>mE+QGd9Z)`
zqf+;?jJ?x5w!^lCWl36dWku1~&D(hMKYdx=e#7WDv(xdON1f*E3vO_GMD1@|B6fY=
zm6P+fe9E5mUgl8n`aXu^Y42v5e8015x!8u!&z*VX?)L2Qo!!?y>&mSweBbn{=Jt2B
z7rg#(e8)YeiY|*?<;vP`o~BJT@3!yP_>wXA*gGHo1<CfCX6r-=%&2K-;ub9~P%B+~
zQ$ptVzvv?CyXQVTHwomr|0umyT{HLH*OQ#`=l=AqzhV1g)#`Phwzly<mk%;AxB1O8
zx4v##`1N0pcGawqzP2v5`WfHve!E{Uwn*M9y&fz6w13XJJn_|W^<T@ZuUB1P`R=Q&
z#G}Le#nN-k{)y%r#NVy?`t6{5+&;xDc|D#fKKtsP$?f~LwT1sV$9<y<c0V38`&a%1
zO;W@Ze6p&!VXk|aUB2dr^rY*nLRZ(UeF&Pp(7mwGx&85zr5gK|dVt$I3qM&2?phab
z;xsu`(ovu${5ZROjfHJxXz7joo10owPfrt+l&n1H>2ld*)22-lHWdc3yGlOBD$3V<
zcz9;&^-D{=XBwyTG5%9y*}CIXO|D7U`X_1}FM<prZ~pX|VQ>)AcABZJ-+$aWB}GN-
zWbd4POka#mWM6k4W^q*0`J>j<++4W(u0*ff{m@Sb+2#G#?=kUp7IFP@$T@?xReS-L
zQ}6UyB^;iUE|{DxZw0wH>S6bW?+4lC|4F7j{@J}nT;tO&LvOY-i#XCZ%xkEdcA6=B
zRn#-{;5{6h7Dj1F^<;F32bx{+(7$%#*}5r0x6C>JoGzbq=u(i2Z}P)i^IzWGCHnvS
zKle2=&A!SP3$M9TGUfjF=Z>+z8X5LlyI$N}`^I&}&OVJQ2I)<2oUV%=Xj%4aVOH9K
z5AThnU(es{!m`<Z*TMOB9_bu9!#Kk?jAgs*-C(c1>pGP<Dsq;d2(#Z)CcWus)XZJE
zOSdkYb-g*oBzDTNe$Il;#ye;9oo)JOB<pn5WRD#G{rul^`#3-P%(9%F&i?KB$)%?&
zlaC0f=|mo@eti5&_DoAwziT<R$L7f}*Zr$w`4L^X)8@%Dalzazm!EISxMjk-`hRr%
z^^@oH6YjptX>xYX6srElFEsn|>Fd!(`WBU(P3(&mc_Ys`P3jV4VQ*TnFw<z4T*Ioi
z2OrH`0uTM$$ac+h>hyJ)FJ4*xn&TpQ(4OgT3R5K0cEP(!%_n>GPQO^h`KEF~_SKm9
zs-5d!=S-dcs7PtX84K=D25hZYX3c7HE);#1%)@msbVk3W%9}-JU&rjbc~19#phZE*
zlFB{*k1A@1rXD|-^2oWVGWF#1JGEy+ZS3k9gOB$nKAFRMM#{7)P<vnE!5x7-|C3C)
z+xVZo`@i@6_x$~p=TfKNu&LScN~2IWx+r`9J)WSuOHyuXY+D_{%fzcROF%^Ez$snJ
znlJav-tAPJHLchAb>|Kf89nI^wv?L=@BJ=*d2{2#n$IWnbsk=wa^~~B_82{J*4Cdp
zV*FBW`X(f3{rk7`N8~3%DcKokjl@nny!qz3VwGrUr;|wc2aev4719e|KeC^`Cu^rs
z!8N|(g|}Y6{gxEP>h>Ug+Chy4(-}5(Buu>EIx%Vb+{I<mZ_hk?WxqDrU7%OZ%lMLk
zyUXJf=T?|*O_yCgO^eSu=)h6KyLr3MoVv4Bwdcjk$+J{1Y22zh$nkostGDEhrN+YP
zHHWrXs~Hp>)3KAWn{hF|_VA(I?^A9}kKbHyCBRKD?%bSzwL6QC`K0m4A3AY9>_ecf
z#`-5)gr4PvRuo*h`lnD~_7|rYw@g~pc$+*=6<oBr))Ov#qwY-elFG_o`?6<l)S4-#
z*)DNo_sgB-HIrSODwsBh=O`N)wM>yQ&$O4ddAT-VxA$TlUJkAY4pD--kDAZ#jGMLW
zVd$Ny>v&?XpFDkDRY_^mk2c;3DzcLk_1PjFr*#{gc<GTOrgqv`f@ix@S9_tQ_(MVN
z3#YeNTr4q;%YU=KeNTz+;vDX|k2ON?*v!~8N9ZW0)ECbDvn?;yRhYE0^XaPJ&t~SW
zYBhQM&+Yo<b&fonFPSHqo{U%{=2T*QR(E2BOkUZu<w{ixl1qd&&M}^iUixO&#Oceo
zusCP1EX`c`!_>nfH_O}JDd4c0_}Y*Af1EvdBCf7x)3O%M>keuAJbY&S+%tW4e9)=0
zvbT&9k8angcwpDI?#DFO#qGv5Kee9Stzu4oUUTX=^Y6m%*6%+a+;P$7^GEePW;q&@
z)6S;e`+xWB-uJZ?ey6l8_qIG`*Xh}z*XDdv%hu|Mpm2)AMUfDdGijWnA1Xp`xq7?I
z5<XGJ@g+<C+`26c&(_^KJ!9Y5^Svq|y-ka1CK=r+*|SB}`g^*Nj8H|?|K-avr!HAK
zHJWX%wb}E-@5L^?{#9GT^U^!{|E}ZeRU+bNXK!7x?8z)s?=?!iMFIuQ0X-ToI-I;y
z4lnj7%4gs?_S>Q3(1JD2(`;|ZN=jTgP^GHxdpRI<YEu)_pTB=KH8d1dR9JT3^~=c6
zn53fE^*sJ%=W-?e*ud4Yr#F>ty7hzo_1{Sm>7Gep$J9zfpSIs&u2Frr!p7dZ+StQw
z(;l-$kD4{P3O=k(wk{6de=K%R|AP;g)KvQZtEeb>8FjQ}Jq<W6z<KhOyQi1Xvlnb4
z@>T)LTaO$GtkGC$Wa@5yAUMYUp~9+Vi!-H``mu(Fp49#H;A4fy*`fzUJ8zU<X*>Mz
z!S^LeZ_2D+my2Im-`(n8ztwo(cKi2ru|4nf7Mv)nGhbL>A>%RY)Z))}sRtj__53Q~
z+`N8o)9!n}C-AR-dDL0{%!9Sjc~9nA7FQ;oa1hgpIB=Mm{lm*i$>Q5j!qx()`pDY1
z1<tQMd8IfYZfP0+X0ytd_soR;KM<(e`bGJI(&K9-YtkfT8*c<CTQR9kZaJu+*uj)?
z^W`nIX>13X+C38<%g=m%g|G7G&J|t9RC`sGY}t1%-P+##JJ|1~d~hi5+CNsSXSFSx
zy7xNcL5<7HoQ?l&S#M`<s_1!QQ_u0&%XVz(5Q;WbU3zrNtuD=tQy&z_9D94t&Ea6q
z%&wD0vYz{vbzN0XHsCp&Q#rrk!1D<z?29s1U;p>G#Oi16Ng*R+<C#~N^RHaF^31-6
zY(~b$H@9R6`YjipeYWi3iPuMRTQ7W(YIpy-XqUt0<}j|V?QiyYe_e3n>!#0U0k&2g
zN>);72OGizH8k`d7Wi@HRU1xPlqlFEYWHnZ+xj5C(Eqn@%Dii;(fQb`d1JS<cTF<a
z_rH<4y4LqsL}{_JTs<A;!(_G8PjvH|$rIlnyuW0V{aMc)`;T2~=96N{{<C3o%dv-A
zr_IGKDMh88tddr)ikkU#ac}i+mJi>$lw?$QPO;eYJooepW%oXVr(ex0iqB}Y)$VI5
z&wqD#_53r>mOB2OX<l#V&$p*nf8UQL>o%UWtE)o4yuRKqsvTyqq`qEmuJ!y%=KR!4
zYj&3E{eQf^|I*V-E<R%RQ7&E)x<>!PI5!6#S{?W}z@*?=<&Wauj7)2VY^}`~mR=69
z`)SDEAHKHOc8!>QQPJj|Du$Cf6pZ)3w|0wg$ymE&X{b;rYvs!qPcvt7UHp(?R<!q|
z$E1>T(N$CL3Nke*C~zd0MRI)LR=Qx%vHEJq$rOgY4BLxMcFn67DlOrd{@LzAOhc4@
z?eZNvB$i)3d1#?CXU6ruEB*FqZ?4Bbj@>`caCLa`kH!5QuP!vUI=4UiSfQbzVX;1X
ze&_P4OA9iu@(CL?@qYPqcmdaf%m`NIN!~iv`Rtye4uKO&1eZr2jeDZz!M`LhLD=V+
zL(D8MuRyaGPn(%UvsOP^vH1LH0U4)*>)x`cY+I6Wz3k8Itt(7<J#st`zLRB9*>+^&
z+(><Y#`UWnrweIp$#h}$Uh;IcNw?t!^Sj>1-Pr1^Uo1=47Pfy^RQOm`Y~QU{DIcEJ
zO+EGcZ@%};8|D)<=RZx<KX>@Ctv%ze+2;9a1^;i)Fv-@Nf3Hlq|IED8wa#pxo=%T9
zO8QaICu@D|@Av!uhue57KOPk~oaqCKw4<k|eLOZJuqSTQo^z*GZ#dFxyTj1^GFOIR
z^0E^P7rl6J(XTEgWk-ZnJ#+KB7hT?018w5&#5FFP9&_kb>B`c)_5}+V9zB*e`rYnR
zcJq-YXNG%3g~!(SE$kAK7fk!qe{FxZ^x@meJ@wgnd)F{BitUW4oGLhD)k}^J36|5A
zmhbj<i7!9R$>A}{ry*W}vCeTukDANIo-;0r42~wv367VG0{3)hpFjOqYF5_qw}KZ8
zuXR5P5@~h)`@8sW_4|o?OEllg)y)WHW)rxyoPYJN@5}El@l4T+I#T+6-|0iQ^PELo
z-<17sHI~-S{U_YP?VDVXA<ZUjUAXs3m)*3mJEE6GO?p=|OB<iLHS_h;urG#NAD!!1
z_n>Hj^_`SuPcNu0VZGj3o|y7yYeya94CX%uGkDkd-g3?JWZZSU&?&O&>#jM9b1WlS
zw&nT1yXJfK(w_U~;oimDbCouPS{H54JtQI*sn44^f#pr!T!H$DZ<MC~Fz9^Zqrdhs
z&l{hwMUjg-OMl<_l9&JN^;^HZy;lxh;w^Lg_GxuU+~x48A2RkU%=>9Fd(j~qk*)vS
zH|#2Zf9_H0=^0jaJj(X*2d{ig?(FDzuylIdBIkC#FYoWq|L~#U(BZ?39sT|3N4rFM
zWDOeJpPx%Vx1i2vR_JzHo%(wdo9iPCw#VM=+2A1A9k}X7|Bg46OEp;5{TGVW{j6>I
zRx4ibU+@3fHN3m{CMgKW<~%u;_why3iCwizOY_>_ypfS9v*t{+O8d<i6>aQcJ16Yt
zgLjv7rnvv!s&pai!Eaf~GygscWS6B02`4?=x$te~O@$4!l!OH)8Z3BOdi%`UB}--;
zTEx`U+$7Ml$?ArTSx#S&*W1+gvw>Y_GmpO9_UI$q;#Y<*s;<txxO#_7OGHVMz!8q3
zBAe%L9y9%TwQl#0%6m3t`+urUY-Zb7|Eq*;O_b}wS65?pX9!x$)z3L`u=(cK`~Qm`
zzqzR+Z7<h+u;5<WsVh=iiX2Wm&#$gpsHSo+v!wXz1~yk`w}h<2(yMySviz*O9zDI+
z7OwDPrhpHV=gs396Zf`6>l_hwYA)c;jBG#sCr16pZ5Bt1*8!Z#5iIT3YkXa{$ED={
znAx$;)_<m3+3Qx_zZ%cd&Ys_?Xxr6xm4kJu)<j38m6md|+)n?gyyDy5W;A<p%$J<h
zq_ckP<|Rg-kLH)L#lJhgXTG=O{oC`u@6&wPIGd>=w^GrcpDXRsndCi|aq3D+lYaFq
zyt^Th*_oYZMae$@IUhN-<7$^i$*<^I?A~8=T6g<~51Y?dB%jeZrW1AS_~YYOJQLrX
zyR^Z&D??DUU7_J*$su`Rl{F`=FFG&Yu=T~M^3`PqNj2g+X`H_7s{@a$esScK)vUX1
z!F-2aeo8W%Tf1YCLWhWmXu;uB-awJ5v7Rp_cv4%YNC-RpUsqW3$=RrWnV4cX6Ni;v
z|EXoQmS3`@kJ_4Vd(dgQKRD<6f()re-p>BkO()kaZl7O!J0(SK@q1tM$wd}ByR2Q^
zud}uot&fsC$<4@dM6tu{K=U&91r_^`zMk8>?r*2cR|lgW2Z6^IOC?utHH^F|CuP3s
zcXL3XNZGn5*X7ISC7s`rd89|y``V+UcfOpnUQ_+vR<HhvU|r=yR=xlC|3{R6zpG;R
z-==!G-_pyM{XhQ>kH1*@;J{}gFQs{AA&*%0U%z(ABuw;edg#TvO?Q`0eO`XcC?a%A
zf2iwkk8;tbRg)fkEmC=}v3t{G%L%jnHlAjbV_kcLc`08@5c|h_v$)o;tG`mH)4Snx
z)r6g8yos@T>nEnIiFJOl^se^hWc%8F)ny0c{VMnVi4@f5<9+sz|FWjW3H$t0*;k&&
zf4uc#;_^TLI!|SPn{fNpnmv0au}%+m6e{`C!^GD4s$J*7n?m7J`()Qd?wv1pcb0%m
zk|To(Bac!<FVhRF!obFs7S>78FIEM|CP^Q;up?19t$yyAwi4stdpcc?yDZAI+Fp`*
z;JdZ)&DtFk;&PQ{S}imVKK{Sm^KX>#+jDw<zPPKg8++~8mYlOxUMIky*tsIRO+{tF
z&285X2I@B}B$&)R?b5(tC1qu`Yr$e}sa*kr|8KDLKFf&Gj#;OC<L&*2Uw<vmnEvq7
z3k%u%3$*eUh_1RPHvM=}-r~zYfBx8><N4{!OOw67^Z4w(%f!l6_sGwyY~x$(w(;H0
z=P!OdXwIqr<Y~3<BU`na-;$TL-wQvSHRsH^JL}J%nse-af=i<OB0`-WnBTr6krm%^
z`+;lt!qPGmd(*iNlZ@v#{`|Z#`pye2lT&=j#h0s36p0rkzdGJ>oMl2nUPt{#d;KF{
zT+LrR&~Pmmna;Z6+J%)@Wxu6!1()cw+sFHy*=j!F+gY!q^}8p2$qyGSe#<-c<;M46
z;ojaslQwS4jemdYwa2>YX@+fCr&harE8G8h_~e+k&ebW`cdY(f@qV_D+Be=cA#wit
zIuG_Qc9QsC##OA=$->Tl{WR<PWqaQ3?PgCu^JH~+yxq(1{vmOX#cJcypDy)uJHyr}
z)ZTS^t)OU4jNwf$(IEbto}O6;dM;gaS^oavwSQ|*?TVl3p3~{PbVZ1w$q65i3GzRW
z9zEjvb8cyDQPCztNuP+dMmLH#Oc9$LB;@gV*~TNSkw5RRVrGfv<#{vjz^Sz_*Zel_
z{+*x4S~YWic6pZKTdB4MS*eRBG`%>Mb<V~7_{7)>9>@RZZ`%IhVH0t6oR%`jk6muP
zbm&C^mc2opoE;pC8rnJ*n7WD_5<I%N!%6W0i%1Dihm*nufqrwg(20gpKF^obG&MIz
znx$|w+y9><-_E=EYjpm`x<@WnzB3Q~YL{E|w)p(U)JHC}?El+Xzu!CE?DF!>kMC8#
zG_ALb=aD|vEN%YiW5uhvdyd>vE!}x@#j4bQ?Vpq{$2J9jXku&P@;lnSF5}70w^O{{
zo%);?>KGpKX--*A)AYZrH~&<maL?}h+csl%<Fu(=VRPEweVsPF@K9i$*}O?QHga4+
zlM1coPR;zbP1oh?zIk7!#tU5iU3Do;NBz^Q*ICO%=db_6l$;aOTa#mXv!3(m*CT(N
z?n#NCDz~2d+_kbd?icHSS=&cvre2@(^Nf_$f^(-%Ypt@d;kwvpv{BJ$Qoynm*VbB|
zxWj)fc*bn!er+bnH}xI;zg|nYWUbh|fuYk)&~1+#tMA7L=__ylv28!wdH7|*i_qSk
zn{qW`XZ?Cuu!CchR6%8E*W0{B&bl3o4m|t2Q{<M-8z0RTLa&!D4k^5~*ju5MA!zRU
z-irw;1_m6v@3!53>KGUzvQ+1bTcC+Z=)u>a0V1sH#cl2-#Jt;PaW}SbSM`H}uSZ_)
zl4;*;Y*uZP*WYsW{QEh-ebUm@WS9FS-kzelWtP=cW_~-5!|rm4x965$%DAMm?S7?t
z@4Tum+yCF|x757W<+J-^pu61f>38wC1&^m_K6&ya=7z<3qs@WqExBGWXt~K;Ejqq$
z-9qdB`NxCT%`1_;8(QYKvGKO5f|k~b&@+Ks(>#vNv{7X_+I>1F^>@$rjVIl<ov)DJ
zSs2`>6Ycbc*ZjIizg~Qm&D+b{-_*?C_vU{IpV`e5ef{<a)TD22&*7Z5;X}9Ctslpx
zAGNX7n2|0n{_%dG;-3xSX(y%{el0s_o_8l=<(_9ed#0*C)3vC4Gi%kRFYWS@76l6W
zdOv&2kM$+}X;Lkf%iY42_a<(Ft3d1H<5#b%e|jJsUi9^Ar_0eF#)&D_Ys4f2KZg9C
z7m?<x$l!W(>5d#TCFfUZLZ(@FW^{buu>1SW|Js|48?7uGcC<vi@nc=AqtwZC^qbLE
z0nr?%%O;DQbzU^+aF^tZ9^JRtHDgxWqO7OO;uwBe`dkxbVcdMurJz6~E<bY4g6pr3
zKK}UVYt@G;(LHhbQ?GPiU;XG~M}>`>jU2aJKjZRX*UP0Qd+VkZ`g?dJJb!Ysq~c2;
zpWQDF-R1tzFD&s?+4qs{B)^@<qbn<A=9zSgJ$)YSH~-wh<8q4+2m5a<{*)qRnpIMF
z_Sob$uaLq+@kw0^BmE@!LLIL!*s988GWXfBfLYec8&=De$O`o)F32>Q#GLVpYq3M&
zqSpfI>_Q4BOq&B*g-_f4ebI98mHQHng9{Q>&dzo{tf=e}X|X=4s^Vge5F5XJ=B!N_
zcD$>XSlZY5FTePB!jjGPRZ=RALCf7b_IrdabgG$g<RB0K+Q&RO{)NSni#p@KS-iY^
z@64<FvUjRhwyM6)ohtb4`!~*nTc?ub-ijab_U5iE%rMa2_WDkJwA0?-d(zI#JA370
zvc%>TOZn@I_L#(~o2$3qzCZ8W>twgW^UJ$`796s8H*0%`zZ>t<hck<RJUe^++^#no
ztJ(c?RQy=?ta4lMROI}*Bi|(W-ne8JXKwv$*5B6V5inuql)FD!ez{-O%~@<9&(aul
z)MbOx1HBUm^7!1Zn&kMk^7S_TeCwdMJBWMd>$YhrVip}d+Y*dC_E;|Db}!1Q*{=I{
z$0s2kjz#jbf;bk%&+YIQU~vg_5n1RMV-q=ZrijQB<u0L>E87bzV<dRleAJBH7IU)9
zeY7aa#CNgh<7E+R!%Sk8ZIonOKL&{D9<$UJnKgg@`Kj_X2in@@7Co+hzw!CK>P)*@
zt9EtYMK`x(F0uQ>adw&S;|tFG7i(^rOj7e(@^|<9O)n3!?|k;S|Ky1i2eP)#v;VYe
zqe@@c<UK+u_1Dbh${$&1B{p@I_8z}t@m~GJp9>i&y8m?kPI*$g%ufGgijtCvNbMDi
zZ|5rJA6tBEqRsQk!OJv@(=V-<X7axM{f?ABvZ>sL*AChT%s#(5Y0JiBW#_evdz*Jf
zukJMq`&y|R@&4IHMc-GoQ_>zE>*aZQf4@)V-BRnxY3H7u);wMtr>UvABSued=Jtl|
z$9vQMEIL2aG)v;Km`>`o6$|ee)(aZHdhvPJ8drfP-^6$4GkJE~h`C<n<X`dEaiKJC
zhf?b0V^54OUwC&(W5dcE>m+qEqlQZy8_&HB4hZllC@?7h?&~s1^^=gzo^PRgVfFU=
zZcaP5K(5zvLfn}x`u~?WFAiW~Eb59q(*Aqmv~1;{5rt2`D1=@%u-GF~vsvDA(#9K~
z3ghqX_G3}&3c9JGEFde~yedn^VnhGxb-Sb{-|PwaS8&mE?HO4Ojuo?x-K(uWarX4$
z(%E4Zd*uX9b#gykqI@#_&xOt|rQFYHLhAm{9!$|x@tf^-YKf<c-|S-(-Q^a(yq#bC
z<6(QIS*{eje9eR-nU_84UaAVsuai<WojRfHZNbi%uYPgMKUBVa(N*@3f9tg3S#`$@
z<2Idi32|Xr`+m>#W@Ebr4?7G^FFonEU*q$*z5m&R9{yEJf7-8Isj_bWp^V4NU)$JN
z?I_&4&Uo2ttLlE4h1u8F`TWhX%<q#vd&719=lfcVd$X^vTe@Y-6!&M-gs&euKf|(w
z;jvxpp)-lhlJ@n6#%_F156joBn!Qp?+T-HFzbTfbO@CE%j&0)jbc-*LA*#&9>sDl@
z5mO7hq{W<hhkwoAR`_~qsk!?sliaQxgAI?S+t%zhox4*y=ZLwV!)23wx96QZ*poC*
z_S(dEYn4C|@t*y2fXLKi7ysR<$gG(e877#z{*^>(>xl_UN{e0BJlnO_q%@||v!ltw
zuS_iN=;5j1v8@VCr=K2pxaD!lt->k$^|nq=D4%l4W~1fV+3H0Kne{(=`h!<CZ|0x+
z!m>nTcYJlPTED&Dt<~!<y?MLc(k4@=_kLCPm*aAaKSt+Iw8|7Zd#`TxV*Py{lb6p+
zdjER;<=PJkbNtkwGk?mgjSCIA6u7jdaOvs*Ro;?}wXL7)Jmf!xsyln{JEFaEfpe32
zN99BF<nX;bI+1<BpPKj#SJ`tr{|fDo7V-=F7U^Il(b3t})XBg3@7C~)vh#msD#~wZ
zUS9Hj+2uF$errbkR-T)`|MML6Nnt<saCwC;YFe7LxK~|ky|BCVYOVD%?JX;cA|6-G
zy^*!~=8nf_Gi}UE6u#?6oY^gWtmyq8*E3SKbKKL<KRvCfU;O1oU{h05Me0SNds61R
zd@_0EkNohTZcuzAL9J%j41YJC#7}=(b*i47w7S03|G2_GosA#QEMnecxk}Zqzt2-F
zV9Ta0Rqss{URd$9ORFf0Ek03i@2_Na#$(P^#{!4D*Aulh_1vzT@I968;O$tl;fKIM
zH*>bdg0a^t^N+@@%aC`zug7_(uD08&xa$5zrD^}FUi{eO7V92(df9!26AP*?Y~7{L
z6tVHo&yC5M61{3tEv=6}?l`?>f>*Z7YQxxL4>u`yFm?J0d3yURTdA$O_p4ulLqtrh
z==Z0mKCkc1U2XTHVT)#P#=mpcOKkoa^xmtPe8pW(@#EZbkGfx(Qg+{E?C)3W^XJ|1
z@blwiYkv4=Quy12LRZfodoQc`hWmu$6bAi@?vM*5+pLX#Ue=dB8L%zhJ#!(u$z0`m
zN_<hD3TEzo5vQS560~X;hlua;kCj&yL!3l9`??lgPWIpQwKYBC-vi}0^{>C4GAVqd
z@@?-|tFx<@sP6yg^ZfSvH9Q@*;u0#1)7{lg92VVJc*)?9gWpE4-EC=?K8fh%KRw=<
zESLAgUtxEDmBc0EmY?=d4L41fH?G%sde4rrX3w!>!p_pyylWTa@UHmsr9|#eh1lhH
z66bfE-=FmEMqp3mo}QbF+lzlUsn%Fzx%^y`JT>+7w2x;x5^W6188;v6S)sDd`k8*x
zvlWRx^Y%~J*>B%;GiP1#-$#r8dY-j$dw#@h&z=(d{;&C-VH1PS)|6D3tT|@%smwgL
zzxccSiMP89YAcQAMzwA%`DbopwCSzo*1$MNxrq-a`s~o->yBKU|2bk_^ejK8$8Arw
z-45_u_iaq8wsI6>7Mtv|@NDbZm%8)cSJZgUF`7TUC4rAM&?)?GdhGVD_p4`lg{7&5
ztroqh@c3)hY5U8obq_bMTfBI2sG^bY)qoQHjl4-38X8CJ59|-JoSR)gDRt(eMM`oJ
z`{(ul{<ie+=JT6AKWu+#Q)_k7-`;m~=H(xM8`(4d{P~<y`AQR{YSAL4o~QiH+*Y?L
z?&Pf5w5erP<KrK9-0pg(W-y=oH1XJ{i^sYQxX+gU+4F3v&6`Ip7dnK))<58JQq8J$
z>QLHfXc+VBj`y3|ucEW={SQdp^?rYFMwn`8-W`YMoaI+mXQr8Tbu9Ae*v}X_t&`U{
z(L^d!D*I@P(Zzk93}W4_db&*;qSo@fdKYhb%i^=Ubw9tS!?f4wh0)VbyA~B0@z)y7
zE`PUcZsGjelXD#ZO6>hnoW{SecVoAG`mqg;d-lBHX4tfOv!p=+!)GzQlv^tjZT_5;
zv6HmxaDRU0@#Db55gTjS=kNWX)7bcY-?zx~et}Qk-E>{dF;jK6vB$~csjMriOl;!j
zGR<xazgSpl8glcDe4TE@pVx^(kI(4D|B&V9$*nziT~~3PqS@@Z&M$Yqv6*qW=Y7Ax
zbpt+6p@}M-%_>UM<<0uN{5Ep;GqFV;OPF9NmD<C`x!BQdlBz(e0ZY@tu61+&YQ($#
zaE*(TQ`^iLD0KR{|FpaDqL(L>_&Q%VHQD=UZ(Lo*)UGp+zX}Pw=s*5emw)w&`4ZZT
zFM4EVYV!a2p)6zPGy8g6^4Av^XT0Axd;RgAg=b%{S6;I0(}8~bq|G<a{XQ43UVh`c
z(XAN@EJ-?33pll!*w36;@Y2OI?2IehoJHaXxi_gbE)!OfFua*6vq=0PvzzasHQlDy
zIIV96zsPA0(H0OEcK&|--h=1A|My=zZ*%<J^Z9G1?b`n5n5uA|eY*RzosYWj%k;d+
zOg-msrpBAmpmX|b*!(kReB%C=80Py*oSt#?^bF%A_Q_(p$>%Qo>xunhxw-Aj^G<(p
z!}l9KU+g-!bb8#WWxlf|tcz6QYrl%F@0UHfY;OIBmrss={QUXxMKRr1TlZF#cP9FK
zN!81Iz4U9_x;6J^di$+wZZmY0;9<M=wmc{xMP0{ZiD!+$Np`-8Yo{3%W~{CXT$Z<9
z`agrcnc8a?Q=bEB9xXF_JQhVP%eye~%j5sy+SZX`AJ>If9$1`gB2{1=dg<G9#RZQH
zj?XRqs}lL>#KprW*qC>@>wmu{bAIu!+gjS|uYB8=v{aapi;MeJjr?4n#;4Dp7r%UP
zP()1Z(~oa&mn>g?IsJE;k&zKc=Iv>J{`@(0)l`q8@~WIx;N9n?a}DQJ{_0(#ZD!!0
zUo4X$^>(R&*pIs|tAcpgUL<uf`YvwFNZogzSEZ8MvCVIpN6)T+>X2I9#l6p)UcAUy
zSM|NNZbz+6Zd_ICU4P$YXT8@i_`7kk_p#pR>l<$CZ8pl!<>dd;z4rU^D^0B26-8GJ
z-p$)T<L2Ua!?cUf&&XYxzmeNM`Pv0W8>{cZc9kFM{+w!-V0Bzj{rw%omaMB>4cFF2
z&%gfv{xVOFwNfwtd^%iZ#AVW?>}1HrcgXqgg*kjOtw-PdSDt-$)AVTle)S9bd+wb&
zclM;BlG3Et*1v>P&Mq!@w!arM(eJXD?<vn$JKk??vMBlTcz$SQu94ISHnU|fHZhid
z3w3inR`4OgXw|BaX_1eg*}uNMD90~lam%mRf?xrb7(H>Z?$$$xoc{dzqoJd7Bx&P=
zqMdp-+RQ#_axR&6^MNhz#;fM4n*aUGlSS_K1e%^JH*>jgQy}p1pUfrUsmgP?7cE+}
zBk!6_7{9dJ?(1>RxAxC3TkQ5Z{Gj-L%N?(eY4|Mrb)O;S#)iZii*mj9eA35`%q;$y
za)v{0hV6WRH~!~Sm!6I^__@*R(XJT+u8pg$j!*ktUBcDXtzk3Gcg0bM&(G3)a)r-%
z?@XI4@5w%y!-)MsiT0Ymx^sUV(>0jgV>-jhp0)8s!$FP3m3N;!c_JVx8oInryGv=J
zVBn7ez9*q;AD*B5>axk+8jlzY)!o<Gm6ViT?5;4h-2cz(^+M<WLA~~Gx&qET`@H#0
z@nW~$iZA<qM|?eNzQ?poW&Zyy({A$L>Gr-n^YfL*^(W71bTSDliYYniJm0Ic`DD+0
z%Z6C?%{M{?JQ5O=eP(f&Ph9QxeSO}dP@Cv}?e#rRn0}S;xJ_Epy{-4&{#kp@{omI+
z#Xi<FE@I=<<M}&Sx*gp_T7!S>d$rguF)^{_ZrN?uulZN2nCBi|ad)Q2?++gej`c~g
z9(Z!(h?L#YdTS+R<(+Cqld{kK6?~a}yL;g+{gOsG*W_2<t!M7}W8O9A-KNAedC+>E
zUjcDV3J*T?A6$PT?78Ypf3~B+&nEm)(-hCVsW$K3-FXU=7y2|#Z4bZwH|bR<czM(R
zgios)4kj#EvZTdid&BbYcV~RM^m?m9`)O94r`LI<Utaral=0x%f42J$4Og2qx^^fF
zSp;Pqe*AIH_7gFnbxZOdaZL&rmU@fZ{d%FSGwoOToT|O4uXD^ZFSW$i#kz0LyL)5S
zB){9+a<xys`hR<O^7L!#82TRXf1<imO-;*Bc9)0aiG=(ZB|+DYiB3i;LM|&8a1^fS
za(tn}_elPNDpyyuLw9$#!ivd@k{!7Gn!GngF|mq%-Dh@?FSChXe$Vm4D=PoiDNJtE
zR{!wy$&-7<I;Vp)M3O!VA9#M;TPt_=rEAy1rrzb(Jso5=J9J^dg!}KW|NFPEs;Vkw
z*0MzxSJ=q)zk2oR$=9l%B@8uIasAh)y(!x*B`v+W=-?;eXGfC)`P!YAWoDI^hfnly
zIeYeO*YU@nDs0YwtC4S5ZxgpO=AEnFkAJl<S1fZ{7*N%A=4FV1#FcN~wk^82LQh}+
z>cxwShYfz*;&^cRqm`{~=)!;%zgSOa#~n@DX!Lv2&74=SUR`?jY?)AJ%cq}vqN1a<
z>zNxi?cTkc|8Z$?@#3dXpRS7k@$Flfx3~Aw$w4xGUI$b(g*r2mlbsJAJ}f0I9c&{v
z{q|e61O}~R$Gmo1hUW#<zPv5urM^gH-WyYq?xS0F?ON5@$@%upn-iOKuI*z8nWAny
zb!Pb1@ArO2?2+3q_deOwz(C>jrYT-ar<_f@di(ZiDT#(lJ+JrAwU$}`l|N44@&pD3
zCLYka08_-@oYvocSMRb(X<1oV<@vvV_qw^cZP~hYX@bFz9O<u&D{9w=HGk@P{pgXC
zySuxTtZb;()JvyMbuC-A?8=QB8oTf69X5DUwtN1Wa|{CO!)I4M{amR!*)ujaR#UD&
zyQU_Fo144HLWZmT@YLUX=lH4jb20w-@cMCf?2kWxVme)%mSvuL|6P0X$rDeDGOMbh
zva_?RDk>(Ne;(}Y+<YhR`{sGem>Vi;H!fVL*y^OX^m69ebLX@spM3G_SJcarsN=_v
zpL$vpT4}?{@bOoY*=*n1+S*xj=7dyN?>_W!15;yzn7H`U&p$;tSV}4?BDNmZV!X0X
zJpS{h+iz#hpC7Ix7VPcaJ!{r170=@0;#cqAUq5)T(a+CsijUgQ5{5l<D|W`{ojr5r
z#KVFU20f>u!qU^1U%P&N>-O!-4<2+ZEid2S$*ja6pzpc#@tM7G?<Y(9@g5FP5n3s;
zKQuo6ynYYEJ-<Cm`seecY`&Qy;TGD*$o%2!!+*>SN4Oa}#2Eziu`m?k7_#i+=A2<}
zm<d*)5C>I?%=q{G<FDubZj26ZkG|eMb-pAk!&dS2@#X)f9ogK=kfjs1Kf2zKiy=!t
zuIjt&Vul6Z9({eg+g<{!O1}Ps5m@T}|1aENIo0RpJxmR=KI<zT-*@ct6y5y{3=9mO
Lu6{1-oD!M<>jsF$

diff --git a/sflphone-client-gnome/doc/C/figures/hangup.png b/sflphone-client-gnome/doc/C/figures/hangup.png
index c2c2ef61c740f1fba7f10c926607f0916402b26a..dd895bb497821889d86c4540cfcda27ecb94ad6a 100644
GIT binary patch
literal 18509
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
CW`A1%

literal 19870
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
DV^0Ys

diff --git a/sflphone-client-gnome/doc/C/figures/history.png b/sflphone-client-gnome/doc/C/figures/history.png
index e56aa52a5cd28a2006eb880593aec0458ad11d12..32b98810da8eb9cb75ca527c88356d29e4117d2c 100644
GIT binary patch
literal 18596
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

literal 17019
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
XDbKdKJkU1-9Vg-G>gTe~DWM4fcVdiA

diff --git a/sflphone-client-gnome/doc/C/figures/holdoff.png b/sflphone-client-gnome/doc/C/figures/holdoff.png
index 73e02b9a992cb6eeb8c3c28dd345bc972b359726..7ecd9b4799bba0adff103aec8784b886ecd2d76c 100644
GIT binary patch
literal 21009
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

literal 20461
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

diff --git a/sflphone-client-gnome/doc/C/figures/holdon.png b/sflphone-client-gnome/doc/C/figures/holdon.png
index da849b9f525dbc7916cc254a39b8fdf019e7d425..78f39f8312f45adaccd0a0aebd5ea61cfa54a45a 100644
GIT binary patch
literal 21042
zcmeAS@N?(olHy`uVBq!ia0y~yV60?dVA#UJ#=yW($Q1LKfq{XsILO_JVcj{ImkbOH
zY)RhkE)4%caKYZ?lNlHoI14-?iy0WWg+Z8+Vb&Z81_lQ95>H=O_M1E$B3$CLH@SE)
zFfd4#xJHyX=jZ08=9Mrw7o{eaq^2m8XO?6rxO@5rgg5euGcYJHc)B=-RNQ(qx4c5s
zRlNQFUei_)Ar8$J7AFtYFKT<Wye7xFuuNPgvN4hI==mm57Lkx6Tuln00aer0WSuw#
zvYfm<oKEHL{{6Rb@&qrZb_4zMc2Dx=+FF0UZJeH#zGTW2k*jH&6Sqd4{B=KT>!;uE
z_bUr<ur#%|FP~p0HP^4*Z@KgO>x-|yo+u<Nd{rlLdxVZo)RqpDOwF^=;bLOKAf+9p
ztNR|W*|xm&^|cpYt9aO$FD><+9<uss*Ug-?i;G;Z<Q7XX%+3*pDCU?O#(to0YT}lh
zn?j2(c8JK!ub*``O-v`k;jUS`VYJVoAf`r#4+6<17Af3&^|blstLd_8UDily+c3dF
zLBQt7o1V%}lT1x9@8sPl{{Q>^zDIVq*yfu(t5zLy0&5K3{Yk{eM17`xy`5F$w9V!m
zjp7_EO_N&HmY?8eVMuxN?5u`-O-)UP(N~tR#EI3($%*9$?}}B1h8`{I7ytQ6FRkyL
z$K6xk4!wOW>=AMI+LxNA>U}efzHgqBkac;@+sbL5Y$K;mN}qqcUiDnr?9AQsH05k|
zNBV!PU45oH*S7icwK=zS=lob!xvciqr^}JAd(VeXxXZP<yg>HWUX!W4)7Q8zyI57J
zzQ5<K_v=}XH_w}{s??90zp+<)oAiwz>u%c4d^-2-_lMVORW%pAnfgOD`iZEk;QC#^
zTXp;F*~%Zjy<c8nrklNV=910qHx0ha`$e~Oa=AP|E`0vlhX1t%X7%&WKKvZzw>jsW
zVD+<gm#3TA?XoVvd!_izug}g^C38Kt?EG-o$I$*`&SSnkhRLSvk1ubY|N5!&>z`jQ
z$6G{2u$vv1`jhXjvvK3bHBwQWdn+zASwB4aJminkUcbn+`}=Co%(0w2(>Q%o{(ZZY
zNU{90(J@n|#GbjG#AXsAzkAZ+^z+64?s)R${F%J|{(GkeyW`Q8uMJ)6PCT12d5+D@
zok#xod=9Gows1oBviFb9X6^g&>(`|hcW2i8$x+t&{p*qRohgd<-#?u-=RS8p5WjKu
zmB%f=e?5v`smQ$S{li(4X8zkEA=dZa`7%d+O>ON*-c`Q4r!V{XJ~eyaYty=VvB_+v
z>Pr@UPMMSPvi)y{plE`<|J1e;dF%O$S9&RKyZq?xtH@WGjC{t`H#2o+-afN@+6Q-@
zhIwq~w=P+;vcp6yY5SYf!1*8U&-^^ce(Uu6^EA`r#XqZe`_JI=oBh+mxNYCjUnvcn
zY<~W8Dw}I_{AaQH&HdlR@5u+WUz&BtENt_-+52X1EY%L$nB*GeYdx{n-}TmV4eQy9
ze(tE#IG=yEX4&jtH@E-ZmKwIlcgj)gEj}}iTKVn&7+g0>JvHUF-TON`i#vOJ&;FB@
zmOg!FXL0x2ldnH@{pqzRc);-c+uOyyv&|URL~dpa4ejje5?X&cy6WgF!&eO5PLEDH
z%UC{k4`DU;3SZ@Z+$(Ys^OGwJ->j;6c7GC^=I3&~n<sYqpL=Zd-{$9E>oZ+hZgW?K
z-z-pQQ+@yKz_Z;GU*?`(baLbUPR-^D@2L|Qd^Z01{LkAbf77gRt@yNa+_{ydwN?rb
z1Mf*+-f2;$|3g0ZdrZ<t`}YCflONk$j!#|`&oXuIgAYsRJokKXUeVv6C{)YiUP$%>
z_fzv?bN(f=_|M(2>D_X<AEFO>vQL>kzR6a#Eq|Mkak=Jlw!S5s4xZ^`{cORQkaJ`+
zuhEaiD@>%gwnhId<?`B>K4Jf!8UAO|!?yf=zo~YA>Z1lL3uY}gn^jv94rI@Ke&&Sa
ztc48)zR#?pV=jIR?A}oPSMo;-Tktm@p6QHBHnD^ixxS8=c`54R!$*D-=gc`1oxgW#
z_FZ@R+LGJf)&?)<;}+Lj61?1x0aT3n&9xH!y=T^J&jagXcW2z(wDj)m4_}w2o}TvR
z)>dzuyU|CN+UbAeV|Z|8&GeTy44S&8W?gtS)BI;$unntQHs3zq#afOmtf_i)(}e4}
zbDsyD?T_5{#5_$m_E`H>#&sKOUfKUVAG*za|GVC&M~;<uGAK;jx_kX3!N1J$Yy8=J
zOn%j9@80${<$BZekE|VYPo`%J6?G?l$o{jpkX1X(XX!q(<CT2>4=i6D)X2pXy=!9X
zXR*y`M<ukFU%uY|<hXL{5m%Gcj63TM-5P}JH)verdG=T*qCkpa`Lpvu)^*R$F5Rf`
zt$(4PL*=RPH77UkkKMAKyK2_AsXeUk@+`Oae`b(a`LV*{-1eESXUwzbH@&I3(3_s7
z_iXX6nai?&Xx8W7IM7zV?@_0bR3M*x0TVOx%PT8|yTx=*iTyZm;J|L-b($IS7Za+j
zduQuik>B66)%f1B_}f-2Q>PuMnyLJ{KDB1OdS!C0ke8xda^7;I|8}hLpMQO8P%G6~
z9U8bb?n>T^{P@Z$@$|Dhzkja%B`H;rb+OuA@LgW~^g7e2Ez17|`5i1`qkk+4UKo<X
z9yNt=Ls8Ce$upMc9{;b%X5!VFv{_#?rg+Zt4}Cs?HiymMt_s*!Q>kS-_dp@TxzG1M
zX5TbBQLX>(>-?oVg%4yt`(HWdiSp;j3cdraVYROgTzs@7Q1{Zb>&egRuDtl7w)uIl
z(wP94=F*8zm9B?!N2*T_(fKWs`rIVv=qdT6op;;L?Oxj7I`wB#Yj%-bM2K=uuas%T
z-YQews4WZ$Z*OhAvLcZAVnwyJh0v8Mf%n_xSWYZ)IiGana`MfTU1#h+^L?y){L4bq
z(up<HKJE9TdllKmww6=o{9d88YS99Z%Hp<3x=v=Bbw5k6&b~TLSEp;y0*~w8i?!Zz
zbTuvVda)&Pd3eBPeYKn0wS(4uUaX~Ic}VV9(62L}8^VGwRGzxD$iJGY*z$y%7Tb$J
z5!RIomv>%U=I<^3FS4q)n7ckT@sZZ<71QhH*lnE?I89u+m-Xgak81I_uoAn_kEzV*
z2AjXnZ;r_h+MbZVZ$XL3mUR~2P8P-_mYu7eUs-3Lq%rfng?iLlG0#bPulKB4^~^fo
z@pay`%gg=Kt3NPsi|H%~Uhc=j!XmPM{-LumI!cG)663dKi87dGUpo`0zJt~1+lQag
z-I{+Z+;5qz>Du4Twl{Eoti@I~-tAM~ib$(<OKyI)>%>bQwxU;8c8b;)mbhqyTAqp5
ze)~^PG%M&HgKPPPX$8D%Tg|I?98i3=zI%CXxx5eiv`z22_FgpJvCf|DoLHsY_6xUu
zY-q0#vANZgkhA$x2E&?8nV8S|w-laB-#E}3b>7DD<<iePr2b1MKTkRJaPr=j&(=6<
zg-NZyd(k~>&6Sz=76#8OV9`4-b?n8d_|I|gcm0siRgt-U=#grAWln{?Q+N2qeZIe+
zY}@L$oHa$H*h=i`zjxIlKVL4N@8RKbVym8s$&_zzZ{NRG85<ir(;(4lT`3<Q-}brp
z=319O6Z+~m*J@+&^K;R{KNlThnxrBqDe0M#qGDb=XMw;Ikv_fO6Q^?5J^5QBZJT-3
zkR^HFtEh*)t8U6jd0)P;(bA0V<F8r!C7(@Co<BJ_GrpEDb;lu5V+Tz+`Acm@l~r{C
z0aF7*4O_mYmt2nAvrn=4?0VBB@17K;%;{B^UGS)Q&!s!ep0>eHD!(lJTe<Y7PF(Et
z1AppzZ$@udtDD8r_uleEWiju*8#ku~EI;)4m|vi6<)$|_X|d;4nNC?8`<+83M6_$_
zu_;VB(LB}SZTp1&F7HXtzFvNFLe0$jW9851f3&>sEj!crO=O7gMYAyDw=qj<W4em<
zZ0}9Hx8bMFAM>VbXVrrBR)|mDFX@o_cyZ{PU*F%yuTZbE=8?7fvTn|H@9BCw&jl}Z
zV$}*+5%8xieBqYwg2@u+_Zv?rD{cN*bS8|`rfK%4KTCH0S-<dgZ1J|HHs8cI!t-XF
zZ3q_d-}hO1zHOjbZlV8z&x>z=Sz2SdL2|0Mx5}Je^}8>8d;Ri_((g%MDbY(iRl2Wa
z<~Q+p{#@UPNaN$>ISGfiNt}85`a)iY{i@w!6J2GMUtT=;``7zVb6<*O?b)2U=jL&#
zJN@$4&OAT-JWAl*(+PiLY_-joo!72iS!BGZYWKI3g10y&KggZG`oYCX^<fClMfUTP
z^t=)~-EZwKU%xBmq|mWGS?{2rNgF&ok8Nq+*lYdywkStcEpL4{e;!Mdkatau&FAOm
z#pmsDP!O1slBcDnUvc8(=Zeo|KZQA1RAZj7s>-y#+Oz+03S;jcrbdT~PfU#t3KcH|
z3@aNQ6a<v?!7cNNPRXB?N<gi2esNabvkEpKNsWUX6G07Kp&pLw94t(ZoQ^HoEKH3L
z1f4rTmf3VE)t^rb**Nd{c0NIyk8eGHA30iCf4^U~RM>g-^@mg6X7amL$%*Xls21st
zko$3S<+~>J^+{G+CwVIGx}dU(D|A)JLa()9UnD=<&VHoxy*@|8wDaj+qsvp%Gk?eC
zT>PAzA+z$zBIUJCF>j7-n)`Hl*+d)D&psEAi%qt#b``Kpu;l!yHo<UXevR|0E%SVO
zbp5U5RIaE@`_83U^g=DDIM*Zn_Gwejm*3Q<AAOR@bg=f}Ht9HD_x+D|u8S|wS);z#
zuD*HJKfee)nY7D?=KoB{G8L<fU_UO+)lxfQ&7RLGVkYU&)^bkh>S|ec?e?E9VZAb$
z7au%%+`Vl<_6n^9xB92vS!w@>`BnN{?b~{<WThXherf#m!PlEPd+xOP#aX(Q_}@N0
z=V>^H+>Jhl#nw}cmpyJ2`g!Kdlj^jYpZ~8sI;Y~XpM7<sL&0png<pB<_t;L{>$rI4
z=hqeUa%0<1T;RwudwuG}dNG6VPdR!bEdIUD{*n>eJz;`?(;@lAr(bXG^xM7NHR7?D
zN5r!=Vc%5ec+F!|aqzr#^2@=sE2M;+Joc{ZiLMeWzSg+SBCT}Qte0PxZ%WLFwzEo8
zOmoUsa(3caY5i>5<!2W^NX~juZkYYnHOKN={O!NitAmtY-n}MYyRIZ9$?oi@{`reT
zzX~`xIjy*zr*i-Q^p+m4Pp=xU<b1OKHk(mIPydx`hKH|P?#VA(Cto*Ok>-5to#EZv
zGT|AsxKG8a&%9?gX`67`hrIXCuB;aHyxL}4QUCL&by&9$N6U%(47Zo|>R2pzx>4~i
z=Q;D+y>i=){4xSIWHi0}_U`<ei0ys*>*ai3{OgzabaNhia+uUlq0@2FN0!`Rt1+lI
z%})E~Zv9%=Y^ms$V$E58zh`e>CBY%LxvSZ|zo_JR%Wc1=Ct>Y&y55BkzE3?8xxU?@
z>`a`$TkpLsU-T9nTB@@7=ihyMwysq=oc8DJt*hNLK2#`Oj+Zz)iJR-(!?T<_cFmnD
zzQ)1I{kp8XQIy4opC)1lM0Pi3nD#82`tISKd~=`8F*DQ;o{XRV$SjNT|GS%qSAB1a
z`2368$2v=JX}H3U+YhB)w<^aR>2_oEGv`p0;C%g;DKXN%cGrhv(b<uf-}3wVS2~8~
z&iinDE?;{}TbxcddyuxubGC4+KfC7j*Mu7ucPq!%*ERD^Jm*juSDnwUU9ErK&-vaL
zQJGmgWaq5B_nFh?_nE|-Gw<=NT;lF|<Io#jqp#{F3wzvLw?6f2e|srw*}ta_|0|O#
ztZpzgynpbKC+c43ee?K*&c9!oX#CcE&98R({%@w)i(_AYa0)eBclWGow!t-7YY)Df
zHiPBXAADUFnw?WQRmXe#snVr8hU?e9U0#;;lk5ETLifc^JD({_2wv>cPj@%|vo~uI
z3pdMltxx3_Le&y)^W2;NfjhfjC1!n^^%k|GY)9vZeA!m>^p9bsXTSRb=4*$4cU}%j
zD%eo`?OxwhX~CR`I)C|=<dpJTmFH9cJ(|o@vC}Br{9MxRb)3O+pEWk@O11nhzj4{+
zH<|KB%`3OD9#Ks;X1QQ+>cITheZ{)3ByL}JlKkiroRq#+!Rjfej`X?UWsaq%Uc6h>
zYgqW;G-J>Hurnr)V-8e){o(dA-hTPDxeE-;CoS@4bb7+tv|H=buA+rgk_FrSmoIFS
z;+j(u<r#A}`tZJIS^HP&%#57QwN%#N|97ji?Mv=oZZqwTW>_dFIOWu4J7-oE*<W)y
zr+;~|r23Ca&%u&+F^%*8#T?k^_}9XqTHa50-|}tIiJXA}Td&U8@UPrz>Q#{)d%Zp<
z7%j_Dt9qaKNZZD<;^!)plKH28HM1KWmsn}0!*DouYoXQ3ys8~xXH0HC;##GqaQjNk
ze$mL1tAZR|v3mI;>ol`2PRn&!&LRE3&bt5cvpu(URpR{)%WR*me2wGR*Ibu`Ol7Gx
zDl&F%n|#mSeeHC%^6Z}d`Q@5_=9S!=_+!QM8{+Bb;?nnRm~Wi6b;1{q43h;~pJd-X
zUZuXF)?6z-?${eq?wP`G&pqC|>fsu(IedHbeVHszZIb0Y!8*_Xkm)AFed6K9|IaV3
zFj>>J`(ppEKrQQM{|@>Er_N%vzEdmxoMXSp+-HBz%jL|uE$2IF&d$3+=ik|S?r0Aa
z_`B$+(zM<8{NvvHZ~x!BB<sxdFIDgA&qQsWeb}9UbNb`?K6N{_ZPi?pwWXaZHK$#@
zt)J+s`uK^G-OMtUcN>?lQJMSb#6oA8Q*nzrcTQ+Lw%hdlRqvE<;@p;*L4jvC>dgG1
zy_|dPz8w$3{k;ENn>%O6lml0vSYNMMqyL}9_OMXohj$`<({kOve>h}4KWp!;4?*hU
zW_yh%d7l1WsP)cfBfFW=_tX79{<iE540<0t{g&RwKU=T5ZDp%_QK+yYQ&n$W<Z;#e
zY9Xb&x7)t!p8Tw7!@ECo`0MT;efeW@&c8aH;AEy3w~S+UWH24P+kevAqK)^_@uQ+M
z{yqI(V_ju7UDshH*Ok1>&E;`ji>8E&$nV+SJpF#I@7zMY9lx(GzP{kvpYLDyt|?l5
zqpaTJ{<@vlr@gb9ZTf%p!QlCIXLp+4TNu6fyups&f$M)WyvqH%aYFIVfczf@S$#hm
zme1~E-tH%J@7qV&Dk-}y?_%fn-@Dga|NI>5mxxoM(hD!{xIZ)M8S}oH_3HQInPv8L
zWL#+#TsQMk?i!cN1<aqfwO(E`iCN*H(8VbZ+a?C=*0cLn9h<M?HjBICB)h#m%m2{D
zm9Lt;Pb^*h;^)upJiMkIm$U^$+?RfTcXzd3<ffL5$;T(nm@#AT!5lO0*BtNkuSM*8
zd!@6!N<TeL-rn%_9)|!Hx5uUDKRi0xeP+J>{wLFCfA}CB{(AA^#qvK)>@;5Pnft~5
z#digPDIs2aPT2Dt`m~{YzCeEC14WTa!_1Bc|DK<7VEemuy5lz<&10JcIr10{!A%<u
z|2PE!4wgfc#W`4*4jz7Z^7yf1T(3cFXBS7?yIi6_ca^^8>gHr&I_T_@m6i3;b>D)y
ztf1k$0!2F|kvoDRp{~<XMO-UWq~5A}IxW7q;A+-H70(o=MuAGllcE)qPafHre7vK#
zw^k*qagxfzCr?`T@3&7(Oti4H<XkAuF;RSqkB%7kZ1a4#Nh($)FB+CFPwy1BaShy2
z^V2ALdtU10Wxgi4w?x?4*%iMuvGZMQ4JwGfkz?jJ$D%QA{qpGTc~dllpG_37>UDG8
zS@iV9jg87ny{108u`&5Zj@d*-7N;kys^=Hmmc5bioo!aDvNytWQpSY^j2ky@OnMRq
zcB6A>=%q`SK79C4k&^r1<x9_~D5*_4-8_mF4=Pq9f4c6YDN*9qW0ibTBp{M)=K}$U
z#J}MxYxz7^@7?|~<SP5E?)_6H9qJ2Czfq+$ZK`{Jk<mXT&iLB0=QgUn&)P1pzpGz1
z?^2+8K+A-d6ZS0`TNOOD!Y}JT2t37{K9|vTVu06;Kj&8EIQ#jZ?&21C-)LoZllM!9
zk~UYneoVselfgMQb(7X^+^Di_$)eI?^@9&u-n?jH7nkRZUSpr;5UTnrYzx;?VWs~C
z3Z6n%bGuX`FJz=_i4vCbwX&LP+_lJgTIq?RlbzhF&7`|D7i%nj@@wUbFB!bY+|`(u
zr_8uf`AWpvZ*Jn*jgMul%H>L=eDs!j78S7F?+Umn7{VDMs?$I1f$q)p12<O)J=C_T
zQvAfv*naN4;t_L!bau|(DUB+T7d^yGE}34im^3Nz*_o-{A)4V%YL(M+H6&k}i+ruo
zXJbDuG(U6wOrM@#$%5AB=PBwbGVWb%9X>bKz<O#^M^wUv+pMt@6-`C;jy<k0WlWBe
z@=UxczmjR)iVv^Dl+T-oaefoZWpjG+-Y|1o$i3L_Mw-i10v1*--S(wRs^Mr_+MQj~
zJ$?4`XkGc9f9QafGRJrRhy8br3$8RKYnsRKq^^kArj-^g)qXCQ{c2~y{#z@$_V(C+
zk;>nyl)gk<``+Br-B#k;h302YzU-@WYiswB6}JK`g_ii3ZjMq^<$UR6ly@@xV#<=m
z?ne)&9Xy$)dhJDy_&;}^Zk>-`t=!`>=l1PyZ*u7PW1IZ*V(XgS+Za5VuCh)4cKot-
z7Q<}+waKNAY%XZ7Ftd=BJ<VO(UaYFySM*fIVt(1g+D>-QJ(K)o?~A?I+Sl^K<xz@>
z(&>a?@3s@lr%zPc{#4pibu?_#VZoIvSIXEGNq8=2eI8VxDd&7CbWYGZrAS?il>yi0
zG%i2dv-@n<;w<s6C7!1>)x`tk&TVM*WnArhNU7O(;)WXsk~aU(pL%eW$BeZzZ>MZH
zC3H<@`>e#q&ed}(p06yinbUfKd*c3dxi-$5ER&d4iRMIAKQq4V6LDG8Bx?7M+aWjq
zDLEWlaWQ%8O%ETxXJ3|DoC%X$d`{5aSySbVN6^OG8uAq(t3_39_ug1IYfZA3QSfrV
z)aw%$Yb-t8q{-a>*nLHk*YYi<%;l>^b#Lsqx$3DQC7ZUn$8R~a<>$5kCu}=+nrlXG
z!X~ej2-Qov6B0N6&)wv;B=z69ow4VNS97iudjJ3Fkso}SJ1o0A8(U7?XYPq|zhd&{
zp{VwYm^UX2uUIcM%nl5ZyvioESS*xv?ULgu+a^s*IpkWpuqm3sZ7<(u(_Zh+<ttu<
z%57az@v%WkeDOom{vWGV|E%_&>({<$#kU_*7B#R0-q^50D|OFaPF`MB6O$<m7AWl5
zyZ7h!`}H#|i=Ta6w_=;SwVv$sB@gTCEk7qNH|eQT{NnWFz0uplyEZ+)!x!Xpa)Hz4
z1!fE;JUM>Hz0OaXkk)_l`q%uHRbD5|WDCVFuXrij>N(NCW9fy=R30ndHl9}B_Wz5!
z{7vu3oO1M>@hx)N#LJ)Cv#&^7d|CBY@RjW%jTc*@;;P@8GBGp1m8+h3oFmb?%JDS&
z>A4cu^?3J+H46OP{o>?nnI9Y8KB;;AHOlt=)}J>1m0=rihWs*@X;VpEFww}O?xD=f
zXBIMF^nOfR*D*bt<GGOD<18IX*2t|<Z~s2&mad<qBJz5%>L;nS(@ss*zJH}VnBl+N
z^^XsY)bHia?~@4j?f4U$nt#V{T}lkwf?4Idr>v$kKe%wT_Q>*i><W8wME0$F`muEV
zftM}8OHOxMNNia$<LnM=>41=M5!d!rFFuxi)i>mK-+D8^$f!$n*~w>tQYx>*s!nMv
zx@g!v^&*?ioKUwdX9SK3DAkwWD9w{TY*un~)mewBiXOs8|HQqvm??0Wd$o1qrDY3F
zJy;!*7J2_|%$~Bw^l94``$(Gqk@;JArr`P3WABqTTP|27m9jG>^ypQahqE4)EUhWA
z`FW=9!>hBhpESxA?h&-lD?D)5^XW}CwL~7pPv!HxSBe{~mdp@wV4HmQU7*S`^$BXr
z7fgNgdhI6GhSe`Smz+AO64&{Bhc27{P5FW&X_G5%B!76uU3g>C<f8S~_1})otKoZl
z%1-T_P3F0aJLNa6mUffhKWTb({?n!FI`r*7CkZW<<CwUA^}h%<jT^hYR$1;l7Vf(s
z<=g!5ViUfVY1Ox9=1ev8Rx=4YDd7?P{L!hStn~?dOBTMEoB!bA@;A2}Ppy-^`CIZ-
z)x*on>rbB9`>B`pw^x>yce3Axn+ID{)Hy=~U3RGP?|n5(@`_8vN2e$6g#zuiu2{gU
zcz9MLSIEZ>h6R(-4Mce#E}0n|sJh}s7%M~lcZNTu2UTXSTjcfN^`rjH3qv|91fre?
zO?huWqu6*^qE+!KhFE>K*Aeq-d-m1+u(K9eTfB18%xdnJn#$T-^L78Xd%iZCwCw8S
zSMNBb*6zJ{Rqc>z<QC5DA8tK<c}T$N$$PoFyni~fAM*EomGhgYQ<oRK@2ekM`m^uR
z(Mj@c$1YC%)ExKZ&X$u)<n6=OBy$PZw>NZ6sekBd;^(Jo{$0zc@^Hz;ix+LaANH4V
zcHb1eY=?Hyv*W@+6Yu?B?9|I;cCXIs%Nju?{T<((@=b#3Zg`xl{VTfi_xESF*NH6-
zuxfV=Nc@qZl6+FKHz+i;Y>w60YuTAD*1MHbYk8(NAMF-5emh@Ornp3T=a%-n5u0?2
zH*7k?*qfq#m08Q?Qso*i%b6c#FS*KBDt;=TUwksXqB7Jz<s=(dNMU!1)9g%@W$Feg
zmE}2;SVcaRa-?Maj`!TY#PGv<y%|?b0uG#haeB+QVy`<}ilv$v|3B0(E_<aiX?vdL
zJ;#}51uFx)xs>BH1DW<eyO7xS?;E@4rkN_u%3=EPDz4{LKN%Vt{`q=6UdDXKgf~x8
z_@A!$R9YAwvLW*0wA`9|Z(q7^J5aq_vnP9g+vdO;k+S_WY;OL`z0e`3oR|6AS@n~2
zQh33gUH9$WdPQ}_-=6*R`*B&}nLXlb@7?<_Yt}rj12>mkJ~E3x@#50OQHq+T6GKj$
z#`LUH)l>Gck`;C9dB!8uxjI}-+voAU9h(32_jkFi*B3PN@b^zY@nogW?uu3yfBk|_
z+qk!_TA-yh!)QZFAOHTu!)#~LjM<u%tGZcNyXEsgJ@M^W*j`I!{@z1h(yM|G@BibR
z&b^kc$Le>AWtFVOi-Sol-M+dd4V&g}+}XXoyZKaf?&YI9O!*zwZZS}tZ&PU$U;Fi{
ztnd$ZrI^KODc=@tWU}1iY1)`{@=fey=kp?$zy7^CX<oRglva;S?~;o}l^2_&-@W>I
zWHQU1Usf4jZuyJ9d?{hu|CR5ws%&SS=vz}!*NyxoOK!BvMJ`*jyEfzLfddZPa&Nm;
zWEq{5vQ?YR89M2LhnAH|$%??Kg>UCC`QvOQzSfV~s=2FnTf?K&KYP<lCs=OZv6#_q
zyWjEKzF+iq-S3gH6lz$%?-$qRn`chz@8>yiq*HjNU9FX}ThEDm&lieU+D~WL^3qMG
zOL9%ZhYjh8`r`RKYUw^jQa2o)C-K|vu-b9{^Xqr8wE&45tS099v1`AW(<8A}wMI<E
z^HBW}4HGuzkM`%z{GY^f>gx;7*6HyJRkkkr`{}g)n@y`!rhPqAvs?SRv;Hb3Gs*m7
zt>F2!Yz@<Nqm@n@MQ_VFXs*e5^d#r}uBjO@`|bK&-4;~0EO)u$rPVxZ#tMaFlj<L|
z)O~t#^2|(Q_J$=(mRRe3_#XRYHtW`hufG*{cyHs6zo4*zli}ghMKi9|>7`HdV+=UG
z-;Tj<U7b&DmYBLw62ppD(ag>7F3xy$F8_pq%G`OI<9*L;y;puA;ZJ-2p7$?zU!ENC
z{_bw^?rWOCcb>j3EOliJ){2vSx#z|jPTj++QsQ^}&NkbUdHLDACGQum<ng+&dfv={
z{EMYu9L0XExo~!_7%1w4?H719zRnKMaCpnb`)Td^XW_H6>bA<C^m%Cgfz`x~-EW^Y
zU&z!3^J5RpQ%*2X-e;}3Wa7k$F?Y7lf0Cm6Y)kfxFKj%Uco$!7THmcL%>HGmYsLv>
z?R!U;I-7EvYIo!<=HGSU`QP0xoqHZU`|$3z_{j_xKi{L}2O5N`=Qp$StJPdqd-dk#
z;m+(#jlMpY5WZ!(d#zf2{_5xn;E`gBTp1nM6Zye_bFV-pBg4~O<@FCPEm`$S_UkHB
zDPG^%W=k_KFDu`AEMQWljt9pchmJiD__+5vC{%2?V6&+_&-#4++ryd0wqn_i`&s$z
zrakt_dEmZTGJWUL6`SAc7|)*meB()VuKH&yU%v?7$aVOiuXf?H;7QwzH~KTLVqp~&
zv1{?oRPyGWc>d|O*wn~=g{G!Mk{iAlUBCVA@{LbPp-#WoJ-ns-{8U_OWdEra-di47
z>v&)0NJsXbn)|$XXUn&w(_Gg@_Gv7Ui#_ne&X?n}uJ_GNshn%B_C36x^K4P5?y--p
zI^VkQKl&*0{zuZC_>DPJHnik9I<koFGI?^i`C0YTrv-H%*=wqI@!ns1|Kz*3lQSOZ
zumrYbe^O*jGpn&{c3yj5<&>jDNPvOl#o!mWo-zAflRo$3=H!k~TZ*zC``3K<cX><K
zzt*dh=N(wxQl2{f&a96&FCAT?#UT0S{~Gz^$G<)w7SGjO%&5Y?M@xFspBx=A1BrKG
zsnKc=pQJA7@?G)tedFo1S6SZ`NwM-f>~QP$o}6B(^D^8nQp$g!ZQ<GFk>3*IXSv_9
zoi-~s{?YBZ;S&Qrqpr?har|EL{G0PK_4MEPJzb#DmVfR`>*VVnYC>%9-HZJ&<NB(f
zCa3M{`lbbbD{jB~{>+X2`bmeK&giedu(i^3_w<mZdb069dz~}+o$l=D*b?dY$@jIv
zydRIs?W8YEl3M7<a{bML+urAsPHHXUjGk$;Kr+$Mk>%>UBeyr#Ev^sIjk_6l;KIgb
zd-p`^&q=@bWJUDS+$4{!yY_sHcl-ABR?QdL<Z6?JWmgRjy)J!vH}(0Z_2tp?_Ix$j
z>|TH5-GuT8o7b{cCM*3STx4(Y%{}yJzE$!}>skHVmoAu<JmW`1rBwYFWBD&@{5Q-O
zzZV+y@l@008Tk(!wKaGDEK6|Ks;qoCHND<4Q~W+}relVs{+>Nr0lRNkOq*}~{NsW3
z^ZosPOz+(L`oa6Bt>GEcadYdrf(`fleY7)V9ZQ?L5O{`*W$K-;9)3?bdplG%bqPzm
zZ(aU=iM-_f)q;YKp%qzGChd9Z^H)e7`D562?yJ+A<Ly@#oxKomnYr`SCb@?tKi?Wn
zt7i|i)p$|$cJqZzRe!7c>y3=vrTj&#`#I#iCbIXsbH`O4oIh81`DXRC2M);3zW4U1
zbhP%zOa0n6H{@x~x1D&xoY`&Tk0z&;AEvRy-96XG9i}i>IXh`WPZ(d0RWGZ-+?ex<
zrgPG!a{YMWx%1Sq@?FMBb|t@(471JGrT$xfUf|i9MT-(HvRqF7qjN3i&WTg^<5X+z
zx9|CIGVk4gj$21PXSdFnFP<P{GhMcQapc!9%W3;9r%eqPnV`R+;)}z+zU*V^-q$ui
zoPN;a{Qo(<+rKhxE_n1@bw^*^k#EeuBR=m}2;2Y5=Dv((ouHl%L$3HWqx9`<Zu(!9
zZcHei-I6|e;g>JF4}G$1_XrLR(UF;JD1P|EQ5l=!uCwo_CZBw9J)+E0Pi0Ed!w=^3
zH|#(6Tj$OXe&ec>XC$ZY-2axTJMPUf>)Xx}n=_1~!~GXu-YQ?Q?)P+=6B-J4l6N0y
z68~-R&?R}_k92G6XFP77A6Hykx@yH8#)<mJj4l3Mc9Lm3mtKBGa2gL!!|fC5+cwvK
zIJKjcWsgz&*8h2_hcD$zT)iaDytFdwo#MYYv22Hv?{EBmgp;rSdP|VG&gvq?Odc2g
zk}WCSHj^ekuuIO!o_D;Z^{4cKC#P4>+;gSz`Tm-2z0xL)c*Qx>4%;QHIPaI1>*Wx<
zjg5Ejxef0exK=$CnZ4-l3yU3kFQdx~FQ%#1{VogA+NQE6<e&eyr`_5!_8d7gdA|Rn
zrPn61{9qNhxWstx?25(58#~h5F0A!bX{@Vbx%&28bn@&88_O(@zt6f6e00+?`>RDq
zqgG#fzW$1ga-WEP?!33hKRE3*dZDV^m^***#D5Ce{xdclUH@o#?z%7Y4BE;B|4re~
zKdt?~{P=UT<qjoTU#*&7S1vf(;D7q!9+|?n`{}O5yFar<>d7ea<*#C$s&qft<X5n^
z!=tP-nVaqfrdsViy@4(DqBmbi)^{e~ufHQigMXNGtkeB>yruE%%BZDQZ{7BK7SFA%
zkG@m1Z0*I%sgI6-SsOmHYhrHY+t=nC)*p@S-<<!yYWq>$=eK$LzRdd}7rUB0K=D=P
zvD#ZxH+?V2@|=GB_=hCn{2nRUK0m$fQ~jq*DUP|y@*!ff2Ggm^z<pk}^WNN=^r_8>
z$-;F?=+XlwuLPYhO@A??=Gp8;CCYBRD}8RC48D0WG3OmqU70#)xIRz%+!dSStaJPi
zWpOMCG*$k5?O4IuTY=k_wi&%T`RvHQZ{`<I`X}8h=riKY4%pT(CF<PUXIr9X?hC!k
zbt1!vGkSmWop$?8&k7EGy(i3<>#>osT=$>$!qv8Y@yD+{`BftO?Z@jK*++e5%N=mI
znXvwK+@x!g{EIt{UvgdB@psPkkVi|qu1h=iFn(Q;GoxPm<+aD*Yn`4kL^NERdrEMf
zimZ+6svuc*-;aBKG;L31cg=h7H7(cpLFiHL+G*3*79KmC@vLOloc|G_TbJ)nbDa}l
zTtDsD@snp}nn-^BX**}4mZ8O(DR-mUOP;<8TJB@?yH7QF^~6e_XIpije=i6VKJ!7~
z`I~G@HgokWJ1lPB-oN|B$CXiX%H?YFC03O#3%{Xr%p~{JooTumm$vZA-Zob`ureW1
zZ_}DZ+6ui*?oLk}{S*2POMcWb2>*L=`b7+DpySoB=bLpuzlaG7PI#fT#MR(seD0$Q
z^PG>cZ&AKv-{tmha%6Ra{Ig`fka|sl!)MuCgu*@^TX0h4+x%mn=D!wx@UWrsxVA~1
z;@fq<Q>C^$98y-^Y4<YDYUR7CO}nH;&2uNYol<YvZj!ij%FZW(C+=*1zVgJTNsr%X
zb-g_oaVkJhCO>WS`wFeB7Q^zOGwDCxZ|SOD%rIwZ^v--v-+2?wm&W||HaGF!cRHiw
zMe#hpOAB|WuUpj;w*IW&_1x#e?FMaU?|Qwi58sq_SS`%|&GGQys!x~W|1aKH?fCwt
z(y3KXQ}&r~$+Z^vhPf55J^ev&qRf1=&a>g`zYCj8S?{Xg{v*3u$xG3*pf{`Se(TgT
zv&&ifk6kS&|L}Zcme%d(XHu)(40N4jxW)QEnQ~6(+x*O-$c}Tv(f5xwtkq(km+htM
z&%R|+Z;P_KXB9)+#~pXKysTaINPB)t_8QIhu)OCxmKrFQEZQQxB>wD)I<{>~f{!eJ
zUZZ4oF1J@rHGAq;rrl-nM{R8yf{vb1Z9Tf$G|u;BoNwCcD>r3~pWaa`PCab$Y|i&3
zx!Vn7Ht*67au7du=v;mC->>^jKZN^lu=^GD&CL5xSy@b>@}5oHL1m(c_xZk$=C%LI
zv-|waP2bIrzJEH!bFVS)`tKI=Z``#oZ<<|_eB#E*KO5g@zf%8qbWcXG;?tEYHfdEX
zag{6iVQ<^EuC4UXj=NLldTx0-FCise+^nZ^qW-^I-fw;u&$+XI-p%=Y&*#r<bZySJ
zeYI;&%E$diSLL<)8QHbW*B?0=n!V%6^&XAuO_NvZez!P$TRP(3tJ5``p9w5~>{py|
znJF!Q2Scj!$LA{A+hdP(c^&Iytugs(z~98ZXz$rAFKePc$NUvZ+y9fZUe@aP&%@d?
zEZ*@y;x4(#m|Q8h`uU-Uk=&NE7A{JglkzhCa>qI2=?hYytM4(-R$u<uZ$sg)*)^p)
z6Xf<P73|<`3=b6z4R4$`f1lgd#qu9Z?(_dlzHHa$^8U&Dm&%n@2b_3f?H~8<TKZ<8
z@YI^7S-~BjzZLJl_%G`Hamh=E4($oQpLVV9@f@o!{PX*NOi`Zt>(c&J$@`|aTzk&R
zW?R-e-)@Gt&#tCPg>&rfXF2MWFPr~o?>Y5nFXVrg{0iD8Z+(2J_wt*&i$o2>^jB59
z<kIwaogR8nS@%;zacNuMx^}ztr%{jnCV%`q^WPlp)yK*fhE86#<=t1YV*gzM_jHX7
z^47R~_E3ItI8*QmgU1dxGj)LvYoht%ofq~pn*1%$n`{;NBe{Y-$|TQm`}MlV1#K<M
zVyf-_EwEI-pXs+%>T8B+k#T6djo(Z51O@iDZ<qN#cV6Ck-}p?m?)vf!ugP}tlP~>D
zm9ltcAR-Z6u;|+Ac!L8U)verJ1NI)x*mhmQNBQ}j-%=|+9Wv1RW88GD_x6SV;>L5;
z{~qXm*k)aH-fyDvkL05wyQITD*3I9xCFAPEhsOTFkKb0V`SGXlRMz{hg)a?K`5tGx
zeokDjW^=7dqg!Tv^07C8E+Su^U8=gAdCH&Xk@UPCj)hr=9oMY4YB@f~gg@P`@IrCn
zRdJrWO`5z?TNa$ZE?)6x@=G2bttT_ZmapNGvs$vZ`ui&HX*!8-ZfsOhQ{(EkSrU<?
zc6r-hu3zh7&J>I0eezASJZbK4d-T)3)e&EEe$LKXVL1Ejnc3$32b<ZGH&6Yem@De)
zIB7}EW&M924)brxzRp)(UOrKhm7hgiKQ86ppPwE6SLM7y*1es7UjFrB%X-zu&+XGb
zKYe|<qx*#?x4hxAJ9nL?rQWN4Z+q$T<v<a^tztGZ9Ih1+wx_lnJ|k;9&0Ig4L7i!~
z-Fb8Q?@JEV{xMp*q~9siZ1&Gjr}aJk{L=31DBQ7o_w&~`l?6B^ir-;Wxg*u{^n7me
z`!g?jrb=vkWpFqz_<{GX6Q?)*U44H4|9{fGZilVk?`fVrd$vFoXikQ+{;7wMShs5Y
zoLx&c6+U*8GRbI|JXv`Co=;qQdU_s{LXNN}CatM;y!iA**f!3I;&;CGynOP+B`7GU
zGr#1F&?~R0S{oA&vq_m|wKO*~*Z%r)@a9d+=og>g#ZNfEeNkLQ<xb@5qP){H*XOyu
zX+6Q6$KC7Z91tJ?TEOc$S*^e2#O)ljLx&DU>@L$iJIhpAPp?nTwrat}j89+Z){7j9
zXtLJ+W7+!8uVb%3<-y#AmtS)5@umI!^>t0m&PlsUUq5>GENqdp`6ivkmtU?3TPvj<
zwq`-->aZWbe+vr<O_JSyUXIOjv-r8Y{|dZ5eBiDQn|U(p@yVV06!_yi_B@#P@WBIz
z$H#gttG;MtUt6Q7tGm{vYv#?IbKjn9jnb{!J8xI%>rFL3i*9YrZeP7xJ9bye!HX9S
zqc4cMp8Wd1*U6&E-TzK;*G{*^njikJ+5frf%Tdu9#ZOJvlOpHNo!i;fb?RH1_o9xa
z%a?!t^?JSX>7s4s`kq3)Ql?4&{`@R?d5N|8pu_ELxrS1`-#k51EayMqZWMp=^-(d`
zuCUdvi!Uy?n6c@9n27593*7#31?P=d$E|l?ufH?cBjxVwvuV!DFQ;<bI;;*`JHxix
zY;W~<w@E5dTQV9CCO8C&q(r&}iYR_+lJ2URwj!N#SJ>*U{VSJTeHK-}S#h?LtDTiq
zlnrB}0=uN-w@&Yr$a8!*Gq&D(<MjPXu)ksQF&;KPnG>zt;vHRGP9R%qr<v;?GHsf3
zuVPw3`qSk)jn`k6?5s<Fx^<7??>Q~)?c(uIl9Q5-1PgE!O%R=Yp6mJ(p4%xG*G8NB
zEaPe8mp`_8JzMbNHukE$&nEtCb0|o^v3<R--No~tz7<z}-mdzI;q0yD+}YeLGnXuX
znpbf)l4Esf_oF8#C(o>2m69@Jro~5=&(FRtEPE?ZVrAI1ctJ(ZO{30Pz3Ug6XIy+;
zD!~&~Vx=23S8T3dbJ$|XOCBCUc@yLJUs-wJv#8)?@ldZuh5X7BpB_AZ{P^akRPMjO
zz9v67(C9Pom*m`C*BsW*Q#0A3>$X^qon3j;8c_ZbF<Z^+$<(W&n5}9e#kp2%;i{RN
z<5o?25vwe4XDd_2=E9$!Qmx7>XH9t`VpaC$1h+m<(w`q6J)$~aO_VdqjZ)ui7}Xu8
z&k|Qq9I?h|lAF`&%L=EtqSm%7%D9ly_2(?h|2&OPiwZpyPQ=Tdn{V&G{+=youZHs@
zQRd0&{-C_vBVjnn)w_Oa*%Em@y}qOeMhA71x8AsrrMe}IH>&sU?CV*gBCbx#o-4Rk
z91W@Ry?8ZvV~4AbrMmF@i<_+jO;3G1)6iyPzeY27S&gfg7uRC9-bX2CRQqIiw;c^S
z!x@q@{l_*(^{l!|x!24Oo#s8h{7QDE{adB)wOljyY}<K#+pgGX5%s+*cfX8Wr+z;F
z)QPQ8(^6Ar+v==X;Wf{)XR6cZWdfBOJD&1&)HELxeewBDa*OM)p!JTbt6HWezq+z=
z$BrEVYokQk`C?U-m5cpCzDm_^tK&+4{<=H;gEr6Khb-6MmAl?7Yg}1s9hhG9r}<-(
z;1dqcQztex&H7o}`d6BpHRNeq<>zOIO;wMjaB)hT85TY>{3f@<tBWaM7Gu5L`C`Y&
z_m<r4%k>{_c75KtH^GhVg0*14X0E$#ri)`|D1Po;kz`ff6Tkn?sZVF8du(9hTe{-T
z4#xL&A<YbXPb^Rs^;9<e^i@6MnwCub{!13SB{oK;{^HL&^!l)U>fc{mWo$|&tO~9D
zB-gp_WA~bwB8`(@YW@HFMOMF8f;%+LU~S`u)e9Jo28E=!x}KY}AucpjWb2Mib;k2*
z!h+v9@7IXATi(+9ds5)t(w*_ik-s&}^m6*2{!kU2zG>-)0=6|T=iJ*j{k(h5lNBfT
z&Hs8O@7{}DGvcquDmj)Ov)`d3YMbi!-s*g4cT`i3+O$30aqE}<f3Pfs@7tlPR~a=w
z$A|QO>iNAvdFkFuFRd3aZq2HE^kz==vVytUmQGIE0&#n#&ewerI$x=}x$2~)(Wm1a
z7B+8-qg={1SN~gAn_*HQ`8%kXCvlG8@%j0EOQS5S&n_sraJnaAMgqTP%8`%HXKe5M
zvMK-b>d%J4+haCc>+bYOcinz)PvHr#FSD5o%j>wFe~RCvy7~H+NkWIO*R}_o`>8qS
zuiJ-9^5Pp)WTW0>i%h+@=>6AaM-6{U#DACXt6#aipsa3I$2a51s%z7<{{&V4vETFi
z3-^y*_O0Ics<mItG2d{McYXMUokIMdGN(WPSW?H8{y&gszHtA_hQBG1ZlNL}u4n(r
zo4zhrto-80e_h5_=J-SB=kG85RMoP%JbCHu_-E%k1*hn}_@|=GtKOe*cb%Y4q-Bfi
z?6@b7#b$24HQP5rM084sS<R+-wrK?`ZcmzT#+P_a{_l^U>%}9#`e(1Q>MC&ajN1~$
znV!zf*H>jCrCGiA;DV)Pf4gjc*C<Pw@g6&VTyXC{wy7z-jOolb&Ui82o6+See4u!;
zUE2MJ@;CSHkq`V|>wdkQZ!*_{nB=P`u2*~ue_{Dp`<wi~d0+2uTO6e+8oKk?tc%GK
zyYBTHaxWLIE#SIe>h)~$x%mdqYwlTQ&aJ4qx4lMaq57Z4k}6AemEYdUkg{UDVPWzz
z{M$A8Bd1~~&-l9LQ2ya%n|@5<GB52_x)gn7?>(I&rO)&0yRUC&`*5!-|K|R$rMs5t
zElqE~e{=p{v#o_cW?z+XuRr#3HTO;9gOgeHQ}0C|Y@B>3H*n4Cr+)YMJiq_=?~GSI
zcfT;VPqXWNw|nLqFWriLjG>`M(;u}9<txS%e`hw+JSq8SPl{}`5Z}VAka>3ZCgi=9
zT5$E=&3T-^E-k&lyzEVNkn#HuzieN5XL`hJp2VLPt7vOEGg)0XqlW3_-!x$*nb0Xu
zigj*heh<GhW$~W7MZC|AO?HHGF8eO6`!Xz8eV>lTN5k1?m}Wed7ka@P<+aml!PV@G
z(fJ=*SAUhNuA6!E{Bs_YjEBw4&upwER+{aQzPhO{EaPyC|MtxpKhpZ@Wc<Fi=+>BA
z_j<l_z40?n@#^qhT>C<ppX>;&F}Z)@1F!xEpB=V&5+8nf@A>t-U|;-Xm-Xqk8hI;=
za*bzr9?p8C=D5}HZ-(t>?tgY!i#F%p_KkJ!)3(`rfcO2@YrbuExzGPST`g)=r6+l+
zq3xW<l;?9LYk%&(WwY$<%VS$^efxW=O!~lyWA9!xp7JkW@>E**$L|%Ld2xN_sol%9
zMGE)s`gz&BvUg(LY4%I2mnlCu%N{SAQn;G8b;bHw&P%y|h1-<4T74=ve72?hd}iJ6
zd|h^#{^ZaQ755p{Nz8Wtt1fH_ym5EuhA0PDRrX~&EXv;QEUG=)x;n;Z)6K_;;X*rR
zL<;Zzao^I5wc_FYg3isy`;2lwn0~4MwxE0e3$yS?J2Tt8j&8}(xpyvdzwAo8AEs*d
zPutqOf8OfX%b#(4h557%ZyYXtWeZ%+rgA#Ls&<C(DtqUwX{WA--zs?}aQxEa8)3_Z
zg+JwRTNU$a%Sm)=a{nu>DLl8U;U4S$pfJCsE6r<rrI&7BQT<fS^<K?8iRG&HZZ1}-
z@!s!+{hBwed}BAQE#`Jz{?kJ?>z4;U_K<Yf-kABy_x7R_udkk+zt32zKCXAiKchmv
z)t)m7AFpK(%nN_=ewljxuPdVa?(Av!ys%JXg@&JktZBhT%ZWGtuU#BB_mo6$tGd3P
zC9}MFb<CG*rgrat2ON4nGd=RYyW-b7na}p^oe|Hkw)xfHP?L-cGmmZZ32P0Be$81o
zPp<FxROX(VEK&B{LY<hI9_`O<kBX<M#y$RA9b)-k>%`ydrc$T6^bct+H4Qp;U;2H}
ztTh=9c{g`&nyPsBdBM}8+i!df7jc~DW@J|Hmk}O(acN*^z*fbY@;BVSD(>Hlu#{Rm
zMf-2iwZC@{X5YEC_uh(Cp-03#gFguG&5RcLT($Fv`{JV$KL3)Et@3>+<*)ejO`6Tm
z-(r)$e<(S0GT}&CP@vC(r~|K(9OtJzXtM0Qyj<_@haa}j*A;!svf6%$b=`^IlU2Na
zvR_JesNBM^O<QJ9g7f2NP1(;TrXI2_ytpdk?&*M=hxh5dT_icXBer{~LjI|<?Hwn&
zT-tudiT_~QFsJuf!%`#ty%DpuQhPE~XKJ(i6`F1iy{xFvqwrGablLJ}yC*q2SWLA%
z`seIPjiVwiYo9%{tJ-rj`;Nw5*SoLJCVk;obg(`C%K19;qia7hw#DhWriiA$E0O)3
zwm$s}|FQVJ2hMH2ZoOvKdHKgFZB^}CzK6N|)B6@uP+EH6`axz>=HE$M>klpsHCZy-
zch3F^Gu}&V_D#!vlNu1Zs3yj;!0zR>b@2!Op6q=7<N16GA)T(;xu&giwe`}!Nf<nO
zsk2b`t#dQO?}eO(ol8z>6%{FM41fE2kJFrs-EkWI&z!>kZ@azv@2k_HDgnjQmP!k4
zSTw1ugg4)><7^rC)_uH{n|IG+Www8MIaS@F(rjLB_O%a(PibrH<E>oYZ>-&3dt~?L
zK7rzAN`|}3jFRtcuPI;BFz<s^I@6ymb7Hs8KV0ak5_4AL(_;CzzHyJ;UM}sZ-Wyp`
z$1Cx3NAJzU%RXPe_W6k1jbrWle@-oYpe`A8_+j7m7kS^Rc75tM+~a9<zc=>m#S&4|
z$1=tDVh?pHZ8Z=6(!Dy{TzuWm-7OVAHfv_ui=}g~l2qYL>2^w)$#AM_M{4~42dybe
zdtwbUOk+H@g+Kk{W&P><!yie@0v|qlw6teVmEdI6<`jlWKbHRgu45#z!fc&*K6_lk
zyXe_78pNg>@vZR8T$1*zB6;tuEgvo~c;$6DuY#j~U)7W;x%I{y&d1rTJ5n6OW^?Gp
z^+h650=?^%RO(M>)Xx6!HT?HW>pzt>aYe@#JBcvI*Y=#1Pn{R}*lG63`JW!|4z65(
zpX1(nhQ;Ngzv=>IJs&%*_MC6L{7%U|*`HkTYRrD~u4G(o+xU+4XYo0c%H`tyU+4KX
zKhO-=rK-(eroZT2{p9OA9IJkdmaaF?wc+3O?}OrWci)F|!<u(=H8!NZ{qc8soQvfl
z-rt`0dS5@SP0q4?X;&<>oXu}h=YM_)n^PCJ)Thr{6JKHO{K=#G`@7KTI+2HNY)tm_
z@i}vEL&e7=scm~}!nsfX+nfILexGH`r(I2x`1+pD$#@^xZ#P%!@xz&Sy^eNjuZ+mm
zT6j-S=T`kZzrZ?%n*Z-T<0{q!ZFI5AyY~Le&re>B(aQExN0$8J{PXEwTG+qxncOSC
zb**r=)PH3Y+5McIMfky#mvJl1&aJ<9D*V1o(sN1U1eFDWBIozV^&hKCQds5g^dwZ&
zHEiQaF0<7=SGAJOq77%~%rIIbk;|TWqhN}`ln2vpY)Ta>^lY@Sk}N3NRDRRc>V<*S
z*B4)-N~(0N*0S}QefO9W{ZG&Pc%SU%`uIH+6Muewe*gZ$w!hj_j^)lao?aS0VatSP
zll=CWGV=Q`kGamL_4rJevN-2gz1BGG#Nd>Yo6Yv3>b*kyYO6M{JKy{5<Kq9~wlCtR
z=&I<}t(E?m`P%LK!gtCQ6KX0wgN%=V37e?!IX_YMpzI2j3{{g^uPaZ@+rRGl_SqL_
z{kGy-TAit`6wBPPw@mJ8g7ae@b-lO;r=Dh4Ow*idt=m;wAgA6uEn7|cU0;>MndzE4
z?B~^-Q|-4`6u4s-$=6)6cu)AA;Je@b?)o|_fAA<{*Im%6eN5%q+Ph&d{)x?Qn(Wx(
z%EIpvd8Xu{>8#h?4h6eklt`IG`M#@B_1qp3yyyL4sg}0N$Ih7n4wo8l-aIrb`1g)k
zGiL4Wcb&G;f6d}aiCYsdcv-H}UUYh1#JlrFd$ra!Em6vRb2X>&!MDSvQYBFjI4#{7
z7z9f_T^vI=*M@ES{(5@I5}C?(eZ1KTlXc7g_bzSUHZ`k2?VD2g=_Lv;6%Q)5&h)-+
z^l9dC#v7$-ogVq>Ih$BlE8YG-UDRa7ca>fy$9-DG&omml7AdUe>e5=Q)SM#BCUmEc
zH&EGm+4pr!U0L!IgBG7yv8h%`u=SBI;}3^3AEWl?ss6KyY;&<>-I7qcX@liIgSC9_
zLW0k{RsGd%=6<~)!n*j{Jx{}DMN$Xj{5p>L9sJ9C^~UK%wN+-Ek;(c~qPO`7u?gKV
zs%jR?P21r%`{l)KqtDTKvHDT}<vR2~cuzIDWVgcXd9skl7azB)hg6TNsIC9ezMkp#
zqnA1IN1T>VtgtyE+>ji8DO2pp$Arp?%;`VhE;T*!?ahJP{nmx%(R@1Y+l(uEriQ1R
zD;@F_>8f7;L1CqWXIZ|McHXM1nHzSsByYX3JM7k)u39FJ*-gG-0V$%cg0gHZG3U*r
zIOm2nhb?zpetFU5><h0=UVQmh8d<5Wz20-?&-FJhPFl2T>G!TSUaifKb9kgL^Cw-4
zoY+%vtYoHU{hFkZ_s0XL{NG;w{A1vhO1b0qp;yzbUY4k<sI;`ibO;<$<dCprO`G8C
zc=4+1m#x<G4Az~~c=76!lw<6jj}ER!k8%gP*%XK-hNc7-3JA7qE3kMpc$_=u_^xEv
z?yUbW-l@#tZ0>vX`uo3j@zB4kLhQd@**?GO)ygWKeSfz#ocXd&rKGsXHB9DI<om^b
zKcB@++rO`WeevrI4h@&|B?cd_C7zKG6|IpE@@CbK{mmHfzpHEM_9F>wU)cEN&-|V;
z{gcp)zh^YmQfK+=CGVZ7>tAzhR!gFeWVZXt^-ms8-}dq2v7}F3(FQ(zzx<>R*_NkW
zI4kroaK)p`M`uU;3zVG7Xq-8n|LMP-;*+x8SM0UitG@V5cI4K-Nmb7ytjf<g-+#OJ
z(l%GY%*;C<<dtVk6P+b;lp|o5<@D6`PdBP=?{hmaOTho!6~;RywOpNE71CPH^Jbkq
zY?+%sG3(}k+3ojtG%G#YS^ie!*m12Fq3k=$PsJD7*)_M{s-3n>NN)e9dP}3%R`cfG
zdMEh7fqDL&on8EGz7IDZOx?4uLS1^>^@}}j*B$rneA=kk;}LXz=O3%h|GqqDed~5j
zVy&)rDDS*A53N>eY}t0?kD6?-13%lIJOxR85mgI8UxOD{%N*CU9X~X?>GUD<&xdP2
z9*eXq{oegz9pi>5(>xjDIe)G$71`k(V3M)Lbo0s*`E8<UX4Bs-x7;Kdo+q-MSMKzL
z?#t)i@xRc0Q}<K&UH#U+HLuwW%fn=1eSP1=?w$JlU3BmBm8*BCA7}e|_088A9&cYC
z=yCK8v^#%y@5J79Ib!=PI~em?gZDBoe>OY6;+40!`TncS+tVJ{PCCCVh+R2P_VC+G
zGpX`tpPmHIH@4Snd!ApC`04tlw0Bw4LQ)Ez7h8V0)*WH=e7(&qq4SgK3(NQ1lR0@n
zC*pS|>siar8`i-rU$4H=4VNtVFOv54`iJo9h`%qwb>==#d2qYg^ZK4AdVgDfPrG`l
z`j^79GhONz1s9~a+pWHL<J9u$YK6%;rq$XabILUCMYr1@mtEuXuj-opUiSWA#%LQ`
zrRJxPw6&Ic^e0vHKc3IZ7ZO&m;hbC8GS;nki{Af>36pzu?0uT}=MTBFSISI3?3}MA
z`26dKhsyDvUNleK^UX`F^O)tdc=y-V`|`4-_pfPM*1CT#)57QTM6V<q$mUXub-aG{
zTEp~ddjgymr$#l$@v_x?=n6QP6LissYn9lV_^wl&=5h5?rv0)1=B=)_bH+r|N#f;e
z7u)QTGFfruRYdfjUbVB`OXD6#_%M5K|0B=&F?{lzNAGgnxk6u?8@<2EcFd+uw48tY
z_H8o3`UQ>$t!*}c5ir(&*ZVp{(!Esu@MP0f+v|@1*}3ydkL*eAVk3_&bC&t+30+gQ
zsi7l#T}sNFro@J&-xI`ia=y>}a?t1hhKBHM*Du=`&w5rG|M}88y+3uSe8NH@2Tq<T
z+&$xSrQ}rO*o^d;_iAyMJI-#oykT3DR=v_)tBdAWinjDDt}?kEBjW9~iD{)?+L;@t
z)%&LhUdj>J`&9eimNoMp_QxE(v$5~myJc7A#Y$Rj>{OfWb^3d%h~VKL_kaCJDYre_
zCe6;a_5QzJ^F9?r)z2F8t3H;PvNylEQO9q3&Z279)yJpS?cC6kq&w^N?wPlyz3$D4
zt73S2>hwvQJ)O4CLge-?H)ob%2=tk|WwL4h^}yH02Kg4#KfU((S#~Erx#fPia8}yN
zuC9fzR?O;>3<wpqUBLd|wC7s7t;&<5g^KGn4lW3Hs(l~z;n=EGD;GY^igw>4SaUr5
z$J^a=SGw(=F|FoChqtk&eOXU=msxP;N>@Y2z1t<F7M^@^JS^|ohP`w8&2p2&PNmMh
zoiVw6`+VD`%1bPHyRVeRoEALmH$O3O!=j!`)8aJPZLYXk1)A5KTO;o6Ip21s`?}Xn
z&bGCYCONlH&e~*=H}~10qFF|lUu)fnWI8Flc*D=^A1`{9-UzE1St-_}E=VY!y>Mrz
zT0ZaW^IPs2Fvy-=m0)6eS;XMQ54Hx!vyA+veB!prhmVIXUw4LkqMp)UxqGoSEXijq
z()v3ctRGgd;FIPnImKVGqO>&i!-lGBdmk)3bYIqe!K6@s@kyU{U%U|}r&w2GBG|?F
zL*r&#`=m*(=Bo>1wnx4^msRuerHcDD-S4uuj(6D>o~gLdyIZGE@2vfYuji^Z>31F|
z*O<S5PqhF0*VPl3UET01=G6M&r?+<=YhKiHOmTItdY%I(+n!a@FSIh2C2V-TF!Q#`
zeb?W5vp*Dzbuq14w56{<JcQMkmv3Rn)oTaM(&wJuzhgqU>5fO{%o_g}Oyd>Z88Y)#
zpveW^1Khf947{y(MO#hGDmn`ytnQ?J-nTbrMS($Hl?~t1C+o!a9%T>>IqLrLTU5_3
zuW5S(jxMqHPrcSLnfZN%-M8A1mhJZq^xhS{GBTdkzp?CKc#iLz<CDYP8q@XTWw#ks
z`0;$ZcAh;$<9m|JjSXSqa|>$?97?55MH{>cdlQx37yM!O#kK03V$4i-UfbV2`#H6=
zWTw%iDT|tI!qU>OG`Y-K{@3wy;GVsFrc32*FUcGUn;LLyO>*pa-fW*p8^c5APj{OH
zZB{Z!bXYKPPqW>wCp$WF_WLfLd1&s}8NrWVWbx^m@5!kymA`lTc#)@0#N5a`e{MU8
z-TQ2o&9Uvt@$>teS|86{vGjRZ-CXVa=jJY8bIWGu)sk3vZRR=_f1lW3MUfB3ZI^0z
z>QC9W@7o982q#DRfBP><{d*|SqHL1$$>!}k&dm|NcT6fRPD!<%KUEf(x{7~WNGXSg
zmD&2%wB7T6S?Pc4=yQr&uC;!WRj|q5Nn0lGpZrd>zS>qL{c>n-%3((NbKSw6H{(tm
zbdIYztbFdzkqB>D>+e53c3JT)FDjb(a%<|I();Oq<X;><bd>p}D5G!nX^n#?uRJM>
z75%5i_a<L)Rljuh$?xeg@=KcpGag=8$Ck6w&}H>pi?BwwZ?Yc_PR!qt>GGp9iCf%9
z_T-_Pg)DZzr)jCqYSdhIIbVBA?+(L@F2|xg4d18d-xD<36LWki|5wG0N$jmvB9{;S
zz8m43x6#Y%zs8xjRc0CM(yt3Px77C?lZul2@lYW@r?lwprwE<ise4MltFP&MahTb=
z>cZWS)8YC#kLEsQ^^vt~II^f%d%xe*eDzm#AB-2~N#E+N3TReel_;T6Rp7izYMxm@
zhp_d(Tf6ca0yb=aeJb;<9FK2gQj3&?{joCv_Rl3s+7F-Uom_n3+Nw4Br<R@xX@1Du
zoptEL;S)=^3*By8ZR~$2-n}wodB(z@-JdG!r#pRXzT5dVY}4`x#mCnc{z)`C^Y5}%
z+?hR1*7_Ug+P(PeD{^(kk>!#8Ss%BHJpKIUZv5oxhX(WNHmIN6c44Zsv+!9p?Tg#C
z{pGIc`*bwXnE72v;=6>sqRfl8P0|0h^2@yEdDo?En~zC-6LCH!EBqt5PxNYvn%c$2
z%R)J#Q+_ioh}tl#$2fnni?ZtN#+yk>+Uw>`?cR5Ax@Cu|_{@xm=L=5>I;Z&*%-(0j
z@BUY?=iM^d@;OZNg37{g@7S>3HX^O9|L*DHm2$>i7e7AuSzxT)_w9lGeMyIH%m;iw
z&5_zSYvS>?!?ipA$(&wq{Iq%-uaR<%ve}=gp8=1gkN-{3xFoLcchmg-KE2le>o5HK
zYnpz)>3xd#zvpWw2nwd9`N_3a*Rs5STHAd!Gs(kAO}PE5vaap6$-h?!%$00D9DZi|
zPhFmKdD6$yO+r8Z`}5vn%C-LV<2OG34RBj%-&Lq7wrj~#gZ%qa@2Wp=Uz*;V{^{kj
zJX0PXlQqk}{Z0zlu07rT*_&h4S0m=_w49i+_U_VMce_IK7v0NFaA9ccx79A&X#bBX
zEq!*v_nFtF+xniLet$F3Gx456c82`9HA|QDIK`_dx0NaC##+CWaQ{{yEUJ-~UB@k+
zKHGoCjgJq_XD?jRbI3tu^6qSjSyQ+02w#<t-uZB0NK&Z%{r4+cm-q<jF0^|gCa=58
zuRH#@!6DI`{{LRta4p_#Y#n^qfQM-*tIquw4_<{o+W7eSiGNj0@8pg|-9EMEX@o6r
zn_J7zJEzw_{$#tms{W3R$->UPhhvv_ElSWh#`)Il<yyhzb;+5pOO|;>*JkZLdCM&3
zx`ljuz`VY*c}cg9FqRa$OuA#+_GMn|xnIwk_vVXTt``09t6949r?Z)Jut*k{SH$)l
z_IQ&eM&+Jnl4i}x?Y1E|V!pgu)sVF4eeU$a>U&agJHF?Csi+jV8Mxd+D^2?3I)>e=
z|4PgVxS$#RpO@ceO8?tef_ExsPF;04G=xztUBt6cE$8LRFI#g`o=UrW%zU+==C9ej
zKMu*CE+726VDVR9xv;%qj;GGZu(_13lab=D{tyw9qCT%GO1S#I&boaY8dCrNQ$4r)
zSCMC%=;C#K%+XvwN@jQO7W;m@_J(uo-LtG48Ki2T`8<BRJ47Z>i{+K&l;^6u=FeUc
z@PGHtYN5Y#?|;6yXzrIeQ{DJiPj`-g^69?zEJ>sF_O(hp2hKN6-8qFv_SB8MgMDw;
zH79SV*)Ti&UUBi^0``B(t$V)SsFPynPxk3*()}fKdi~<B_0LaA?d!2qJnuaHhFiP(
zjtOFaUl#p{d3Czd@cEWyD|`06X)1p4q`dI#BF+f$`s4p?{urL#n^3k};=^q3h(GHk
zQ(Uwf=3kQC`l2&Zr8WJXk@d_i2`azyZyos4es|9XgU3%6mOk_Nl|D0a|Kh%BAI;X>
z%d)F^r=ZIA;hx*SA91(cC+E*T_1WCY@Tf}h^*{G)zQxCX`n{c3=B4e7eHl!b*<0m2
ztR7d*JygDZgWV?m{@AB)o-p#%nJ=yuyX$Yh;NF|0UyDu`>fAi`yZ+yl{U%JarY>3I
z;ubU6aneoygMCpw?=n?d@|stKaR)xke80E!jaJi=nG;*qGfz3elBO%w_34P7+<x2X
z3|jBbyo>pFBIRFZNkPZ5xX2T;U;Fsf=}lY_Al_d6WU0=MTyF1awa3<^Gqz9eR^xyE
zGWwF|1uL!j@`-=@Zy3G)!6NoZ{ohB6%Vz?Z-Jg4MmM)vR=Wq7Ah>X;Gvzt$B`Lm_|
zba@8<_q(-I1pWJyqi+5Dcj_ra`?Pfr8~-%wM9ygPp1Mor$o=f!;(O~Vjh+8SxqNwj
zT=sJRr7J6%pDxeY$f|L=y^!0@Q1NZJ!R(v^-lZjM<$t1u^g>_F60mQLe<E<|bKk3k
z7p8mvF{Un?XtIspbK(8_pZ|SWQN|WGTeZ};W4`v2rK<WZ0z#jhI26wvpD^7!L$PJT
zv^@e&9iI)K=%1=^^77zNJjZNpzOU@mQzN5D4#m2oDo<JkoSfn~6kA&M2sm+YRw_ab
z084nB;Km~{VS>05hoU0PN`wxC1lVYt5(qodbR0SV^gm<&tjD{nUo$RZU|?YIboFyt
I=akR{0Kp$t-~a#s

literal 19996
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

diff --git a/sflphone-client-gnome/doc/C/figures/record.png b/sflphone-client-gnome/doc/C/figures/record.png
index d10233a7597daa8d57493fb117842e6065057851..dc5635c3d5cd3bcbccdad13c38190dd2fcd3373f 100644
GIT binary patch
literal 20033
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

literal 19939
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

diff --git a/sflphone-client-gnome/doc/C/figures/refuse.png b/sflphone-client-gnome/doc/C/figures/refuse.png
index 8c5a0d2f9bfae155efcb5a17c8122694d25cc1cb..0b644fe9cf6996be804db2fb09508a0f5ff1cc09 100644
GIT binary patch
literal 19497
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

literal 23461
zcmeAS@N?(olHy`uVBq!ia0y~yVANq?U|7Pz#=yX!`%<`sfq{XsILO_JVcj{ImkbOH
zY)RhkE)4%caKYZ?lNlHoI14-?iy0WWg+Z8+Vb&Z81_lQ95>H=O_M4n6V*HxR#5@@o
z7#Ji=Tq8=H^K)}k^GX<;i&7IyQd1PlGfOfQ+&z5*!W;R-85k58JY5_^DsH`*TV5k_
z^!M@m)z!LtC$umqe$hMIR5C?LK_KXb>#U9y_R>lE@va*eC9qG7W9Hn;;gx@B^%e$B
z&X>03JNNzmt=!5Y#No+sx-M?Ldil<~b7#(-`S;E9%CxdD4}bp&{k30M4u9uQdHHBL
z$AsK1d3U8)xkNO6SSS4d_jkqBS2mj?jXSL7wncA#_9go(1H<ODvrg-;KQ6GCaw}-T
z0-*;_o*bEHTb*%vneWor@T{$~nA!O*tPECXD0_R$b$8j@4Y%J;owQG*OU9;Rg5O-L
ziL+-%|JZ#sOV!S9-ZJ0WV!!upT5$cfW%)aqudl8i&M~{ZE_V0pBdObOZ}c|ee5gFr
zx?E3FQ&YyKLZJKTqAy0QTv`lMy+VK7y?l8xx451H2h+`)H>Xb8w|lp>xPF|=;)@Id
zqN1%DT~lZMYvmRXSba4mB}L@lyH~HgYHDmEBO{O2t=FljtQ3@$^(`wi)0*0qd3hP*
zg>|vkSIl<zne#m}NIfN@7q`bFDM=}8b?D1nE|Cy{O*-Pg-xXL)P+587y{PZ~hXo?b
z!aw{idnukH&hl{DZ_h~~5%(5lTFLYoJrBM2c~YvR=OhnL&x08zj~+cbv?cR$!0nvM
z^2R%NV%Ej(Ubdr=OXQB~p-Cz)m)(DFns{<k%!^}|*4FnYZApndmbd->l(d68@Aw|l
zs?xKxw7l`Q%q7s}?yl18dsVM>H*MM^vMFf613keo#)Tov4oy;7dBe2Y`p_g5&R(~}
zEu6v(5t~vt&1SEi@wzJcr?=A0OC4(%+!hPAA8uT|I=eITc8-~knsC%wvAuEeT7hCu
zcoU3fdieOb@J^UFFD{~Clfv<wXHHH=Vvem*t65pzgmFuqbY!l#x0yS4%Dq(%2X#Z7
zFLDR24V$jXyZdh6<jKK1MW)@&TkbVgi-n#2@$={HI;VN$?dDuv9X@&5w6G*eFYV&Y
zbxDqrudc3kU+y<IVpoagCLM8Q-Pvc|zP`Hp^5SCl*Voo6tE(>$S+vKncK6+R?h%%j
zmZ?hGk<%>8zDlVDHoLv|NlR0k>8W{QQ_t?z+IIKi=6IfWnmpr-^VaM|yL$WAJg{?&
zZchxp|H!c1qobz3-%NdB#_QkC5mkHV6+S*TRkQc!=jY<mj5^whmNI;Q{``@!C{T!6
zJ1zC}w8ZVVIk~x$PfSo;6S1-B$&(b9Kpo@6yInHI#>OANeocLIW8;}Qmcm=3dNsOk
zye+G#t(CMWP}sS1XG%)Sohj)TYrKONzgpzD?sn*pecpx^l~sb$!p%{tNhUKVq)4XB
zeDb9v$jB(5TWi*p)u-Qehrfu}|E+%B7MAI|Z0r&g{B45fYgsW^AKOxqbnac+%}KH<
zHyAGV$Gxw2iugLI<WGFf_fO_?wus$SPg7j)f7i7w<lSoaC$I0PM!JPrEd6x*U)#R;
zD@QdOu4Wz0Fqx)lyZUO?<nB<Dvy=1+W}kJtx++xCx=d&1&Ye0@TRN63QAvqRJJ`eu
zikpqe$3MMZzkkw{DIpe*Dpnhbmx|`Mcr8^jHlEzdEpAlzr{Y+z^zrrk|3$q}>XS5X
zTeC*z*}1vZr+-9da{0wxJ7q5^-hb|Hvv+uM<?ELlw`AX)6ek>a;N4ShDcL1zO;?-l
zCOv(!liMUaV*cUqq|9LR5BqN?hu+&V-(coK-z!H~-C63T;Cp-fF>{;w8$|x3Cq<~n
zwiG`*qZwSaNMq5}to$G)*US2|)?dw9ns;|skDTqSmKK(0XJ@xx&C)ITf9cYtA0Lm)
zgS;lJ?w4|JPi4%$nw<vy(MLDriI!Z?Fj=x>i9zx)p17))s%kzn4xF27&B@27rmNc<
zU-y$WP$Y0=h^kz?$zSO}wbrTGTPI~s_w?9vO530J@x!#<m7#m3<oA44%g?uG(d<<4
z3|OlsbFbBT(vR1VR9~@OQ#m~2_x#>WPQR_0*CTjOxUB!tkr|z2xbWE3^?JUu!xV3-
zDW7%_Jb3u((LH~E&U^jJbJ~X6sVN&z*gaXjNP4zU^z?`G_nmz#H(^UDXZz~1#ns)b
zUYz+T6J^`ZTJMs)OVQpjzS(c_ap5})#q_SF^sSwDbk5q!-<-R$w!F0OuzNc@@NOvU
zwGut~zs(&_qb=tvi=KbK{pXwSFa6H9XFVuMwu-Wsdt*MMPF7ywfG<n1QTq3_$(c_W
zAL)LoZ`<Rgw5Cb&&QryM()w?t|A(&(QBhGTcyU3|Eaygp0>@Dgr=>xO+i(B;`F#G%
z+uQXyIXRDRn|@tY$3nmP;DI%fn=5|3TrO!<qA_#k%s*c)`)8O)u{dgcy%D{$Wz{0<
zscGWE!4p^+yKnj&J}_%b#+@0-%l$4tKPVPbSkCOoFqd!DkH-A1dl+UOZoHcIxF+e7
z?&W{xv!858E@t4^5yrcqN>n{$Q}3K3pa1O4mH!yF^N5@Nygufa+kW4f<9Ai=@QX(i
zokDsTzg(?MIicdVy-2%+k^8~_CoXN}97iM_Uc0|`eEc#n)<tYjrv1m*WA+#4yjsW9
zwuMJ0D*x3s*%MF953g9QUH38Mtz}nTsmzkpyEFR4`~52VJNHHlJ(%VD<)_9Z7yDTy
z(#NfZZ$DQ3WB$vDQBWjQZR(}tDx6cjS~a?kUI}oVC)VBC(ZRvusG-uiD9j;AP*5;J
zXWF46u_d~mLW?x+O-YYD=Pb~2=%9_GKv!?py>~YjEuP@I)`v^`a?;U+;s*tV%2vwx
zznu3*ZGG|UC;yV26-}$HZ|Ep^2kcgy;X7fjqgR!cl>YkNM&Xa;8}EG1xij+&^W8rm
zUfT3+w_@(gd2~)L_58EaoZs5a)s8YNAIv!Lu;$m}53e&_&Zl2GZhcZ?SAR^`A+1gQ
zHJOU?wY%nq)V%n0PP}Ku<0H<sQIAV=*fU)(pSpL{TwdqFn&R?%bFEq&R$W@ur!9T-
z9gF<}=A1vK-*flfoZGkUp}?{|H<{nBy33iju`}~{*An6VUHtYj$4!@S+w<?Mu}RR=
z<%?hWd3dWUO!bxDf4oau?8?<&A0DbFhEywb<eBmb)P24GUR<1Ix_0rqAjV3OC9zXH
zx{h7sauds+n(z5rWWv4PtQ96tOBerMef_nheVvV^rDe{I4UG#HD9o$<7MXT-R;%0M
zoli@;F5Phoo#|wl#T&VZZRJnpHMXU4yYKeR?lz8-lUpEk@GA2cy#|JLc^BR|u83k@
ze6;IJJm0R<JLg1yvcLD&ZceVd-lU8PjwR|38jnkSy2aj;_3Y5yRdc5pi=UXnpgFm_
ze(AHnFQVsb9Zg=fME=IPojIJ<ZYCRlZj4{MT5h}4*N>+@2i`1Kl4Unq_M&;t88(5H
z7Z0>A@?0us>$iwE#al{qr|Tuo3<pt$niqfX`Jb6-+#Wf<W#aO~s{_{0npdCAzcbKq
z$BrEdTcfmnV{hh|&6zuQqKfAGStZ4XbIhiD9=vl-A>U}{?Ag+0v)A6(w&-1yXWG`N
zk6*q#IVv8nqOIL6U-zRi`FP*Qzu)gae*gY_@p;?wV4w9St)c5A#2VhbWA)RMIdvxS
z`OM;ytV<Izn|~P<{7hTZ#89Oku=2nJ<~+GdFYiec9`0YgfgwfsdS6b`!->8PT+a_2
zuY5OG(B$&2&k5}eV)N|UmuCERIsg2srgfeiqlkAAr?<pk?HwmOoEAP3atTd*^V)6t
zg*my$6i=U+#Jsy?a}e{-UEW&L=k33ma`v|Wq=FNwOD7-ge9P{s_bp~!?-G~W`^%<m
zdZ7{F=f~G8W%}qyr|^}P!O#01g{dCQ+g|+ajN~knOea4-KC{`qX=i6`Og}FtWu6!F
z;@H&fcfwXr<rdewu+)3H(0pH=+$jOmQf+K(BuukJ*qR$>8mB9rHi}w1t*3|Q*}1u=
zKRi4vX`IHh|KG3dnJ4xg2|N@%cTURoN3&)%SZc~;U3<E>qj$~RkjY|K|NPhx9ewZC
z9(I2I@>y3uq~3pdIN?jv3gaCsSVE%C|JO@=`AX1gm2R6dyT!L~6HPVF-B;V3wN_kL
zDxaamaxnLfEsLnsR;jHee<j-Q_Jy<r*T_}1NWD(#RBLdLs($`=Mop*4>Yg=vnho(L
z&Ya0_TraKcHsAW<!l7>a^5u)ye&slOmr>?OyvISU-}lU9o!_+nDG7NZ6McBn<hDJ@
zF6LQVvzn$%us3~nUrzSK*`--mSDEDBo1^UBC$ehVC!wyWwaY?RhgDQp3(L#%Ke0`?
zyDrxH+uPgiXTuE5qZePiurb-)B~T|MH?@#cmXF=e&MqZ2bz{ZHM@b*814TM}dsS_0
z=E&JrJ$U@sxvJ`yt~=*x)3pbkS0B~t5SY&(eqJDX)!`@k^^caH)HhyI>AdHwRm$eh
z<FiZ>UOe0@V_nK5Q?_UI&&B`s&wmh{!%?w=oqyZ=gBxa>JuAqmmw8%sX3sSbyZM%z
zPVjTCsrhVsO+2^ye_hRoT=7kX$78t@9-TOLICb9c)ZV*?Rt5JPuG`s{_IO`XRREh*
zeEt^(&*)B@iOoIlb1!c^ny32dNwUq|L%n_L>pbs%4qS5bUC8?AZmnD1XX;)GY<yO~
z-aA61v$J!@?%kJ{`_I2^R}nL9OK@=T&a$_+zQ#?M(6D^Dx}u_@XjmI7znr?7+BBUc
zuS&h3r9p-7?pU6iW7#};@@3y(@he%T)Ai$@-Ok_dx;AX_<(FQnYbGVdq!w|${#7wq
zYJOAL;)7XRA50NAJn;+5zJE`{<7Dmo)TOQ{-Azz2Q=OWx{#U+MeV>b8p57vjp!?tL
zWlFZkJ>8x<d!zlWIc;0BAFMnbtZsSzU()?usxEU3l}?JxKjHb3@oRM9exHwKJ`w+g
zZ?FEMykxHR3}K5cSz^U}sZV!iZ;FZ8`Sf|X&We2h)bHj04~tn%S<uHHaQC|OnwK$F
zo2GtH-CuZ7rEy!%%QrvYG3)$gzq~$}n@QSqxmDRF;d8|wUX(2=QvK(BS6N%Td(E0P
zyQkH;xgCp*{IpcXNxRp)Yf^ycZP&mfH*fB|^49hF^t(G^3rb6;vhzq3+-9Hu-^)YI
zeW{wIDX%_%xy_wB7fu-IzPkSO<;24uzkgDBcFR;K_)^91-SUB}uV$=Gi@Lt1uc?|P
z*VfJVcSD|>fc!tJ_iOw^<aP!Iyeud!P5uAxZ^_$RQ>RRs;-&8F@9+QZ-CghHesev%
zy?1|>5OWZ&kLNoYv$$@p!xt;vJiT>0c3Mr=KJD|jQ0?pL--|D0SX4Zd*>^8)iJHoV
zMP&!-tsm6AubnV^xt+$=MGGc9eDtX4@WTh6o}R9#t`4vIC9W6aFiEAvD)y)RS;mSb
zVZ7&#s83v2taRZ1{8?95Exi1UH}7_i*`rC5PMS$f;JLYFZLsjui|MRf|7r~+ctEcF
z`}=$Gn;RRwe502J2?_`}TwfQP9~9oImlzRoLv}55?xveNrcCM!oK#R$<|q&{qu1?A
zlaH)?eoSf9(oj*2AL7ny!yZ3=9GtUr_9>MkU%q@1IvkQZuRT<xYU`}DtAD!wzj)~s
zdDokjOXSby#LYK7JUn)McZrlc6tuvhvFZ1sH&e6%7Cd<8Ajl|sy!Z3fD_&2v0u~5d
zv-e8WT>mv_fx|)j#xGY-&2?yGV*M|&0;JgCp#3S;5Rqw2tXv{sQ<#pbhAeP6STDFJ
zZ1vyxy;Wb|Ir`lzne~VB@Ymxvs&97GJpTXv)0(fnl~u2@O?GdZEgbpo`+6DGtEcy`
zD*xMk-uK|&V$RcSjBE3`tG>KGxY(EZ;}xc7A&dOpJpS%$Z81A<zrAcw!NRZJ^Np6h
zJ3CwGdfl1y{p!W1O<${UdoJfMG_tD~wY=DVJidOmJHOA<?zbyFL^W<L*7r}}P--Xt
zr=(|2($vLEza98qx%H%--S3k0kAMF23B+Xly%gdmRsZa5{JEmNDOOTF^A2&_3GOj}
z>%U2qEvUerW3`T<PVU!tHujbsS%uX%HYA8n57u2_%baoPo1s&6?8DDT1GmT7ZZ1gO
zuH^kv?C<_N%O~tN__vf}U;mz<B|JjYdbaE-J?5?DeQ@KX#?P;(7wkJ>7P%~FTDs-t
z$4ou1Jd(FRmN}#4RQt=}*7h>xf8U)|B6vMqKmU(jkid9w_Vj$cn*JouZk~JV&Q5*p
zd(c)<XDa{Ow(pC}9$DGV{V4sB^|b5p*r%6XGUpUuPnhcZXE#ssjmKwKK7Py+#23z=
zpW^vL?$Mb~U$@Tc+9%t5N}=t~bh~G2g5tu>D_sr-%vYZ$<@i3$ZbfhS&CPlCSqF4Z
zpU~2`@~@kJ&V89tX*OT)@%`=@rJ^l$2YLb&zWc{j)F$rqnpT{rp8n?X%Rde5?cbM(
z>n&Tp{_ezS=Qggfoz}HD;@{7#fXAns9i2I{?sLe?J~<|zp8X@}U&kre`$bCfyj~A?
z|6i+cOzpwFXQFnMtE`UiukVjPKl8v&%k#A+Q+nk8AHQ_^8rRj#hrd3#a%#Wds&t)m
z^_5Lh>+kDu-HKS_b$<K(XA_NIcdWWP^BSYv3!U(r+l%A`-7il$$|f4p=dDp?x;S^i
znV&bSy(_lva>?7qdO_(_=bPw#&8(hmF7J<($ePXQ{JZ|+#ZRXr-d&emWmEBEW#^Z#
z)@Kgs?|Z%}W_F%(`=yZg4<7hh&;F5p&D~|sN4>XvHD}UqYdsS>wKMRIRpzr+Ki!YF
zw$BaGJbyRq#!kswr?o9+K76pu^)O5NES{>F4;$4ZKVIh2OIx+_o?6dxwLZn_Q~ff1
zw!W*p-CtF&>hQc6xY*TnL*|N`SJ=Pqj0g#xEvRs0qxna<J+I%JrT#Tue&k+D{d9MW
zkAKDYlwNFcKfTaL>bK6ZBj;}l<cF{GV4dm^A!qtQrFnnQne72iVUNmk71uqu|E1Q&
z&Bo!i;@Xe>dwhCI!q>}OIXnOP>G$1}&mWY0zsX{+YV7QYoB!Wx@x_@kuUr!sHh<cB
zyAu9Y*ImBMTl{3trHSo-%05OfVm`Q4aIVzq9UDII+!Ru{cVPWH-4}l+Onn>gTA=Ws
z$?x`_p8N7Oll^?}SX8_)dcLWtQsF{tu4J4Er$JFhHjnS@>qmq4w5_VEofBLp82vE(
z!1R#iKRYy&Bl)Mz+4S^@RNejz2PPxGwaI_4_H(?FInb7R@s#Mw1&{O+AAXD0b6$LC
z?L%Q6xepS$**jwA>nGaw#i=S=bH#K^#~eD<k*N51$CgR&!^8rMHpx0~V%?agyT|j%
z_UvVcW^`LV)E9cgfA2xxy$`cic||4Nkl8%_u%v9}_kz&6_~{MVm(Q7$%t^d<bIzXY
z(RU~8U*=`IDyw$o?{6hlcPE5(Z8z46=1Na~v!(igd~8Xn)Qfc+|J{)MW3_!*+dqw2
z%R*1smCw}q9lIiU3(L3qMn%8MTBq9Gn@&9wx)r0OYh`&}mc2m2v%~a}(2I7R_`r1@
ztfJ~V)z3_gGQEA{WsltS+9SYnU96{Kn|R*sw2vQqx>cmtX1wZuHo0@xBNz2>Gs7pc
z+LDtybQRl{I<t8m(i7zrvVL<T)k`=0sX!)UVtn%b#*kgxvc13R-sX4{!hZVX`%WXT
z){k=^eN|BKxTsU{+naBS1&_Kwy%A&X{bN_w$aaLEN?f<>NWrxaD*P;Li&iEoR|Okw
z<ML(GTkBW)f~TxND>>5jz4R+H{oJW5w8W%^Lss3s!y~GpF~K#pLHV%>`?^&bcQ)Hz
zH8EFz_-38++t_}Fuc7~L{1fkF)1IXBNGyOk{o}uR3vB;ty>t@Is*e9&clF-Z50^QX
z#;uve!!gx#`8B^s^LKZCub6Re?X63e7fxKfdr_5-kKx88y~#eMa#;_;PR;sZ)V4a^
z<8y}R?r)|iETx+d&N{YJBICkFWnL4`IbJ)=1rOhzzV(U3wEV*iF<g8Bl|kFraUa`}
z@-!<X!0eFL+rQshpLwL7U$phe6^^t^-pwyBEs|rr%Dm$C7TMbQb+fNGXDOu}ov8Km
z@}@@XCZ1cX`h{-ocKdgs?Be&UcYpk|`uXkW{bLgxpT2SLon^W*^2n;{timPo$+s)R
zcYUd!vP#O~t^4c+$3N;8)a2>3+fKj2!+x(<D&Xv4QE~O$*3-{DY)`$5Fu%q7-n(~=
z^P4_H@tbir_3p<6ugMx*&N*_K#WqAbK0p6Ymg&;u|BWTz&R754Vf)r5Fs=TUNswTz
zp6Koz#fKq6ak{e~Pb_PDA+s{*)s`dMb}rr&lqBJhBXH)yxvw8SuJXD(@9@iD+nIZJ
zCuzr|9sTz=>{#bwqiHwp&-ho!wfEQeCEqW{7KAe|3(=Fie{|E=aD!C0%>|jx$N2xx
zc&S`uxGXl|`Lkq`7sdMb<|->(lRvULU-bXg4d1oz#g=q77uO%EzT$E3j~35v!@1nm
z+lm$j_6IRP6~C6N@@nS6J)d6|oUlD`#PhRun2o#D@$#6Y3&CGK@9zKqYs&<o)mGE@
zPpdn4X3fDb^53j%=Q3ogh5x^GJSutL=@joLB|UTde3LDwCa|XT7%ul%BKR)wx##}y
z&&;QSuFckN&W<*leCb!_Kl2;RQx)4{i|Z1S=lD+K=gO;Jx_j5IQ~mb;b_5A?y|Z(v
zuiF1#j{j}NeE;p*pVx`pS-Rl&nVH7<voEx83cowed1qbD_ti1=->X(<>^vR%?UdYw
zfDiXWBKmE=%>e1|J@o5At=zqja>3g*xx5`MIahm6*Yon#2w3nSpFh=B2h<8mUa-bu
zl|y4wy;x%G&P6st3mqDp_S>_Bhll?>(kTp4Jb&SaH)W}j{2=wt9IxN=MNWG!y>ivn
zEEdOrsxBthdhtWQtl97K%h`CixUkgK)qS61q2j4zXgJZaneE~-U+JaWH3AlBtcg~(
zv6)l(`Psu~tDFl`ME}JJm4<39<Ye0P!ZRsI>hZDOU=Hs_CfCHfQemq_?d|R7xNyJP
zu~lLEMcp+j_k>tXLu-CLc=@vPXp-aVt6H{hAf;2^O<EbE^`yt!<E7+x1^0)`)=#S7
z3>2BD;`vgSOXN<vhVfldjermLOF6}tpHm1oGPw7CF4yu>^{10mIc3UMG`WP{`?M!j
z$2;}f<&&pxZdvjA-}d(kl9rY$R612}mtR<$DLn6gp<48E|KHbR7+!yie|lnPh=%{4
z;D)@lt1qo|{rWqgNYXJNapRJQkAkMYd2@Ql&Z`HL&bfr_*3wIi{NP@uB5gdK;lcW~
zp7!ULzl;5BsiG2m@6v%HN$dGh>szHcyeFx!IPQ3@Jn8Bk9hv@9i$ZJr_xq+7cnF!T
zo~qm4e?e=5+T^;qr++g$Ra)Cj(r@QayYq>oPQrRs&}Sb%^Nn9Gn4VL~E+{NLc=oE~
z=9^w#QELC9l=sSgT^_ktYwG>@l$lGml$6c)I&}H=>|Iyi|9O^ZaPvlm!NYmN(^Mia
zzKrqkyy@I46}z*hQuFI8-p7}gre0ZT+;QYcZAGPR%iTO@fsp@phgR`CEwCw<_YU6g
zzPyMjq4ZZw&5^7vrElXBTUEV<KILASoU--diM?l|o|#XW;4C1(&FOvMVZn!gXMFeA
zZnO5Y@{RkWV_z0}lS}(k!^8#cZ|Ce^wJ7oI?_&273mKW+60W}b{&tc3CZ+GTKPSyC
zZk&5Y!|hD;nK=^=OYSTa?mpg=a$^;*j+|LX`u^V&b??`NKHRgJH>@tMerm(9-k0)s
zdK>w;rwj9@NXlAdvt<3acJ%P+-ct6-Gk+dVRQvXAd7<okFD32Hn9YnKQdhEg??(N;
zyfSpHwV$%C@@#*7^*di3wLK^Oc>N~cB<I3}+TYtQ?yZjh_GYf%_2co+Pdxno;>Jtu
ze>MjF?edZ*KPCrfd^<2ZruSw;{MEc0In(MxpDYg&3ET43=5z3V7v+rnBL2ND@=}&t
zS7q=w-)7yL`^~8}RLb%06Tz%23oeU!<*dGXY&!S$$(aVmsZRbjv0n?OTP2@ZeD2Ks
zd1pWP8C~qu%KB}6-+0omnoJAkTQ*0$H>Vlb{;_a7GwbmA!)za~%<|Q#{3hA9?%s(>
z6P+bC>P)I!SX-HPZT%T3vl)Wg*Nip`iG+pZn0@BISy`D9?l;F@Nssx~wa<(4c>VQ`
z%+8F6?e`V3s5;xFakJuktK69=dDq3Kr%PN|8+X)tub;{V^$9z(`5!-je)MSy_r}|L
z({6qB;^Ti(yQ^|Xp`F=eH&a{f7`@e3yEbn&zGxV}B6zpn^z|`H8`5;k-rPAi;h=M8
zjO@7yii;z+zl&}9ReR={uk(wm)sog_HU1tas@HVY^y>B39_f2~{?fL)C5zUtIedNn
z>;11hr*Q@6ud<zZ^W=OcCabBzhQX^%&UpXss>t>^`on9I!=(JoNmm<{uQ#P=CGC7R
zX>G#ptMlAje!lenW)pO$;DM3+xm!+Q+c?|*zSA+@{_1>;TS?i&>-UQ<oQzaiGV{G>
z^YYZ^7uG*z?up(#bEf{j12fiI&-{DEU|!VjnXG@SjjQe{)xEqoGkyQx#`(X#JlGqb
z_W9?50JXC-&o^z@=QAsK<JY%~A8qQid4J@Cx>S+oNyp>U7`Lon?mp>_1;gIBBa9Kb
ze6xOcf5{T=2rXDt%q>4@j<jL@-_|Z|v38fLG%4{%x+d9S(|7n-OY*53sXm{r<Gn9W
zlF#<#HyiKGuRS)uu2>Q3T=y?mcy-eK=UopIT2DQF`}XX|$H!mZS;>98Pj;#I^Wzq!
zuT&n-uWQS_{qMm_!Q`K{ugzQ9>dw92Z|}c<0Y}-}KT{`6_#Uyp&Q@_@{Kn$v+iflu
z^X)F%=eYJ(t*5_r$jhwrX`3fbnbLAGL&eNYtofirP>_(>?6>RsmxXt1=n3Nc9JK#H
zBk$f*D_xjpvS!9leCn}YAn|0G`^je~%vbZapX{;Sen98w*^ncjzE8|COKG2yU-^>Z
z&8@xDr|v%Y`DfGHl=SC!!aiB6NP12>VR*C9LS{)y)W)c_F6z&c%w}6wUv<dK({tBL
zNi>nVS*$hpftjDqt<;np^YDH5XSC*cs$VWBk3TYD_UvvA%NctT1iRT;jf*Z8J^S|J
zP>X!sv*+*TRz6)GStI*J<^H+Z=i8gvH&lE~ijx&Mw&>~UnPz1o%HeC$qF6=3`YxWD
z^VjT_{e$+^%f;tP?|$%Z$uXsq7O$_K;0XDCO-Xsd<<1Nfr6#Wi7v<d9q08Hr9}s1_
zS+2A&$^7OP5t*`1_SYRhBK3u?Tsd{LczV9%tO5&_C4b7wJcK4q`M#frBg*t_)V1eZ
z3Y}X|ZLK|S=H%qm(bKaa{d}BG^u8%^d#g6*{1mGC`s!@g`mZ1Q8K7$cL@!q^dah!Y
zTQiZ7S!{FialT*d`;Yzl`ugSV?fG(<t$+Gut;-BDKGgWlnc)`t|J&4C^*(CC^?LDs
zPEJh4RbQ2?tY+=pTRnNggaiMUdK=F4k>F|D?H%#7@@`+~rVT1@ql;uBGg$xXo>h6e
zNu$&%P4oM?cyre6q2V4zH{P6ZdtGWA*%kfn>@i+0?f0!M0o(Ip%ii5OyXU^&r^9<h
zTg&?{ozhU4oLsaZ{PdCKk%d<+EyS}A9S?nU;b=@&h1Z`to7q-&d`jO_FPyl4@RKcD
zTX|91IeE5uub&<>&o(}J)=$y;dfD~3i6X+nhp*`Gd$KxES#npA?)~qtk1pT*+$c3c
zgIi4R$y-LnHBno;J~p#&tovKl)Z84oyG*y)*?Fc-y&^Z;m-I_>em*_-e|m3t=4TJ)
z5<fkYPr`*|L62YQEV|xxLnY5>H_NgR?dARRj^B-3a@n~wGwS^8oApbQwpyNw<x5u=
zpA<Z)Vnd_+KDnyCIeXni<KGK)dTFUFXF4=#;%9qR&qEI<Z17?W$_eaP6tVEz%WGS$
zv#+mHwXkRjU9HT?%bEQ5S1FI2$&|CR&4tCjDMi=)?wGfCnefI%_O-vhXu5^5&fi=8
zJ?-f!gQ)HE&TQRrcIu__O`A3u%=FQbG-BEQ>}==1r{Zq;cRF&<%em#=I52gl@yCpt
zlT@AC61GNp`up$KuH6yC<vmIDTFM#KqhkGj7p9-wB$Mf~<bP90-_$)%n<T<KpPl$U
z<qe-o_tRZ7*K9YRy_e&qXKSI+?z?`I)qHPkt7SJ9U#qC4#kKfi#Hvf1EK_1im?YUc
zSItw}n927l{PKtJIlW<9P5)G0bXu-v_0J;n*-7@f5ydBtEa1~?<$8VmtmU37*XOR(
z4l+zznzZ$<Y-H_&1B`5~Z3da=YQ$Q<JlwkTb7kTOhOqT<XFnt!-cj~e>i_rp|L$v}
zw*Gjrxc|b-5*Bv$%{od=`tH3?Rz98hG%P~$rdZFs(j8K>{T63c85PUkNZsJIG`eQb
z%nz;Ak{0`P)7pFPW*trvUh(}wbIuLf*mqSQJ`^lYI~#T8uWjSxwpl5=O_z7|hi|N{
zxwEBZEANA|7nb=*UTZRUntkd2MX4Q@D?f{d$z@uqNHU5_9bD;jusm{Fq~y+~1q&3e
zt&2T9;h^))J(a?ViOdn(^K}3I{+@ogZReMl)~)x=?ESy1i*2a7Ds4V7^!~ouNLkBC
z>hort{#Pp>xYzBxS72D#?zu}BF8uQ6A^W65hco}ZTD^v!`|#>;{cG)QmufDl2u;&_
z+WCHex~B(+)>N*=7k_*&;N1RvjoPuQkK0bYa`WC0n_7JBlaYDO!z)dfPOR!UX=dFQ
z<Gn9(eZBegyc=)Lmrs?SF)elGG~MV=x2Ng4xVmmEdmB|$T<op0+fBqEDrHYhs7k8U
zibz)#t%Git8F-H`&b7JaaQxk7v0Ym)Z2q{S^IyM(;J)i8I?m~}a%CU;m7~U9{o&ps
z6(i%Ijn-QBH}3DNt)AxUVvzer!);B>=`9-<gO)y=nxeTS=jNmf7XoT(YCe4Y$haWw
z?5s+0{|Jf6&-GL89e7Z5d_$Rx_pz;A>WckWmv`-!QePYKq3`aV1KaNQ{hoKV^4(4z
zwZ+X>Pyc)JbNepk(+XTn|K>%_%Lx~b4A}TP$8YCrMNQ3_F^eZ2&@!reTsh0?xNxoN
zwh0!uu6$1`DiFRi*EGjc?ED>jy^UWhn6B=b^CQ87Tk3j&{<1wRAsrbLo_soLEz8Fq
zy*)4S$cBlnPqx_9Nbaq+Kl$lH>X%nnXMYeq{qk<L$m;7gUgzWNH&lMssQUVE14rcA
zo$EIII`eG%+4Glno)+Pgi3oc*L-fEbPT?2Z6Bw88`^B}tk=fEbnJw}4^~w7ZnQf=(
zJ-s2F|G+#$K;8a#kNWd-s!4AmOr(659^dlrhN?}{ouiSLFB)mDmVUeGr~WtTZBs1m
z9R)rmM=YJ8{Qq)}`>CzZW<UK^?yQ-%<&nYde6Q6GiK0Dgwq#yzJ3HIlxcXbpwYAai
zd3o=A-z~hV_i#<?7a8_CIjwceZmoR2{+Z93snfPzk=c>3ELd1}|9pdsySL7}%3how
z6rumE@bT%Zk$bE!O!nL#r>tvgdH(MT7t6in@8jB9TA#9BaQ^-2*`cFX)<jOe^y|RY
z)#036Tv{O!i>E!C7+d+tZmPz_2{SwwuaerbsA2bHuHG)E;MJ~k7WX}_`{y4r=}i9X
ze#4p^={aAN7BQTQ60PcWC^etZ!{(F4@AK@_&ht$Rlx&UX-s``%sC2Ft2Vd~RqoMcj
zPra~>@ytKlu9>s-i&V7cp6;}iv6z2od-i#ujrwh!{$__l*Sk$hc{8cyl#b%@V+)L@
zo#(x^sgzrP&xiV!^$~vi>m1iaZk{#aL4Z=YtALQqsa01evV7-PEDB}$`)l91Uti@f
z@BYqYmN(~=u)od0t`7lLB`<uAbUpm?=H}$Hv+bXqwA;TS^)ye^wm0z$?UJ|Ow%k`|
zyY_x%yYc1a!MR^Dgr@5*KEM6`r|0_nFFf3O-Qw5R>m@(lS?m3KUw=iye%}6NzKg%^
zeqWSwcGjNP-|Kd^1U|bgbM|iS<%|b&Z%KYmJU6TV-p?&<(ML9<>}Echqnk8M`b^Xv
zpRf&6*KObm5py`+C)?T4k#MX>GUw(d*2yPBd@@6q9r{(_swU6-@yY+XK4n|mx9c?5
zOw_*q;b*XN-p>EMT-om)OeoUUnf;>WW{SH=O3W4}sfmx4i5Zl>Y5x1ha9f^*`|+~U
zk6((M7+e(luguxXbi#-+^zO%1kNmvce!7LNzP`e3Zq(M9yA8Yc7FM0RCG{ZwEWhU@
z&aB{O-Q&U*rK-*6&i<KU_D*qGZ|w}vgT6EW`ABb@>+v9|#>_S<RKF*CCwEoVZ<Ex5
z1cgZt&$&O{RsQ<iuCK2pj4Cuh%dsphT25T8ObPw4GpkfZ@!-NWk<yL<7k=m5_#kOp
z<)fzbNOIl_%jx&)W_x^BuTwF4WLfpKYI?8qK1GceykRan>u;<mijrE_D=loA%=UF&
z?X+(B8i(1}<DY;3esA&96BFP3d%zsE_m5Hg{kqv<@pUI>PLEr3k6XXs<LdPV`M0KQ
z*|O#L;th}18ve=rBdfd1Yoqe9xiMQ^rfR;>yDyQhbx>ut?S0WR#+uj5nj`a#Za&*F
z^Uo*IFvd*LvQ_WyM(!%njIaBtdV72R@f0Ibt+mpkVHYLB8V|j?5fPollkF2OUUy^4
zS?}7r+@jZhpEmlLvqU_3|4tt_w_|q$BN83=7}j6Z{k}giu{UzpraN5TLR(*KWxBbO
z&#36l(JNDrW<39MQs>&7b&ekAG|c9mSr`_Zf2AR;^zNB7_L-Jtdu+c{RPLBCEmbQ#
za?<3<Cr+I@bTg9oSjwCty$KTYTiQ3zYS23O#%glU^383GZ<!<OHTuk-$+@i#Yn&s#
z-AZ(><AU|ve46=R0s<lnuBktG_Odf&Z`tvuH}}`e*Z%&Jdi7Q4PsYy$P0dan9WkB-
z0UX-O;UZdV{y8SPtc!CDxL~~|_PcHEubR`pz6Mu*IvH6xzjj~R-(NSsyfyDU5h}>T
zBOSBQ?(xf)C)bI`E%^L=esRhp7b)MFhvrR>TXfO*{D$XK!!y48`7BfOQdMf-PqpLo
ztNYT7(+b|~eE#CYQSqGl7J~Kl|Gh#ZQfFDrdg<}Fp-?-^v3r-${0Pe#yLr>6YKLA4
z&6hlWYWB-_3lcb4v#a>{oImbft*dG5Z+h3vAS`83T##DRuPV_eQMs*Lr}MTecPTB>
z5Ic71*O!-v-`w0RX<uh!HMfsX)@s4!mlryiEY&#m!$mtK%d)}*cS__h&1`5}JY5%5
zx1BRq1J!L0J@o#{7bg9bV^+4>ZBU(UcK&No@~>SwYV6epsy5C2Z55x6HI?j>dwe$k
zxGzuLna!6(uC3Ww3~Jo_x2{jR7JN8=^@e@F-|e<(HO*HnKGyr}Y5cPdFIS&`Z;_uq
zwb^C0Y<;<D)!VObH#R<1Qtyvl?D|@&<V{fT8GAiLn-I6)rf=&XsXba1p1Aqe#5Z9v
zb4;FcD@prUeBo=eiDPfLQDMFO`>c-z*Ali_o-m5a5PQ+-rCRVHhD(x7`?&t{&n~ZD
zwVG>IPds3~iDQwt#gU?^%bnZ%K+9ngo!d9o{4{E6c8=Is#L9e#ZG(~0oDCNm*F;GA
zMZ91Lb6cbFhljVa@x;~BoV<1ICqlb9IqPP3oOs&O+LxGm#H)=*?$DO}WrA1CSKO&p
zQ&emW3tnDS@hW7N&+KDAr^he**dr-Z_e@gCclNQ1>GKxen;u{E?C0~$KVPrUseY*{
zRsYx2-R{qXu;AsB=FI6?zC3+tq1#N3)4op~<-b3A=e$REmhiIL@+pzV%iTGym}uDD
zj?r*dKF#_{-Jh|uidWLwFY&z2>6-palGiHC_#WTfap<m&-mfIR#Kx7~6K)-7WHy|A
zcF&JT-8Fwc9=G}RV)25Y$BTqL&KCw;4OUS*>h?EF$}fKFg;m>@Mew`^H9Eg8pXewX
z6R|<LedFC2ZqaMcCrW~9zVhiyKHv1v-!>=gqtE@Usn>4&{`OWoB;xZt+4HM6Ki~B1
za=$k(OZ)$S?96OD58nRd{#kTJ<CtFDIsK<HswHAN61nGAgf7s!q!L?gwjlfb>)NC{
z9bzla$sJ7G-sDytY%b7nW{u1lHs-pxxTjj)Z>>r<++Oo%LymkXb9S-j+1>^RTer!w
zYol6M2%Ru`cK6S!s#hL9=8xV#ZQ)sQmFey5kktP-Ra86=y_@jKs{cWo&rde5Z}09N
zHa_o@@by(FkE~S>EB7;DA)!;BL{Cddm~}jTcv`|DLExeGG-HLFgo)=r9QuFQsa;@S
zk!7MHb4QG*r$+%t_O*3t78*O88s8r{;9%A#<$7XM>Kkd>S;vgi3NkOLNcqk8yK-9p
z@`Ks=JHDLKHkoDE%>6T^Ebo$v++5q)rOIv}o^%SQq@~@v9q1GousHN(*G#{q`#=Af
zx?sPiY+%6j#`RstH@K{2yFZU#X_u9FF*EmF$H{9urW!4M*fwL@i#5lWN1sk|{LVC4
zrSsX@*^eJRYU=LhK5zG1Co(c}&*yX2b8M@{M1z(d-*8Q~IsF&gy{!`0Ry>_p6V`NS
zQp(IFOH`WfSN0!|GI`#*RQpHL9SJqPsB>=?GM|<`yy{iX(m-2#pE844sxFN|y==M{
zVr&X8zfYUp!pz9eZ~Lsr<WB7A?F*9J+@vhsm@Ug>#dbHS+Ri)Ele2EAwBd|5Th_ci
zIrT`6pIf@Y!t&&M(zm+Ow(hx*>9SAidYjMU*86<NW5Xkw*c_iWrEG6HwKRq+`|q!>
zEUaJC54U~oku;uWnte^+%69v1as5Tb%k^r${ajx1>c&jT`+mz`Kfe3p-|_b^F6?8T
zU;9tf|J%F6n^I46@Np$RUdG$f_T=ckU+k=#)84+~I=(^f_e=F}`#y2$*8gbqUcb-l
z@XO0PjWUJ4F85bY`;_wP`TzR`ze@D>{?gLj_q*?}{(hhD@pX!JcKd>U7wnX;6AM`A
zSbqHYor{wUkE-=~9lbKiOZn0D=ZcfA%N>%5-*zA_vtR7hpFJO{KPmeB{3)ujx}}BX
z+q=7`R|GBwt<L=UZuff$n+k(<>(;FZ(K3<Zjan<V`D)*0zhH^OU7i~Q&&StJK6I<f
zX8OIgU)TJ)eB!{jb4#_>9Ie*bW49x3seQ=q{QGun?ayq}jPnm&_W4z+w|aS8c*J!5
z_+vR{pKmoCtucP4c}y?%<eZ7llAA5&SSq(0)IAJJdwP7sJCS~~PYwn*X6{#>worCe
za`}lLJEpE#m%3IhUy%1C+bf&x=QE~xm|IxLBrn-DU)plts-o-uRaI>B=FPLYy`6DU
zl#1zvQ_r)53d%|oFF&+kD_e8;=MJ4^>+O6`-@3=aq>?^!<;%xTIbDq_vLiiy8j7~7
zEIhe&;=Y$Mi&h*vIiYQ-^LFc;>9#hX&up$#5xp|M^z}8vtScJN&dv2+AGg=C?2SgS
z{m&_-udjW2XZ?O-*;}c5GybT(zP2{`l)L=rzx?+FrG$=MyT4uNj(tl<s5U3J<bhdR
zvtP)I#OR1sA2*-1DzwwKpn)xa@6n?xgEI|kt){E{E;{(-<&iz#q`vO^*`~dIpV!})
zmv{d7blPNw-P{$L!5JUk?Y^;i@yD!tGMjJK<co%NuHxQ!<#?f&v1s|b$Ip*$cp|ji
zgrkXTza9VL&)@Z2J#Ti+RQ{fJ`B%k*>+c0w0$s{t_;(#Ydi0~q_q;v7PHCs4rGb`Y
zU%Gr*&~>6&?k&*buUp%4z2{n$7F^2I@=esem7Dr$fz{MqdwO+F{}B~-zP&AX<~F5C
z>yOzSeX&&g=b95555K*=ee&eVhg*OCOxc>kx}T3T`OKoHf2>LvlEw9suXQN?`SW|*
zr=5vc@1ERK(&sX{XL)zW<S+*Tjf){n7j}p~YJI$-<+a|D{`NNQ!jo@qmd*Ire^sx%
z_R89D{;h6@Z_Q1=QKQlKvzqtH8sQEV&p%}*ecc};_t<X{eLMR{p`Bj0vUu>u+p<?a
zmOnk|o~3lMXyL9&GDcBbW$oAd{P`1V@%nv@ZR5AM+#+ED(q=gd8X6s~+|PxDgbu9?
zR_Em7OH4h&1sVZ6)gk)j-Cq^$uyqT<*T=Q2k2qE=JU{*VyV#OfH$d&17PfZ5omr}X
zn}3BzB;I^mX2mOcXytkP<?p2P1%AI=e&zo&>2*G{T;{IdulDZi^_8E$UU%`I<?=Uw
z-@{k#@`2yymj8I&t)F3^A)q$-<v)KJ)&R~&vi>rm+^;^x6)x=);?indRV#mNrC(@D
z_gl8j(~>H0&t+N_V7h|0X@!>A+K0EcX0xz=U0fNeE_G$q!5&HD3t3x1^<2)aEu4|l
z3JVJlUcD;1H?H4VOe=NS?>n+-aq=<JQ&)YO#%w6T!}I%taEO}l|Lqx?@_o{0|Lbz5
zpL-B+FJ=Qr!|L$$j~+fesO~-e^Vb;@dm?4#xd(Mm`}}%CV^8#!o|}i+KVCbeTJ!D8
zjiTvG!?pQWak1Ttu98b%%QZRFZPJ0P>4KlW7B5_B%CV_O^Lo=srN>J`KfZm%9a1RF
zS#a*?W#903MJeg2iq<kQUY956{hl~6^-$KvCud{IPyE^NO<(Do+vV-P3ikUh%=@{%
zH1X98_Z5LhTkrQB5u0t2r9b1J(u#wLuG8Mtq_))l{&rz~yuDf89gqEWe`na&%Q3U@
zB>nEo{qpki^w8BxFXctfyfR(=LSAH!y}tI0(ACNu@8rFHbUkfpYuQx%oUf{+zUf4$
zHmB~Q4O&c&0w+$Kc<}Os$2R{t9&gL<tCqbAk*fQxYdBdw`15J~&Y3nd+3we!zS?iM
z=o-8HhQ~XfOKi^)J$drv)P3vbJb3j=>;28m&-?h#Y*{Xpy}Km+bG*scd`qPYWgRi@
z;%8?PPknf|Bko@9X$GrJK96=eOZdfTPS$^MZHwBzzw)lCaq8@gkG8#Uk^lJp^U_>h
z|9N$P7%#0hdHAz`zp|B;)Ko9mgaifo`ag!bx3{@2-(7cc##*5$)0C%H1(&&1(k(v}
z3U~N!6%KHH^2b!0chySE(yOPKO-*&~O!IoN*zeD;YQE%MyFQ!_W6tMW8LD$2UU0_Q
zv`3E~Rs5W8=_7AH%~1QgL45$n;%Tl1<pCW2`f=yZHy_Tpv%~P>#fxX=+0IsUZZpXA
zw7B0VHP1clFuP&h!=O4z%PHH%^b-F`uYdS1ZewUrxxDwGy^h9uv1cECy>M)a^qU_$
zI$xML{qtDcve|6C?;15@%jJHH^6s_CUw6N_XQKE+Zu5_~I@q;J6qlr_JbeDx-78AX
zuZlNpb1VO$#~f>dwez{!YHC;Yw@+qMpF4}ES+e=$wEr~^zdlW6s);d}bN|ene-~GT
zC>2iEO|h$bzWVL4BS$W5&yN?=nQ{I=WAmr<J@M)*uV#lm_05ft_4N2Z!D*A$j2J1w
zos%X!2nbsr>-v74|E9ddQEmLP2gT#-;u0@4?OB?C=kDE~OY`HS_WidDxBD}pJ?)Ib
ztGneZ%~QGD<7y^a{r@emzT7AA&#$j3>FM{UPTw}=zG}$I_ZBborUfU)mUGH3ovjl1
z^<;ZNekl9NB<(zNmK(9N*&c|0;b8jo^{QOgnrj~__G;N&UMi`ZRdIP^sj-cX&5wV-
z-xn4aFAiNDCSzU3)4lY^t>~(?TvNSTr>|z)8s+;{%W6xM?$=e;i!Z;-2)xd#uC9K|
z<kNwhH)l4!jpY`-w!U7XGPxjO>7>w*5Rvs~=AGUyJTL7`*VQx95@&)>hZ&Uza4ep_
zHs#ud#u}N8Tn$T>s2n<UC}Kkj=Vf=kr&n)&o?)A#F!{OegXt5UBdfniXxr87Ka|3H
zVP$D((78EFwymG_l>O1pIa%jsn`BMha4Y2!uaMd9IpPW7uPq;5>PX$a?t+4Y|C34g
zD+)a>bKT#{%$${IAhA<q`k{~AC(qmxa&}nD;1bxX(UsvM`l`k_LRKYx=Ehr&i^CRQ
zTyZh$YKEy&RIgN^Zj%?URQUyq>E4NNZ*HEwulDz*ijPTbd@@I7ZC%aD_3Heps}ozh
zR@Da>OkAzRaqj;c`6=S7x!%b;xjgCmGxMYN%lrB>zDi#gk`ZxA*=MwxCu3_=QBhIF
z$A0?<r$lGf{<D;xSH<;r^Z8AMS2SkTeq?njG133`k)5si;kvzvtNv*Bc`@Cx=GoQV
z@sxYlX><0w-m~{Uxc%CZCD8TPx67*U9^YJNSXV1|Znk2fb7Y9o9^or(_jI!YPal`{
z-^<tR=l%Ft@6T7O*WcKf%)Z=z{<7TL+eG6UORmn}$@BinnLW8|YOPlt)`o>gO|Vr|
zZ1fk`ef+v`vE){rrpjh#$*m?$mCjC*drMO1S?|cu<c^!)qI25j(+TA__xI1gsO+{O
z?X1*33EQT>$Ne|FSZiKTSeRI}*lo)0`BNJ5a#s~TE7DP4cPm5c(lp-V!5)4mmxh`0
zn@I8QK0njryh+eeXV<&4=DEz>?=nfbeR`XTX3dqwN*iwI?AWz)gTB|YthEk2O&+3i
z#R8X}3idnE@#*X5sh{dx-1OcUZBkKIUVJrc!wi`t^SoUTIIgpM(0BU!LTC49=jI-6
zU}TPzoA>;lZuGt>7ba{_ntz&un>V@ghmn)>ArAg{w~QAJHRT36^;w4-4z1)BoTx1+
zU^YSWzOVX{`i!R&TBCfUqNMtHq+HzG*z#p;y<%cy_V&rC+S$piXO~mZ)m>X~wQD!y
z!K+t8@9nMrE-RlgsVBv=-0bbW*e}N-HGUTz5bJK;S^WId!w1I;cW>CNb9ln_)c@at
zm*i;u`_b>eUF^rVoY+?n`8<`bXSuHpS{U5DB7~{!*xicMG!=f^F9Pm;G7IDOR&B|<
zJFB6A!9>b;r?#E4ax?4g&6V5w>kY4OGWu{*eZGK@(4p?r$}@jn32@WzPI&hq;FwPA
z$vKLNKJ)f>+|>Uc|Iqo|ckW3ln?FY|eS9f2Z{IzZkne|%-){YKCgzdw<{ee0oaI}4
z@5yF8dKXk#{-$S5NKNfui&{fI{&c~uQD?)mgI8Q%k!NQZyMN}%pY<tEUf=Gj`TqGr
z@w*>__ar|i>`d<GYiD*808N+bMs0a=<fQPHjC)PO%l$5FsyzLAzPkT~O|CcX{pZ@b
zerBH)p5^nUZt<O#)QM*$mcFsJI_CPc&97ir@gb=n5_#ffcLWm|m%O)iuQ^i3BKhZ+
zZBPF7XQ@G@uCaX1li&Hw+S|q{tR~`jptz{WX>C~e3DcRIe@Y#eTiq15e*G7>y){3L
z?9b0Xe`BF@W$r<tWxZ18w7I8!I2(NUN6FKyx{9ByF)=a!!elQho?MbX^W=$b4<0Q!
zcs#h@Py61~Jw9o|oSxSUF6~a-bn|ANjo{>J<vVw|@|In{>S#E(pgCg#qkp=o`nPvU
zPV=im)<%6@w|~!*{e4C3zAi2$hvvrSlv}M`81Z<zb7Ix@{2njeM+Uc7T-upA^OAr-
z-Yx&7K?|>DX<yZszjgHYx(T8VZ*Og#`R5S#n)_Qi*Sq&8Jl*#8OzlU@Gn3BjDZlq4
zy38d|^}*|>E$gRWjy><a{_^8R<&U2nb@5xa`|-Ot>A5M#CS~qhx%;H+)UbsgcCFj+
zXz`_&S5Ixep&Y~Y&M0x}@%tiyk9Bt3tz_71W4MOvz-HfOuazrK)n)g^t>0f=w@=~0
z<Hv_zOjKs9Snb&Cwf1s7^PfL|Uc7tm{+(<2lhs$=+O~XpmJV8P^jq}WUI#}T&FfpG
z^k%m0{&s3@Pzo0ZliT#Ha@R!7fCUTYw0tdZbz7`xZ9O}pyJ73?%`bu;zhm@|?RSo-
zVeUL>0NUeYqO`)HvFSfUB4?AsY_r@Mmc?p*etzF=>LaHa&OW;(`???J3ax+-<qtsX
zo+_W8n_GXI$x4Q=sHkW|)Y|W=^>h8&SFhGyq@lIfwXtb`^PykX$J0WzMCIh<zVDUs
z`s3Buw4XCk*0RWDB`3(u#vHF79qn#izZJZye7|Yp(<e_p9Omx7zuAYEjd|U=bzX0^
zf4Don-2Z*%1`{dXB+vfNJ4-k8CTyKH=l<Uop+!L-%HQnw+P`P!hAmOK_de-<Usc2v
z#vdx>e9&Id>;K;TfV<*q(^Hpj6#Y}Y@XP(*t2gBNMwKs2eNx|jC$#Eq{p1b*`p*8p
z|DyX<Qh9H6<-PJ*^L6`D-~T_eF6YDh|3>d^9v-%@)mpCOc|vRICzfCKp{bhR*ZlU3
zSSq-+rd;Z`-}|7VRB>;m*I(Z2{C}&j=e9g)3gfB^-|vc7UfSQlwbms+=G>&e7muVz
zOklX8_v3oL+x36`7Zxs)Q_NqRx<<2pW93)AZ*%=rZZl@w;jCC-oa}DfRWB%;eZDL4
ze!lh1${$LcJ1gUMM)$VaT-qsYdz<yqvRxZ%((^U${}<Ji_pqG)Q@Kd{w*QfdnXFT1
z+w1QBk`mDWtD>VpxqI^LZJXX65nUv_X(Q8%y_p{Z)Sa5;7fqX7F#Ffe(tq3S%O$ff
zX<l=C^W;Hm3QrjWuN>po%<oSo+uS^~dCK#{Yhq@6XT8iHop(#gO!nmT^QJER3bQ-!
z?d|MXyL`u#MCQ5Xyz*}kEm&|Z<ofioys$;)ZPPEUv;A~?>!jc77j1es>Cmop!v^a!
z{=st{<!c>g@HA;Ch3zPmc@krF^rLp9#qNLg)z4++!VBO1KW}+^tLyHKOMX0JV32y@
z>Eamj>guGccT;XoD`YKCHc)H3q3H1F0+ULMw?~m;fwR*o-*;#G9S-Rm#$+|9Y`G9q
zaQN<x89S18o}QHYb=zv)Td}#8&;M;KnwrCX+_c>8{9^Z8i#Hpmr``KJ_xs%9G&lBr
zA2@sKwtVNgyzf6lsce<bN3$n-{PPmjeSh0M&+j#gw4d#{PEJX8_RRnB-IfAODcqWp
zVkV0GzU=)EI^{%lrk*=>)yBNu^y)MxHJ{y`ku%M<#OA&F_BP?{Z2e7{ze{au-b-xy
zBDCOvZOFybU*}fbzxw&2@%l}RSTCqfn7w@Y-c_A%yW<wG`z$B7+mb!`$jNJ4tt|x@
zeCMzhUvN*qaPpwP{iDp~)8^MN=h=N{cfwrL`d<NMvm$@}*}W!<b;E?I^F6j~Y&*7V
zuTJg3-mfQr&zSP%X^qd?XDjBoWJG<n@~;i(X3BWfv!YI&{aWpT{OFK*Ki+W&ReMME
zepwlNe)V52y}1ddKVxNHtXO>Ns!O<uPtcrRC3m%>eK}u><evq9-^9q0C0;sT@8Q~~
zyH^yoGIBcC80}0A-ud{M(4)nrdp<wm-Z<gIvGyPRnVlJjO7~o?)k%Hi)3&|#*s88F
zr(-E@XZFmzt)3$EIz{<P-H+<J&6k+_3T?g}*_!e?B}o1L+5GjJ7p;#!A-w-~)An{l
zDb2nA)&E>v(cPN6YQBD4)vV|HIUFrKTtXc`ZhSm9RfeN+Uxix#ooZ3Zs+GU@aV*YA
z+Pm@5onzXc!yjwSKCPc8>$J#hoBDj6)l+z6j_fGBUHSHA|IGh!TK;z?wR>9q{@U7?
zla|cgFtwB4?!fh5*&lOidyoH*aeY1OY0m5#@#M2=Txw@izMM#$qViJl&Y4r`^B?~`
z%=NJL_KI)(sS)c}tA1Ztcg1ds?UUm#yXVd;dwkc%N>^}cnxTDdmT_K<#oxeyrT2Q5
zSkHd5{(p!2@tb~pb3;Y1)_1geCncrs|D`u?#%$*;kKWt-Jf!#Mci4t4Sq9sme_v)(
zn-Tui`_}pgLai;!4~p{{)E`&6w<gBdIow)vQgg-0rm#y7!fLjxl0C8M$dM@vZ47^z
zalM^cTfDOW+f?4yl^@^cZc&<iWq*T6?1XQ>s=mF?JtD8GxNrM}4=u^M*<za&cTf1U
zhN1d()XiV_vNgW7??_)^`Rv~6<#pjs>Dv}EJH2{&Y3c<@lO5$c54M`>vRKW%V%9oA
zh-;=@xm2Z9fOYnb3I#Lo1B>1~tCx%R$@Vxl$#Ozwaeji=JiaS>TJ~`V_qBN1l$}n<
z$&IdfS}(S7sjuR`41;g4xDJ`y9BKZ{_IdU6@J+c@dXHs3MXvYfZ09JK?{Q0ZTGY1q
zuC%(zhQ)eEZaA)tu~q*1qkL<p$n(gD8>F|em3(@6>))HNmzQsPy?Lf#HUs<po8Fh3
z!hgKYW52jedB;Rg*;3ufm$s&F-Fs_${qgVjf*jM8%U?+3?W^Qr6`NUb*-opOLCwo8
zCCRDjPtd0=yH|9SY+8TFQ$>I6^a-Eeysb(*DCEznpUt0LdDd*-_J95oBDUts`<}0M
zeXM!L<9JHP*SLosQ?~K(%gf(5wA=Lcj$eo6i@eXV%$rxBFXd_XdBM}bgRe4{F&{9T
zRQWy5-Ej_!%SX$<FH%L7vizt2X)#%HN4nz6!ig%6lHMBcfBsh4aohSE&DkE7oI(=8
zpCkirFmj%hP~Ez`VeYlN;hbCL6Ynpa_P9MJcSp^`8{horiOt!#SF=FQrbkn?SHxdf
z_p4~lhc)bXAD0_l3_E`;Hdf@Etmm>PDPLc6-*}||<XAqh>#bjg@~w)_Q#XiAF?RSL
zUUsF_@LZnF>#veVUXm$y&VF0a|MmR8##219>#EYfzZAT)PEX`&!K8Gdw>M6II-AEJ
zv-o(>g7=5dme2aLxK^`zQ;+TPhDBSLbMig~RiBXl-K048(V~(yo2q^-zkK(2X<-_V
zqWr!M?T4eMeJpXFG5=2j6JNgdzP$dEi7)n<^-io%e!!f+y1!%9ytJM-XWmv_QwXhy
zm>#ylFZ{oJNZymi-ujfjWTyX?m2zR5I}HTOT(m47tW{mn=6UUy@uk2+vB}Fmt_=+S
zQSdzdkNeTpCVKz!@9p__{KWEgs!Lbce!9F=Z1Uop{!6os{q46&uC<)_W)IUT^_as~
z`{bl9IfqZ`D&F9^AW3!o2}bvr3t`^XD`eW^oG-n&S(9J#{#)6l`?jx~)G{A2|H*Wk
z;t(yW{r{7icUDZzziUoxQ)?z~$`E<_BB9`*ugymX$!mRUZ9aFihG@D+>^^&P#wRhU
zU5_MZCAxeK-?&#SXx;8<nujM%+;pcVZllt)?I}m{LJHUxX}tRA+u&DS`z&eS#|OPL
z?nj?~re)sy)y;@a<igJFLgotDOD1ny#$}rKbn8#<n-@8sIc~1_a7>1$cE@+W>HBZB
zZ|dK@Z1VSc@h8&sZydjKj6eUC|CS_1|GoRVOY{G<?%2XUW9rJcS4}RfpMSi(*vO-I
zvg6my{|}2-l&$5KGTXeYOlPzIhnD_ZF8y<J{Z=1O&%0jqTC(kK^~U&vsgDv>h0pVE
zdiG(lr@5fY5&c{L&zxG9`(*d#7wc0NOfPv8#P@m5Q)M1CS^LfR4~CyU7BFMVx!=`h
z$L?`WJAcpl<hR5-|7&Geo4-kl&*kpzeH-#VYk5_;?w==eYPVjvZuHx*u;bERmY%8{
z_UHG`S$}6|GFrBTX_?R4<C~_h4qT)gVttsWe|s|9t%e_OL>>i9Ji9U_df_SNMm~El
zlcuJYFs4O<iyGY26<2CaTI1}Tv)Rw|g4^2j4x3`zOLkd5n)2E>jpz9__V(iJ@6QX~
z2F<$@%_-sOZBnv)@q?TDCq0k*GetSjL(X<O`*R+pz+%3IXE}eKE=<?2Uh!Aq_uh?+
z-!HBHHF?41gAGPpUw7Y-D+($+arg|6yS|!I;>j~diq3@jJekUWU}KrG-k&WM${A}o
zBUT*qW|$t|Iai$Tf?&te1Ye`YwyQUNxwr1A*xU~r^s*0H@jm{{Ze&-lz_@G2%AcHV
zTc>`g+aEu1M%|}A%Rtw}%(G#20<+E^-e!4chUv6RYwp;YZxbqcxRw9Oul4*7s~o<*
zPyKiPUYh@ssm*U62D7YIe;fa1Sz;8|-;A{1>)!np65i}_;pjY$ZFSo^wr}61u&^h3
zUzl5weB7g;8uuT68jdtv(s{I1$mQ;voA>U#4VBm+X?kK>4%>1EU+#)mw>ek5%wWpB
zQtoco=ObNJEX28K`mAjNL5@<bd=VQnxqq|uyWIL>S?bWWexCpR_)`aeB>q_uA3r@g
ztl;`KrSv69R~w|V(*C+fCoL?E;at3_WI<czoj;8K|G%}}aWT-~@$5U+d*z=^mgz7s
zJ^k-o`_$MMo7IbsuZi)gjY!z4pL#v>>s_~J%QvbvOj_;yb?b#&d*v2iTj2Ui_rHhn
z>ucLDtgm6PG}E2*YI)Y_xERChlT22##d;b3Y+L*01=oiBYTL#=GK<>xEwGZZUS6?)
zIafbZ+Uoqhbxv#6eOTU7<$8Mm@BHLb2NqUrbrh4{zd-ek+9IupuWW9vpJvXCJ{M44
zf9tQ@hE?&eG`+X{G_L#qTX)6EnM<sBR=l%Hdc2eK$+2v|%I{BGW_)<D@mlGhZ=Jdk
zA0P7`=UJcgiQ&zP1zIe#`8RIA#Qd$Ksf%k<Q}O57Hk)@e23TCM6}xn9lD*AYtKNBw
zqW7KMbH&Q8GTAbJ!O<M!MZao(>`qpQy(n=?SapK1gnh9=cHG(ppAX#sdG@_oa`E+`
z<xJCp*6D9ml1@4G+x_S3Rkl02+Kf{DEUn}39QhNU&y=mjDYRwHA8YPSr+;3n6+U_K
z*t(xN*UO(PbiV4J_xz}oapp<2rnPHJT$0RRcUVr=ys}zgP2$7f)dl6;!A~!RSERfQ
zR9EX=Z}%@(P2KIIoZX2=FV;izZUh_sn)LtX>2=1_3PPWGiCxi_sVTPGe{V|9r3i21
z2DRxMSqnX~cBKCc<lk*y*S}r7>0HiBxx=r-PR%j&IdMfP^LO##D?Ixm?l>G@UjOX)
z?Ou(43S0}c=N##&+sH1reA!z5FAHO@>Zk8-I_<N;WYUo-bAnbq4HMJ0mMmY;(D}{D
zL~5p5IeWJ6?;CG76g97%q7!{6Qfg274b|w)l3_82#ZAAy$q!@b+%cubExuY-cycPo
z{7M1s(o<)9%5xt)&aE?0F?@6D<{di~zMor|rL`_LurEJfzv;ZtizD9Zvawv7G^Zvy
z8*#|yEV?VaJN4_g5;i{h(`!~Tdrk=nP|ayh`?$C=>|W%i-o0P9Rv1h&+b}0`^ZLYs
z7#|0(_0lI7+1H#|ogMV^-I3QnPwKk|-xoVNFHQNz9lsL^imEr;;vU^dICFCyf2g~Y
zqufg0t0tzu7-YZIsm2uF6<H<{nUrduZ0!;#vh_RTA-kvdr*Bd>dVBlx1hJY!w_<rs
z<kqqBsC<(@@FeoGME3Nm^YN3<>{z+9r93R~>XXCl9)+DE{L-i2ygu!5dBuV(kNG9m
z{I92dJ~-=cNGXfs`vnC@DxRIuQVx8#H>WoHda<OLKum^8_t8c7s^9OmDgAxIuJ)ib
z&!Xw35?^c&Pb*vB@ACTQb<R&!wh?Q$)&F~S`0Jj(uct>oZ{6}*{=vtSozvf!$eQ{b
zUjF{WnfA~bZ2ixFeQeh7F;)J3d*!XYQ=hKxyYT<q@13gm8*aRN^y%52o9iFU|G42?
z&7#}SmtTFl@a)^AH(wvSd$rSC$U!~ZAd_c?N!6w|off%aLXUJ+Zk$<uGt=$uN4~2&
zyAMR##fQB(AyKYv@A<RmyZE~2z0a@Df3VL=qULOgTKemWF2`$U7R$X2|FAUw+vT>F
zy!rEAwS{fF9{zdd>ZV;D(setz_3M;&aVX}_XxPTxtFxH@rNN4*l3c4ZlR9^-Xw<Qs
zd2t)#lx5F?rp)cTD^>n4HY;@Rp*tm=Kbj2h{QQuS_kGLd7he`j<Sbcw%kX59!}n7=
z%UwJwUOFF&c4ye|`GKIB%)Qg<=iZvQ+$uN~XVqh;!t7zR;N`#CQ}-t=`(6IM(3C|i
zUxxEu#ic1MYSHb6cGV1ry^B6p?TN?@3;f-rZLA{lt@>w6i~YSH>EB$lKc1+&AjBQG
ztAS(1-j2ytT>*17((JnB<M+&u+B#A8Tyu!*j#&?nmUph?ZK`MF_YOI%Dz@g`OR-5#
z?f2_9u`gw=b?J6aKByyY=n-Wyi7m2Mcb(8wk&wuR-3E-Y;(op2N5xz(HKs6F@-4Dd
zw5hi8ukel9vf}}lxbDHF-#64ue0RNN>W%(YtdY#APd;bd4A=DWKAdK@@Oq}<tI`##
zyuvM<!Zms>Up~2Rm-3&a>$9(%@b!qAa5X||6`PdR+~e#z=XdUHuKD<C^PZPGdgq@%
z=k(t{{NPW&_a@)&UOh2s`n~0KcWmD2ZH~L(`uh;C_Rp{JPBo8zU!S;M+^z1PwD7~k
zSUtJ0&HI^GXDtfmTy#o{ZLgRn*Wb6AK2k;vdcG{RA<Zst{z`HhyxJmB8ui6YSM!^r
z&ED%SF_Sr6!#JZ4Wqgr(vchLVz<S~7{eqc~n(yyDr2g)4dynT&pIN2M*TrWgo9`5A
z`qCH^JEP%U&6lF*)_dc4@Aw~WDv!*ce=d2cSjy7Le^=Wl-h8Kg#iWX3mRIGEi_#hw
z<o7ExeYO5k@X^iA{*78o-;qBL&+N-oIxK8*m+8i#WvbqhTek9*U-5Xh!Sl|~sYaK+
z3hkP5u;;>`-q3cnN#RK%>pf#8ObF1prYfxCIjQffgyl4mvR|tY@>K0@TcO)zD&;=S
zj5FlM&B)X5-lV1dV4L)8yOQEVqaTq;w|%3UdjqrdERTt-nySY1OJR~&Q(>UaripXT
zO?jNp`Tf$ptOdPU{nHxF>nG3NT<XH?n-jO8L-qZd!~^@!tHiT=gn2DLzhuhiE2rna
z|5Ej`ul9HNhwFDe&(y6DkapO@-Tx}#!wx2|e;X&Tdf89fdi-<0)%K5fKA--`GxJ<6
z|F`3Uc?oxab5}m~mA?7CS4C3%b$oqqc`ftLU$NIGE|+<9*L>QCpdhn;UmquJYmIYF
zU#(|zh(1peDAPN(;ono6HSffJ++AV)^Yp!~GGELECN7R(a$BZ0)iC);z&8!knA8(T
zcLX2y`Yl(}Cm<x0Hox!EEFZ7Sn^s(qd3G|hIC9(O4&JxbFFJm0{OQx<r}1!gvU_38
z&xU!ra%FN0UHy{F0<~U-aTX-Ve3V>0jh#bt<LAR)Pgj0AYWB>gNc-?36{oG<m7kuP
zsh#t9d|=sKnVipyPwPDIs|=RNnb@eYu2%ZT?c?(|FSl)4`(NVOlxrW4y$X^0chJNr
z>Rf)6<??<0(s^lD7wwfee(z*Qg=Sb@@7#%#k2_yE`KgraBdg~T&*Rtce3iZDI(1nG
zd!CG6C!@kV&co)L%97dZRK47f2HCAR{owWe`3Eg_^W2ze`NeqN&DiF2Cne5FJ~dS`
z2iN*mEV8VfWv=;SlH$UEHK&zTWTxHkPyBgbMW|P(&&BXnsmCOj*54fWx&L-npSfNX
zeM`mbWYfEcdL{y%y`QqK7sb7gIeB_l`_BKfR^B;(<?`;!wlP_(@yW`J?uwRb4xEqI
ztxq`k%WP7cziPPnZ@&dQIp;5x*Q{~~<uEaS$hZAN<z<6+KhLQIEi&En`*`_}gwqCI
zYAOP&{<Wn4E9>}o{ruBTA?bIr-W8RBx)<vXdtT9aZn-zOI&P}NRkv$9jd$#{*_eJp
zGVAe#U?o%ae@jAHeNMi-ad>J?;M;{8PWbF7<@YwPJSiRRw(LpD(_4on+U~hk{`r`x
z%QjhV*PjyC&<iUvOpUy5_+Nh+c3Plg!iQ60Yl8nNW?y(^x+nCnX4u?`Gb5EN*8RL+
zvFfjFoLB6r1kLG8u~sXDrcPul(>4{^lJa@g-}Wc7CP#*CXHK6!J^J&ycT4wH7q3*_
z61KZzOYVbk``Z_4&-mQrz5it5>Pv=<D*|t2SxuOH?7;*^Q>W-&X`$l<*UvOA$z(9?
zWokbozE2=)Nw2B=TNm?((KU}(iIh0pdQr#|Q{Uno*(uQxR2_HOdaImsNd9WIIks~T
zhV68pd3YV0)Z&jlepWwu%WH3i-Z9xSDg53K;nxfsjH}+s+E^TEyt8p?ZY~?!-5Fhu
zwtC+j{RMcQ-I#P?Rnz^uth;u^t@HeF{`FK2PJQcxR;Lc$a+_DI_ptE2%sc&g=eRxZ
zFW$9sYJG)vW>{>-gqe#ppHKV|ed3%i!-Ji*r++-XSH8nKQR<8R<mg(aK>haFN=ssD
zxyyMCg+GRDezW)LoAuugpGa<wF)?G?D1Q6m>ISJL3paK@Q9QatCia#2tEKmtzda1Q
z@=UkpnOEAc4JswCJ}OCXjSAYF^J2>9IrmnkcI~i?5Lc@VVS6T*8pgTp%EL=)ld~_+
z+3?;~`1HR&YT3NXJ72$3x|AYrZTE9V>gzJ&l_@qS*IC{2NC;|rS5f7q?k=_4AYJw7
zr@&nq7LQ!#&yl&^>V79iTti1B=F@}^A#(E7!oPT}=H1=i5xzRCsQjPEzDc#B+n4p*
zzTDHcVDfY=`-iQko?7g#v6=Hhw9X(e?fuJd+icvYPj;5I`X!n&VeYE-D=z!YO6Bci
zcTGLzP~SF7g=4qHlS>n(C3dz3B&vtXN?qEt=D3rV>5C<|(v{3_I;>dR$CoT6x$N=6
z$x<21_nr3gY!W-9``mnQ@M)2kOOCErG`!ie%-z-{V|AXpuY_~gw~YR^4{mLoqk1k$
zt|CLmm8~HqD1F<;um09Q-Ct{@u~@yF^mxOozUvDg*&UfCW_$Fy+QRVAkb2!{DU&C6
zr!+aX=!v_naoHO;Pi~sqq{=U^q-S2XnU!9q^JJ;5c4g7~+cQ#`Gp*Pe&UNsYZ<*|4
zI&tGM#+vdYJZvdxbL{TM-Am>yzj9e*tKrGAl3=EpKmMsMX*J)pR`JXQ8{4k+t-tiN
zpZ3itUsw^H$q^~}(BfULOAPOpm1W0{W-pMvlF`voWU^o5to8OFU#07}OrG2BjZ;td
zHnNI*^|YSxl@!yFrAw10Tc}06JI1%@S(41G$E6})t2tLh@knuc<~yw~dBneZ!E}eW
zi?R-<Upd16bXpGc3a)i~qi?L&eX{SLn&He}O`OwKw0Ubsq-Qq%xsvj);%)2>YvvF$
z^UbUOa>zdPQ&G9(Q`Yt9@=1T+gK1`SZTHG$hpc3|{p#ff^~srbW#1QV{F)r_C+pwF
z^}PjgR$Z(4mg{xqc)yu5VRc_wtk7SbONQE9+pa%0O`nj(ketPL^5FT%Jv-T|SF)Zz
z==-NM)Hut@@MP4~50!rF)88JOC?&r1lDwO1JIjiRezT(Ywj4SevSsCr&(0=hCW#&X
zN>_Cz&zRnqcRJ1PkGqj^caBRm|E83Sd`*>?C8sJRcW5tj*xivT%{ReLNiO}URNVbV
ziHG)F{Bn7vKvu%jTW*(*pI>l7C22ahNr&pIuSL9^{;GE8PIUaU?0GT2xb4^*=jQn(
zaXL0ZkGlQpE-foG&^UfVy?s??|B?lnIm#mOQo`(^2X9|-`*9<^!Qid?9S_c@DkrpV
zEfG93`_hTitM5O0zWUJ#P2KdGKpE{4$s12K=6#+Or_a1`Q|}`m+u5sQTi9n_U|x7D
z)aL80d&&F}k^jr<cE>Htcvt>&d!t&8s_~C=Q$+Xd{ucYMcqLaG3)_^lPbQvZPU60F
zRJ8E-9Kk)CJ}B31_B=Wz=E#-&JIB7nFi(<NSooRC&N$}icXz8_8|LkNFo)Iq%3D>(
zO%Xb;YQNt-{(pDk1=rJ89)C>Q&9eFK)dbW0Gyf%0zuDfIn7%{fB`d%F!|B|<cmB`q
zOv%>I`FSXJ{^#G<`3-CC#Vk|FY%TrYeRKT-Z=DC_&l>*8>?=NKtugi7FRrrIOPYSY
z&M#La{_PTd<Fjj){CDFy&i|fIn`f9Uv%Sa0#b8Cl&!%$<M{a5uW}VA9rk<r=RQ*q0
z=7`YM63;g;=WJW`e|ex@oA=rW`KwY+b}ii_$W{{eiQWIf!j;Y*)6O4#aL&;7rq|2R
zRPlv<TbJ-@seet{{`9}Ah@enh5WlwB^bbnr2UyShD^=bI|M7Ff=c(U+`uP{6TJtSB
ztIwKrsm(!Q$0nOK$$9UNmaG)L=*+q9!GwSt@0W_M*|7WZqExB3Uj)MzE&9e9u5zeO
zpZVaW^FJ@To;Gp3vikv-+l}{2oqG~FS(p?fm>L}vSiBVkI1UPN(461YtrIaxrE``5
q2g{+uaQir>IiT2&l^-MbM}MlgU&+R2vP_^8vprq?T-G@yGywq9Mlsd^

diff --git a/sflphone-client-gnome/doc/C/figures/transfer-go.png b/sflphone-client-gnome/doc/C/figures/transfer-go.png
index ba8633c279b7114584962c12bc88e7b17eda2501..a349431542843913866963826fdaae12d3cf389d 100644
GIT binary patch
literal 17351
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
T^xiTC1_lOCS3j3^P6<r_hyY%i

literal 19799
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

diff --git a/sflphone-client-gnome/doc/C/figures/transfer.png b/sflphone-client-gnome/doc/C/figures/transfer.png
index 5da94915812aa22203ac012f673026bf4e6958c1..fcb2c4a33a3bdeb8e2a6b762b2e5ca155a35b7eb 100644
GIT binary patch
literal 20160
zcmeAS@N?(olHy`uVBq!ia0y~yV9aD-VA#gN#=yWJol?WVz`(#*9OUlAu<o49O9lo8
zwj^(N7l!{JxM1({$qWn(oCO|{#S9GG!XV7ZFl&wk0|NtliKnkC`%NAW5nipH+4JTx
zFfd4#xJHyX=jZ08=9Mrw7o{eaq^2m8XO?6rxO@5rgg5euGcYJHc)B=-RNQ(qx4c5s
z^>+JvThqM^FZWLLdf{6ozEqQ`NvTQcl)A!-h>Z(0%3O8ccmKNOFj1+a<fX>m7Qcp;
zfFKS|PY>(V^8NOH94iHuwC~*cO)35Kn>U*`@2`C}^QL6x<72(67B5y_wW{dB0Y<sH
zABk%I^LiW<1UT|+zTYjEx0=g0*RMTpz5A_=$?aOFjW+3Q&b+L~wZygLm6)E6ssIOz
zd84Uz|DzS(mPK#RGn;sCQ)+kC)~K7CQn__^$+H~Lif&!X!qoUcZNcSN3^#Tu&C-kA
zwLn|@f?Dy$4HFy`1n#&z5mMjj`n`Eg6r)x5QK!Z&930DY-<ThAVrq0K;NI}|#AOkW
z?h9+<_s{d39F}Y}GaxiH!VTm+##ycPezLwoySTMm9JpDS4z6u?oAH2eNrt-q(ccdq
zKX(58^7sah?mH6F+`GBgxh)9|6+K-V@ub-LN1juBRLgBSKl%9yi=s;&A57n`zHvv2
z{b$2v<vTX)J@n|mg7#;vH<ur)2dxdCxxL%`-?h!NpIR92niiA2J>O&Fl)HJ)ZcLx+
z_2%;A_x@3ObHhT*R-d~kc=qMjFD2LJZ;UbPpLQnqk42`&-B~SD?_K}l*F5vb*|c*}
z`iYNUr+tr^b|-%~-~LAJ6T;`?)<(3b*Y4f8?9=TP|Mq-39p)z%6OpO({E6MQvvF=+
zkuz3!mDJt&>ydo>{_nJnUs5FJU!HU5Q9S=muKdpnOTJ%>-TnF5{G{W1G<m8X2=mQY
zb${)T6W?tvt>f3P`7HkX5|{V;>}LzN{`vB+UuNC9$x~{R@7<c^Q&eQ6J)g@}|J{}c
zQB{{V=}ew5;XwKQ+T-Q-Yu%lkm^SHjZ@;T5rkc-Q{LhS0O3F9t;KRwwEo-$p_r8Aq
z@#vF(EH6**G1T7?Q5bxqLZx%bl1Wcb@Rt;=+Q5Hx&gKGkebX;TuV0_OZGHXm-Thls
z?_3wZ-@#{NnQZ?2>8Jb*2G#!x#`9k~_N>?6w=h@Y<5#_N+NwYGEe^fUw{vN~!BA6M
z`;j->ZT<57kLLS$Fa5lAw#{V!`7c~jLSKrgZp=7kV0E1R=B1VQ+Zrc7E3$}Rd8{mI
z&u%*>Z`}iqX}W#~V>X>F`NLml&9q?o*Tu0PH1_$(t=<^@a@UXVH|idlEbo8+?0Ng%
zoY#G4k{@n-wCZ!3)hToTy=QL4Fz~;d`N!INl3(Gk5TWX@|0kXZo-MpSW&6gehkIJB
zXI@cinJ__MS6%6vFSGQr=byg0^9RHGZC#Hx`l@~}Ic#vd?EbtnKAXGJKXOewZ~uRe
zX7I8p(RTm;d|vHW{_V|86?OIL|NQ*?(!Ra9Y5HkN_ML(q<?rK!goIw)+iT6RI&7^|
zXy~KIkB_cicPo5>++sch?G*L5&o6M=KVpt8<j?iIe}Q`u<CLotFRdy#d4Cey$|vPJ
zkMDb9m)fuW(>U|k>N7p>JwCHNkJ$d5qkfMa$LjZ0``*25Tz01JxLtkI^iWRD1r{??
zC(nQO`dj_SoC>x5eQ!<{XLB=lTK&5xGT$rp`Je3-3D+gX^s1*Wn`QK}=C95CA4i4W
zak8JE;;Y_W>3{F+j;TKtDlc!?Dqp#~Y{SRf8}C$~IW+4%`@`^7<24^&oKRl-HRoo=
z!xL{@W$J5W9<m7^e|G+%M8ihi{w;cswx51_F<|Rmt@XhHT6ddIoo{)0BPLC5!{4`t
zU+im)7FqT+bTwLiwKjhAbCOB-sW!6}N_PS`otsrv`Fq9mjm4|;KXi5-czi_Ah*5>V
z$vO7It@g+3MCUTCYq@hLCa&)1)1ue+Dxc3?y)E(cv$H?{e!u_n`g(Z=ZZVw&@%!sc
zy|y2F*e7dUc44Wv`0d&Eu20vC-L)b4IA3A7ervJzzkCk?2KBVQ<@vKCoSdXDe|<Q8
z#zw_nt;Mpx;}+)rH8^z0Yg*lAkIC!*TnU<79{K0^`7<$FW@z>@oZFo8YtyOBN}h+y
z@1B&2{%^IBL1lB*bIUHin$zyt+>FY(_IHl-oxOd-@V{XV<D~tMn?oa?y6QfvoVG6h
z+^46PGneX4K6fy`vOd*L;KU2p*O4~qimRvX_pk`q@h$mZ`HERPnwH7EZQFX7qu`CX
zn9A$}B~yNW4rVBL@rC2;rG2|M*@PXPC!Q(yq`%%nSnj9g;ca?v?5f(OR^Pc>qt$qs
zK_c^xGTZUhI!ep5xB7>c-FtrO@O|AUbHh}ZWq-EwzP>j3?xyoQcF*g`xW~o9&VG4)
zyuFxCM1a<Xg9i^@H@g#f)o#(jk43%3=eAT8Tdv+;*_voOTlkq?qv~Ym?D|J%4}Sk}
z=$6csESqhg{9>QhuCjZ6^sVFD*^d{725y~ak}aGNJ#$m@<Yk|J|Gf9zVD0Oyi`B=4
zAE!l!SLn@O<9yqbS)q;H>i44HgPQC3=e}l)@VHaN6g;zpsj5Wz#sVeFUqUZ})aEuv
zd%L`4iT}2$fB$~_g|f?vL>eyV*jMel!X~=@=-R8wB}EJ#iSPC-ej+#P^!w!ub6)-m
zD7J{1Y_n?m)~82jY?SZ)z4yo(%ku)cJA9g7r=G6cxjAgJpW1S_Z#(DA<=${@MNP-k
zv{x~u=SzDJ%XSrI&R<;k_}HJX*W*jx-H~j#x;p&wj>5;M<<vK*uemMk^X?mq!sPM<
zwZ-peA8C8!Gwtln^H0jw76hCM*($x~^t4vz57(yoIy-9a?q9V?i>oW-<2vo7N=c@X
z-hF`^qSh=uv_ONatEAALy}UX=L?qN{`Q8b8nxd+VPHu~xcxq|?ss&Rxr6uNmQGMAE
z7946NS5mja{NPiW5M@QjDiK%5Ri{ey&Q`4GHa;yj_xY9g_8+UidCk_?{r$nhWqlgn
zSrd-0dQ%oz9sb|uMUB*h(^h^7N#8fs&dI;OC@X*0s+y3k>(st!7RQv9>DA8_t-J0t
zWzz2mv9)2{DxTp}*R5JL_0rm`yHh7kniTZPk@?Jg`}uW$e+i0+l>99FGHafS*|jjq
zxSd6+48F5WG-K6Qv@MFQ`SHo=PW6|i)w9`HEV3_1e_hHy{n~<u@uHeXy*A!#@hlEp
zQo_cZTKeqDCwog9vo1E7C+9`Y>L(vi`yu_{lWd7<%%WM3&gxyddH#-R<`=ma&L8i&
zuCdI{-qM{R*w8q6y6<t*Rg!jZlz3aM?jAQ<xp?>5Uuh@P?ysu9&}JETi0zz7?T@@W
z;%6Vm+&b^`Ypct-cal!d?z}<0pDO;%x)+rE;xA9<taDeKCs-Dn2p`)2pjT1%gW;@`
zUVmn{*3Wse&hT)@szldsuigaTyJj_4Y(k(<>x|IbyH{`f^!NMy$y29>=Ea7Di0rNY
zzHe1YY)s4ytJ18UrDbJh;dAfj-rhD<_-WnWUmJ68Z_^fjc{+5bs;82kUf+%#JG}BG
z9ZgSE%EbM#4?FW;eyaP6b>7$aO_b0MZC#ZwqLcbx#mdE3YqMcb=jv%jx7MGr^Su1>
z?u+nOh0`{xF{oGB+>~9<Wy`-}mDRFU5{uf57asOeTc@4$_;YTC;o0s*lQTt_T5L{j
zp8HB+rMlkiKD#W7^JTM67H4moVZBCnceKet|H(%$#{Ra*%{t?LyGrP3K<%9?ivJwn
zeVlRl%o*;u-Qs)MjwLN$6|mUmS!m*IsT;ekzAWVV|Hs$N_Jh^yBIC$!&m5-hjr_Lv
z()4(D`=(Vp_w-&BvW~xIch1z)yT5#nd5#V5?c<l$J~r8Nh|T!zX~7oh?E8yNYkqvl
zvVFMv;mYOncImzR_Wu6<7^}v{Miw@<xZ7>c2lp55UR3$!>hYIXm6-g0Us^uLN>H}q
z&E=bWt{!{3%hEb=v3>fbyQPLR8QKlrRenvk+i{yY*H`$$Ps0bVU2DEoxF5Q!y2)=@
zV8)kah5M)fC_Tq*Qn)7ZT<N|q|6lp<t5_v{QBJKdFZTGZv+f2z&6i&fKAiESXr@wz
z{P6{L_r&Xe-#_1=@p$Xm$5ZcJ>qxBGouwBn_tvLpdF;#DwbJ+c+ULo7{nZvcx_Ybs
z%nKe*I?OA!6vnEAZ0eJLcwpaTk*?(*wz<!;soZ3hc}b<HsHnv>ue__=aOK^<e`>@I
zsjW*|`6IzeVaHleZ*SpwTR;uiQyqaHvV=wR5|8R7Gc`Ui6U%heJ+Mx2@^&@FWrAWH
zE$X@g94t-J4IQ4`EKH38nT-w#0)M1e^>}t)Xb0(+(W<+pX9E)6(JH6}QoP+j>5ifR
z2g`N=C@tu;gq5lBL7DJNX*1!brzZB_JD<M$uX0oE>6#zE({z4HSF8#wo_9B>Ap6Pl
zu#Me2+%|SRZ9B_X%xjxD_0ePPA0;{Uw~k+5UibIcmHb;%+vDaOYzz5(R^Hs{Y~slW
zlWIaEs{Wb({FHn@`wi#YJJZ)qJZI({>Hn#Ay~Vq~?~Xj}U#s|;?YNM65@+O8wK@&8
zhiA>Myf^DrzQ*-)$JBu02qTM0JC>VGh|hCYoPFF}vFLz}(a|TiOb7QrTP4NU&HsP8
zyZn!iBQMx1pB)y@5PHyH`By=@?tkO<<>pVmYo6V>{|R%RG{cHVGDV?h)xW=IadCBZ
zy8cCUU;WO)nR_w{K74eIzG~^U{C!xUs(Dmz?d&k|OIlmItIo3Nzxq(%J;S2=>&&|^
zpGT%`dEUfQ7h5!~<9M}TN{RBG9J@TtiFzmfmsW=vZJ!o(*zxQ7uY1Kg-u;-d<tfYl
zy`MODA6EPD+CTr3$M$DOT#sH_@|d~jcaGiW<HwVZoVhrEUV6awWiD=RLXySef7Q=D
zayZyq%VN6jpv&|#TFKE#9BZ>3n5N9ht+8FD&8wu`ne&rjy{?t#%RgtXg`|DU4tP}h
zeDk}N^Y%>6cy{7S-Vs+fp_`A6u09t%*Np#i-2Ud7tBp5Ii>$AEuD|9?ce2NMhA&S)
z1vY86s=l}Ly6!g7#m()~qU#oEIp-bSRKKr3o_Xn??zb5XB1YmoYFe8(&;N;i^!nMl
zXPs)fGq$Y$actVQtj{r_KfNBko>%x~&M)5e{4ZTjA1gG;Fzz_%?H9i}s>dN<wd<{_
zG~3VLvv$5d+2|57tJA4J+m_u#V}_|9PsLyMY3m~oUy@f7*!o;{-k*f)YYmfIYTAyT
zw?DZ2<l4&Wckyd}<yqXC`F`WV1*_)HeevOHP~5tFg-1uHzOk;EaX5N;T&bAK^=CF$
zj&|<dzeeF|kzvb*(rZy&Qv3_M%SETks!s2n-2Um)GXb~y%~P({>n3FN=j@ZSY_z{5
zDwAv_Sdzzm`;xAMV*7O&SEE@scN?-A2h7>i$DCy%>y-askJt1wn`7pxJ6!VbE~rhj
z`~T+F(NpG!B1{Wa;$_Xc)x#AI$xbg_a+!Z(qk3+$j9wtCxsYv&%0=<IUtgZLP7mLl
zbSbEB-;Eh;x40fQXUqC&aK_FExA(hzVv}^ti_e#%?tP3sSzdqp^8tSS3+m?tKRo|w
zzHL*|iAk4iLe9ir4gJ0P;6yk6d%kzu>ry{<D%wb{azFWNc4YnOEwgUTtCAAE8f7Pc
z&A8t1ufKKM`O1mEm3SC_^i@q(pZ4YP^xpKBmv;-UwY``Ac3(_e_43Uh8@OxT%o6^-
znwt`#v?1rNSKf!iF4i&4b|0_a+R;*R+j7m!=_iZtcWv9I`u4)pNV)8HZEmdV{gNf6
zZ%^${mrXb$&3p8+_KsrLUsAhPrR4r=I~iP`@^#^w?yDiY^PWU5d?x%ZcIx^lOEuk>
zD}{5~pFWTaGF{lyRiJbCw%s0G!8TR%FKRcA^DdeGJ?EL8PtuVe1?SezKPeVlZMT25
z-_%gq&nw@mh%eu;y4)r{?1tEsS>0C!TxM4=f4(O3w5CQWnro3nbvgT_biL;e_wLTP
zK6hE%Yqu+xW8I~L&)n;G|M2Xm)HBKBT9>XqmX<Ft^j#~RcyZkm84Es+iDDcR_kC%M
z3#{1K(5%V2BCt(MJtTC~|3^<R#uwz>DEaqe9c$yevKia_mt3CQYQ81W<FS-WNRE!5
z=r!?`4NIKk%|1_(n_JTSzR9rZ_j~>)zbij`)+9+(r>j1=P|0>SX7%Zgrd7Eou58_Z
z;k<M3({I1#Drx+xQD!fbSJC|-m-I*a!m(Vd?C)=nmK^aoe9=*2-RfTMljT<r|CD-m
zb5_*U*?l>>_M5jWb+1!uvhJ?G>mT*{;<UPrVgG)fm+70Om1jPAc4UKQsd~H4Mjq)~
z(-O*+rF2qceN?WmnwI}H{PeudkKV72UA13rZn=!zD@~yw-=(j8URGNq2CY8X-{Qu+
zN-6&FzKK;$)%*%J#fF=w{Xe&!{mu)+9g2NfSASmkZKgQmu+F_%tud)pLVAU7Kb-y1
zz4J3)@N!?~J3Vz<y25W-{Wjkw+J4#a(7Ru^cli8x^r>=P&HIC=R_d~!nCQK2_T?Kp
zwb{3?aJV=>OlQ&jFR2&V4IZp5G_m+(*eqY$J#%$g(T5L?Wozdj-|~^);KgO;2wSC(
z(<lARJ}s%ULPS;f!QS<J2YJ7ROr7&s=GOlCf0v$S>{}wf@Z-B<i*+~8{Ce@dis<SU
z%ToURc%mM(YOS5c<L66Nb1$3q%{}=j=H1rpe^-9rKihoq=9&7x#eCIYk`jEr&K2J}
z?{4L;`Nq<5vd5Qu3t7yon)PJw>zRK)TK_3Jb8W@4@0pIq&r|;0Nm-hhZU5zl;5Ef5
zJ)zkak8jUoTW7xQc&YEFnAF?HxA9m0o-Vs&iR#9}V=Bw!IUhB$C%06q3Owwabwu&)
z;`tBixtV|ddMx=T{g95)*@j?+v%B~oU0wdT@Kew8x8~c7{(a3esXr@ezJD4|-6HAR
z`*%zX4HJERPLrp0!Jnw_>}eZctvz<<_doGDRS!eiw)|meo-MD--nZcCvj3rzry1)W
z?^$;8#`c}-4`)BP)!#h({$988L+yFaQXkK0TXXLC|4*yx%#?233*WZJ&xm`UYghN!
zF>Ma}8=KDD+w(W-sXof)S?b)=XgNFig+vy+hsE(Sg&Aj4OtTyN|G8binKj|LR?;QG
zep}B2r#SEY{wA67y+ZEK2YVaQR002W5BeNoEs#x{H+zTA@=;5aJb3o#q%-xuz9!$C
zpn9hAg#VctIy;gLr1YyYBqb%c?tXLpNX)LNng<6OqwV^)d)cj5`@j8{DF@3|lRJg4
zi>)~hztxL#s$p%Kt#B#nLjA$B`ZEvOe0-iaZ-c0Z;k5P#eXc#=cFLj2VjL_?jUT}6
z4ZjadCQqK+nhGAj3)px(WUA8LMXub5nvD($J2;;_e;yyVMEjkJ00&Fc?B*X6ycKpF
zTd}H3=d?yw(Q%VQ-jiC~7CWxKs^mFIgT-kHYg2Uig6{5aPahu@OUs{qE2er)YH4m}
zW@Kb^ad&_G;DJI*RL2&Fg6t%-**A9-Do;|mxZGd<)wQ+JuUWkVMU0G%Z*IvHmNv^-
z;M~r4<K|7yh5Ot(^eUJRnjXs9TJ+|I;g>2~W;UJ$aeJ%ETLLmor1tFD^Wye)eLp`x
z6*aY_tx>Lx0!q39cdF!4laiEVtx9$%@AdGUlyP^L>B*BPlT>^aFM);-SFI8e5eZoC
zH`n?aTj}d-OBXC)h@9ryxWnzvHp7>nk5)>Qxb;{izpZ(YD*0s9>Yl4##V2gBQdt`|
z<&{y&)8~^5K8aZO%}+RdF?o)~<dg5V$L(I{RI6QaQM%7@_lDUIzGj+S^<!4u;p`H%
zn$<JNGJJ-g>~brMS3DYBEkUQBsfVU&7bPBStx7qYw`_0oS%-3sO^XV?oRKVBJ}2e%
zN8vX%g-v(<Fl{-f_eAQgrkPbx`x)y)V&2~xm7LpuIX!9dxUZn%>9jm}qKdIpZ%<fs
zk6Unu-}8<|FD9hQZi=aX)UfJmS5Qoe<>D#7SHAd?!F$Yl*@tK1vpp;-C$&so{=@pE
zg?rFthvi4#JaOu~$T+#2L9F`sB+k50lWEqg4YRMA6>Mu(Yjk?i;&Gqh+x&a3OY#l+
z%7mm=a(Hf9F!4;rlFth^s;@tBq;qrniua-3YMN8mYPhye7kTP+C@($!HFr+q$s<o(
zy>Av<P3<YZ`C@LY#rp?GDy!Xn0zaOpvR$DyNoldZ#sN)Z=Jq?qFSxlqdpq_nmdj)P
zk)-SMf^DOn)0-BL_?L&%&OQHX`uL>wIYv>d)^8~Ve>l#B39nx(>0g$pw&H@;0^5Fb
zd2b&FmHlu3uvN?6u-^G7XN7x*JG0L<rf>6aF|A@YtUDVZx`Owi!ObK`J*_o?HJ=YX
zeKjXGySDMHwpLo@A-Qu$OpeG1b!stobsbAOIAeahp*{cdJuxOnT{8j;H_q6&d4}iK
z@=aI&zc=VwYmlnx^O9NdYs&-9iTjwQ$^4sZ`uw@F=Ypt*XXcr(9q&(g{L%E!R9p5E
zu2rIbavo_Z-G*~?J&v9}-FKN)QYGcR^6wnQv$fWXuip}WDcs(Cu|uahbgisXua0u~
zmnHg-L$$-a-+o)f&E?_a<Ffd2Qdz-~hdFF~l{;_DJ<r-LY3+LSYDmlKn=O-%_5^M<
z4H5B{x->T?FM8rOt%OYtk!;;OYOCLFKbiGAH*CR;piRDPn?=v0b~!DSjQh)MC(9sr
z&gn~w$8~|tF+DLnlbBYqu8F$MoVrOYSu^B9M((5B(A3!zl#{Q#*ch=k<@vKoMQWmx
zU5~BUeEi;nmKILWRfW>Gb^Eh6E)WsBW^twP;fz~ndL)f+RDY51iuE^Hmh?(RUUkC?
z2K8b?KQZH|9AjN?DNfh*hjYvpU(IsVtjxZ@Z0+eyNy1N@Hs@*@I5)n0^uC5$M8tXG
z(QRul@D#DSs~XE6JJ+Z$&r;5=SmU%LyCE>UKdM33CXsROW?k)XRqQ5ex?Ng}qa2g3
zELyc->KBpOIwDU*9<Q+yej(Koxc+d8<^!K^g-$kq1GBruc{Pf7rTDZvwnv@b|LM}p
z5{<5;?)Ms8lUN>hv2IohzJ7UfM+b+Jk`f0e=fTUDC$Ej(ZdCltCt%Iet&^>1PQGdI
z&iu!FfepqSABB}_C9B-+53CE0KB;|<Rn)4jlzoA3f%>mDJEyQlUA4PP3v^d$DMptr
zNfWtn#Cl$m>mdcpg_loBlt}Toa!K>$E#K$w9P@V10yCdzt<xu3ryiDlr7DxPby~ai
zsr^SqwnXVBAL~(6P+*w5j?Fbvu(tgByta>@6K*+N=+^t{v_$`<=j%5!E)_>D{aUql
zp82l&h=-LS8>2$owoCS^h%TJiWihL+%PCl^tSY_cuJebI&L<&ZYI?_ReN<Q_*1dLq
ziSJ|cNi9h`H@ieFz9=9hROG5}$GFCdMflmRmZ+Xa6_;O=-uT@;c2nv0aaP{FvmZTt
z!Fu3d56h)b{>%c81^d@`+waS3T#_QYJmB21a|=|@ryM$av0>4!1sYZ%uKnA+9oFtN
z1QjtMA&U*%HOnt8F#EquaKpCRk0qji_DR38Jox%MS2V}Ob#1cC&5Wz=GDmE2U18Lc
z`Dmtf1+QnMyTs3M`>w5(D~x_<J=Brg)!Os<rOlod;$L6we3UNVP&-lj{Pt?u)mQmK
zuPU70x>{>>7)SY)CEEAqKK5K~b})4Pn+et%x$iCgQ6hS!u)%O{i*AcY_`#WfN_?^e
zrC28{ypi=;YBTp{jR~JGcy0SCc9ZA8&O<q$p2loCzpU^|Rm-j-hJ^mBT7|ohFYtZ2
zGNQQn)OzdMPnYJENWRsyRr_kf+Q)wCeu8*-k6qo?^-oUyKcp?D6x*p}xM+pIOK&cp
ziEmeHT;<A|xqjx=qyVp9{;N}^%tI!xee1sM#Ed0LCP8l{j`%-+<8<uL{S9+G_y0LJ
z{lkjSWjU(($FE)b%Of}MhmFafKA!RvaghyHmaVpY>z-t*M6VYRe5Y|-I5#oLJds`T
z(p7=?m!~-7s<=*53RzGmds}_?!ct`p!y^F+r`)G19Jy-d<kJu>z_^Q}sO$VfuLrMX
z8Wta18Fq(d?PB47husTb&0eozSGb2OcAevEzt-BGeRV(VK3PP$FTWL8wEE>rMQyJC
zv0K~T|GVik(an9{YU@pI&2C{XhZ7~=WwQjo7cLV}s^$C>!yIAqXuj9$*A`b&A1;>G
zT3c>lVN`zORaCXI$+vGm>_67e`IRNr>MopJ;#2x4S6rm&|B3(3j{~~*M+Ky4we94S
zw>z_Wb6T;}rNU!3dAr?$g?5KAa_-f6^^IYz^TWsNF6a3aFEwe4XDt@|fAO)!*Q4oA
z-rtPP+#S{2e#+2l+5to12|ZiWO>9C#JuND`Y+H}Yl$YuLov~EMd%E7!<)PUY4_|n#
z>YnX8J@uyA1y!fDlh+>k@%!$@RGo9;%lL(Am$Z6ZZwTJ0F0sEzVp9q$>#N<z47dIc
zPZ3Z1_+(OJgsQQ|gKY6LU+&olX6QZmX#YESjaUQIJh%9Lul{DQoxRK>*+9S`%|?BB
zz1O>C`?JdeI(g?vo2wSQ*}T<j!GF6sC$vBRd$1?x;huXPOXu-Rx$3E3^7Qo7iQhM8
za@n~jH*PQ1TJ<*g8h6~5RY@D7K8B{my{$bj`+LLhorkwLZhPp>8h(6B=C*vBV|}u}
z*KfNornFbD($ZbGIw!d#;=r85*LK^~OW8Y@-Oc#At?lriLp2P3&z4Ncxz!&T-jUTf
z=TFY3v(F37c3s)Ur0}wYrEl&5PL)mnqXHKjv`6peW9g~q>y3-o&It$!Inr&sFSYiX
z<)%BYgA(3{DDB|V&~ghld^YLh!vFt%=liG$S6REi(GlY^*%ibewOnJz4Bs7@A<JwE
z<PG<2zdvJc6t6_-w(^aR?BCc5%;KsVmhy@!rLFt+;o{$<JAK)ayI1>lEccy#EPZ}$
znJ>$)W$o5i7EOwi5nIr+ZN<?AGrX(Hr(9HC`s2~Rt#xH`y=?~yg(sLq8Hu0S|72b1
z`+e;To~t!2EBjKWsipO3r{?<){nrj;zGq1B)cV+!%hbDS!Nk;8yKc0VaP#n_{QmZq
zW&Zhv4vP;TOmVvEkr8mwOKR6qH{)&9;x%{f<eh)Dj;+M4U{6!>HWg;o;)7Na58m26
zc&~TlYm{N$9Sa7#-*1e4)Px@&?`MB7+28Kr>-GE7-rU%@^!J@@N^hUbv~0W35oy@S
z%2S%de68B5I$5J^NrWDQ_KP{Wq2=P%;XGpOT)wRdjB}d>7jK((-bu-mrKgsy_n^bA
z|NB<|nZ&$@&DP_=kM!(N?F;Mo|2yTVow9qUa<lIOZ)b6?sMS5|cTO;8|H8hY_V>3F
zo6bzrjs9@vtm~%YBib4r*UrwmXrd)_SJr0fj5u!LT~2r9gRa5W0<4hm{<Vwq>z2&R
zKfYd%XFPH8<j!SGwZX2tk|WCZz4)uWa_6@5`=i;nvnw3ap0~d0{4<wxg$%RUwlEzy
zezgDP_j6Aot_d<o{V+SWV7KwIu20oPCX@WmpFD4;x&7Yv&OnwP$?(_f%J1*1jrhXn
z(UtW2=)zSCR(NzZHLn!#4>oj;-o7OF?}tkt{GXqj`|{4t&$_{)`&jRN$Y_}OHbm;j
zJx0^>(GDy0TkO^?b-4efz<u?CZ=vh*#cs?>Yh0_nHvh%-p0>KP?@k<g@cV~{iJSGL
zxO(1@sSCv8j=Vpqp8a&|u_H$&?9I1leg4%#{8{p)*B4J4v8`tHS67ddwrMaEe7OCK
z>7AT~VWARtc%s->J1xkc5D@-ncUZ@k2d6&BS&5v?a5;DWc=?fzsOq`>cE2<x&Nkba
z{65a_iFngq+ldPomgHTUQIM}6D3IlFT_ZzY@ygFMj;#VOt!36XGH3ra&Dt7uYg?}O
z?QOaFr~j;8Rdw0+rJvxT=5@ND@r!kn1GrhPGo6*Kyn5~OpF7rV@8Z>ySH9Z*;M(yy
zN2cFh^z!Rt%{A8-@r1Y@WSiHMe`<3ySN7bWQ;Po^eBH-ZQC;ys(4fck=OT}*dK1IW
zZ>$KANK7>BiI{ToXks?kkKg~L1WZdrpTD=b{!*r!y;b<{k*ZVEzdM=rXM6nkTYPd)
zGJ9gMrp>O7?{4>;yH^+-I&>)GLZN{0{=0{6Mp?``)>`0x)Ai(><F;~g6(PHi7-yCT
zPCXv?`{<#Qmg^04U&__ps+(}6HvZzZkGGcU??^o)E0mCQxBdQx{kOf3bo=|VUJa;u
zVb8PoJ#(MA?9tQr{Zy~rJ=9sB_VHk~^NZpa_J0hwYJbhD3{N|`mV5sCxRaHV3p(xw
zvwixrGVsi=MdET&4$1xHM_Toka-|td@LXTLC|mV&hT5zTep@)!oZkOC?R(YpzyjVw
zvQcwx+aHRxwEuW-k;y7qmP=C(J<@c3DU$wq!K^Pev;OB;xA%CRJN59${jY4CYPWsQ
z|EX1YnE0{hX2hfJXX_qq{4s6Mrp-ID`j1XI^r&2ZsrMe;w=crJ8)s&+g`JW4`7u)N
z#gz#gHW(awwSB?+&Gwu3KM1Qh9j}(JdiBR{`(Lg6ZY2u~LnH)!e|<Q$Xz~p2pb4AJ
z40B!F7acytk$tT{Jni3^53g1|J-WMcZz>P}daL+-QujBo>gVWd*~Wh_|95(c<J-(@
z3bSTR<NxsMQSj2|yRB?3PR^NbucY{>vhHu5(%;)hghek;dDmZmV14}8gEs$D?QYGB
zU;KJqkk+~P59^b63CoMQMYR5%x`$<-{QcQ!54T0dA5VP0(dcSTr@(=*eKmW6SH{N2
zRy;c7ULF3{b9I!sQ_|zk{(f~kyFLSR+ewS<4S64R_7^35U2*P9{d@a8SGEf}&a*4|
zlfz%VPx7qo*~1^cd^vJiy)EzmciHN5+S|VPxc_*fSAT2oXXbqS8(kds{(D}RKfU==
zb4G}0sOEzU=g$|EuUY@L;=ac%n_s%_U7I5=SWlSu|MY<^bs7)n&12z-^_{nBk(lbn
zgrNFa?A4E6zV!V2t^ecCWjbq8&t3m^cKzumh8N599(vwirNleSYHnp&3d3!?pR;0F
zL#O_dG23G|L)@(O)0h8Y8}iO7+3m2Nt?zDg_)rP!@)>$8^KT!zR>B={VqvKJgdVYP
zc^(IOMAX-&?w4{t9*`XBFY-EG_QZ{y7v3*!T@$x|*3S3#K3f)dbu~o_A6#IbzA5W(
zRoI_DGKQSN5<l<x<<*sJRI4;De$xI^!u@R8>x0Z|YHoI`>iZ@gjbwdNBIZ{yM?c8=
z(?R*{$nTFeWS-ZZ__ex<ai-<B!}2?PA`VR3%ekgXyJ!Er>K=Xm*u6fd)2|tuJ37A(
zWacoRqF+^d+x8suzQ{E*$|o#39b0bt)6V9x@Hg|?sqxeFA9OQveU96au-sUuu1q68
zw?E;KzINo^7sl_-{%=%o_kG^5@>I{J7dMapuz0C=FLp!QR(qSaZ_msBZ;jQL7F)4H
zK20e7PutxaM`gThPj;y{2QKlDn`Je<ep`O};XTtk@BWnH_rK>>H#3>9-dOtZjMg{S
zg>!oID?T1?c^+Bgc5IT-<p0%)st5ITQ!c+_+4lFV?D_KVha0SG#nd)G5#;ZATc=`Z
zJ9mn_)gzVk&Cib3*=#oK;oP5-aC_SRA8W2h+R1)WDGpwH^@$<NT!EL-(Mu-wxY&GA
zvh^*V@$2_VFJ6nHXYoGKDaVuL_xt>RmiUAH*oD+Dw{4zo?wu*U=|Y9cvfk&M*WR3U
zHkD65%ozTwFU#@aGTD>}-6gp<o#H&iljdmEf6__UNxvnp_U`A0;Cb)F+$Y2fY<&AZ
z-J?4H%MHQbA13o;$h&WtFQ2H(_UY4-Zz5~s4h3HRYO=hm@@j!p+fAG5+m{;J|DDk{
z{#1DOQ`q+J-90&x{CiVWc06Ca<?8$7uN#xrWNQDc+sy5}Y@f&a8w`Jvt3JJX()c6h
zsYnuEth&*vRM{;OA6^<Ye%z@3BlQ_$*ZNCJ(|VkjJa%msNY}dS+HBv;tWwlBcgX{z
z>#?%uWYr8SBdU`QOBa0qZ|hxs_nwgT+Js|KwttuHJNe+*LYAW?k7xF)3(Wk(ZU1hq
zjqXg-T-N(}Thbp~nf~&+!i0t!_xAj_R(oZ4WANskcYaHqFZpzE#l?pYUO4^vV94|C
z%7lRWdZj4dhrQdag13C)7dky-aoqmvl6P-0?@e*fSU<7kg8GI}9)d;ZJU4AUxaIYg
z4uO1qrbSVgpC5e3BC)D^rrz_ztlw;Y9-YmTCF$r8AY*&1_JG8F-J1R1biAfkUQupa
zvTtefB~`8W_ok)K<5~WE%gda%#w+*CFD{Zkc~tYw8_C08xQ?^VJ$EpPV_B}Va&ega
z!<xf~bI$cYnptf%@z3WVz9;vZGw*7?+M3zpF1piX{w>cgsdE?D)`g0Q%v|I9|LIoE
z|H)SmuIXO;z3lGE%}m#I|7kAF{w8Jbn|0{u!DC%FJ|8rQvyMN!=OrUgg-b=8OtIH%
z57}fxbuLkzmDLt&IiJ3q(A~>$Y{9e^>1T1S`@a4#<vFtNOHE$O@m&)(zqk15rTiu@
z;>N~buh;3_-`CqzxFdjp=Us*M42#GW37*~$wul@`4)k04)cO6@o@J%?)8B8jdEzD-
zr<TdNB<oP+s((ild)^$r9ejVskNE0~)2n8#)(SZH`^w|n1`Nq7r|TA%Jr>{d;}}oa
z8~f^wb8dWBxxQ$TRLFsb^jiNf;(Zq_f{te>Ep<3{A%np=d0%?X=VyQJ?3JEt_5I1e
zy0@H#Th4N>n)dAQxAMYMX?>!qoA)LQ$cLZEJ#jMU%&K)=He7kN{=1$ya>{*Cs*N~t
z<$mAv_ve;qt+?e@v*9Pl@jhAY?Q80m*}1*xd?Vxda2@ZP`&-+#ELeAh)nwV)+k#>5
zeG^I-$@bo2OWtv*!ReY;Tt$*p=G^<~C$Ifgk+VH^FY<4}<+%TcmKO4=sp<9YxTHEQ
z!2GZ1bKgrIQ{~>&n?76@vS~{AM6S*LD^F|+QY#fbT9vD_^n1^tZk}%{bJx$Q{;XLx
zH>8l8TSNBY+f(bJofcmWi3l#Me>o{_Wr<Ypw4%2OQg?a(OmJ{oeR<k5?~_r-ez@DK
zZN0sG&AsVIR$ejbJNG{Rb5WA~=^d?{YyN(;tokuG`Rs50qVV6HYtF8G*1BA4#Vxg(
zX$7;kY}rzD+Wx$I;u@v?rrT~y9E&m!&e&Ke^Y>M-*}ULWSJGw+ol*REXHsv_*_W}8
ztRGF^*JN4D7q~pu`OX`r9jh0fniikFd8tOzxryIGf5-gu<(SmBDJws3sr!vt+nSrN
zvGr7JVP07J_JUW~CO%oU=VCA3m2R!P{M+O}xL;E6r=wQuUmg+bo3&cli2aW2f)6o)
zFKstGlTlwgr#$QFm1WFNVk1&L(~qAk-f@)WVaZfgm)AG@{_&=m{V(S`e&%WN=Sb;&
ziFsMEyT0}x`zLif^8IZAd()Y`?cAqY;<jy8K0S4X!E`Uy`1jKN>#MqASBfY5E&F1-
zWJX?y&#h<o<9_7YZJqjeTE)DIJ;I5lZ!RP}eDkmQNyKXVXOFDBq_tm{*GyP`|Ie(}
z`dZi7Yg+$oTD~FWez$&3XsF>2bM-0BIzOK4d{X@s^Rh-st+u+u<ORo$_pWjVYaZ4|
zcX=OmcwK7#_+5G0-R}R#-Rs|}{rsXi>D!vrYwVMM?o?sO{*dd*{ai)tpYr7wdi6Xv
z1n+51>6yCP;_>x~71LL3Uh(zS!5R11rrDU!(+_{Eu4>x)SNfT8cC1x}i=cy$wpn_D
z<I)#5YVOUfn-G1F^+H_gy%M{-6<b2(Hpf-<+kc<`=*z*UHJ@(fFA05V#Ozl8F6-r)
zgERLR?>KR-Y5$An^%en%dU~I?eXmG<W)>9GzwzJe=|6M~XE-(|?|e0H>MsX2KS}@Q
zBm5N~HuBH-f8I`r|82_C?dOeuthB#y|2yA#)7{@DKYg`lxACUMGw;V&HQ%(JWLfw@
z->&*wGG9B-vx#iqLT_xfR*p(F{QS34MmsFf*Hh=u1NNYG?GCG#22}+bXt&sJk-Ny^
z<sP}qkazQ{fPyFH_x?O_IH|kt*NmXXkkGDgf2VI>{{NhPyWfO)^N#c_J#CTmQRR|%
z`A5~jXBNHJZEdU%%rrgU_v9|CwMEq@7WeYCkB)0j{$aOq$F0wt6Zhr1NEPH92^Nl8
zq#td0b;rejXLr{8UBRub{&jiwZ@v=gKSrA;&-qxc%gG}RYRIzG^2|N_hJkbX4nG#=
z(&#Nmt_S2A%;5`8`<!WSyubIQ^YgN~k{|w@m(iJYq2lYayW6cNe#ugoGRyP4UMQXU
zA%*`=eq;ZGt>LrH=kouxn|Uzf{Z*egmm9zF*E-(&`#3Xq{ow_ZSAAJB+wQxd@|*q7
z|NV%NDxG&=+OfqMuQjH2vtF0CoOK{I`Q^2B)`#m&3jZ&^|Eb=vExYLKw~dQ`{_OAH
zaeqTsdHeUJ&-XG*{6EYo<u~W#qVn~@@|kPZzt??Ho-8H*=x<}}%PZMD-EZU{u6{pX
z?O4Rq-i6=Y|EIG2UmE|o&E)+Tlh=>smQVeA_9gq8ukTK?2k$QW(z?5&E6?Ni@@vBX
zzu4}$ej#kq+{Q1d?+y2OYtJ&tJbmE&r58UxmiKV2e>N}c&Wj)C<ZFJ<;65Gy#`pKM
zwHf~pd_Ln<q;??Gr=!AnqMHA_HGZ>9I^Vp>N$kBX@_AzBmp6OoEYueJl<`1xU*{Rm
zn#%WkbtHF9V(tIYeK2Mn)8vy!=2#X>m}ZHDy`F1r{B!&LI`8#ydkc2^rXSil^~8x2
z0_UH+Z9nzX_H)E6S?Adn`X_E2@?T%)n)T*%$v466!3BQ<L|8p1W!-&pe!JD9mHTAn
zr!_U7sVfxHPo2fc-ehfaZ2EgUj|Fizo=vNqdTrB<H9Dt#=Gn~b6jo2l&+m6rwqqAp
z(p|yEdHvet8QUu_ZS_1SaO%ZWc1c~HYG2k}+d8+LOnLOU-(F2!z5RMzHLtn3x#AUb
zj>Oc)2T}W+R5>@_jCsAzJ20nq+ce$iV^cJPPn<og8yo(SRrQb}Xf7@<vazh7KtWx7
z`8Cs7u`49k#P6SXZEf`92M-Rka0(X`7HU2ZeE#IggEwzt{8qSb-?Mu2Zh_3k2T`Hk
zrc#Fv9rEz-0F5tf4O-&t>>Rm0Pd4}Vwxj3H^<7--{`k?OCKb;Wt4^(p-Oa(t>A3o8
znD#lREv+8hEauCjR$Uep6g+rqYj)(uBv#$1EeEb%-5M79e{God#ful$#O<BcCu^OQ
zo__qp!^0C(XUbZaEzscl_wV10n>Ry+k`>Q^ru%01&7CXz_SV+NA08fF6ScLgsi`SS
z(NAsiTkgcjX%}CXnB?4;@bvWb%S*k*zrDHXJY6q#Mf`p{MMXsm3kwC$prtdm3S@%j
z<b2&HsmRF6f_g$mMnaL(vRf@g#l(yXAGxdv(~epzwl~hdTTC}%SBd8Ld)4~A(&op`
zpXYaXKYl6Tc<bwRKlU$prqQM35~Z+1&S~xS*B4)B`yc<xeO>8v(Moe&Podn~+fwiC
zsr>T(zI=Fic-7Zet<BBOs)1rowY{#t4m2_!vSMmnFlCX_Z5Ph4)uMC#!nLk2#O^Lj
zy|yNjN6u!3ar(In%Y3DI*qpaM(rNj1$;H)m>ObAnMOT$-pPUc`&6Eas-JJ2IbwYdC
zYTaCsz2EOu|NM44zw*t-;}+H5bPNp*m)_g{VbS`Yj*gDg)t4A#tHrspIa!z(xVZJY
zN^U-FGUqi&IKa@=-7R7LF7w{3Tg_=}n++wlJbFA$`@sV}<*?WHF5QpHy|*;!(xbKN
z0vxAaJ4Wh9t-iYGVn)UdgLzAqEV*Rc-PKk3_GoI2eYQ;R?6yUhI~V$8pNiyHmXi}d
zEbEp$FT+BFgT?fD6Z_n0(~jM*|9^Hv;^B%vA1C_!|HRD3o7=f~E^BzWeUF=L**CV7
zNI|9AsUg~zl<HIjIJ90hUd>W9HlF<Z_kH)cJh|H6-%_8Pn7GICC+`-i&S$#JANe~R
zot&0mUvxRMWm=5tEbs9ABT8Z$JDxszvTwQn{AKz3?XL8fshjMPyS&WzaDstB*%^yz
zIzA4eqI2f-SnR%$n7`hA@x+$9>n<E~T5?oLY~!D7M#(P^93IWC_;})RuB7QQ;raga
z-Qwcp&f9$EY3E;BTu{%Jwz=l@&c)A)-$Z{l-+wml@SC00p8Mm3pKG+rMC|H&>fW_3
za`n7-m(H?mWo%tjD*fZhZkMw6w&6y~+pLwJ*&bV*D1I+6jj!%6yS$EtZ_zGJNr(3i
z0h536R4h~8yNFjc-+1by$(?_`d{mp3W8*xHbwjbzp4jZT`sId>Nf&Azb9u|B{JFm?
zR^YFEj^E#m_%Btufrj^d=G)B;kE?8T<CWf2d|Y$a7lY(2mp5m9lR6hRd(p%b?{qVt
ztlO)&Q{Th#RAUYQt#4cl=Q%d}mGheT=_(Z-4V%<7`?Bq&g;yT$-4b8J>pCk+*geQ%
zdO^om&gX^e7B}a-b`73(Ze5OQt+$c;`4@$s3!H*y_?I~<YDSlRei*?k*u6_2m&N;(
zU!262u2?mP=N=9%%)1WN1eMKsHfN`x<08qhfau4IgnFv~<yn<>AJjh}n=Wo0;+lG8
zMqiKYPrKLG)+XNnw|7g{^)(@jqP}Hxxw1|;d2jN8Z%quhwtqU{$E3ph?VPx?VwaO=
z#*-?A;F^0qPu}?1y378mf7%u{_4q0$(dqp0G1e3JHSYWJusKts%d2F~`%;fsr4J9;
zBTY_mK3=$A!bGRB_-PNPhubY5>C;l`wznpkKe>PY?1QCO(+otD!$JbMBEH{?Dw}y=
zovZl1e_I3>e%mI!EJA06)kO=X6?<RsMzz`Bl$#sYd~d<t4;dF%WGcL`Gi&gDExdDe
zaQZBh(&GmYGOV!JX*pFU_h{0T2|jKycjp!aa9eJuk=ER|up)J?isj{&+L+)dX}^ue
zhTWTghE3qv!OnVl&r1DwRwu>WBKGwP{}cQ%&-&oS9;G!_>Q1wdTvRzB$7@u1(*4FR
z^|@=3L{)6{>JDzned>B{SMQ(6oEzGIZgzYv?tgz<>BZBnbMDMOF)#V~iS11XuQtC}
zHqoW(#l$JAKHZqJJ9(~`O`3M5^tKJ!?u~b6&)h6+P;vR^Jp~8XtxqQY@Mrq%CzfPt
zAs9Bx|AEl+y@v{pe-)p*=Z;d{k7VBZ^tbL;SKKMz!pmH>)ou0OZNkT1+?{)Y`Kai<
zvefl~@0Tc6U*)<tuX5U<J266&&t%jzNq!2dPI?<U<xa59y|nJFJGI&?m!8)06VEJI
zD}Qi;_%4G5oqk_*#IMBpM`=HNkf9-K9u=5#zW?5erJ=J89!aw*oaX8~=Je&)tQG^2
zPePYJ=3a04y{A_rZ06_VvYfe64&LInUI#7t^6k&GvADm>d=;h?!nL#WCCirVL$z<W
zim1F#fBMbEX73};372o|vE`n=tT*#%a(jxNigmP`@=MMacjm3LHrxEHMy1yJn)b&f
zx+!n&oW1s@$|O_1ae1@TyN`==;`Yn$p2y3%ZM9Z^)=W1WS-ZDU7j`7=aMn~2ZoT7t
za!z;m0`EC}f0i81xs`T0eZkzXlb)~bc^dSv@3lljKuFnpuZPdyuD+RFFVek8>E_`#
z$*({BT+SzZ%Ps!?0jbdIZe78_H#e^K5z+lCBWW2XB6?+WWXcp5FQaYq4{4s5+_1)Y
zj*rcm@WtmA&o}S*$CzYh<oMRrX;sMV=@SejN?vS<N{Mt_JVWo@aaAQ|trvd}cYNIB
zytv72^<i5bj_=&RZ~wlq;$fs;?s=8<3#CiFl$4Jh2vD-+@zApP`TOzS*9<Fn8rA(u
zIy1>OE>6$lre{L>k&8=zakNC0OsmzDQrg`n_$aG-rG=Zj(A-VEi(jTSHLW_eIAm*E
zh~V1`)$Nx}7V%Xb&{Y$epUm!gb}DCpUTxg}t~Bj4do1Ubocg%AW>2Br^2I@c0f90O
zRyhiX4QEH*zJ6g-rG;Da*Z2Kb?kLs7yv=ES7@xf*>Y<csja*&JR({PV^Su(kX><R~
zjMvjvU%#aE_3upe(=igV;kUo!)%~zy+rGJ4vi!Z*x5(h1wXSBha;vrX@d;h2y5jYJ
zMbg=&{Q(m<l$$Toyc>PAM6FeJw_mZ<@t9w07OrlO3=LGhZCIw))_vR~iYIDj&FZdY
z>%<k;Ex+;UxxLKi)$QB;ZJU_x7GClUeReKtg7dts6V9Z*z7ejt-H$a*#3b~|$D(OF
zHuxRdx6bw!_iK}=Hzh`_VP7{rUt1x!Q{nrwBTHUiDLrs7;Yd_WQDoW%tJ#Jr(w^JT
zD?a@p`O5uQNcEp}!Ou5ntz+3`9kVn#_Nb|skRRhg9;t`t*Kn#&Set%xdfw9Jc4IvU
ztpNRHdgr1<*GAhOdVOHu=70%_hq@#dL>Hu=_%ikD_qA2>p3Ik8Ykg<t+^vuac9F5Q
z+VwE!ic-2<!bP^7UrZB<?`rQ}tHqTe+xha6)c>B%bNo)LmEO<$_V)Wy=l)+6(yNM=
ziiVt=Ijwe<Ku&n;=H((`=N_lNEhwC;GIe`%iQ@d}mib9eq6?S3df!}iS4>>oy5{Yx
z1!9TOIt#oOgqn!V>av_WFZQLx<j}O>BDED-AMNzs*v|d@{#^XguP1LVkJzR&RcCWj
zbo$BU+n;=*!)<!5luo&@>-Pn#6J;6KCgyxf6}2><of56BGH+tvi}j1o9#NVWUAL3#
zxS!@3Rrj)Gb$_jPNNn|3F{6mfAl`G*BsuYX`9;#lFD-TFnYYYXW&Y}2=eJ$ED4PDs
zvhY|@=(`tFzq#+c^f^m5Hb2h(<q0dsoD(;jZ(i)lV)A6VxkeydpQGPu-O}gxr_b|V
zvz?o5ZQGZa=*#ox@3!^kUv|}?pG%Tk+%T_-?dUV5BE}OBk3TeyNHDnYVe7#?LUYc&
znQm?%s(bG1n}A}j6Z)O@($QuMH_vAaeeSp3aN?QjcLtTSr+@n4ynAJ_S?^+_0QFgk
zb92}3Tl6uYK>hc{|50z=$P`YwWLbNxrM^K>Re$c?-=7(GOUdd#pOX^5i!okad`_>{
z&*kSQEtmMPY5lL2Q)Fy9xGm4^%Kd%ATSD<GPe9CxnZY+#987GnzN&KBN=8<N%ed$S
z_mzhWt}fW`6Z)&@`P!`iv#+u0TV3GaULt;O#~fB!3o(le)_YX>zh=A7-PO1B`S$CX
z7IW(6Y2-hjbbVUXv$spHt?)Sc^ZCgWdiGyd&51u^*<}&ELSbjcrFDzNU2hwE+D9`q
z%$=@&_I>85WM!of*H$*T%<YT)S+q)de(lcrxt*CQ$to*yZTfw4Jhit=f6Nl*$nxK@
z_|3jad)d#<p8I(I+u1Yr`?g=aICsN~syR37SAIF&;<rWU=<@!JiVG#U7nByLE^*cQ
z8mr>4@==8BJzwdI*WPhdZ+rh>0qX_H!tdV}Ha1G_tJ_j>j5YB6dzWed3s=O5?|Jpx
z@3nsAz0Xt6Ep$g&qo^OVV}hCO`IzgsYxH(EJg@&faq&M*4OWG8XLikb<@02MGVeca
zH+muX^ys6%nO{1-IW50v@OXZT+dWaGdE$)^+`PZE>Q!`gEn0PA)7$*jI*UV#PV;Wn
z++idn9FuuziRa7rd-m*^ZO%1s_HO1vJx7)K_Ptpf78SN6OTL_Q*2e#C)zjBftCD74
zxpZ*B)0&N<=GA-G9(3qgrz&tqWa7FPnzz;Ft-bR_c}G=V*719Mfg7)!EM?YR(7O4U
z%(FH3V&48sTiw*`*yF1$aHp%|XZSjP^RJsftjNf(*|w|L&9Zw5^W?=dLyrqfOu5VT
z-Kx(lahhmOa@%T=$TbpMgq|kbGBrM6`+X_(U-(3o2`ab$UoXp0JgDk=OKbM}|0lm*
zFy3OQKFQc3T%X^QKeDW{W_yO|W4U*X2l|99k5pPGOg$SRa`W5%oYz@(%AYg@IJ7*z
zv|eyKx%{Dc(xpv{6g0z9j%xLkBp;GBPwTlArt9=E`1Qh5+a|OhJ$UBWmgYD16;c75
zYhOFWy4!}i9$c}tbh+iENQai?%t<xz8#|t+@%q#sEM9hGGMnN3H@y7icO>S_>G{H!
zee9)jWXkoku2&C9{+3y$8-FbQp!3St8Pa^N%O}1Nj1+G;vbnW{XLWIQr8w)%KYzYx
zO_G0eSld=+$GnNfpBL)(R9!q&y!n>UYXz>251uJb?bxD~C|$#O;*5<7&u9IUXV$o<
zJv-X|YuUGV8s4+7J<PGKZ28*y+u)^+hnq#<oRiP@uYEF8(KbM2>e}eZ9Q<Do-M-#x
zw^7a`e2#mo@$7G(9`m>VNPl0+mBM*_gTuSZMWXzr1>1UiQteLnG;;rVe((3s_a3(&
zXm~lQajWU3A4|;t_kJ_q9qD!J?>H<H+5GhI)ITrpcCFuaL-}d?#*$-x)7JSvEm$QP
z`rPAAt!_n`kHo$<?nU#?emejE*>P9Nl#^9XRok8%?F?kO9bdQG&ZLR&*U>Y#ug-a~
zo5wVJgXYd{J70>2Teh@(_^|rz4*hK@LCm3QwU^`e{lA~M?TxL!V#1eiPuA7-N|;#)
z$iH-wl8UOanX>)eE{iRTEDNpu?KaK6T=D77qkAQ*wHKzyKizpxy71=%#d{i?^<6V-
zE|ha>E|yP;vOnH^)pBP;YVxy<3qtdknVo*neqK0Y?`xZ*86UHx&YqYaec_yc@zrmu
zPnMm!G-n9|10OT!T!4d156Ozxy!>RlMujtEF88KIQ@)&7v}N_Y+<3$CS5G~>i=C&v
zp8ij7&lLu5bE6;mCRvqBf}{KXPV}2pEj3Au>uuLh>%RhJ#$R*1{FmHVDY5;3{`+%_
z7i(R%>8pRgcdP2ukX1rL95+1~6ggX54{qRSx_e{Mo4b#1WPIPE+?AWXow@9Ffyk9(
znc^9aFA`%iri<N)5<I72)M232#oN-5=*={7g2>dPDpQwUv#t+ORdJdmv`lu+=bCdn
zpD%f}_D+ax=+CRs`Fp?bJ-Sgx!nRdg@Bg&Vi<{&4?0(Dbuie*qr(WXdqt?zZrdxtG
zW%93nf4k-N%A0qhGZ@QlRrQ!>R)+PwsL=L~tUd2ncI$KGzfT%mGF;DRueiUV+T6c3
z<@vR6<AMyUd6Spc#N?(P%ALH^_Oz3CprOCrS4D5($Cc00tl8?7XN%`2<@%bHuhmQO
z*f42p_rKZhmnTR3E_Q$a_Lzj*lS9+KXJ=^ps7;FD-1S=1a&gdy+pi-nVh+c@PrAH#
zcf|H1$2xi!OD?F?i2E-0eQkcqi93NhQ8QdNnL1qk7j&;ClmC6c_rqr`RbE*lIe`Vc
zmT=ZDRQ|&BY4^=-p9J(~Gfh)5N^&aw7#bEV*^^r1c75?armdzj`I{!p7LL+cKKFTs
zq4cTWpS!L7KYwWQUpY7GgtPwg2`>sio>P|p_=4GR&xaVjlfPWAt>0dDvdiPKmB^W@
zinUx@YyX6B%Gxbzza83|up#?E_vgzdyuO!r#h88hmiIH(({E#O@H>}(B?;Q;k6t-8
zN3HGDUH<*js!D^Mru+Kx)9$AKciq3la>-I_r8>o{xwlVFdOmyRpC38zB;~JOEIuuh
z(!S~XkH@=;p2gd-{MJ-o-eh)cdFGY(Kbw|zcW2HpnrPa+$<wSfSlC}S-!9Va%N|J|
zpO6cs2E3AIH$9!3XPjVCd|&hN&f2_N&yHW*_Eq@b;{^G-oeL*q{tY>B?9WQ}h%XB#
z-}+g$Meeq&N~RR2WuQs^%7y3V`~2rP7Pe>koH<;_4D(Z%US@Ko+}inanb5uJJD#Dl
z{qCgit|-_$`(yu^w2va$#|wO)9oX0NGf;c2nCScIep;Q+XUYGnc)wt_+1*CbxyR1`
zKjy6-yu<Ff$omzZUrgKnIqtW6wdmlq6AtaSmX_s;hR(V6XvfC=58r$}C}tO1&Xap=
z>ytS@W;h@7k=t9&!5Y>Okro$z<XNw;$*+>0+xpAuCSD0Yq_k*W$#l=KhkQMYN@VBr
zEwzZMkj<L8;<|BYsG-EUW19{p?AYSxVx1VnxB2pVg?qWqh7Cy!+wZw8P&N7MXPf+>
z<vY*&x;^Hf{%+fK<Hr}zp6k9T2Q9pJJQusSMWd~+w{`uTkm_a=nc|BQ$<BBGDRRHJ
z>-l=^<(gl287BGOeZRjlUvT!^&Oa&BWP{DObDCWZ2w}}!oV@Xe^p6Kiy%sI&O$pln
zZQf3&DTg_7*KVn*%Di5x(2*8)A^LU(uS-z-h2-oFw<Kpc9540t<3Dml;BooKU#lj+
zn0&nW`IC$-`G59hZB4j(=<CMssb3<jvzB&C?dO{pbuT8;@s~bZ;!4g5CN_N;uIx1-
zZ?l~|-@DfrKmW_RLT}aa=~t$2nX&o$?^FDrPc3xGoAvs@#F-xRw?)}$7CpY)yk&~)
zbN%(ZC5s*>Y}(SjCf?=i)V0gk*0yf{rdi%46!mm%verDVRcy1CEm*l=CD$sceQPvV
zY%1NqGRr+b>hhL=jCiiYva;`$r0#rZW;(a$?ul=+l3wxTiSRaAJz!if=ivM>!IxF{
ztlXlt%i_M@EZfoY)--I{Ip0I8=2(XaerdB`rfKK*KHDXKRqESW5$k>*_7U^T;9v9Z
zhsB>f)p?1@JNKObnZ0a#?b&ImyKhXk=}}KV(zLoIR{cy*oQQwO@wdz-^FJ<dk2bg-
z{_Tbw*8zpI>3d!TrY+jyF>m>W<i-CFT-emhD1Wt@@6(w!wO=vz6Th5#Z1b$=(W=yw
zH$wKd*P1L`#;>e=+RG_c^lGl-ndtJ(Hz%AH7XD+i+ez8jT#DI>CCZ}cj{AHkYs0zU
zS8fjsd~$5YOpo~F>gi_=-+RvgcxM?`xLU)_X{XoPuSxj1SNf*U3iaBvm!u==dU?10
zdh|*>vexxTyo}acZH@Nb*Sy@H?@UhI6EOSJ-1_TZYu|dtZ#pdd)+dd5yN`VTrpSlP
z&lz9wyt^RS>Bynss3Rww8(4S8S8mawYVMZ`rS4goMn?>FT&=$wvf560SL_^RS9?`#
zoBZd*-8Ped)QZaJe}5n?fA_QE%zJ8Ge7`+rPVVrv+@5yOO?~~n?~M7ZZJTPYa<I8O
zXLnB4$~oin`b*&b`=>T8j!SB{G6=7|nOwbwtLlLF&&D*JnIDg=6toF%6yuZseDLJm
zJ4OrtcK8W5r}?G)oZHD__hXKgYM<cCws+q}@3}vEVv!_tW{GrvP|*{W+w*gi?l?Pp
zuDj{)YA`MG?f2bF8y{WPdU-h6@YURV`)=Klu~>Qez5HW?_VxTVrE{i#yYb^=H|LC~
ztje$RzTXhBo$~v7+Jvl(l<TwlE8iY9O7qiE*!k(vEAhZuRrh^YH@N@KI;p|s_2aZ7
ztE$Y6hlzb3{<kZA{!+!885+8quRg}h_GMYv>WQ<Li!aIzycrhRbNNEUJLbt*4&M(S
znR0r=(MY8o{cqK0g<d>&+4)oWv`^O<TmP^Jd49N3^kR$Cx7_3(UrTm;KDhRe=5w}p
zyDnX-4fq|sGAF?El+palkH3XY`}D<jen8F5h%h^Y2`1h<p5MFUHT$5?oTqR8a_{il
z__$?a)9yDC)tTmt7n_G|e!St-1l2yjy$9vCm=wG)Nx5&>dtYQ$Ag|k_$!l-;EbRZC
zUc(sRJEPiaW}Y{5`zn)5pVvzGvK0y6&57739e+;aTA#^<Jy%`ln$DZ^p|Y>WPki~G
zi$1T`m;SwUA@uCQD(>k|ThGNbzI*(j`{)(_eO;cO52~IA$5~E2_&#1+;Xc;`h1@{q
z-Fa4rz6n>}shIe+d&#~>(O(vQJ!e1vt!KNN+n2s=eseP~Ci_k;c8YrYFE;4E{oO^2
zd(X_bn^t)<`Ni^^C%1e}Ogoox?a!O^J2v0FeA0BA{%Ra~dL;Sl)lZcxw|hr#SUPR{
zv^vMiFuU!(eTTxIE;%HB`a+3t?J|)~Pu!T_+iz&r6>XgNpG_*w`FRy<rjFL5`1*ab
z*Dv#V*w6oLLY7^1^`bK~n&a-w`%vnr-yUaq;NlX;Gbhcz+*<eAF-E@jWL>b8vD-|=
zrl_h_b3%S3Nf<8Uk7Rz6vLw3Gbe?UIj@n_zoCSTh_g73@_nPI_o(iUiwJb>|ysus`
zHIBT=_R9P0nLnXwoU7)q`rA9<()5(z9sA<s?<EMVx4)5DZ|7w$yHH7Qs;1?_=jY>N
zk9AwGJ@YeDDDcNh+gEB2I+Pa%pWPF`JM)_9qTZO2zg6qk>)qad<DA~QCFN)Pz7_WQ
z-8R=dRklx8=F;2Qi!`RE`R|&mdg{O$dC?2UrJSR(Y?#@;z1(8wkh17g(M;<dJ@)n+
zCjW?kZmbr&aN(M+wXeT#UTit}X!hrm+g{Yv9&+tHdhWqKE)BL%Vlijmx|?l&7XQ!f
z*yhD2`fdHq4`e8wm3xp-`{GC>m*bq<WySxUmqtAEd9ZHv*(-BbEao$~k>u%Vk{~(3
zb6%#pbexsvFCXpnZEv5R+-|yTJ<nbKs_gvIkI%SGmz>vMqF}bkYRjC0hekI~`rG|y
zdJ$N;^UTgQJzw|#=D2;gGG=D3TYlD~8|kTg_Fq4DcXiuii-(KUP90pp!qB_0J8k2~
zJkjhmT#V*V-EEHW77Iwr)tfC_W^m`5>icyXNe>R`7@d(jRW9=R{rWA1M<+ex>Al8i
zf80zY*ffnN_!skvFS4@zFW)xXd~a)>-?#mdedNK_{jy6_zeK1l*N%9kx2bOL)^6@s
zf#q`lUX-~wJ04rA{KB(bPUw~D5`ErT%Zy&Wauhc_k(++6D|1G8?ZJ5YfBtb_8ZIU-
zf50BT>DByAC;I{!?63Zo=2Uw==~A5%$Ku}C(|n)2(7he`YeTc?>CNZo&Pwe`tXMZO
z_xJ1%amfeYtb9KA>hYDA8qLc-%{D)G&m{Mt&%B*C+Z643cTeYgxUv3sM||FujeI8(
z-gRZ3krlODu;lnR1=02O$F|L|k(-^{{oy3Ht(mRq^egYwLZsiGi7nK<wzazQHUIn1
z)5RQ&Cr_Gvrls=c5{bW4-sZdbpIsFHBb(uBj?y)mf3^O?>{^Pcbv$p|*Jv32jo6XI
zb4r-K;?K7vrWF=NK|8-qeEBCOD5EQW!?vdB+ofjgvzmFKdO=h2Ba3OeKYF&lwoiC?
zx#8-u6E7b}{yfk8V)@sw`TtwX3NI$!z5PAfNbhcSKso2zcVd6#4PSPIXitiJwa<S?
z^3Iv6`u$4BzkL52z3-Fro$~XVYHQ}4TC?W;@05ECPhXoA*T3YrrsscLk5iN7cNtIG
zu^vg;>2v*_FSWh%u~xt~N22_Ut!uWofKUB-IVXm6O`q5@(aW3u$<OgMe6Y|?Z?<*a
z)TY>}*Jlab-T7qMgWC5i!j7Gh{v&(EM>+LWK+vK0^Y8y&?%tbpq`&y-R<$FoZCk!9
zX%%pCisDc_(%Q16hDFqg<E1CJV#|&R6Xa(8Z3%JbP~7M2Y8`L!+-l}rtrmgl2Ar9S
zEfXe)IdLc|>b3|7U2@`3Q~{ac;lZug(y~Rsi33#y*l;W=AX-6Yps4^G4l)Bx1=w(~
iEodshhC{sYTfSnQ?3Lysfk~h<={#NiT-G@yGywpl5CxS0

literal 20122
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
Vm%d)pW?*1o@O1TaS?83{1OVc~RxSVl

diff --git a/sflphone-client-gnome/doc/C/figures/voicemail.png b/sflphone-client-gnome/doc/C/figures/voicemail.png
index bcc3591335341d322f706495ba2f5b7fb1003855..77a4d4872ec4649ad828ae81b88238982d25c5d3 100644
GIT binary patch
literal 17751
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

literal 17558
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
Ib4q9e0Nxx=Gynhq

-- 
GitLab


From 60408426a35e76d00d990434365cb0edf3787873 Mon Sep 17 00:00:00 2001
From: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
Date: Wed, 9 Dec 2009 15:57:50 -0500
Subject: [PATCH 074/188] [#2402] Update russian translation

---
 lang/ru/ru.po                     | 149 +++++++++++++++---------------
 sflphone-client-gnome/po/ru/ru.po | 149 +++++++++++++++---------------
 2 files changed, 148 insertions(+), 150 deletions(-)

diff --git a/lang/ru/ru.po b/lang/ru/ru.po
index 18045ccd61..14b3aa5dd8 100644
--- a/lang/ru/ru.po
+++ b/lang/ru/ru.po
@@ -8,16 +8,15 @@ msgstr ""
 "Project-Id-Version: SFLphone 0.9.6\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-12-03 10:22-0500\n"
-"PO-Revision-Date: 2009-10-26 20:46+0000\n"
-"Last-Translator: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>\n"
+"PO-Revision-Date: 2009-12-08 20:46+0000\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"
 "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
 "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Launchpad-Export-Date: 2009-12-03 15:32+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
+"X-Generator: \n"
 
 #: ../sflphone-client-gnome/src/accountlist.c:175
 msgid "Registered"
@@ -29,7 +28,7 @@ msgstr "Не зарегистрирован"
 
 #: ../sflphone-client-gnome/src/accountlist.c:181
 msgid "Trying..."
-msgstr "Пытаюсь..."
+msgstr "Подключение..."
 
 #: ../sflphone-client-gnome/src/accountlist.c:184
 #: ../sflphone-client-gnome/src/sflnotify.c:131
@@ -59,15 +58,15 @@ msgstr "Неверный сервер Stun"
 
 #: ../sflphone-client-gnome/src/accountlist.c:202
 msgid "Invalid"
-msgstr "Неверный"
+msgstr "Ошибка"
 
 #: ../sflphone-client-gnome/src/actions.c:98
 msgid "Using account"
-msgstr "Используя учетную запись"
+msgstr "Используется учетная запись"
 
 #: ../sflphone-client-gnome/src/actions.c:104
 msgid "No registered accounts"
-msgstr "У вас нет зарегистрированных аккаунтов"
+msgstr "Нет зарегистрированных учëтных записей"
 
 #: ../sflphone-client-gnome/src/actions.c:285
 msgid ""
@@ -127,11 +126,11 @@ msgstr ""
 
 #: ../sflphone-client-gnome/src/mainwindow.c:73
 msgid "There is one call in progress."
-msgstr "Звонок ещё не окончен."
+msgstr "Один текущий разговор."
 
 #: ../sflphone-client-gnome/src/mainwindow.c:77
 msgid "There are calls in progress."
-msgstr "Несколько звонков ещё не окончены."
+msgstr "Несколько текущих разговоров."
 
 #: ../sflphone-client-gnome/src/mainwindow.c:86
 msgid "Do you still want to quit?"
@@ -144,11 +143,11 @@ msgstr "Ошибка SFLphone."
 #: ../sflphone-client-gnome/src/mainwindow.c:392
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
-msgstr "не поддерживается устройством %s\n"
+msgstr "ZRTP не поддерживается устройством %s\n"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:393
 msgid "Secure Communication Unavailable"
-msgstr "Зашифрованная связь недоступна."
+msgstr "Зашифрованная связь недоступна"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:394
 #: ../sflphone-client-gnome/src/mainwindow.c:416
@@ -213,19 +212,19 @@ msgstr[2] "%d голосовые письма"
 #: ../sflphone-client-gnome/src/sflnotify.c:111
 #, c-format
 msgid "Calling with %s account <i>%s</i>"
-msgstr "Звонок с аккаунтом %s <i>%s</i>"
+msgstr "Звонок с учëтной записью %s <i>%s</i>"
 
 #: ../sflphone-client-gnome/src/sflnotify.c:115
 msgid "Current account"
-msgstr "Нынешний аккаунт"
+msgstr "Нынешняя учëтная запись"
 
 #: ../sflphone-client-gnome/src/sflnotify.c:130
 msgid "You have no accounts set up"
-msgstr "Вы не настроили ни одного аккаунта"
+msgstr "Вы не настроили ни одной учëтной записи"
 
 #: ../sflphone-client-gnome/src/sflnotify.c:147
 msgid "You have no registered accounts"
-msgstr "У вас нет зарегистрированных аккаунтов"
+msgstr "У вас нет зарегистрированных учëтных записей"
 
 #: ../sflphone-client-gnome/src/sflnotify.c:190
 #, c-format
@@ -271,9 +270,9 @@ msgstr "SFLphone"
 #, c-format
 msgid "%i account configured"
 msgid_plural "%i accounts configured"
-msgstr[0] "%i аккаунт настроен."
-msgstr[1] "%i аккаунтов настроены"
-msgstr[2] "%i аккаунтов настроены"
+msgstr[0] "Настроена одна учëтная запись"
+msgstr[1] "Настроены %i учëтные записи"
+msgstr[2] "Настроены %i учëтные записи"
 
 #: ../sflphone-client-gnome/src/toolbar.c:38
 #: ../sflphone-client-gnome/src/uimanager.c:693
@@ -283,7 +282,7 @@ msgstr "Автоответчик"
 
 #: ../sflphone-client-gnome/src/uimanager.c:117
 msgid "No address book selected"
-msgstr "Адресная книга"
+msgstr "Нет выбранных адресных книг"
 
 #: ../sflphone-client-gnome/src/uimanager.c:137
 #: ../sflphone-client-gnome/src/uimanager.c:756
@@ -292,7 +291,7 @@ msgstr "Адресная книга"
 
 #: ../sflphone-client-gnome/src/uimanager.c:279
 msgid "Voicemail (%i)"
-msgstr "Автоответчик"
+msgstr "Автоответчик (%i)"
 
 #: ../sflphone-client-gnome/src/uimanager.c:342
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
@@ -313,7 +312,7 @@ msgstr "_Новый звонок"
 
 #: ../sflphone-client-gnome/src/uimanager.c:720
 msgid "Place a new call"
-msgstr ""
+msgstr "Позвонить"
 
 #: ../sflphone-client-gnome/src/uimanager.c:721
 #: ../sflphone-client-gnome/src/uimanager.c:979
@@ -322,7 +321,7 @@ msgstr "_Взять трубку"
 
 #: ../sflphone-client-gnome/src/uimanager.c:721
 msgid "Answer the call"
-msgstr ""
+msgstr "Ответить"
 
 #: ../sflphone-client-gnome/src/uimanager.c:722
 #: ../sflphone-client-gnome/src/uimanager.c:991
@@ -332,7 +331,7 @@ msgstr "_Положить трубку"
 
 #: ../sflphone-client-gnome/src/uimanager.c:722
 msgid "Finish the call"
-msgstr ""
+msgstr "Закончить звонок"
 
 #: ../sflphone-client-gnome/src/uimanager.c:723
 msgid "O_n hold"
@@ -340,15 +339,15 @@ msgstr "_Удержать звонок"
 
 #: ../sflphone-client-gnome/src/uimanager.c:723
 msgid "Place the call on hold"
-msgstr ""
+msgstr "Удержать звонок"
 
 #: ../sflphone-client-gnome/src/uimanager.c:724
 msgid "O_ff hold"
-msgstr ""
+msgstr "_Возобновить разговор"
 
 #: ../sflphone-client-gnome/src/uimanager.c:724
 msgid "Place the call off hold"
-msgstr ""
+msgstr "Возобновить разговор"
 
 #: ../sflphone-client-gnome/src/uimanager.c:725
 #: ../sflphone-client-gnome/src/uimanager.c:1015
@@ -357,15 +356,15 @@ msgstr "Записать"
 
 #: ../sflphone-client-gnome/src/uimanager.c:725
 msgid "Record the current conversation"
-msgstr ""
+msgstr "Записать переговор"
 
 #: ../sflphone-client-gnome/src/uimanager.c:726
 msgid "Configuration _Assistant"
-msgstr "Файл конфигурации"
+msgstr "Мастер настройки"
 
 #: ../sflphone-client-gnome/src/uimanager.c:726
 msgid "Run the configuration assistant"
-msgstr "Ошибка конфигурации Stun"
+msgstr "Запустить мастер настройки"
 
 #: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Call your voicemail"
@@ -373,11 +372,11 @@ msgstr "%d голосовое письмо"
 
 #: ../sflphone-client-gnome/src/uimanager.c:728
 msgid "_Close"
-msgstr ""
+msgstr "_Закрыть"
 
 #: ../sflphone-client-gnome/src/uimanager.c:728
 msgid "Minimize to system tray"
-msgstr ""
+msgstr "Уменьшить в значок"
 
 #: ../sflphone-client-gnome/src/uimanager.c:729
 msgid "_Quit"
@@ -385,7 +384,7 @@ msgstr "_Правка"
 
 #: ../sflphone-client-gnome/src/uimanager.c:729
 msgid "Quit the program"
-msgstr ""
+msgstr "Выйти из программы"
 
 #: ../sflphone-client-gnome/src/uimanager.c:732
 msgid "_Edit"
@@ -393,19 +392,19 @@ msgstr "_Правка"
 
 #: ../sflphone-client-gnome/src/uimanager.c:733
 msgid "_Copy"
-msgstr ""
+msgstr "_Копировать"
 
 #: ../sflphone-client-gnome/src/uimanager.c:733
 msgid "Copy the selection"
-msgstr "Удалить выбранную учетную запись"
+msgstr "Копировать видимое"
 
 #: ../sflphone-client-gnome/src/uimanager.c:734
 msgid "_Paste"
-msgstr ""
+msgstr "_Вставить"
 
 #: ../sflphone-client-gnome/src/uimanager.c:734
 msgid "Paste the clipboard"
-msgstr ""
+msgstr "Вставить из буфера обмена"
 
 #: ../sflphone-client-gnome/src/uimanager.c:735
 msgid "Clear _history"
@@ -417,19 +416,19 @@ msgstr "Очистить историю"
 
 #: ../sflphone-client-gnome/src/uimanager.c:736
 msgid "_Accounts"
-msgstr "_Аккаунты"
+msgstr "_Учëтные записи"
 
 #: ../sflphone-client-gnome/src/uimanager.c:736
 msgid "Edit your accounts"
-msgstr "Нынешний аккаунт"
+msgstr "Изменить ваши учëтные записи"
 
 #: ../sflphone-client-gnome/src/uimanager.c:737
 msgid "_Preferences"
-msgstr "Предпочтения"
+msgstr "_Предпочтения"
 
 #: ../sflphone-client-gnome/src/uimanager.c:737
 msgid "Change your preferences"
-msgstr ""
+msgstr "Изменить ваши предпочтении"
 
 #: ../sflphone-client-gnome/src/uimanager.c:740
 msgid "_View"
@@ -445,7 +444,7 @@ msgstr "Продолжить"
 
 #: ../sflphone-client-gnome/src/uimanager.c:744
 msgid "Open the manual"
-msgstr ""
+msgstr "Открыть справочник "
 
 #: ../sflphone-client-gnome/src/uimanager.c:745
 msgid "About this application"
@@ -457,23 +456,23 @@ msgstr "Переслать звонок на другой номер"
 
 #: ../sflphone-client-gnome/src/uimanager.c:751
 msgid "Transfer the call"
-msgstr "Передать : "
+msgstr "Переслать звонок на другой номер"
 
 #: ../sflphone-client-gnome/src/uimanager.c:752
 msgid "_Show toolbar"
-msgstr ""
+msgstr "Показать панель инструментов"
 
 #: ../sflphone-client-gnome/src/uimanager.c:752
 msgid "Show the toolbar"
-msgstr ""
+msgstr "Показать панель инструментов"
 
 #: ../sflphone-client-gnome/src/uimanager.c:753
 msgid "_Dialpad"
-msgstr "Отключен"
+msgstr "Панель набора номера"
 
 #: ../sflphone-client-gnome/src/uimanager.c:753
 msgid "Show the dialpad"
-msgstr ""
+msgstr "Показать панель набора номера"
 
 #: ../sflphone-client-gnome/src/uimanager.c:754
 msgid "_Volume controls"
@@ -489,7 +488,7 @@ msgstr "Журнал"
 
 #: ../sflphone-client-gnome/src/uimanager.c:755
 msgid "Calls history"
-msgstr "История звонков"
+msgstr "Журнал звонков"
 
 #: ../sflphone-client-gnome/src/uimanager.c:756
 msgid "_Address book"
@@ -552,7 +551,7 @@ msgstr "Па_роль"
 #: ../sflphone-client-gnome/src/config/assistant.c:363
 #: ../sflphone-client-gnome/src/config/assistant.c:473
 msgid "Show password"
-msgstr "Пароль"
+msgstr "Показать пароль"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:274
 #: ../sflphone-client-gnome/src/config/assistant.c:368
@@ -589,7 +588,7 @@ msgstr "Безопасность"
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:333
 msgid "Use TLS transport (sips)"
-msgstr "Имя для аутентификации"
+msgstr "Использовать TLS-транспорт (sips)"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:338
@@ -607,7 +606,7 @@ msgstr "Регистрация"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:800
 msgid "Registration expire"
-msgstr "Истек срок регистрации"
+msgstr "Срок истечения регистрации"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:809
 msgid "_Comply with RFC 3263"
@@ -616,7 +615,7 @@ msgstr "_Соотвествует RFC 3263"
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:816
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:234
 msgid "Network Interface"
-msgstr "Сеть недоступна"
+msgstr "Сетевые настройки"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:830
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:249
@@ -631,7 +630,7 @@ msgstr "Локальный порт"
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:893
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:928
 msgid "Published address"
-msgstr "издаваемый адрес"
+msgstr "Сетевые настройки для Интернета"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
 msgid "Using STUN"
@@ -651,11 +650,11 @@ msgstr "Настроить видимый адрес и порт :"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:936
 msgid "Published port"
-msgstr "издаваемый порт"
+msgstr "Публичный порт"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1027
 msgid "Account settings"
-msgstr "Настройки аккаунта"
+msgstr "Настройки учëтной записи"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1046
 msgid "Basic"
@@ -683,18 +682,18 @@ msgstr "Учётные записи"
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:484
 msgid "Configured Accounts"
-msgstr "Нынешний аккаунт"
+msgstr "Настроенные учëтные записи"
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:501
 msgid "There is %d active account"
 msgid_plural "There are %d active accounts"
-msgstr[0] " действующий аккаунт"
-msgstr[1] " действующий аккаунт"
-msgstr[2] " действующий аккаунт"
+msgstr[0] "Одна действующая учëтная запись"
+msgstr[1] "%d действующих учëтных записей"
+msgstr[2] "%d действующих учëтных записей"
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:507
 msgid "You have no active account"
-msgstr "У вас нет активного аккаунта"
+msgstr "У вас нет активной учëтной записи"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:556
@@ -707,7 +706,7 @@ msgstr "_Использовать адресную книгу Evolution"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:319
 msgid "Download limit :"
-msgstr "Ограничение скорости скачивания:"
+msgstr "Показывать не более "
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:327
 msgid "cards"
@@ -719,7 +718,7 @@ msgstr "_Показать фотографию контакта (если име
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:341
 msgid "Fields from Evolution's address books"
-msgstr "Исполоьзовать следующие поля из адресной книги Evolution:"
+msgstr "Исполоьзовать следующие номера из адресной книги Evolution"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:345
 msgid "_Work"
@@ -756,8 +755,8 @@ msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
 msgstr ""
-"Вы можете в любое время проверить статус регистрации или изменитьпараметры  "
-"ваших аккаунтов в меню Правка / Аккаунты."
+"Вы можете в любое время проверить статус регистрации или изменить параметры  "
+"ваших учëтных записей в меню Правка / Учëтные записи"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:80
 msgid "Alias"
@@ -773,7 +772,7 @@ msgstr "Пользователь"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:92
 msgid "Security: "
-msgstr "Безопасность "
+msgstr "Безопасность:"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:94
 msgid "SRTP/ZRTP draft-zimmermann"
@@ -793,7 +792,7 @@ msgstr "Добро пожаловать в SFLphone!"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:256
 msgid "This installation wizard will help you configure an account."
-msgstr "Этот мастер установки поможет вам настроить ваш аккаунт."
+msgstr "Этот мастер установки поможет вам настроить вашу учëтную запись"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "VoIP Protocols"
@@ -801,7 +800,7 @@ msgstr "VoIP-протоколы"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "Select an account type"
-msgstr "Выберите тип аккаунта"
+msgstr "Выберите тип учëтной записи"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:272
 msgid "SIP (Session Initiation Protocol)"
@@ -813,7 +812,7 @@ msgstr "IAX2 (InterAsterix Exchange)"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Account"
-msgstr "Аккаунты"
+msgstr "Учëтная запись"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Please select one of the following options"
@@ -821,15 +820,15 @@ msgstr "Введите пожалуйста следующие данные"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:290
 msgid "Create a free SIP/IAX2 account on sflphone.org"
-msgstr "Создать бесплатный SIP/IAX2-аккаунт на sflphone.org"
+msgstr "Создать бесплатную SIP/IAX2-учëтную запись на sflphone.org"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:292
 msgid "Register an existing SIP or IAX2 account"
-msgstr "Зарегистрировать существующий SIP или IAX2 аккаунт"
+msgstr "Зарегистрировать существующею SIP или IAX2 учëтную запись"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:306
 msgid "SIP account settings"
-msgstr "Настройка SIP-аккаунта"
+msgstr "Настройка учëтной записи SIP"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:306
 #: ../sflphone-client-gnome/src/config/assistant.c:419
@@ -855,7 +854,7 @@ msgstr "_Адрес эл. почты"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "IAX2 account settings"
-msgstr "Настройка IAX2-аккаунта"
+msgstr "Настройка учëтной записи IAX2"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "Network Address Translation (NAT)"
@@ -875,7 +874,7 @@ msgstr "_STUN-сервер"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Account Registration"
-msgstr "Регистрация аккаунта"
+msgstr "Регистрация учëтной записи"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Congratulations!"
@@ -1000,7 +999,7 @@ msgid ""
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
 "also be used if no account can be matched to an incoming or outgoing call."
 msgstr ""
-"Этот профиль используется когда бы хотите достичь удалëнное устройство "
+"Этот профиль используется когда вы хотите достичь удалëнное устройство "
 "просто набрав SIP URI (адрес) типа <b>sip:удалëнное устройство</b>. Эти "
 "настройки так-же будут использованы если не будет подходящего аккаунта для "
 "входящего или выходящего звонка."
@@ -1015,7 +1014,7 @@ msgstr "Включить звонок"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:450
 msgid "System Tray Icon"
-msgstr "System Tray Icon"
+msgstr "Поведение окна SFLPhone"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
 msgid "_Popup main window on incoming call"
diff --git a/sflphone-client-gnome/po/ru/ru.po b/sflphone-client-gnome/po/ru/ru.po
index 18045ccd61..14b3aa5dd8 100644
--- a/sflphone-client-gnome/po/ru/ru.po
+++ b/sflphone-client-gnome/po/ru/ru.po
@@ -8,16 +8,15 @@ msgstr ""
 "Project-Id-Version: SFLphone 0.9.6\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-12-03 10:22-0500\n"
-"PO-Revision-Date: 2009-10-26 20:46+0000\n"
-"Last-Translator: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>\n"
+"PO-Revision-Date: 2009-12-08 20:46+0000\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"
 "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
 "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Launchpad-Export-Date: 2009-12-03 15:32+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
+"X-Generator: \n"
 
 #: ../sflphone-client-gnome/src/accountlist.c:175
 msgid "Registered"
@@ -29,7 +28,7 @@ msgstr "Не зарегистрирован"
 
 #: ../sflphone-client-gnome/src/accountlist.c:181
 msgid "Trying..."
-msgstr "Пытаюсь..."
+msgstr "Подключение..."
 
 #: ../sflphone-client-gnome/src/accountlist.c:184
 #: ../sflphone-client-gnome/src/sflnotify.c:131
@@ -59,15 +58,15 @@ msgstr "Неверный сервер Stun"
 
 #: ../sflphone-client-gnome/src/accountlist.c:202
 msgid "Invalid"
-msgstr "Неверный"
+msgstr "Ошибка"
 
 #: ../sflphone-client-gnome/src/actions.c:98
 msgid "Using account"
-msgstr "Используя учетную запись"
+msgstr "Используется учетная запись"
 
 #: ../sflphone-client-gnome/src/actions.c:104
 msgid "No registered accounts"
-msgstr "У вас нет зарегистрированных аккаунтов"
+msgstr "Нет зарегистрированных учëтных записей"
 
 #: ../sflphone-client-gnome/src/actions.c:285
 msgid ""
@@ -127,11 +126,11 @@ msgstr ""
 
 #: ../sflphone-client-gnome/src/mainwindow.c:73
 msgid "There is one call in progress."
-msgstr "Звонок ещё не окончен."
+msgstr "Один текущий разговор."
 
 #: ../sflphone-client-gnome/src/mainwindow.c:77
 msgid "There are calls in progress."
-msgstr "Несколько звонков ещё не окончены."
+msgstr "Несколько текущих разговоров."
 
 #: ../sflphone-client-gnome/src/mainwindow.c:86
 msgid "Do you still want to quit?"
@@ -144,11 +143,11 @@ msgstr "Ошибка SFLphone."
 #: ../sflphone-client-gnome/src/mainwindow.c:392
 #, c-format
 msgid "ZRTP is not supported by peer %s\n"
-msgstr "не поддерживается устройством %s\n"
+msgstr "ZRTP не поддерживается устройством %s\n"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:393
 msgid "Secure Communication Unavailable"
-msgstr "Зашифрованная связь недоступна."
+msgstr "Зашифрованная связь недоступна"
 
 #: ../sflphone-client-gnome/src/mainwindow.c:394
 #: ../sflphone-client-gnome/src/mainwindow.c:416
@@ -213,19 +212,19 @@ msgstr[2] "%d голосовые письма"
 #: ../sflphone-client-gnome/src/sflnotify.c:111
 #, c-format
 msgid "Calling with %s account <i>%s</i>"
-msgstr "Звонок с аккаунтом %s <i>%s</i>"
+msgstr "Звонок с учëтной записью %s <i>%s</i>"
 
 #: ../sflphone-client-gnome/src/sflnotify.c:115
 msgid "Current account"
-msgstr "Нынешний аккаунт"
+msgstr "Нынешняя учëтная запись"
 
 #: ../sflphone-client-gnome/src/sflnotify.c:130
 msgid "You have no accounts set up"
-msgstr "Вы не настроили ни одного аккаунта"
+msgstr "Вы не настроили ни одной учëтной записи"
 
 #: ../sflphone-client-gnome/src/sflnotify.c:147
 msgid "You have no registered accounts"
-msgstr "У вас нет зарегистрированных аккаунтов"
+msgstr "У вас нет зарегистрированных учëтных записей"
 
 #: ../sflphone-client-gnome/src/sflnotify.c:190
 #, c-format
@@ -271,9 +270,9 @@ msgstr "SFLphone"
 #, c-format
 msgid "%i account configured"
 msgid_plural "%i accounts configured"
-msgstr[0] "%i аккаунт настроен."
-msgstr[1] "%i аккаунтов настроены"
-msgstr[2] "%i аккаунтов настроены"
+msgstr[0] "Настроена одна учëтная запись"
+msgstr[1] "Настроены %i учëтные записи"
+msgstr[2] "Настроены %i учëтные записи"
 
 #: ../sflphone-client-gnome/src/toolbar.c:38
 #: ../sflphone-client-gnome/src/uimanager.c:693
@@ -283,7 +282,7 @@ msgstr "Автоответчик"
 
 #: ../sflphone-client-gnome/src/uimanager.c:117
 msgid "No address book selected"
-msgstr "Адресная книга"
+msgstr "Нет выбранных адресных книг"
 
 #: ../sflphone-client-gnome/src/uimanager.c:137
 #: ../sflphone-client-gnome/src/uimanager.c:756
@@ -292,7 +291,7 @@ msgstr "Адресная книга"
 
 #: ../sflphone-client-gnome/src/uimanager.c:279
 msgid "Voicemail (%i)"
-msgstr "Автоответчик"
+msgstr "Автоответчик (%i)"
 
 #: ../sflphone-client-gnome/src/uimanager.c:342
 msgid "SFLphone is a VoIP client compatible with SIP and IAX2 protocols."
@@ -313,7 +312,7 @@ msgstr "_Новый звонок"
 
 #: ../sflphone-client-gnome/src/uimanager.c:720
 msgid "Place a new call"
-msgstr ""
+msgstr "Позвонить"
 
 #: ../sflphone-client-gnome/src/uimanager.c:721
 #: ../sflphone-client-gnome/src/uimanager.c:979
@@ -322,7 +321,7 @@ msgstr "_Взять трубку"
 
 #: ../sflphone-client-gnome/src/uimanager.c:721
 msgid "Answer the call"
-msgstr ""
+msgstr "Ответить"
 
 #: ../sflphone-client-gnome/src/uimanager.c:722
 #: ../sflphone-client-gnome/src/uimanager.c:991
@@ -332,7 +331,7 @@ msgstr "_Положить трубку"
 
 #: ../sflphone-client-gnome/src/uimanager.c:722
 msgid "Finish the call"
-msgstr ""
+msgstr "Закончить звонок"
 
 #: ../sflphone-client-gnome/src/uimanager.c:723
 msgid "O_n hold"
@@ -340,15 +339,15 @@ msgstr "_Удержать звонок"
 
 #: ../sflphone-client-gnome/src/uimanager.c:723
 msgid "Place the call on hold"
-msgstr ""
+msgstr "Удержать звонок"
 
 #: ../sflphone-client-gnome/src/uimanager.c:724
 msgid "O_ff hold"
-msgstr ""
+msgstr "_Возобновить разговор"
 
 #: ../sflphone-client-gnome/src/uimanager.c:724
 msgid "Place the call off hold"
-msgstr ""
+msgstr "Возобновить разговор"
 
 #: ../sflphone-client-gnome/src/uimanager.c:725
 #: ../sflphone-client-gnome/src/uimanager.c:1015
@@ -357,15 +356,15 @@ msgstr "Записать"
 
 #: ../sflphone-client-gnome/src/uimanager.c:725
 msgid "Record the current conversation"
-msgstr ""
+msgstr "Записать переговор"
 
 #: ../sflphone-client-gnome/src/uimanager.c:726
 msgid "Configuration _Assistant"
-msgstr "Файл конфигурации"
+msgstr "Мастер настройки"
 
 #: ../sflphone-client-gnome/src/uimanager.c:726
 msgid "Run the configuration assistant"
-msgstr "Ошибка конфигурации Stun"
+msgstr "Запустить мастер настройки"
 
 #: ../sflphone-client-gnome/src/uimanager.c:727
 msgid "Call your voicemail"
@@ -373,11 +372,11 @@ msgstr "%d голосовое письмо"
 
 #: ../sflphone-client-gnome/src/uimanager.c:728
 msgid "_Close"
-msgstr ""
+msgstr "_Закрыть"
 
 #: ../sflphone-client-gnome/src/uimanager.c:728
 msgid "Minimize to system tray"
-msgstr ""
+msgstr "Уменьшить в значок"
 
 #: ../sflphone-client-gnome/src/uimanager.c:729
 msgid "_Quit"
@@ -385,7 +384,7 @@ msgstr "_Правка"
 
 #: ../sflphone-client-gnome/src/uimanager.c:729
 msgid "Quit the program"
-msgstr ""
+msgstr "Выйти из программы"
 
 #: ../sflphone-client-gnome/src/uimanager.c:732
 msgid "_Edit"
@@ -393,19 +392,19 @@ msgstr "_Правка"
 
 #: ../sflphone-client-gnome/src/uimanager.c:733
 msgid "_Copy"
-msgstr ""
+msgstr "_Копировать"
 
 #: ../sflphone-client-gnome/src/uimanager.c:733
 msgid "Copy the selection"
-msgstr "Удалить выбранную учетную запись"
+msgstr "Копировать видимое"
 
 #: ../sflphone-client-gnome/src/uimanager.c:734
 msgid "_Paste"
-msgstr ""
+msgstr "_Вставить"
 
 #: ../sflphone-client-gnome/src/uimanager.c:734
 msgid "Paste the clipboard"
-msgstr ""
+msgstr "Вставить из буфера обмена"
 
 #: ../sflphone-client-gnome/src/uimanager.c:735
 msgid "Clear _history"
@@ -417,19 +416,19 @@ msgstr "Очистить историю"
 
 #: ../sflphone-client-gnome/src/uimanager.c:736
 msgid "_Accounts"
-msgstr "_Аккаунты"
+msgstr "_Учëтные записи"
 
 #: ../sflphone-client-gnome/src/uimanager.c:736
 msgid "Edit your accounts"
-msgstr "Нынешний аккаунт"
+msgstr "Изменить ваши учëтные записи"
 
 #: ../sflphone-client-gnome/src/uimanager.c:737
 msgid "_Preferences"
-msgstr "Предпочтения"
+msgstr "_Предпочтения"
 
 #: ../sflphone-client-gnome/src/uimanager.c:737
 msgid "Change your preferences"
-msgstr ""
+msgstr "Изменить ваши предпочтении"
 
 #: ../sflphone-client-gnome/src/uimanager.c:740
 msgid "_View"
@@ -445,7 +444,7 @@ msgstr "Продолжить"
 
 #: ../sflphone-client-gnome/src/uimanager.c:744
 msgid "Open the manual"
-msgstr ""
+msgstr "Открыть справочник "
 
 #: ../sflphone-client-gnome/src/uimanager.c:745
 msgid "About this application"
@@ -457,23 +456,23 @@ msgstr "Переслать звонок на другой номер"
 
 #: ../sflphone-client-gnome/src/uimanager.c:751
 msgid "Transfer the call"
-msgstr "Передать : "
+msgstr "Переслать звонок на другой номер"
 
 #: ../sflphone-client-gnome/src/uimanager.c:752
 msgid "_Show toolbar"
-msgstr ""
+msgstr "Показать панель инструментов"
 
 #: ../sflphone-client-gnome/src/uimanager.c:752
 msgid "Show the toolbar"
-msgstr ""
+msgstr "Показать панель инструментов"
 
 #: ../sflphone-client-gnome/src/uimanager.c:753
 msgid "_Dialpad"
-msgstr "Отключен"
+msgstr "Панель набора номера"
 
 #: ../sflphone-client-gnome/src/uimanager.c:753
 msgid "Show the dialpad"
-msgstr ""
+msgstr "Показать панель набора номера"
 
 #: ../sflphone-client-gnome/src/uimanager.c:754
 msgid "_Volume controls"
@@ -489,7 +488,7 @@ msgstr "Журнал"
 
 #: ../sflphone-client-gnome/src/uimanager.c:755
 msgid "Calls history"
-msgstr "История звонков"
+msgstr "Журнал звонков"
 
 #: ../sflphone-client-gnome/src/uimanager.c:756
 msgid "_Address book"
@@ -552,7 +551,7 @@ msgstr "Па_роль"
 #: ../sflphone-client-gnome/src/config/assistant.c:363
 #: ../sflphone-client-gnome/src/config/assistant.c:473
 msgid "Show password"
-msgstr "Пароль"
+msgstr "Показать пароль"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:274
 #: ../sflphone-client-gnome/src/config/assistant.c:368
@@ -589,7 +588,7 @@ msgstr "Безопасность"
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:687
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:333
 msgid "Use TLS transport (sips)"
-msgstr "Имя для аутентификации"
+msgstr "Использовать TLS-транспорт (sips)"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:693
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:338
@@ -607,7 +606,7 @@ msgstr "Регистрация"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:800
 msgid "Registration expire"
-msgstr "Истек срок регистрации"
+msgstr "Срок истечения регистрации"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:809
 msgid "_Comply with RFC 3263"
@@ -616,7 +615,7 @@ msgstr "_Соотвествует RFC 3263"
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:816
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:234
 msgid "Network Interface"
-msgstr "Сеть недоступна"
+msgstr "Сетевые настройки"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:830
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:249
@@ -631,7 +630,7 @@ msgstr "Локальный порт"
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:893
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:928
 msgid "Published address"
-msgstr "издаваемый адрес"
+msgstr "Сетевые настройки для Интернета"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:899
 msgid "Using STUN"
@@ -651,11 +650,11 @@ msgstr "Настроить видимый адрес и порт :"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:936
 msgid "Published port"
-msgstr "издаваемый порт"
+msgstr "Публичный порт"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1027
 msgid "Account settings"
-msgstr "Настройки аккаунта"
+msgstr "Настройки учëтной записи"
 
 #: ../sflphone-client-gnome/src/config/accountconfigdialog.c:1046
 msgid "Basic"
@@ -683,18 +682,18 @@ msgstr "Учётные записи"
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:484
 msgid "Configured Accounts"
-msgstr "Нынешний аккаунт"
+msgstr "Настроенные учëтные записи"
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:501
 msgid "There is %d active account"
 msgid_plural "There are %d active accounts"
-msgstr[0] " действующий аккаунт"
-msgstr[1] " действующий аккаунт"
-msgstr[2] " действующий аккаунт"
+msgstr[0] "Одна действующая учëтная запись"
+msgstr[1] "%d действующих учëтных записей"
+msgstr[2] "%d действующих учëтных записей"
 
 #: ../sflphone-client-gnome/src/config/accountlistconfigdialog.c:507
 msgid "You have no active account"
-msgstr "У вас нет активного аккаунта"
+msgstr "У вас нет активной учëтной записи"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:306
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:556
@@ -707,7 +706,7 @@ msgstr "_Использовать адресную книгу Evolution"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:319
 msgid "Download limit :"
-msgstr "Ограничение скорости скачивания:"
+msgstr "Показывать не более "
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:327
 msgid "cards"
@@ -719,7 +718,7 @@ msgstr "_Показать фотографию контакта (если име
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:341
 msgid "Fields from Evolution's address books"
-msgstr "Исполоьзовать следующие поля из адресной книги Evolution:"
+msgstr "Исполоьзовать следующие номера из адресной книги Evolution"
 
 #: ../sflphone-client-gnome/src/config/addressbook-config.c:345
 msgid "_Work"
@@ -756,8 +755,8 @@ msgid ""
 "You can at any time check your registration state or modify your accounts "
 "parameters in the Options/Accounts window."
 msgstr ""
-"Вы можете в любое время проверить статус регистрации или изменитьпараметры  "
-"ваших аккаунтов в меню Правка / Аккаунты."
+"Вы можете в любое время проверить статус регистрации или изменить параметры  "
+"ваших учëтных записей в меню Правка / Учëтные записи"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:80
 msgid "Alias"
@@ -773,7 +772,7 @@ msgstr "Пользователь"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:92
 msgid "Security: "
-msgstr "Безопасность "
+msgstr "Безопасность:"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:94
 msgid "SRTP/ZRTP draft-zimmermann"
@@ -793,7 +792,7 @@ msgstr "Добро пожаловать в SFLphone!"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:256
 msgid "This installation wizard will help you configure an account."
-msgstr "Этот мастер установки поможет вам настроить ваш аккаунт."
+msgstr "Этот мастер установки поможет вам настроить вашу учëтную запись"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "VoIP Protocols"
@@ -801,7 +800,7 @@ msgstr "VoIP-протоколы"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:270
 msgid "Select an account type"
-msgstr "Выберите тип аккаунта"
+msgstr "Выберите тип учëтной записи"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:272
 msgid "SIP (Session Initiation Protocol)"
@@ -813,7 +812,7 @@ msgstr "IAX2 (InterAsterix Exchange)"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Account"
-msgstr "Аккаунты"
+msgstr "Учëтная запись"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:288
 msgid "Please select one of the following options"
@@ -821,15 +820,15 @@ msgstr "Введите пожалуйста следующие данные"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:290
 msgid "Create a free SIP/IAX2 account on sflphone.org"
-msgstr "Создать бесплатный SIP/IAX2-аккаунт на sflphone.org"
+msgstr "Создать бесплатную SIP/IAX2-учëтную запись на sflphone.org"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:292
 msgid "Register an existing SIP or IAX2 account"
-msgstr "Зарегистрировать существующий SIP или IAX2 аккаунт"
+msgstr "Зарегистрировать существующею SIP или IAX2 учëтную запись"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:306
 msgid "SIP account settings"
-msgstr "Настройка SIP-аккаунта"
+msgstr "Настройка учëтной записи SIP"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:306
 #: ../sflphone-client-gnome/src/config/assistant.c:419
@@ -855,7 +854,7 @@ msgstr "_Адрес эл. почты"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:419
 msgid "IAX2 account settings"
-msgstr "Настройка IAX2-аккаунта"
+msgstr "Настройка учëтной записи IAX2"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:496
 msgid "Network Address Translation (NAT)"
@@ -875,7 +874,7 @@ msgstr "_STUN-сервер"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Account Registration"
-msgstr "Регистрация аккаунта"
+msgstr "Регистрация учëтной записи"
 
 #: ../sflphone-client-gnome/src/config/assistant.c:526
 msgid "Congratulations!"
@@ -1000,7 +999,7 @@ msgid ""
 "sip URI such as <b>sip:remotepeer</b>. The settings you define here will "
 "also be used if no account can be matched to an incoming or outgoing call."
 msgstr ""
-"Этот профиль используется когда бы хотите достичь удалëнное устройство "
+"Этот профиль используется когда вы хотите достичь удалëнное устройство "
 "просто набрав SIP URI (адрес) типа <b>sip:удалëнное устройство</b>. Эти "
 "настройки так-же будут использованы если не будет подходящего аккаунта для "
 "входящего или выходящего звонка."
@@ -1015,7 +1014,7 @@ msgstr "Включить звонок"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:450
 msgid "System Tray Icon"
-msgstr "System Tray Icon"
+msgstr "Поведение окна SFLPhone"
 
 #: ../sflphone-client-gnome/src/config/preferencesdialog.c:453
 msgid "_Popup main window on incoming call"
-- 
GitLab


From 5c907ad860f9447b4944e327eee8774080868829 Mon Sep 17 00:00:00 2001
From: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
Date: Wed, 9 Dec 2009 16:05:44 -0500
Subject: [PATCH 075/188] [#2402] Add spanish and french translation for user
 manual

---
 sflphone-client-gnome/doc/es/es.po | 1356 ++++++++++++++++++++++++++++
 sflphone-client-gnome/doc/fr/fr.po | 1284 ++++++++++++++++++++++++++
 2 files changed, 2640 insertions(+)
 create mode 100644 sflphone-client-gnome/doc/es/es.po
 create mode 100644 sflphone-client-gnome/doc/fr/fr.po

diff --git a/sflphone-client-gnome/doc/es/es.po b/sflphone-client-gnome/doc/es/es.po
new file mode 100644
index 0000000000..2d243741c0
--- /dev/null
+++ b/sflphone-client-gnome/doc/es/es.po
@@ -0,0 +1,1356 @@
+# Spanish translation for sflphone
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the sflphone package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sflphone\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2009-10-26 15:41-0400\n"
+"PO-Revision-Date: 2009-12-09 15:04+0000\n"
+"Last-Translator: Maxime Chambreuil <maxime.chambreuil@gmail.com>\n"
+"Language-Team: Spanish <es@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2009-12-09 20:52+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:230(None)
+msgid ""
+"@@image: 'figures/account_advanced.png'; md5=8cc040a5f56fe61566ad7b0fa83955d9"
+msgstr ""
+"@@image: 'figures/account_advanced.png'; md5=8cc040a5f56fe61566ad7b0fa83955d9"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:296(None)
+msgid "@@image: 'figures/dial.png'; md5=81ff4280c293e62a49fad3a4b61b9bb5"
+msgstr "@@image: 'figures/dial.png'; md5=81ff4280c293e62a49fad3a4b61b9bb5"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:311(None)
+msgid ""
+"@@image: 'figures/call-second.png'; md5=fa490e3b07eebaa9f4ff719f579d68ef"
+msgstr ""
+"@@image: 'figures/call-second.png'; md5=fa490e3b07eebaa9f4ff719f579d68ef"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:330(None)
+msgid "@@image: 'figures/call.png'; md5=ecd96beec76f808b5c1469ecc1293237"
+msgstr "@@image: 'figures/call.png'; md5=ecd96beec76f808b5c1469ecc1293237"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:348(None)
+msgid "@@image: 'figures/answer.png'; md5=c168995c6b36b5d200c49d1c02c2ea52"
+msgstr "@@image: 'figures/answer.png'; md5=c168995c6b36b5d200c49d1c02c2ea52"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:365(None)
+msgid "@@image: 'figures/hangup.png'; md5=0cac4dfe3a9a4bdf4d12229f77e3723a"
+msgstr "@@image: 'figures/hangup.png'; md5=0cac4dfe3a9a4bdf4d12229f77e3723a"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:385(None)
+msgid "@@image: 'figures/refuse.png'; md5=34b6cbf068e56163058e79de3ca70c59"
+msgstr "@@image: 'figures/refuse.png'; md5=34b6cbf068e56163058e79de3ca70c59"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:403(None)
+msgid "@@image: 'figures/holdon.png'; md5=655078b8b495ada29f65b58501187d16"
+msgstr "@@image: 'figures/holdon.png'; md5=655078b8b495ada29f65b58501187d16"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:415(None)
+msgid "@@image: 'figures/holdoff.png'; md5=e06b8eba03f1545cd18891630b22f281"
+msgstr "@@image: 'figures/holdoff.png'; md5=e06b8eba03f1545cd18891630b22f281"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:430(None)
+msgid "@@image: 'figures/transfer.png'; md5=92f921c7c6ba4ee2487ccf6e02226d9a"
+msgstr ""
+"@@image: 'figures/transfer.png'; md5=92f921c7c6ba4ee2487ccf6e02226d9a"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:444(None)
+msgid ""
+"@@image: 'figures/transfer-go.png'; md5=553b57d5a9fc9f248ba15cecc32d343f"
+msgstr ""
+"@@image: 'figures/transfer-go.png'; md5=553b57d5a9fc9f248ba15cecc32d343f"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:465(None)
+msgid ""
+"@@image: 'figures/rec-settings.png'; md5=27d51e45ff23dde58b0512f90773f6ce"
+msgstr ""
+"@@image: 'figures/rec-settings.png'; md5=27d51e45ff23dde58b0512f90773f6ce"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:478(None)
+msgid "@@image: 'figures/record.png'; md5=7a594660924940e8def9ecfcee0e8cb4"
+msgstr "@@image: 'figures/record.png'; md5=7a594660924940e8def9ecfcee0e8cb4"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:496(None)
+msgid ""
+"@@image: 'figures/voicemail.png'; md5=36dbeb4bcc6a68519d474552a888ce1e"
+msgstr ""
+"@@image: 'figures/voicemail.png'; md5=36dbeb4bcc6a68519d474552a888ce1e"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:684(None)
+msgid ""
+"@@image: 'figures/addressbook-button.png'; "
+"md5=b4a820013ef8b8f48e7de780a66c7800"
+msgstr ""
+"@@image: 'figures/addressbook-button.png'; "
+"md5=b4a820013ef8b8f48e7de780a66c7800"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:719(None)
+msgid ""
+"@@image: 'figures/desktop-notif-settings.png'; "
+"md5=2bca85d6d9871883399481b994bd3384"
+msgstr ""
+"@@image: 'figures/desktop-notif-settings.png'; "
+"md5=2bca85d6d9871883399481b994bd3384"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:738(None)
+msgid ""
+"@@image: 'figures/notif-example.png'; md5=d09008bedcaee435b12cd165d42e39b7"
+msgstr ""
+"@@image: 'figures/notif-example.png'; md5=d09008bedcaee435b12cd165d42e39b7"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:755(None)
+msgid ""
+"@@image: 'figures/voicemail-notif.png'; md5=a33ed4ce4b693d67ee453b4ef1fa6c30"
+msgstr ""
+"@@image: 'figures/voicemail-notif.png'; md5=a33ed4ce4b693d67ee453b4ef1fa6c30"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:774(None)
+msgid ""
+"@@image: 'figures/systemtray-settings.png'; "
+"md5=638612a08eb31eb768c4f08ace9c909a"
+msgstr ""
+"@@image: 'figures/systemtray-settings.png'; "
+"md5=638612a08eb31eb768c4f08ace9c909a"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:814(None)
+msgid ""
+"@@image: 'figures/callshistory-settings.png'; "
+"md5=287d8aed7d7c71752257c64e89a9127d"
+msgstr ""
+"@@image: 'figures/callshistory-settings.png'; "
+"md5=287d8aed7d7c71752257c64e89a9127d"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:838(None)
+msgid ""
+"@@image: 'figures/configfile-settings.png'; "
+"md5=eb4a5545f137b825dcdaf0396a9f1a7d"
+msgstr ""
+"@@image: 'figures/configfile-settings.png'; "
+"md5=eb4a5545f137b825dcdaf0396a9f1a7d"
+
+#: sflphone.xml:12(title)
+msgid "SFLphone Manual v1.0"
+msgstr "Manual v1.0 de SFLphone"
+
+#: sflphone.xml:15(year)
+msgid "2006"
+msgstr "2006"
+
+#: sflphone.xml:16(year)
+msgid "2007"
+msgstr "2007"
+
+#: sflphone.xml:17(year)
+msgid "2008"
+msgstr "2008"
+
+#: sflphone.xml:18(year)
+msgid "2009"
+msgstr "2009"
+
+#: sflphone.xml:19(holder) sflphone.xml:32(publishername) sflphone.xml:80(para)
+msgid "Savoir-faire Linux"
+msgstr "Savoir-faire Linux"
+
+#: sflphone.xml:26(para)
+msgid ""
+"SFLphone is an enterprise-class SIP/IAX2 compatible softphone for GNU/Linux, "
+"published under the GPLv3 license."
+msgstr ""
+"SFLphone es un softphone de clase empresarial compatible con SIP y IAX2 para "
+"GNU/Linux, publicado bajo la licencia GPLv3."
+
+#: sflphone.xml:36(para)
+msgid ""
+"Permission is granted to copy, distribute and/or modify this document under "
+"the terms of the GNU Free Documentation Licence (GFDL), Version 1.1 or any "
+"later version published by the Free Software Foundation with no Invariant "
+"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy "
+"of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or "
+"in the file COPYING-DOCS distributed with this manual."
+msgstr ""
+"Se concede permiso para copiar, distribuir y/o modificar este documento bajo "
+"los términos de la Licencia de Documentación Libre de GNU, Versión 1.1 o "
+"cualquier otra versión posterior publicada por la Free Software Foundation; "
+"sin Secciones Invariantes ni Textos de Cubierta Delantera ni Textos de "
+"Cubierta Trasera. Una copia de la licencia está incluida <ulink "
+"type=\"help\" url=\"ghelp:fdl\">aqui</ulink> o en al archivo COPYING-DOCS "
+"distribuido con ese manual."
+
+#: sflphone.xml:37(para)
+msgid ""
+"This manual is part of a collection of GNOME manuals distributed under the "
+"GFDL. If you want to distribute this manual separately from the collection, "
+"you can do so by adding a copy of the licence to the manual, as described in "
+"section 6 of the licence."
+msgstr ""
+"Ese manual es parte de los manuales de GNOME, distribuidos bajo la GFDL.  Si "
+"quiere distribuir ese manual separadamente de la colecciòn, puede hacerlo "
+"añando una copia de la licencia a ese manual, como describiendo a la secciòn "
+"6 de la licencia."
+
+#: sflphone.xml:42(firstname)
+msgid "Pierre-Luc"
+msgstr "Pierre-Luc"
+
+#: sflphone.xml:43(surname)
+msgid "Bacon"
+msgstr "Bacon"
+
+#: sflphone.xml:45(email)
+msgid "pierre-luc.bacon@savoirfairelinux.com"
+msgstr "pierre-luc.bacon@savoirfairelinux.com"
+
+#: sflphone.xml:50(firstname)
+msgid "Emmanuel"
+msgstr "Emmanuel"
+
+#: sflphone.xml:51(surname)
+msgid "Milou"
+msgstr "Milou"
+
+#: sflphone.xml:53(email)
+msgid "emmanuel.milou@savoirfairelinux.com"
+msgstr "emmanuel.milou@savoirfairelinux.com"
+
+#: sflphone.xml:58(firstname)
+msgid "Jérémy"
+msgstr "Jérémy"
+
+#: sflphone.xml:59(surname)
+msgid "Quentin"
+msgstr "Quentin"
+
+#: sflphone.xml:61(email)
+msgid "jeremy.quentin@savoirfairelinux.com"
+msgstr "jeremy.quentin@savoirfairelinux.com"
+
+#: sflphone.xml:66(firstname)
+msgid "Alexandre"
+msgstr "Alexandre"
+
+#: sflphone.xml:67(surname)
+msgid "Savard"
+msgstr "Savard"
+
+#: sflphone.xml:69(email)
+msgid "alexandre.savard@savoirfairelinux.com"
+msgstr "alexandre.savard@savoirfairelinux.com"
+
+#: sflphone.xml:76(revnumber)
+msgid "SFLphone Manual V1.0"
+msgstr "Manual v. 1.0 de SFLphone"
+
+#: sflphone.xml:77(date)
+msgid "September 2009"
+msgstr "Septiembre del 2009"
+
+#: sflphone.xml:79(para)
+msgid "SFLphone team"
+msgstr "Equipo de SFLphone"
+
+#: sflphone.xml:85(releaseinfo)
+msgid "This manual describes version 0.9.7 of SFLphone."
+msgstr "Este manual describe la versión 0.9.7 de SFLphone."
+
+#: sflphone.xml:90(primary)
+msgid "SFLphone"
+msgstr "SFLphone"
+
+#: sflphone.xml:94(title)
+msgid "Introduction"
+msgstr "Introducción"
+
+#: sflphone.xml:95(para)
+msgid ""
+"<application>SFLphone</application> is a SIP/IAX2 softphone and VoIP client "
+"for GNU/Linux. It aims at being a robust enterprise-class desktop phone and "
+"has been designed with a hundred-calls-a-day receptionist in mind."
+msgstr ""
+"<application>SFLphone</application> es un softphone SIP y IAX2 y cliente "
+"VoIP para GNU/Linux. Està dirigido a ser un telefono robusto de clase "
+"empresarial y fue diseñado por una recepcionista de cien llamadas al dia."
+
+#: sflphone.xml:98(para)
+msgid ""
+"<application>SFLphone</application> is a free software and is distributed "
+"under the GNU General Public License version 3. It is developed by Savoir-"
+"Faire Linux, a Canadian Linux consulting company, in partnership with the "
+"global community."
+msgstr ""
+"<application>SFLphone</application> es un software libre distribuido bajo la "
+"Licencia Pública General de GNU versión 3. Esta desarrollando por Savoir-"
+"Faire Linux, una empresa canadiense de consultorio Linux, en colaboración "
+"con la comunidad global."
+
+#: sflphone.xml:101(para)
+msgid ""
+"Among the many features we developed for you, we could highlight the high "
+"definition sound (wide-band audio codecs - speex, G722, Celt), multiple "
+"conference call, audio recording, voicemail notification, and call history. "
+"More than a simple softphone, <application>SFLphone</application> supports "
+"advanced enterprise-class call features: unlimited number of calls, call "
+"transfer, and on/off hold option."
+msgstr ""
+"Entre las muchas características que desarrollamos para usted, nosotros "
+"podría destacar el alto sonido de la definición (codificadores-decodificador "
+"audios de la banda ancha - speex, G722, Celt), la audioconferencia múltiple, "
+"la grabación audio, la notificación del buzón de voz, y la historia de "
+"llamada. Más que un softphone simple, <application>SFLphone</application> "
+"soporta características de llamadas avanzadas de clase empresarial : número "
+"ilimitado de llamadas, transferencia de llamadas, y opción de llamadas en "
+"espera."
+
+#: sflphone.xml:108(para)
+msgid ""
+"This release also provides advanced security features (secure RTP and TLS)."
+msgstr ""
+"Esta versión también tiene características avanzadas de seguridad (RTP "
+"seguro y TLS)."
+
+#: sflphone.xml:112(para)
+msgid ""
+"Besides the native ALSA interface, <application>SFLphone</application> now "
+"fully supports PulseAudio sound server so you could experience the great "
+"possibilities it offers (sound mixing, per application volume control, ...)."
+msgstr ""
+"Además del interfaz nativo ALSA, <application>SFLphone</application> ahora "
+"soporta completamente el servidor de sonidos PulseAudio así que usted podría "
+"experimentar las grandes posibilidades que ofrece (mezcla de sonidos, "
+"control de volumen por aplicación,…)."
+
+#: sflphone.xml:118(title)
+msgid "Getting started"
+msgstr "Cómo empezar"
+
+#: sflphone.xml:123(guilabel)
+msgid "Create a free SIP/IAX2 account on sflphone.org"
+msgstr "Crear una cuenta SIP/IAS2 gratuita en sflphone.org"
+
+#: sflphone.xml:124(para)
+msgid ""
+"Savoir-faire Linux provides free SIP/IAX2 accounts on an Asterisk server. By "
+"clicking this option, you will be created an account to make test calls. The "
+"echo service is available, you may also call other accounts registered to "
+"the same server."
+msgstr ""
+"Savoir-faire Linux proporciona cuentas libres SIP y IAX2 en un servidor "
+"Asterisk. Chascando esta opción, le crearán una cuenta para hacer llamadas "
+"de prueba. El servicio de echo está disponible, usted puede también llamar "
+"otras cuentas registradas al mismo servidor."
+
+#: sflphone.xml:126(para)
+msgid ""
+"By filling out your email address information, you will receive voicemail "
+"notifications by email. This information is not mandatory to get your free "
+"account."
+msgstr ""
+"Completando su información de correo electronico, usted recibirá "
+"notificaciones del buzón de voz por correo. Esta información no es "
+"obligatoria para conseguir su cuenta libre."
+
+#: sflphone.xml:129(guilabel)
+msgid "Register an existing SIP or IAX2 account"
+msgstr "Registrar una cuenta SIP o IAX2 existente"
+
+#: sflphone.xml:130(para)
+msgid ""
+"Click there if you already have an account and you want to use it with "
+"SFLphone. You will be prompted to select the account type (SIP or IAX2) and "
+"to fill out your account information. <application>SFLphone</application> "
+"will then try to register it so you could start using it."
+msgstr ""
+"Chasque allí si usted tiene ya una cuenta y quiere utilizarla con SFLphone. "
+"Le preguntarán a seleccionar el tipo de la cuenta (SIP o IAX2) y completar "
+"su información de cuenta. <application>SFLphone</application> intentará "
+"registrarla así que usted podría comenzar a usarla."
+
+#: sflphone.xml:119(para)
+msgid ""
+"The first time you start up sflphone, you will be ask to complete a wizard "
+"to set up your(s) account(s). This account configuration manager offers you "
+"two possibilities: <placeholder-1/>"
+msgstr ""
+"La primera vez que usted inicià sflphone, usted será pidiendo terminar a un "
+"mago para configurar su(s) cuenta(s). Este encargado de configuración de "
+"cuenta ofrece dos posibilidades: <placeholder-1/>"
+
+#: sflphone.xml:135(para)
+msgid ""
+"You can always access the account creation manager: "
+"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Account creation "
+"assistant</guimenuitem></menuchoice>."
+msgstr ""
+"Usted puede tener acceso siempre al encargado de creación de cuenta: "
+"<menuchoice><guimenu>Editar</guimenu><guimenuitem>Asistante de creación de "
+"cuenta</guimenuitem></menuchoice>"
+
+#: sflphone.xml:141(title)
+msgid "Managing your accounts"
+msgstr "Administrar sus cuentas"
+
+#: sflphone.xml:142(para)
+msgid ""
+"<application>SFLphone</application> supports both IAX2 and SIP accounts."
+msgstr "<application>SFLphone</application> soporta cuentas IAX2 y SIP."
+
+#: sflphone.xml:148(title)
+msgid "Basic features"
+msgstr "Características básicas"
+
+#: sflphone.xml:150(title)
+msgid "Creating a new account"
+msgstr "Crear una cuenta nueva"
+
+#: sflphone.xml:151(para)
+msgid "To create a new account, perform the following steps:"
+msgstr "Para crear una cuenta nueva, sigue los siguientes pasos:"
+
+#: sflphone.xml:153(para) sflphone.xml:191(para) sflphone.xml:201(para)
+msgid ""
+"Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage "
+"accounts</guimenuitem></menuchoice>."
+msgstr ""
+"Escoje <menuchoice><guimenu>Editar</guimenu><guimenuitem>Administrar "
+"cuentas</guimenuitem></menuchoice>."
+
+#: sflphone.xml:154(para)
+msgid ""
+"Click on the <guilabel>Add</guilabel> button. Fill out the following "
+"information:"
+msgstr ""
+"Chasque <guilabel>Añadir</guilabel>botón. Complete la información siguiente:"
+
+#: sflphone.xml:157(guilabel)
+msgid "Alias"
+msgstr "Alias"
+
+#: sflphone.xml:158(para)
+msgid ""
+"The name to identify your account in the list. It is not used for the "
+"communications"
+msgstr ""
+"El nombre para identificar tu cuenta en la lista. No se usará para las "
+"comunicaciones."
+
+#: sflphone.xml:161(guilabel)
+msgid "Protocol"
+msgstr "Protocolo"
+
+#: sflphone.xml:162(para)
+msgid "Select SIP or IAX2. The most commons are SIP accounts."
+msgstr "Selecciona SIP o IAX2. Las más comunes son las cuentas SIP."
+
+#: sflphone.xml:165(guilabel)
+msgid "Host name"
+msgstr "Nombre del equipo"
+
+#: sflphone.xml:166(para)
+msgid "The name or the IP address of the server you want to register on."
+msgstr "Nombre o dirección IP del servidor en el que quieres registrarte."
+
+#: sflphone.xml:169(guilabel)
+msgid "User name"
+msgstr "Nombre de usuario"
+
+#: sflphone.xml:170(para)
+msgid "The name or the extension for your account."
+msgstr "El nombre o la extensiòn de su cuenta."
+
+#: sflphone.xml:173(guilabel)
+msgid "Password"
+msgstr "Contraseña"
+
+#: sflphone.xml:174(para)
+msgid "The password for your account."
+msgstr "La contraseña para tu cuenta."
+
+#: sflphone.xml:177(guilabel)
+msgid "Voicemail number"
+msgstr "Número de buzón de voz"
+
+#: sflphone.xml:178(para)
+msgid ""
+"The number to dial to reach your voicemail. Example: 888, or *97. It will be "
+"used as a quick dial button on the main interface."
+msgstr ""
+"El número para alcanzar su buzón de voz. Ejemplo: 888, o *97. Será utilizado "
+"como botón para marcar rápido en el interfaz principal."
+
+#: sflphone.xml:182(para)
+msgid "Click the <menuchoice><guimenu>Apply</guimenu></menuchoice> button."
+msgstr ""
+"Da le clic al buttòn <menuchoice><guimenu>Aplicar</guimenu></menuchoice>."
+
+#: sflphone.xml:184(para)
+msgid ""
+"You may now check the state of your account(s). You may have as many setup "
+"accounts as you wish. If it is registered, you may now use it to make calls."
+msgstr ""
+"Usted puede ahora comprobar el estado de sus cuentas. Usted puede tener "
+"tantas cuentas como usted desea. Si se registra, usted puede ahora "
+"utilizarla para hacer llamadas."
+
+#: sflphone.xml:188(title)
+msgid "Editing a configured account"
+msgstr "Editar una cuenta configurada"
+
+#: sflphone.xml:189(para)
+msgid "To edit an existing account, perform the following steps:"
+msgstr "Para editar una cuenta existente, sigue los pasos siguientes:"
+
+#: sflphone.xml:192(para)
+msgid ""
+"Select in the list the account you would like to edit, then click on the "
+"<guilabel>Edit</guilabel> button."
+msgstr ""
+"Seleccione en la lista la cuenta que usted quisiera corregir, después "
+"chasque encendido el botón de <guilabel>Editar</guilabel>."
+
+#: sflphone.xml:193(para)
+msgid ""
+"Make your modifications, then click on the <guilabel>Apply</guilabel> button."
+msgstr ""
+"Haga sus modificaciones, después chasque encendido el botón de "
+"<guilabel>Aplicar</guilabel>."
+
+#: sflphone.xml:198(title)
+msgid "Deleting an account"
+msgstr "Borrar una cuenta"
+
+#: sflphone.xml:199(para)
+msgid "To delete an existing account, perform the following steps:"
+msgstr "Para borrar una cuenta existente, sigue los pasos siguientes:"
+
+#: sflphone.xml:202(para)
+msgid ""
+"Select in the list the account you would like to delete, then click on the "
+"<guibutton>Delete</guibutton> button."
+msgstr ""
+"Seleccione en la lista la cuenta que usted quisiera suprimir, después "
+"chasque encendido el botón de <guibutton>Suprimir</guibutton>."
+
+#: sflphone.xml:207(title)
+msgid "Selecting a default account"
+msgstr "Selección de una cuenta por defecto"
+
+#: sflphone.xml:208(para)
+msgid ""
+"As it is possible to have an unlimited number of registered accounts at the "
+"same time, which account will be used when making a call ? You can not only "
+"set up a default account to be used every time you are making a call, but an "
+"entire priority list. To do that, perform the following steps:"
+msgstr ""
+"¿Pues es posible tener un número ilimitado de cuentas registradas al mismo "
+"tiempo, cual cuenta será utilizada para hacer una llamada? No sólo usted "
+"puede fijar una cuenta por defecto que se utilizarán cada vez que usted está "
+"haciendo una llamada, pero tambien una lista de prioridad. Para hacer eso, "
+"realice los pasos siguientes:"
+
+#: sflphone.xml:210(para)
+msgid ""
+"Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage "
+"accounts</guimenuitem></menuchoice> to access the accounts list."
+msgstr ""
+"Escoje <menuchoice><guimenu>Editar</guimenu><guimenuitem>Administrar "
+"cuentas</guimenuitem></menuchoice> para ver la lista de cuentas."
+
+#: sflphone.xml:212(para)
+msgid ""
+"The first account in the account in list will be used as the default account "
+"to make calls with. If it is not registered, SFLphone will try to use the "
+"second in the list, if still not registered, the third, and so one ..."
+msgstr ""
+"La primera cuenta en la lista será utilizada como la cuenta por defecto para "
+"hacer llamadas. Si no se registra, SFLphone intentará utilizar la segunda en "
+"la lista, si tampoco se registra, la tercera, etc…"
+
+#: sflphone.xml:213(para)
+msgid ""
+"To reorder the accounts as you wish, select an account and click on the "
+"<menuchoice><guimenu>Up</guimenu></menuchoice> or "
+"<menuchoice><guimenu>Down</guimenu></menuchoice> button."
+msgstr ""
+"Para reordenar las cuentas como usted desea, seleccione una cuenta y chasque "
+"encendido el botón de <menuchoice><guimenu>Arribá</guimenu></menuchoice> o "
+"de <menuchoice><guimenu>Abajo</guimenu></menuchoice>."
+
+#: sflphone.xml:216(para)
+msgid ""
+"Note that you also can select an account to make a call with when dialing by "
+"right-clicking on it."
+msgstr ""
+"Observe que usted también puede seleccionar una cuenta para hacer una "
+"llamada, cuando usted esta marcando, haciendo clic con el botón derecho en "
+"la llamada."
+
+#: sflphone.xml:221(title)
+msgid "Advanced features"
+msgstr "Características avanzadas"
+
+#: sflphone.xml:222(para) sflphone.xml:273(para)
+msgid "These features are only available with SIP."
+msgstr "Estas características sólo están disponibles con SIP."
+
+#: sflphone.xml:223(para)
+msgid ""
+"Follow the indications to <link linkend=\"account_edit\">edit an "
+"account</link> and choose the <guimenu>Advanced</guimenu> tab."
+msgstr ""
+"Siga las indicaciones para <link linkend=\"account_edit\">editar una "
+"cuenta</link> y elija la pestaña <guimenu>Avanzadas</guimenu>."
+
+#: sflphone.xml:226(title)
+msgid "Advanced features configuration panel"
+msgstr "Panel de configuración de características avanzadas"
+
+#: sflphone.xml:237(title)
+msgid "Registration"
+msgstr "Registro"
+
+#: sflphone.xml:238(para)
+msgid "You may set the expires header for a contact."
+msgstr "Usted puede fijar el encabezamiento expira para un contacto."
+
+#: sflphone.xml:239(para)
+msgid ""
+"It basically represents the duration your registration will remain active. "
+"If you don't register again within that time, calls will no longer be routed "
+"to you. it should be not used as a keepalive mechanism though. The default "
+"value is 600 seconds (ten minutes)."
+msgstr ""
+"Representa básicamente la duración que su registro seguirá siendo activo. Si "
+"usted no se registra otra vez dentro de ese tiempo, las llamadas no serán "
+"encaminadas a usted. Sin embargo no debe ser utilizado como mecanismo de "
+"keepalive. El valor prefijado es 600 segundos (diez minutos)."
+
+#: sflphone.xml:240(note)
+msgid ""
+"To register to some VoIP services, you will need to set this value at at "
+"least 1600 seconds (Example: French VoIP server freephonie.net)."
+msgstr ""
+"Para registrarse a algunos servicios de VoIP, usted necesitará fijar este "
+"valor a por lo menos 1600 segundos (ejemplo: Servidor de VoIP francés "
+"freephonie.net)."
+
+#: sflphone.xml:244(title) sflphone.xml:873(title)
+msgid "Network"
+msgstr "Red"
+
+#: sflphone.xml:245(para)
+msgid "This section enables you to set advanced network parameters."
+msgstr "Esta sección le permite fijar parámetros de red avanzados."
+
+#: sflphone.xml:248(guilabel)
+msgid "Local address"
+msgstr "Dirección local"
+
+#: sflphone.xml:249(para)
+msgid ""
+"it is initialized to your private/local IP address. Calls will be routed to "
+"this address by default."
+msgstr ""
+"se inicializa a su dirección IP privada/local. Las llamadas serán "
+"encaminadas a esta dirección por defecto."
+
+#: sflphone.xml:252(guilabel)
+msgid "Local port"
+msgstr "Puerto local"
+
+#: sflphone.xml:253(para)
+msgid "It is initialized to the default SIP port, 5060."
+msgstr "Se inicia al puerto SIP por defecto, 5060."
+
+#: sflphone.xml:256(guilabel)
+msgid "Set published address and port"
+msgstr "Fije la dirección publicada y el puerto"
+
+#: sflphone.xml:260(para)
+msgid ""
+"If enabled, the core will try to initialize an UDP transport on the mapped "
+"address/port number that the NAT (Network Address Translator) has allocated "
+"to <application>SFLphone</application>."
+msgstr ""
+"Si está activada, la base intentará inicializar un transporte UDP con la "
+"dirección y puerto que el NAT (traductor de dirección de red) ha asignado a "
+"<application>SFLphone</application>."
+
+#: sflphone.xml:259(listitem)
+msgid "Using STUN <placeholder-1/>"
+msgstr "Usando STUN <placeholder-1/>"
+
+#: sflphone.xml:261(listitem)
+msgid "Same as local parameters"
+msgstr "Igual que parámetros locales"
+
+#: sflphone.xml:263(listitem)
+msgid "Manually"
+msgstr "Manualmente"
+
+#: sflphone.xml:272(title)
+msgid "Security features"
+msgstr "Características de seguridad"
+
+#: sflphone.xml:275(title)
+msgid "Secure RTP"
+msgstr "RTP seguro"
+
+#: sflphone.xml:278(title)
+msgid "TLS"
+msgstr "TLS"
+
+#: sflphone.xml:285(title)
+msgid "Call features"
+msgstr "Características de llamada"
+
+#: sflphone.xml:287(para)
+msgid ""
+"All the following features are available with both SIP and IAX2 accounts."
+msgstr ""
+"Todas las características siguientes están disponibles con las cuentas SIP e "
+"IAX2."
+
+#: sflphone.xml:292(title)
+msgid "Dial button"
+msgstr "Botón de marcado"
+
+#. ==== End of Figure ====
+#: sflphone.xml:303(para)
+msgid ""
+"You may have an unlimited number of calls at the same time, even with "
+"different accounts."
+msgstr ""
+"Usted puede tener un número ilimitado de llamadas al mismo tiempo, incluso "
+"con diferentes cuentas."
+
+#: sflphone.xml:304(para)
+msgid ""
+"To create a new call when you already have a current call, just click on the "
+"<guilabel>Dial</guilabel> button. The current call will automatically be put "
+"on hold."
+msgstr ""
+"Para crear una nueva llamada cuando usted tiene ya una llamada actual, "
+"apenas chasque encendido el botón de <guilabel>Marcar</guilabel>. La llamada "
+"actual será automáticamente en espera."
+
+#: sflphone.xml:307(title)
+msgid "Make an other call"
+msgstr "Realizar otra llamada"
+
+#. ==== End of Figure ====
+#: sflphone.xml:318(para)
+msgid ""
+"Keyboard shortcut to perform this action: <accel>NUMPAD</accel> or almost "
+"any keys."
+msgstr ""
+"Atajo de teclado para realizar esta acción: <accel>NUMPAD</accel> o casi "
+"cualquier clave."
+
+#: sflphone.xml:326(title)
+msgid "Call button"
+msgstr "Botón de llamada"
+
+#. ==== End of Figure ====
+#: sflphone.xml:337(para) sflphone.xml:355(para)
+msgid "Keyboard shortcut to perform this action: <accel>Enter</accel>."
+msgstr "Atajo de teclado para realizar esta acción: <accel>Enter</accel>."
+
+#: sflphone.xml:344(title)
+msgid "Answer button"
+msgstr "Botón de respuesta"
+
+#: sflphone.xml:361(title)
+msgid "Hangup button"
+msgstr "Botón de colgado"
+
+#. ==== End of Figure ====
+#: sflphone.xml:372(para) sflphone.xml:392(para)
+msgid "Keyboard shortcut to perform this action: <accel>ESC</accel>."
+msgstr "Atajo de teclado para realizar esta acción: <accel>ESC</accel>."
+
+#: sflphone.xml:377(para)
+msgid ""
+"When you refuse a call, your caller is automatically redirected to your "
+"voicemail box, if applicable."
+msgstr ""
+"Cuando usted rechaza una llamada, su llamador esta redirigido "
+"automáticamente a su caja de buzón de voz, si fuera aplicable."
+
+#: sflphone.xml:381(title)
+msgid "Refuse button"
+msgstr "Botón de rechazar"
+
+#: sflphone.xml:399(title)
+msgid "Hold on button"
+msgstr "Botón es espera"
+
+#: sflphone.xml:411(title)
+msgid "Hold off button"
+msgstr "Botón seguir"
+
+#: sflphone.xml:426(title)
+msgid "Transfer button"
+msgstr "Botón transferir"
+
+#. ==== End of Figure ====
+#: sflphone.xml:437(para)
+msgid "Then type the number you want to transfer the current call to."
+msgstr "Despuès marca el número para transferir la llamada actual."
+
+#: sflphone.xml:440(title)
+msgid "Validate the transfer"
+msgstr "Valide la transferencia"
+
+#. ==== End of Figure ====
+#: sflphone.xml:451(para)
+msgid ""
+"And press <accel>Enter</accel>. Clicking again on the transfer button "
+"cancels the transfer."
+msgstr ""
+"Y prensa <accel>Enter</accel>. Chascar otra vez en el botón de la "
+"transferencia cancela la transferencia."
+
+#: sflphone.xml:457(para)
+msgid ""
+"Go to "
+"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem><gui"
+"menuitem>Audio</guimenuitem></menuchoice> to configure the recordings "
+"destination folder."
+msgstr ""
+"Vaya a "
+"<menuchoice><guimenu>Editar</guimenu><guimenuitem>Preferencias</guimenuitem><"
+"guimenuitem>Audio</guimenuitem></menuchoice> para configurar la carpeta de "
+"la destinación de las grabaciones."
+
+#: sflphone.xml:461(title)
+msgid "Record settings"
+msgstr "Recordar parámetros"
+
+#: sflphone.xml:474(title)
+msgid "Record button"
+msgstr "Botón de grabación"
+
+#: sflphone.xml:488(caution)
+msgid ""
+"This feature is available only if you fill out the voicemail number "
+"information for your default account."
+msgstr ""
+"Esta característica está disponible solamente si usted completa la "
+"información del número del buzón de voz para su cuenta por defecto."
+
+#: sflphone.xml:492(title)
+msgid "Voicemail button"
+msgstr "Botón del buzón de voz"
+
+#: sflphone.xml:506(para)
+msgid ""
+"A direct IP call is a call established between two peers without any "
+"accounts. When dialing, such a call must prefixed with "
+"<guilabel>sip:</guilabel>."
+msgstr ""
+"Una llamada IP directa es una llamada establecida entre dos pares sin "
+"ningunas cuentas. Al marcar, ese typo de lamada debe ser prefijada con "
+"<guilabel>sip: </guilabel>."
+
+#: sflphone.xml:508(para)
+msgid ""
+"Direct IP calls use SIP protocol to establish communication and RTP to "
+"transport data. It is right now not available with IAX2."
+msgstr ""
+"Llamadas IP directas usan el protocolo SIP para establecer la comunicación y "
+"RTP para transportar datos. No está ahora disponible con IAX2."
+
+#: sflphone.xml:510(para)
+msgid ""
+"Go to "
+"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem><gui"
+"menuitem>Direct IP calls</guimenuitem></menuchoice> to configure the "
+"advanced security features for this kind of calls."
+msgstr ""
+"Vaya a "
+"<menuchoice><guimenu>Editar</guimenu><guimenuitem>Preferencias</guimenuitem><"
+"guimenuitem>Llamadas IP directas</guimenuitem></menuchoice> para configurar "
+"los parámetros de seguridad avanzados para esta clase de llamadas."
+
+#: sflphone.xml:514(para)
+msgid ""
+"SFLphone now supports conference call hosting integrating server like "
+"features in a simple GUI."
+msgstr ""
+"SFLphone ahora apoya el recibimiento de la audioconferencia, integrando "
+"características de servidor en un GUI fácil."
+
+#: sflphone.xml:520(guilabel)
+msgid "Create a conference"
+msgstr "Crear conferencia"
+
+#: sflphone.xml:521(para)
+msgid ""
+"To host a conference, simply drag and drop one call on another. Additional "
+"participants are added the same way, dragging a call on the conference icon."
+msgstr ""
+"Para recibir una conferencia, simplemente arrastre - y - caen una llamada "
+"sobre la otra. Agrega los participantes adicionales de la misma manera, "
+"arrastrando una llamada en el icono de la conferencia."
+
+#: sflphone.xml:528(guilabel)
+msgid "Leave a conference"
+msgstr "Salir de la conferencia"
+
+#: sflphone.xml:529(para)
+msgid ""
+"SFLphone conference model let you leave a conference that you are currently "
+"hosting to answer any other incoming communication or even initiate new "
+"ones. The conference is not interupted Double clicking the conference icon "
+"let you reintroduce the conference."
+msgstr ""
+"El modelo de la conferencia de SFLphone le dejó dejar una conferencia que "
+"usted está recibiendo actualmente para contestar a cualquier otras nuevas "
+"llamadas o iniciar otras. La conferencia no es cortada, doble chasca el "
+"icono de la conferencia le dejó regresar a la conferencia."
+
+#: sflphone.xml:538(guilabel)
+msgid "Multiple conference"
+msgstr "Conferencia múltiple"
+
+#: sflphone.xml:539(para)
+msgid ""
+"SFLphone supports multiple conferences running simultaneously. Two "
+"conferences can be joined the same way they are created, dragging one on the "
+"other."
+msgstr ""
+"SFLphone apoya múltiples conferencias que funcionan simultáneamente. Dos "
+"conferencias se pueden ensamblar de la misma manera que se crean, "
+"arrastrando una en la otra."
+
+#: sflphone.xml:547(guilabel)
+msgid "Hangup/Hold a conference"
+msgstr "Poner una conferencia en espera/Retrasar una conferencia"
+
+#: sflphone.xml:548(para)
+msgid ""
+"Right click the conference icon. Holding the conference put all participants "
+"on hold. Hangup a conference hangup all participants."
+msgstr ""
+"Derecho chasque el icono de la conferencia. Poner la conferencia en espera "
+"puso todos los participantes en espera. Retrasar una conferencia retrasa "
+"todos los participantes."
+
+#: sflphone.xml:565(title)
+msgid "Audio configuration"
+msgstr "Configuración de sonido"
+
+#: sflphone.xml:566(para)
+msgid "ALSA and Pulseaudio native interfaces are available."
+msgstr "Los interfaces nativos ALSA y Pulseaudio están disponibles."
+
+#: sflphone.xml:582(title)
+msgid "Codecs overview"
+msgstr "Descripción de los codificadores-decodificador"
+
+#: sflphone.xml:583(para)
+msgid "SFLphone supports several widely used audio codec:"
+msgstr ""
+"SFLphone apoya varios codificador-decodificador audio ampliamente utilizado:"
+
+#: sflphone.xml:587(guilabel)
+msgid "PCMU/PCMA"
+msgstr "PCMU/PCMA"
+
+#: sflphone.xml:588(para)
+msgid ""
+"ITU-T telefony standard PCM formats, 8kHz, 64 kbit/s, using logarithmic byte "
+"compression algorithm."
+msgstr ""
+"Formatos PCM del estándar de telefonia de ITU-T, 8kHz, 64 kbit/s, usando "
+"algoritmo logarítmico de compresión del octeto."
+
+#: sflphone.xml:594(guilabel)
+msgid "GSM"
+msgstr "GSM"
+
+#: sflphone.xml:595(para)
+msgid ""
+"Global System for Mobile communications (GSM) narrowband 8kHz standard based "
+"on linear prediction encoding."
+msgstr ""
+"Estándar de banda estrecha 8kHz de la comunicaciones Sistema Global para "
+"Movíl (GSM) basado en la codificación de predicción linear."
+
+#: sflphone.xml:601(guilabel)
+msgid "G722"
+msgstr "G722"
+
+#: sflphone.xml:602(para)
+msgid "ITU-T standard wideband 16kHz standard based on linear prediction."
+msgstr ""
+"Estándar de la banda ancha 16kHz de ITU-T basado en la predicción linear."
+
+#: sflphone.xml:607(guilabel)
+msgid "SPEEX"
+msgstr "SPEEX"
+
+#: sflphone.xml:608(para)
+msgid ""
+"High quality voice encoding/decoding available in narrowband 8Khz, wideband "
+"16khz (HD Voice), and ultra-wideband 32 kHz. Integrate additional features "
+"such as Variable Bit Rate (VBR) and noise reduction."
+msgstr ""
+"Codificación/Decodificación de voz de alta calidad disponible en la banda "
+"estrecha 8Khz, la banda ancha 16khz (voz HD), y la ultra-banda ancha 32 kHz. "
+"Integre las características adicionales tal como índice binario variable "
+"(VBR) y reducción del nivel de ruidos."
+
+#: sflphone.xml:617(guilabel)
+msgid "CELT"
+msgstr "CELT"
+
+#: sflphone.xml:628(title)
+msgid "Address books"
+msgstr "Agenda de direcciones"
+
+#: sflphone.xml:630(title)
+msgid "Enable the address book support"
+msgstr "Activar el soporte para agenda de direcciones"
+
+#: sflphone.xml:631(para)
+msgid "To enable the address book, perform the following steps:"
+msgstr "Para activar la agenda de direcciones, sigue los siguientes pasos:"
+
+#: sflphone.xml:634(para)
+msgid ""
+"Choose "
+"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></me"
+"nuchoice>."
+msgstr ""
+"Escoje "
+"<menuchoice><guimenu>Editar</guimenu><guimenuitem>Preferencias</guimenuitem><"
+"/menuchoice>."
+
+#: sflphone.xml:638(para)
+msgid ""
+"Select the <menuchoice><guimenu>Address book</guimenu></menuchoice> tab."
+msgstr ""
+"Seleccione la pestaña <menuchoice><guimenu>Libreta de "
+"contactos</guimenu></menuchoice>."
+
+#: sflphone.xml:642(para)
+msgid "Check the <guilabel>Use Evolution address books</guilabel> box."
+msgstr ""
+"Escoje la checkbox <guilabel>Usar libretas de contactos Evolution</guilabel>."
+
+#: sflphone.xml:645(para)
+msgid ""
+"Every address books you configured in Evolution will be now available in "
+"<application>SFLphone</application>. Please be sure you selected at least "
+"one address book."
+msgstr ""
+"Cada libreta de contactos configurada en Evolución estara disponible en "
+"<application>SFLphone</application>. Por favor de asegurarse de seleccionar "
+"por lo menos una libreta."
+
+#: sflphone.xml:649(title)
+msgid "Available options"
+msgstr "Opciones disponibles"
+
+#: sflphone.xml:650(para)
+msgid ""
+"In "
+"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem><gui"
+"menuitem>Address book</guimenuitem></menuchoice>, you may select one or all "
+"of the following options:"
+msgstr ""
+"En "
+"<menuchoice><guimenu>Editar</guimenu><guimenuitem>Preferencias</guimenuitem><"
+"guimenuitem>Libretas de contactos</guimenuitem></menuchoice>, usted puede "
+"seleccionar una o todas las opciones siguientes:"
+
+#: sflphone.xml:653(guilabel)
+msgid "Display contact photo if available"
+msgstr "Mostrar la foto del contacto si está disponible"
+
+#: sflphone.xml:654(para)
+msgid ""
+"The contact photo will be displayed as a thumbnail beside the phone number."
+msgstr ""
+"La foto del contacto será exhibida como un thumbnail al lado del número de "
+"teléfono."
+
+#: sflphone.xml:659(guilabel)
+msgid "Fields from Evolution's address book"
+msgstr "Campos de la agenda de direcciones de Evolution"
+
+#: sflphone.xml:660(para)
+msgid ""
+"You may use one or all of these following information from your contact."
+msgstr ""
+"Usted puede utilizar una o todas las informaciónes siguientes de su contacto."
+
+#: sflphone.xml:663(listitem)
+msgid "Work phone number"
+msgstr "Número de teléfono profesional"
+
+#: sflphone.xml:664(listitem)
+msgid "Home phone number"
+msgstr "Número de teléfono personal"
+
+#: sflphone.xml:665(listitem)
+msgid "Mobile phone number"
+msgstr "Número de teléfono móvil"
+
+#: sflphone.xml:673(title)
+msgid "Using the address book"
+msgstr "Usando la agenda de direcciones"
+
+#: sflphone.xml:676(para)
+msgid ""
+"On the toolbar, click on the following button to display the address book "
+"window:"
+msgstr ""
+"En la barra de herramientas, chasque encendido el botón siguiente para "
+"exhibir la ventana de libreta de contactos:"
+
+#: sflphone.xml:680(title)
+msgid "Address book toolbar button"
+msgstr "Botón de la barra de herramientas de libretas de contactos"
+
+#: sflphone.xml:693(para)
+msgid "Search for a contact"
+msgstr "Buscar un contacto"
+
+#: sflphone.xml:697(para)
+msgid ""
+"New entries should have appeared in the window. Double click on it to call "
+"the contact. You may also <menuchoice><guimenu>Right "
+"click</guimenu><guimenuitem>Edit before calling</guimenuitem></menuchoice> "
+"to modify the entry before calling."
+msgstr ""
+"Las nuevas entradas deben haber aparecidas en la ventana. Doble chasqúela "
+"encendido para llamar el contacto. Usted puede también "
+"<menuchoice><guimenu>Derecho - chasque</guimenu><guimenuitem>Editar antes de "
+"llamar</guimenuitem></menuchoice> para modificar la entrada antes de llamar."
+
+#: sflphone.xml:704(title)
+msgid "Preferences"
+msgstr "Configuración"
+
+#: sflphone.xml:706(para)
+msgid ""
+"Go to "
+"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></me"
+"nuchoice> to access the configuration panel."
+msgstr ""
+"Vaya a "
+"<menuchoice><guimenu>Editar</guimenu><guimenuitem>Preferencias</guimenuitem><"
+"/menuchoice> para acceder al panel de la configuración."
+
+#: sflphone.xml:707(para)
+msgid "Each section is detailed below."
+msgstr "Cada sección se detalla abajo"
+
+#: sflphone.xml:710(title)
+msgid "General"
+msgstr "Opciones Generales"
+
+#: sflphone.xml:711(para)
+msgid ""
+"This section provides the user general settings regarding the application."
+msgstr "Esta sección provee al usuario las opciones general de la aplicación"
+
+#: sflphone.xml:715(title)
+msgid "Desktop notifications options"
+msgstr "Opciones de notificación de escritorio"
+
+#: sflphone.xml:729(guilabel)
+msgid "Enable notifications"
+msgstr "Activar notificaciones"
+
+#: sflphone.xml:730(para)
+msgid ""
+"Both clients use their desktop environment notification system. If checked, "
+"you will receive desktop notifications for events such as incoming calls and "
+"system messages."
+msgstr ""
+"Ambos clientes usan su sistema de notificación del entorno de escritorio. Si "
+"está activado, recibirás notificaciones de escritorio para eventos como las "
+"llamadas entrantes y mensajes del sistema."
+
+#: sflphone.xml:734(title)
+msgid "Example of an incoming call notification"
+msgstr "Ejemplo de notificación para una llamada entrante"
+
+#: sflphone.xml:746(guilabel)
+msgid "Enable voicemail notifications"
+msgstr "Activar notificaciones de correo de voz"
+
+#: sflphone.xml:747(para)
+msgid ""
+"The voicemail notifications are handled separatly. If checked, you will be "
+"notified with the number of unread voicemails for your accounts."
+msgstr ""
+"Las notificaciones del buzón de voz se manejan separadamente. Si está "
+"comprobado, le notificara el número de buzones de voz sin de sus cuentas."
+
+#: sflphone.xml:751(title)
+msgid "Example of a voicemail notification"
+msgstr "Ejemplo de notificacion de correo de voz"
+
+#: sflphone.xml:770(title)
+msgid "System tray options"
+msgstr "Opciones de la bandeja del sistema"
+
+#: sflphone.xml:784(guilabel)
+msgid "Popup main window on incoming call"
+msgstr "Mostrar ventana principal al recibir una llamada"
+
+#: sflphone.xml:785(para)
+msgid ""
+"If SFLphone is closed on the system tray, pops the main window up on "
+"foreground when receiving an incoming call."
+msgstr ""
+"Si SFLphone esta cerrado en la bandeja del sistema, exhibe la ventana "
+"principal emergente en primero plano para recibir una llamada entrante."
+
+#: sflphone.xml:790(guilabel)
+msgid "Never popup main window"
+msgstr "Nuncà exhibe la ventana principal emergente"
+
+#: sflphone.xml:791(para)
+msgid ""
+"If SFLphone is closed on the system tray, never pops the main window up on "
+"foreground when receiving an incoming call."
+msgstr ""
+"Si SFLphone esta cerrado en la bandeja del sistema, nunca exhibe la ventana "
+"principal emergente en primero plano para recibir una llamada entrante."
+
+#: sflphone.xml:796(guilabel)
+msgid "Hide SFLphone window on startup"
+msgstr "Esconder la pantalla de SFLphone al principio"
+
+#: sflphone.xml:797(para)
+msgid "On startup, SFLphone will go directly on the system tray."
+msgstr "Al principio, SFLphone ira directamente a la bandeja del sistema."
+
+#: sflphone.xml:810(title)
+msgid "Calls history options"
+msgstr "Opciones del historial de llamadas"
+
+#: sflphone.xml:823(guilabel)
+msgid "Keep my history for at least n days"
+msgstr "Mantener mi historial por al menos n días"
+
+#: sflphone.xml:824(para)
+msgid ""
+"If checked, calls will be kept up to N days in the history. You may select a "
+"custom number of days. Do not check it if you don't want to use this feature."
+msgstr ""
+"Si está activado, las llamadas se mantendrán hasta N días en el historial. "
+"Puedes seleccionar un número concreto de días. No lo actives si no quieres "
+"usar esta opción."
+
+#: sflphone.xml:834(title)
+msgid "Configuration file options"
+msgstr "Opciones del archivo de configuración"
+
+#: sflphone.xml:847(guilabel)
+msgid "Store SIP credentials as MD5 hash"
+msgstr "Guarda información SIP como hash MD5"
+
+#: sflphone.xml:848(para)
+msgid ""
+"If checked, your password information will be encrypted in the configuration "
+"file, instead of plain text."
+msgstr ""
+"Si está activo, tu información de contraseñas se almacenarán cifradas en el "
+"archivo de configuración, en vez de en texto plano."
+
+#: sflphone.xml:859(title)
+msgid "Audio"
+msgstr "Sonido"
+
+#: sflphone.xml:863(title)
+msgid "Address book"
+msgstr "Libreta de direcciones"
+
+#: sflphone.xml:865(para)
+msgid ""
+"Refer to the <link linkend=\"addressbook\">Address books</link> section for "
+"more information."
+msgstr ""
+"Refierese a la secciòn <link linkend=\"addressbook\">Libretas de "
+"contactos</link> para màs informaciones."
+
+#: sflphone.xml:869(title)
+msgid "Hooks"
+msgstr "Disparadores"
+
+#: sflphone.xml:877(title)
+msgid "Direct IP calls"
+msgstr "Llamadas IP directas"
+
+#: sflphone.xml:878(para)
+msgid ""
+"Refer to the <link linkend=\"directip\">Direct IP calls</link> section for "
+"more information."
+msgstr ""
+"Refierese a la secciòn <link linkend=\"directip\">Llamadas directas "
+"IP</link> para màs informaciones."
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2
+#: sflphone.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+"  Alfonso E. Romero https://launchpad.net/~alfonsoeromero\n"
+"  DiegoJ https://launchpad.net/~diegojromerolopez\n"
+"  Maxime Chambreuil https://launchpad.net/~max3903"
diff --git a/sflphone-client-gnome/doc/fr/fr.po b/sflphone-client-gnome/doc/fr/fr.po
new file mode 100644
index 0000000000..f9da713d2e
--- /dev/null
+++ b/sflphone-client-gnome/doc/fr/fr.po
@@ -0,0 +1,1284 @@
+# French translation for sflphone
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the sflphone package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sflphone\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2009-10-26 15:41-0400\n"
+"PO-Revision-Date: 2009-12-09 15:38+0000\n"
+"Last-Translator: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>\n"
+"Language-Team: French <fr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2009-12-09 20:52+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:230(None)
+msgid ""
+"@@image: 'figures/account_advanced.png'; md5=8cc040a5f56fe61566ad7b0fa83955d9"
+msgstr "not used"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:296(None)
+msgid "@@image: 'figures/dial.png'; md5=81ff4280c293e62a49fad3a4b61b9bb5"
+msgstr "not used"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:311(None)
+msgid ""
+"@@image: 'figures/call-second.png'; md5=fa490e3b07eebaa9f4ff719f579d68ef"
+msgstr "not used"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:330(None)
+msgid "@@image: 'figures/call.png'; md5=ecd96beec76f808b5c1469ecc1293237"
+msgstr "not used"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:348(None)
+msgid "@@image: 'figures/answer.png'; md5=c168995c6b36b5d200c49d1c02c2ea52"
+msgstr "not used"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:365(None)
+msgid "@@image: 'figures/hangup.png'; md5=0cac4dfe3a9a4bdf4d12229f77e3723a"
+msgstr "not used"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:385(None)
+msgid "@@image: 'figures/refuse.png'; md5=34b6cbf068e56163058e79de3ca70c59"
+msgstr "not used."
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:403(None)
+msgid "@@image: 'figures/holdon.png'; md5=655078b8b495ada29f65b58501187d16"
+msgstr "not used"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:415(None)
+msgid "@@image: 'figures/holdoff.png'; md5=e06b8eba03f1545cd18891630b22f281"
+msgstr "not used"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:430(None)
+msgid "@@image: 'figures/transfer.png'; md5=92f921c7c6ba4ee2487ccf6e02226d9a"
+msgstr "not used"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:444(None)
+msgid ""
+"@@image: 'figures/transfer-go.png'; md5=553b57d5a9fc9f248ba15cecc32d343f"
+msgstr "not used"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:465(None)
+msgid ""
+"@@image: 'figures/rec-settings.png'; md5=27d51e45ff23dde58b0512f90773f6ce"
+msgstr "not used"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:478(None)
+msgid "@@image: 'figures/record.png'; md5=7a594660924940e8def9ecfcee0e8cb4"
+msgstr "not used"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:496(None)
+msgid ""
+"@@image: 'figures/voicemail.png'; md5=36dbeb4bcc6a68519d474552a888ce1e"
+msgstr "not used"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:684(None)
+msgid ""
+"@@image: 'figures/addressbook-button.png'; "
+"md5=b4a820013ef8b8f48e7de780a66c7800"
+msgstr "not used"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:719(None)
+msgid ""
+"@@image: 'figures/desktop-notif-settings.png'; "
+"md5=2bca85d6d9871883399481b994bd3384"
+msgstr "not used"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:738(None)
+msgid ""
+"@@image: 'figures/notif-example.png'; md5=d09008bedcaee435b12cd165d42e39b7"
+msgstr "not used"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:755(None)
+msgid ""
+"@@image: 'figures/voicemail-notif.png'; md5=a33ed4ce4b693d67ee453b4ef1fa6c30"
+msgstr "not used"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:774(None)
+msgid ""
+"@@image: 'figures/systemtray-settings.png'; "
+"md5=638612a08eb31eb768c4f08ace9c909a"
+msgstr "not used"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:814(None)
+msgid ""
+"@@image: 'figures/callshistory-settings.png'; "
+"md5=287d8aed7d7c71752257c64e89a9127d"
+msgstr "not used"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: sflphone.xml:838(None)
+msgid ""
+"@@image: 'figures/configfile-settings.png'; "
+"md5=eb4a5545f137b825dcdaf0396a9f1a7d"
+msgstr "not used"
+
+#: sflphone.xml:12(title)
+msgid "SFLphone Manual v1.0"
+msgstr "Manuel d'utilisateur de SFLphone v1.0"
+
+#: sflphone.xml:15(year)
+msgid "2006"
+msgstr "2006"
+
+#: sflphone.xml:16(year)
+msgid "2007"
+msgstr "2007"
+
+#: sflphone.xml:17(year)
+msgid "2008"
+msgstr "2008"
+
+#: sflphone.xml:18(year)
+msgid "2009"
+msgstr "2009"
+
+#: sflphone.xml:19(holder) sflphone.xml:32(publishername) sflphone.xml:80(para)
+msgid "Savoir-faire Linux"
+msgstr "Savoir-faire Linux"
+
+#: sflphone.xml:26(para)
+msgid ""
+"SFLphone is an enterprise-class SIP/IAX2 compatible softphone for GNU/Linux, "
+"published under the GPLv3 license."
+msgstr ""
+"SFLphone est téléphone logiciel de voix sur IP pour GNU/LINUX destiné aux "
+"entreprises, compatible avec les protocoles SIP et IAX2. Il est distribué "
+"sous licence GPLv3."
+
+#: sflphone.xml:36(para)
+msgid ""
+"Permission is granted to copy, distribute and/or modify this document under "
+"the terms of the GNU Free Documentation Licence (GFDL), Version 1.1 or any "
+"later version published by the Free Software Foundation with no Invariant "
+"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy "
+"of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or "
+"in the file COPYING-DOCS distributed with this manual."
+msgstr ""
+
+#: sflphone.xml:37(para)
+msgid ""
+"This manual is part of a collection of GNOME manuals distributed under the "
+"GFDL. If you want to distribute this manual separately from the collection, "
+"you can do so by adding a copy of the licence to the manual, as described in "
+"section 6 of the licence."
+msgstr ""
+
+#: sflphone.xml:42(firstname)
+msgid "Pierre-Luc"
+msgstr "Pierre-Luc"
+
+#: sflphone.xml:43(surname)
+msgid "Bacon"
+msgstr "Bacon"
+
+#: sflphone.xml:45(email)
+msgid "pierre-luc.bacon@savoirfairelinux.com"
+msgstr "pierre-luc.bacon@savoirfairelinux.com"
+
+#: sflphone.xml:50(firstname)
+msgid "Emmanuel"
+msgstr "Emmanuel"
+
+#: sflphone.xml:51(surname)
+msgid "Milou"
+msgstr "Milou"
+
+#: sflphone.xml:53(email)
+msgid "emmanuel.milou@savoirfairelinux.com"
+msgstr "emmanuel.milou@savoirfairelinux.com"
+
+#: sflphone.xml:58(firstname)
+msgid "Jérémy"
+msgstr "Jérémy"
+
+#: sflphone.xml:59(surname)
+msgid "Quentin"
+msgstr "Quentin"
+
+#: sflphone.xml:61(email)
+msgid "jeremy.quentin@savoirfairelinux.com"
+msgstr "jeremy.quentin@savoirfairelinux.com"
+
+#: sflphone.xml:66(firstname)
+msgid "Alexandre"
+msgstr "Alexandre"
+
+#: sflphone.xml:67(surname)
+msgid "Savard"
+msgstr "Savard"
+
+#: sflphone.xml:69(email)
+msgid "alexandre.savard@savoirfairelinux.com"
+msgstr "alexandre.savard@savoirfairelinux.com"
+
+#: sflphone.xml:76(revnumber)
+msgid "SFLphone Manual V1.0"
+msgstr "Manuel de l'utilisateur pour SFLphone V1.0"
+
+#: sflphone.xml:77(date)
+msgid "September 2009"
+msgstr "Septembre 2009"
+
+#: sflphone.xml:79(para)
+msgid "SFLphone team"
+msgstr "Équipe SFLphone"
+
+#: sflphone.xml:85(releaseinfo)
+msgid "This manual describes version 0.9.7 of SFLphone."
+msgstr "Ce manuel décrit la version 0.9.7 de SFLphone."
+
+#: sflphone.xml:90(primary)
+msgid "SFLphone"
+msgstr "SFLphone"
+
+#: sflphone.xml:94(title)
+msgid "Introduction"
+msgstr "Introduction"
+
+#: sflphone.xml:95(para)
+msgid ""
+"<application>SFLphone</application> is a SIP/IAX2 softphone and VoIP client "
+"for GNU/Linux. It aims at being a robust enterprise-class desktop phone and "
+"has been designed with a hundred-calls-a-day receptionist in mind."
+msgstr ""
+"<application>SFLphone</application> est un softphone compatible avec SIP et "
+"IAX2 et un client de voix sur IP pour GNU/Linux. Notre but est d'offrir un "
+"téléphone logiciel intégré au bureau, robuste, destiné à une utilisation "
+"professionnelle."
+
+#: sflphone.xml:98(para)
+msgid ""
+"<application>SFLphone</application> is a free software and is distributed "
+"under the GNU General Public License version 3. It is developed by Savoir-"
+"Faire Linux, a Canadian Linux consulting company, in partnership with the "
+"global community."
+msgstr ""
+"<application>SFLphone</application> est un logiciel open-source distribué "
+"sous licence GNU GPL version 3. Il est développé par la compagnie de "
+"consultation canadienne  Savoir-faire Linux, en collaboration avec la "
+"communauté."
+
+#: sflphone.xml:101(para)
+msgid ""
+"Among the many features we developed for you, we could highlight the high "
+"definition sound (wide-band audio codecs - speex, G722, Celt), multiple "
+"conference call, audio recording, voicemail notification, and call history. "
+"More than a simple softphone, <application>SFLphone</application> supports "
+"advanced enterprise-class call features: unlimited number of calls, call "
+"transfer, and on/off hold option."
+msgstr ""
+"Parmi les nombreuses fonctionnalités de SFLphone, on peut noter notamment la "
+"qualité de son haute-définition (codecs audio large bande - speex, G722, "
+"Celt), conférences multiples, enregistrement d'appel, notification de "
+"messages vocaux and historique d'appels. Plus qu'un simple téléphone "
+"logiciel, <application>SFLphone</application> supporte des fonctionnalités "
+"avancées destinées aux entreprises: nombre illimité d'appels, transfert, "
+"mise en attente."
+
+#: sflphone.xml:108(para)
+msgid ""
+"This release also provides advanced security features (secure RTP and TLS)."
+msgstr ""
+"Cette nouvelle version implémente des fonctionnalités de sécurité avancées "
+"(RTP sécurisé et TLS)."
+
+#: sflphone.xml:112(para)
+msgid ""
+"Besides the native ALSA interface, <application>SFLphone</application> now "
+"fully supports PulseAudio sound server so you could experience the great "
+"possibilities it offers (sound mixing, per application volume control, ...)."
+msgstr ""
+"En plus de l'interface native ALSA, <application>SFLphone</application> "
+"supporte nativement le serveur de son PulseAudio. Profitez ainsi pleinement "
+"des possibiltés qu'il apporte (mixage logiciel, gestion des volumes par "
+"application, ...)."
+
+#: sflphone.xml:118(title)
+msgid "Getting started"
+msgstr "Premiers pas"
+
+#: sflphone.xml:123(guilabel)
+msgid "Create a free SIP/IAX2 account on sflphone.org"
+msgstr "Créer un compte SIP/IAX2 gratuit sur sflphone.org"
+
+#: sflphone.xml:124(para)
+msgid ""
+"Savoir-faire Linux provides free SIP/IAX2 accounts on an Asterisk server. By "
+"clicking this option, you will be created an account to make test calls. The "
+"echo service is available, you may also call other accounts registered to "
+"the same server."
+msgstr ""
+"Savoir-faire Linux fournit des comptes SIP/IAX2 gratuits sur un serveur "
+"Asterisk central.  En choisissant cette option, nous vous créons un compte "
+"de test. Le service echo vous est offert, ainsi que des appels vers d'autres "
+"comptes enregistrés sur ce serveur."
+
+#: sflphone.xml:126(para)
+msgid ""
+"By filling out your email address information, you will receive voicemail "
+"notifications by email. This information is not mandatory to get your free "
+"account."
+msgstr ""
+"En remplissant votre adresse courriel, vous pourrez recevoir vos messages "
+"vocaux par email. Cette information n'est cependant pas obligatoire."
+
+#: sflphone.xml:129(guilabel)
+msgid "Register an existing SIP or IAX2 account"
+msgstr "Enregistrer un compte SIP ou IAX2 existant"
+
+#: sflphone.xml:130(para)
+msgid ""
+"Click there if you already have an account and you want to use it with "
+"SFLphone. You will be prompted to select the account type (SIP or IAX2) and "
+"to fill out your account information. <application>SFLphone</application> "
+"will then try to register it so you could start using it."
+msgstr ""
+"Choisissez cette option si vous avez déjà un compte et désirez l'utiliser "
+"avec SFLphone. Il faut ensuite choisir le type de compte (SIP ou IAX2) et "
+"remplir les informations nécessaires."
+
+#: sflphone.xml:119(para)
+msgid ""
+"The first time you start up sflphone, you will be ask to complete a wizard "
+"to set up your(s) account(s). This account configuration manager offers you "
+"two possibilities: <placeholder-1/>"
+msgstr ""
+"La première fois que vous lancez SFLphone, un assistant se lance pour vous "
+"aider à configurer vos comptes. Vous avez alors deux "
+"possibilités:<placeholder-1/>"
+
+#: sflphone.xml:135(para)
+msgid ""
+"You can always access the account creation manager: "
+"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Account creation "
+"assistant</guimenuitem></menuchoice>."
+msgstr ""
+"Vous pouvez à tout moment accéder à l'assistant de création de compte: "
+"<menuchoice><guimenu>Éditer</guimenu><guimenuitem>Assistant de création de "
+"compte/guimenuitem></menuchoice>."
+
+#: sflphone.xml:141(title)
+msgid "Managing your accounts"
+msgstr "Gérer vos comptes"
+
+#: sflphone.xml:142(para)
+msgid ""
+"<application>SFLphone</application> supports both IAX2 and SIP accounts."
+msgstr ""
+"<application>SFLphone</application> supporte des comptes IAX2 et SIP."
+
+#: sflphone.xml:148(title)
+msgid "Basic features"
+msgstr "Fonctionnalités de base"
+
+#: sflphone.xml:150(title)
+msgid "Creating a new account"
+msgstr "Créer un nouveau compte"
+
+#: sflphone.xml:151(para)
+msgid "To create a new account, perform the following steps:"
+msgstr "Pour créer un nouveau compte, suivez les étapes suivantes:"
+
+#: sflphone.xml:153(para) sflphone.xml:191(para) sflphone.xml:201(para)
+msgid ""
+"Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage "
+"accounts</guimenuitem></menuchoice>."
+msgstr ""
+"Sélectionnez "
+"<menuchoice><guimenu>Éditer</guimenu><guimenuitem>Comptes</guimenuitem></menu"
+"choice>."
+
+#: sflphone.xml:154(para)
+msgid ""
+"Click on the <guilabel>Add</guilabel> button. Fill out the following "
+"information:"
+msgstr ""
+"Cliquez sur le bouton <guilabel>Ajouter</guilabel>. Remplissez les "
+"informations suivantes:"
+
+#: sflphone.xml:157(guilabel)
+msgid "Alias"
+msgstr "Alias"
+
+#: sflphone.xml:158(para)
+msgid ""
+"The name to identify your account in the list. It is not used for the "
+"communications"
+msgstr ""
+"Le nom pour identifier ce compte dans la liste des comptes. il n'est pas "
+"utilisé pour les communications"
+
+#: sflphone.xml:161(guilabel)
+msgid "Protocol"
+msgstr "Protocole"
+
+#: sflphone.xml:162(para)
+msgid "Select SIP or IAX2. The most commons are SIP accounts."
+msgstr "Choisissez SIP ou IAX2. Les plus courants sont les comptes SIP."
+
+#: sflphone.xml:165(guilabel)
+msgid "Host name"
+msgstr "Nom du hôte"
+
+#: sflphone.xml:166(para)
+msgid "The name or the IP address of the server you want to register on."
+msgstr ""
+"Le nom ou l'adresse IP du serveur auprès duquel vous voulez enregistrer le "
+"compte."
+
+#: sflphone.xml:169(guilabel)
+msgid "User name"
+msgstr "Nom d'utilisateur"
+
+#: sflphone.xml:170(para)
+msgid "The name or the extension for your account."
+msgstr "Le nom  d'utilisateur ou l'extension de votre compte."
+
+#: sflphone.xml:173(guilabel)
+msgid "Password"
+msgstr "Mot de passe"
+
+#: sflphone.xml:174(para)
+msgid "The password for your account."
+msgstr "Le mot de passe associé à votre compte."
+
+#: sflphone.xml:177(guilabel)
+msgid "Voicemail number"
+msgstr "Numéro de boîte vocale"
+
+#: sflphone.xml:178(para)
+msgid ""
+"The number to dial to reach your voicemail. Example: 888, or *97. It will be "
+"used as a quick dial button on the main interface."
+msgstr ""
+"Le numéro à composer pour joindre la boîte vocale associée à ce compte. "
+"Exemple: 888, ou *97. Ce numéro sera utilisé comme raccourci pour appeler "
+"votre bote vocale dans l'interface principale."
+
+#: sflphone.xml:182(para)
+msgid "Click the <menuchoice><guimenu>Apply</guimenu></menuchoice> button."
+msgstr ""
+"Cliquez sur le bouton <menuchoice><guimenu>Appliquer</guimenu></menuchoice>."
+
+#: sflphone.xml:184(para)
+msgid ""
+"You may now check the state of your account(s). You may have as many setup "
+"accounts as you wish. If it is registered, you may now use it to make calls."
+msgstr ""
+"Vous pouvez maintenant vérifier l'état de votre compte. S'il est enregistré, "
+"vous pouvez maintenant passer un nouvel appel. Vous pouvez configurer autant "
+"de comptes que vous le désirez."
+
+#: sflphone.xml:188(title)
+msgid "Editing a configured account"
+msgstr "Éditer un compte existant"
+
+#: sflphone.xml:189(para)
+msgid "To edit an existing account, perform the following steps:"
+msgstr "Pour éditer un compte, suivez les étapes suivantes:"
+
+#: sflphone.xml:192(para)
+msgid ""
+"Select in the list the account you would like to edit, then click on the "
+"<guilabel>Edit</guilabel> button."
+msgstr ""
+"Sélectionnez le compte que vous voulez éditer dans la liste des comptes, "
+"puis cliquez sur le bouton <guilabel>Éditer</guilabel>."
+
+#: sflphone.xml:193(para)
+msgid ""
+"Make your modifications, then click on the <guilabel>Apply</guilabel> button."
+msgstr ""
+"Faîtes vos  modifications, puis cliquez sur le bouton "
+"<guilabel>Appliquer</guilabel> pour sauvegarder vos changements."
+
+#: sflphone.xml:198(title)
+msgid "Deleting an account"
+msgstr "Supprimer un compte"
+
+#: sflphone.xml:199(para)
+msgid "To delete an existing account, perform the following steps:"
+msgstr "Pour supprimer un compte, suivez les étapes suivantes:"
+
+#: sflphone.xml:202(para)
+msgid ""
+"Select in the list the account you would like to delete, then click on the "
+"<guibutton>Delete</guibutton> button."
+msgstr ""
+"Sélectionnez le compte que vous voulez supprimer dans la liste des comptes, "
+"puis cliquez sur le bouton <guilabel>Supprimer</guilabel>."
+
+#: sflphone.xml:207(title)
+msgid "Selecting a default account"
+msgstr "Choisir un compte par défaut"
+
+#: sflphone.xml:208(para)
+msgid ""
+"As it is possible to have an unlimited number of registered accounts at the "
+"same time, which account will be used when making a call ? You can not only "
+"set up a default account to be used every time you are making a call, but an "
+"entire priority list. To do that, perform the following steps:"
+msgstr ""
+"Comme il est possible d'avoir un nombre illimité de comptes enregistrés en "
+"même temps, quel compte va être utilisé pour passer un appel? Il est "
+"possible de configurer une liste de priorité des comptes pour passer des "
+"appels. Pour cela, suivre les étapes suivantes:"
+
+#: sflphone.xml:210(para)
+msgid ""
+"Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage "
+"accounts</guimenuitem></menuchoice> to access the accounts list."
+msgstr ""
+"Sélectionner "
+"<menuchoice><guimenu>Éditer</guimenu><guimenuitem>Comptes</guimenuitem></menu"
+"choice> pour accéder à la liste des comptes."
+
+#: sflphone.xml:212(para)
+msgid ""
+"The first account in the account in list will be used as the default account "
+"to make calls with. If it is not registered, SFLphone will try to use the "
+"second in the list, if still not registered, the third, and so one ..."
+msgstr ""
+"Le premier compte dans la lsite sera utilisé comme le compte par défaut pour "
+"passer des appels. Si ce compte n'est pas enregistré, SFLphone va essayer "
+"d'utiliser le suivant dans la liste, etc ..."
+
+#: sflphone.xml:213(para)
+msgid ""
+"To reorder the accounts as you wish, select an account and click on the "
+"<menuchoice><guimenu>Up</guimenu></menuchoice> or "
+"<menuchoice><guimenu>Down</guimenu></menuchoice> button."
+msgstr ""
+"Pour ordonner les comptes comme vous le désirez, sélectionnez un compte et "
+"cliquez sur le bouton <menuchoice><guimenu>Monter</guimenu></menuchoice> ou "
+"<menuchoice><guimenu>Descendre</guimenu></menuchoice>."
+
+#: sflphone.xml:216(para)
+msgid ""
+"Note that you also can select an account to make a call with when dialing by "
+"right-clicking on it."
+msgstr ""
+"Il est possible de sélectionner rapidement un compte pour un appel en "
+"faisant un clic-droit sur l'appel en train d'être composé."
+
+#: sflphone.xml:221(title)
+msgid "Advanced features"
+msgstr "Fonctionnalités avancées"
+
+#: sflphone.xml:222(para) sflphone.xml:273(para)
+msgid "These features are only available with SIP."
+msgstr "Ces fonctionnalités sont seulement disponibles pour SIP."
+
+#: sflphone.xml:223(para)
+msgid ""
+"Follow the indications to <link linkend=\"account_edit\">edit an "
+"account</link> and choose the <guimenu>Advanced</guimenu> tab."
+msgstr ""
+"Suivre les indications pour <link linkend=\"account_edit\">éditer un "
+"compte</link> et choisir l'onglet <guimenu>Avancé</guimenu>."
+
+#: sflphone.xml:226(title)
+msgid "Advanced features configuration panel"
+msgstr "Panneau de configuration des options avancées"
+
+#: sflphone.xml:237(title)
+msgid "Registration"
+msgstr "Enregistrement"
+
+#: sflphone.xml:238(para)
+msgid "You may set the expires header for a contact."
+msgstr "Vous pouvez configurer l'en-tête expiration pour un contact."
+
+#: sflphone.xml:239(para)
+msgid ""
+"It basically represents the duration your registration will remain active. "
+"If you don't register again within that time, calls will no longer be routed "
+"to you. it should be not used as a keepalive mechanism though. The default "
+"value is 600 seconds (ten minutes)."
+msgstr ""
+
+#: sflphone.xml:240(note)
+msgid ""
+"To register to some VoIP services, you will need to set this value at at "
+"least 1600 seconds (Example: French VoIP server freephonie.net)."
+msgstr ""
+"Pour vous enregistrer auprés de certains services de voix sur IP, vous avez "
+"besoin de configurer cette valeur au minimum à 1 600 secondes (Exemple: "
+"Serveur Free freephonie.net)."
+
+#: sflphone.xml:244(title) sflphone.xml:873(title)
+msgid "Network"
+msgstr "Réseau"
+
+#: sflphone.xml:245(para)
+msgid "This section enables you to set advanced network parameters."
+msgstr ""
+"Cette section vous permet de configurer les paramètres réseau avancés."
+
+#: sflphone.xml:248(guilabel)
+msgid "Local address"
+msgstr "Adresse locale"
+
+#: sflphone.xml:249(para)
+msgid ""
+"it is initialized to your private/local IP address. Calls will be routed to "
+"this address by default."
+msgstr ""
+"Elle est initialisée avec votre adresse IP locale/privée. Les appels seront "
+"routés par défaut par cette adresse."
+
+#: sflphone.xml:252(guilabel)
+msgid "Local port"
+msgstr "Port local"
+
+#: sflphone.xml:253(para)
+msgid "It is initialized to the default SIP port, 5060."
+msgstr "Il est initialisé au port SIP par défaut, 5060"
+
+#: sflphone.xml:256(guilabel)
+msgid "Set published address and port"
+msgstr "Configurer l'adresse et le port de publication"
+
+#: sflphone.xml:260(para)
+msgid ""
+"If enabled, the core will try to initialize an UDP transport on the mapped "
+"address/port number that the NAT (Network Address Translator) has allocated "
+"to <application>SFLphone</application>."
+msgstr ""
+
+#: sflphone.xml:259(listitem)
+msgid "Using STUN <placeholder-1/>"
+msgstr "Utiliser STUN <placeholder-1/>"
+
+#: sflphone.xml:261(listitem)
+msgid "Same as local parameters"
+msgstr "Identique aux paramètres locaux"
+
+#: sflphone.xml:263(listitem)
+msgid "Manually"
+msgstr "Manuelle"
+
+#: sflphone.xml:272(title)
+msgid "Security features"
+msgstr "Fonctionnalités de sécurité"
+
+#: sflphone.xml:275(title)
+msgid "Secure RTP"
+msgstr "RTP sécurisé"
+
+#: sflphone.xml:278(title)
+msgid "TLS"
+msgstr "TLS"
+
+#: sflphone.xml:285(title)
+msgid "Call features"
+msgstr "Fonctionnalités d'appel"
+
+#: sflphone.xml:287(para)
+msgid ""
+"All the following features are available with both SIP and IAX2 accounts."
+msgstr "Les fonctionnalités suivantes sont disponibles pour SIP et IAX2"
+
+#: sflphone.xml:292(title)
+msgid "Dial button"
+msgstr "Bouton composer"
+
+#. ==== End of Figure ====
+#: sflphone.xml:303(para)
+msgid ""
+"You may have an unlimited number of calls at the same time, even with "
+"different accounts."
+msgstr ""
+"Vous pouvez avoir un nombre illimité d'appels en même temps, même avec des "
+"comptes différents."
+
+#: sflphone.xml:304(para)
+msgid ""
+"To create a new call when you already have a current call, just click on the "
+"<guilabel>Dial</guilabel> button. The current call will automatically be put "
+"on hold."
+msgstr ""
+"Pour créer un appel alors que vous avez déjà un appel courant, cliquez sur "
+"le bouton <guilabel>Composer</guilabel>. L'appel courant sera alors "
+"automatiquement mis en attente."
+
+#: sflphone.xml:307(title)
+msgid "Make an other call"
+msgstr "Faire un auitre appel"
+
+#. ==== End of Figure ====
+#: sflphone.xml:318(para)
+msgid ""
+"Keyboard shortcut to perform this action: <accel>NUMPAD</accel> or almost "
+"any keys."
+msgstr ""
+"Raccourci clavier pour faire cette action: <accel>NUMPAD</accel> ou à peu "
+"près n'importe quelle touche."
+
+#: sflphone.xml:326(title)
+msgid "Call button"
+msgstr "Bouton appeler"
+
+#. ==== End of Figure ====
+#: sflphone.xml:337(para) sflphone.xml:355(para)
+msgid "Keyboard shortcut to perform this action: <accel>Enter</accel>."
+msgstr "Raccourci clavier pour faire cette action: <accel>Entrée</accel>."
+
+#: sflphone.xml:344(title)
+msgid "Answer button"
+msgstr "Bouton décrocher"
+
+#: sflphone.xml:361(title)
+msgid "Hangup button"
+msgstr "Bouton raccrocher"
+
+#. ==== End of Figure ====
+#: sflphone.xml:372(para) sflphone.xml:392(para)
+msgid "Keyboard shortcut to perform this action: <accel>ESC</accel>."
+msgstr "Raccourci clavier pour faire cette action: <accel>Echap</accel>."
+
+#: sflphone.xml:377(para)
+msgid ""
+"When you refuse a call, your caller is automatically redirected to your "
+"voicemail box, if applicable."
+msgstr ""
+"Quand un appel est refusé, votre correspondant est automatiquement redirigé "
+"vers votre boîte vocale, s'il y en a une de configurée."
+
+#: sflphone.xml:381(title)
+msgid "Refuse button"
+msgstr "Bouton refuser"
+
+#: sflphone.xml:399(title)
+msgid "Hold on button"
+msgstr "Bouton mettre en attente"
+
+#: sflphone.xml:411(title)
+msgid "Hold off button"
+msgstr "Bouton reprendre"
+
+#: sflphone.xml:426(title)
+msgid "Transfer button"
+msgstr "Bouton transférer"
+
+#. ==== End of Figure ====
+#: sflphone.xml:437(para)
+msgid "Then type the number you want to transfer the current call to."
+msgstr "Puis entrez le numéro vers lequel vous voulez transférer l'appel."
+
+#: sflphone.xml:440(title)
+msgid "Validate the transfer"
+msgstr "Valider le transfert"
+
+#. ==== End of Figure ====
+#: sflphone.xml:451(para)
+msgid ""
+"And press <accel>Enter</accel>. Clicking again on the transfer button "
+"cancels the transfer."
+msgstr ""
+"Et appuyez sur <accel>Entrée</accel>. Cliquer à nouveau sur le bouton "
+"transfert annule le transfert en cours."
+
+#: sflphone.xml:457(para)
+msgid ""
+"Go to "
+"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem><gui"
+"menuitem>Audio</guimenuitem></menuchoice> to configure the recordings "
+"destination folder."
+msgstr ""
+"Aller à "
+"<menuchoice><guimenu>Éditer</guimenu><guimenuitem>Préférences</guimenuitem><g"
+"uimenuitem>Audio</guimenuitem></menuchoice> pour configurer le dossier de "
+"destination des enregistrements."
+
+#: sflphone.xml:461(title)
+msgid "Record settings"
+msgstr "Paramètres d'enregistrement"
+
+#: sflphone.xml:474(title)
+msgid "Record button"
+msgstr "Bouton enregistrer"
+
+#: sflphone.xml:488(caution)
+msgid ""
+"This feature is available only if you fill out the voicemail number "
+"information for your default account."
+msgstr ""
+"Cette fonctionnalité n'est disponible que si vous avez spécifié le numéro de "
+"votre boîte vocale pour le compte courant."
+
+#: sflphone.xml:492(title)
+msgid "Voicemail button"
+msgstr "Bouton Boite vocale"
+
+#: sflphone.xml:506(para)
+msgid ""
+"A direct IP call is a call established between two peers without any "
+"accounts. When dialing, such a call must prefixed with "
+"<guilabel>sip:</guilabel>."
+msgstr ""
+"Un appel direct IP est un appel sans utiliser de registrar entre deux "
+"personnes.  Vous devez ajouter <guilabel>sip:</guilabel> devant le numéro à "
+"composer pour faire un appel direct."
+
+#: sflphone.xml:508(para)
+msgid ""
+"Direct IP calls use SIP protocol to establish communication and RTP to "
+"transport data. It is right now not available with IAX2."
+msgstr ""
+"Les appels directs SIP utilisent le protocole SIP pour établir la "
+"communication et RTP pour envoyer les données de voix. Cette fonctionnalité "
+"n'est pour l'instant pas disponible avec IAx2."
+
+#: sflphone.xml:510(para)
+msgid ""
+"Go to "
+"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem><gui"
+"menuitem>Direct IP calls</guimenuitem></menuchoice> to configure the "
+"advanced security features for this kind of calls."
+msgstr ""
+"Aller à "
+"<menuchoice><guimenu>Éditer</guimenu><guimenuitem>Préférences</guimenuitem><g"
+"uimenuitem>Appel direct SIP</guimenuitem></menuchoice> pour configurer le "
+"comportement de ce type d'appel."
+
+#: sflphone.xml:514(para)
+msgid ""
+"SFLphone now supports conference call hosting integrating server like "
+"features in a simple GUI."
+msgstr ""
+
+#: sflphone.xml:520(guilabel)
+msgid "Create a conference"
+msgstr "Créer une conférence"
+
+#: sflphone.xml:521(para)
+msgid ""
+"To host a conference, simply drag and drop one call on another. Additional "
+"participants are added the same way, dragging a call on the conference icon."
+msgstr ""
+
+#: sflphone.xml:528(guilabel)
+msgid "Leave a conference"
+msgstr "Quitter une conférence"
+
+#: sflphone.xml:529(para)
+msgid ""
+"SFLphone conference model let you leave a conference that you are currently "
+"hosting to answer any other incoming communication or even initiate new "
+"ones. The conference is not interupted Double clicking the conference icon "
+"let you reintroduce the conference."
+msgstr ""
+
+#: sflphone.xml:538(guilabel)
+msgid "Multiple conference"
+msgstr "Conférence multiple"
+
+#: sflphone.xml:539(para)
+msgid ""
+"SFLphone supports multiple conferences running simultaneously. Two "
+"conferences can be joined the same way they are created, dragging one on the "
+"other."
+msgstr ""
+
+#: sflphone.xml:547(guilabel)
+msgid "Hangup/Hold a conference"
+msgstr "Raccrocher/Mettre en attente une conférence"
+
+#: sflphone.xml:548(para)
+msgid ""
+"Right click the conference icon. Holding the conference put all participants "
+"on hold. Hangup a conference hangup all participants."
+msgstr ""
+
+#: sflphone.xml:565(title)
+msgid "Audio configuration"
+msgstr "Paramètres audio"
+
+#: sflphone.xml:566(para)
+msgid "ALSA and Pulseaudio native interfaces are available."
+msgstr "Les interfaces natives ALSA et Pulseaudio sont disponibles"
+
+#: sflphone.xml:582(title)
+msgid "Codecs overview"
+msgstr "Présentation des codecs"
+
+#: sflphone.xml:583(para)
+msgid "SFLphone supports several widely used audio codec:"
+msgstr "SFlphone supporte de nombreux codecs très populaires:"
+
+#: sflphone.xml:587(guilabel)
+msgid "PCMU/PCMA"
+msgstr "PCMU/PCMA"
+
+#: sflphone.xml:588(para)
+msgid ""
+"ITU-T telefony standard PCM formats, 8kHz, 64 kbit/s, using logarithmic byte "
+"compression algorithm."
+msgstr ""
+
+#: sflphone.xml:594(guilabel)
+msgid "GSM"
+msgstr "GSM"
+
+#: sflphone.xml:595(para)
+msgid ""
+"Global System for Mobile communications (GSM) narrowband 8kHz standard based "
+"on linear prediction encoding."
+msgstr ""
+
+#: sflphone.xml:601(guilabel)
+msgid "G722"
+msgstr "G722"
+
+#: sflphone.xml:602(para)
+msgid "ITU-T standard wideband 16kHz standard based on linear prediction."
+msgstr ""
+
+#: sflphone.xml:607(guilabel)
+msgid "SPEEX"
+msgstr "SPEEX"
+
+#: sflphone.xml:608(para)
+msgid ""
+"High quality voice encoding/decoding available in narrowband 8Khz, wideband "
+"16khz (HD Voice), and ultra-wideband 32 kHz. Integrate additional features "
+"such as Variable Bit Rate (VBR) and noise reduction."
+msgstr ""
+
+#: sflphone.xml:617(guilabel)
+msgid "CELT"
+msgstr "CELT"
+
+#: sflphone.xml:628(title)
+msgid "Address books"
+msgstr "Carnets d'adresse"
+
+#: sflphone.xml:630(title)
+msgid "Enable the address book support"
+msgstr "Activer le support du carnet d'adresse"
+
+#: sflphone.xml:631(para)
+msgid "To enable the address book, perform the following steps:"
+msgstr ""
+"pour activer le support du carnet d'adresse, voici les étapes à suivre:"
+
+#: sflphone.xml:634(para)
+msgid ""
+"Choose "
+"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></me"
+"nuchoice>."
+msgstr ""
+"Sélectionnez "
+"<menuchoice><guimenu>Éditer</guimenu><guimenuitem>Préférences</guimenuitem></"
+"menuchoice>."
+
+#: sflphone.xml:638(para)
+msgid ""
+"Select the <menuchoice><guimenu>Address book</guimenu></menuchoice> tab."
+msgstr ""
+"Selectionner l'onglet<menuchoice><guimenu>Carnet "
+"d'adresse</guimenu></menuchoice>."
+
+#: sflphone.xml:642(para)
+msgid "Check the <guilabel>Use Evolution address books</guilabel> box."
+msgstr ""
+"Cochez la case <guilabel>Utiliser le carnet d'adresse d'Evolution</guilabel>"
+
+#: sflphone.xml:645(para)
+msgid ""
+"Every address books you configured in Evolution will be now available in "
+"<application>SFLphone</application>. Please be sure you selected at least "
+"one address book."
+msgstr ""
+"Tous les carnets d'adresse configurés dans Evolution sont accessibles dans "
+"<application>SFLphone</application>. Attention à bien vérifier que au moins "
+"un carnet d'adresse est sélectionné."
+
+#: sflphone.xml:649(title)
+msgid "Available options"
+msgstr "Options disponibles"
+
+#: sflphone.xml:650(para)
+msgid ""
+"In "
+"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem><gui"
+"menuitem>Address book</guimenuitem></menuchoice>, you may select one or all "
+"of the following options:"
+msgstr ""
+"Dans "
+"<menuchoice><guimenu>Éditer</guimenu><guimenuitem>Préférences</guimenuitem><g"
+"uimenuitem>Carnet d'adresse</guimenuitem></menuchoice>, vous pouvez une ou "
+"plusieurs des options suivantes:"
+
+#: sflphone.xml:653(guilabel)
+msgid "Display contact photo if available"
+msgstr "Afficher la photo du contact si elle est disponible"
+
+#: sflphone.xml:654(para)
+msgid ""
+"The contact photo will be displayed as a thumbnail beside the phone number."
+msgstr "La photo sera affichée à côté du numéro de téléphone."
+
+#: sflphone.xml:659(guilabel)
+msgid "Fields from Evolution's address book"
+msgstr "Champs du carnet d'adresse Evolution"
+
+#: sflphone.xml:660(para)
+msgid ""
+"You may use one or all of these following information from your contact."
+msgstr ""
+"Vous pouvez recevoir une ou plusieurs des informations suivantes pour vos "
+"contacts."
+
+#: sflphone.xml:663(listitem)
+msgid "Work phone number"
+msgstr "Tel Bureau"
+
+#: sflphone.xml:664(listitem)
+msgid "Home phone number"
+msgstr "Tel Domicile"
+
+#: sflphone.xml:665(listitem)
+msgid "Mobile phone number"
+msgstr "Tel Portable"
+
+#: sflphone.xml:673(title)
+msgid "Using the address book"
+msgstr "Utiliser le carnet d'adresse"
+
+#: sflphone.xml:676(para)
+msgid ""
+"On the toolbar, click on the following button to display the address book "
+"window:"
+msgstr ""
+"Dans la barre d'outil, cliquez sur le bouton suivant pour afficher le carnet "
+"d'adresse:"
+
+#: sflphone.xml:680(title)
+msgid "Address book toolbar button"
+msgstr "Carnet d'adresse dans la barre d'outil"
+
+#: sflphone.xml:693(para)
+msgid "Search for a contact"
+msgstr "Chercher un contact"
+
+#: sflphone.xml:697(para)
+msgid ""
+"New entries should have appeared in the window. Double click on it to call "
+"the contact. You may also <menuchoice><guimenu>Right "
+"click</guimenu><guimenuitem>Edit before calling</guimenuitem></menuchoice> "
+"to modify the entry before calling."
+msgstr ""
+
+#: sflphone.xml:704(title)
+msgid "Preferences"
+msgstr "Préférences"
+
+#: sflphone.xml:706(para)
+msgid ""
+"Go to "
+"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></me"
+"nuchoice> to access the configuration panel."
+msgstr ""
+"Aller dans "
+"<menuchoice><guimenu>Éditer</guimenu><guimenuitem>Préférences</guimenuitem></"
+"menuchoice> pour accéder au panneau de configuration."
+
+#: sflphone.xml:707(para)
+msgid "Each section is detailed below."
+msgstr "Chaque section est détaillée ci-dessous."
+
+#: sflphone.xml:710(title)
+msgid "General"
+msgstr "Général"
+
+#: sflphone.xml:711(para)
+msgid ""
+"This section provides the user general settings regarding the application."
+msgstr ""
+"Cette partie permet à l'utilisateur de configurer des paramètres globaux de "
+"l'application."
+
+#: sflphone.xml:715(title)
+msgid "Desktop notifications options"
+msgstr "Notifications de bureau"
+
+#: sflphone.xml:729(guilabel)
+msgid "Enable notifications"
+msgstr "Activer les notifications"
+
+#: sflphone.xml:730(para)
+msgid ""
+"Both clients use their desktop environment notification system. If checked, "
+"you will receive desktop notifications for events such as incoming calls and "
+"system messages."
+msgstr ""
+
+#: sflphone.xml:734(title)
+msgid "Example of an incoming call notification"
+msgstr "Exemple d'une notification d'appel entrant"
+
+#: sflphone.xml:746(guilabel)
+msgid "Enable voicemail notifications"
+msgstr "Activer les notifications de messages vocaux"
+
+#: sflphone.xml:747(para)
+msgid ""
+"The voicemail notifications are handled separatly. If checked, you will be "
+"notified with the number of unread voicemails for your accounts."
+msgstr ""
+
+#: sflphone.xml:751(title)
+msgid "Example of a voicemail notification"
+msgstr "Exempel d'une notification de message vocal"
+
+#: sflphone.xml:770(title)
+msgid "System tray options"
+msgstr "Options de la barre des tâches"
+
+#: sflphone.xml:784(guilabel)
+msgid "Popup main window on incoming call"
+msgstr "Popup la fenêtre principale lors de l'arrivée d'un appel"
+
+#: sflphone.xml:785(para)
+msgid ""
+"If SFLphone is closed on the system tray, pops the main window up on "
+"foreground when receiving an incoming call."
+msgstr ""
+"Si SFLphone est réduit dans la barre des tâches, faire apparaître la fenêtre "
+"principale sur les appels entrants."
+
+#: sflphone.xml:790(guilabel)
+msgid "Never popup main window"
+msgstr "Ne jamais faire apparaître la fenêtre principale"
+
+#: sflphone.xml:791(para)
+msgid ""
+"If SFLphone is closed on the system tray, never pops the main window up on "
+"foreground when receiving an incoming call."
+msgstr ""
+"Si SFLphone est réduit dans la barre des tâches, ne jamais ouvrir la fenêtre "
+"au premier plan sur les appels entrants."
+
+#: sflphone.xml:796(guilabel)
+msgid "Hide SFLphone window on startup"
+msgstr "Cacher SFLphone au démarrage"
+
+#: sflphone.xml:797(para)
+msgid "On startup, SFLphone will go directly on the system tray."
+msgstr "Au démarrage, SFLphone se met directement dans la barre des tâches."
+
+#: sflphone.xml:810(title)
+msgid "Calls history options"
+msgstr "Historique des appels"
+
+#: sflphone.xml:823(guilabel)
+msgid "Keep my history for at least n days"
+msgstr "Garder mon historique pour au moins n jours"
+
+#: sflphone.xml:824(para)
+msgid ""
+"If checked, calls will be kept up to N days in the history. You may select a "
+"custom number of days. Do not check it if you don't want to use this feature."
+msgstr ""
+
+#: sflphone.xml:834(title)
+msgid "Configuration file options"
+msgstr "Fichier de configuration"
+
+#: sflphone.xml:847(guilabel)
+msgid "Store SIP credentials as MD5 hash"
+msgstr ""
+"Stocker les informations d'authentification sour forme encryptée (MD5)"
+
+#: sflphone.xml:848(para)
+msgid ""
+"If checked, your password information will be encrypted in the configuration "
+"file, instead of plain text."
+msgstr ""
+
+#: sflphone.xml:859(title)
+msgid "Audio"
+msgstr "Audio"
+
+#: sflphone.xml:863(title)
+msgid "Address book"
+msgstr "Carnet d'adresse"
+
+#: sflphone.xml:865(para)
+msgid ""
+"Refer to the <link linkend=\"addressbook\">Address books</link> section for "
+"more information."
+msgstr ""
+"Se référer à la section <link linkend=\"addressbook\">Carnet "
+"d'adresse</link> pour plus d'informations."
+
+#: sflphone.xml:869(title)
+msgid "Hooks"
+msgstr "Ancrage"
+
+#: sflphone.xml:877(title)
+msgid "Direct IP calls"
+msgstr "Appels IP"
+
+#: sflphone.xml:878(para)
+msgid ""
+"Refer to the <link linkend=\"directip\">Direct IP calls</link> section for "
+"more information."
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2
+#: sflphone.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+"  Emmanuel Milou https://launchpad.net/~manumilou"
-- 
GitLab


From ce33196aceb5dedaa762d486d97860b5bc317780 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 10 Dec 2009 12:12:56 -0500
Subject: [PATCH 076/188] [#2567] Fix iax conference call transfer

---
 sflphone-common/src/managerimpl.cpp | 44 ++++++++++++++++-------------
 1 file changed, 25 insertions(+), 19 deletions(-)

diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index 2a3d6d1f9a..a1380e0fbc 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -697,12 +697,31 @@ ManagerImpl::transferCall (const CallID& call_id, const std::string& to)
 
     CallID current_call_id = getCurrentCallId();
 
-    /* Direct IP to IP call */
+    if (participToConference (call_id)) {
+
+        _debug("Particip to a conference\n");
+
+        Conference *conf = getConferenceFromCallID (call_id);
+
+        if (conf != NULL) {
+            // remove this participant
+            removeParticipant (call_id);
+
+            processRemainingParticipant (current_call_id, conf);
+        }
+    } else {
+
+        _debug("Do not Particip to a conference\n");
+
+        // we are not participating to a conference, current call switched to ""
+        if (!isConference (current_call_id))
+            switchCall ("");
+    }
 
+    /* Direct IP to IP call */
     if (getConfigFromCall (call_id) == Call::IPtoIP) {
         returnValue = SIPVoIPLink::instance (AccountNULL)-> transfer (call_id, to);
     }
-
     /* Classic call, attached to an account */
     else {
         accountid = getAccountFromCall (call_id);
@@ -719,22 +738,6 @@ ManagerImpl::transferCall (const CallID& call_id, const std::string& to)
 
     removeWaitingCall (call_id);
 
-    if (participToConference (call_id)) {
-
-        Conference *conf = getConferenceFromCallID (call_id);
-
-        if (conf != NULL) {
-            // remove this participant
-            removeParticipant (call_id);
-
-            processRemainingParticipant (current_call_id, conf);
-        }
-    } else {
-        // we are not participating to a conference, current call switched to ""
-        if (!isConference (current_call_id))
-            switchCall ("");
-    }
-
     if (_dbus) _dbus->getCallManager()->callStateChanged (call_id, "HUNGUP");
 
     return returnValue;
@@ -1009,12 +1012,15 @@ ManagerImpl::participToConference (const CallID& call_id)
     accountId = getAccountFromCall (call_id);
     call = getAccountLink (accountId)->getCall (call_id);
 
-    if (call == NULL)
+    if (call == NULL) {
         return false;
 
+    }
+
     if (call->getConfId() == "") {
         return false;
     } else {
+        
         return true;
     }
 }
-- 
GitLab


From cf648c48d72e703b13ff5f1b6c9f12eaf9c3ecfb Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 10 Dec 2009 12:22:28 -0500
Subject: [PATCH 077/188] [#2568] Frobid drag n drop actions implying a call in
 state DIALING

---
 sflphone-client-gnome/src/contacts/calltree.c | 55 ++++++++++++++++++-
 1 file changed, 54 insertions(+), 1 deletion(-)

diff --git a/sflphone-client-gnome/src/contacts/calltree.c b/sflphone-client-gnome/src/contacts/calltree.c
index 8bb20d52a5..38fcaa6a76 100644
--- a/sflphone-client-gnome/src/contacts/calltree.c
+++ b/sflphone-client-gnome/src/contacts/calltree.c
@@ -1464,13 +1464,66 @@ static void drag_end_cb(GtkWidget * widget, GdkDragContext * context, gpointer d
 	GtkTreeIter iter;
 	GtkTreeIter iter_parent;
 	GtkTreeIter iter_children;
-	GtkTreeIter parent_conference;
+	GtkTreeIter parent_conference; // conference for which this call is attached
 
 	GValue val;
 
+	callable_obj_t* call;
 	conference_obj_t* conf;
 
 
+	// Make sure that drag n drop does not imply a dialing call
+	if(selected_type == A_CALL && selected_call->_state == CALL_STATE_DIALING) {
+ 
+	    DEBUG("Dragged a call on a dialing call");
+
+	    calltree_remove_call(current_calls, selected_call, NULL);
+	    calltree_add_call(current_calls, selected_call, NULL);
+	    return;
+	}
+	
+	else if(selected_type == A_CALL) {
+
+	    // user may have dragged it outside the conference
+	    if(dragged_call && dragged_call->_state == CALL_STATE_DIALING) {
+
+	        calltree_remove_call(current_calls, dragged_call, NULL);
+
+		DEBUG("Dragged a call on a dialing call");
+
+		// test if call participate to a conference
+		if(selected_call->_confID) {
+
+	            gtk_tree_path_up(spath);
+		    gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &parent_conference, path);
+		
+		    calltree_add_call(current_calls, selected_call, &parent_conference);
+		}
+		else {
+	            calltree_add_call(current_calls, selected_call, NULL);
+		}
+
+		calltree_add_call(current_calls, dragged_call, NULL);
+		return;
+
+	    }
+
+	}
+	else if(selected_type == A_CONFERENCE) {
+
+	    DEBUG("Dragged a conference on a dialing call");
+
+	    if(dragged_call && dragged_call->_state == CALL_STATE_DIALING) {
+
+		conf = selected_conf;
+
+		calltree_remove_conference(current_calls, conf, NULL);
+		calltree_add_conference(current_calls, conf);
+		return;
+	    } 
+	}
+
+
 	if(selected_path_depth == 1) {
 
 	    if(dragged_path_depth == 1) {
-- 
GitLab


From 5fa082c77356fbfb93b368dc7ee9b6cfb173d704 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 10 Dec 2009 17:53:22 -0500
Subject: [PATCH 078/188] [#2519] Sutdown UDP transport bound to a single
 account

---
 sflphone-common/src/sip/sipvoiplink.cpp | 119 ++++++++++--------------
 sflphone-common/src/sip/sipvoiplink.h   |  10 +-
 2 files changed, 59 insertions(+), 70 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 8e085aecfd..14e6dbea2b 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -644,11 +644,6 @@ SIPVoIPLink::sendUnregister (AccountID id)
     account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (id));
     regc = account->getRegistrationInfo();
 
-    _debug("Sending account unregistration using transport: %s %s (refcnt=%d)\n",
-	   account->getAccountTransport()->obj_name,
-	   account->getAccountTransport()->info,
-	   (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
-
     if (!account->isRegister()) {
         account->setRegistrationState (Unregistered);
         return true;
@@ -675,33 +670,24 @@ SIPVoIPLink::sendUnregister (AccountID id)
 
     if(account->getAccountTransport()) {
 
-        if(account->getAccountTransport() != _localUDPTransport) {
-
-	  // status = pjsip_transport_dec_ref(account->getAccountTransport());
-	  // status = pjsip_transport_shutdown(account->getAccountTransport());
-	    // status = pjsip_transport_destroy(account->getAccountTransport());
-	    // account->getAccountTransport()->destroy(account->getAccountTransport());
-
-	}
-
-	_debug("Sent account unregistration using transport: %s %s (refcnt=%d)\n",
+        _debug("Sent account unregistration using transport: %s %s (refcnt=%d)\n",
 	       account->getAccountTransport()->obj_name,
 	       account->getAccountTransport()->info,
 	       (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
 
-	pj_sockaddr *addr = (pj_sockaddr*)&(account->getAccountTransport()->key.rem_addr);
+        if(account->getAccountTransport() != _localUDPTransport) {
 
-	static char str[PJ_INET6_ADDRSTRLEN];
-	pj_inet_ntop(((const pj_sockaddr*)addr)->addr.sa_family, 
-		     pj_sockaddr_get_addr(addr),
-		     str, sizeof(str));
-	
-    
-	_debug("------------------------------------- KEY: %s:%d\n",
-	       // addr_string(account->getAccountTransport()->key.rem_addr),
-	       str,
-	       pj_sockaddr_get_port((const pj_sockaddr*)&(account->getAccountTransport()->key.rem_addr)));
+	    shutdownSipTransport(account->getAccountID());
 
+	    /*
+	    // PJSIP's UDP transport is considered permanent, reference counter 
+	    // is incremented by 1 at transport creation.
+	    // To destroy this transport, reference counter must be zero
+	    status = pjsip_transport_dec_ref(account->getAccountTransport());
+	    status = pjsip_transport_shutdown(account->getAccountTransport());
+	    */
+
+	}
     }
 
     //account->setRegistrationInfo(regc);
@@ -1387,7 +1373,7 @@ SIPVoIPLink::SIPStartCall (SIPCall* call, const std::string& subject UNUSED)
     status = pjsip_dlg_set_transport (dialog, tp);
 
     // decrement transport's ref count
-    pjsip_transport_dec_ref(account->getAccountTransport());
+    // pjsip_transport_dec_ref(account->getAccountTransport());
     
 
     status = pjsip_inv_send_msg (inv, tdata);
@@ -1624,7 +1610,7 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
         status = pjsip_dlg_set_transport (dialog, tp);
 
 	// decrement transport's ref count
-	pjsip_transport_dec_ref(account->getAccountTransport());
+	// pjsip_transport_dec_ref(account->getAccountTransport());
 
         if (status != PJ_SUCCESS) {
             _debug ("Failed to set the transport for an IP call\n");
@@ -2061,7 +2047,8 @@ int SIPVoIPLink::createUDPServer (AccountID id)
         listeningAddress = account->getPublishedAddress ();
         // Set the listening port to the published port
         listeningPort = account->getPublishedPort ();
-        _debug (" ******************************** Use the published address %s:%i\n", listeningAddress.c_str (), listeningPort);
+        _debug ("Creating UDP transport published %s:%i\n", listeningAddress.c_str (), listeningPort);
+
     }
 
     //strcpy (tmpIP, listeningAddress.data());
@@ -2078,39 +2065,12 @@ int SIPVoIPLink::createUDPServer (AccountID id)
 
     status = pjsip_udp_transport_start (_endpt, &bound_addr, &a_name, 1, &transport);
 
-    if(transport) {
-
-      /*
-    _debug("------------------------------- INITIAL REF COUNT: %s %s (refcnt=%i)\n",
-	   transport->obj_name,
-	   transport->info,
-	   (int)pj_atomic_get(transport->ref_cnt));
-
-
-    pj_sockaddr *addr = (pj_sockaddr*)&(transport->key.rem_addr);
-
-    static char str[PJ_INET6_ADDRSTRLEN];
-    pj_inet_ntop(((const pj_sockaddr*)addr)->addr.sa_family, 
-		 pj_sockaddr_get_addr(addr),
-		 str, sizeof(str));
-     
-    
-    _debug("------------------------------------- KEY: %s:%d\n",
-	   // addr_string(account->getAccountTransport()->key.rem_addr),
-	   str,
-	   pj_sockaddr_get_port((const pj_sockaddr*)&(transport->key.rem_addr)));
-      */
-    }
     // Get the transport manager associated with
     // this endpoint
     pjsip_tpmgr * tpmgr = NULL;
 
     tpmgr = pjsip_endpt_get_tpmgr (_endpt);
 
-    _debug ("Number of transport: %i\n", pjsip_tpmgr_get_transport_count (tpmgr));
-
-    // status = pjsip_transport_register( tpmgr, (pjsip_transport*)transport);
-
     pjsip_tpmgr_dump_transports (tpmgr);
 
     if (status != PJ_SUCCESS) {
@@ -2446,7 +2406,7 @@ pj_status_t SIPVoIPLink::createAlternateUdpTransport (AccountID id)
 
     if(transport) {
 
-    _debug("------------------------------- INITIAL REF COUNT: %s %s (refcnt=%i)\n",
+    _debug("INITIAL REF COUNT: %s %s (refcnt=%i)\n",
 	   transport->obj_name,
 	   transport->info,
 	   (int)pj_atomic_get(transport->ref_cnt));
@@ -2460,7 +2420,7 @@ pj_status_t SIPVoIPLink::createAlternateUdpTransport (AccountID id)
 		 str, sizeof(str));
     
     
-    _debug("------------------------------------- KEY: %s:%d\n",
+    _debug("KEY: %s:%d\n",
 	   // addr_string(account->getAccountTransport()->key.rem_addr),
 	   str,
 	   pj_sockaddr_get_port((const pj_sockaddr*)&(transport->key.rem_addr)));
@@ -2556,6 +2516,28 @@ pj_status_t SIPVoIPLink::createTlsTransport (AccountID id)
 }
 
 
+void SIPVoIPLink::shutdownSipTransport(const AccountID& accountID)
+{
+    _debug("Shutdown Sip Transport\n");
+
+    pj_status_t status = 0;
+
+    SIPAccount* account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (accountID));
+
+    if(!account)
+        return;
+
+    // PJSIP's UDP transport is considered permanent, reference counter 
+    // is incremented by 1 at transport creation.
+    // To destroy this transport, reference counter must be zero
+    status = pjsip_transport_dec_ref(account->getAccountTransport());
+    status = pjsip_transport_shutdown(account->getAccountTransport());
+
+    account->setAccountTransport(NULL);
+
+}
+
+
 void SIPVoIPLink::updateAccountInfo (const AccountID& accountID)
 {
 
@@ -2982,6 +2964,8 @@ void call_on_tsx_changed (pjsip_inv_session *inv, pjsip_transaction *tsx, pjsip_
 {
     _debug("call_on_tsx_changed to state %s\n", transactionStateMap[tsx->state]);
 
+    
+
     if (tsx->role==PJSIP_ROLE_UAS && tsx->state==PJSIP_TSX_STATE_TRYING &&
         pjsip_method_cmp (&tsx->method, &pjsip_refer_method) ==0) {
         /** Handle the refer method **/
@@ -3068,6 +3052,13 @@ void regc_cb (struct pjsip_regc_cbparam *param)
             }
 
             account->setRegister (false);
+
+	    // shutdown this transport since useless
+	    if(account->getAccountTransport() != _localUDPTransport) {
+
+	        SIPVoIPLink::instance("")->shutdownSipTransport(account->getAccountID());
+	    }
+
         } else {
             // Registration/Unregistration is success
             if (account->isRegister())
@@ -3350,7 +3341,7 @@ mod_on_rx_request (pjsip_rx_data *rdata)
     status = pjsip_dlg_set_transport (dialog, tp);
 
     // decrement transport's reference counter
-    pjsip_transport_dec_ref(rdata->tp_info.transport);
+    // pjsip_transport_dec_ref(rdata->tp_info.transport);
 
     PJ_ASSERT_RETURN (status == PJ_SUCCESS, 1);
 
@@ -3883,18 +3874,8 @@ void handle_incoming_options (pjsip_rx_data *rdata)
     /* Send response statelessly */
     pjsip_get_response_addr (tdata->pool, rdata, &res_addr);
 
-    _debug("--------------- Before sending option response: %s %s (refcnt=%d)\n",
-	   res_addr.transport->obj_name,
-	   res_addr.transport->info,
-	   (int)pj_atomic_get(res_addr.transport->ref_cnt));
-
     status = pjsip_endpt_send_response (_endpt, &res_addr, tdata, NULL, NULL);
 
-    _debug("--------------- After sending option response: %s %s (refcnt=%d)\n",
-	   res_addr.transport->obj_name,
-	   res_addr.transport->info,
-	   (int)pj_atomic_get(res_addr.transport->ref_cnt));
-
     if (status != PJ_SUCCESS)
         pjsip_tx_data_dec_ref (tdata);
 }
diff --git a/sflphone-common/src/sip/sipvoiplink.h b/sflphone-common/src/sip/sipvoiplink.h
index 69d79d8b7c..9c9d5eb2cc 100644
--- a/sflphone-common/src/sip/sipvoiplink.h
+++ b/sflphone-common/src/sip/sipvoiplink.h
@@ -302,6 +302,14 @@ class SIPVoIPLink : public VoIPLink
 	 */
 	void updateAccountInfo(const AccountID& accountID);
 
+	/**
+	 * This function unset the transport for a given account. It tests wether the 
+	 * associated transport is used by other accounts. If not, it shutdown the transport
+	 * putting its reference counter to zero. PJSIP assumes transport destruction since 
+	 * this action can be delayed by ongoing SIP transactions.
+	 */
+	void shutdownSipTransport(const AccountID& accountID);
+
     private:
         /**
          * Constructor
@@ -369,7 +377,7 @@ class SIPVoIPLink : public VoIPLink
          */
         pj_status_t createTlsTransport(AccountID id);
 
-		pj_status_t createAlternateUdpTransport (AccountID id);
+	pj_status_t createAlternateUdpTransport (AccountID id);
         
         /** For registration use only */
         int _regPort;
-- 
GitLab


From 395e37df4ef53e1b0bf5d8a963027a5af505fa25 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 14 Dec 2009 11:10:17 -0500
Subject: [PATCH 079/188] [#2519] Add internal SIP transport map and implement
 acwuireTransport method

acquireTransport create a transport and look if available in the map
if unable to create it.
---
 sflphone-common/src/sip/sipaccount.cpp  |  23 +++
 sflphone-common/src/sip/sipaccount.h    |  25 ++--
 sflphone-common/src/sip/sipvoiplink.cpp | 181 +++++++++++++++++++-----
 sflphone-common/src/sip/sipvoiplink.h   |  50 +++++--
 4 files changed, 222 insertions(+), 57 deletions(-)

diff --git a/sflphone-common/src/sip/sipaccount.cpp b/sflphone-common/src/sip/sipaccount.cpp
index 52f7c3a0df..b8c509b29a 100644
--- a/sflphone-common/src/sip/sipaccount.cpp
+++ b/sflphone-common/src/sip/sipaccount.cpp
@@ -407,6 +407,29 @@ std::string SIPAccount::getLoginName (void)
     return username;
 }
 
+std::string SIPAccount::getTransportMapKey(void)
+{
+    std::string mapKey;
+
+    std::stringstream out;
+
+    out << getLocalPort();
+    std::string localAddress = getLocalAddress();
+    std::string localPort = out.str();
+
+    out.seekp (0);
+    out << getPublishedPort();
+    std::string publishedAddress = getPublishedAddress();
+    std::string publishedPort = out.str();
+
+    mapKey.append(localAddress.c_str());
+    mapKey.append(localPort.c_str());
+    mapKey.append(publishedAddress.c_str());
+    mapKey.append(publishedPort.c_str());
+
+    return mapKey;
+}
+
 
 std::string SIPAccount::getFromUri (void)
 {
diff --git a/sflphone-common/src/sip/sipaccount.h b/sflphone-common/src/sip/sipaccount.h
index 7a3a17d887..97116b56ca 100644
--- a/sflphone-common/src/sip/sipaccount.h
+++ b/sflphone-common/src/sip/sipaccount.h
@@ -24,6 +24,8 @@
 #ifndef SIPACCOUNT_H
 #define SIPACCOUNT_H
 
+#include <sstream>
+
 #include "account.h"
 #include "sipvoiplink.h"
 #include "pjsip/sip_transport_tls.h"
@@ -268,7 +270,9 @@ class SIPAccount : public Account
 
 	inline void setAccountTransport (pjsip_transport *transport) { _transport = transport; }
 
-	private: 
+	std::string getTransportMapKey(void);
+
+  private: 
 
         /* Maps a string description of the SSL method 
          * to the corresponding enum value in pjsip_ssl_method.
@@ -283,10 +287,10 @@ class SIPAccount : public Account
          */  
         void initTlsConfiguration(void);  
 
-		/*
-		 * Initializes STUN config from the config file
-		 */
-		void initStunConfiguration (void);
+	/*
+	 * Initializes STUN config from the config file
+	 */
+	void initStunConfiguration (void);
  
         /*
          * Initializes set of additional credentials, if supplied by the user.
@@ -308,8 +312,7 @@ class SIPAccount : public Account
          * @return std::string The login name under which SFLPhone is running.
          */ 
         std::string getLoginName(void);
-            
-    private:               
+              
 
         // The pjsip client registration information
         pjsip_regc *_regc;
@@ -319,9 +322,9 @@ class SIPAccount : public Account
         // Network settings
         std::string _registrationExpire;
 
-		// Flag which determine if _localIpAddress or _publishedIpAddress is used in 
+	// Flag which determine if _localIpAddress or _publishedIpAddress is used in 
         // sip headers
-		bool _publishedSameasLocal;
+	bool _publishedSameasLocal;
                 
         std::string _localIpAddress;
         std::string _publishedIpAddress;
@@ -350,8 +353,8 @@ class SIPAccount : public Account
         // The STUN server name, if applicable
         pj_str_t _stunServerName;	                                                  
 
-		// The STUN server port, if applicable
-		pj_uint16_t _stunPort;
+	// The STUN server port, if applicable
+	pj_uint16_t _stunPort;
         
         // Display Name that can be used in  SIP URI.        
         std::string _displayName;        
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 14e6dbea2b..55f710d773 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -408,7 +408,6 @@ int SIPVoIPLink::sendRegister (AccountID id)
         _debug ("In sendRegister: account is null");
         return false;
     }
-    
 
     // Resolve hostname here and keep its
     // IP address for the whole time the
@@ -451,40 +450,9 @@ int SIPVoIPLink::sendRegister (AccountID id)
         }
     }
 
-    // Launch a new TLS listener/transport
-    // if the user did choose it.
-    if (account->isTlsEnabled()) {
-        pj_status_t status;
-
-        _debug ("    sendRegister: createTlsTransport\n");
-        status = createTlsTransportRetryOnFailure (id);
-
-        if (status != PJ_SUCCESS) {
-            _debug ("Failed to initialize TLS transport for account %s\n", id.c_str());
-        }
-    }
-
-    else {
-        // Launch a new UDP listener/transport, using the published address
-        if (account->isStunEnabled ()) {
-            pj_status_t status;
-
-            _debug ("    sendRegister: createAlternateUdpTransport\n");
-            status = createAlternateUdpTransport (id);
-
-            if (status != PJ_SUCCESS) {
-                _debug ("Failed to initialize UDP transport with an extern published address for account %s\n", id.c_str());
-            }
-        } else {
-
-            status = createUDPServer (id);
 
-            if (status != PJ_SUCCESS) {
-                _debug ("Use the local UDP transport\n");
-                account->setAccountTransport (_localUDPTransport);
-            }
-        }
-    }
+    // Create SIP transport or get SIP transport from internal map 
+    acquireTransport(account->getAccountID());
 
     _mutexSIP.enterMutex();
 
@@ -1990,6 +1958,139 @@ pj_status_t SIPVoIPLink::stunServerResolve (AccountID id)
     return status;
 }
 
+
+
+bool SIPVoIPLink::acquireTransport(const AccountID& accountID) {
+
+    SIPAccount* account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (accountID));
+
+    if(!account)
+        return false;
+
+    // Try to create a new transport
+    if(createSipTransport(accountID)) {
+
+        return true;
+    }
+    else {
+
+      _debug("Searching transport (%s) in transport map\n", account->getTransportMapKey().c_str());
+
+        // Could not create new transport, this transport may already exists
+        SipTransportMap::iterator transport;
+        transport = _transportMap.find(account->getTransportMapKey());
+
+	if(transport != _transportMap.end()) {
+
+	    // Transport already exist, use it for this account
+	  _debug("Found transport (%s) in transport map\n", account->getTransportMapKey().c_str());
+
+	    pjsip_transport* tr = transport->second;
+
+	    account->setAccountTransport(tr);
+
+
+	    // Test is the associated transport is shutdowning
+	    if(account->getAccountTransport()) {
+
+	        pjsip_transport* tp = account->getAccountTransport();
+
+		pj_lock_acquire(tp->lock);
+
+		// associated transport is shutdowning, resurect it!!!
+		if(tp->is_shutdown == PJ_TRUE) {
+
+		  _debug("Transport is shutdowning, cancel timer and reactivate it.\n");
+		  
+		  pjsip_endpt_cancel_timer(_endpt, &(tp->idle_timer));
+		  tp->is_shutdown = PJ_FALSE;
+		}
+		
+		pj_lock_release(tp->lock);
+	    }
+
+	    return true;
+	}
+	else {
+
+	    // Transport could not either be created, socket not available
+	    _debug("Found transport (%s) in transport map\n", account->getTransportMapKey().c_str());
+
+	    // Transport could not either be created, socket not available
+	    return false;
+	}
+    }
+}
+
+
+bool SIPVoIPLink::createSipTransport(AccountID id) {
+
+
+    SIPAccount* account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (id));
+
+    if (!account)
+        return false;
+
+    pj_status_t status;
+
+    // Launch a new TLS listener/transport
+    // if the user did choose it.
+    if (account->isTlsEnabled()) {
+
+        _debug ("    sendRegister: createTlsTransport\n");
+        status = createTlsTransportRetryOnFailure (id);
+
+        if (status != PJ_SUCCESS) {
+            _debug ("Failed to initialize TLS transport for account %s\n", id.c_str());
+        }
+    }
+    else {
+        // Launch a new UDP listener/transport, using the published address
+        if (account->isStunEnabled ()) {
+
+            _debug ("    sendRegister: createAlternateUdpTransport\n");
+            status = createAlternateUdpTransport (id);
+
+            if (status != PJ_SUCCESS) {
+                _debug ("Failed to initialize UDP transport with an extern published address for account %s\n", id.c_str());
+            }
+        } else {
+
+            status = createUDPServer (id);
+
+	    if (status != PJ_SUCCESS) {
+                _debug ("Failed to initialize UDP transport for account %s\n", id.c_str());
+	    }
+
+	    // We should not bind account to local udp transport here since we must
+	    /*
+            if (status != PJ_SUCCESS) {
+                _debug ("Use the local UDP transport\n");
+                account->setAccountTransport (_localUDPTransport);
+            }
+	    */
+        }
+    }
+
+    // If Transport created succesfully, store it in the internal map
+    if(status == PJ_SUCCESS) {
+
+         std::string key = account->getTransportMapKey();
+	 pjsip_transport* transport = account->getAccountTransport();
+ 
+	 _debug("Storing the newly created transport in transport map using key %s\n", key.c_str());
+         _transportMap.insert(pair<std::string, pjsip_transport*>(key, transport));
+
+         return true;
+    }
+    else {
+
+        return false;
+    }
+    
+}
+
+
 int SIPVoIPLink::createUDPServer (AccountID id)
 {
 
@@ -2176,6 +2277,8 @@ std::string SIPVoIPLink::findLocalAddressFromUri (const std::string& uri, pjsip_
     return std::string (localAddress.ptr, localAddress.slen);
 }
 
+
+
 pj_status_t SIPVoIPLink::init_transport_selector (pjsip_transport *transport, pjsip_tpselector **tp_sel)
 {
     pjsip_tpselector *tp;
@@ -2530,10 +2633,14 @@ void SIPVoIPLink::shutdownSipTransport(const AccountID& accountID)
     // PJSIP's UDP transport is considered permanent, reference counter 
     // is incremented by 1 at transport creation.
     // To destroy this transport, reference counter must be zero
+    
     status = pjsip_transport_dec_ref(account->getAccountTransport());
     status = pjsip_transport_shutdown(account->getAccountTransport());
 
-    account->setAccountTransport(NULL);
+    // account->getAccountTransport())->is_paused = PJ_TRUE;
+    // pjsip_udp_transport_pause(account->getAccountTransport(), PJSIP_UDP_TRANSPORT_DESTROY_SOCKET);
+
+    // account->setAccountTransport(NULL);
 
 }
 
@@ -3104,7 +3211,7 @@ mod_on_rx_request (pjsip_rx_data *rdata)
     // Handle the incoming call invite in this function
     _debug ("UserAgent: Callback on_rx_request is involved! \n");
 
-    _debug("Receiving request using transport: %s %s (refcnt=%d)\n",
+    _debug("Receiving REQUEST using transport: %s %s (refcnt=%d)\n",
 	   rdata->tp_info.transport->obj_name,
 	   rdata->tp_info.transport->info,
 	   (int)pj_atomic_get(rdata->tp_info.transport->ref_cnt));
@@ -3270,7 +3377,7 @@ mod_on_rx_request (pjsip_rx_data *rdata)
 		link->init_transport_selector (account->getAccountTransport (), &tp);
 
 		if(account->getAccountTransport()) {
-		_debug("Answer invite request using transport: %s %s (refcnt=%i)\n",
+		_debug("Process INVITE request using transport: %s %s (refcnt=%i)\n",
 		       account->getAccountTransport()->obj_name,
 		       account->getAccountTransport()->info,
 		       (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
diff --git a/sflphone-common/src/sip/sipvoiplink.h b/sflphone-common/src/sip/sipvoiplink.h
index 9c9d5eb2cc..5a010702e4 100644
--- a/sflphone-common/src/sip/sipvoiplink.h
+++ b/sflphone-common/src/sip/sipvoiplink.h
@@ -36,6 +36,9 @@
 #include <pjnath/stun_config.h>
 ///////////////////////////////
 
+#include <map>
+#include <sstream>
+
 class EventThread;
 class SIPCall;
 
@@ -45,6 +48,8 @@ class SIPCall;
 // To set the verbosity. From 0 (min) to 6 (max)
 #define PJ_LOG_LEVEL 6
 
+#define SipTransportMap std::map<std::string, pjsip_transport*>
+
 /**
  * @file sipvoiplink.h
  * @brief Specific VoIPLink for SIP (SIP core for incoming and outgoing events).
@@ -286,15 +291,22 @@ class SIPVoIPLink : public VoIPLink
          */
         std::vector<std::string> getAllIpInterface(void);
 
-		/**
-		 * Initialize the transport selector
-		 * @param transport		A transport associated with an account
-		 * @param tp_sel		A pointer to receive the transport selector structure
-		 *
-		 * @return pj_status_t		PJ_SUCCESS if the structure was successfully initialized
-		 */
-		pj_status_t init_transport_selector (pjsip_transport *transport, pjsip_tpselector **tp_sel);
 
+	/**
+	 * Initialize the transport selector
+	 * @param transport		A transport associated with an account
+	 * @param tp_sel		A pointer to receive the transport selector structure
+	 *
+	 * @return pj_status_t		PJ_SUCCESS if the structure was successfully initialized
+	 */
+	pj_status_t init_transport_selector (pjsip_transport *transport, pjsip_tpselector **tp_sel);
+
+	/**
+	 * Requests PJSIP library for local IP address, using pj_gethostbyname()
+	 * @param addr*                 A string to be initialized
+	 *
+	 * @return bool                 True if addr successfully initialized
+	 */
         bool loadSIPLocalIP (std::string *addr);
 
 	/**
@@ -346,6 +358,24 @@ class SIPVoIPLink : public VoIPLink
 
         pj_status_t stunServerResolve (AccountID id);
 
+
+	/**
+	 * Function used to create a new sip transport or get an existing one from the map.
+	 * The SIP transport is "acquired" according to account's current settings.
+	 * This function should be called before registering an account
+	 * @param accountID            An account id for which transport is to be set
+	 *
+	 * @return bool                True if the account is succesfully created or 
+	 *                             successfully obtained from the transport map
+	 */
+	bool acquireTransport(const AccountID& accountID);
+
+
+	/**
+	 * Create a new sip transport according to the trasport type specified in account settings
+	 */
+	bool createSipTransport(AccountID id);
+
         /** Create SIP UDP Listener */
         int createUDPServer (AccountID = "");
 
@@ -378,7 +408,9 @@ class SIPVoIPLink : public VoIPLink
         pj_status_t createTlsTransport(AccountID id);
 
 	pj_status_t createAlternateUdpTransport (AccountID id);
-        
+
+	SipTransportMap _transportMap;
+
         /** For registration use only */
         int _regPort;
 
-- 
GitLab


From 45d9368a5548ea72fe621b3bd5c1bf088818e171 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 14 Dec 2009 13:02:05 -0500
Subject: [PATCH 080/188] [#2519] Erase old transport reference when creating
 new one

---
 sflphone-common/src/sip/sipvoiplink.cpp | 23 +++++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 55f710d773..bfe65c535e 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -1983,7 +1983,7 @@ bool SIPVoIPLink::acquireTransport(const AccountID& accountID) {
 	if(transport != _transportMap.end()) {
 
 	    // Transport already exist, use it for this account
-	  _debug("Found transport (%s) in transport map\n", account->getTransportMapKey().c_str());
+	    _debug("Found transport (%s) in transport map\n", account->getTransportMapKey().c_str());
 
 	    pjsip_transport* tr = transport->second;
 
@@ -2000,11 +2000,17 @@ bool SIPVoIPLink::acquireTransport(const AccountID& accountID) {
 		// associated transport is shutdowning, resurect it!!!
 		if(tp->is_shutdown == PJ_TRUE) {
 
+		  // Timer is automatically ended if refcnt increments from 0 to 1 
+		  pjsip_transport_add_ref(tp);
+
 		  _debug("Transport is shutdowning, cancel timer and reactivate it.\n");
 		  
-		  pjsip_endpt_cancel_timer(_endpt, &(tp->idle_timer));
-		  tp->is_shutdown = PJ_FALSE;
+		  /*
+		      pjsip_endpt_cancel_timer(_endpt, &(tp->idle_timer));
+		      tp->is_shutdown = PJ_FALSE;
+		  */
 		}
+
 		
 		pj_lock_release(tp->lock);
 	    }
@@ -2013,6 +2019,7 @@ bool SIPVoIPLink::acquireTransport(const AccountID& accountID) {
 	}
 	else {
 
+
 	    // Transport could not either be created, socket not available
 	    _debug("Found transport (%s) in transport map\n", account->getTransportMapKey().c_str());
 
@@ -2075,8 +2082,16 @@ bool SIPVoIPLink::createSipTransport(AccountID id) {
     // If Transport created succesfully, store it in the internal map
     if(status == PJ_SUCCESS) {
 
+         SipTransportMap::iterator iter_transport;
+	 iter_transport = _transportMap.find(account->getTransportMapKey());
+
+	 // old transport in transport map, erase it
+	 if(iter_transport != _transportMap.end()){
+	     _transportMap.erase(iter_transport);
+	 }
+
          std::string key = account->getTransportMapKey();
-	 pjsip_transport* transport = account->getAccountTransport();
+	 pjsip_transport* transport = account->getAccountTransport();	 
  
 	 _debug("Storing the newly created transport in transport map using key %s\n", key.c_str());
          _transportMap.insert(pair<std::string, pjsip_transport*>(key, transport));
-- 
GitLab


From 61aa119bfad057b173ba2e6d6705f7098bd398f8 Mon Sep 17 00:00:00 2001
From: Jonas Fonseca <jonas.fonseca@savoirfairelinux.com>
Date: Mon, 14 Dec 2009 12:48:31 -0500
Subject: [PATCH 081/188] [#2582] main_window_message: use
 gtk_message_dialog_set_markup

... else the markup text is escaped.
---
 sflphone-client-gnome/src/mainwindow.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/sflphone-client-gnome/src/mainwindow.c b/sflphone-client-gnome/src/mainwindow.c
index 12b7ecedc0..8218938509 100644
--- a/sflphone-client-gnome/src/mainwindow.c
+++ b/sflphone-client-gnome/src/mainwindow.c
@@ -291,11 +291,10 @@ main_window_message(GtkMessageType type, gchar * markup){
 			GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
 			type,
 			GTK_BUTTONS_CLOSE,
-			"%s\n",
-			markup);
-
+			NULL);
 
 	gtk_window_set_title(GTK_WINDOW(dialog), _("SFLphone Error"));
+	gtk_message_dialog_set_markup(GTK_MESSAGE_DIALOG(dialog), markup);
 
 	gtk_dialog_run (GTK_DIALOG(dialog));
 	gtk_widget_destroy (GTK_WIDGET(dialog));
-- 
GitLab


From d6bfbe657b7b0d3c46a4f39648b4a910c8ec381d Mon Sep 17 00:00:00 2001
From: Jonas Fonseca <jonas.fonseca@savoirfairelinux.com>
Date: Mon, 14 Dec 2009 12:56:00 -0500
Subject: [PATCH 082/188] [#2582] dbus_codec_list: initialize array variable to
 NULL

... in case the dbus call will fail. Else it will cause a segfault.
---
 sflphone-client-gnome/src/dbus/dbus.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sflphone-client-gnome/src/dbus/dbus.c b/sflphone-client-gnome/src/dbus/dbus.c
index 3a5798348a..a00c4134f1 100644
--- a/sflphone-client-gnome/src/dbus/dbus.c
+++ b/sflphone-client-gnome/src/dbus/dbus.c
@@ -1195,7 +1195,7 @@ dbus_codec_list()
 {
 
     GError *error = NULL;
-    gchar** array;
+    gchar** array = NULL;
     org_sflphone_SFLphone_ConfigurationManager_get_codec_list (
             configurationManagerProxy,
             &array,
-- 
GitLab


From 8c9a07947e0b5401873d48615da7d90f22a61485 Mon Sep 17 00:00:00 2001
From: Jonas Fonseca <jonas.fonseca@savoirfairelinux.com>
Date: Mon, 14 Dec 2009 13:05:32 -0500
Subject: [PATCH 083/188] [#2582] Improve and reformat error message

Removes redundant "Error:" prefix and reformats it to be slightly more
readable.
---
 sflphone-client-gnome/src/actions.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sflphone-client-gnome/src/actions.c b/sflphone-client-gnome/src/actions.c
index 5a28359011..7d78274db9 100644
--- a/sflphone-client-gnome/src/actions.c
+++ b/sflphone-client-gnome/src/actions.c
@@ -1102,7 +1102,7 @@ sflphone_fill_codec_list()
     }
     if( codec_list_get_size() == 0) {
 
-        gchar* markup = g_markup_printf_escaped(_("<b>Error: No audio codecs found.\n\n</b> SFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</b> directory in your home( <i>%s</i> )") , CODECS_DIR , g_get_home_dir());
+        gchar* markup = g_markup_printf_escaped(_("<b>No audio codecs found.</b>\n\nSFL audio codecs have to be placed in <i>%s</i> or in the <b>.sflphone</b> directory in your home (<i>%s</i>)"), CODECS_DIR, g_get_home_dir());
         main_window_error_message( markup );
         dbus_unregister(getpid());
         exit(0);
-- 
GitLab


From 60aa04cb019f6acc2735ecc66e3dc72da238a694 Mon Sep 17 00:00:00 2001
From: Jonas Fonseca <jonas.fonseca@savoirfairelinux.com>
Date: Mon, 14 Dec 2009 11:27:30 -0500
Subject: [PATCH 084/188] [#2579] User manual: Fix spelling errors and
 consistency

---
 sflphone-client-gnome/doc/C/sflphone.xml | 26 ++++++++++++------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/sflphone-client-gnome/doc/C/sflphone.xml b/sflphone-client-gnome/doc/C/sflphone.xml
index c08d76564a..47c65754b2 100644
--- a/sflphone-client-gnome/doc/C/sflphone.xml
+++ b/sflphone-client-gnome/doc/C/sflphone.xml
@@ -117,7 +117,7 @@
 <sect1 id="getting-started">
 	<title>Getting started</title>
 	<para>
-		The first time you start up sflphone, you will be ask to complete a wizard to set up your(s) account(s). This account configuration manager offers you two possibilities:
+		The first time you start up SFLphone, you will be ask to complete a wizard to set up your(s) account(s). This account configuration manager offers you two possibilities:
 		<itemizedlist>
 			<listitem>
 				<para><guilabel>Create a free SIP/IAX2 account on sflphone.org</guilabel></para>			
@@ -570,8 +570,8 @@
             SFLphone conference model let you leave a conference that
             you are currently hosting to answer any other incoming
             communication or even initiate new ones. The conference is
-            not interupted, double clicking the conference icon
-            let you reintroduce it at any momment.
+            not interrupted, double clicking the conference icon
+            let you reintroduce it at any moment.
 	      </para>
 	    <!-- ==== Figure ==== -->
                <figure id="conference_detached-fig">
@@ -632,11 +632,11 @@
                        <para>RTP is the underlying protocol that is used in pair with the widely used SIP protocol to carry voice data. RTP alone does not provide any security features.</para>
                         <para>Details for implementing Secure RTP (SRTP) were described independently in a separate document (RFC). However, in this paper, one aspect was deliberately left unspecified: how should the encryption keys be exchanged between the two parties involved in a secure RTP session ?</para>
                         
-                        <para>Mutiple solutions were proposed to fill in that blank. Among them, are SDES (RFC4568) and ZRTP which are probably the most popular today. For the 0.9.7 release, SFLphone integrates support for Secure RTP through the ZRTP protocol, and SDES is expected to be implemented in the very few next releases.</para>
+                        <para>Multiple solutions were proposed to fill in that blank. Among them, are SDES (RFC4568) and ZRTP which are probably the most popular today. For the 0.9.7 release, SFLphone integrates support for Secure RTP through the ZRTP protocol, and SDES is expected to be implemented in the very few next releases.</para>
                         
-                        <para>As of today, blueprints for ZRTP are still laid out and are recognized under the name "zrtp-draftzimmerman" in the RFC machine. The author of ZRTP is Phil Zimmermann, that same person who brought us PGP. Therefore, it is not suprising that he designed ZRTP as an anti-PKI solution for key exchange.</para>
+                        <para>As of today, blueprints for ZRTP are still laid out and are recognized under the name "zrtp-draftzimmerman" in the RFC machine. The author of ZRTP is Phil Zimmermann, that same person who brought us PGP. Therefore, it is not surprising that he designed ZRTP as an anti-PKI solution for key exchange.</para>
                         
-                        <para>ZRTP makes possible for two parties to automatically establish a shared secret in a very simple way from the users's point of view. Indeed under SFLphone no special configuration is needed, appart from  enabling the option itself.</para>
+                        <para>ZRTP makes possible for two parties to automatically establish a shared secret in a very simple way from the user's point of view. Indeed under SFLphone no special configuration is needed, apart from  enabling the option itself.</para>
                         
                         <para>If you want to use ZRTP, please take note that if you are connecting to a PBX, this one must have been configured to support ZRTP. Unfortunately, security for VoIP communications is still young and chances are that your PBX software won't support it.</para>
                         
@@ -692,16 +692,16 @@
                     			<varlistentry>
                         			<term><guilabel>Send Hello Hash in SDP</guilabel></term>
                         				<listitem><para>Selecting this option will cause the program to compute an hash function over the "Hello" packet and send it as an SDP field "zrtp-hash:". The remote end might be interested in getting this value to add an additional layer of protection based on another communication channel. Upon receiving this value, the remote point can compute the hash function on the received hello packet and compare it.</para>
-                        				<para>Take note that for 0.9.7, SFLPhone does not perform the comparasion on its side.</para></listitem>
+                        				<para>Take note that for 0.9.7, SFLphone does not perform the comparison on its side.</para></listitem>
 								</varlistentry>
                         
                         		<varlistentry>
 									<term><guilabel>Ask user to confirm SAS</guilabel></term>
-                        			<listitem><para>The short authentication mechanism is at the heart of the ZRTP protocol. Not requirering the user to manually check the SAS value presents a security risk over Man in the Middle type of attacks.</para>
+                        			<listitem><para>The short authentication mechanism is at the heart of the ZRTP protocol. Not requiring the user to manually check the SAS value presents a security risk over Man in the Middle type of attacks.</para>
                         
                         			<para>Disabling this option will stop the program from prompting the user with the SAS.</para>
                         
-                        			<para>Such an option was motivated to be developped at that time by the the state of the libzrtpcpp library that SFLPhone was making use of. It is only from version x.x that this library can cache results of SAS computation between two peers.</para>
+                        			<para>Such an option was motivated to be developed at that time by the the state of the libzrtpcpp library that SFLphone was making use of. It is only from version x.x that this library can cache results of SAS computation between two peers.</para>
 									</listitem>
 								</varlistentry>
                         
@@ -729,7 +729,7 @@
 <sect1 id="audio_interfaces">
 	<title>Audio configuration</title>
 	<para>
-		ALSA and Pulseaudio native interfaces are available.
+		ALSA and PulseAudio native interfaces are available.
 	</para> 
 
     <sect2 label="Pulseaudio">
@@ -751,7 +751,7 @@
             <listitem>
               <guilabel>PCMU/PCMA</guilabel>
                 <para>
-		  ITU-T telefony standard PCM formats, 8kHz, 64
+		  ITU-T telephony standard PCM formats, 8kHz, 64
 		  kbit/s, using logarithmic byte compression algorithm.
                 </para>
             </listitem>
@@ -772,7 +772,7 @@
               <guilabel>SPEEX</guilabel>
               <para>
 		High quality voice encoding/decoding available
-		in narrowband 8Khz, wideband 16khz (HD Voice), 
+		in narrowband 8kHz, wideband 16kHz (HD Voice), 
 		and ultra-wideband 32 kHz. 
 		Integrate additional features such as Variable Bit
 		Rate (VBR) and noise reduction. 
@@ -910,7 +910,7 @@
 			<varlistentry>
                 <term><guilabel>Enable voicemail notifications</guilabel></term>
                 <listitem><para>
-					The voicemail notifications are handled separatly. If checked, you will be notified with the number of unread voicemails for your accounts.
+					The voicemail notifications are handled separately. If checked, you will be notified with the number of unread voicemails for your accounts.
 				</para>
 				<figure id="voicemail-notif-fig">
             <title>Example of a voicemail notification</title>
-- 
GitLab


From 7de27b4557b5ecca968b0a8c0ccbf6dcbdc66606 Mon Sep 17 00:00:00 2001
From: Jonas Fonseca <jonas.fonseca@savoirfairelinux.com>
Date: Mon, 14 Dec 2009 13:17:55 -0500
Subject: [PATCH 085/188] [#2579] User manual: Bump appversion to 0.9.7 and
 define a docversion entity

---
 sflphone-client-gnome/doc/C/sflphone.xml | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/sflphone-client-gnome/doc/C/sflphone.xml b/sflphone-client-gnome/doc/C/sflphone.xml
index 47c65754b2..61130f23d1 100644
--- a/sflphone-client-gnome/doc/C/sflphone.xml
+++ b/sflphone-client-gnome/doc/C/sflphone.xml
@@ -1,7 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"  [
 	<!ENTITY app "SFLphone">
-	<!ENTITY appversion "0.9.7 beta">
+	<!ENTITY appversion "0.9.7">
+	<!ENTITY docversion "1.0">
 ]>
 
 <!-- =============Document Header ============================= -->
@@ -9,7 +10,7 @@
 <!-- please do not change the id; for translations, change lang to -->
 <!-- appropriate code -->
   <articleinfo>
-    <title>SFLphone Manual v1.0</title>
+    <title>SFLphone Manual v&docversion;</title>
 
     <copyright>
       <year>2006</year>
@@ -73,7 +74,7 @@
 
 <revhistory>
       <revision>
-            <revnumber>SFLphone Manual V1.0</revnumber>
+            <revnumber>SFLphone Manual v1.0</revnumber>
             <date>September 2009</date>
             <revdescription>
                 <para role="author">SFLphone team</para>
@@ -82,7 +83,7 @@
       </revision>
 </revhistory>
 
-<releaseinfo>This manual describes version 0.9.7 of SFLphone.</releaseinfo>
+<releaseinfo>This manual describes SFLphone version &appversion;.</releaseinfo>
 
 </articleinfo>
 
-- 
GitLab


From e21f8714447f5bbe019d9973873d4215faa25515 Mon Sep 17 00:00:00 2001
From: Jonas Fonseca <jonas.fonseca@savoirfairelinux.com>
Date: Mon, 14 Dec 2009 13:25:25 -0500
Subject: [PATCH 086/188] [#2579] User manual: Minor improvements

---
 sflphone-client-gnome/doc/C/sflphone.xml | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/sflphone-client-gnome/doc/C/sflphone.xml b/sflphone-client-gnome/doc/C/sflphone.xml
index 61130f23d1..64861bea86 100644
--- a/sflphone-client-gnome/doc/C/sflphone.xml
+++ b/sflphone-client-gnome/doc/C/sflphone.xml
@@ -160,7 +160,7 @@
                   	</listitem>
                   	<listitem>
                     	<para><guilabel>Protocol</guilabel></para>
-						<para>Select SIP or IAX2. The most commons are SIP accounts.</para>
+						<para>Select SIP or IAX2. The most commonly used protocol is SIP.</para>
                   	</listitem>
                   	<listitem>
                     	<para><guilabel>Host name</guilabel></para>
@@ -182,7 +182,8 @@
 			</listitem>
     		<listitem><para>Click the <menuchoice><guimenu>Apply</guimenu></menuchoice> button.</para></listitem>
 		</orderedlist>
-		<para>You may now check the state of your account(s). You may have as many setup accounts as you wish. If it is registered, you may now use it to make calls.</para>
+		<para>You may now check the state of your account(s). If it is registered, you may now use it to make calls.</para>
+		<note>You can setup as many accounts as you wish.</note>
 	</sect3>
 
 	<sect3 id="account_edit">
@@ -206,7 +207,7 @@
 	
 	<sect3 id="account_selection">
 		<title>Selecting a default account</title>
-		<para>As it is possible to have an unlimited number of registered accounts at the same time, which account will be used when making a call ? You can not only set up a default account to be used every time you are making a call, but an entire priority list. To do that, perform the following steps:</para>
+		<para>Since it is possible to have an unlimited number of registered accounts at the same time, which account will be used when making a call ? You can not only set up a default account to be used every time you are making a call, but an entire priority list. To do that, perform the following steps:</para>
 			<orderedlist>
 				<listitem><para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage accounts</guimenuitem></menuchoice> to access the accounts list.</para></listitem>
 				<listitem>
@@ -237,8 +238,8 @@
 		<sect3 id="accounts_registration">
 			<title>Registration</title>
 				<para>You may set the expires header for a contact.</para>
-				<para>It basically represents the duration your registration will remain active. If you don't register again within that time, calls will no longer be routed to you. it should be not used as a keepalive mechanism though. The default value is 600 seconds (ten minutes).</para>
-				<note>To register to some VoIP services, you will need to set this value at at least 1600 seconds (Example: French VoIP server freephonie.net).
+				<para>It basically represents the duration your registration will remain active. If you don't register again within that time, calls will no longer be routed to you. It should not be used as a keepalive mechanism though. The default value is 600 seconds (ten minutes).</para>
+				<note>Some VoIP services requires that you set this value at at least 1600 seconds (e.g. the French VoIP server freephonie.net).
 				</note>
 		</sect3>
 		<sect3 id="accounts_stun">
@@ -301,7 +302,7 @@
 <sect1 id="call_features">
 	<title>Call features</title>
 
-	<para>All the following features are available with both SIP and IAX2 accounts.</para>
+	<para>The following features are available with both SIP and IAX2 accounts.</para>
 
 	<sect2 label="Dialing a number">
 	<!-- ==== Figure ==== -->
@@ -746,7 +747,7 @@
 
 <sect1 id="codecs_overview">
 	<title>Codecs overview</title>
-	<para>SFLphone supports several widely used audio codec:</para>
+	<para>SFLphone supports several widely used audio codecs:</para>
         <para>
           <itemizedlist>
             <listitem>
-- 
GitLab


From 80b99f90f4280eff8bdedf5e2e853fe7cff5ae00 Mon Sep 17 00:00:00 2001
From: Jonas Fonseca <jonas.fonseca@savoirfairelinux.com>
Date: Mon, 14 Dec 2009 15:30:04 -0500
Subject: [PATCH 087/188] [#2586] Define LOCALEDIR to ${localedir} and pass it
 to bindtextdomain

---
 sflphone-client-gnome/globals.mak | 1 +
 sflphone-client-gnome/src/main.c  | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/sflphone-client-gnome/globals.mak b/sflphone-client-gnome/globals.mak
index 027c152adb..8fe5ee180b 100644
--- a/sflphone-client-gnome/globals.mak
+++ b/sflphone-client-gnome/globals.mak
@@ -18,5 +18,6 @@ AM_CPPFLAGS =		$(DEPS_CFLAGS)										\
 					-DSYSCONFDIR=\""$(sysconfdir)"\"					\
 					-DDATADIR=\""$(datadir)"\"							\
 					-DLIBDIR=\""$(libdir)"\"							\
+					-DLOCALEDIR=\""$(localedir)"\"							\
 					-DSFLPHONE_UIDIR=\""$(datadir)/sflphone/ui"\"
 
diff --git a/sflphone-client-gnome/src/main.c b/sflphone-client-gnome/src/main.c
index 2a8b7ca5a9..fffd9a831b 100644
--- a/sflphone-client-gnome/src/main.c
+++ b/sflphone-client-gnome/src/main.c
@@ -84,7 +84,7 @@ There is NO WARRANTY, to the extent permitted by law.\n\n");
   srand(time(NULL));
 
   // Internationalization
-  bindtextdomain("sflphone-client-gnome", "/usr/share/locale");
+  bindtextdomain("sflphone-client-gnome", LOCALEDIR);
   textdomain("sflphone-client-gnome");
 
   // Initialises the GNOME libraries
-- 
GitLab


From b7937a0b5213dbb60bdd59722ba69d2197742340 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Tue, 15 Dec 2009 13:37:31 -0500
Subject: [PATCH 088/188] [#2519] Decrement transport's reference counter after
 calling regc_send

---
 sflphone-common/src/sip/sipvoiplink.cpp | 103 ++++++++++++++----------
 1 file changed, 59 insertions(+), 44 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index bfe65c535e..feaaa9b831 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -389,6 +389,7 @@ SIPVoIPLink::getEvent()
 
 int SIPVoIPLink::sendRegister (AccountID id)
 {
+
     int expire_value;
 
     pj_status_t status;
@@ -451,9 +452,15 @@ int SIPVoIPLink::sendRegister (AccountID id)
     }
 
 
-    // Create SIP transport or get SIP transport from internal map 
+    // Create SIP transport or get existent SIP transport from internal map 
+    // according to account settings
     acquireTransport(account->getAccountID());
 
+    _debug("Acquire transport in account registration: %s %s (refcnt=%d)\n",
+	       account->getAccountTransport()->obj_name,
+	       account->getAccountTransport()->info,
+	       (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
+
     _mutexSIP.enterMutex();
 
     // Get the client registration information for this particular account
@@ -581,8 +588,14 @@ int SIPVoIPLink::sendRegister (AccountID id)
     }
 
     // Send registration request
+    // pjsip_regc_send increment the transport ref count by one, 
     status = pjsip_regc_send (regc, tdata);
 
+    // Decrease transport's ref count, since coresponding reference counter decrementation 
+    // is performed in pjsip_regc_destroy. This function is never called in SFLphone as the
+    // regc data structure is permanently associated to the account at first registration.
+    pjsip_transport_dec_ref(account->getAccountTransport ());
+
     if (status != PJ_SUCCESS) {
         _debug ("UserAgent: Unable to send regc request.\n");
         _mutexSIP.leaveMutex();
@@ -604,6 +617,7 @@ int SIPVoIPLink::sendRegister (AccountID id)
 int
 SIPVoIPLink::sendUnregister (AccountID id)
 {
+
     pj_status_t status = 0;
     pjsip_tx_data *tdata = NULL;
     SIPAccount *account;
@@ -612,6 +626,18 @@ SIPVoIPLink::sendUnregister (AccountID id)
     account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (id));
     regc = account->getRegistrationInfo();
 
+    // If an transport is attached to this account, detach it and decrease reference counter
+    if(account->getAccountTransport()) {
+
+        _debug("Sent account unregistration using transport: %s %s (refcnt=%d)\n",
+	       account->getAccountTransport()->obj_name,
+	       account->getAccountTransport()->info,
+	       (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
+
+	shutdownSipTransport(account->getAccountID());
+    }
+
+    // This may occurs if account failed to register and is in state INVALID
     if (!account->isRegister()) {
         account->setRegistrationState (Unregistered);
         return true;
@@ -624,7 +650,7 @@ SIPVoIPLink::sendUnregister (AccountID id)
             _debug ("UserAgent: Unable to unregister regc.\n");
             return false;
         }
-
+ 
         status = pjsip_regc_send (regc, tdata);
 
         if (status != PJ_SUCCESS) {
@@ -636,28 +662,6 @@ SIPVoIPLink::sendUnregister (AccountID id)
         return false;
     }
 
-    if(account->getAccountTransport()) {
-
-        _debug("Sent account unregistration using transport: %s %s (refcnt=%d)\n",
-	       account->getAccountTransport()->obj_name,
-	       account->getAccountTransport()->info,
-	       (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
-
-        if(account->getAccountTransport() != _localUDPTransport) {
-
-	    shutdownSipTransport(account->getAccountID());
-
-	    /*
-	    // PJSIP's UDP transport is considered permanent, reference counter 
-	    // is incremented by 1 at transport creation.
-	    // To destroy this transport, reference counter must be zero
-	    status = pjsip_transport_dec_ref(account->getAccountTransport());
-	    status = pjsip_transport_shutdown(account->getAccountTransport());
-	    */
-
-	}
-    }
-
     //account->setRegistrationInfo(regc);
     account->setRegister (false);
 
@@ -1987,9 +1991,14 @@ bool SIPVoIPLink::acquireTransport(const AccountID& accountID) {
 
 	    pjsip_transport* tr = transport->second;
 
+	    // Set transport to be used for transaction involving this account
 	    account->setAccountTransport(tr);
 
+	    // Increment newly associated transport reference counter
+	    // If the account is shutdowning, time is automatically canceled
+	    pjsip_transport_add_ref(tr);
 
+	    /*
 	    // Test is the associated transport is shutdowning
 	    if(account->getAccountTransport()) {
 
@@ -2000,30 +2009,30 @@ bool SIPVoIPLink::acquireTransport(const AccountID& accountID) {
 		// associated transport is shutdowning, resurect it!!!
 		if(tp->is_shutdown == PJ_TRUE) {
 
-		  // Timer is automatically ended if refcnt increments from 0 to 1 
-		  pjsip_transport_add_ref(tp);
+		    // Timer is automatically ended if refcnt increments from 0 to 1 
+		    // pjsip_transport_add_ref(tp);
 
-		  _debug("Transport is shutdowning, cancel timer and reactivate it.\n");
+		    _debug("Transport is shutdowning, cancel timer and reactivate it.\n");
 		  
-		  /*
-		      pjsip_endpt_cancel_timer(_endpt, &(tp->idle_timer));
-		      tp->is_shutdown = PJ_FALSE;
-		  */
+		    
+		    // pjsip_endpt_cancel_timer(_endpt, &(tp->idle_timer));
+		    // tp->is_shutdown = PJ_FALSE;
+		    
 		}
 
 		
 		pj_lock_release(tp->lock);
 	    }
+	    */
 
 	    return true;
 	}
 	else {
 
-
 	    // Transport could not either be created, socket not available
 	    _debug("Found transport (%s) in transport map\n", account->getTransportMapKey().c_str());
 
-	    // Transport could not either be created, socket not available
+	    // Transport could not either be created or found in the map, socket not available
 	    return false;
 	}
     }
@@ -2645,17 +2654,19 @@ void SIPVoIPLink::shutdownSipTransport(const AccountID& accountID)
     if(!account)
         return;
 
-    // PJSIP's UDP transport is considered permanent, reference counter 
-    // is incremented by 1 at transport creation.
-    // To destroy this transport, reference counter must be zero
-    
+    _debug("decrease ref count in transport shutdown\n");
+    // decrease reference count added by pjsip_regc_send
     status = pjsip_transport_dec_ref(account->getAccountTransport());
-    status = pjsip_transport_shutdown(account->getAccountTransport());
 
-    // account->getAccountTransport())->is_paused = PJ_TRUE;
-    // pjsip_udp_transport_pause(account->getAccountTransport(), PJSIP_UDP_TRANSPORT_DESTROY_SOCKET);
+    // _debug("decrease ref count in transport shutdown\n");
+    // PJSIP's UDP transport is considered permanent, reference counter 
+    // is initialized to 1 at transport creation.
+    // To destroy this transport, reference counter must be zero
+    // status = pjsip_transport_dec_ref(account->getAccountTransport());
+    // status = pjsip_transport_shutdown(account->getAccountTransport());
 
-    // account->setAccountTransport(NULL);
+    // detach transport from this account
+    account->setAccountTransport(NULL);
 
 }
 
@@ -3176,10 +3187,10 @@ void regc_cb (struct pjsip_regc_cbparam *param)
             account->setRegister (false);
 
 	    // shutdown this transport since useless
-	    if(account->getAccountTransport() != _localUDPTransport) {
+	    // if(account->getAccountTransport() != _localUDPTransport) {
 
-	        SIPVoIPLink::instance("")->shutdownSipTransport(account->getAccountID());
-	    }
+	    SIPVoIPLink::instance("")->shutdownSipTransport(account->getAccountID());
+	    //}
 
         } else {
             // Registration/Unregistration is success
@@ -3188,6 +3199,9 @@ void regc_cb (struct pjsip_regc_cbparam *param)
             else {
                 account->setRegistrationState (Unregistered);
                 account->setRegister (false);
+
+		// pjsip_regc_destroy(param->regc);
+		// account->setRegistrationInfo(NULL);
             }
         }
     } else {
@@ -3998,6 +4012,7 @@ void handle_incoming_options (pjsip_rx_data *rdata)
 
     status = pjsip_endpt_send_response (_endpt, &res_addr, tdata, NULL, NULL);
 
+    
     if (status != PJ_SUCCESS)
         pjsip_tx_data_dec_ref (tdata);
 }
-- 
GitLab


From 0b24ccf7b24703e90f40332c08ecad3d0569dafb Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Tue, 15 Dec 2009 13:39:16 -0500
Subject: [PATCH 089/188] [#2519] Do not need to reactivate sip transport
 manually

This is automatically done in PJSIP
---
 sflphone-common/src/sip/sipvoiplink.cpp | 27 -------------------------
 1 file changed, 27 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index feaaa9b831..5b90e495a2 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -1998,33 +1998,6 @@ bool SIPVoIPLink::acquireTransport(const AccountID& accountID) {
 	    // If the account is shutdowning, time is automatically canceled
 	    pjsip_transport_add_ref(tr);
 
-	    /*
-	    // Test is the associated transport is shutdowning
-	    if(account->getAccountTransport()) {
-
-	        pjsip_transport* tp = account->getAccountTransport();
-
-		pj_lock_acquire(tp->lock);
-
-		// associated transport is shutdowning, resurect it!!!
-		if(tp->is_shutdown == PJ_TRUE) {
-
-		    // Timer is automatically ended if refcnt increments from 0 to 1 
-		    // pjsip_transport_add_ref(tp);
-
-		    _debug("Transport is shutdowning, cancel timer and reactivate it.\n");
-		  
-		    
-		    // pjsip_endpt_cancel_timer(_endpt, &(tp->idle_timer));
-		    // tp->is_shutdown = PJ_FALSE;
-		    
-		}
-
-		
-		pj_lock_release(tp->lock);
-	    }
-	    */
-
 	    return true;
 	}
 	else {
-- 
GitLab


From 6b6a1647410643ee47dca1fec7c7ea0830db688d Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Tue, 15 Dec 2009 16:30:34 -0500
Subject: [PATCH 090/188] [#2519] Added a case where the transport already set
 in account

---
 sflphone-common/src/sip/sipvoiplink.cpp | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 5b90e495a2..ecf0011e2e 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -451,9 +451,10 @@ int SIPVoIPLink::sendRegister (AccountID id)
         }
     }
 
-
     // Create SIP transport or get existent SIP transport from internal map 
-    // according to account settings
+    // according to account settings, if the transport could not be created but
+    // one is already set in account, use this one (most likely this is the 
+    // transport we tried to create) 
     acquireTransport(account->getAccountID());
 
     _debug("Acquire transport in account registration: %s %s (refcnt=%d)\n",
@@ -572,7 +573,8 @@ int SIPVoIPLink::sendRegister (AccountID id)
     // pjsip_regc_set_transport increments transport ref count by one
     status = pjsip_regc_set_transport (regc, tp);
 
-    // decrease transport's ref count
+    // decrease transport's ref count, counter icrementation is 
+    // managed when acquiring transport 
     pjsip_transport_dec_ref(account->getAccountTransport ());
 
     _debug("After setting the transport in account registration using transport: %s %s (refcnt=%d)\n",
@@ -1976,9 +1978,17 @@ bool SIPVoIPLink::acquireTransport(const AccountID& accountID) {
 
         return true;
     }
+    else if(account->getAccountTransport()) {
+
+        // Transport could not be created, account account already have one set.
+        // Most likely this is the transport we tried to create.
+        _debug("Transport (%s) already set for account, use it\n", account->getTransportMapKey().c_str());
+
+	return true;
+    } 
     else {
 
-      _debug("Searching transport (%s) in transport map\n", account->getTransportMapKey().c_str());
+        _debug("Searching transport (%s) in transport map\n", account->getTransportMapKey().c_str());
 
         // Could not create new transport, this transport may already exists
         SipTransportMap::iterator transport;
-- 
GitLab


From 109420c05ec298778bb9e66d2f7eb26e8ddf908c Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Tue, 15 Dec 2009 17:33:56 -0500
Subject: [PATCH 091/188] [#2519] Shutdown transport in regc_cb

---
 sflphone-common/src/sip/sipvoiplink.cpp | 40 ++++++++++++++-----------
 1 file changed, 23 insertions(+), 17 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index ecf0011e2e..c483beb7e1 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -636,7 +636,7 @@ SIPVoIPLink::sendUnregister (AccountID id)
 	       account->getAccountTransport()->info,
 	       (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
 
-	shutdownSipTransport(account->getAccountID());
+	// shutdownSipTransport(account->getAccountID());
     }
 
     // This may occurs if account failed to register and is in state INVALID
@@ -1768,7 +1768,7 @@ bool SIPVoIPLink::pjsip_init()
 
     bool directIpCallsTlsEnabled = false;
 
-    account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (AccountNULL));
+    account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (IP2IP_PROFILE));
 
     if (account == NULL) {
         _debug ("Account is null in pjsip init\n");
@@ -1780,7 +1780,7 @@ bool SIPVoIPLink::pjsip_init()
 
     // Create a UDP listener meant for all accounts
     // for which TLS was not enabled
-    errPjsip = createUDPServer();
+    errPjsip = createUDPServer(IP2IP_PROFILE);
 
     // If the above UDP server
     // could not be created, then give it another try
@@ -1807,7 +1807,7 @@ bool SIPVoIPLink::pjsip_init()
     // if the user did enabled it.
 
     if (directIpCallsTlsEnabled) {
-        errPjsip = createTlsTransportRetryOnFailure (AccountNULL);
+        errPjsip = createTlsTransportRetryOnFailure (IP2IP_PROFILE);
     }
 
     if (errPjsip != PJ_SUCCESS) {
@@ -2189,9 +2189,12 @@ int SIPVoIPLink::createUDPServer (AccountID id)
     } else {
         _debug ("UserAgent: UDP server listening on port %d\n", listeningPort);
 
-        if (account == NULL)
+        if (account == NULL) {
+	    _debug("Use transport as local UDP server\n");
             _localUDPTransport = transport;
+	}
         else {
+	    _debug("Bind transport to account %s\n", account->getAccountID().c_str());
 	    account->setAccountTransport (transport);
 	}
     }
@@ -2637,19 +2640,18 @@ void SIPVoIPLink::shutdownSipTransport(const AccountID& accountID)
     if(!account)
         return;
 
-    _debug("decrease ref count in transport shutdown\n");
-    // decrease reference count added by pjsip_regc_send
-    status = pjsip_transport_dec_ref(account->getAccountTransport());
+    if(account->getAccountTransport()) {
 
-    // _debug("decrease ref count in transport shutdown\n");
-    // PJSIP's UDP transport is considered permanent, reference counter 
-    // is initialized to 1 at transport creation.
-    // To destroy this transport, reference counter must be zero
-    // status = pjsip_transport_dec_ref(account->getAccountTransport());
-    // status = pjsip_transport_shutdown(account->getAccountTransport());
+        _debug("Transport bound to account, decrease ref count\n");
 
-    // detach transport from this account
-    account->setAccountTransport(NULL);
+	// decrease reference count added by pjsip_regc_send
+	// PJSIP's IDLE timer is set if counter reach 0
+	status = pjsip_transport_dec_ref(account->getAccountTransport());
+
+	// detach transport from this account
+	account->setAccountTransport(NULL);
+
+    }
 
 }
 
@@ -3183,6 +3185,8 @@ void regc_cb (struct pjsip_regc_cbparam *param)
                 account->setRegistrationState (Unregistered);
                 account->setRegister (false);
 
+		SIPVoIPLink::instance("")->shutdownSipTransport(account->getAccountID());
+
 		// pjsip_regc_destroy(param->regc);
 		// account->setRegistrationInfo(NULL);
             }
@@ -3190,6 +3194,8 @@ void regc_cb (struct pjsip_regc_cbparam *param)
     } else {
         account->setRegistrationState (ErrorAuth);
         account->setRegister (false);
+
+	SIPVoIPLink::instance("")->shutdownSipTransport(account->getAccountID());
     }
 
 }
@@ -4124,7 +4130,7 @@ std::string getLocalAddressAssociatedToAccount (AccountID id)
 
     // Set the local address
 
-    if (account != NULL) {
+    if (account != NULL && account->getAccountTransport ()) {
         tspt = account->getAccountTransport ();
 
         if (tspt != NULL) {
-- 
GitLab


From e31877b30f0150d36423db117ac322a59b26986a Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Tue, 15 Dec 2009 17:45:33 -0500
Subject: [PATCH 092/188] [#2445] Updated package

---
 .gitignore                                     | 12 ++++++++++++
 tools/mozilla-telify-sflphone/debian/changelog |  1 -
 .../debian/control.debian                      |  9 ++++++---
 .../debian/{control => control.ubuntu}         |  6 +++++-
 .../debian/mozilla-telify-sflphone.install     |  5 +----
 .../debian/mozilla-telify-sflphone.links       |  1 -
 .../mozilla-telify-sflphone.links.debian       |  1 +
 .../mozilla-telify-sflphone.links.ubuntu       |  1 +
 tools/mozilla-telify-sflphone/debian/postinst  |  2 --
 tools/mozilla-telify-sflphone/debian/rules     | 18 ++++++++----------
 tools/mozilla-telify-sflphone/debian/watch     |  2 ++
 11 files changed, 36 insertions(+), 22 deletions(-)
 rename tools/mozilla-telify-sflphone/debian/{control => control.ubuntu} (52%)
 delete mode 100644 tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links
 create mode 100644 tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links.debian
 create mode 100644 tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links.ubuntu
 create mode 100644 tools/mozilla-telify-sflphone/debian/watch

diff --git a/.gitignore b/.gitignore
index 84df355e2b..5c61460b9e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -208,3 +208,15 @@ sflphone-client-gnome/stamp-h1
 /tools/build-system/launchpad/*.build
 /tools/build-system/launchpad/*.upload
 
+# telify
+/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone
+/tools/mozilla-telify-sflphone/tmp/
+/tools/mozilla-telify-sflphone/*-stamp
+/tools/*.dsc
+/tools/*.tar.gz
+/tools/*.deb
+/tools/*.build
+/tools/*.changes
+/tools/mozilla-telify-sflphone/debian/control
+/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links
+
diff --git a/tools/mozilla-telify-sflphone/debian/changelog b/tools/mozilla-telify-sflphone/debian/changelog
index 8ea3e02afc..e368436b93 100644
--- a/tools/mozilla-telify-sflphone/debian/changelog
+++ b/tools/mozilla-telify-sflphone/debian/changelog
@@ -4,4 +4,3 @@ mozilla-telify-sflphone (0.4.7.3) unstable; urgency=low
   * Package creation
 
  -- Julien Bonjean <julien.bonjean@savoirfairelinux.com>  Fri, 20 Nov 2009 19:51:54 +0100
-
diff --git a/tools/mozilla-telify-sflphone/debian/control.debian b/tools/mozilla-telify-sflphone/debian/control.debian
index d4a3deefdd..36a90b1f2d 100644
--- a/tools/mozilla-telify-sflphone/debian/control.debian
+++ b/tools/mozilla-telify-sflphone/debian/control.debian
@@ -4,13 +4,16 @@ Priority: optional
 Maintainer: Julien Bonjean <julien.bonjean@savoirfairelinux.com>
 Uploaders: Julien Bonjean <julien.bonjean@savoirfairelinux.com>
 Build-Depends: debhelper (>= 7), unzip
-Depends: iceweasel-gnome-support
 Homepage: http://www.sflphone.org
 Standards-Version: 3.8.3
 DM-Upload-Allowed: yes
 
 Package: mozilla-telify-sflphone
+Depends: iceweasel-gnome-support, sflphone-client-gnome
 Architecture: all
-Depends: iceweasel (>= 3.0)
-Description: TBD
+Description: This package provides telify firefox plugin and handler for SFLphone.
+ Telify recognizes phone numbers on web pages and converts them to clickable links.
+ Additionally, any text can be selected and handled as a phone number (including
+ vanity number conversion) by selecting the corresponding context menu item.
+ http://www.codepad.de/en/software/firefox-add-ons/telify.html
 
diff --git a/tools/mozilla-telify-sflphone/debian/control b/tools/mozilla-telify-sflphone/debian/control.ubuntu
similarity index 52%
rename from tools/mozilla-telify-sflphone/debian/control
rename to tools/mozilla-telify-sflphone/debian/control.ubuntu
index 88fcc2ff5f..01e98ce803 100644
--- a/tools/mozilla-telify-sflphone/debian/control
+++ b/tools/mozilla-telify-sflphone/debian/control.ubuntu
@@ -11,5 +11,9 @@ DM-Upload-Allowed: yes
 Package: mozilla-telify-sflphone
 Depends: firefox-gnome-support, sflphone-client-gnome
 Architecture: all
-Description: TBD
+Description: This package provides telify firefox plugin and handler for SFLphone.
+ Telify recognizes phone numbers on web pages and converts them to clickable links.
+ Additionally, any text can be selected and handled as a phone number (including
+ vanity number conversion) by selecting the corresponding context menu item.
+ http://www.codepad.de/en/software/firefox-add-ons/telify.html
 
diff --git a/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.install b/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.install
index ffb9a7d052..937e53876e 100644
--- a/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.install
+++ b/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.install
@@ -1,5 +1,2 @@
-temp/install.rdf usr/share/mozilla-extensions/telify/
-temp/chrome.manifest usr/share/mozilla-extensions/telify/
-temp/defaults/* usr/share/mozilla-extensions/telify/defaults
-temp/chrome/* usr/share/mozilla-extensions/telify/chrome
+tmp/telify usr/share/
 sflphone-handler usr/bin/
diff --git a/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links b/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links
deleted file mode 100644
index 5fa1937c3e..0000000000
--- a/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links
+++ /dev/null
@@ -1 +0,0 @@
-usr/share/mozilla-extensions/telify usr/lib/iceweasel/extensions/{6c5f349a-ddda-49ad-bdf0-326d3fe1f938}
diff --git a/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links.debian b/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links.debian
new file mode 100644
index 0000000000..f8f52cec90
--- /dev/null
+++ b/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links.debian
@@ -0,0 +1 @@
+usr/share/telify usr/lib/iceweasel/extensions/{6c5f349a-ddda-49ad-bdf0-326d3fe1f938}
diff --git a/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links.ubuntu b/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links.ubuntu
new file mode 100644
index 0000000000..f234168dd0
--- /dev/null
+++ b/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links.ubuntu
@@ -0,0 +1 @@
+usr/share/telify usr/lib/firefox-addons/extensions/{6c5f349a-ddda-49ad-bdf0-326d3fe1f938}
diff --git a/tools/mozilla-telify-sflphone/debian/postinst b/tools/mozilla-telify-sflphone/debian/postinst
index 293cbf05a1..1039df3268 100755
--- a/tools/mozilla-telify-sflphone/debian/postinst
+++ b/tools/mozilla-telify-sflphone/debian/postinst
@@ -1,7 +1,5 @@
 #!/bin/bash
 
-set -x
-
 gconftool-2 --direct --config-source xml::/etc/gconf/gconf.xml.defaults -t string -s /desktop/gnome/url-handlers/tel/command "/usr/bin/sflphone-handler %s"
 gconftool-2 --direct --config-source xml::/etc/gconf/gconf.xml.defaults -s /desktop/gnome/url-handlers/tel/needs_terminal false -t bool
 gconftool-2 --direct --config-source xml::/etc/gconf/gconf.xml.defaults -t bool -s /desktop/gnome/url-handlers/tel/enabled true
diff --git a/tools/mozilla-telify-sflphone/debian/rules b/tools/mozilla-telify-sflphone/debian/rules
index b6418e1b04..0e8b875eb4 100755
--- a/tools/mozilla-telify-sflphone/debian/rules
+++ b/tools/mozilla-telify-sflphone/debian/rules
@@ -1,42 +1,40 @@
 #!/usr/bin/make -f
 
 # Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
+export DH_VERBOSE=1
 
-ID="{6c5f349a-ddda-49ad-bdf0-326d3fe1f938}"
+VERSION="0.4.7.3"
 
 configure: configure-stamp
 configure-stamp:
 	dh_testdir
-
 	touch configure-stamp
 
 build: configure-stamp build-stamp
 build-stamp:
 	dh_testdir
 
-	mkdir -p temp
-	unzip -o -d temp *.xpi
+	echo ${DIR}
+	umask 0022
+	mkdir -p tmp/telify
+	unzip telify-${VERSION}-fx.xpi -d tmp/telify
 	touch build-stamp
 
 clean:
 	dh_testdir
 	dh_testroot
 	rm -f build-stamp configure-stamp
-
-	-rm -rf temp
-
 	dh_clean
 
+	rm -rf tmp
+
 install: build
 	dh_testdir
 	dh_testroot
 	dh_prep
 	dh_installdirs
-
 	dh_install
 
-
 # Build architecture-independent files here.
 binary-indep: build install
 	dh_testdir
diff --git a/tools/mozilla-telify-sflphone/debian/watch b/tools/mozilla-telify-sflphone/debian/watch
new file mode 100644
index 0000000000..74d5ff2777
--- /dev/null
+++ b/tools/mozilla-telify-sflphone/debian/watch
@@ -0,0 +1,2 @@
+version=3
+http://www.codepad.de/en/telify.html /download/telify-(.*)-fx.xpi
-- 
GitLab


From be9f233be8d1b9ac4450ba8ec1c6bb1d9328d456 Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Tue, 15 Dec 2009 17:51:22 -0500
Subject: [PATCH 093/188] [#2445] Moved debian files to build system

---
 .../mozilla-telify-sflphone/debian/changelog  |   0
 .../mozilla-telify-sflphone/debian/compat     |   0
 .../mozilla-telify-sflphone/debian/control}   |   0
 .../debian/control.debian                     |   0
 .../debian/control.ubuntu                     |  19 +
 .../mozilla-telify-sflphone/debian/copyright  |   0
 .../mozilla-telify-sflphone/debian/files      |   0
 .../mozilla-telify-sflphone.debhelper.log     |   0
 .../debian/mozilla-telify-sflphone.install    |   0
 .../debian/mozilla-telify-sflphone.links}     |   0
 .../mozilla-telify-sflphone.links.debian      |   0
 .../mozilla-telify-sflphone.links.ubuntu      |   1 +
 .../debian/mozilla-telify-sflphone.substvars  |   0
 .../mozilla-telify-sflphone/DEBIAN/control    |  14 +
 .../mozilla-telify-sflphone/DEBIAN/md5sums    | 282 +++++++
 .../mozilla-telify-sflphone/DEBIAN}/postinst  |   0
 .../usr/bin/sflphone-handler                  |  52 ++
 .../{6c5f349a-ddda-49ad-bdf0-326d3fe1f938}    |   1 +
 .../doc/mozilla-telify-sflphone/changelog.gz  | Bin 0 -> 175 bytes
 .../usr/share/telify/chrome.manifest          |   5 +
 .../usr/share/telify/chrome/content/ask32.png | Bin 0 -> 2671 bytes
 .../share/telify/chrome/content/browser.xul   |  87 +++
 .../usr/share/telify/chrome/content/config.js | 196 +++++
 .../share/telify/chrome/content/config.xul    | 180 +++++
 .../telify/chrome/content/country_data.js     | 258 +++++++
 .../share/telify/chrome/content/dialog.css    |  33 +
 .../share/telify/chrome/content/edit22x15.png | Bin 0 -> 2946 bytes
 .../share/telify/chrome/content/editNumber.js | 180 +++++
 .../telify/chrome/content/editNumber.xul      |  45 ++
 .../share/telify/chrome/content/error32.png   | Bin 0 -> 2478 bytes
 .../telify/chrome/content/flag/1-canada.png   | Bin 0 -> 2979 bytes
 .../share/telify/chrome/content/flag/1.png    | Bin 0 -> 2878 bytes
 .../share/telify/chrome/content/flag/1242.png | Bin 0 -> 2928 bytes
 .../share/telify/chrome/content/flag/1246.png | Bin 0 -> 347 bytes
 .../share/telify/chrome/content/flag/1264.png | Bin 0 -> 3228 bytes
 .../share/telify/chrome/content/flag/1268.png | Bin 0 -> 587 bytes
 .../share/telify/chrome/content/flag/1284.png | Bin 0 -> 3287 bytes
 .../share/telify/chrome/content/flag/1340.png | Bin 0 -> 785 bytes
 .../share/telify/chrome/content/flag/1345.png | Bin 0 -> 3245 bytes
 .../share/telify/chrome/content/flag/1441.png | Bin 0 -> 3238 bytes
 .../share/telify/chrome/content/flag/1473.png | Bin 0 -> 3288 bytes
 .../share/telify/chrome/content/flag/1649.png | Bin 0 -> 3206 bytes
 .../share/telify/chrome/content/flag/1664.png | Bin 0 -> 3220 bytes
 .../share/telify/chrome/content/flag/1670.png | Bin 0 -> 3233 bytes
 .../share/telify/chrome/content/flag/1671.png | Bin 0 -> 3003 bytes
 .../share/telify/chrome/content/flag/1684.png | Bin 0 -> 3124 bytes
 .../share/telify/chrome/content/flag/1758.png | Bin 0 -> 3002 bytes
 .../share/telify/chrome/content/flag/1767.png | Bin 0 -> 3064 bytes
 .../share/telify/chrome/content/flag/1784.png | Bin 0 -> 302 bytes
 .../share/telify/chrome/content/flag/1787.png | Bin 0 -> 440 bytes
 .../share/telify/chrome/content/flag/1809.png | Bin 0 -> 2961 bytes
 .../share/telify/chrome/content/flag/1829.png | Bin 0 -> 2961 bytes
 .../share/telify/chrome/content/flag/1868.png | Bin 0 -> 3278 bytes
 .../share/telify/chrome/content/flag/1869.png | Bin 0 -> 689 bytes
 .../share/telify/chrome/content/flag/1876.png | Bin 0 -> 2954 bytes
 .../share/telify/chrome/content/flag/1939.png | Bin 0 -> 440 bytes
 .../share/telify/chrome/content/flag/20.png   | Bin 0 -> 223 bytes
 .../share/telify/chrome/content/flag/212.png  | Bin 0 -> 312 bytes
 .../share/telify/chrome/content/flag/213.png  | Bin 0 -> 411 bytes
 .../share/telify/chrome/content/flag/216.png  | Bin 0 -> 401 bytes
 .../share/telify/chrome/content/flag/218.png  | Bin 0 -> 2820 bytes
 .../share/telify/chrome/content/flag/220.png  | Bin 0 -> 146 bytes
 .../share/telify/chrome/content/flag/221.png  | Bin 0 -> 245 bytes
 .../share/telify/chrome/content/flag/222.png  | Bin 0 -> 410 bytes
 .../share/telify/chrome/content/flag/223.png  | Bin 0 -> 151 bytes
 .../share/telify/chrome/content/flag/224.png  | Bin 0 -> 151 bytes
 .../share/telify/chrome/content/flag/225.png  | Bin 0 -> 147 bytes
 .../share/telify/chrome/content/flag/226.png  | Bin 0 -> 256 bytes
 .../share/telify/chrome/content/flag/227.png  | Bin 0 -> 2931 bytes
 .../share/telify/chrome/content/flag/228.png  | Bin 0 -> 3019 bytes
 .../share/telify/chrome/content/flag/229.png  | Bin 0 -> 164 bytes
 .../share/telify/chrome/content/flag/230.png  | Bin 0 -> 172 bytes
 .../share/telify/chrome/content/flag/231.png  | Bin 0 -> 3043 bytes
 .../share/telify/chrome/content/flag/232.png  | Bin 0 -> 137 bytes
 .../share/telify/chrome/content/flag/233.png  | Bin 0 -> 253 bytes
 .../share/telify/chrome/content/flag/234.png  | Bin 0 -> 2837 bytes
 .../share/telify/chrome/content/flag/235.png  | Bin 0 -> 151 bytes
 .../share/telify/chrome/content/flag/236.png  | Bin 0 -> 380 bytes
 .../share/telify/chrome/content/flag/237.png  | Bin 0 -> 240 bytes
 .../share/telify/chrome/content/flag/238.png  | Bin 0 -> 3037 bytes
 .../share/telify/chrome/content/flag/239.png  | Bin 0 -> 2990 bytes
 .../share/telify/chrome/content/flag/240.png  | Bin 0 -> 434 bytes
 .../share/telify/chrome/content/flag/241.png  | Bin 0 -> 2888 bytes
 .../share/telify/chrome/content/flag/242.png  | Bin 0 -> 449 bytes
 .../share/telify/chrome/content/flag/243.png  | Bin 0 -> 3452 bytes
 .../share/telify/chrome/content/flag/244.png  | Bin 0 -> 375 bytes
 .../share/telify/chrome/content/flag/245.png  | Bin 0 -> 2932 bytes
 .../share/telify/chrome/content/flag/246.png  | Bin 0 -> 3646 bytes
 .../share/telify/chrome/content/flag/247.png  | Bin 0 -> 3740 bytes
 .../share/telify/chrome/content/flag/248.png  | Bin 0 -> 3105 bytes
 .../share/telify/chrome/content/flag/249.png  | Bin 0 -> 2972 bytes
 .../share/telify/chrome/content/flag/250.png  | Bin 0 -> 323 bytes
 .../share/telify/chrome/content/flag/251.png  | Bin 0 -> 3025 bytes
 .../share/telify/chrome/content/flag/252.png  | Bin 0 -> 248 bytes
 .../share/telify/chrome/content/flag/253.png  | Bin 0 -> 390 bytes
 .../share/telify/chrome/content/flag/254.png  | Bin 0 -> 380 bytes
 .../share/telify/chrome/content/flag/255.png  | Bin 0 -> 635 bytes
 .../share/telify/chrome/content/flag/256.png  | Bin 0 -> 306 bytes
 .../share/telify/chrome/content/flag/257.png  | Bin 0 -> 3326 bytes
 .../share/telify/chrome/content/flag/258.png  | Bin 0 -> 471 bytes
 .../share/telify/chrome/content/flag/260.png  | Bin 0 -> 280 bytes
 .../share/telify/chrome/content/flag/261.png  | Bin 0 -> 161 bytes
 .../share/telify/chrome/content/flag/262.png  | Bin 0 -> 147 bytes
 .../share/telify/chrome/content/flag/263.png  | Bin 0 -> 3044 bytes
 .../share/telify/chrome/content/flag/264.png  | Bin 0 -> 720 bytes
 .../share/telify/chrome/content/flag/265.png  | Bin 0 -> 286 bytes
 .../share/telify/chrome/content/flag/266.png  | Bin 0 -> 284 bytes
 .../share/telify/chrome/content/flag/267.png  | Bin 0 -> 165 bytes
 .../share/telify/chrome/content/flag/268.png  | Bin 0 -> 539 bytes
 .../share/telify/chrome/content/flag/269.png  | Bin 0 -> 3169 bytes
 .../share/telify/chrome/content/flag/27.png   | Bin 0 -> 558 bytes
 .../share/telify/chrome/content/flag/290.png  | Bin 0 -> 3202 bytes
 .../share/telify/chrome/content/flag/291.png  | Bin 0 -> 3091 bytes
 .../share/telify/chrome/content/flag/297.png  | Bin 0 -> 260 bytes
 .../share/telify/chrome/content/flag/298.png  | Bin 0 -> 2877 bytes
 .../share/telify/chrome/content/flag/299.png  | Bin 0 -> 408 bytes
 .../share/telify/chrome/content/flag/30.png   | Bin 0 -> 325 bytes
 .../share/telify/chrome/content/flag/31.png   | Bin 0 -> 137 bytes
 .../share/telify/chrome/content/flag/32.png   | Bin 0 -> 145 bytes
 .../share/telify/chrome/content/flag/33.png   | Bin 0 -> 147 bytes
 .../share/telify/chrome/content/flag/34.png   | Bin 0 -> 325 bytes
 .../share/telify/chrome/content/flag/350.png  | Bin 0 -> 3054 bytes
 .../share/telify/chrome/content/flag/351.png  | Bin 0 -> 413 bytes
 .../share/telify/chrome/content/flag/352.png  | Bin 0 -> 2844 bytes
 .../share/telify/chrome/content/flag/353.png  | Bin 0 -> 2839 bytes
 .../share/telify/chrome/content/flag/354.png  | Bin 0 -> 2895 bytes
 .../share/telify/chrome/content/flag/355.png  | Bin 0 -> 3109 bytes
 .../share/telify/chrome/content/flag/356.png  | Bin 0 -> 235 bytes
 .../share/telify/chrome/content/flag/357.png  | Bin 0 -> 3050 bytes
 .../share/telify/chrome/content/flag/358.png  | Bin 0 -> 2910 bytes
 .../share/telify/chrome/content/flag/359.png  | Bin 0 -> 2842 bytes
 .../share/telify/chrome/content/flag/36.png   | Bin 0 -> 2839 bytes
 .../share/telify/chrome/content/flag/370.png  | Bin 0 -> 2842 bytes
 .../share/telify/chrome/content/flag/371.png  | Bin 0 -> 2841 bytes
 .../share/telify/chrome/content/flag/372.png  | Bin 0 -> 2838 bytes
 .../share/telify/chrome/content/flag/373.png  | Bin 0 -> 2976 bytes
 .../share/telify/chrome/content/flag/374.png  | Bin 0 -> 2842 bytes
 .../telify/chrome/content/flag/37447.png      | Bin 0 -> 3069 bytes
 .../telify/chrome/content/flag/37497.png      | Bin 0 -> 3069 bytes
 .../share/telify/chrome/content/flag/375.png  | Bin 0 -> 2946 bytes
 .../share/telify/chrome/content/flag/376.png  | Bin 0 -> 404 bytes
 .../share/telify/chrome/content/flag/377.png  | Bin 0 -> 2836 bytes
 .../telify/chrome/content/flag/37744.png      | Bin 0 -> 473 bytes
 .../share/telify/chrome/content/flag/378.png  | Bin 0 -> 3126 bytes
 .../share/telify/chrome/content/flag/379.png  | Bin 0 -> 3050 bytes
 .../share/telify/chrome/content/flag/380.png  | Bin 0 -> 137 bytes
 .../telify/chrome/content/flag/381-kosovo.png | Bin 0 -> 473 bytes
 .../share/telify/chrome/content/flag/381.png  | Bin 0 -> 408 bytes
 .../share/telify/chrome/content/flag/382.png  | Bin 0 -> 3001 bytes
 .../share/telify/chrome/content/flag/385.png  | Bin 0 -> 3045 bytes
 .../share/telify/chrome/content/flag/386.png  | Bin 0 -> 2933 bytes
 .../telify/chrome/content/flag/38649.png      | Bin 0 -> 473 bytes
 .../share/telify/chrome/content/flag/387.png  | Bin 0 -> 3078 bytes
 .../share/telify/chrome/content/flag/3883.png | Bin 0 -> 421 bytes
 .../share/telify/chrome/content/flag/389.png  | Bin 0 -> 3170 bytes
 .../telify/chrome/content/flag/39-vatican.png | Bin 0 -> 3050 bytes
 .../share/telify/chrome/content/flag/39.png   | Bin 0 -> 151 bytes
 .../share/telify/chrome/content/flag/40.png   | Bin 0 -> 151 bytes
 .../share/telify/chrome/content/flag/41.png   | Bin 0 -> 2849 bytes
 .../share/telify/chrome/content/flag/420.png  | Bin 0 -> 400 bytes
 .../share/telify/chrome/content/flag/421.png  | Bin 0 -> 409 bytes
 .../share/telify/chrome/content/flag/423.png  | Bin 0 -> 2921 bytes
 .../share/telify/chrome/content/flag/43.png   | Bin 0 -> 134 bytes
 .../share/telify/chrome/content/flag/44.png   | Bin 0 -> 3740 bytes
 .../share/telify/chrome/content/flag/45.png   | Bin 0 -> 3015 bytes
 .../share/telify/chrome/content/flag/46.png   | Bin 0 -> 3059 bytes
 .../share/telify/chrome/content/flag/47.png   | Bin 0 -> 3115 bytes
 .../share/telify/chrome/content/flag/48.png   | Bin 0 -> 2820 bytes
 .../share/telify/chrome/content/flag/49.png   | Bin 0 -> 2870 bytes
 .../share/telify/chrome/content/flag/500.png  | Bin 0 -> 3239 bytes
 .../share/telify/chrome/content/flag/501.png  | Bin 0 -> 654 bytes
 .../share/telify/chrome/content/flag/502.png  | Bin 0 -> 2978 bytes
 .../share/telify/chrome/content/flag/503.png  | Bin 0 -> 2902 bytes
 .../share/telify/chrome/content/flag/504.png  | Bin 0 -> 2912 bytes
 .../share/telify/chrome/content/flag/505.png  | Bin 0 -> 2934 bytes
 .../share/telify/chrome/content/flag/506.png  | Bin 0 -> 2852 bytes
 .../share/telify/chrome/content/flag/507.png  | Bin 0 -> 320 bytes
 .../share/telify/chrome/content/flag/508.png  | Bin 0 -> 147 bytes
 .../share/telify/chrome/content/flag/509.png  | Bin 0 -> 2964 bytes
 .../share/telify/chrome/content/flag/51.png   | Bin 0 -> 147 bytes
 .../share/telify/chrome/content/flag/52.png   | Bin 0 -> 2954 bytes
 .../share/telify/chrome/content/flag/53.png   | Bin 0 -> 3234 bytes
 .../share/telify/chrome/content/flag/54.png   | Bin 0 -> 3003 bytes
 .../share/telify/chrome/content/flag/55.png   | Bin 0 -> 662 bytes
 .../share/telify/chrome/content/flag/56.png   | Bin 0 -> 239 bytes
 .../share/telify/chrome/content/flag/57.png   | Bin 0 -> 157 bytes
 .../share/telify/chrome/content/flag/58.png   | Bin 0 -> 273 bytes
 .../share/telify/chrome/content/flag/590.png  | Bin 0 -> 147 bytes
 .../share/telify/chrome/content/flag/591.png  | Bin 0 -> 140 bytes
 .../share/telify/chrome/content/flag/592.png  | Bin 0 -> 3185 bytes
 .../share/telify/chrome/content/flag/593.png  | Bin 0 -> 3025 bytes
 .../share/telify/chrome/content/flag/594.png  | Bin 0 -> 147 bytes
 .../share/telify/chrome/content/flag/595.png  | Bin 0 -> 2922 bytes
 .../share/telify/chrome/content/flag/596.png  | Bin 0 -> 147 bytes
 .../share/telify/chrome/content/flag/597.png  | Bin 0 -> 295 bytes
 .../share/telify/chrome/content/flag/598.png  | Bin 0 -> 380 bytes
 .../share/telify/chrome/content/flag/599.png  | Bin 0 -> 255 bytes
 .../share/telify/chrome/content/flag/60.png   | Bin 0 -> 3266 bytes
 .../share/telify/chrome/content/flag/61.png   | Bin 0 -> 3547 bytes
 .../share/telify/chrome/content/flag/62.png   | Bin 0 -> 138 bytes
 .../share/telify/chrome/content/flag/63.png   | Bin 0 -> 3087 bytes
 .../share/telify/chrome/content/flag/64.png   | Bin 0 -> 3206 bytes
 .../share/telify/chrome/content/flag/65.png   | Bin 0 -> 319 bytes
 .../share/telify/chrome/content/flag/66.png   | Bin 0 -> 157 bytes
 .../share/telify/chrome/content/flag/670.png  | Bin 0 -> 3040 bytes
 .../content/flag/672-norfolk_island.png       | Bin 0 -> 3053 bytes
 .../share/telify/chrome/content/flag/672.png  | Bin 0 -> 3237 bytes
 .../share/telify/chrome/content/flag/673.png  | Bin 0 -> 3236 bytes
 .../share/telify/chrome/content/flag/674.png  | Bin 0 -> 2918 bytes
 .../share/telify/chrome/content/flag/675.png  | Bin 0 -> 3408 bytes
 .../share/telify/chrome/content/flag/676.png  | Bin 0 -> 2945 bytes
 .../share/telify/chrome/content/flag/677.png  | Bin 0 -> 3090 bytes
 .../share/telify/chrome/content/flag/678.png  | Bin 0 -> 3137 bytes
 .../share/telify/chrome/content/flag/679.png  | Bin 0 -> 3236 bytes
 .../share/telify/chrome/content/flag/680.png  | Bin 0 -> 3019 bytes
 .../share/telify/chrome/content/flag/681.png  | Bin 0 -> 147 bytes
 .../share/telify/chrome/content/flag/682.png  | Bin 0 -> 3333 bytes
 .../share/telify/chrome/content/flag/683.png  | Bin 0 -> 3104 bytes
 .../share/telify/chrome/content/flag/685.png  | Bin 0 -> 2936 bytes
 .../share/telify/chrome/content/flag/686.png  | Bin 0 -> 3301 bytes
 .../share/telify/chrome/content/flag/687.png  | Bin 0 -> 147 bytes
 .../share/telify/chrome/content/flag/688.png  | Bin 0 -> 3330 bytes
 .../share/telify/chrome/content/flag/689.png  | Bin 0 -> 347 bytes
 .../share/telify/chrome/content/flag/690.png  | Bin 0 -> 3179 bytes
 .../share/telify/chrome/content/flag/691.png  | Bin 0 -> 2956 bytes
 .../share/telify/chrome/content/flag/692.png  | Bin 0 -> 3333 bytes
 .../chrome/content/flag/7-kazakhstan.png      | Bin 0 -> 3324 bytes
 .../share/telify/chrome/content/flag/7.png    | Bin 0 -> 136 bytes
 .../share/telify/chrome/content/flag/81.png   | Bin 0 -> 327 bytes
 .../share/telify/chrome/content/flag/82.png   | Bin 0 -> 666 bytes
 .../share/telify/chrome/content/flag/84.png   | Bin 0 -> 354 bytes
 .../share/telify/chrome/content/flag/850.png  | Bin 0 -> 2968 bytes
 .../share/telify/chrome/content/flag/852.png  | Bin 0 -> 403 bytes
 .../share/telify/chrome/content/flag/853.png  | Bin 0 -> 417 bytes
 .../share/telify/chrome/content/flag/855.png  | Bin 0 -> 421 bytes
 .../share/telify/chrome/content/flag/856.png  | Bin 0 -> 264 bytes
 .../share/telify/chrome/content/flag/86.png   | Bin 0 -> 319 bytes
 .../share/telify/chrome/content/flag/870.png  | Bin 0 -> 3427 bytes
 .../share/telify/chrome/content/flag/871.png  | Bin 0 -> 3427 bytes
 .../share/telify/chrome/content/flag/872.png  | Bin 0 -> 3427 bytes
 .../share/telify/chrome/content/flag/873.png  | Bin 0 -> 3427 bytes
 .../share/telify/chrome/content/flag/874.png  | Bin 0 -> 3427 bytes
 .../share/telify/chrome/content/flag/880.png  | Bin 0 -> 2992 bytes
 .../share/telify/chrome/content/flag/886.png  | Bin 0 -> 322 bytes
 .../share/telify/chrome/content/flag/90.png   | Bin 0 -> 389 bytes
 .../telify/chrome/content/flag/90392.png      | Bin 0 -> 390 bytes
 .../share/telify/chrome/content/flag/91.png   | Bin 0 -> 249 bytes
 .../share/telify/chrome/content/flag/92.png   | Bin 0 -> 419 bytes
 .../share/telify/chrome/content/flag/93.png   | Bin 0 -> 377 bytes
 .../share/telify/chrome/content/flag/94.png   | Bin 0 -> 3164 bytes
 .../share/telify/chrome/content/flag/95.png   | Bin 0 -> 2998 bytes
 .../share/telify/chrome/content/flag/960.png  | Bin 0 -> 295 bytes
 .../share/telify/chrome/content/flag/961.png  | Bin 0 -> 383 bytes
 .../share/telify/chrome/content/flag/962.png  | Bin 0 -> 2965 bytes
 .../share/telify/chrome/content/flag/963.png  | Bin 0 -> 241 bytes
 .../share/telify/chrome/content/flag/964.png  | Bin 0 -> 261 bytes
 .../share/telify/chrome/content/flag/965.png  | Bin 0 -> 2923 bytes
 .../share/telify/chrome/content/flag/966.png  | Bin 0 -> 437 bytes
 .../share/telify/chrome/content/flag/967.png  | Bin 0 -> 137 bytes
 .../share/telify/chrome/content/flag/968.png  | Bin 0 -> 2927 bytes
 .../share/telify/chrome/content/flag/971.png  | Bin 0 -> 2873 bytes
 .../share/telify/chrome/content/flag/972.png  | Bin 0 -> 3052 bytes
 .../share/telify/chrome/content/flag/973.png  | Bin 0 -> 2964 bytes
 .../share/telify/chrome/content/flag/974.png  | Bin 0 -> 2834 bytes
 .../share/telify/chrome/content/flag/975.png  | Bin 0 -> 601 bytes
 .../share/telify/chrome/content/flag/976.png  | Bin 0 -> 2973 bytes
 .../share/telify/chrome/content/flag/977.png  | Bin 0 -> 3373 bytes
 .../share/telify/chrome/content/flag/98.png   | Bin 0 -> 2957 bytes
 .../share/telify/chrome/content/flag/992.png  | Bin 0 -> 2933 bytes
 .../share/telify/chrome/content/flag/993.png  | Bin 0 -> 519 bytes
 .../share/telify/chrome/content/flag/994.png  | Bin 0 -> 2927 bytes
 .../share/telify/chrome/content/flag/995.png  | Bin 0 -> 286 bytes
 .../share/telify/chrome/content/flag/996.png  | Bin 0 -> 3044 bytes
 .../share/telify/chrome/content/flag/998.png  | Bin 0 -> 2949 bytes
 .../telify/chrome/content/icon18_active.png   | Bin 0 -> 3820 bytes
 .../telify/chrome/content/icon18_inactive.png | Bin 0 -> 1424 bytes
 .../share/telify/chrome/content/icon32.png    | Bin 0 -> 5391 bytes
 .../share/telify/chrome/content/icon96.png    | Bin 0 -> 12314 bytes
 .../share/telify/chrome/content/icon_menu.png | Bin 0 -> 583 bytes
 .../share/telify/chrome/content/info32.png    | Bin 0 -> 2328 bytes
 .../telify/chrome/content/jshashtable.js      | 380 ++++++++++
 .../share/telify/chrome/content/messagebox.js |  43 ++
 .../telify/chrome/content/messagebox.xul      |  34 +
 .../usr/share/telify/chrome/content/pref.js   | 164 ++++
 .../usr/share/telify/chrome/content/telify.js | 715 ++++++++++++++++++
 .../usr/share/telify/chrome/content/util.js   | 516 +++++++++++++
 .../share/telify/chrome/content/warn32.png    | Bin 0 -> 2125 bytes
 .../chrome/locale/de-DE/country_locale.js     | 158 ++++
 .../chrome/locale/de-DE/custom_preset.js      |   8 +
 .../share/telify/chrome/locale/de-DE/lang.dtd |  39 +
 .../chrome/locale/de-DE/lang.properties       |  13 +
 .../telify/chrome/locale/de-DE/locale.js      |  25 +
 .../chrome/locale/en-US/country_locale.js     |   3 +
 .../chrome/locale/en-US/custom_preset.js      |   8 +
 .../share/telify/chrome/locale/en-US/lang.dtd |  39 +
 .../chrome/locale/en-US/lang.properties       |  13 +
 .../telify/chrome/locale/en-US/locale.js      |  25 +
 .../defaults/preferences/preferences.js       |  18 +
 .../usr/share/telify/install.rdf              |  37 +
 .../mozilla-telify-sflphone/debian/postinst   |  16 +
 .../mozilla-telify-sflphone/debian/rules      |   0
 .../mozilla-telify-sflphone/debian/watch      |   0
 302 files changed, 3607 insertions(+)
 rename tools/{ => build-system/launchpad}/mozilla-telify-sflphone/debian/changelog (100%)
 rename tools/{ => build-system/launchpad}/mozilla-telify-sflphone/debian/compat (100%)
 rename tools/{mozilla-telify-sflphone/debian/control.ubuntu => build-system/launchpad/mozilla-telify-sflphone/debian/control} (100%)
 rename tools/{ => build-system/launchpad}/mozilla-telify-sflphone/debian/control.debian (100%)
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/control.ubuntu
 rename tools/{ => build-system/launchpad}/mozilla-telify-sflphone/debian/copyright (100%)
 rename tools/{ => build-system/launchpad}/mozilla-telify-sflphone/debian/files (100%)
 rename tools/{ => build-system/launchpad}/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.debhelper.log (100%)
 rename tools/{ => build-system/launchpad}/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.install (100%)
 rename tools/{mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links.ubuntu => build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links} (100%)
 rename tools/{ => build-system/launchpad}/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links.debian (100%)
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links.ubuntu
 rename tools/{ => build-system/launchpad}/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.substvars (100%)
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/DEBIAN/control
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/DEBIAN/md5sums
 rename tools/{mozilla-telify-sflphone/debian => build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/DEBIAN}/postinst (100%)
 create mode 100755 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/bin/sflphone-handler
 create mode 120000 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/lib/firefox-addons/extensions/{6c5f349a-ddda-49ad-bdf0-326d3fe1f938}
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/doc/mozilla-telify-sflphone/changelog.gz
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome.manifest
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/ask32.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/browser.xul
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/config.js
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/config.xul
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/country_data.js
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/dialog.css
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/edit22x15.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/editNumber.js
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/editNumber.xul
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/error32.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1-canada.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1242.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1246.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1264.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1268.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1284.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1340.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1345.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1441.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1473.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1649.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1664.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1670.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1671.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1684.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1758.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1767.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1784.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1787.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1809.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1829.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1868.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1869.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1876.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1939.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/20.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/212.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/213.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/216.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/218.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/220.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/221.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/222.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/223.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/224.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/225.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/226.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/227.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/228.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/229.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/230.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/231.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/232.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/233.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/234.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/235.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/236.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/237.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/238.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/239.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/240.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/241.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/242.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/243.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/244.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/245.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/246.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/247.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/248.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/249.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/250.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/251.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/252.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/253.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/254.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/255.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/256.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/257.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/258.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/260.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/261.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/262.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/263.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/264.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/265.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/266.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/267.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/268.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/269.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/27.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/290.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/291.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/297.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/298.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/299.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/30.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/31.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/32.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/33.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/34.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/350.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/351.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/352.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/353.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/354.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/355.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/356.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/357.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/358.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/359.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/36.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/370.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/371.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/372.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/373.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/374.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/37447.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/37497.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/375.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/376.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/377.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/37744.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/378.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/379.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/380.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/381-kosovo.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/381.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/382.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/385.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/386.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/38649.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/387.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/3883.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/389.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/39-vatican.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/39.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/40.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/41.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/420.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/421.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/423.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/43.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/44.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/45.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/46.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/47.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/48.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/49.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/500.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/501.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/502.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/503.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/504.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/505.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/506.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/507.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/508.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/509.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/51.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/52.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/53.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/54.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/55.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/56.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/57.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/58.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/590.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/591.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/592.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/593.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/594.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/595.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/596.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/597.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/598.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/599.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/60.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/61.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/62.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/63.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/64.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/65.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/66.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/670.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/672-norfolk_island.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/672.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/673.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/674.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/675.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/676.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/677.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/678.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/679.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/680.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/681.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/682.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/683.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/685.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/686.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/687.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/688.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/689.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/690.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/691.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/692.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/7-kazakhstan.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/7.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/81.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/82.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/84.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/850.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/852.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/853.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/855.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/856.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/86.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/870.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/871.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/872.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/873.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/874.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/880.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/886.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/90.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/90392.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/91.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/92.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/93.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/94.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/95.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/960.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/961.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/962.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/963.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/964.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/965.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/966.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/967.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/968.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/971.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/972.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/973.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/974.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/975.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/976.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/977.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/98.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/992.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/993.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/994.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/995.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/996.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/998.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/icon18_active.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/icon18_inactive.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/icon32.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/icon96.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/icon_menu.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/info32.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/jshashtable.js
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/messagebox.js
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/messagebox.xul
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/pref.js
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/telify.js
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/util.js
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/warn32.png
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/de-DE/country_locale.js
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/de-DE/custom_preset.js
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/de-DE/lang.dtd
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/de-DE/lang.properties
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/de-DE/locale.js
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/country_locale.js
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/custom_preset.js
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/lang.dtd
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/lang.properties
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/locale.js
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/defaults/preferences/preferences.js
 create mode 100644 tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/install.rdf
 create mode 100755 tools/build-system/launchpad/mozilla-telify-sflphone/debian/postinst
 rename tools/{ => build-system/launchpad}/mozilla-telify-sflphone/debian/rules (100%)
 rename tools/{ => build-system/launchpad}/mozilla-telify-sflphone/debian/watch (100%)

diff --git a/tools/mozilla-telify-sflphone/debian/changelog b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/changelog
similarity index 100%
rename from tools/mozilla-telify-sflphone/debian/changelog
rename to tools/build-system/launchpad/mozilla-telify-sflphone/debian/changelog
diff --git a/tools/mozilla-telify-sflphone/debian/compat b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/compat
similarity index 100%
rename from tools/mozilla-telify-sflphone/debian/compat
rename to tools/build-system/launchpad/mozilla-telify-sflphone/debian/compat
diff --git a/tools/mozilla-telify-sflphone/debian/control.ubuntu b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/control
similarity index 100%
rename from tools/mozilla-telify-sflphone/debian/control.ubuntu
rename to tools/build-system/launchpad/mozilla-telify-sflphone/debian/control
diff --git a/tools/mozilla-telify-sflphone/debian/control.debian b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/control.debian
similarity index 100%
rename from tools/mozilla-telify-sflphone/debian/control.debian
rename to tools/build-system/launchpad/mozilla-telify-sflphone/debian/control.debian
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/control.ubuntu b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/control.ubuntu
new file mode 100644
index 0000000000..01e98ce803
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/control.ubuntu
@@ -0,0 +1,19 @@
+Source: mozilla-telify-sflphone
+Section: web
+Priority: optional
+Maintainer: Julien Bonjean <julien.bonjean@savoirfairelinux.com>
+Uploaders: Julien Bonjean <julien.bonjean@savoirfairelinux.com>
+Build-Depends: debhelper (>= 7), unzip
+Homepage: http://www.sflphone.org
+Standards-Version: 3.8.3
+DM-Upload-Allowed: yes
+
+Package: mozilla-telify-sflphone
+Depends: firefox-gnome-support, sflphone-client-gnome
+Architecture: all
+Description: This package provides telify firefox plugin and handler for SFLphone.
+ Telify recognizes phone numbers on web pages and converts them to clickable links.
+ Additionally, any text can be selected and handled as a phone number (including
+ vanity number conversion) by selecting the corresponding context menu item.
+ http://www.codepad.de/en/software/firefox-add-ons/telify.html
+
diff --git a/tools/mozilla-telify-sflphone/debian/copyright b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/copyright
similarity index 100%
rename from tools/mozilla-telify-sflphone/debian/copyright
rename to tools/build-system/launchpad/mozilla-telify-sflphone/debian/copyright
diff --git a/tools/mozilla-telify-sflphone/debian/files b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/files
similarity index 100%
rename from tools/mozilla-telify-sflphone/debian/files
rename to tools/build-system/launchpad/mozilla-telify-sflphone/debian/files
diff --git a/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.debhelper.log b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.debhelper.log
similarity index 100%
rename from tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.debhelper.log
rename to tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.debhelper.log
diff --git a/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.install b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.install
similarity index 100%
rename from tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.install
rename to tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.install
diff --git a/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links.ubuntu b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links
similarity index 100%
rename from tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links.ubuntu
rename to tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links
diff --git a/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links.debian b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links.debian
similarity index 100%
rename from tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links.debian
rename to tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links.debian
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links.ubuntu b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links.ubuntu
new file mode 100644
index 0000000000..f234168dd0
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.links.ubuntu
@@ -0,0 +1 @@
+usr/share/telify usr/lib/firefox-addons/extensions/{6c5f349a-ddda-49ad-bdf0-326d3fe1f938}
diff --git a/tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.substvars b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.substvars
similarity index 100%
rename from tools/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.substvars
rename to tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone.substvars
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/DEBIAN/control b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/DEBIAN/control
new file mode 100644
index 0000000000..2c8faf4345
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/DEBIAN/control
@@ -0,0 +1,14 @@
+Package: mozilla-telify-sflphone
+Version: 0.4.7.3
+Architecture: all
+Maintainer: Julien Bonjean <julien.bonjean@savoirfairelinux.com>
+Installed-Size: 1296
+Depends: firefox-gnome-support, sflphone-client-gnome
+Section: web
+Priority: optional
+Homepage: http://www.sflphone.org
+Description: This package provides telify firefox plugin and handler for SFLphone.
+ Telify recognizes phone numbers on web pages and converts them to clickable links.
+ Additionally, any text can be selected and handled as a phone number (including
+ vanity number conversion) by selecting the corresponding context menu item.
+ http://www.codepad.de/en/software/firefox-add-ons/telify.html
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/DEBIAN/md5sums b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/DEBIAN/md5sums
new file mode 100644
index 0000000000..20effcb346
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/DEBIAN/md5sums
@@ -0,0 +1,282 @@
+65ce74599376d092487f618de1e986fb  usr/bin/sflphone-handler
+1dfa9e4bdb5667ed2452cb1842598638  usr/share/telify/chrome/content/jshashtable.js
+09146002421216f18e238dc9914df02a  usr/share/telify/chrome/content/icon32.png
+3efa199f5dc17af1806daf44c9c389be  usr/share/telify/chrome/content/icon96.png
+5897f6aab0803b91883a6235223c4c36  usr/share/telify/chrome/content/config.js
+add45890afad2c0a4e7ae2ae7602662a  usr/share/telify/chrome/content/warn32.png
+d070239a3728cafad19bb8aef31739aa  usr/share/telify/chrome/content/messagebox.js
+5624cf500dd7c023075672d3fad866d6  usr/share/telify/chrome/content/config.xul
+f6ea223fbe6e7f85e00e2164546b9bd4  usr/share/telify/chrome/content/messagebox.xul
+e802bc3ff17f1ea2e68ccdb263dea3fd  usr/share/telify/chrome/content/ask32.png
+f4de0420b7dd240b29d42e2af3bbf50c  usr/share/telify/chrome/content/util.js
+1bb2b945ab6f911fd32f9b046bf735b0  usr/share/telify/chrome/content/flag/52.png
+90576da5f20865375ea4719f1310000d  usr/share/telify/chrome/content/flag/212.png
+affd04a67faccde8d9539fb3b5ca0589  usr/share/telify/chrome/content/flag/685.png
+f493cea29615a02b9a917bee58ac3af3  usr/share/telify/chrome/content/flag/228.png
+d27ffb0f000c36985df32eb1b34de31d  usr/share/telify/chrome/content/flag/250.png
+6dd70c9752d8b50ea152f5c3f228312c  usr/share/telify/chrome/content/flag/43.png
+20edbfd5b61a01f2e619f22333635118  usr/share/telify/chrome/content/flag/61.png
+573caf2b526203b5e27614e6cc9a655a  usr/share/telify/chrome/content/flag/261.png
+276bf37cf19ed4fdc5e9e92796b4878d  usr/share/telify/chrome/content/flag/597.png
+31b9f8c69f07fdfe837ea0bd470ce9bd  usr/share/telify/chrome/content/flag/1809.png
+1330db2111f10ec94e67aed37af92109  usr/share/telify/chrome/content/flag/31.png
+22cfbf44cf2bb7559e07e3209c285c42  usr/share/telify/chrome/content/flag/7-kazakhstan.png
+31675a29209b26b05bf2aed571b024c3  usr/share/telify/chrome/content/flag/39-vatican.png
+4a7b9e35f3941cef8f31b7631337b513  usr/share/telify/chrome/content/flag/678.png
+63bfbc37a0bba342ba7d409cba9df880  usr/share/telify/chrome/content/flag/594.png
+f58e02ceba6a9d56b0fdace52f809575  usr/share/telify/chrome/content/flag/56.png
+b684077e750479668a6b5471422aa009  usr/share/telify/chrome/content/flag/682.png
+552223b24a21cfcae7a9dd24ca010ef4  usr/share/telify/chrome/content/flag/244.png
+193393c898442920b2f2e6becf939b57  usr/share/telify/chrome/content/flag/673.png
+fd3a4f77c790e3e0ca7c7a1936924d7c  usr/share/telify/chrome/content/flag/996.png
+bffee9389293cc9516811ca88039bbff  usr/share/telify/chrome/content/flag/65.png
+9323fd337065d66b3407bf19fdee3412  usr/share/telify/chrome/content/flag/1649.png
+0966afaa93eee08c08672c762424654d  usr/share/telify/chrome/content/flag/44.png
+35c688e6e0fbaeede3d71a0d9970c8a9  usr/share/telify/chrome/content/flag/374.png
+572dc608ba807fcfbe4f23083a529da3  usr/share/telify/chrome/content/flag/853.png
+56a19c85de7d530c9b24b906d4ef1d78  usr/share/telify/chrome/content/flag/1284.png
+12d703c057fe3a9d22b960df954259a1  usr/share/telify/chrome/content/flag/55.png
+156d00760316249b723e65c4535f6a3a  usr/share/telify/chrome/content/flag/502.png
+63bfbc37a0bba342ba7d409cba9df880  usr/share/telify/chrome/content/flag/262.png
+b469e92e74363294932063045ba5773b  usr/share/telify/chrome/content/flag/852.png
+b549b2c866e19bbaf05a71b142c8e277  usr/share/telify/chrome/content/flag/222.png
+f0c6ad269ca79fd0a636c0f7e55ecd8f  usr/share/telify/chrome/content/flag/63.png
+9917632bbfeb986871fc2f0a9a0ef323  usr/share/telify/chrome/content/flag/54.png
+cc0ef42fdf091b3cc7d79689f5d90d48  usr/share/telify/chrome/content/flag/873.png
+0edfcb7932381257b781a33fdac17cba  usr/share/telify/chrome/content/flag/37497.png
+e57cb5d9b42417834781028e79c6ad80  usr/share/telify/chrome/content/flag/229.png
+f38d97d28c2db81694c8d23bea8a544e  usr/share/telify/chrome/content/flag/299.png
+b9d35240a94c486c39ae66784cd4bb7c  usr/share/telify/chrome/content/flag/1664.png
+31b9f8c69f07fdfe837ea0bd470ce9bd  usr/share/telify/chrome/content/flag/1829.png
+cc0ef42fdf091b3cc7d79689f5d90d48  usr/share/telify/chrome/content/flag/874.png
+63bfbc37a0bba342ba7d409cba9df880  usr/share/telify/chrome/content/flag/596.png
+cf6d436e35c00502149621c9d2419633  usr/share/telify/chrome/content/flag/1473.png
+cc0ef42fdf091b3cc7d79689f5d90d48  usr/share/telify/chrome/content/flag/871.png
+59feda46a504c73c5de936e6cc463b91  usr/share/telify/chrome/content/flag/598.png
+65637850eca375f5343b51772b2789e3  usr/share/telify/chrome/content/flag/34.png
+63bfbc37a0bba342ba7d409cba9df880  usr/share/telify/chrome/content/flag/508.png
+07be2870ef618a4d3b69d24b3b0523bf  usr/share/telify/chrome/content/flag/92.png
+bd75acef3588961ef3e1d8c1beea2ba1  usr/share/telify/chrome/content/flag/242.png
+9416a0c7d9c580619faec6a6bff30cc9  usr/share/telify/chrome/content/flag/297.png
+465c38736ae791e89917a99467567e44  usr/share/telify/chrome/content/flag/258.png
+06a21021e5dce13dce475beb26697c69  usr/share/telify/chrome/content/flag/992.png
+7efb0536329c0ec081b08f288a175d4c  usr/share/telify/chrome/content/flag/94.png
+ec7c4ad00ede6aebe170377b8b830b3e  usr/share/telify/chrome/content/flag/680.png
+4e6a1e93bcf98acb4a828bedb3b39bc5  usr/share/telify/chrome/content/flag/501.png
+dae53d80a2dde3c0fca76ed93422eeb2  usr/share/telify/chrome/content/flag/223.png
+8b5a3f217aa96af3a0e9c799db2d930b  usr/share/telify/chrome/content/flag/599.png
+88d8c448f7e85ceda0eff805b081fcff  usr/share/telify/chrome/content/flag/420.png
+0fc6b4583f851e874e64a68f2f365e96  usr/share/telify/chrome/content/flag/976.png
+125aac84de4da114aef44a9a4282ac06  usr/share/telify/chrome/content/flag/994.png
+36da0872dac993c2750a5a371903bb6e  usr/share/telify/chrome/content/flag/373.png
+4bef1704acdc80636c68dffee9c01b51  usr/share/telify/chrome/content/flag/265.png
+ace80316bb7bfd2058e4bd8e281f93e3  usr/share/telify/chrome/content/flag/57.png
+a879b03b7cca0d49600c24c7c2f335cc  usr/share/telify/chrome/content/flag/254.png
+f9733cf00793532e858c718c60488bd7  usr/share/telify/chrome/content/flag/49.png
+6350bfec1685c569dcc6d52b5b5096f3  usr/share/telify/chrome/content/flag/30.png
+abddcd041761748a1462bcf509f167ce  usr/share/telify/chrome/content/flag/961.png
+df3279055e7e07f46705c151ffa4b188  usr/share/telify/chrome/content/flag/995.png
+9cf9ac77cf4c6d5504eb5cce3d9aeb4d  usr/share/telify/chrome/content/flag/504.png
+efc6524bcb70ef812b2725032e0b8cb9  usr/share/telify/chrome/content/flag/1787.png
+42c9adf5c32e8574701c582dd970563c  usr/share/telify/chrome/content/flag/220.png
+06a1651c9d58610744de5edb29a60e58  usr/share/telify/chrome/content/flag/993.png
+8f7b466990cbc4b0e6e31269cbc60ea8  usr/share/telify/chrome/content/flag/37744.png
+d3f29ad4504d6360d19ef706f494d7da  usr/share/telify/chrome/content/flag/298.png
+aa57863f7e2c49d33d3a2a0a9fe6da64  usr/share/telify/chrome/content/flag/41.png
+485ad10e06bd25ef65270af20dfc996b  usr/share/telify/chrome/content/flag/84.png
+929bd3c144dbcfc51d7d6836b6363cbe  usr/share/telify/chrome/content/flag/232.png
+3f9c4b8b9f8ee08e4e9f5135cb034657  usr/share/telify/chrome/content/flag/235.png
+0f92d3e3a3e1e547af05567c2510ddf0  usr/share/telify/chrome/content/flag/593.png
+77857f1400221cb796eebbb029a52617  usr/share/telify/chrome/content/flag/500.png
+4304ebdaa34ab1885b1ab8e5a3e45303  usr/share/telify/chrome/content/flag/239.png
+98bbf43c599a38d8eb6b5421fd7bacd0  usr/share/telify/chrome/content/flag/240.png
+b6c5a45e5ce80d2b527d893b279caad8  usr/share/telify/chrome/content/flag/36.png
+b5f4336bf7b5a30061b9eb3be8bdb71e  usr/share/telify/chrome/content/flag/291.png
+94c34b050a9d0860b91a96bddcbd2650  usr/share/telify/chrome/content/flag/850.png
+63bfbc37a0bba342ba7d409cba9df880  usr/share/telify/chrome/content/flag/33.png
+63bfbc37a0bba342ba7d409cba9df880  usr/share/telify/chrome/content/flag/590.png
+0966afaa93eee08c08672c762424654d  usr/share/telify/chrome/content/flag/247.png
+74deccf3b9279029b092b0359088f955  usr/share/telify/chrome/content/flag/1.png
+5c4b81590c1291ed24b6f2e0fb1db51b  usr/share/telify/chrome/content/flag/1868.png
+09aa245b094c7ebd785eb2d6651560b8  usr/share/telify/chrome/content/flag/1340.png
+9fd5fd3d5ec1c59a5de2b2cd4a83d3ba  usr/share/telify/chrome/content/flag/505.png
+f6481f07b520e5494ccf4fd7f2130510  usr/share/telify/chrome/content/flag/40.png
+2abd1722a95d7af6e316f906cde54e6d  usr/share/telify/chrome/content/flag/507.png
+66266f09754869056db176a7a99c999c  usr/share/telify/chrome/content/flag/855.png
+08d8941a6a94447cf6838bde5a2ec48c  usr/share/telify/chrome/content/flag/45.png
+a938868b993bbdc98caf18e1b022f5f8  usr/share/telify/chrome/content/flag/689.png
+92cacebf8596b267f69b7b99bb2f5588  usr/share/telify/chrome/content/flag/974.png
+5672868ef79592374bf990f652607a6e  usr/share/telify/chrome/content/flag/387.png
+8de229a968922437036b9731a376d12e  usr/share/telify/chrome/content/flag/963.png
+1bad50fdbd079efb01c9996dd3db9f39  usr/share/telify/chrome/content/flag/234.png
+258acc3c84ef093985f20f0c4cc3e8bb  usr/share/telify/chrome/content/flag/886.png
+2a555ebb43f963161fa1046442d5bee8  usr/share/telify/chrome/content/flag/385.png
+5b811ac6ef5af15e3a4fd75679814f01  usr/share/telify/chrome/content/flag/253.png
+2748dfe6daeebefc78dc9e7e5261e2a7  usr/share/telify/chrome/content/flag/378.png
+f4b5c9d9e2025a5cfa95652852aa0707  usr/share/telify/chrome/content/flag/688.png
+f2ba52be3d5071a0fbf5ed58df529f14  usr/share/telify/chrome/content/flag/3883.png
+d39cf563c53fd10e3f4e4d95f98b0035  usr/share/telify/chrome/content/flag/375.png
+3bd363fac16b74cb23adbd7704ade65d  usr/share/telify/chrome/content/flag/47.png
+f7f4151604e5860cf696e7409ef173b2  usr/share/telify/chrome/content/flag/880.png
+c964a9a106e3c9b76d3559c2cfcba90d  usr/share/telify/chrome/content/flag/968.png
+addd908670d7012818061979c7bace02  usr/share/telify/chrome/content/flag/221.png
+90226addfca8c9861a770f15e94b78d2  usr/share/telify/chrome/content/flag/354.png
+31675a29209b26b05bf2aed571b024c3  usr/share/telify/chrome/content/flag/379.png
+63bfbc37a0bba342ba7d409cba9df880  usr/share/telify/chrome/content/flag/681.png
+b5208534081b162fe790e854408b6dac  usr/share/telify/chrome/content/flag/51.png
+8f7b466990cbc4b0e6e31269cbc60ea8  usr/share/telify/chrome/content/flag/38649.png
+168dc53ba860577f659345846d59cb45  usr/share/telify/chrome/content/flag/965.png
+6e76764835f5db75d13b2498ba7e3efb  usr/share/telify/chrome/content/flag/260.png
+8678e140cb0965400a842595e8034e6e  usr/share/telify/chrome/content/flag/670.png
+07fcf184129db2d17310bed269bd032f  usr/share/telify/chrome/content/flag/677.png
+e8d950cb0f9b047987cfed72903a61b2  usr/share/telify/chrome/content/flag/82.png
+2530d73e10540607d8c453f10030ccd3  usr/share/telify/chrome/content/flag/243.png
+844f10c7a922da19a99fe6a9b7eb27dd  usr/share/telify/chrome/content/flag/371.png
+0fa3206cde59782c9998153683bff8d3  usr/share/telify/chrome/content/flag/238.png
+26f26cccb7b432d4dde1a1eb394c0ceb  usr/share/telify/chrome/content/flag/231.png
+8bdeaa2a3bc46f876e7dff744fc47659  usr/share/telify/chrome/content/flag/90.png
+0da3d2cf7c99fb9dfe238bfcb4ab11cf  usr/share/telify/chrome/content/flag/251.png
+4f9e0d2c82662f5b9b56acf472610c70  usr/share/telify/chrome/content/flag/998.png
+46019464edfa1be7666087620fe7142b  usr/share/telify/chrome/content/flag/382.png
+eb0d4e938edac3bee751b17ca72849df  usr/share/telify/chrome/content/flag/95.png
+e9cdf4484d0646e09464a28350be4df2  usr/share/telify/chrome/content/flag/263.png
+aa046c5e44c961089dbc6f45d8873122  usr/share/telify/chrome/content/flag/592.png
+45e940da2982616d3cc99822128e6cae  usr/share/telify/chrome/content/flag/267.png
+e4d9d483a531c7a16436b09a8a4cf104  usr/share/telify/chrome/content/flag/20.png
+7e6b762105a6b1679c1abd0280da2f73  usr/share/telify/chrome/content/flag/227.png
+9fd0b3d477d8651a16241d130ee353ad  usr/share/telify/chrome/content/flag/1758.png
+d1e4b9739c6eff4f6beadc8eb4ab8650  usr/share/telify/chrome/content/flag/595.png
+fb0490472ceed9b31b19dbe0a1d8f872  usr/share/telify/chrome/content/flag/236.png
+390bf4371cc50c51c50d1d15d7e63e3f  usr/share/telify/chrome/content/flag/7.png
+bc4f5cc6c03cdd13217d6d32e6425989  usr/share/telify/chrome/content/flag/1246.png
+757c67bf50c916597a5088829140286b  usr/share/telify/chrome/content/flag/1767.png
+f301e493e1c0271865c115a25f3f8680  usr/share/telify/chrome/content/flag/359.png
+278b835433b00b47589b3d7cf28d52a7  usr/share/telify/chrome/content/flag/377.png
+8f7b466990cbc4b0e6e31269cbc60ea8  usr/share/telify/chrome/content/flag/381-kosovo.png
+50185d74128455cb2c16c0903a03ca0d  usr/share/telify/chrome/content/flag/1684.png
+ce84e48ba306877dd6112a8470bfdfb0  usr/share/telify/chrome/content/flag/248.png
+0397fc499dce824e378c758682774440  usr/share/telify/chrome/content/flag/246.png
+9bd332abc26865f07ebae01383b8494d  usr/share/telify/chrome/content/flag/224.png
+464067a945638f51c7d3ee7ed4dda81d  usr/share/telify/chrome/content/flag/370.png
+2c030899839f02c2954cda800e4c41db  usr/share/telify/chrome/content/flag/266.png
+f405c1ae5ff791f8f6c8ff31bfd98e91  usr/share/telify/chrome/content/flag/216.png
+8b5f8aff9a34065f16db660509b6476b  usr/share/telify/chrome/content/flag/1345.png
+a3d9074daaf4b13a1c475469acb1ef40  usr/share/telify/chrome/content/flag/213.png
+9b475b0988eff85c2e6758f3629d3e3a  usr/share/telify/chrome/content/flag/1876.png
+a4d03f19872b3a11d3c8c9f55477caac  usr/share/telify/chrome/content/flag/355.png
+ef1a2c9fc984d6e21c2543bac5d56b89  usr/share/telify/chrome/content/flag/53.png
+7d71f58c22b314c64f304070cd4dcb4f  usr/share/telify/chrome/content/flag/226.png
+87d57818a5ad32dad3c512ebc93a80d6  usr/share/telify/chrome/content/flag/91.png
+33f848b2031ff858cd7db75404640a6b  usr/share/telify/chrome/content/flag/591.png
+0dc574a3de142aecc3e996206371294a  usr/share/telify/chrome/content/flag/225.png
+c72a9c63d4d41272ea672a1c402ee189  usr/share/telify/chrome/content/flag/973.png
+efe435a51af6d9c7e97c7c8a050d6efb  usr/share/telify/chrome/content/flag/1264.png
+0c3c91808881101dff1635101e02aa2b  usr/share/telify/chrome/content/flag/269.png
+4a6d3eee131acf89897c0b24689b82c3  usr/share/telify/chrome/content/flag/503.png
+019ff6b8cd322dfa5663c511d07b0d5d  usr/share/telify/chrome/content/flag/1671.png
+4220598be43707f399cf5b62aec26a4e  usr/share/telify/chrome/content/flag/27.png
+cc0ef42fdf091b3cc7d79689f5d90d48  usr/share/telify/chrome/content/flag/872.png
+94a4f42d77b298471b01e31068a4993c  usr/share/telify/chrome/content/flag/421.png
+6488bf155022194a4b9b419e5b411fdf  usr/share/telify/chrome/content/flag/90392.png
+0edfcb7932381257b781a33fdac17cba  usr/share/telify/chrome/content/flag/37447.png
+abac2bdc6ee86fed6f2a83b0bbc5af1b  usr/share/telify/chrome/content/flag/218.png
+9c120774fad7fae663c0c41e101410e9  usr/share/telify/chrome/content/flag/674.png
+fb53ec0d0245f2e4ebb8361d8ff85f8f  usr/share/telify/chrome/content/flag/690.png
+5dcba80a818cf6b07c5b7ccd0297a65f  usr/share/telify/chrome/content/flag/252.png
+48967bc438e5a7bb69cca0f7732396eb  usr/share/telify/chrome/content/flag/98.png
+03453359634eecec412c8e467f67af76  usr/share/telify/chrome/content/flag/290.png
+1cad1e69d782f42a29a1fcc532daf243  usr/share/telify/chrome/content/flag/48.png
+4628248388e53df337b39730f8aefbfd  usr/share/telify/chrome/content/flag/256.png
+9a758bb3b0392ee2c6d814dbaeea01b4  usr/share/telify/chrome/content/flag/376.png
+53ef3d82ba706db1e5dfdd5b0bf14c81  usr/share/telify/chrome/content/flag/972.png
+acdae2b0851d5fec6c4b16ab884bbd9d  usr/share/telify/chrome/content/flag/86.png
+35a5b51d0e37656c93cca43686c7ce62  usr/share/telify/chrome/content/flag/233.png
+c24a1dc23535660e8f013d7f4b15eba0  usr/share/telify/chrome/content/flag/60.png
+9b0517891ee2538397a7140697bde925  usr/share/telify/chrome/content/flag/241.png
+1f40c7e3f9513ea1a31d5b1efd2adae6  usr/share/telify/chrome/content/flag/249.png
+6a190cf5b40502186d7a335a8e10dcfd  usr/share/telify/chrome/content/flag/64.png
+714928715307e35c9d96f82baa9e5658  usr/share/telify/chrome/content/flag/856.png
+de204480ea7585fa2ab331b7c4b856af  usr/share/telify/chrome/content/flag/257.png
+fd92a03c9c1fbf78fea7e50b1e4085f9  usr/share/telify/chrome/content/flag/353.png
+d9a1931187b34b91d8a0becbfcc8d92d  usr/share/telify/chrome/content/flag/672.png
+8f1c20cc56e3b0388c37fa9f300cdc80  usr/share/telify/chrome/content/flag/356.png
+610a156d74efa1227e732319c0bddcdc  usr/share/telify/chrome/content/flag/692.png
+b44c818df281cad4bf13f54dcf67b151  usr/share/telify/chrome/content/flag/66.png
+0399c70c9efba4caefd028ad5028bc25  usr/share/telify/chrome/content/flag/960.png
+72f33ab0fff112755d90d65fc71042fd  usr/share/telify/chrome/content/flag/423.png
+a99812c389c8a521a9b7495e7d7318d7  usr/share/telify/chrome/content/flag/230.png
+40796e5560f2fa63f523de45bfd20f07  usr/share/telify/chrome/content/flag/964.png
+c5ba8166e7165bef7247b674faafa83a  usr/share/telify/chrome/content/flag/32.png
+44d65230c16730cc9b74ab0cf0f3a31d  usr/share/telify/chrome/content/flag/962.png
+328daac04aee3d4a868673667b29f561  usr/share/telify/chrome/content/flag/1268.png
+a9123178222f6940496eeed41e4f7932  usr/share/telify/chrome/content/flag/245.png
+7dd4f0a5d9fc3201cb03f90c5b9dd98d  usr/share/telify/chrome/content/flag/509.png
+5ac9bbaab7ef6edaf285a92655ad3100  usr/share/telify/chrome/content/flag/372.png
+0215b1c78f1983ff93d4a71d994429b3  usr/share/telify/chrome/content/flag/967.png
+bc2b7b1fea6191cadfe5563c4ec4f482  usr/share/telify/chrome/content/flag/1670.png
+ad5a8bf6203aaa390432c164b7f98097  usr/share/telify/chrome/content/flag/1784.png
+6cda8970ef0d1ac14ebda52fe7be9d50  usr/share/telify/chrome/content/flag/352.png
+cf9a0a8e33c14011ca720d5c4308d145  usr/share/telify/chrome/content/flag/386.png
+722cb977a10c1a2a8412fc5ee87d4fc4  usr/share/telify/chrome/content/flag/675.png
+0641850973fa5605d26add1e6c859da4  usr/share/telify/chrome/content/flag/676.png
+2e017a5dd612390255848dca5afb330d  usr/share/telify/chrome/content/flag/255.png
+01d51ff805bef4ce44d75fbbd93b28d9  usr/share/telify/chrome/content/flag/966.png
+e81fd902853e1d3abfc59a8aa1ae6832  usr/share/telify/chrome/content/flag/1242.png
+a71af7b8b48922f614b499239c8a51b8  usr/share/telify/chrome/content/flag/977.png
+bea37d045f7026995838fcfc8b9b45ca  usr/share/telify/chrome/content/flag/268.png
+b24fbefbb7e51f8c68c3df2c74891878  usr/share/telify/chrome/content/flag/62.png
+0c50a0a1bf667ae3271ffff33e2b9372  usr/share/telify/chrome/content/flag/380.png
+8c0085810a9528c2bf6e3f5b6e43e281  usr/share/telify/chrome/content/flag/672-norfolk_island.png
+b4e46a8d8576a1a717f8e1f2c5de85a9  usr/share/telify/chrome/content/flag/350.png
+d45dfb7a968e89b66db04ddf446ffe09  usr/share/telify/chrome/content/flag/1869.png
+8f797a746ef2192e4cfa5fb7fb1fb272  usr/share/telify/chrome/content/flag/58.png
+949942100b8504bc91da99d9c237633b  usr/share/telify/chrome/content/flag/683.png
+cd560dd865ccea58212db45956248115  usr/share/telify/chrome/content/flag/975.png
+3275d2a698a6fc4497c3628d681b5d12  usr/share/telify/chrome/content/flag/358.png
+61c1ecffc039239ee6411394921aa241  usr/share/telify/chrome/content/flag/506.png
+4a89ee4cf5fe72c332e90527e12c07cf  usr/share/telify/chrome/content/flag/93.png
+458b2d7875fc143704f636e7454e598d  usr/share/telify/chrome/content/flag/971.png
+111a19121adf21f6010aa43992cd5675  usr/share/telify/chrome/content/flag/389.png
+63bfbc37a0bba342ba7d409cba9df880  usr/share/telify/chrome/content/flag/687.png
+2d2714d2e0de8465ac12d65a5e52d82d  usr/share/telify/chrome/content/flag/381.png
+af283fcaf3f288709548bae1c4750031  usr/share/telify/chrome/content/flag/264.png
+91c372b5e4167ab59eb858e442a8f91f  usr/share/telify/chrome/content/flag/679.png
+449f5fa5b87314615a7ea3aa501a78fd  usr/share/telify/chrome/content/flag/691.png
+a63f50a8081b441b48989267a6fb329c  usr/share/telify/chrome/content/flag/39.png
+bf17a973466b976ddefdcdf52503e6fa  usr/share/telify/chrome/content/flag/46.png
+efc6524bcb70ef812b2725032e0b8cb9  usr/share/telify/chrome/content/flag/1939.png
+4b30c9135a576a61668ce14129c60ac7  usr/share/telify/chrome/content/flag/81.png
+ec10eee9610f5ac6bc74311ae481fad7  usr/share/telify/chrome/content/flag/1441.png
+300e025eca7079783221fcd86ea1942a  usr/share/telify/chrome/content/flag/237.png
+c9088d972106719cce7c9a226f2b1667  usr/share/telify/chrome/content/flag/1-canada.png
+a676e93449fc74703d5f12636593b699  usr/share/telify/chrome/content/flag/686.png
+63faf9dbefe527ed55e0d9170fb5fba2  usr/share/telify/chrome/content/flag/357.png
+219a52448b0df4e66905086301b03b10  usr/share/telify/chrome/content/flag/351.png
+cc0ef42fdf091b3cc7d79689f5d90d48  usr/share/telify/chrome/content/flag/870.png
+dd8c6aa4b172928bc49969b80a0926a3  usr/share/telify/chrome/content/editNumber.js
+8b49826c5b4ebfbb95c513be63a79b41  usr/share/telify/chrome/content/pref.js
+cacb7d13f9781f1d71b6338f62df55e0  usr/share/telify/chrome/content/edit22x15.png
+4d0fec589b212e8fd004abe97cae9884  usr/share/telify/chrome/content/telify.js
+380345f5e1888667b412a9cc6d622ffb  usr/share/telify/chrome/content/dialog.css
+0c48e0a5c919244e39da008905bf3704  usr/share/telify/chrome/content/info32.png
+b1b6854306f4547a0f17fa88e5bbfc2a  usr/share/telify/chrome/content/browser.xul
+b59d8264612fa19986333ce3f20c978a  usr/share/telify/chrome/content/editNumber.xul
+259e7299cf9c56c466e62b6d2e7a09be  usr/share/telify/chrome/content/icon18_active.png
+df8e1ad83cb3ee6cfb8073be99c9334d  usr/share/telify/chrome/content/country_data.js
+d11c921428d126525024f0269c289366  usr/share/telify/chrome/content/icon18_inactive.png
+961bc17c9aab761902b5e755424c50f0  usr/share/telify/chrome/content/icon_menu.png
+c192d0d65c0ee5093a9f520cbb203cde  usr/share/telify/chrome/content/error32.png
+081a39ee35f6fd034d47a52d18161e38  usr/share/telify/chrome/locale/en-US/custom_preset.js
+f93c88f9730ab952c1607f01284c953b  usr/share/telify/chrome/locale/en-US/lang.dtd
+b05b084a52248112936f234f70afa445  usr/share/telify/chrome/locale/en-US/country_locale.js
+d0568dafab9a1206113235173cc58c85  usr/share/telify/chrome/locale/en-US/lang.properties
+878ffe167a481f93b26302871868618a  usr/share/telify/chrome/locale/en-US/locale.js
+24604d65d67874073ad9b3df7060e221  usr/share/telify/chrome/locale/de-DE/custom_preset.js
+8ea28f7144c3da1b13824c751ed045d7  usr/share/telify/chrome/locale/de-DE/lang.dtd
+ded79ce41ea89b117534c1af4e95d5b5  usr/share/telify/chrome/locale/de-DE/country_locale.js
+f8c99d4e0ea6514f2d4f6ad71db85ae2  usr/share/telify/chrome/locale/de-DE/lang.properties
+816dac9e3dc748bc9f7e6a46dd57e029  usr/share/telify/chrome/locale/de-DE/locale.js
+4200a5c7a588e6aadbd6d56dc0f72ee7  usr/share/telify/defaults/preferences/preferences.js
+8bed4b9918d4f36b8c3db1f0322e31bf  usr/share/telify/chrome.manifest
+7a164502d511ecbe38c3ad860e833579  usr/share/telify/install.rdf
+a5a82bcdce14f9439cad46169b5bc354  usr/share/doc/mozilla-telify-sflphone/changelog.gz
diff --git a/tools/mozilla-telify-sflphone/debian/postinst b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/DEBIAN/postinst
similarity index 100%
rename from tools/mozilla-telify-sflphone/debian/postinst
rename to tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/DEBIAN/postinst
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/bin/sflphone-handler b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/bin/sflphone-handler
new file mode 100755
index 0000000000..727ef0f93c
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/bin/sflphone-handler
@@ -0,0 +1,52 @@
+#!/bin/sh
+#
+# This script can be used as a callto: (or other) protocol handler in
+# Mozilla Firefox-based browser.
+# In Firefox use Preferences > Applications and set the callto handler
+# to this script.
+
+# The sflphone daemon config file
+RESFILE=~/.config/sflphone/sflphonedrc
+
+# Parse sflphonedrc and get default account id string
+if [ -f "$RESFILE" ]; then
+
+	# Use first ID
+	ACCOUNTID=`grep Accounts.order $RESFILE | sed -e 's/Accounts.order=//' -e 's/\/.*//'`
+
+	# Accounts.order is not set
+	if [ -z $ACCOUNTID ]; then
+
+		# Use first account declared in sflphone config
+		ACCOUNTID="`grep -m 1 Account: $RESFILE | sed -e 's/\[//' -e 's/\]//'`"
+   	fi 
+
+else
+    echo Fatal: Cant find sflphonedrc config file.
+    exit 1
+fi
+
+# Check 1st argument (phone number)
+if [ -z $1 ]; then
+    echo "Error: argument 1 (phone number) not provided."
+    exit 1
+fi
+
+# Cleanup destination, keeping numbers only 
+TO="`echo $1 | sed -e 's/[^0123456789]//g'`"
+
+# Generate call id.
+CALLID=${RANDOM}$$  
+
+dbus-send                                           \
+    --type="method_call"                            \
+    --dest="org.sflphone.SFLphone"                  \
+    "/org/sflphone/SFLphone/CallManager"            \
+    "org.sflphone.SFLphone.CallManager.placeCall"   \
+    string:"$ACCOUNTID"                             \
+    string:"$CALLID"                                \
+    string:"$TO"
+
+exit 0
+
+# EOF
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/lib/firefox-addons/extensions/{6c5f349a-ddda-49ad-bdf0-326d3fe1f938} b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/lib/firefox-addons/extensions/{6c5f349a-ddda-49ad-bdf0-326d3fe1f938}
new file mode 120000
index 0000000000..7d660382bd
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/lib/firefox-addons/extensions/{6c5f349a-ddda-49ad-bdf0-326d3fe1f938}
@@ -0,0 +1 @@
+../../../share/telify
\ No newline at end of file
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/doc/mozilla-telify-sflphone/changelog.gz b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/doc/mozilla-telify-sflphone/changelog.gz
new file mode 100644
index 0000000000000000000000000000000000000000..186ab5d35fe47e1e0590fbfa544a38e8604cbdfd
GIT binary patch
literal 175
zcmb2|=3oE;Cg#{aYyKt!5x4TXqq4PIHMtBQC?7j`@Zb*V_DeAvBJz9}YW%B`zB^~%
z9Q|~Q-rDSBmDd+u6eZ+l%9(p}C?6Ew_oUmfBFj2bBBrribdr?WF}uYa518EZO@!X)
zUe(}S_i)aE$W^=72uyLlnd$AA`X)a1di=Aa{pD-ltSwu5MXzK+ePQZs-2(?-N}gez
elOykzB9LAw^*oa)Sdd$=mZ577|J{8I3=9BrrAbo&

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome.manifest b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome.manifest
new file mode 100644
index 0000000000..bc9507c881
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome.manifest
@@ -0,0 +1,5 @@
+content	telify	chrome/content/
+locale	telify	en-US	chrome/locale/en-US/
+locale	telify	de-DE	chrome/locale/de-DE/
+
+overlay	chrome://browser/content/browser.xul	chrome://telify/content/browser.xul
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/ask32.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/ask32.png
new file mode 100644
index 0000000000000000000000000000000000000000..d56ba2c2449cb156979af2896e82be831f258d93
GIT binary patch
literal 2671
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/browser.xul b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/browser.xul
new file mode 100644
index 0000000000..68f72fbff7
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/browser.xul
@@ -0,0 +1,87 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
+<?xml-stylesheet href="chrome://telify/content/dialog.css" type="text/css"?>
+
+<!DOCTYPE overlay SYSTEM "chrome://telify/locale/lang.dtd">
+<overlay xmlns='http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul'>
+
+	<stringbundleset id="stringbundleset">
+		<stringbundle id="idTelifyStringBundle" src="chrome://telify/locale/lang.properties"/>
+	</stringbundleset>
+
+	<script type='application/x-javascript' src='chrome://telify/content/jshashtable.js'></script>
+	<script type='application/x-javascript' src='chrome://telify/content/util.js'></script>
+	<script type='application/x-javascript' src='chrome://telify/content/pref.js'></script>
+	<script type='application/x-javascript' src='chrome://telify/locale/country_locale.js'></script>
+	<script type='application/x-javascript' src='chrome://telify/content/country_data.js'></script>
+	<script type='application/x-javascript' src='chrome://telify/locale/locale.js'></script>
+	<script type='application/x-javascript' src='chrome://telify/content/telify.js'></script>
+
+	<statusbar id="status-bar">
+		<statusbarpanel id="idTelify_status" collapsed="true">
+			<popup id="idTelify_status_popup" onpopupshowing="objTelify.modifyPopup(event)">
+				<menuitem id="idTelify_status_activity" oncommand="objTelify.toggleActive()" />
+				<menuitem id="idTelify_status_blacklist" oncommand="objTelify.toggleBlacklist()" />
+			</popup>
+			<hbox id="idTelify_statusicon" context="idTelify_status_popup" class="statusbarpanel-menu-iconic" src="chrome://telify/content/icon18_active.png" />
+		</statusbarpanel>
+	</statusbar>
+
+	<menupopup id="contentAreaContextMenu">
+		<menu id="idTelify_menu_context" label="&menu.selection;" collapsed="true" insertbefore="context-sep-stop" 
+			class="menu-iconic" image="chrome://telify/content/icon_menu.png">
+			<menupopup id="idTelify_popup_context">
+				<menuitem id="idTelify_context" class="menuitem-iconic"/>
+				<menuseparator id="idTelify_sep_context"/>
+				<menuitem id="idTelify_tld_context" class="menuitem-iconic"/>
+				<menuitem id="idTelify_context0" class="menuitem-iconic"/>
+				<menuitem id="idTelify_context1" class="menuitem-iconic"/>
+				<menuitem id="idTelify_context2" class="menuitem-iconic"/>
+				<menuitem id="idTelify_context3" class="menuitem-iconic"/>
+				<menuitem id="idTelify_context4" class="menuitem-iconic"/>
+				<menuitem id="idTelify_context5" class="menuitem-iconic"/>
+				<menuitem id="idTelify_context6" class="menuitem-iconic"/>
+				<menuitem id="idTelify_context7" class="menuitem-iconic"/>
+				<menuitem id="idTelify_context8" class="menuitem-iconic"/>
+				<menuitem id="idTelify_context9" class="menuitem-iconic"/>
+				<menuseparator />
+				<menuitem id="idTelify_edit_context" class="menuitem-iconic" label="&menu.edit_number;" image="chrome://telify/content/edit22x15.png"/>
+			</menupopup>
+		</menu>
+	</menupopup>
+
+	<popupset>
+	<menupopup id="idTelify_popup_dial">
+		<menuitem id="idTelify_dial" class="menuitem-iconic"/>
+		<menuseparator id="idTelify_sep_dial"/>
+		<menuitem id="idTelify_tld_dial" class="menuitem-iconic"/>
+		<menuitem id="idTelify_dial0" class="menuitem-iconic"/>
+		<menuitem id="idTelify_dial1" class="menuitem-iconic"/>
+		<menuitem id="idTelify_dial2" class="menuitem-iconic"/>
+		<menuitem id="idTelify_dial3" class="menuitem-iconic"/>
+		<menuitem id="idTelify_dial4" class="menuitem-iconic"/>
+		<menuitem id="idTelify_dial5" class="menuitem-iconic"/>
+		<menuitem id="idTelify_dial6" class="menuitem-iconic"/>
+		<menuitem id="idTelify_dial7" class="menuitem-iconic"/>
+		<menuitem id="idTelify_dial8" class="menuitem-iconic"/>
+		<menuitem id="idTelify_dial9" class="menuitem-iconic"/>
+		<menuseparator />
+		<menuitem id="idTelify_edit_dial" class="menuitem-iconic" label="&menu.edit_number;" image="chrome://telify/content/edit22x15.png"/>
+	</menupopup>
+	</popupset>
+
+	<menupopup id="menu_ToolsPopup">
+		<menu id="idTelify_menu" label="Telify" insertafter="devToolsSeparator">
+			<menupopup onpopupshowing="objTelify.modifyPopup(event)">
+				<menuitem id="idTelify_menu_activity" oncommand="objTelify.toggleActive()"/>
+				<menuitem id="idTelify_menu_blacklist" oncommand="objTelify.toggleBlacklist()"/>
+				<menuseparator />
+				<menuitem id="idTelify_menu_config" label="&menu.onlinehelp;" oncommand="objTelifyLocale.openOnlineHelp()"/>
+				<menuseparator />
+				<menuitem id="idTelify_menu_config" label="&menu.config;" oncommand="objTelifyPrefs.showConfigDialog()"/>
+			</menupopup>
+		</menu>
+	</menupopup>
+
+</overlay>
+
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/config.js b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/config.js
new file mode 100644
index 0000000000..25e529121a
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/config.js
@@ -0,0 +1,196 @@
+/*
+Creative Commons License: Attribution-No Derivative Works 3.0 Unported
+http://creativecommons.org/licenses/by-nd/3.0/
+(c)2009 Michael Koch
+*/
+
+var objTelifyConfig = {
+
+tmplIndex: 0,
+customLabelDefault: "",
+
+setConfigValues: function()
+{
+	objTelifyPrefs.telPrefs.setCharPref(objTelifyPrefs.PREF_IDD_PREFIX, document.getElementById("idTelifyPref_idd_prefix").value);
+	objTelifyPrefs.telPrefs.setIntPref(objTelifyPrefs.PREF_HREFTYPE, document.getElementById("idTelifyPref_hreftype").value);
+	objTelifyPrefs.telPrefs.setIntPref(objTelifyPrefs.PREF_HIGHLIGHT, document.getElementById("idTelifyPref_highlight").value);
+	objTelifyPrefs.telPrefs.setIntPref(objTelifyPrefs.PREF_NUMHISTORY, document.getElementById("idTelifyPref_num_history").value);
+	objTelifyPrefs.telPrefs.setBoolPref(objTelifyPrefs.PREF_STATUSICON, document.getElementById("idTelifyPref_statusicon").value == 1);
+	objTelifyPrefs.telPrefs.setBoolPref(objTelifyPrefs.PREF_DIAL_CC_DIRECT, document.getElementById("idTelifyPref_dialcc").value == 1);
+
+	objTelifyPrefs.telPrefs.setCharPref(objTelifyPrefs.PREF_CUSTOM_URL, document.getElementById("idTelifyPref_url_input").value);
+	objTelifyPrefs.telPrefs.setIntPref(objTelifyPrefs.PREF_CUSTOM_TMPL, this.tmplIndex);
+	for (var i=1; i<objTelifyPrefs.NUM_CUSTOM_PARAMS+1; i++) {
+		objTelifyPrefs.telPrefs.setCharPref(objTelifyPrefs.PREF_CUSTOM_PARAM+i, document.getElementById("idTelifyPref_param"+i+"_value").value);
+	}
+	objTelifyPrefs.telPrefs.setIntPref(objTelifyPrefs.PREF_CUSTOM_OPENTYPE, document.getElementById("idTelifyPref_opentype").value);
+},
+
+onAccept: function()
+{
+	this.setConfigValues();
+	return true;
+},
+
+onHelp: function()
+{
+	objTelifyLocale.openOnlineHelp();
+	return true;
+},
+
+initConfig: function()
+{
+	objTelifyPrefs.initTelifyPrefs();
+	document.getElementById("idTelifyPref_idd_prefix").value = objTelifyPrefs.idd_prefix;
+	document.getElementById("idTelifyPref_hreftype").value = objTelifyPrefs.hrefType;
+	this.hrefTypeChanged(objTelifyPrefs.hrefType);
+	document.getElementById("idTelifyPref_highlight").value = objTelifyPrefs.highlight;
+	document.getElementById("idTelifyPref_num_history").value = objTelifyPrefs.numHistory;
+	document.getElementById("idTelifyPref_statusicon").value = (objTelifyPrefs.fStatusIcon ? 1 : 0);
+	document.getElementById("idTelifyPref_dialcc").value = (objTelifyPrefs.fDialCCDirect ? 1 : 0);
+
+	document.getElementById("idTelifyPref_url_input").value = objTelifyPrefs.custom_url;
+	this.tmplIndex = objTelifyPrefs.custom_tmpl;
+	for (var i=1; i<objTelifyPrefs.NUM_CUSTOM_PARAMS+1; i++) {
+		document.getElementById("idTelifyPref_param"+i+"_value").value = objTelifyPrefs.custom_param[i];
+	}
+	document.getElementById("idTelifyPref_opentype").value = objTelifyPrefs.custom_opentype;
+
+	this.customLabelDefault = document.getElementById("idTelifyPref_custom_caption").label
+
+	var popup = document.getElementById("idTelifyPref_url_popup");
+	for (var i=0; i<telify_custom_preset.length; i++) {
+		var item = document.createElement("menuitem");
+		item.setAttribute("label", telify_custom_preset[i][0]);
+		popup.appendChild(item);
+	}
+
+	this.setTemplate(this.tmplIndex, true);
+
+	document.getElementById("idTelifyPref_version_label").value = "Telify v"+objTelifyUtil.getAddonVersion();
+},
+
+getTemplateParam: function(nr)
+{
+	if (nr == 0) return objTelifyPrefs.telStrings.getString("phonenr_tmpl");
+	var param = document.getElementById("idTelifyPref_param"+nr+"_value").value;
+	var label = document.getElementById("idTelifyPref_param"+nr+"_caption").value;
+	if (label.value == "") param = "";
+	return param;
+},
+
+createResultDOM: function(node)
+{
+	if (node == null) return 0; // safety
+	if (node.nodeType == Node.TEXT_NODE) {
+		var text = node.data;
+		var len = text.length;
+		var escape = 0;
+		for (var i=0; i<len-1; i++) {
+			if (escape == 1) {escape = 0; continue;}
+			var c = text.charAt(i);
+			if (c == '\\') {escape = 1; continue}
+			if (c != '$') continue;
+			c = text.charAt(i+1);
+			var nr = "0123456789".indexOf(c);
+			if (nr < 0 || nr > objTelifyPrefs.NUM_CUSTOM_PARAMS) continue;
+			var prev_node = document.createTextNode(text.substr(0, i));
+			var next_node = document.createTextNode(text.substr(i+2));
+			var hilite_node = document.createElement("span");
+			hilite_node.setAttribute("class", (nr == 0 ? "tmpl_number" : "tmpl_param"));
+			var param_node = document.createTextNode(this.getTemplateParam(nr));
+			hilite_node.appendChild(param_node);
+			var parentNode = node.parentNode;
+			parentNode.replaceChild(next_node, node);
+			parentNode.insertBefore(hilite_node, next_node);
+			parentNode.insertBefore(prev_node, hilite_node);
+			break;
+		}
+	} else {
+		for (var i=0; i<node.childNodes.length; i++) {
+			this.createResultDOM(node.childNodes[i]);
+		}
+	}
+},
+
+urlChanged: function()
+{
+	var url = document.getElementById("idTelifyPref_url_input").value;
+	var result = document.getElementById("idTelifyPref_url_result");
+	while (result.childNodes[0]) result.removeChild(result.childNodes[0]);
+	if (url == "") {
+		var item = document.createElement("span");
+		var empty_url = objTelifyPrefs.telStrings.getString("empty_url")
+		item.appendChild(document.createTextNode(empty_url));
+		item.setAttribute("class", "tmpl_empty");
+		result.appendChild(item);
+	} else {
+		var item = document.createTextNode(url);
+		result.appendChild(item);
+		this.createResultDOM(result);
+	}
+},
+
+setTemplate: function(nr, init)
+{
+	var caption =	document.getElementById("idTelifyPref_custom_caption");
+	caption.label = this.customLabelDefault;
+	if (telify_custom_preset[nr][0].length) caption.label += " ("+telify_custom_preset[nr][0]+")";
+	if (!init) document.getElementById("idTelifyPref_url_input").value = telify_custom_preset[nr][1];
+	for (var j=0; j<objTelifyPrefs.NUM_CUSTOM_PARAMS; j++) {
+		var label = document.getElementById("idTelifyPref_param"+(j+1)+"_caption");
+		var param = document.getElementById("idTelifyPref_param"+(j+1)+"_value");
+		var row = document.getElementById("idTelifyPref_param"+(j+1)+"_row");
+		label.value = telify_custom_preset[nr][2+j];
+		if (label.value != "") label.value += ":";
+		if (label.value == "") param.setAttribute("disabled", true); else param.removeAttribute("disabled");
+	}
+	this.urlChanged();
+},
+
+tmplChanged: function()
+{
+	var obj = document.getElementById("idTelifyPref_url_input");
+	for (var i=0; i<telify_custom_preset.length; i++) {
+		if (obj.value == telify_custom_preset[i][0]) {
+			this.tmplIndex = i;
+			this.setTemplate(i, false);
+			break;
+		}
+	}
+},
+
+paramChanged: function(nr, value)
+{
+	this.urlChanged();
+},
+
+enableDOMTree: function(node, enable)
+{
+	if (node == null) return;
+	if (enable) {
+		if (node.removeAttribute) node.removeAttribute("disabled");
+	} else {
+		if (node.setAttribute) node.setAttribute("disabled", true);
+	}
+	for (var i=0; i<node.childNodes.length; i++) {
+		this.enableDOMTree(node.childNodes[i], enable);
+	}
+},
+
+hrefTypeChanged: function(nr)
+{
+	var group = document.getElementById("idTelifyPref_custom_group");
+	if (nr == objTelifyPrefs.HREFTYPE_CUSTOM) {
+		group.removeAttribute("collapsed");
+		window.sizeToContent();
+	} else {
+		//alert(group.clientHeight);
+		group.setAttribute("collapsed", true);
+		//window.resizeTo(500, 500);
+		window.resizeBy(0, -200);
+		window.sizeToContent();
+	}
+}
+
+};
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/config.xul b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/config.xul
new file mode 100644
index 0000000000..967d4db722
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/config.xul
@@ -0,0 +1,180 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
+<?xml-stylesheet href="chrome://telify/content/dialog.css" type="text/css"?>
+
+<!DOCTYPE dialog SYSTEM "chrome://telify/locale/lang.dtd">
+
+<dialog id="dlgTelifyConfig"
+	xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+	buttons="accept,cancel,help"
+	onload="objTelifyConfig.initConfig()"
+	ondialogaccept="objTelifyConfig.onAccept()"
+	ondialogcancel=""
+	ondialoghelp="objTelifyConfig.onHelp()"
+	title="&dialog.config.title;">
+
+	<stringbundleset id="stringbundleset">
+		<stringbundle id="idTelifyStringBundle" src="chrome://telify/locale/lang.properties"/>
+	</stringbundleset>
+
+	<script type='application/x-javascript' src='chrome://telify/content/util.js'></script>
+	<script type='application/x-javascript' src='chrome://telify/content/pref.js'></script>
+	<script type='application/x-javascript' src='chrome://telify/content/config.js'></script>
+	<script type='application/x-javascript' src='chrome://telify/locale/locale.js'></script>
+	<script type='application/x-javascript' src='chrome://telify/locale/custom_preset.js'></script>
+	
+	<hbox>
+
+		<groupbox style="padding-bottom:8px;">
+		<caption label="&dialog.config.general;"/>
+			<grid>
+				<columns>
+					<column flex="1"/>
+					<column flex="2"/>
+				</columns>
+				<rows>
+					<row align="center">
+						<label value="&dialog.config.hreftype;:"/>
+						<menulist id="idTelifyPref_hreftype" onselect="objTelifyConfig.hrefTypeChanged(this.value)">
+							<menupopup>
+								<menuitem label="&dialog.config.hreftype0;" value="0"/>
+								<menuitem label="&dialog.config.hreftype1;" value="1"/>
+								<menuitem label="&dialog.config.hreftype2;" value="2"/>
+								<menuitem label="&dialog.config.hreftype3;" value="3"/>
+								<menuitem label="&dialog.config.hreftype_custom;" value="9"/>
+							</menupopup>
+						</menulist>
+					</row>
+
+					<row align="center">
+						<label value="&dialog.config.dialcc;:"/>
+						<menulist id="idTelifyPref_dialcc">
+							<menupopup>
+								<menuitem label="&dialog.config.dialcc_menu;" value="0"/>
+								<menuitem label="&dialog.config.dialcc_direct;" value="1"/>
+							</menupopup>
+						</menulist>
+					</row>
+
+					<row align="center">
+						<label value="&dialog.config.highlight;:"/>
+						<menulist id="idTelifyPref_highlight">
+							<menupopup>
+								<menuitem label="&dialog.config.highlight0;" value="0"/>
+								<menuitem label="&dialog.config.highlight1;" value="25"/>
+								<menuitem label="&dialog.config.highlight2;" value="50"/>
+								<menuitem label="&dialog.config.highlight3;" value="100"/>
+							</menupopup>
+						</menulist>
+					</row>
+					<row align="center">
+						<label value="&dialog.config.num_history;:"/>
+						<menulist id="idTelifyPref_num_history">
+							<menupopup>
+								<menuitem label="3" value="3"/>
+								<menuitem label="4" value="4"/>
+								<menuitem label="5" value="5"/>
+								<menuitem label="6" value="6"/>
+								<menuitem label="7" value="7"/>
+								<menuitem label="8" value="8"/>
+								<menuitem label="9" value="9"/>
+								<menuitem label="10" value="10"/>
+							</menupopup>
+						</menulist>
+					</row>
+					<row align="center">
+						<label value="&dialog.config.statusicon;:"/>
+						<menulist id="idTelifyPref_statusicon">
+							<menupopup>
+								<menuitem label="&dialog.config.statusicon0;" value="0" />
+								<menuitem label="&dialog.config.statusicon1;" value="1" />
+							</menupopup>
+						</menulist>
+					</row>
+					<row align="center">
+						<label value="&dialog.config.idd_prefix;"/>
+						<menulist id="idTelifyPref_idd_prefix" editable="true">
+							<menupopup>
+								<menuitem label="" value=""/>
+								<menuitem label="00" value="00"/>
+								<menuitem label="001" value="001"/>
+								<menuitem label="011" value="011"/>
+								<menuitem label="0011" value="0011"/>
+							</menupopup>
+						</menulist>
+					</row>
+				</rows>
+			</grid>
+		</groupbox>
+
+		<groupbox style="padding-bottom:8px;">
+		<caption label="&dialog.config.about;"/>
+			<vbox style="width:96px;">
+				<spacer style="height:0px;"/>
+				<hbox>
+					<image src="chrome://telify/content/icon96.png" style="width:96px;height:96px;margin-left:0px;"/>
+					<spacer/>
+				</hbox>
+				<spacer style="height:4px;"/>
+				<label id="idTelifyPref_version_label" value="" style="font-weight:bold;"/>
+				<label value="www.codepad.de" href="http://www.codepad.de" class="text-link"/>
+				<spacer flex="1"/>
+			</vbox>
+		</groupbox>
+
+	</hbox>
+	
+	<groupbox id="idTelifyPref_custom_group" style="padding-bottom:8px;">
+	<caption id="idTelifyPref_custom_caption" label="&dialog.config.custom;"/>
+	<vbox>
+		<description id="idTelifyPref_url_result" class="urlresult">
+		</description>
+
+		<menulist id="idTelifyPref_url_input" editable="true"
+			oninput="objTelifyConfig.urlChanged(this.value)" onselect="objTelifyConfig.tmplChanged(this.value)">
+			<menupopup id="idTelifyPref_url_popup">
+			</menupopup>
+		</menulist>
+
+		<grid>
+			<columns>
+				<column flex="0"/>
+				<column flex="2"/>
+				<column flex="3"/>
+			</columns>
+			<rows>
+				<row align="center" id="idTelifyPref_param1_row" style="margin-top:4px;">
+					<label id="idTelifyPref_param1_caption"/>
+					<textbox id="idTelifyPref_param1_value" emptytext="&dialog.config.replaces; $1 &dialog.config.in_template;" 
+						oninput="objTelifyConfig.paramChanged(1, this.value)"/>
+					<spacer flex="2"/>
+				</row>
+				<row align="center" id="idTelifyPref_param2_row">
+					<label id="idTelifyPref_param2_caption"/>
+					<textbox id="idTelifyPref_param2_value" emptytext="&dialog.config.replaces; $2 &dialog.config.in_template;" 
+						oninput="objTelifyConfig.paramChanged(2, this.value)"/>
+				</row>
+				<row align="center" id="idTelifyPref_param3_row">
+					<label id="idTelifyPref_param3_caption"/>
+					<textbox id="idTelifyPref_param3_value" emptytext="&dialog.config.replaces; $3 &dialog.config.in_template;" 
+						oninput="objTelifyConfig.paramChanged(3, this.value)"/>
+				</row>
+				<row align="center" style="margin-top:4px;">
+					<label value="&dialog.config.opentype;:"/>
+					<menulist id="idTelifyPref_opentype">
+						<menupopup>
+							<menuitem label="&dialog.config.opentype0;" value="0"/>
+							<menuitem label="&dialog.config.opentype1;" value="1"/>
+							<menuitem label="&dialog.config.opentype2;" value="2"/>
+							<menuitem label="&dialog.config.opentype3;" value="3"/>
+						</menupopup>
+					</menulist>
+				</row>
+			</rows>
+		</grid>
+
+		
+	</vbox>
+	</groupbox>
+	
+</dialog>
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/country_data.js b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/country_data.js
new file mode 100644
index 0000000000..63acf6089a
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/country_data.js
@@ -0,0 +1,258 @@
+/*
+Creative Commons License: Attribution-No Derivative Works 3.0 Unported
+http://creativecommons.org/licenses/by-nd/3.0/
+(c)2009 Michael Koch
+*/
+// must be saved as UTF-8
+var telify_country_data = [
+["", "", "", ""],
+["+1", "USA", "us,mil,gov,edu", "1"],
+["+1340", "U.S. Virgin Islands", "vi", "1"],
+["+1670", "Northern Mariana Islands", "mp", "1"],
+["+1671", "Guam", "gu", "1"],
+["+1684", "American Samoa", "as", "1"],
+["+1787", "Puerto Rico", "pr", "1"],
+["+1939", "Puerto Rico", "", "1"],
+["+1", "Canada", "ca", "1"],
+["+1264", "Anguilla", "ai", "1"],
+["+1268", "Antigua and Barbuda", "ag", "1"],
+["+1242", "Bahamas", "bs", "1"],
+["+1246", "Barbados", "bb", "1"],
+["+1441", "Bermuda", "bm", "1"],
+["+1284", "British Virgin Islands", "vg", "1"],
+["+1345", "Cayman Islands", "ky", "1"],
+["+1767", "Dominica", "dm", "1"],
+["+1808", "Midway Island", "", "1"],
+["+1809", "Dominican Republic", "do", "1"],
+["+1829", "Dominican Republic", "", "1"],
+["+1849", "Dominican Republic", "", "1"],
+["+1473", "Grenada", "gd", "1"],
+["+1876", "Jamaica", "jm", "1"],
+["+1664", "Montserrat", "ms", "1"],
+["+1869", "Saint Kitts and Nevis", "kn", "1"],
+["+1758", "Saint Lucia", "lc", "1"],
+["+1784", "Saint Vincent and the Grenadines", "vc", "1"],
+["+1868", "Trinidad and Tobago", "tt", "1"],
+["+1649", "Turks and Caicos Islands", "tc", "1"],
+["+20", "Egypt", "eg", "0"],
+["+212", "Morocco", "ma", ""],
+["+213", "Algeria", "dz", "7"],
+["+216", "Tunisia", "tn", "0"],
+["+218", "Libya", "ly", "0"],
+["+220", "Gambia", "gm", ""],
+["+221", "Senegal", "sn", "0"],
+["+222", "Mauritania", "mr", "0"],
+["+223", "Mali", "ml", "0"],
+["+224", "Guinea", "gn", "0"],
+["+225", "Ivory Coast", "ci", "0"],
+["+226", "Burkina Faso", "bf", ""],
+["+227", "Niger", "ne", "0"],
+["+228", "Togo", "tg", ""],
+["+229", "Benin", "bj", ""],
+["+230", "Mauritius", "mu", "0"],
+["+231", "Liberia", "lr", "22"],
+["+232", "Sierra Leone", "sl", "0"],
+["+233", "Ghana", "gh", ""],
+["+234", "Nigeria", "ng", "0"],
+["+235", "Chad", "td", ""],
+["+236", "Central African Republic", "cf", ""],
+["+237", "Cameroon", "cm", ""],
+["+238", "Cape Verde", "cv", ""],
+["+239", "São Tomé and Príncipe", "st", "0"],
+["+240", "Equatorial Guinea", "gq", ""],
+["+241", "Gabon", "ga", ""],
+["+242", "Congo (Republic)", "cg", ""],
+["+243", "Congo (Democratic Republic)", "cd", ""],
+["+244", "Angola", "ao", "0"],
+["+245", "Guinea-Bissau", "gw", ""],
+["+246", "Diego Garcia", "", ""],
+["+247", "Ascension Island", "ac", ""],
+["+248", "Seychelles", "sc", "0"],
+["+249", "Sudan", "sd", "0"],
+["+250", "Rwanda", "rw", "0"],
+["+251", "Ethiopia", "et", "0"],
+["+252", "Somalia", "so", ""],
+["+253", "Djibouti", "dj", ""],
+["+254", "Kenya", "ke", "0"],
+["+255", "Tanzania", "tz", "0"],
+["+256", "Uganda", "ug", "0"],
+["+257", "Burundi", "bi", ""],
+["+258", "Mozambique", "mz", "0"],
+["+260", "Zambia", "zm", "0"],
+["+261", "Madagascar", "mg", "0"],
+["+262", "Réunion", "re", "0"],
+["+262", "Mayotte", "yt", "0"],
+["+263", "Zimbabwe", "zw", "0"],
+["+264", "Namibia", "na", "0"],
+["+265", "Malawi", "mw", ""],
+["+266", "Lesotho", "ls", "0"],
+["+267", "Botswana", "bw", ""],
+["+268", "Swaziland", "sz", ""],
+["+269", "Comoros", "km", ""],
+["+27", "South Africa", "za", "0"],
+["+290", "Saint Helena", "sh", ""],
+["+290", "Tristan da Cunha", "", "0"],
+["+291", "Eritrea", "er", "0"],
+["+297", "Aruba", "aw", ""],
+["+298", "Faroe Islands", "fo", ""],
+["+299", "Greenland", "gl", ""],
+["+30", "Greece", "gr", ""],
+["+31", "Netherlands", "nl", "0"],
+["+32", "Belgium", "be", "0"],
+["+33", "France", "fr", "0"],
+["+34", "Spain", "es", "0"],
+["+350", "Gibraltar", "gi", ""],
+["+351", "Portugal", "pt", ""],
+["+352", "Luxembourg", "lu", ""],
+["+353", "Ireland", "ie", "0"],
+["+354", "Iceland", "is", "0"],
+["+355", "Albania", "al", "0"],
+["+356", "Malta", "mt", "0"],
+["+357", "Cyprus (South)", "cy", ""],
+["+358", "Finland", "fi", "0"],
+["+359", "Bulgaria", "bg", "0"],
+["+36", "Hungary", "hu", "06"],
+["+370", "Lithuania", "lt", "8"],
+["+371", "Latvia", "lv", "8"],
+["+372", "Estonia", "ee", ""],
+["+373", "Moldova", "md", "0"],
+["+374", "Armenia", "am", "8"],
+["+37447", "Nagorno-Karabakh", "", "0"],
+["+37497", "Nagorno-Karabakh (Mobile)", "", "0"],
+["+375", "Belarus", "by", "8"],
+["+376", "Andorra", "ad", ""],
+["+377", "Monaco", "mc", "0"],
+["+37744", "Kosovo (Mobile)", "", "0"],
+["+378", "San Marino", "sm", "0"],
+["+379", "Vatican City", "va", ""],
+["+380", "Ukraine", "ua", "8"],
+["+381", "Serbia", "rs", "0"],
+["+381", "Kosovo", "", "0"],
+["+382", "Montenegro", "me", "0"],
+["+385", "Croatia", "hr", "0"],
+["+386", "Slovenia", "si", "0"],
+["+38649", "Kosovo (Mobile)", "", "0"],
+["+387", "Bosnia and Herzegovina", "ba", "0"],
+["+389", "Macedonia", "mk", "0"],
+["+39", "Italy and Vatican City", "it", ""],
+["+40", "Romania", "ro", "0"],
+["+41", "Switzerland", "ch", "0"],
+["+420", "Czech Republic", "cz", ""],
+["+421", "Slovakia", "sk", "0"],
+["+423", "Liechtenstein", "li", ""],
+["+43", "Austria", "at", "0"],
+["+44", "United Kingdom", "uk,gb", "0"],
+["+45", "Denmark", "dk", ""],
+["+46", "Sweden", "se", "0"],
+["+47", "Norway", "no", ""],
+["+48", "Poland", "pl", "0"],
+["+49", "Germany", "de", "0"],
+["+500", "Falkland Islands", "fk", ""],
+["+501", "Belize", "bz", "0"],
+["+502", "Guatemala", "gt", ""],
+["+503", "El Salvador", "sv", ""],
+["+504", "Honduras", "hn", "0"],
+["+505", "Nicaragua", "ni", "0"],
+["+506", "Costa Rica", "cr", ""],
+["+507", "Panama", "pa", "0"],
+["+508", "Saint-Pierre and Miquelon", "pm", "0"],
+["+509", "Haiti", "ht", "0"],
+["+51", "Peru", "pe", "0"],
+["+52", "Mexico", "mx", "01"],
+["+53", "Cuba", "cu", "0"],
+["+5399", "Guantanamo Bay", "", "0"],
+["+54", "Argentina", "ar", "0"],
+["+55", "Brazil", "br", "0"],
+["+56", "Chile", "cl", "0"],
+["+57", "Colombia", "co", "0"],
+["+58", "Venezuela", "ve", "0"],
+["+590", "Guadeloupe", "gp", ""],
+["+591", "Bolivia", "bo", "0"],
+["+592", "Guyana", "gy", "0"],
+["+593", "Ecuador", "ec", "0"],
+["+594", "French Guiana", "gf", ""],
+["+595", "Paraguay", "py", "0"],
+["+596", "Martinique", "mq", ""],
+["+597", "Suriname", "sr", ""],
+["+598", "Uruguay", "uy", "0"],
+["+599", "Netherlands Antilles", "an", ""],
+["+60", "Malaysia", "my", "0"],
+["+61", "Australia", "au", "0"],
+["+62", "Indonesia", "id", "0"],
+["+63", "Philippines", "ph", "0"],
+["+64", "New Zealand", "nz", ""],
+["+65", "Singapore", "sg", ""],
+["+66", "Thailand", "th", "0"],
+["+670", "East Timor", "tp,tl", ""],
+["+672", "Australian external territories", "", ""],
+["+673", "Brunei", "bn", "0"],
+["+674", "Nauru", "nr", "0"],
+["+675", "Papua New Guinea", "pg", ""],
+["+676", "Tonga", "to", ""],
+["+677", "Solomon Islands", "sb", ""],
+["+678", "Vanuatu", "vu", ""],
+["+679", "Fiji", "fj", ""],
+["+680", "Palau", "pw", ""],
+["+681", "Wallis and Futuna", "wf", ""],
+["+682", "Cook Islands", "ck", "00"],
+["+683", "Niue Island", "nu", "0"],
+["+685", "Samoa", "ws", ""],
+["+686", "Kiribati", "ki", "0"],
+["+687", "New Caledonia", "nc", "0"],
+["+688", "Tuvalu", "tv", ""],
+["+689", "French Polynesia", "pf", ""],
+["+690", "Tokelau", "tk", ""],
+["+691", "Micronesia", "fm", "1"],
+["+692", "Marshall Islands", "mh", "1"],
+["+7", "Russia", "ru,su", "8"],
+["+7", "Kazakhstan", "kz", "8"],
+["+81", "Japan", "jp", "0"],
+["+82", "South Korea", "kr", "0"],
+["+84", "Vietnam", "vn", "0"],
+["+850", "North Korea", "", "0"],
+["+852", "Hong Kong", "hk", ""],
+["+853", "Macao", "mo", "0"],
+["+855", "Cambodia", "kh", "0"],
+["+856", "Laos", "la", "0"],
+["+86", "China", "cn", "0"],
+["+870", "Inmarsat SNAC", "", ""],
+["+871", "Inmarsat (Atlantic East)", "", ""],
+["+872", "Inmarsat (Pacific)", "", ""],
+["+873", "Inmarsat (Indian)", "", ""],
+["+874", "Inmarsat (Atlantic West)", "", ""],
+["+880", "Bangladesh", "bd", "0"],
+["+881", "Global Mobile Satellite System", "", ""],
+["+882", "International Networks", "", ""],
+["+883", "International Networks", "", ""],
+["+886", "Taiwan", "tw", ""],
+["+90", "Turkey", "tr", "0"],
+["+90392", "Cyprus (North)", "", "0"],
+["+91", "India", "in", "0"],
+["+92", "Pakistan", "pk", "0"],
+["+93", "Afghanistan", "af", "0"],
+["+94", "Sri Lanka", "lk", "0"],
+["+95", "Burma", "mm", ""],
+["+960", "Maldives", "mv", "0"],
+["+961", "Lebanon", "lb", "0"],
+["+962", "Jordan", "jo", "0"],
+["+963", "Syria", "sy", "0"],
+["+964", "Iraq", "iq", "0"],
+["+965", "Kuwait", "kw", "0"],
+["+966", "Saudi Arabia", "sa", "0"],
+["+967", "Yemen", "ye", "0"],
+["+968", "Oman", "om", "0"],
+["+971", "United Arab Emirates", "ae", ""],
+["+972", "Israel", "il", "0"],
+["+973", "Bahrain", "bh", ""],
+["+974", "Qatar", "qa", "0"],
+["+975", "Bhutan", "bt", ""],
+["+976", "Mongolia", "mn", "0"],
+["+977", "Nepal", "np", "0"],
+["+98", "Iran", "ir", "0"],
+["+992", "Tajikistan", "tj", "8"],
+["+993", "Turkmenistan", "tm", "8"],
+["+994", "Azerbaijan", "az", "8"],
+["+995", "Georgia", "ge", "8"],
+["+996", "Kyrgyzstan", "kg", "0"],
+["+998", "Uzbekistan", "uz", "8"],
+];
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/dialog.css b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/dialog.css
new file mode 100644
index 0000000000..c154c52006
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/dialog.css
@@ -0,0 +1,33 @@
+.telInputCC {
+	width: 6em;
+}
+
+#idTelify_popup_dial .menu-iconic-icon {
+	width: 22px;
+	height: 15px;
+} 
+
+#idTelify_popup_context .menu-iconic-icon {
+	width: 22px;
+	height: 15px;
+} 
+
+.tmpl_empty {
+	color: #a0a0a0;
+}
+
+.tmpl_number {
+	color: #008000;
+}
+
+.tmpl_param {
+	color: #000080;
+}
+
+.urlresult {
+	height:4.2em;
+	padding:2px 3px;
+	border:1px solid #e0e0e0;
+	background-color:#f0f0f0;
+	margin-left:4px;
+}
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/edit22x15.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/edit22x15.png
new file mode 100644
index 0000000000000000000000000000000000000000..cb4c614f0b8250a5424018630cc4663962591633
GIT binary patch
literal 2946
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/editNumber.js b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/editNumber.js
new file mode 100644
index 0000000000..64896ad5c8
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/editNumber.js
@@ -0,0 +1,180 @@
+/*
+Creative Commons License: Attribution-No Derivative Works 3.0 Unported
+http://creativecommons.org/licenses/by-nd/3.0/
+(c)2009 Michael Koch
+*/
+
+var objTelifyEditNumber = {
+
+checkKey: function(event, allowed)
+{
+	if (event.which < 32) return
+	var key = String.fromCharCode(event.which)
+	if (allowed.indexOf(key) >= 0) return;
+	event.preventDefault();
+},
+
+
+createListItem: function()
+{
+	var item = document.createElement('listitem');
+	for (var i=0; i<arguments.length; i++) {
+		var cell = document.createElement('listcell');
+		cell.setAttribute("label", arguments[i]);
+		item.appendChild(cell);
+	}
+	return item;
+},
+
+
+updateCountrySelection: function()
+{
+	var list = document.getElementById("idTelifyCountryCodeList");
+	var editcc = document.getElementById("idTelifyInputCC");
+	if (editcc.value == "" || editcc.value == "+" || editcc.value.charAt(0) != '+') {
+		list.scrollToIndex(0);
+		list.selectedIndex = 0;
+		editcc.style.color = "#ff0000";
+		return;
+	}
+	var index = 0;
+	var maxlen = 1;
+	for (var i=0; i<telify_country_data.length; i++) {
+		if (editcc.value == telify_country_data[i][0]) {
+			index = i;
+			break;
+		}
+		for (var j=1; j<editcc.value.length; j++) {
+			if (editcc.value.charAt(j) == telify_country_data[i][0].charAt(j)) {
+				if (j+1 > maxlen) {
+					maxlen = j+1;
+					index = i;
+				}
+			} else {
+				break;
+			}
+		}
+	}
+	if (index >= 0) {
+		list.scrollToIndex(index);
+		if (editcc.value == telify_country_data[index][0]) {
+			list.selectedIndex = index;
+			editcc.style.color = "#000000";
+		} else {
+			list.clearSelection();
+			editcc.style.color = "#ff0000";
+		}
+	} else {
+		list.scrollToIndex(0);
+		list.clearSelection();
+		editcc.style.color = "#ff0000";
+	}
+},
+
+
+ccChanged: function()
+{
+	var editcc = document.getElementById("idTelifyInputCC");
+	if (editcc.value.length == 1 && editcc.value.charAt(0) != '+') {
+		editcc.value = "+" + editcc.value;
+	}
+	this.updateCountrySelection();
+},
+
+
+updateNumberEdit: function()
+{
+	var list = document.getElementById("idTelifyCountryCodeList");
+	var fClear = false;
+	if (list.getRowCount() != telify_country_data.length) {
+		while (list.getRowCount() > 0) list.removeItemAt(0);
+		fClear = true;
+	}
+	for (var i=0; i<telify_country_data.length; i++) {
+		var item = this.createListItem(telify_country_data[i][0], telify_country_data[i][1]);
+		if (fClear) {
+			list.appendChild(item);
+		} else {
+			list.replaceChild(item, list.getItemAtIndex(i));
+		}
+	}
+	this.updateCountrySelection();
+},
+
+
+updateListSelection: function()
+{
+	var list = document.getElementById("idTelifyCountryCodeList");
+	var editcc = document.getElementById("idTelifyInputCC");
+	if (list.selectedCount > 0) {
+		editcc.value = telify_country_data[list.selectedIndex][0];
+		editcc.style.color = "#000000";
+	}
+},
+
+
+compareCol1: function(a, b)
+{
+	var v = a[0].localeCompare(b[0]);
+	if (v == 0) return a[1].localeCompare(b[1]);
+	return v;
+},
+
+
+compareCol2: function(a, b)
+{
+	var v = a[1].localeCompare(b[1]);
+	if (v == 0) return a[0].localeCompare(b[0]);
+	return v;
+},
+
+
+last_sorted_column: -1,
+
+sortCountryCodeList: function(column)
+{
+	var telPrefs = objTelifyPrefs.getPrefObj();
+	if (column < 0) {
+		column = telPrefs.getIntPref(objTelifyPrefs.PREF_COLSORTCC);
+	} else {
+		telPrefs.setIntPref(objTelifyPrefs.PREF_COLSORTCC, column);
+	}
+	if (column == this.last_sorted_column) return;
+	if (column == 0) {
+		telify_country_data.sort(this.compareCol1);
+		document.getElementById("idTelifyColCode").setAttribute("sortDirection", "descending");
+		document.getElementById("idTelifyColCountry").setAttribute("sortDirection", "natural");
+	}
+	if (column == 1) {
+		telify_country_data.sort(this.compareCol2);
+		document.getElementById("idTelifyColCode").setAttribute("sortDirection", "natural");
+		document.getElementById("idTelifyColCountry").setAttribute("sortDirection", "descending");
+	}
+	this.last_sorted_column = column;
+	this.updateNumberEdit();
+},
+
+
+setNumberEditReturnValue: function(fOK)
+{
+	window.arguments[0].cc = document.getElementById("idTelifyInputCC").value;
+	window.arguments[0].nr = document.getElementById("idTelifyInputNr").value;
+	window.arguments[0].fOK = fOK;
+},
+
+
+initNumberEdit: function()
+{
+	var cc = window.arguments[0].cc;
+	var nr = window.arguments[0].nr;
+	var index = -1;
+	var maxlen = 0;
+
+	objTelifyUtil.localizeCountryData();
+	document.getElementById("idTelifyInputCC").value = (cc ? cc : "");
+	document.getElementById("idTelifyInputNr").value = nr;
+	this.sortCountryCodeList(-1);
+}
+
+};
+
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/editNumber.xul b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/editNumber.xul
new file mode 100644
index 0000000000..251fbc0198
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/editNumber.xul
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
+<?xml-stylesheet href="chrome://telify/content/dialog.css" type="text/css"?>
+
+<!DOCTYPE dialog SYSTEM "chrome://telify/locale/lang.dtd">
+
+<dialog id="dlgTelifyEditNumber"
+	xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+	buttons="accept,cancel"
+	buttonlabelaccept="&dialog.edit.dial;"
+	onload="objTelifyEditNumber.initNumberEdit()"
+	ondialogaccept="objTelifyEditNumber.setNumberEditReturnValue(true)"
+	ondialogcancel="objTelifyEditNumber.setNumberEditReturnValue(false)"
+	title="&dialog.edit.title;">
+
+	<stringbundleset id="stringbundleset">
+		<stringbundle id="idTelifyStringBundle" src="chrome://telify/locale/lang.properties"/>
+	</stringbundleset>
+
+	<script type='application/x-javascript' src='chrome://telify/content/jshashtable.js'></script>
+	<script type='application/x-javascript' src='chrome://telify/content/util.js'></script>
+	<script type='application/x-javascript' src='chrome://telify/content/pref.js'></script>
+	<script type='application/x-javascript' src='chrome://telify/content/country_data.js'></script>
+	<script type='application/x-javascript' src='chrome://telify/locale/country_locale.js'></script>
+	<script type='application/x-javascript' src='chrome://telify/content/editNumber.js'></script>
+
+	<vbox>
+		<hbox align="center">
+			<textbox id="idTelifyInputCC" class="telInputCC" oninput="objTelifyEditNumber.ccChanged()" onkeypress="objTelifyEditNumber.checkKey(event,'+0123456789')"/>
+			<label value="&#8211;"/>
+			<textbox id="idTelifyInputNr" flex="1" onkeypress="objTelifyEditNumber.checkKey(event,'0123456789')"/>
+		</hbox>
+		<listbox id="idTelifyCountryCodeList" flex="1" width="280" height="250" onselect="objTelifyEditNumber.updateListSelection()">
+			<listhead>
+				<listheader id="idTelifyColCode" class="telInputCC" label="&dialog.edit.code;" onclick="objTelifyEditNumber.sortCountryCodeList(0)"/>
+				<listheader id="idTelifyColCountry" label="&dialog.edit.country;" onclick="objTelifyEditNumber.sortCountryCodeList(1)"/>
+			</listhead>
+			<listcols>
+				<listcol flex="0"/>
+				<listcol flex="1"/>
+			</listcols>
+		</listbox>
+	</vbox>
+
+</dialog>
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/error32.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/error32.png
new file mode 100644
index 0000000000000000000000000000000000000000..2d5e260a5f21585e0a76c81a0a66b6dbf5be60e6
GIT binary patch
literal 2478
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
HB{Ts5^Zkk9

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1-canada.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1-canada.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd226fef001e55ec8e0ede8fdf897babf89c2ed3
GIT binary patch
literal 2979
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
O1B0ilpUXO@geCwrg@PCW

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1.png
new file mode 100644
index 0000000000000000000000000000000000000000..34bd21fd5cdfa2525a224ac596e07713d87de6af
GIT binary patch
literal 2878
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
LS3j3^P6<r_mo-_V

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1242.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1242.png
new file mode 100644
index 0000000000000000000000000000000000000000..cb72ea2c0f48e6935ee8bad01b77b11d8108855a
GIT binary patch
literal 2928
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
LS3j3^P6<r_JVIRx

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1246.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1246.png
new file mode 100644
index 0000000000000000000000000000000000000000..b6db2cd4a7aa6a3c71375bcaa8181440de130884
GIT binary patch
literal 347
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U)QBu$0x!Z9l#+Ffjb}ba4!^=sh}lZx)lIgzI@9laK0APdL{wZ4BSy
zk(#j4bGk@p#PThh&Su~Eefg%=Ee|Pi#Yxwc1iDpUP8B_TsPAY~M9T5I8Wo9M56{`&
zZ+$2nvtO&`N}XY)*17**tkT+^yIs`p`clew<>f)I%I6vhORtET&01ISJK`<RMgNOU
zv8--qlm0!vAf=P>ZF)_uwS*~mx&QBub2gKkvMhb`bBd>XGhHyxUG>x?sO!HuTZP8b
ziur4|e}DOA`thKwc%S<c50tbbZs^^;cqv<n^?6|JZHI)0s;6BKkNmb+Jb^=qlkHr3
za!nK;!_L_^J|1BBzWw9^|HF;?j~`C^@<m%VOnPFd+c&#~EG7&L3=E#GelF{r5}E)<
C?3bMY

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1264.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1264.png
new file mode 100644
index 0000000000000000000000000000000000000000..45b6ec574ecf6afe62656e876878e1ed0b2fa253
GIT binary patch
literal 3228
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
UCbWbwFfcH9y85}Sb4q9e0DPhi_y7O^

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1268.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1268.png
new file mode 100644
index 0000000000000000000000000000000000000000..d618aeb5f3d0490a063bde2f04aa11aa7e316038
GIT binary patch
literal 587
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxH`{{wfm|V7#QDrx;Tbd^sb$>KRY;3<hcF!ecwNwINkqjW`}3{
zmMaM>nw|bP^eE|CtPBuuS9_%7p?SlVlZC6Pc;h-(!MjGR?S6B;Un#J3HF8aw<kf3B
z(d^`IzF8C0^fTM)9v*r)=lsv2A4QQLSVRjJ<{uOe$!QnLiu&Bc@;GqiGBs0E(aRw=
zTJD=J&vMUg7xLQPl5$r3@x%4Cvoxwi`8;`KFO}<l`xech^2qA-dufyC5094@x0ws9
z`I!{qq*V4Mo9n^dlY;A|LVtbzRmm`4b;nE-0f&uOmfQ=lIVa1%LHk;&+zc~@O_yU#
za)a8|bF==PbXB$6Bf@CD(agCQJ>ss;@So|Tm$^nSlI8E+(xA5fqyLvNR4o^9&@(t0
zT;J`?xN$@C;_VyNZ&jQ%bNZ9KXW4;mdo7|GZZ3K9d!foAh40bsUsP`PE?PV{W0L#!
z`42fxT1-0i(D$Kg@zhH<>+CJUH79C5J8r~!LgX{^vUSH8X2zD^_}UTsU72ms3%*6+
z98c_(-f&)bEe(16<D6~C(*vdJc9$`RS~~1GVf497w&jJi);_zFe5S36fh8f@Ie~X?
z$h-(QH(M#X&224T|03=Ro=NlV9_%fYZLpueKVVm>eCaKj%$j%egO>ZAdYL+>ih23H
v1#{x;u8X*(+*v(&uhIRmO?Rtg{<8M)98%DJZhVh{fq}u()z4*}Q$iB}xkd$!

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1284.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1284.png
new file mode 100644
index 0000000000000000000000000000000000000000..93c6f1125582c3c4ed2ad91b13f94a4d225b297a
GIT binary patch
literal 3287
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1340.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1340.png
new file mode 100644
index 0000000000000000000000000000000000000000..0949b5fa6d5194dc591ac483794fd0d3ab2f740c
GIT binary patch
literal 785
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTH10|&F=rN+4o3{0CnT^vI!dbdvT_6RAII9h-1j&<?#rN(x%Cz+^p
z>u_yeptC3^IUvl-F=Y0l1q&8AWC-ps$`0ff&lC*gY}8$3zH5fu1d%`yTMe1qS(j$2
zO|85?^WB-h+c`K-X9>=G`}5qx54G+3?i`9Um?V}RDrqXzDe1ovz&>$e_+-8|W;vyM
zwJF9QJu6M^d{S0)dpwY0xMZ>LwbjQ)<rzy<{+Z{^xokecaQ%U}koJ?0)TG`lo8Wil
zqSYJK-jpp8uV%1MtZ}lr(0hhGD6?_tpF2m6R9=3yA*^KLSt&)~h643t5BNgfyX~v>
zei+1N=qbSemBHX!nfb5dy(b<%Ua^sJQ>5(DExm^#cQc$2bn2KbZ?{q7{>jY+Q%+s+
zUbC<{gHwO==?6vc&HBoAXat(DO*Tpu>kYVdX5m@MS=;9ylxJv;>3Nc;`Xb|imUqZA
z>v|PAgHtwM%QE@<0^_#LI@kX-;~aCvU$#$2b+f#SW=02`nWbbb%4dC=E5+-J+#kjd
zFQa$9_%b1Sm#n|i(e9L2&-=`G%Dkzx_LzFw^Zjb+nEFc5;B$Q6!sahHbi?)Ygif30
zrW0BVxG%XmCN1>Sd2g_M((Qs3k@MP>_itZxCeb-m$7ENI$(5XgX{8T7-ghl~zog`&
z=%Z^7ITx)kaeBI{Y)Rzt3zsz8ggKvC7OS6;h>nViVo1|cTlGfl%_Nr!l{0@2$o{d@
zziOGjajN={U+V<gk9yvivn=Co_@($;7SgfJI+`WxW4c18ZS-(U(@5hwyG;K0@2!&$
zZe*A)H*c{`Y2&R~hi5!Z`X&Ef{o;K8kBb8Dgs$Dw=OX#{&e306YiEew&fh!lN`*{R
z*yAs6!)86xcYK|%bbisIWxOq2=PnD(a&EkPZuV1dHSz9xhwG(^Edm=a)INN@T6E&V
xJi*Y=!2b_cTKv5C-TiL7@PGbgZ#Zk&6)dCO-o7|^mVtqR!PC{xWt~$(699JGYuEq)

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1345.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1345.png
new file mode 100644
index 0000000000000000000000000000000000000000..4ade1ca9be95a1952190fafbfc153ffb3c35827f
GIT binary patch
literal 3245
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1441.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1441.png
new file mode 100644
index 0000000000000000000000000000000000000000..775a6b67b56424fc2e5c950c88f902a5aa78c627
GIT binary patch
literal 3238
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1473.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1473.png
new file mode 100644
index 0000000000000000000000000000000000000000..19612cf7a73a7be8c0ffb1f405c025c30a2ad305
GIT binary patch
literal 3288
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1649.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1649.png
new file mode 100644
index 0000000000000000000000000000000000000000..d8f0e6ec7e98e80146665ad258cd7603285ff461
GIT binary patch
literal 3206
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1664.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1664.png
new file mode 100644
index 0000000000000000000000000000000000000000..35d8f052b93c5208e3d430bc5213c6c984f47423
GIT binary patch
literal 3220
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
L{an^LB{Ts510ek!

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1670.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1670.png
new file mode 100644
index 0000000000000000000000000000000000000000..a5c8609a24821b02da585b50bef280f9cc23d65e
GIT binary patch
literal 3233
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
bd<@Fl)?W;*o$!`{fq}u()z4*}Q$iB})tM2l

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1671.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1671.png
new file mode 100644
index 0000000000000000000000000000000000000000..5189a550be437d825ec88b09ec090bfd8138ac5c
GIT binary patch
literal 3003
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1684.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1684.png
new file mode 100644
index 0000000000000000000000000000000000000000..553b350cd38f66a8304aef45ca4c879f7559d5ff
GIT binary patch
literal 3124
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
N@O1TaS?83{1OTO~&bt5r

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1758.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1758.png
new file mode 100644
index 0000000000000000000000000000000000000000..4e92314b7bd0ae2c79a532e0359a57edc262e506
GIT binary patch
literal 3002
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1767.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1767.png
new file mode 100644
index 0000000000000000000000000000000000000000..472d05c29aa90043c2992380c7f924a6c7ebbbd8
GIT binary patch
literal 3064
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
CQ@FVR

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1784.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1784.png
new file mode 100644
index 0000000000000000000000000000000000000000..ceb8103b06c6bc457c5263c5adf2e454281dac20
GIT binary patch
literal 302
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RWo=hoxj^g!)GY28IisE{-7<y~!yWR^R3`@=kfZCN;w}u1Bv&v}9jE
z+KReWeTwH?rsNqNSaEQP<egtJtlG1cn!neIrLCx6cC6r;wEf|k`G0u6p1&gTtyWAe
z!+=|nwfp`l0}#-uRPI%JcI5XoBk|*0_K67z2?++zf1XG<_gT=DM_%DYlKQ>vJiS5N
zC9c&Aq=RHLrtEUPu+>HK%z*<3CTM(WaeTN*nVFfH`7q1P>?0Y9=Mprp$@8?u$Un?k
x1y&QFT-YA5bcy5}<qutEY{rvPbeNeL{P>In-=9la#K6G7;OXk;vd$@?2>=5ebAtc?

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1787.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1787.png
new file mode 100644
index 0000000000000000000000000000000000000000..7e25408dc26822567bdf78e54e4ded5eaadb3775
GIT binary patch
literal 440
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U)P4yNZQC)Ujp;2F55)7sn8b-mOy%J)9B+8utIUt>yA^-Q&o?)xK>}
z58Le~k0Rlm!VHcq4aEsf8A3{jRxY^KbZvpD21gc8lg1iXCGJUGYgj}d|EyW>saW!%
z^<GK&o!WBta&@ME&c((%+qVDk&~_C#HM47>VC@anX}1n76^~|LCuO^o=i_gShtn5d
zYg%n&myn!(?qtIJKlvN3oTw~ZZoDZbA#=UUx`^=WRuR(@>Vg;@)*pDc(d~cIyuZf0
zhn3<5PR(>W@MVVVdUqwMkO<2k55KK+(n`L<RD1ur%B0mjb+M-RH)cAS<!=%!ys+A<
z<!{-g^;TUAA70~Laf^LE-_#oy%+%*41Sdp?TKd1TN%uXq>tyOGr<)TTf-b1EGUe5{
zX3JjRw&=F*ixSRD@7WH=&757r%COaW!i+*A>xBxP%VyLcEM0tJgTc}ba)p<kZgN=j
w%)Dq@QvdC;O0$NtKU~od-cBj2*&e_5QO~hC8>@vF7#J8lUHx3vIVCg!0IjvX=>Px#

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1809.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1809.png
new file mode 100644
index 0000000000000000000000000000000000000000..d1caf4f21030542284ed53c3c88e2aca2a061a69
GIT binary patch
literal 2961
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1829.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1829.png
new file mode 100644
index 0000000000000000000000000000000000000000..d1caf4f21030542284ed53c3c88e2aca2a061a69
GIT binary patch
literal 2961
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1868.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1868.png
new file mode 100644
index 0000000000000000000000000000000000000000..a1e2ea500745872e6060bf58f0e125ee9f762e95
GIT binary patch
literal 3278
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
Sbsqx*1B0ilpUXO@geCw?HXG&u

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1869.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1869.png
new file mode 100644
index 0000000000000000000000000000000000000000..45e13d35c7d3ef278ca8beaf967eab7b00348854
GIT binary patch
literal 689
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTH1gOcc~+#gRE7?^@RT^vI!dgoq>_PER_a{S}_|C@?_@9zG;CT&5;
z1rBu~$C*18wX5iEnx~{K;B-XqTfihAd6N@d&1<G`=qkTee4+bF@ui{@FUxB7@SCjH
z=PYBsyHqo3_WyaCu7xan{<Zu^fyHx<EuvXEo4c-Z>aD!LBA4UChnFQjYWnOxQ<Y89
zD>l@~B$xl>Z*yB*X!|JWBJ(tb_2xS&N{@R#Jb7SGMwh3DjG1@ft!uki^3*PP@Iu0}
zb$g-J>XYZs_rJV7dwbLN{xH>TUAD^v&So}m*~X&rcE+KsSogp{!L-dY@7#%D5ZQZR
z>#3B!+r1TYt5o>%Rz-7|bZn0CmtUk}<MDAO=e#|094{+qYje*(-@a;9g^irZ!K0hi
zxNkD6?Fs+t!lZP_DSo4J<)qy&^W@5Vig%_?il2BRX8GlZCr&R+cx~<X*2Jjf=z%Zk
znR@-vN4)|Uo8`9D1|Oa>h3#dr>%V+Ph1<&tH$SpnxmPRx)Z`0w$DSE}5IZdL-T2Oz
zl2cDiStgcpO%hR)`deK&m*;9K*K;nPntTI;SCeL}Php6>P!Q#ADfBU@%&Oz|_O^ZI
ze}DY_xAQSWO5T*pfPAILlMf}#oOg3(r7y#gv!0hrZnAm2{(0)#;m2RTIfsUdn$70j
zeYfxMLkE$EHJy#?)I^JCw?35aUd(XF;d$2EH%ArD?@pe6<=#C%Utiu;hG*7tPq18O
zaA}FUm8Oo~zs6vnrf2*|?c1*In&!OQ>B@YANBLnKrLTpUo+l{y`EK{xa!vB4+2k_?
zi|2V5Y}6EQ?SJdPXyYNDAM+XybT9S&ng5qfJp7cF`~tB|1_lNOPgg&ebxsLQ0Q}BA
AtN;K2

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1876.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1876.png
new file mode 100644
index 0000000000000000000000000000000000000000..6398ed535192024ccf662d56747b8268d9e9d4a0
GIT binary patch
literal 2954
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1939.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/1939.png
new file mode 100644
index 0000000000000000000000000000000000000000..7e25408dc26822567bdf78e54e4ded5eaadb3775
GIT binary patch
literal 440
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U)P4yNZQC)Ujp;2F55)7sn8b-mOy%J)9B+8utIUt>yA^-Q&o?)xK>}
z58Le~k0Rlm!VHcq4aEsf8A3{jRxY^KbZvpD21gc8lg1iXCGJUGYgj}d|EyW>saW!%
z^<GK&o!WBta&@ME&c((%+qVDk&~_C#HM47>VC@anX}1n76^~|LCuO^o=i_gShtn5d
zYg%n&myn!(?qtIJKlvN3oTw~ZZoDZbA#=UUx`^=WRuR(@>Vg;@)*pDc(d~cIyuZf0
zhn3<5PR(>W@MVVVdUqwMkO<2k55KK+(n`L<RD1ur%B0mjb+M-RH)cAS<!=%!ys+A<
z<!{-g^;TUAA70~Laf^LE-_#oy%+%*41Sdp?TKd1TN%uXq>tyOGr<)TTf-b1EGUe5{
zX3JjRw&=F*ixSRD@7WH=&757r%COaW!i+*A>xBxP%VyLcEM0tJgTc}ba)p<kZgN=j
w%)Dq@QvdC;O0$NtKU~od-cBj2*&e_5QO~hC8>@vF7#J8lUHx3vIVCg!0IjvX=>Px#

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/20.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/20.png
new file mode 100644
index 0000000000000000000000000000000000000000..0bb0d4e877dfc90324faa34953da79e04d145f8b
GIT binary patch
literal 223
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U!?^ld;*A_d>-C3=EB)E{-7<y>Blo@*N5gXn9z_jo05HdV)$uUgLp+
zq;rj{U6KWtcrw>U#~$U<^02DgFF5&XZh1*s$Js``4=P39Z&du14Py`ZB|B$+_?OB?
z)jfBTzW&sXal5rQd*O<N69y#{CrhkJ>b)cv>0D>;RFGk_+D{|D;QhvDLQSkX^S>|u
az;V)1aiyD|^ezSl1_n=8KbLh*2~7a$(^G^1

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/212.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/212.png
new file mode 100644
index 0000000000000000000000000000000000000000..3319fa7f6f16eedf976ebabc0c88b1e2058cf39d
GIT binary patch
literal 312
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U$R9kD|%_18cn)7#MDOx;Tbd^q!q;>vz~epml%b%_B}`5t$him{}J!
zChvT}cBfnT!qSc@r}Q)ef?SH&g%Xs1rfc}jtPoG}uDoQn_~Q1@Y4=Zke!JJG@r=lY
z#|-6{=3hKmnQ_9oym?;s<Dz^0)!z-7etZo%u}E$Qcgup%d3tBwvz{ugv<PUvw@zy*
zM@wjqhu70j(UHg7lmx`C7I?8AbW^;$?M{tWzWRrE+@33!+!jmr+<&=mb8+IegOO|B
zIBm~}nE&&1^NP0P)7#p8y>EOmoqgon(ro6s^!0x$AJsBQU*Y@{@5}a&@w&17&A`lC
Sw;3217(8A5T-G@yGywqqfQG&R

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/213.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/213.png
new file mode 100644
index 0000000000000000000000000000000000000000..92b1190e3dca8bb2caac257ccc69b840192b34fe
GIT binary patch
literal 411
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U)=FfUtSuKciR%21Z*?7sn8b-lLN@>N^LDwC}IJUwtni%6F@;NMNst
zneybN-L5J+Y0bVZOS@fMnjDjaoBubs97);`p(EC;6v(Ecv~X2uZv5Ts7i((QcHFPp
zSM&4f6Pbg58jhuYaXY2kRpM(l<G-jk??!Xak4C&+JB4O{Z8(_TJXKhFrRmHIc4-z3
z<s~fEa=CFbe?)R*Z_a5K+1#nL^eSt~O~<F)rP9}9jvm?CdR%Y~|5Q!s54$#>{(DAg
z#<BNDCdz0m-1#~5dsOAg3APr`67zV!&dZPcbAv62``0EW2IU9G&8IEMHtzhg%}oDZ
zw{=a#tS2jdPm8lGQ-66cj%|5RFjs<sOw6y$hz$?c1RK^R8%^Ex!RDz(?A;{SLo;Om
z%}RRsZ0XXrjIg4KHb?rtHms@tSNdMUfzxBV_M3lk<`r9evNs+4GxLY^gj3O+&1d2a
R7#J8BJYD@<);T3K0RRv{u@(RT

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/216.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/216.png
new file mode 100644
index 0000000000000000000000000000000000000000..f00450b7afc3e22cddcdeca9c540747dba82969e
GIT binary patch
literal 401
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxE`-uhUroU21a8~7sn8b-m6pgdovYE9J9YySuXK+hrlT*?&)1T
zA!nAZ{J-F+*zTnrFaBp_c5y9KT)SZ5Gmc-(hYl(p<mkJl#Oam0<FNJLTLN3Yx{9>V
z`&nzZXV3Y=(iO^g5*dQn7-cmqZd{$RYSGbWj34B+F64dZzcx*HMys;RUdD!`zQFVE
z9*BDf#XE@26Pl?|Q}1oNxzozjGefz#Am+<d6Zw;&E?@upZ}@UdF<bWe6B!%+&%dUm
zZEQ(;QDT?PlN)`hcj<$KlD4p&P1F1y#l<{)Bmd|Lm&Rqmri+o95mk?;{cRG9UQk(l
z{KY}Jf0KJBMmX&W%e;AhZ~mKS`kc9`j@MVNjg(kvap*Hg%kjdZO3er<xrS+7$@65D
zrQ+?|CMHT<%d21eW9q6!y5|@lOqbvNs<8Zl+?W4#N6izzCM|FNcXl5G0|SGntDnm{
Hr-UW|Nqw(u

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/218.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/218.png
new file mode 100644
index 0000000000000000000000000000000000000000..52530626a429d202624f72c4309f1f106a8c87a4
GIT binary patch
literal 2820
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
CrZ}De

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/220.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/220.png
new file mode 100644
index 0000000000000000000000000000000000000000..b5964b2715b6fb4fd993384843aac0973395360d
GIT binary patch
literal 146
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U##^lc}{}zvL4J1_l#P7sn8b-eeo~72oDJvNd#ywe?B$FiD(`t#X`v
yBKgV0my*7sJUl#Gc#>Ba^<FfPTg1l9a6Xe~yVuDZe;61T7(8A5T-G@yGywp#<SWVm

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/221.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/221.png
new file mode 100644
index 0000000000000000000000000000000000000000..ff6071bad1d33253fb04d625b496cdb36bbddb3b
GIT binary patch
literal 245
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTH11H1J+57jda3=GpfT^vI!dXrN!w*Eigz#P+=WVcN7KtikUyVHOC
zkK29ScU<fEfddB)w0JiK8Dtr}WV`=^;ouP_F(<Ble}A4Y_+!a@_}A|VM}$|LIFX>~
z$=bX#LPGN1-#_OKo=Y7`sMd62(-U)R)1M-B=D>ji35o{~Bq$u>NEc@AF#2K7%zXHu
zgGb4pKYhmb6Z1C6@GFOz*%^E|nfpVUhhgpurJX<GPR(IpU|{fc^>bP0l+XkKibh}q

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/222.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/222.png
new file mode 100644
index 0000000000000000000000000000000000000000..08d9e225999a18374839a2cc754aee51df360ecd
GIT binary patch
literal 410
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RX!<w}s+;7R`wa42(9OE{-7<y;mpOdLIsuXq`V>Eq9iKX5H2x0Zt`X
z!6R$!4_&<(`M+iHxl4O@=lR`Tnk*}`v?C~IrAL6r<yrl&gR)wW-Pu*SjQjf@{^$Gd
zD6e?$9W+I7(j+;i3;d-?nwQ)z1j{<8u<AE1Oq%NzY$|3X*y^){$IoX^9?KUs&F?<*
zAFGNlS@KY?*xrayLz?k#%XAgBb<d7n-Yorc&YC?%yMDDvXBOL@dhmAU!nlkALybba
zh{fV*`wu?T5S+84E4H|0=~15KUXMeO`~N(?cPXjt-=rO;TXw7|x%ljlj<3VsOHZ$D
z7H5y&>AGsCq3?3%v)=@S6V86iu#%ngM*aHxqb>!Hw3Jxd`}ul%)uW>MStbWbI2C;k
zeDI=j@{j3RoKv64KB>)`#_o`vQT+V*Ww$G{u7CTyMKob^P~N>ozv>_8XH+EnPrEyZ
RgMop8!PC{xWt~$(69B2PvKjyY

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/223.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/223.png
new file mode 100644
index 0000000000000000000000000000000000000000..27da235bc70c04011749e7d5a0e3ee29be40662e
GIT binary patch
literal 151
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxS_<p_xCR_Ffdqpx;Tbd^d^hk%=$W?k=;V&<A)hir}MRQiq=ot
zEL&|jnR~SiGcz-@upXz^!4(G=v-L~aWPNCm;$aZa=2F_Z!<e6efq}u()z4*}Q$iB}
D?kOx$

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/224.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/224.png
new file mode 100644
index 0000000000000000000000000000000000000000..fba8996037e0cf45309c313628d775604cfff23b
GIT binary patch
literal 151
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxQQN*(moyr1_nz{7sn8b-eeo~72oDFvIoR}_$jgbP`q|dk!}Cf
zzEGPB2eghKIB?)Vi+59yLDq*A2N$#TOW7=7V`ez`o=foeowlD03=9mOu6{1-oD!M<
D5pXds

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/225.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/225.png
new file mode 100644
index 0000000000000000000000000000000000000000..acc23943de8d5712d09ac176b9edbf2534bb001a
GIT binary patch
literal 147
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxT?UsSq<A67#K`FT^vI!dXxXeo&PYOkv)Mo?$m)b(ygI+H}?wj
zTx3swbm`QAmf$uggRBoL4lZWvm$F&F#>{a2GKaK%*|kOn1_lOCS3j3^P6<r_sE98>

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/226.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/226.png
new file mode 100644
index 0000000000000000000000000000000000000000..8f43316c680dd169ae90a297722331a65befdd80
GIT binary patch
literal 256
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RWpTrwU`Ri|0ND28KnRE{-7<y>BnsavgFIXnR;*+PQjycZN$q^NoyT
z&8F?2S>jwg(i4-HFL)rS(wq0s<J6SR9F79ZXC>`RPmuUJr$v=FWHsj({(8383X5e^
z&TW{+7Q+AK&Z2O!hCdl6&bNJ1J+Qk~KQF$Gb#^3=gUIhWL6(be<R7({n=$3^hc>2b
z-v#@R2q%6NVUP_q*yqFeqPo-j2=BgqyG!$Xh5!65|6RL-Ni9feXUE%mdj<vu22WQ%
Jmvv4FO#rEqV*daD

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/227.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/227.png
new file mode 100644
index 0000000000000000000000000000000000000000..9d2a6556f0796c412ae9498ede3c5dd5982beaa5
GIT binary patch
literal 2931
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
P1_lOCS3j3^P6<r_Ix=_G

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/228.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/228.png
new file mode 100644
index 0000000000000000000000000000000000000000..efc38d4c716f41f2b207a4f6cc940983173be58e
GIT binary patch
literal 3019
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
E00lvl*8l(j

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/229.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/229.png
new file mode 100644
index 0000000000000000000000000000000000000000..c433ed9e6da4ed1090acb54335e1d9b6fcad4ed0
GIT binary patch
literal 164
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RWo^v!wcLJHLet3=D3bE{-7<y~!yV{D00juuFWd-&uR<*CH)D(;E!J
zE2Z3c<rvvE3j}@mE_?dFzibWr$~=R^+HS|<tu5YqnpV7M{kY=b7IO)PJLmZni>K|~
R&A`CG;OXk;vd$@?2>_zXHNpS@

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/230.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/230.png
new file mode 100644
index 0000000000000000000000000000000000000000..3fe55dc10a1a738e059c6064485f43949a94d183
GIT binary patch
literal 172
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxVlm0nZ*|w7#RFKT^vI!dXx7kD}JBf$kxy))^_Pi!nC(Jr=Djd
z8YnLg`<)?SYybl1qEm_+)Y$%4p0$@c#sdO6Rj=P>OzMlg_b0)4QR_ix{T{}hX?(}$
UEsFoez`(%Z>FVdQ&MBb@0QqG)b^rhX

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/231.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/231.png
new file mode 100644
index 0000000000000000000000000000000000000000..82ba43a3af028eea86b9fd02443953c638a90bc8
GIT binary patch
literal 3043
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/232.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/232.png
new file mode 100644
index 0000000000000000000000000000000000000000..8577c25bd3c8b085a12c25030b81e5b304ddadae
GIT binary patch
literal 137
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RWpTD~rj@%z$VH1_o_U7sn8b-sCB_v%b!6WNYXYYwMHhVUqa&|G&Ld
orSp{px3)#eizk}9@Uk(?IK>e?&+qtI1_lNOPgg&ebxsLQ0C=(~i2wiq

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/233.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/233.png
new file mode 100644
index 0000000000000000000000000000000000000000..33066499d0a6623939dd1e9a83c8c5525558c77d
GIT binary patch
literal 253
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RWpTi?zvtQh@*l28Q{bE{-7<y~#G}E56NdWNYXYYwMHhVUqYCBciPJ
zDeunz(+3V5IIv*h37;tkSz`Y@eqP`9ef~e=HMc%CCtmH7=Xr1cH~q)Q$s3|0I5dC!
z`fKkT^ftY1ZF`-Ofq{X+oW0-L6XT5anc1zC<7!=4k1l>*FL|Z*9$50u9i=l0>Yf%B
z9J^*THa0%IwAP-dU5x9{%_9<LPE5$PpY^$I#X*K6draP3%C&4@U|?YIboFyt=akR{
E0Q1CV761SM

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/234.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/234.png
new file mode 100644
index 0000000000000000000000000000000000000000..b2fb61dbd0ea7f746536b65020019c1fa17e069d
GIT binary patch
literal 2837
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
W`*v>9u`>(|3=E#GelF{r5}E+i2}0Ze

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/235.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/235.png
new file mode 100644
index 0000000000000000000000000000000000000000..de17bf8393dd9fc3c7b601d0e7f49553f76d1438
GIT binary patch
literal 151
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RXoHr@8{)xfuxz3=Ec@E{-7<y~!y7XaAgUV2*hmUFZ}1Yp<x;&g<Go
z`}fY!><;Z~Y;0`goX)Z|;mU)+W_MmW(+US(HinooF5^>`)y@nI3=E#GelF{r5}E)t
Cqb~IT

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/236.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/236.png
new file mode 100644
index 0000000000000000000000000000000000000000..4babeeb7ca2bd4af882bdaf462a6074499cfa9c0
GIT binary patch
literal 380
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{W>=fx3SulTkM+{7#QU|T^vI!dXrNOGJc(BU_G_yy~MkHVo46{+4JQR
z0{;H(Y;0_7d}yXE@4R6PbDLDj0hZ()8Fy17rtIodJp9mvnftPRlT@eKk2lVmY=-;v
zdFuZe8vgltyv3hCu)%Ok$=OIYHa51nKL0cK>kI!qe){9gpMSG2$fvm8T%DH1Ra<lZ
z<beYRKJ>+Z_<d!=m)9)3|Nj5~U+>hF7wvBJXGd8($nr*K?^egJFN&J<mfbo3#camX
zs`{^vPF*$kY>gi#COk+>NJyyo{O;y;*59ko3z$^gJzM&%MI_R&!0>~E?f1Ti+~$T=
zZ3z<chWm>9CM>$H6E$nU<P8f+2?>cQk^gG!lWN)%tkMM2ekQwkT(rKnpJ)HVoV08E
h=Nx$<S(V7c@G>g&m!U9EF9QPugQu&X%Q~loCIInnrF{SZ

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/237.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/237.png
new file mode 100644
index 0000000000000000000000000000000000000000..85a0664c5ce94f045586951d41c38a96faf8a1ee
GIT binary patch
literal 240
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{W>=fr=j|!{KgXu3=ESzT^vI!dXrODbp1Zxz`Q21@a2q4zw^UxJaJL3
zlbd|zM_*`PV`F0@=X92(30D#>@uofdcmBYcUgLR&4BUoYH&p){a#a0E`tg5$<HNsx
zW^M83Id`{fG)FG|Z`9%TKOrF{A>l{W%$Zee^?Q#T`tZ|2yQOxfhVBu`KmYla4>w2U
sakQU^Q1rWLFO$>7tH#_T#lz0<OGAw>x3VOFfq{X+)78&qol`;+0E2a1$N&HU

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/238.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/238.png
new file mode 100644
index 0000000000000000000000000000000000000000..a587e353b2ed434f04c7ea3e24441ba2831f3e7b
GIT binary patch
literal 3037
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
a40D%8@|YfH@MB<LVDNPHb6Mw<&;$Tj$*Yb4

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/239.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/239.png
new file mode 100644
index 0000000000000000000000000000000000000000..9b2c63a54e4604533710f926fc89ddac2e9df95a
GIT binary patch
literal 2990
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
Y{Ptd_>z_3;FfcH9y85}Sb4q9e009Vw6951J

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/240.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/240.png
new file mode 100644
index 0000000000000000000000000000000000000000..097a4dab5681fab5316683991a997572d216e1eb
GIT binary patch
literal 434
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RWpTrwY?4UkMfl2F4Ii7sn8b-nAD_Yqtc-9Q*j*ve<aN=BH`iJd4&$
z?OnQb)8Zv+o|1`+Pq=x8{bN{Jc=A-+gf(f;?Pn-0O_?>rQEKM&nQpy>eXZW>&id?4
zFMee?*MI+g<ym6xrIUAd-F1(<(<``Nev>>~hpPHcFV;8hjEhcct_x!Rb~wY)#PV?O
z)ogB^8GSGE8yf=V+e^PODVD!^IXPt2owWfTZ#7pRdz&5Dn(+L*L-vdt-V$-sP1vkg
z-Fxud%c(tD<x}Ca-OpBh?Q9Z0z5kH-Qpub9R6c(Av#)i@(YMQEw>~V`#l7hNAwJEB
z_xVc}9%6M+o4oK?a?o=F&*hh05AI(jz%*_5*_;KT&!(g@2CSR%<+{05?Af&v6T+v3
zMjdB5o0QTy@9u^|-ecFz-~XP=ysmr3kIh_-X%9169du%jY!`a4^Ra2$V)ktd=6`r|
rlI`H<+S>sPmbJT1{<zt<R^x!S@VE5a&$Ir5f}FwA)z4*}Q$iB}D?-PU

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/241.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/241.png
new file mode 100644
index 0000000000000000000000000000000000000000..0080a167553681c5698549cf53da57cc3874e076
GIT binary patch
literal 2888
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
YXNooEd*6P<z`(%Z>FVdQ&MBb@0O{6PS^xk5

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/242.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/242.png
new file mode 100644
index 0000000000000000000000000000000000000000..9b775eb9a6204a8b6373c3486a2b6287d74363bd
GIT binary patch
literal 449
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxVpfaHIGag7#Nd1T^vI!dZ%9T*EpOgap2?o-R1A6$f!7JXl9!J
zyd1>GH>tV1yC|5i@6<`pi9(*bn*S%A4ifV0n$#V{=cV~H&*avhZ8z;F+ZSKl^zGla
z`}1z!{=8@YysCNMMb~^=s%dmeWlovquG6`<{@nIss8#cy;$=}bd-27+3WE6?EOvw(
znizdCII&4is%1Mf!?lM((lRAlRlXN)OmwXHtXjN{#hT?!xz;c3uTMWt7FhUI{D=A4
zrVY*q^4gOYc*W1M=uTK;lfIDQTg?iQ2f5)qVY5rB<PJuBd%mF3dK%N7+^&UEll}A;
zNyypPyxtyK?ag%~E0pK@tOe5p<HYCt1nTNE@J>%!;@7XXK1qW6=S7(ahHO3S#b2ww
z{Ixpw`i}C;^@sXRl{pSP-eP=B;p+?ErUz@z3(aEHw|v`U{_5hDxAMO-|3+_QJhR<H
z?aYPUDvg=)FR%2ciX1SztTQv`()!QGYbQOp;(Sr#fPPL!X<wJ?+Eok;3=E#GelF{r
G5}E*Km&d38

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/243.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/243.png
new file mode 100644
index 0000000000000000000000000000000000000000..a0673c0e4e2786360e76bcd6ff6d65f8b29b7184
GIT binary patch
literal 3452
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/244.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/244.png
new file mode 100644
index 0000000000000000000000000000000000000000..923e1368ef2a83749ad67facd7ce688a2409615a
GIT binary patch
literal 375
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxH`{{wfm|V7#JlzT^vI!de2U=^*$UR(RzNbr<8Nn<(3X7-J?p|
z9xU=}+F?CIUV$r5ZxP44rU$Rq{9}A>bt`brZYyqCt&$9fC7vFAlV?A>*5AN>?_;IK
zoQI;e<((P|n>b$D3wb-N_StslNfPIe-GWln*RRM?t5+6NJ#e>gVjI(6Zs~t@EXjI*
z_s%d(xE4I)tH{UAE*1F)cpv>SIzDZ^Om3<7g8wW%Y%W5KTg3$CaK*?!SsZfr*sOzb
z$CI-i)fwd8McP<z3Y`;W^VoCUdWk)|R~D(ycyxH}aW~)7sU=r=wy9p&S!5uQCebQ6
zP299Z{&<CCnpVi&8^tQOedoSi=C@qO(th>FKTCWztL#fTa$N4dZ)uc*U&Ho~&wunE
gT_y5O`yOLUTyyH0@5|*G7#J8lUHx3vIVCg!0AFI9zW@LL

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/245.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/245.png
new file mode 100644
index 0000000000000000000000000000000000000000..bcd4652e3b0874a14963db07e7b68276a62be233
GIT binary patch
literal 2932
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
SFHr^t1_n=8KbLh*2~7a>uWwWU

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/246.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/246.png
new file mode 100644
index 0000000000000000000000000000000000000000..f8ad19709be8b5d8177f14a5ecd177bb39b10b60
GIT binary patch
literal 3646
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/247.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/247.png
new file mode 100644
index 0000000000000000000000000000000000000000..9318eb8fe70febc98c026e9a4ffd1afa3d3208d2
GIT binary patch
literal 3740
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/248.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/248.png
new file mode 100644
index 0000000000000000000000000000000000000000..b2cb6d37d7b7957319f3398bdb7ddf50789007dd
GIT binary patch
literal 3105
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/249.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/249.png
new file mode 100644
index 0000000000000000000000000000000000000000..2d785b7516a7e614ab9928437b520a57d6c700e3
GIT binary patch
literal 2972
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`(#+;1OBOz`!jG!i)^F
z=14FwaQSCCI|l@0<d@_ZXXF<scse^P6cpvBW#*(ZFjU-{8=M{z{8G&J`@Jtt-W?57
zyz_%ZITV7Nx*J3$s%a^53V3xWF1#rkcu>&Ql|}l*f)3`szJ?yrKpmbgt{d!66c_b1
zFYf3%_4{G<;_PdCzCSzrZ|ilt=W9OC-F%+?00+-B592`72A-8pa)J+<j~_Yq@QI#7
zBbQ16g8;|o6vg7d%8U#@>TGPZl@74)V_>Yf%+0}Yz<2fm1DW>!{I8s5#xORtFditG
zXyMJ#Aj05K)#tQ~!NHBOVeSmIV1@-O3<;-`lO8h!=rSaz*FU?=&@lJM%xXr4=qZY#
zj0+|*C<v!^xG-c`Gpsou*5%3&VZb1g=6%GH;f5}QfoFJ{2g8Q#3<u5$aBpJZ;9)Qb
z>}b_wV5w$EIH9au!O$|3LB#D-xXnlHbpp?|7#J#MZnD{_V(Ho#&7oV!9v-eIr*Y0x
zTwBB}ktuPOgWjRanUY40Cj1XRpJ8BFFi}+SLG$Oo73cWYojYgNw~a4e_tk#3|4K<o
zkN-VAzq-JIf#G3E-Nk=8`kSR1tl1iJ|1DB|$C44py`c1aciJX?hph|?Ufv4-TmT9i
z*M$>y-n{wr$&(viN1UP)Pleb1OFtBUApCF6&pMkw-@iWC_eiDDD7Mj^<;R0VXTJC>
zl{r6&vnA=yvwrtK+qwV$k-e;R#4~AUgqFzTK%v4umsvfZjg~5PI!)3%s(R^v%A@-_
zznSgsn=)+3vSX~CsJkLInfaTyx<Ew9fk)pN7(VUJKX^rhgSjE2`QiEU|L^Vpx-U>=
zXh`#%RLH;(=c1w)a%!{vaSjFsmj#Vl8yuy-9F)*Gz$SB$_0B==KM7_nPAW$ZISDv%
zr8LMCC1|c`a?)r!yFpefLH~+_tjU4EjJC-Ie0qmMcktO3@c&BWn0HWPPa`Lb;|UJo
zM8#Vjj7eP)%6%N-Gh2Ts9`s-l>Q+%W*&!0B<UP^U!!W2TL?P5e_LFT9lVy91+pdY$
zCm4*H{<Q6JH=NSADbV%`&sOK1E6k-@+!k?PNGUO#)i1VS_JyJ?Qno#23!h(Doxy*r
z-_H5C!GRYN?8ZlO4D^m2cG_s6!#O$m^hTvMJgbjMZ3tV#yu0&j^7)PBEJBU02RO}G
z%AFJv<s3aCd?NgAc&t#6Q85v`#c9sT+!A<5U1{<P?=5P(1b-fpNHQ{PkMPh@z9!T!
ztS?aA;e5ngMX1x+NPXu7CeMvaLM{nia=Vllr2JB6<!loVDdov0Z>3~!Vz->4qo94F
z^~u~Pho2Zfk$$51DVl3;l0)H=AHk0_f=*?5Nj?>LYVwpVb%v2+=;B#HcULS75j5?O
za$37^ThRKz_7%b=rL!#0Hj8<BFI~H6>Sd`6@r>`8>tB@Y61+QA&TsmK@Jpv(y1$tI
zg85514{w`j^YM;!4awOO>=Nmc<r3>>_$-sW+%0)L#K7F}^^E5;`Df;bMrdu*su7)d
zifgLZRJEznTKXX?S1nt0Zxwgw=g`w3{VU^wYuCAj8V5gK$$4ek>d;kl16~J92dA&J
zUeUfPeMNqV{gS%KznyH6hkXwFJ1+@burdDeo?{B!$&#BZbQH6BSGScmnjTTxc=l#Z
znbz(Ze`R-f+pb!<(9+r1%Q$><(B~;>_Uw;m6#ke~;>Y=1WBK&YbzS#F-fKS6lwM}y
zv(qp&CVSPi>C+-sd#nyz?f!bN*}AvO=Pujpx;yfBBcJ1OFZCF8_w@dAtaG0S-weLH
zoNKw5udUVBb$Y9^mr5_(?NYu!Z~40!^Y+Cx%=5`#ey?)x^ItNx`hP?I=Kfm#)tx7T
zZ8MJw+ijk65;jLo3-fJc^^f2F80Z{(*ui;e;?%_H4_hYgylAuds#~uce^2JIn8zxQ
zbC2a7Tdc;Wrl{ua`^xv-tRUZ=%QTl+`&j!NKYQlvqO;d#n$EU0yl(V-_Vd}-XW!qR
z5LFSSvu(w;9jTt1o<uE+e79{+UTc(P<kE=HsMyVJYv-<2y|#Pp?&X5Zclu5CTRrbu
z`r!>9x1HR!a=YY)r#IMcuiKWptu`?|Nj!b~(RGL4P2M}Xc2{lhUt4zG_M3dGWus*4
zinkPrScO^Ln{{r^JNw$BU#7j(Pmee+aQ=qz<88vHHIHP@4W513JzYF~XL0lAj_ywH
zrqg=U?eu0#AG>>E?-Q?*uZ6J>t1f+=JA3o&LvL5yUjNSQUFN&?JM+(&%-5V3X<U5a
z@CoM!fln{mbI+e@kbQqmoxihxWBS(T%KFLr6T{bD->`jY`Ks@U@5SxD*%i%yZ1>p4
z{GQRh$oMnn2ezNse%k+V{=E3s`_A>s|5N@~{lCbtyg`*Qow>8ou`!zI_m8R?#r=Ku
zR<~2XZMyl^v1h?fM^VTArnOB^53W_rIPqq}TE*|rXPldOE|ae{pzg)B3+#!{61xxA
z@u;`9w}!Xb_Z4(RNL@6XZd!ivj&t#SmtQW^T<*<IH}tn$uj^&1Ww%N%%jTB(E|XpM
z$Mn)7&s>d|8{wJbEn}&twazRrXW#ulZ$Gy`n)`_Rakcmi{S&bTl?%@u`qH{wY^9!%
zj@2{=pAJ8ZDIXjKv{s1qsD2VISMB4fJS2N4T}l6<*~N|<&M{hYexE$Fe5)qCnYhQa
zQst=eQk|zeThv!h*yF?Nb9c7YJh5423b{tMR(lPbCrzAC=(I}Fck;IMSLx5v%1*CI
zZQb<mXkPbreYvUZC$l$CSi>5r%eBpE*^7`Ujq6(Mo6=Lm)Apb3JY_j;^*rsfZ_jK#
zb$f#OocHtpzZE(p^l;L)rET8fy0Q_^_O8jY++<T&d7JC8D64i`7~2|~9bMbBa<BTY
zej7f0UEN-_D&OqJxPzyf4sK=4e$5@q^|ZD2^_}Z)WBnuaBkylb{M9yB+D^2yYn{k#
z@#&)VH#F{4Je6+GKed16ohe&Zu0FCe<$T(uw3pBB>CTJho3?8Dv*~<!yf<%c;k_TW
z<?YvRuDA84pVhd%yLp@Q&c*v}cI-)Ae)8N|Yx|HTAzwm%g_ym&ba!jw^&fc`-$_^R
z`DXIw>h0(~-~Za3+;=;aG1T{J+SSzGp1(JLw_n$}>gA7VzjI^P`sEhBJ<fcI`7gUN
z-?r;JuUwVAWE&FHe@*+fJKu5negEdZFW2QY;|=YdbL^3FflK9+m)|+>f0yI6x>eRw
zz2+hNW%)AMbXol@r&*t7xy=rq^*cH#dYAthyNlOe-K+ZJep{Y@j)_fVrPt?>lbN?(
zHeH^a{^@+r+^KVG>-2u!Nw~deTlMqgbN93O^WX0hD0z6v^?&zs>pj-zVm|FC`LyZw
zQ{nI(;j`9T#pk{%d1do&@@4<yyXWklwQgrj_Re=zd$(4neSaxE&-~ooFMBILiv7QK
zb)Kc|-Mycy^1mPb{`J1t-MS+6zvoWxzFDsRZtWibJ@H>0-a6iNzT1A)KKkFC8}IMb
zXB{YC@cH5$_wQ`2&FBA3{Myg&%-TP*|8yH~+v|B2c9xcp?2G=s{IlHoe9C#XdE);T
z{X4x*Tui_2$JN)@&t05xapCk&(<krGty%i_)q&TN>u(=BbWCpF$qHk`xG!P9-yST#
zQ!e{{@qK>(Cp8N78viqXZu}a2VfpXLl9MO@XJMZ4`A@R3?rjDJ28CpgAYTTCDpdxC
zhGqtapZ^&c8eTFmlo~KFyh>nTu$sZZAf7)d{-_%R1H*Ao7srr_TS<TZ|F>t>We{fW
zW$<p8|L^~+<QyKE`ju}U^{(14x#-V6<2!<X-2X1vq5Pv?@zi_k!){mahZxV8xX?pb
z^_$I1kvRX9ExV7OJ>fJ_JmLcDw*S=%zapAKODc2toBLX{N`sG172hr?vs~3+&#zB?
zyVzcPtT1|WKI(wNF=dy%2G1)0{oi`y=l<_A{{2}VB=P^}@dF#avmTzlTHbZPfk8*m
z97hQdxc4U|;l?)+r(oV4-ha~*5`UdPaKIt-jKvc!#RCj|FT>W%)l$)AU|?YIboFyt
I=akR{0PVMo*#H0l

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/250.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/250.png
new file mode 100644
index 0000000000000000000000000000000000000000..0a68f35de952e90fac0b33b40674f3fb9c870c29
GIT binary patch
literal 323
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RWpTD}#LC&K!9L28O4eE{-7<y;m<8dNDgn9R2v;eCAyiW-U%mGe*Oe
zZ+sG$FG&B$_w5nm8eQ9lgt=bUoSuq-I%~}zWGSiaK78iJ5})saN6H)GKi(5wH(&YG
zlAxf89sN#{!3=A}a&P3Hd+p4ZEx$+nH_x-<PwJxCrJ2&d3Qm7(y(%c^n25Lz|K{Kx
zHn9bn=~sG^^?#}ex*Pv=3J4QyobKAc^7c{p6My+8yY{bWWp2CvsA2V+rfFwS#x$SY
z<bB}9@!7w1=hgMC5cnW*XjN?W?fsQk9=%pN8Xf)jacSV*NB#-7ciKzlvz(ijSugzI
b|LY&(`wzNv*PG7<1s8*-tDnm{r-UW|pL&I{

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/251.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/251.png
new file mode 100644
index 0000000000000000000000000000000000000000..e4fe22ffc7676114a7787ed83693d5b87dc35f50
GIT binary patch
literal 3025
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
OVDNPHb6Mw<&;$TXSE$DT

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/252.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/252.png
new file mode 100644
index 0000000000000000000000000000000000000000..01c5ab21dab57f18048130d4eb87de81642bf814
GIT binary patch
literal 248
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U$Su2%GxN2;oKs28LOlE{-7<y~!nS_WYjT$kxy)*48KGGw<N1Lu+_G
z9a?k6ct&sQ#K!5(od+G8+d&w_ZtQKHxZt2pi%7u+Bg2r2PNN8oVnYK11A`Ub8;nbG
zs?UCSeLntF%%7LP<J&lQ-#7U4^ZWdV=lB2T5iZ-G_~VQ0{)H|(XEZi8I!5;ND(1g5
xw)lN@x&0NxA3x^iAJK4TWS)PgZT~?Awq?qy3y*(qU|?Wi@O1TaS?83{1OUieXOjQ`

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/253.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/253.png
new file mode 100644
index 0000000000000000000000000000000000000000..dfd4a6c385127dc422fc54075be8d370df532663
GIT binary patch
literal 390
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RWpTr<lBpwZa+(21X4}7sn8b-nAFcdNC!69Q(NcMQ?@vy1i23L93%u
zR^Pd@$~BkkB{PqaM}~4+H;<vZ>zXrX1YDNila!ske*0COBO=S6-IP6dxSv@)<hB3P
zn~M_+$~cS^HJ5IQJ$d$X%WL(y`O$3b)y-KJDbi9;@0mp0@XpRCTEt=3BCEsmz)NF~
z-;SJD64Rt*-ng2_>Pbm0U3c))Gou@Y3e%e_YS!KOxy2%sCHLwlPH)ammK37^9VZj3
z@Uo>TfB&tRR=>XIPi%}<qkurSqlHcIniX6pv${U5c=h=atK=-L*<Q0A`-z3G`*-BT
zqE=m5zBr>LuXfi&-a7Rl=to(B`=(v4v0G}I_aCxde7<ed;mYr?&OhME*(FxJ*7?%e
v+GF3I+}ChWxv#(B+Xmn0dTy34pO`0o+_Je`W9I<|1_lOCS3j3^P6<r_RVb!P

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/254.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/254.png
new file mode 100644
index 0000000000000000000000000000000000000000..caed18859343cb4313b1df209d525e8c8f5b461c
GIT binary patch
literal 380
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTU`n2vyAa)~no1EZX$i(`mI@75{%y$%P69IMaVbj6<avZiE{w?V6g
z$dU`52kjglHuXOc=7^Mu{bk_felTDTvublA-%YD4D;FL~5EqV}v*nJorsd_QA8Pj(
z?<lb2{jsPq%am~~>o=SAVejuJD6(uzH7t}->ub)9<WQWFpv%GZQa(Jib?UO1-0ci|
zw%p#cQ*Z6G8uiC%cHw^gi#ghy8LT!-PIq1SMIutdi`CMA^_&<t!?MbAo)VV=8$%~w
zcVLtGX~%H0=%my)_HssHjY%wZ_hP4V8l1W4p=HomC{lRiHKW1391B^VD-WJqTkiOy
zV_9L-c9oss{i9jxg^hVHg61Dv`)A4TFP^8u<$|Oes>@r~&leVc&%W%@d&#%2{%Vzm
hy$QPFG2@ui3+dCAo(9K%=77SN!PC{xWt~$(698N1mL~uJ

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/255.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/255.png
new file mode 100644
index 0000000000000000000000000000000000000000..0f43c74c1468360f70dc74e03494ba15ea334421
GIT binary patch
literal 635
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RWpTr!Het+o$gg3{0|~E{-7<y>qX`djuy+9RK*<^7f^(XLl|QT2tiI
zB(TJB*3u(-T%2MaDkduz)Qi8?H@tKzRZN)Ex$}*h&>OX$4u{TN9Uqhy&DPNGx_csO
z*Ob4Rw`b1CE`F^P@+HT#c3s@P&(-$ND=YZjZ+t59pJf`>`pLY!x6W>FU%^kmo)>3?
zmd0>va20q-Kg>`%a8z4Jd2wN6+SP)YMvna#&u_oTVH#`LG;xYfaQM<wvSJO>nl#D`
z9kSbxTv%-xsg^(YfNwRU@3yr&4@!%8?&7U`X6JU}uI9tfr+2Se7h-f{>GQb@XU_Wg
z`G5Ot6GNF*4D04;^w0aRwD-}fsa!kCb~QX!KXYUG+&v$!{=0jgZJqe@LP@3-`&%}a
zcvRGU-sF?Iv*~zj)g3i$>*KO6!MB!*r#VSqHMTIVtNN|_&VHuq)}*4q7H(ZBy}5T=
zly4mCelIq2BhNKX%{)n_oNq0eIsK2mo!G5ot|_r2)?-DIed)chKc3FVI*+!xI{(vA
zJ{ot7ZTU+3Z^3O`Omi&PJbN1;$-Go=*5133fecICJPNmJxO@%iaDJ|0w|nxY2`fXM
zB&I9o-1k2Gq_n1U(wYZJ#}BIt|EaJ#suyjcT=m4k?*06k5@yyLtE!5f7+ZE}h5kAm
z;q-064v!`KV~-#E73Jr5FTp176lY8e<4yk;3sn27{gnA9mHlcm3(7P+e6jxeru9zi
tMPFoJ-k5uzZ;h~QP4Db*UcD>w(gIs&vCi3N%)r3F;OXk;vd$@?2>`8;9(4c!

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/256.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/256.png
new file mode 100644
index 0000000000000000000000000000000000000000..89967cbd6b9def6deb79e9c11451af80277453cb
GIT binary patch
literal 306
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{W>=fr=e!)^)=@i7#Oa2x;Tbd^d_eyB>Xt<z<j`k+gVaVLL%Z+aYnMi
z<Nwc{bu=X2M-~Z`7|!mqJS-br%~n~c$#zZmv}9eZrRRl&CcS^>l@BP~+d41t{^9#P
zm)?2uJc@lS`R_A_fXR&1W0&nKL{CVpG<x!h)5xa!@2tePSM=EaA24WJduJ7of1aFr
z#*g}%h=70(|96|e|0i!-^rgN&_Ur$4>F__|A|gjtw>LIEv_H6@;{QL}=KlHohv)7t
zm#|Ptkx;T$H{4VIf8K)Z_JpF_5~rPn#W%mWm$<NX=N4`*2FG=QZ6%*3Co(WFFnGH9
KxvX<aXaWF_1bm|a

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/257.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/257.png
new file mode 100644
index 0000000000000000000000000000000000000000..ff347ae1bfe101580f9914e57207b7ff7cbc2558
GIT binary patch
literal 3326
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
TCHr>_3=9mOu6{1-oD!M<i<3Y1

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/258.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/258.png
new file mode 100644
index 0000000000000000000000000000000000000000..1f6c7665207e2a4162f4766f34938ea87539d478
GIT binary patch
literal 471
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxQWG&Z``pA42+eYE{-7<y=yP+^->OGXnXj5j-+sJq49<&iN&iQ
zm}%zlXe|*a6bux(a?Q>0#$HxO0UkC-Z+!=8-O|?FZJRa-x#*+>_6S{w=#i+ORG9YI
zQmm;pcG6G12by+q8*dn|xm<g{fVXk}<jLt~()IrYYrp+zWqefD`1byCmG$y}TN!n>
zANh5^xK8f*gs5=dZei_@3r{R?+BxZSg|zi$<~=P<R}XUe>OHw&`qd?Ev!K8B6wSy?
zjR}Tcq6e2HPW7-&d6`lB^hV)|evURNrHbpOOFkzC`Av&GuO~gt>A;UQ3g7q2oB!&5
zxR#OWtv&-wYl`L-zxv)#yO<s37I!ieb5u_DA7uGmt@g87pJ7MT#(+IZ|LgbVM94(m
z-E|@R^2`qvb{zrsRqkq{hYeS}N-j)N-LfWF<N02j$mJYg+d9{pCAsu;1uzKzaG3a^
z^x3p!JEbQq=oa1m-k>3IYDVNfl{qylVt(^nKh}NZnjVKsY<vL2<yjjt=bcw#I%O{M
bfcMPlh66XAUfRdNz`)??>gTe~DWM4f^cKk}

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/260.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/260.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd801209b2883c1cd8c4f0dfe0c6c437d0f668a5
GIT binary patch
literal 280
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RWo^qnhx;3odR93=F$GT^vI!df#5y$ak<n;P}V<%x*{FwG-TwCMG=Q
z)H$Z-)_wN0N6x*2$q_j@9y&s7!o6)r7HIvwexW1qQrpS=olo?>pM0uP>~TO`$vt*W
z+(IUu&=Z^+L@PK}+&?5GX}A2~E$4V9TjtjcCE_xS$;?Z3tUpnmU>Wc^QSI;&j(H-F
zABFpA`S8xTpE$YpyYk_^u3eW@J9W9;+{GKpn5~}9D9B!Z!RADc>HLFQEnAsN&KAt;
j;Hp0*|L?GU%Y2p~-O2u?o8uW67#KWV{an^LB{Ts5&HQWC

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/261.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/261.png
new file mode 100644
index 0000000000000000000000000000000000000000..a9b1bdf47de6952e73435c96e09cce2f2f916ad7
GIT binary patch
literal 161
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxS`>nSob{)3=GbmE{-7<y~%(6|NmdlCi5UZ*!1v!Tk8VP$E-dn
zFQrT?Dx}Xe`4^r3znv%i=|?Ta^AALM)=Ny&o|yjO0{7#<=FEHphOI(;&Ff^Ri!v}U
OFnGH9xvX<aXaWH3lQvuc

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/262.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/262.png
new file mode 100644
index 0000000000000000000000000000000000000000..24b6a4bca6540e3c9f2bfb13dbf91cd37186842a
GIT binary patch
literal 147
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U(!$h!%@}d3g~71B0oji(`mIZ*oe&jQ{f)*(0nD_9>o<=Ujbf{@QBE
zx@lV<T{?B3CAiJWAnU`5gNxbvrEC_kF*7W?%TY5oS!4+V0|SGntDnm{r-UW|TbwR|

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/263.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/263.png
new file mode 100644
index 0000000000000000000000000000000000000000..5f3008748d97f1c338c201757243c40b0673ecf5
GIT binary patch
literal 3044
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/264.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/264.png
new file mode 100644
index 0000000000000000000000000000000000000000..d349a7da20100f79192ffe6d564a9c378aba88f3
GIT binary patch
literal 720
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{W_;8BeSyN2JT!22BsoU7sn8b-ldbGJuVlD9Jl{}_loKAv$`7(op#Px
zar5Y<Q`3J2M5?%nXwB@fRjKSfa^i>(Px#xV+;%grDAjmqENq|Wwc@~=RYA*A#C4^t
z)L-7oDc&V_=w-d|#$S8q-v2)5yycwFqBp9}9j@Q=<%z^BzBR{Vi#gN(i@)E0#yn8;
z#i4go9)INUW}4bq#N%4USNrzhr0AyOw#t|GCM->wb!f}>7fo+#wyk;cZgqu>-p@rB
z-gaj1oVi^xbM3^5^XfKgaAbViJmJjI-$M4AbYEGg8_(OIddX)=+8zEC6TA)Qcr4fT
zJXlg@7;G0%+0wUR8k^tSuV?&a)@@rHd|Qx(->bFTV5)P-lr4HPmp6tq>Bpu2sGJ^u
z`NCnzJ=)iTf9w+6oSY-~=Y_LLw$rhf#@QSHawVLQ`jj3X#2H#?tuZlL(l)5;uA%C^
zrGCxF0vt<URL`1!?R<X9LhUJCnPKg>4Ek4ZuogYynr$fS?_9pN^W-<b{hC*Qf8_~F
zE84PpqT}riJ02c7@Nkl`!6HW`L5=gC54W7_+`3@S$xhF}i6Lv1-Z)wEUbNrw>5a{1
zx%%V3Zt7|&wcK9%(q-m5gHH?Yu6J1Ke=unF;e+?2zm(R0zAVlvo|d=BPH)1-MP6z;
z$%|Y%jW}{+4Z|PjN?5%rINw#fTf@R>^`f0Rb6cvvOB&jJ@s66fOE9{YaW}h9$^M^P
zR4#CzyEnDL(Dk&7tEv52v56Wi8WE+>EVh@OT2UF;o_%evjz+_qO?&0D_c7M+32afE
zCYfv)>8x8)@=Z_rh3qPIlSmhll%NuI?u@&O7r#n1=G*>x{lW*udm3&?q#QFUa=%@1
h=i)E_13SM<cW|Da^K{!mb_NCp22WQ%mvv4FO#lO<PZj_G

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/265.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/265.png
new file mode 100644
index 0000000000000000000000000000000000000000..daf195c20648708591b3f508db4b32c8fbf221ba
GIT binary patch
literal 286
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxS`>nSob{)3=9W6T^vI!df!g8<zoyKY2E+(+4Gq$Y)d=5d{ztW
z<;{rfeA{6gFlhs$*aA0w<ulSYTa(h9OoW!(THfEe)1AS)u}1LKDdq=1JPfxPG(Bmo
z75o)9bKByZ_CX9%r;^M4BbFBCHJ&nV+ttP3EgUS^9v~y8=GHKAU0OS%`RNxs7(2Jd
zZ1g#-X2;aPsq^@A<La#?cN*Tl{Uo<TrK?oR_=EGalP`~UPf1Jj+afc!a$`<b;71{O
ojrYFwAIeqkdcL>6*WWZ>CC$7t^{q?~0|Nttr>mdKI;Vst0G8-*4FCWD

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/266.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/266.png
new file mode 100644
index 0000000000000000000000000000000000000000..2cb51a16dd4ca57a012b5ac250a5ad66a6179a4a
GIT binary patch
literal 284
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{W>=fr=j|!{KgXu3=I1`T^vI!df!e~<U8ab;Cg>jn-i;0<15wzQPI*E
zw&0r+?lA;*yA@4R3thANNMZqp#=_mQc?Z_5R7m_XfBJlLN!J<?w;3lTF5G8f-~INM
z_6^&23q(F=Je(S?^r&>ts#Pz3&)cN4_dsJf*Na_z=lL4ale2X*XC?J4%#=E0P%`<b
z;k78uE++;?mGi}h$97yhveGHrH}-l;<S_%DExFy-W~q4YTYY1`zn|#)=iRrTatR+b
oiZkp@^Aqkm{Otdw$4&N|E_PlmNK9;EU|?YIboFyt=akR{0N9vv`2YX_

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/267.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/267.png
new file mode 100644
index 0000000000000000000000000000000000000000..046aa3a6d090196eaed6a48e5960efde008e34cb
GIT binary patch
literal 165
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxQW8+S(CXL7#Q3=T^vI!dXsfxOMlxl^D+qQ^2nM>ux^;4{qf?F
z1UGSU@mWi_+}POIW=WiR^yrZjcd?|z^*NQE(&F>?eD4%{#&@v9<_ixS1EU_VK>37o
RX$%Yu44$rjF6*2UngFz9FcSa(

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/268.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/268.png
new file mode 100644
index 0000000000000000000000000000000000000000..068b38ef54a682cc4659f052a7666f74776f982e
GIT binary patch
literal 539
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RWpTD}(Cvty|YJFfi`*ba4!^=-oPHZ+38@NZb71H_euqn8ld5Daq>e
zn#nHlX7iR+@eYWNVJQst_|M?T6uaB9qk3tco~nh$%24)|6EqbzcB`5D8YmuA+q=;|
z|6P0YmH-y+L$<dYzuP>2I_L02v3L8waVk7fSitZq>65cU!pgrfoGBug(k%Y?e<&!K
z(m#Fuft{OeVxk@`h*`FAU*G-r|Lu2J*`77F_IY&4=-flTqv84!QYBa4Tr%bKMSZdV
z9L|bUHX7c^`@SP==jzw1-8<z!1qSQA>hVrBJL>KIIO!47zU3D)!!xezS87Sv9;I5C
zE@}BoR&c99-o3-pJd)R5*ISEyPXA$Kd4ADvF?ZRA-)1{2P2^}xOt@{fH?F_L%GYlG
z@ol+}K3Y6h=9+p(XPv}`$FZuf$|UcvV_YCts<Aa)!#^%P>$k1&J%737K{-qtBX|^9
z)`oTGn005);!wOG+In}Z={Ig>8P7!(Z`qF3^+sRuv-+me8D(+oisR=aJ@ZSfYK(nN
zd>033OgNdc;oCQjwQDZizh!mpABXG2x$!<XuDv|XTu?ICzqq(Ytm$*x!RC}n&yF2?
v87_E5cD28Bf763S`&R3)F!8<N{L3~aeWUN|GVMPM3=9mOu6{1-oD!M<qbBO7

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/269.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/269.png
new file mode 100644
index 0000000000000000000000000000000000000000..67e1e9aac9bbf52bb14080ed3a16899955473786
GIT binary patch
literal 3169
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
KelF{r5}E*DZu6S}

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/27.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/27.png
new file mode 100644
index 0000000000000000000000000000000000000000..8ddf0c22c9600cb1243f11131e9a660ceab65fb4
GIT binary patch
literal 558
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U)OTuc>Njq0A`;2F44XE{-7<y<4yNdt5G*IR5c_{yEF-ma~JWr>&S+
zKVj2-1x|0(iLxPcoTl?l{K0PP6Y}DLtB2y33#!6`Zv<SX^EJB6<I-Qo``^U;sQp?G
z0dFB+k&8R)<&x};RO<g6dj9S2hYyb)o<6L6AyAU-LiQG$bt{$|{*}6IJ6FcX`se(v
zF3p{HM0vP>G&8zQTUL;_Ht^+(BPpIopU-M?a1dNGOUypu>U)oa*6X`h`$tvOYPNpX
zZ@U;HIMw&h>*tBry>Dw-@%Fq|6L2~p{=s<9gCl#ldxqY2=5Z5l-)t<vb*hb3Va_Cm
z^HB#TN&CM|pV(U4d}YE4bEAmI3!<hUNh@csdq1hh;#0;3$Na@z_rAvb+LtciG(qZp
zq<3Xj{xOkki<3Xic_w5wK7V__)wuLt%|6)|DUQnzF}%|FVZ?Ir`IeX&I>9Wf|M3~=
ze)uQ2=Ew}qPa;}Q4|)Da@P2q6b|=oJQoG2ca>_l)qkDI#a);g3WenecAf?Exbzb!G
zfa-g^ch)l3$eITw)N4z#3OtKD+WKC<d&jq)Ac^%?FNa?};#<tPmH*g}ADPZ(8oo8P
z+g?ayo!;~)Q$8WxPITj=UL_HSx7>f@dQOyT`)e;dXL#_%5q{T%C4CI@3uisbJ$A;H
Qfq{X+)78&qol`;+0I_ZNKL7v#

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/290.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/290.png
new file mode 100644
index 0000000000000000000000000000000000000000..38484c45c1ad4cf584589633c91b1604ea9fe3b2
GIT binary patch
literal 3202
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/291.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/291.png
new file mode 100644
index 0000000000000000000000000000000000000000..46564ddbb54c11f0424a8fa359f9437d383c60e7
GIT binary patch
literal 3091
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/297.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/297.png
new file mode 100644
index 0000000000000000000000000000000000000000..7b9bf9de6991ac980dd189bea4cb6d03bb2a07d8
GIT binary patch
literal 260
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxQWb>ukU*p7#Nm$x;Tbd^d^_Q+4FloBbS7vq{P3&l~WkiB$}tr
zoT%vbfw$DBRr1V<69)uN{cJjzbXtfl&`(S9%#jlZCMf;rI#_nqq^*AWIpdJ~w+}2(
zI^Yta&Uk=>J6U&LJddaOcB3gC>_Isi%*;U&@xKop+u(D3zE;~Ji8BWd94L4v`_!@F
zYC=}i!gPbjQ<KX=PGzrXNWD5&B5KCz1B<i@CabX-D~UT@VKM2pVNh7DGWGQt&#ep$
O3=E#GelF{r5}E-2Eo12b

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/298.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/298.png
new file mode 100644
index 0000000000000000000000000000000000000000..8d9ee26cb801accac4a0c0ccb028e04f857f8511
GIT binary patch
literal 2877
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
F1OScNRZ9Q>

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/299.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/299.png
new file mode 100644
index 0000000000000000000000000000000000000000..f77fe6f8ac31cd597e7892b55e6bc3f30b48ec36
GIT binary patch
literal 408
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RWo^lbAv?!`fdA42)KuE{-7<y~%(6|NmdlCdHr@C2{J&fddDcydS-9
z_ve{kCX@K%?;lg<?hXa!`Lj)#yLT9*vh9!F)%q~gQ~dCL{reA+eCE92d35z9Ptwmq
z7s)dna>wMay-%!=h(CFtLHWhf-ChzdM#>(>KmOmZ=eb^5BUxu(*%{1itZ&}@>})R2
znLT$Zc-=bpycb{h*mO!`W8=g3&)4(Bf19uJ<`KU&zkEaCzrDY8e$0Qk-^MZa|3ABQ
zF~K9RnT~PW9Q&}~fzh?J0NV`{7VP9-<RxjBcdtL3x6-ljfr#VjK%Rg9zsn!K+!Z%R
zvk7FX>*J8N{qy%vN;6<)W<Gqp_qT*xs)@m$zds~h|J?sRpXdClUy}FE#JFAvU}M{2
z;Kp`_sfMQ}FN|l+rAIvVaeI@0Z27Hmcz*c%4kMBE2d6O25_MwWim$(9w2AXA0|Ntt
Mr>mdKI;Vst0Pmr)DF6Tf

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/30.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/30.png
new file mode 100644
index 0000000000000000000000000000000000000000..c288eda81631852ee988e604ddb3b9ac117dd29f
GIT binary patch
literal 325
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RS5klYs8MnRQJJ3=GdbT^vI!dXrNUGJc$AU=`O-+c$mMvs6*RmyZ$`
z2y9R&wyXW6sG)G6Z_$CXzB3!=%ZK&|B&4PNI_BgN=-)5hyl$O@C!4W>L4o1B8->5m
zF8ANxA}JvuAtNg)v13Ps<hH!Myx|+OugA9a%hyjx(K0r^Y<}$j|NsAwFZb}zw>tdv
z^m>m{LuTcoC$e^PPAI4!Kd+!~&$#ZvrKLVaO-+pn67O%7PJei;*IY&N)bZorrY$(A
zs=C|5NQA3}(@oB@p}+sF?!gnv;tO2lOc}jhTF!0XU;n=_@N&SSONKie43(13hR@nD
dBP@}J;SO`KCU;G~DFXuogQu&X%Q~loCIE8;e|P`@

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/31.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/31.png
new file mode 100644
index 0000000000000000000000000000000000000000..33bb87b3ac9b40b8a07c0ad694042bd878a9c654
GIT binary patch
literal 137
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RX!ro0zEV1_O{HZBG}+5R2aA81=;;=Qpx7bc(h0N%b&E{Qv*oUaHdh
mN`jl~_IDRgNH1bzW|+dj{%c9<sw@Tu1_n=8KbLh*2~7Y<i74a%

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/32.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/32.png
new file mode 100644
index 0000000000000000000000000000000000000000..51ece017cec4f19ee0f2a8dcc7ee0410ef9a11c4
GIT binary patch
literal 145
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U#&7xT0ik^|f*a1_onK7sn8b-sF^ogdgV{n04kJI3Vz}J@(yoHMX|(
xtUF4K3=AGlTg1~NWs~(`#lgjF{3{MJcuKQzzumyIk%57M!PC{xWt~$(695ukEkytT

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/33.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/33.png
new file mode 100644
index 0000000000000000000000000000000000000000..24b6a4bca6540e3c9f2bfb13dbf91cd37186842a
GIT binary patch
literal 147
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U(!$h!%@}d3g~71B0oji(`mIZ*oe&jQ{f)*(0nD_9>o<=Ujbf{@QBE
zx@lV<T{?B3CAiJWAnU`5gNxbvrEC_kF*7W?%TY5oS!4+V0|SGntDnm{r-UW|TbwR|

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/34.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/34.png
new file mode 100644
index 0000000000000000000000000000000000000000..823535c5fc0a584c9090ed7ca540dd28174dcc04
GIT binary patch
literal 325
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U$SyAS*x1ex^MP3=GdbT^vI!daqvDn{_BaqT%89Bgu7HIV_F~osS-j
zjG6Q3((V_rUl#59Viz(;gmqzwsR#Sf`4f)0*}i05aX};fL(lyWJnxT}yX^lkXVF7R
ztAMo|zC>B;Zt&P0lQTzy`Eo$`!B2NSsGl=_Bg$c@8O{0joRx9SC5t}R`N57KN)>u+
zC$&p8d%i2H*jzTjb8_XqC!W7-rrp<gRBU;}{^8s0Dfv5Bw4Obl;AT+y+<Z%5d(H>X
z<n_xeR>^)1a=F~;F<rY$KlI4W+?0masfR_4t=98RtX$%Cpd#@?!RCWWufn&?*>a~R
gNA{iUKhgRr98TZf=ufI)U|?YIboFyt=akR{0C5P7qyPW_

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/350.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/350.png
new file mode 100644
index 0000000000000000000000000000000000000000..ef227ecfcbd29b8ff2bd7d542db526dc3b4761ae
GIT binary patch
literal 3054
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/351.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/351.png
new file mode 100644
index 0000000000000000000000000000000000000000..856c4266e2e9c7b9843a00a6b4b615d4f23bf6a3
GIT binary patch
literal 413
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RXqRkP(Y-#<3&@21a{N7sn8b-m{nYdov}<9RK+J<;wCZwTh;t7A&39
zrCJ1a9fJc@t^^3_=Kkg6{i}L0K;Q>E2d`tWv$LbGs-svruj!Q5wCU3dd~^T3;rO-Y
z{O3JCK79Dgm6LE$v1qb%@$`!2)@vWV_<rzzo2}o8tRK>g{~k`--F$S)>@N%YH)v=)
z+v2Lr&TPGYhg|M~YD<rpr3T;MXKE};5=otRJp0JD#0t?n@^>Fji~sn6DY3slq=+@~
zugKdqM?wr+X0@O1={<H*;6+>K;h!z*u4{;t2t`dzV0$H`p}s$-CZg%{vI8>;-Ag=@
z^wI=Yt~epa^2tnU_Z)$ldmd~vI{4<9&HKRaPn&wm*_xvF9(3A$_H>p&xZ>OJv#pC)
zU4QsnX#)H9xhokgcCdN2ES*?X`c`6n$Q#~2p2t~NnlCIk8NELv{D$8@o_}ns=LDD9
U$z}^PFfcH9y85}Sb4q9e0K+x3W&i*H

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/352.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/352.png
new file mode 100644
index 0000000000000000000000000000000000000000..8ab3e5925ebbfa5a0ba2636b0b62c8eb43f84818
GIT binary patch
literal 2844
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
b!~g%x3>&YDmZheICxZB%u6{1-oD!M<03AgY

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/353.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/353.png
new file mode 100644
index 0000000000000000000000000000000000000000..54c9b405a3ea025e4a9bee8df9df97dc59c05c33
GIT binary patch
literal 2839
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
Wx|Z)U=jFHDAik%opUXO@geCws96_%D

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/354.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/354.png
new file mode 100644
index 0000000000000000000000000000000000000000..48a016944efd9057ffaa04b1a070217e905928a6
GIT binary patch
literal 2895
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/355.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/355.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce8467aea1f081d9676e2f6e05aaec14a9ad1171
GIT binary patch
literal 3109
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`(#+;1OBOz`!jG!i)^F
z=14FwaQSCCI|l@0<d@_ZXXF<scse^P6cpvBW#*(ZFjU-{8=M{z{8G&J`@Jtt-W?57
zyz_%ZITV7Nx*J3$s%a^53V3xWF1#rkcu>&Ql|}l*f)3`szJ?yrKpmbgt{d!66c_b1
zFYf3%_4{G<;_PdCzCSzrZ|ilt=W9OC-F%+?00+-B592`72A-8pa)J+<j~_Yq@QI#7
zBbQ16g8;|o6vg7d%8U#@>TGPZl@74)V_>Yf%+0}Yz<2fm1DW>!{I8s5#xORtFditG
zXyMJ#Aj05K)#tQ~!NHBOVeSmIV1@-O3<;-`lO8h!=rSaz*FU?=&@lJM%xXr4=qZY#
zj0+|*C<v!^xG-c`Gpsou*5%3&VZb1g=6%GH;f5}QfoFJ{2g8Q#3<u5$aBpJZ;9)Qb
z>}b_wV5w$EIH9au!O$|3LB#D-xXnlHbpp?|7#J#MZnD{_V(Ho#&7oV!9v-eIr*Y0x
zTwBB}ktuPOgWjRanUY40Cj1XRpJ8BFFi}+SLG$Oo73cWYojYgNw~a4e_tk#3|4K<o
zkN-VAzq-JIf#G3E-Nk=8`kSR1tl1iJ|1DB|$C44py`c1aciJX?hph|?Ufv4-TmT9i
z*M$>y-n{wr$&(viN1UP)Pleb1OFtBUApCF6&pMkw-@iWC_eiDDD7Mj^<;R0VXTJC>
zl{r6&vnA=yvwrtK+qwV$k-e;R#4~AUgqFzTK%v4umsvfZjg~5PI!)3%s(R^v%A@-_
zznSgsn=)+3vSX~CsJkLInfaTyx<Ew9fk)pN7(VUJKX^rhgSjE2`QiEU|L^Vpx-U>=
zXh`#%RLH;(=c1w)a%!{vaSjFsmj#Vl8yuy-9F)*Gz$SB$_0B==KM7_nPAW$ZISDv%
zr8LMCC1|c`a?)r!yFpefLH~+_tjU4EjJC-Ie0qmMcktO3@c&BWn0HWPPa`Lb;|UJo
zM8#Vjj7eP)%6%N-Gh2Ts9`s-l>Q+%W*&!0B<UP^U!!W2TL?P5e_LFT9lVy91+pdY$
zCm4*H{<Q6JH=NSADbV%`&sOK1E6k-@+!k?PNGUO#)i1VS_JyJ?Qno#23!h(Doxy*r
z-_H5C!GRYN?8ZlO4D^m2cG_s6!#O$m^hTvMJgbjMZ3tV#yu0&j^7)PBEJBU02RO}G
z%AFJv<s3aCd?NgAc&t#6Q85v`#c9sT+!A<5U1{<P?=5P(1b-fpNHQ{PkMPh@z9!T!
ztS?aA;e5ngMX1x+NPXu7CeMvaLM{nia=Vllr2JB6<!loVDdov0Z>3~!Vz->4qo94F
z^~u~Pho2Zfk$$51DVl3;l0)H=AHk0_f=*?5Nj?>LYVwpVb%v2+=;B#HcULS75j5?O
za$37^ThRKz_7%b=rL!#0Hj8<BFI~H6>Sd`6@r>`8>tB@Y61+QA&TsmK@Jpv(y1$tI
zg85514{w`j^YM;!4awOO>=Nmc<r3>>_$-sW+%0)L#K7F}^^E5;`Df;bMrdu*su7)d
zifgLZRJEznTKXX?S1nt0Zxwgw=g`w3{VU^wYuCAj8V5gK$$4ek>d;kl16~J92dA&J
zUeUfPeMNqV{gS%KznyH6hkXwFJ1+@burdDeo?{B!$&#BZbQH6BSGScmnjTTxc=l#Z
znbz(Ze`R-f+pb!<(9+r1%Q$><(B~;>_Uw;m6#ke~;>Y=1WBK&YbzS#F-fKS6lwM}y
zv(qp&CVSPi>C+-sd#nyz?f!bN*}AvO=Pujpx;yfBBcJ1OFZCF8_w@dAtaG0S-weLH
zoNKw5udUVBb$Y9^mr5_(?NYu!Z~40!^Y+Cx%=5`#ey?)x^ItNx`hP?I=Kfm#)tx7T
zZ8MJw+ijk65;jLo3-fJc^^f2F80Z{(*ui;e;?%_H4_hYgylAuds#~uce^2JIn8zxQ
zbC2a7Tdc;Wrl{ua`^xv-tRUZ=%QTl+`&j!NKYQlvqO;d#n$EU0yl(V-_Vd}-XW!qR
z5LFSSvu(w;9jTt1o<uE+e79{+UTc(P<kE=HsMyVJYv-<2y|#Pp?&X5Zclu5CTRrbu
z`r!>9x1HR!a=YY)r#IMcuiKWptu`?|Nj!b~(RGL4P2M}Xc2{lhUt4zG_M3dGWus*4
zinkPrScO^Ln{{r^JNw$BU#7j(Pmee+aQ=qz<88vHHIHP@4W513JzYF~XL0lAj_ywH
zrqg=U?eu0#AG>>E?-Q?*uZ6J>t1f+=JA3o&LvL5yUjNSQUFN&?JM+(&%-5V3X<U5a
z@CoM!fln{mbI+e@kbQqmoxihxWBS(T%KFLr6T{bD->`jY`Ks@U@5SxD*%i%yZ1>p4
z{GQRh$oMnn2ezNse%k+V{=E3s`_A>s|5N@~{lCbtyg`*Qow>8ou`!zI_m8R?#r=Ku
zR<~2XZMyl^v1h?fM^VTArnOB^53W_rIPqq}TE*|rXPldOE|ae{pzg)B3+#!{61xxA
z@u;`9w}!Xb_Z4(RNL@6XZd!ivj&t#SmtQW^T<*<IH}tn$uj^&1Ww%N%%jTB(E|XpM
z$Mn)7&s>d|8{wJbEn}&twazRrXW#ulZ$Gy`n)`_Rakcmi{S&bTl?%@u`qH{wY^9!%
zj@2{=pAJ8ZDIXjKv{s1qsD2VISMB4fJS2N4T}l6<*~N|<&M{hYexE$Fe5)qCnYhQa
zQst=eQk|zeThv!h*yF?Nb9c7YJh5423b{tMR(lPbCrzAC=(I}Fck;IMSLx5v%1*CI
zZQb<mXkPbreYvUZC$l$CSi>5r%eBpE*^7`Ujq6(Mo6=Lm)Apb3JY_j;^*rsfZ_jK#
zb$f#OocHtpzZE(p^l;L)rET8fy0Q_^_O8jY++<T&d7JC8D64i`7~2|~9bMbBa<BTY
zej7f0UEN-_D&OqJxPzyf4sK=4e$5@q^|ZD2^_}Z)WBnuaBkylb{M9yB+D^2yYn{k#
z@#&)VH#F{4Je6+GKed16ohe&Zu0FCe<$T(uw3pBB>CTJho3?8Dv*~<!yf<%c;k_TW
z<?YvRuDA84pVhd%yLp@Q&c*v}cI-)Ae)8N|Yx|HTAzwm%g_ym&ba!jw^&fc`-$_^R
z`DXIw>h0(~-~Za3+;=;aG1T{J+SSzGp1(JLw_n$}>gA7VzjI^P`sEhBJ<fcI`7gUN
z-?r;JuUwVAWE&FHe@*+fJKu5negEdZFW2QY;|=YdbL^3FflK9+m)|+>f0yI6x>eRw
zz2+hNW%)AMbXol@r&*t7xy=rq^*cH#dYAthyNlOe-K+ZJep{Y@j)_fVrPt?>lbN?(
zHeH^a{^@+r+^KVG>-2u!Nw~deTlMqgbN93O^WX0hD0z6v^?&zs>pj-zVm|FC`LyZw
zQ{nI(;j`9T#pk{%d1do&@@4<yyXWklwQgrj_Re=zd$(4neSaxE&-~ooFMBILiv7QK
zb)Kc|-Mycy^1mPb{`J1t-MS+6zvoWxzFDsRZtWibJ@H>0-a6iNzT1A)KKkFC8}IMb
zXB{YC@cH5$_wQ`2&FBA3{Myg&%-TP*|8yH~+v|B2c9xcp?2G=s{IlHoe9C#XdE);T
z{X4x*Tui_2$JN)@&t05xapCk&(<krGty%i_)q&TN>u(=BbWCpF$qHk`xG!P9-yST#
zQ!e{{@qK>(Cp8N78viqXZu}a2VfpXLl9MO@XJMZ4`A@R3?rjDJ28CpgAYTTCDpdxC
zhGqtapZ^&c8eTFmlo~KFyh>nTu$sZZAf7)d{-_%R17m=vi(^Q|tus^h`Y{CxwC>;e
zU5{JCTcAE^MNUtD!s3ml7oD=Db=Tz9aLsenzJK6Y*AJFkw=&XAL>e|Z-g)}&hJ>{8
zCN&j5%lIOrnKO%@EZerqXCY6p)_36@pWpX{cm~dDHgi8}$#AY+*6(yT3x{8esq{19
zbzKjQYM)wl-sDt1*CxwQcDUo&g0o?X)9yM=sZVNuAewY`heX-SmFy3aZv0K+JE^bZ
zaF}h+iskEXhX0Rr4>@vS!$FCghR1^+TwLyww11<APQRV&{~{apCczsVX)jhj*Lumk
zA$CQ8Xg4F%#6QB*4X+$2idpsff$+COTE7#gR?jbpSru$N?bD3>zY~wlx_G@OOsF_0
z>Ot9;V`pFVPQJvnR%O}$lf~;7<>|B^wdDCQW$Br2XP3y0tk;^2ZtA})ntY?^CX0+n
ycEhHWJ1)~oCr6bS&-f`Hskkbb)7*}Y!T3hb&IM0uH5eEe7(8A5T-G@yGywp6n97U*

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/356.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/356.png
new file mode 100644
index 0000000000000000000000000000000000000000..69e7525933dcfe35998584580c79dec3a855402c
GIT binary patch
literal 235
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxQt$4y}&XC28Lcw7sn8b-sC_3|NpONV`FRM-Wx1YBD7dCqJ>4W
zppko#mBrHwjKa*!%!ik|_e<=X`O;vIO=(+3FAML!3-(hVzF8~HW1bh2w&UoZ_J<YW
z@})dspFbx~sQNa|(b2QH@&7Spwp@PyRT5`7xF0)DUT!#pmBpaogxA9mA1{f+ylQL{
mWGc5XEN1JMvXS9oV@P4rk<#vd@PmPYfx*+&&t;ucLK6U?PEVBp

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/357.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/357.png
new file mode 100644
index 0000000000000000000000000000000000000000..1689fcbf67274bedecbd967d0df7d45ac3c6b5d5
GIT binary patch
literal 3050
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/358.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/358.png
new file mode 100644
index 0000000000000000000000000000000000000000..0f8476dc7de76b11b85911bda3e0f52c54291899
GIT binary patch
literal 2910
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`(#+;1OBOz`!jG!i)^F
z=14FwaQSCCI|l@0<d@_ZXXF<scse^P6cpvBW#*(ZFjU-{8=M{z{8G&J`@Jtt-W?57
zyz_%ZITV7Nx*J3$s%a^53V3xWF1#rkcu>&Ql|}l*f)3`szJ?yrKpmbgt{d!66c_b1
zFYf3%_4{G<;_PdCzCSzrZ|ilt=W9OC-F%+?00+-B592`72A-8pa)J+<j~_Yq@QI#7
zBbQ16g8;|o6vg7d%8U#@>TGPZl@74)V_>Yf%+0}Yz<2fm1DW>!{I8s5#xORtFditG
zXyMJ#Aj05K)#tQ~!NHBOVeSmIV1@-O3<;-`lO8h!=rSaz*FU?=&@lJM%xXr4=qZY#
zj0+|*C<v!^xG-c`Gpsou*5%3&VZb1g=6%GH;f5}QfoFJ{2g8Q#3<u5$aBpJZ;9)Qb
z>}b_wV5w$EIH9au!O$|3LB#D-xXnlHbpp?|7#J#MZnD{_V(Ho#&7oV!9v-eIr*Y0x
zTwBB}ktuPOgWjRanUY40Cj1XRpJ8BFFi}+SLG$Oo73cWYojYgNw~a4e_tk#3|4K<o
zkN-VAzq-JIf#G3E-Nk=8`kSR1tl1iJ|1DB|$C44py`c1aciJX?hph|?Ufv4-TmT9i
z*M$>y-n{wr$&(viN1UP)Pleb1OFtBUApCF6&pMkw-@iWC_eiDDD7Mj^<;R0VXTJC>
zl{r6&vnA=yvwrtK+qwV$k-e;R#4~AUgqFzTK%v4umsvfZjg~5PI!)3%s(R^v%A@-_
zznSgsn=)+3vSX~CsJkLInfaTyx<Ew9fk)pN7(VUJKX^rhgSjE2`QiEU|L^Vpx-U>=
zXh`#%RLH;(=c1w)a%!{vaSjFsmj#Vl8yuy-9F)*Gz$SB$_0B==KM7_nPAW$ZISDv%
zr8LMCC1|c`a?)r!yFpefLH~+_tjU4EjJC-Ie0qmMcktO3@c&BWn0HWPPa`Lb;|UJo
zM8#Vjj7eP)%6%N-Gh2Ts9`s-l>Q+%W*&!0B<UP^U!!W2TL?P5e_LFT9lVy91+pdY$
zCm4*H{<Q6JH=NSADbV%`&sOK1E6k-@+!k?PNGUO#)i1VS_JyJ?Qno#23!h(Doxy*r
z-_H5C!GRYN?8ZlO4D^m2cG_s6!#O$m^hTvMJgbjMZ3tV#yu0&j^7)PBEJBU02RO}G
z%AFJv<s3aCd?NgAc&t#6Q85v`#c9sT+!A<5U1{<P?=5P(1b-fpNHQ{PkMPh@z9!T!
ztS?aA;e5ngMX1x+NPXu7CeMvaLM{nia=Vllr2JB6<!loVDdov0Z>3~!Vz->4qo94F
z^~u~Pho2Zfk$$51DVl3;l0)H=AHk0_f=*?5Nj?>LYVwpVb%v2+=;B#HcULS75j5?O
za$37^ThRKz_7%b=rL!#0Hj8<BFI~H6>Sd`6@r>`8>tB@Y61+QA&TsmK@Jpv(y1$tI
zg85514{w`j^YM;!4awOO>=Nmc<r3>>_$-sW+%0)L#K7F}^^E5;`Df;bMrdu*su7)d
zifgLZRJEznTKXX?S1nt0Zxwgw=g`w3{VU^wYuCAj8V5gK$$4ek>d;kl16~J92dA&J
zUeUfPeMNqV{gS%KznyH6hkXwFJ1+@burdDeo?{B!$&#BZbQH6BSGScmnjTTxc=l#Z
znbz(Ze`R-f+pb!<(9+r1%Q$><(B~;>_Uw;m6#ke~;>Y=1WBK&YbzS#F-fKS6lwM}y
zv(qp&CVSPi>C+-sd#nyz?f!bN*}AvO=Pujpx;yfBBcJ1OFZCF8_w@dAtaG0S-weLH
zoNKw5udUVBb$Y9^mr5_(?NYu!Z~40!^Y+Cx%=5`#ey?)x^ItNx`hP?I=Kfm#)tx7T
zZ8MJw+ijk65;jLo3-fJc^^f2F80Z{(*ui;e;?%_H4_hYgylAuds#~uce^2JIn8zxQ
zbC2a7Tdc;Wrl{ua`^xv-tRUZ=%QTl+`&j!NKYQlvqO;d#n$EU0yl(V-_Vd}-XW!qR
z5LFSSvu(w;9jTt1o<uE+e79{+UTc(P<kE=HsMyVJYv-<2y|#Pp?&X5Zclu5CTRrbu
z`r!>9x1HR!a=YY)r#IMcuiKWptu`?|Nj!b~(RGL4P2M}Xc2{lhUt4zG_M3dGWus*4
zinkPrScO^Ln{{r^JNw$BU#7j(Pmee+aQ=qz<88vHHIHP@4W513JzYF~XL0lAj_ywH
zrqg=U?eu0#AG>>E?-Q?*uZ6J>t1f+=JA3o&LvL5yUjNSQUFN&?JM+(&%-5V3X<U5a
z@CoM!fln{mbI+e@kbQqmoxihxWBS(T%KFLr6T{bD->`jY`Ks@U@5SxD*%i%yZ1>p4
z{GQRh$oMnn2ezNse%k+V{=E3s`_A>s|5N@~{lCbtyg`*Qow>8ou`!zI_m8R?#r=Ku
zR<~2XZMyl^v1h?fM^VTArnOB^53W_rIPqq}TE*|rXPldOE|ae{pzg)B3+#!{61xxA
z@u;`9w}!Xb_Z4(RNL@6XZd!ivj&t#SmtQW^T<*<IH}tn$uj^&1Ww%N%%jTB(E|XpM
z$Mn)7&s>d|8{wJbEn}&twazRrXW#ulZ$Gy`n)`_Rakcmi{S&bTl?%@u`qH{wY^9!%
zj@2{=pAJ8ZDIXjKv{s1qsD2VISMB4fJS2N4T}l6<*~N|<&M{hYexE$Fe5)qCnYhQa
zQst=eQk|zeThv!h*yF?Nb9c7YJh5423b{tMR(lPbCrzAC=(I}Fck;IMSLx5v%1*CI
zZQb<mXkPbreYvUZC$l$CSi>5r%eBpE*^7`Ujq6(Mo6=Lm)Apb3JY_j;^*rsfZ_jK#
zb$f#OocHtpzZE(p^l;L)rET8fy0Q_^_O8jY++<T&d7JC8D64i`7~2|~9bMbBa<BTY
zej7f0UEN-_D&OqJxPzyf4sK=4e$5@q^|ZD2^_}Z)WBnuaBkylb{M9yB+D^2yYn{k#
z@#&)VH#F{4Je6+GKed16ohe&Zu0FCe<$T(uw3pBB>CTJho3?8Dv*~<!yf<%c;k_TW
z<?YvRuDA84pVhd%yLp@Q&c*v}cI-)Ae)8N|Yx|HTAzwm%g_ym&ba!jw^&fc`-$_^R
z`DXIw>h0(~-~Za3+;=;aG1T{J+SSzGp1(JLw_n$}>gA7VzjI^P`sEhBJ<fcI`7gUN
z-?r;JuUwVAWE&FHe@*+fJKu5negEdZFW2QY;|=YdbL^3FflK9+m)|+>f0yI6x>eRw
zz2+hNW%)AMbXol@r&*t7xy=rq^*cH#dYAthyNlOe-K+ZJep{Y@j)_fVrPt?>lbN?(
zHeH^a{^@+r+^KVG>-2u!Nw~deTlMqgbN93O^WX0hD0z6v^?&zs>pj-zVm|FC`LyZw
zQ{nI(;j`9T#pk{%d1do&@@4<yyXWklwQgrj_Re=zd$(4neSaxE&-~ooFMBILiv7QK
zb)Kc|-Mycy^1mPb{`J1t-MS+6zvoWxzFDsRZtWibJ@H>0-a6iNzT1A)KKkFC8}IMb
zXB{YC@cH5$_wQ`2&FBA3{Myg&%-TP*|8yH~+v|B2c9xcp?2G=s{IlHoe9C#XdE);T
z{X4x*Tui_2$JN)@&t05xapCk&(<krGty%i_)q&TN>u(=BbWCpF$qHk`xG!P9-yST#
zQ!e{{@qK>(Cp8N78viqXZu}a2VfpXLl9MO@XJMZ4`A@R3?rjDJ28CpgAYTTCDpdxC
zhGqtapZ^&c8eTFmlo~KFyh>nTu$sZZAf7)d{-_%R14E~$i(^Q|t)xHy|JyU`GH^39
zGlxxn`d7`srt0Iw#>U3RgU1~D9)4KkGKnWGX@Q_b72D=FmZkiwkMzgaKX}7Gzuw?M
zP&>DQ(G0Uc^1R7xY;0`D?yA2};_Z5|tCVN`z1q}-goK0(fnv!o^h?xrKgFDxvcaoh
v!^Q(QnfA!=?6}gKCU9t?`|3-)1`MvoDtd1|225mNU|{fc^>bP0l+XkKdH`d}

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/359.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/359.png
new file mode 100644
index 0000000000000000000000000000000000000000..34bb5e4877b780057f169bceb38178c681a7e320
GIT binary patch
literal 2842
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
bpP6C%Onwt4ZCOqR1_lOCS3j3^P6<r_WcWWx

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/36.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/36.png
new file mode 100644
index 0000000000000000000000000000000000000000..b7bef807073e241bbd0de46148259990229fd363
GIT binary patch
literal 2839
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
Z95b$;x7OA^WME)m@O1TaS?83{1OP+@M{588

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/370.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/370.png
new file mode 100644
index 0000000000000000000000000000000000000000..01ca64fc001b753cd4541defbdafb3fff8997e24
GIT binary patch
literal 2842
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
b&&(k7Pk=?MtZX#{0|SGntDnm{r-UW|+L%F!

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/371.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/371.png
new file mode 100644
index 0000000000000000000000000000000000000000..324c5ce6b23ec72dfd7c12b797826f6f90d47d9b
GIT binary patch
literal 2841
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
bnZZL!=;)8l)6O$6Ffe$!`njxgN@xNAAKOF(

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/372.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/372.png
new file mode 100644
index 0000000000000000000000000000000000000000..2417be67f663f4bccc4c65df2385ca1d19a879bb
GIT binary patch
literal 2838
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
ToVMhPGKlZ#>gTe~DWM4fv&cj`

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/373.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/373.png
new file mode 100644
index 0000000000000000000000000000000000000000..af1fcbf4b86432e28db96347fde091e9f5d2c544
GIT binary patch
literal 2976
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
N@O1TaS?83{1OR%ahYJ7z

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/374.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/374.png
new file mode 100644
index 0000000000000000000000000000000000000000..fbf4cd84eee773fd3293d125ce07ac69d9bbcba2
GIT binary patch
literal 2842
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
bXJ&X1FJRQ6Wt+pmz`)??>gTe~DWM4f4Ru0M

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/37447.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/37447.png
new file mode 100644
index 0000000000000000000000000000000000000000..2bd0a8fa986ccf03ab61b7126c5a67854a8720c5
GIT binary patch
literal 3069
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
GGywofHLuwK

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/37497.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/37497.png
new file mode 100644
index 0000000000000000000000000000000000000000..2bd0a8fa986ccf03ab61b7126c5a67854a8720c5
GIT binary patch
literal 3069
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
GGywofHLuwK

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/375.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/375.png
new file mode 100644
index 0000000000000000000000000000000000000000..ff3603ea87997cae8f55bbad844a3a22eb349278
GIT binary patch
literal 2946
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/376.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/376.png
new file mode 100644
index 0000000000000000000000000000000000000000..a28055171420ec44cf9344c4e71bedc51f1f34b6
GIT binary patch
literal 404
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U#F!zof_+@nsVj7#PhwT^vI!daq92>vt$Yq-}oxHWLTYfGc9c!ksLo
zS7ua*yXhZWT~PeRDyFx)ySbY?klj-uh-st7!i8U6KYx-CbZg16gXOj7E6<($DfskQ
ztCCxl-mCJw^KUKQM<0CoZuToFzd6&Rrz~L!6cTZ8)!Mew<wO40^aNYo1I7F^dQ=bJ
zQ*`QH@!m#Z%A##QXUMLZa^U}+<GTzaw=Fx-o8F^7+3)1SEcIq#cf(g^k~^c<n0bY)
zkxI2((B%E(?MJ&C=lJ3Z<4#B?I~BTXyq_r|o3hev0q@Fnd)1nR-4#<A>!VzLe@IxP
ze2vl6osIQb9pgmNo(_W&&)as++f`>s)tanXs!;m2bKAu4nR2m4pI3jmrQTBKu(#BA
z<D0};ikr{KGPhYCH(=k=xBik-{fqy#_nbBaymWQ-)3NE%m)V~bx#im@eg*~x22WQ%
Jmvv4FO#m$Cs@(tp

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/377.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/377.png
new file mode 100644
index 0000000000000000000000000000000000000000..c680a315bf8a78ee30ce2826418e571d03d1159c
GIT binary patch
literal 2836
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
V!}8YBZww3!44$rjF6*2UngIVdL*xJe

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/37744.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/37744.png
new file mode 100644
index 0000000000000000000000000000000000000000..e5ec034a6f5b9fbcb4fb4fba7f8c9859fe3c23fb
GIT binary patch
literal 473
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RWpTD}xq0*9sd32F7Yn7sn8b-mOz&wVM+qj@O?zOHS);otN|3tkorm
zuj3P^$k9gr2S>^aPEEhjsmy+)Q`z&Bcc)0$jMg_tPk(!H^VT<s+ixAF+>*PU_5bke
zUH|sKd%ZN;$Zs8omV&eD0tU6cDSNN_1pQ8_+A>wRzDI8R+yI@{Nfqi6zKQ}JOn;xT
zR;Nfi$MW6j4V!oG(w-Gk3>SB}nW@i^%zmsUa$NcLjnB5lVgX&u-a>m;y<a11!=S*z
zW1?!oe`V4?lcK`^Y!2&B_su%>q;_M-n@`)8`RxdM_2Ji?AB(otzb;Mxv-sva^_1+k
zX}cueeiQk8`>)I8(5KDMs}A|>5M`S!EV1PMF{?M3V(xj7cJEXsnJBkRxxTtOFY4Nf
z4Qql@PyFrdw-z;1^Dhjk7y0t4$vl7d&S2fj;@5REXQb)z&k+{lwyu?FeO;d{Z^`_7
zAzRq`s4r{&>+4TibFBL1q1?+6R_|2i8Ge-5z98+(TGv=tgTTXi7Y-)wSU96-L5sCs
fsOayOeGHY2ZAYpz>k1hd7#KWV{an^LB{Ts5b?DMg

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/378.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/378.png
new file mode 100644
index 0000000000000000000000000000000000000000..a0bb8102e6c7612401aa52b3ca1c6e8896e7fac2
GIT binary patch
literal 3126
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
R9}El(44$rjF6*2UngBBr-pv32

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/379.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/379.png
new file mode 100644
index 0000000000000000000000000000000000000000..68e637378ed913fc4077c9d4391aca4eefa5f9b1
GIT binary patch
literal 3050
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/380.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/380.png
new file mode 100644
index 0000000000000000000000000000000000000000..15b68969955bb0629f7bc467f92c787c76ed09d7
GIT binary patch
literal 137
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U#%`C@ZtZ;-$3=3=G<yE{-7<y~$g&Y(LF!WNYXYYwMG;Il`OPX%gWt
o+$>ptPgL6X_+qxpCleT2Ua@Tnvf6!(fq{X+)78&qol`;+03r1#6951J

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/381-kosovo.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/381-kosovo.png
new file mode 100644
index 0000000000000000000000000000000000000000..e5ec034a6f5b9fbcb4fb4fba7f8c9859fe3c23fb
GIT binary patch
literal 473
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RWpTD}xq0*9sd32F7Yn7sn8b-mOz&wVM+qj@O?zOHS);otN|3tkorm
zuj3P^$k9gr2S>^aPEEhjsmy+)Q`z&Bcc)0$jMg_tPk(!H^VT<s+ixAF+>*PU_5bke
zUH|sKd%ZN;$Zs8omV&eD0tU6cDSNN_1pQ8_+A>wRzDI8R+yI@{Nfqi6zKQ}JOn;xT
zR;Nfi$MW6j4V!oG(w-Gk3>SB}nW@i^%zmsUa$NcLjnB5lVgX&u-a>m;y<a11!=S*z
zW1?!oe`V4?lcK`^Y!2&B_su%>q;_M-n@`)8`RxdM_2Ji?AB(otzb;Mxv-sva^_1+k
zX}cueeiQk8`>)I8(5KDMs}A|>5M`S!EV1PMF{?M3V(xj7cJEXsnJBkRxxTtOFY4Nf
z4Qql@PyFrdw-z;1^Dhjk7y0t4$vl7d&S2fj;@5REXQb)z&k+{lwyu?FeO;d{Z^`_7
zAzRq`s4r{&>+4TibFBL1q1?+6R_|2i8Ge-5z98+(TGv=tgTTXi7Y-)wSU96-L5sCs
fsOayOeGHY2ZAYpz>k1hd7#KWV{an^LB{Ts5b?DMg

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/381.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/381.png
new file mode 100644
index 0000000000000000000000000000000000000000..c900d994fbd85684a22dbbc50238703fa17b5aa6
GIT binary patch
literal 408
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTH11FQDNli^wn42)KuE{-7<y<4yB^*Wp&a_nQh-7J%dCM%{2wNLX}
z-I2h~9(d&9!Pf%%2aZY$q^rB%J#z5wMOW(`ohvfBJ6x3|l4q}4yTx};!?Ftj)z_Hq
z<?cQI!1eS@$pHa388$A3?@=`pTHiMdEi*slbJF!)iPFJ^o%Zg&dea|ycuj44S+vbU
z%rL+INZQ)AYb6;Gxhf~qA8q1$F)=}L`>xxe_Y!xVss1eHdj6uv$qaqDeUs8(Uwk9Y
zSKD<egze^x!{?s;EDhZ!7PdliqerLn!)a27=WWsWp>S*c6=AmASXr6A<03BS4}0`Y
z-lX&7z5J4}Evq?n{nt*pFjsor9j(5<ZPzp(AD_;+G(Uo)X~F6}yPIX@{Js@l+a@@F
zy{FCGP5a9Grk&$s6J`nN@6(JE@#JD^J<EILP|f{}{2%gZ8TCgmJg}Eto7^AiVJgJH
Pz`)??>gTe~DWM4f9>TBe

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/382.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/382.png
new file mode 100644
index 0000000000000000000000000000000000000000..00f247911a40dd9ca96c84aa47b8bcc22685ad0b
GIT binary patch
literal 3001
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/385.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/385.png
new file mode 100644
index 0000000000000000000000000000000000000000..dadf7b2f397f9c3fb5d987934929f88562e9f92a
GIT binary patch
literal 3045
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/386.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/386.png
new file mode 100644
index 0000000000000000000000000000000000000000..3600748d60e07aed4cd4e436e4838013e6225355
GIT binary patch
literal 2933
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`(#+;1OBOz`!jG!i)^F
z=14FwaQSCCI|l@0<d@_ZXXF<scse^P6cpvBW#*(ZFjU-{8=M{z{8G&J`@Jtt-W?57
zyz_%ZITV7Nx*J3$s%a^53V3xWF1#rkcu>&Ql|}l*f)3`szJ?yrKpmbgt{d!66c_b1
zFYf3%_4{G<;_PdCzCSzrZ|ilt=W9OC-F%+?00+-B592`72A-8pa)J+<j~_Yq@QI#7
zBbQ16g8;|o6vg7d%8U#@>TGPZl@74)V_>Yf%+0}Yz<2fm1DW>!{I8s5#xORtFditG
zXyMJ#Aj05K)#tQ~!NHBOVeSmIV1@-O3<;-`lO8h!=rSaz*FU?=&@lJM%xXr4=qZY#
zj0+|*C<v!^xG-c`Gpsou*5%3&VZb1g=6%GH;f5}QfoFJ{2g8Q#3<u5$aBpJZ;9)Qb
z>}b_wV5w$EIH9au!O$|3LB#D-xXnlHbpp?|7#J#MZnD{_V(Ho#&7oV!9v-eIr*Y0x
zTwBB}ktuPOgWjRanUY40Cj1XRpJ8BFFi}+SLG$Oo73cWYojYgNw~a4e_tk#3|4K<o
zkN-VAzq-JIf#G3E-Nk=8`kSR1tl1iJ|1DB|$C44py`c1aciJX?hph|?Ufv4-TmT9i
z*M$>y-n{wr$&(viN1UP)Pleb1OFtBUApCF6&pMkw-@iWC_eiDDD7Mj^<;R0VXTJC>
zl{r6&vnA=yvwrtK+qwV$k-e;R#4~AUgqFzTK%v4umsvfZjg~5PI!)3%s(R^v%A@-_
zznSgsn=)+3vSX~CsJkLInfaTyx<Ew9fk)pN7(VUJKX^rhgSjE2`QiEU|L^Vpx-U>=
zXh`#%RLH;(=c1w)a%!{vaSjFsmj#Vl8yuy-9F)*Gz$SB$_0B==KM7_nPAW$ZISDv%
zr8LMCC1|c`a?)r!yFpefLH~+_tjU4EjJC-Ie0qmMcktO3@c&BWn0HWPPa`Lb;|UJo
zM8#Vjj7eP)%6%N-Gh2Ts9`s-l>Q+%W*&!0B<UP^U!!W2TL?P5e_LFT9lVy91+pdY$
zCm4*H{<Q6JH=NSADbV%`&sOK1E6k-@+!k?PNGUO#)i1VS_JyJ?Qno#23!h(Doxy*r
z-_H5C!GRYN?8ZlO4D^m2cG_s6!#O$m^hTvMJgbjMZ3tV#yu0&j^7)PBEJBU02RO}G
z%AFJv<s3aCd?NgAc&t#6Q85v`#c9sT+!A<5U1{<P?=5P(1b-fpNHQ{PkMPh@z9!T!
ztS?aA;e5ngMX1x+NPXu7CeMvaLM{nia=Vllr2JB6<!loVDdov0Z>3~!Vz->4qo94F
z^~u~Pho2Zfk$$51DVl3;l0)H=AHk0_f=*?5Nj?>LYVwpVb%v2+=;B#HcULS75j5?O
za$37^ThRKz_7%b=rL!#0Hj8<BFI~H6>Sd`6@r>`8>tB@Y61+QA&TsmK@Jpv(y1$tI
zg85514{w`j^YM;!4awOO>=Nmc<r3>>_$-sW+%0)L#K7F}^^E5;`Df;bMrdu*su7)d
zifgLZRJEznTKXX?S1nt0Zxwgw=g`w3{VU^wYuCAj8V5gK$$4ek>d;kl16~J92dA&J
zUeUfPeMNqV{gS%KznyH6hkXwFJ1+@burdDeo?{B!$&#BZbQH6BSGScmnjTTxc=l#Z
znbz(Ze`R-f+pb!<(9+r1%Q$><(B~;>_Uw;m6#ke~;>Y=1WBK&YbzS#F-fKS6lwM}y
zv(qp&CVSPi>C+-sd#nyz?f!bN*}AvO=Pujpx;yfBBcJ1OFZCF8_w@dAtaG0S-weLH
zoNKw5udUVBb$Y9^mr5_(?NYu!Z~40!^Y+Cx%=5`#ey?)x^ItNx`hP?I=Kfm#)tx7T
zZ8MJw+ijk65;jLo3-fJc^^f2F80Z{(*ui;e;?%_H4_hYgylAuds#~uce^2JIn8zxQ
zbC2a7Tdc;Wrl{ua`^xv-tRUZ=%QTl+`&j!NKYQlvqO;d#n$EU0yl(V-_Vd}-XW!qR
z5LFSSvu(w;9jTt1o<uE+e79{+UTc(P<kE=HsMyVJYv-<2y|#Pp?&X5Zclu5CTRrbu
z`r!>9x1HR!a=YY)r#IMcuiKWptu`?|Nj!b~(RGL4P2M}Xc2{lhUt4zG_M3dGWus*4
zinkPrScO^Ln{{r^JNw$BU#7j(Pmee+aQ=qz<88vHHIHP@4W513JzYF~XL0lAj_ywH
zrqg=U?eu0#AG>>E?-Q?*uZ6J>t1f+=JA3o&LvL5yUjNSQUFN&?JM+(&%-5V3X<U5a
z@CoM!fln{mbI+e@kbQqmoxihxWBS(T%KFLr6T{bD->`jY`Ks@U@5SxD*%i%yZ1>p4
z{GQRh$oMnn2ezNse%k+V{=E3s`_A>s|5N@~{lCbtyg`*Qow>8ou`!zI_m8R?#r=Ku
zR<~2XZMyl^v1h?fM^VTArnOB^53W_rIPqq}TE*|rXPldOE|ae{pzg)B3+#!{61xxA
z@u;`9w}!Xb_Z4(RNL@6XZd!ivj&t#SmtQW^T<*<IH}tn$uj^&1Ww%N%%jTB(E|XpM
z$Mn)7&s>d|8{wJbEn}&twazRrXW#ulZ$Gy`n)`_Rakcmi{S&bTl?%@u`qH{wY^9!%
zj@2{=pAJ8ZDIXjKv{s1qsD2VISMB4fJS2N4T}l6<*~N|<&M{hYexE$Fe5)qCnYhQa
zQst=eQk|zeThv!h*yF?Nb9c7YJh5423b{tMR(lPbCrzAC=(I}Fck;IMSLx5v%1*CI
zZQb<mXkPbreYvUZC$l$CSi>5r%eBpE*^7`Ujq6(Mo6=Lm)Apb3JY_j;^*rsfZ_jK#
zb$f#OocHtpzZE(p^l;L)rET8fy0Q_^_O8jY++<T&d7JC8D64i`7~2|~9bMbBa<BTY
zej7f0UEN-_D&OqJxPzyf4sK=4e$5@q^|ZD2^_}Z)WBnuaBkylb{M9yB+D^2yYn{k#
z@#&)VH#F{4Je6+GKed16ohe&Zu0FCe<$T(uw3pBB>CTJho3?8Dv*~<!yf<%c;k_TW
z<?YvRuDA84pVhd%yLp@Q&c*v}cI-)Ae)8N|Yx|HTAzwm%g_ym&ba!jw^&fc`-$_^R
z`DXIw>h0(~-~Za3+;=;aG1T{J+SSzGp1(JLw_n$}>gA7VzjI^P`sEhBJ<fcI`7gUN
z-?r;JuUwVAWE&FHe@*+fJKu5negEdZFW2QY;|=YdbL^3FflK9+m)|+>f0yI6x>eRw
zz2+hNW%)AMbXol@r&*t7xy=rq^*cH#dYAthyNlOe-K+ZJep{Y@j)_fVrPt?>lbN?(
zHeH^a{^@+r+^KVG>-2u!Nw~deTlMqgbN93O^WX0hD0z6v^?&zs>pj-zVm|FC`LyZw
zQ{nI(;j`9T#pk{%d1do&@@4<yyXWklwQgrj_Re=zd$(4neSaxE&-~ooFMBILiv7QK
zb)Kc|-Mycy^1mPb{`J1t-MS+6zvoWxzFDsRZtWibJ@H>0-a6iNzT1A)KKkFC8}IMb
zXB{YC@cH5$_wQ`2&FBA3{Myg&%-TP*|8yH~+v|B2c9xcp?2G=s{IlHoe9C#XdE);T
z{X4x*Tui_2$JN)@&t05xapCk&(<krGty%i_)q&TN>u(=BbWCpF$qHk`xG!P9-yST#
zQ!e{{@qK>(Cp8N78viqXZu}a2VfpXLl9MO@XJMZ4`A@R3?rjDJ28CpgAYTTCDpdxC
zhGqtapZ^&c8eTFmlo~KFyh>nTu$sZZAf7)d{-_%R1H%GO7srr_TS<TZ|F>t>We{fW
zW#DFJK3u<R$B+B<Y;DK${~P`J?Z2}-u%YyAahv#jdE<`HCyeG~OjWu6;Og?a1so^1
z3=Nm;cxCX$=J!m-*glo!!)p881wRD;KK$XoJ@euB@Apewc&fqG6?^@^kxk{#DGy&+
zo3XK_X|;XiPb+IHmcOZKG^Mezu`%`Pd{z_B<30ahPVH-VnD+1g{6deN5(W%6gpCWn
UZ+y3hfq{X+)78&qol`;+03!)^IsgCw

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/38649.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/38649.png
new file mode 100644
index 0000000000000000000000000000000000000000..e5ec034a6f5b9fbcb4fb4fba7f8c9859fe3c23fb
GIT binary patch
literal 473
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RWpTD}xq0*9sd32F7Yn7sn8b-mOz&wVM+qj@O?zOHS);otN|3tkorm
zuj3P^$k9gr2S>^aPEEhjsmy+)Q`z&Bcc)0$jMg_tPk(!H^VT<s+ixAF+>*PU_5bke
zUH|sKd%ZN;$Zs8omV&eD0tU6cDSNN_1pQ8_+A>wRzDI8R+yI@{Nfqi6zKQ}JOn;xT
zR;Nfi$MW6j4V!oG(w-Gk3>SB}nW@i^%zmsUa$NcLjnB5lVgX&u-a>m;y<a11!=S*z
zW1?!oe`V4?lcK`^Y!2&B_su%>q;_M-n@`)8`RxdM_2Ji?AB(otzb;Mxv-sva^_1+k
zX}cueeiQk8`>)I8(5KDMs}A|>5M`S!EV1PMF{?M3V(xj7cJEXsnJBkRxxTtOFY4Nf
z4Qql@PyFrdw-z;1^Dhjk7y0t4$vl7d&S2fj;@5REXQb)z&k+{lwyu?FeO;d{Z^`_7
zAzRq`s4r{&>+4TibFBL1q1?+6R_|2i8Ge-5z98+(TGv=tgTTXi7Y-)wSU96-L5sCs
fsOayOeGHY2ZAYpz>k1hd7#KWV{an^LB{Ts5b?DMg

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/387.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/387.png
new file mode 100644
index 0000000000000000000000000000000000000000..c7ea660b758bd41cb82c54d010aca9c0bb671413
GIT binary patch
literal 3078
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`(#+;1OBOz`!jG!i)^F
z=14FwaQSCCI|l@0<d@_ZXXF<scse^P6cpvBW#*(ZFjU-{8=M{z{8G&J`@Jtt-W?57
zyz_%ZITV7Nx*J3$s%a^53V3xWF1#rkcu>&Ql|}l*f)3`szJ?yrKpmbgt{d!66c_b1
zFYf3%_4{G<;_PdCzCSzrZ|ilt=W9OC-F%+?00+-B592`72A-8pa)J+<j~_Yq@QI#7
zBbQ16g8;|o6vg7d%8U#@>TGPZl@74)V_>Yf%+0}Yz<2fm1DW>!{I8s5#xORtFditG
zXyMJ#Aj05K)#tQ~!NHBOVeSmIV1@-O3<;-`lO8h!=rSaz*FU?=&@lJM%xXr4=qZY#
zj0+|*C<v!^xG-c`Gpsou*5%3&VZb1g=6%GH;f5}QfoFJ{2g8Q#3<u5$aBpJZ;9)Qb
z>}b_wV5w$EIH9au!O$|3LB#D-xXnlHbpp?|7#J#MZnD{_V(Ho#&7oV!9v-eIr*Y0x
zTwBB}ktuPOgWjRanUY40Cj1XRpJ8BFFi}+SLG$Oo73cWYojYgNw~a4e_tk#3|4K<o
zkN-VAzq-JIf#G3E-Nk=8`kSR1tl1iJ|1DB|$C44py`c1aciJX?hph|?Ufv4-TmT9i
z*M$>y-n{wr$&(viN1UP)Pleb1OFtBUApCF6&pMkw-@iWC_eiDDD7Mj^<;R0VXTJC>
zl{r6&vnA=yvwrtK+qwV$k-e;R#4~AUgqFzTK%v4umsvfZjg~5PI!)3%s(R^v%A@-_
zznSgsn=)+3vSX~CsJkLInfaTyx<Ew9fk)pN7(VUJKX^rhgSjE2`QiEU|L^Vpx-U>=
zXh`#%RLH;(=c1w)a%!{vaSjFsmj#Vl8yuy-9F)*Gz$SB$_0B==KM7_nPAW$ZISDv%
zr8LMCC1|c`a?)r!yFpefLH~+_tjU4EjJC-Ie0qmMcktO3@c&BWn0HWPPa`Lb;|UJo
zM8#Vjj7eP)%6%N-Gh2Ts9`s-l>Q+%W*&!0B<UP^U!!W2TL?P5e_LFT9lVy91+pdY$
zCm4*H{<Q6JH=NSADbV%`&sOK1E6k-@+!k?PNGUO#)i1VS_JyJ?Qno#23!h(Doxy*r
z-_H5C!GRYN?8ZlO4D^m2cG_s6!#O$m^hTvMJgbjMZ3tV#yu0&j^7)PBEJBU02RO}G
z%AFJv<s3aCd?NgAc&t#6Q85v`#c9sT+!A<5U1{<P?=5P(1b-fpNHQ{PkMPh@z9!T!
ztS?aA;e5ngMX1x+NPXu7CeMvaLM{nia=Vllr2JB6<!loVDdov0Z>3~!Vz->4qo94F
z^~u~Pho2Zfk$$51DVl3;l0)H=AHk0_f=*?5Nj?>LYVwpVb%v2+=;B#HcULS75j5?O
za$37^ThRKz_7%b=rL!#0Hj8<BFI~H6>Sd`6@r>`8>tB@Y61+QA&TsmK@Jpv(y1$tI
zg85514{w`j^YM;!4awOO>=Nmc<r3>>_$-sW+%0)L#K7F}^^E5;`Df;bMrdu*su7)d
zifgLZRJEznTKXX?S1nt0Zxwgw=g`w3{VU^wYuCAj8V5gK$$4ek>d;kl16~J92dA&J
zUeUfPeMNqV{gS%KznyH6hkXwFJ1+@burdDeo?{B!$&#BZbQH6BSGScmnjTTxc=l#Z
znbz(Ze`R-f+pb!<(9+r1%Q$><(B~;>_Uw;m6#ke~;>Y=1WBK&YbzS#F-fKS6lwM}y
zv(qp&CVSPi>C+-sd#nyz?f!bN*}AvO=Pujpx;yfBBcJ1OFZCF8_w@dAtaG0S-weLH
zoNKw5udUVBb$Y9^mr5_(?NYu!Z~40!^Y+Cx%=5`#ey?)x^ItNx`hP?I=Kfm#)tx7T
zZ8MJw+ijk65;jLo3-fJc^^f2F80Z{(*ui;e;?%_H4_hYgylAuds#~uce^2JIn8zxQ
zbC2a7Tdc;Wrl{ua`^xv-tRUZ=%QTl+`&j!NKYQlvqO;d#n$EU0yl(V-_Vd}-XW!qR
z5LFSSvu(w;9jTt1o<uE+e79{+UTc(P<kE=HsMyVJYv-<2y|#Pp?&X5Zclu5CTRrbu
z`r!>9x1HR!a=YY)r#IMcuiKWptu`?|Nj!b~(RGL4P2M}Xc2{lhUt4zG_M3dGWus*4
zinkPrScO^Ln{{r^JNw$BU#7j(Pmee+aQ=qz<88vHHIHP@4W513JzYF~XL0lAj_ywH
zrqg=U?eu0#AG>>E?-Q?*uZ6J>t1f+=JA3o&LvL5yUjNSQUFN&?JM+(&%-5V3X<U5a
z@CoM!fln{mbI+e@kbQqmoxihxWBS(T%KFLr6T{bD->`jY`Ks@U@5SxD*%i%yZ1>p4
z{GQRh$oMnn2ezNse%k+V{=E3s`_A>s|5N@~{lCbtyg`*Qow>8ou`!zI_m8R?#r=Ku
zR<~2XZMyl^v1h?fM^VTArnOB^53W_rIPqq}TE*|rXPldOE|ae{pzg)B3+#!{61xxA
z@u;`9w}!Xb_Z4(RNL@6XZd!ivj&t#SmtQW^T<*<IH}tn$uj^&1Ww%N%%jTB(E|XpM
z$Mn)7&s>d|8{wJbEn}&twazRrXW#ulZ$Gy`n)`_Rakcmi{S&bTl?%@u`qH{wY^9!%
zj@2{=pAJ8ZDIXjKv{s1qsD2VISMB4fJS2N4T}l6<*~N|<&M{hYexE$Fe5)qCnYhQa
zQst=eQk|zeThv!h*yF?Nb9c7YJh5423b{tMR(lPbCrzAC=(I}Fck;IMSLx5v%1*CI
zZQb<mXkPbreYvUZC$l$CSi>5r%eBpE*^7`Ujq6(Mo6=Lm)Apb3JY_j;^*rsfZ_jK#
zb$f#OocHtpzZE(p^l;L)rET8fy0Q_^_O8jY++<T&d7JC8D64i`7~2|~9bMbBa<BTY
zej7f0UEN-_D&OqJxPzyf4sK=4e$5@q^|ZD2^_}Z)WBnuaBkylb{M9yB+D^2yYn{k#
z@#&)VH#F{4Je6+GKed16ohe&Zu0FCe<$T(uw3pBB>CTJho3?8Dv*~<!yf<%c;k_TW
z<?YvRuDA84pVhd%yLp@Q&c*v}cI-)Ae)8N|Yx|HTAzwm%g_ym&ba!jw^&fc`-$_^R
z`DXIw>h0(~-~Za3+;=;aG1T{J+SSzGp1(JLw_n$}>gA7VzjI^P`sEhBJ<fcI`7gUN
z-?r;JuUwVAWE&FHe@*+fJKu5negEdZFW2QY;|=YdbL^3FflK9+m)|+>f0yI6x>eRw
zz2+hNW%)AMbXol@r&*t7xy=rq^*cH#dYAthyNlOe-K+ZJep{Y@j)_fVrPt?>lbN?(
zHeH^a{^@+r+^KVG>-2u!Nw~deTlMqgbN93O^WX0hD0z6v^?&zs>pj-zVm|FC`LyZw
zQ{nI(;j`9T#pk{%d1do&@@4<yyXWklwQgrj_Re=zd$(4neSaxE&-~ooFMBILiv7QK
zb)Kc|-Mycy^1mPb{`J1t-MS+6zvoWxzFDsRZtWibJ@H>0-a6iNzT1A)KKkFC8}IMb
zXB{YC@cH5$_wQ`2&FBA3{Myg&%-TP*|8yH~+v|B2c9xcp?2G=s{IlHoe9C#XdE);T
z{X4x*Tui_2$JN)@&t05xapCk&(<krGty%i_)q&TN>u(=BbWCpF$qHk`xG!P9-yST#
zQ!e{{@qK>(Cp8N78viqXZu}a2VfpXLl9MO@XJMZ4`A@R3?rjDJ28CpgAYTTCDpdxC
zhGqtapZ^&c8eTFmlo~KFyh>nTu$sZZAf7)d{-_%R1EZm*i(^Q|t)xHy|JyU`G6*yG
zGIZ}aQnF*RtW1ieUEQCP2TmS5GU3IAa}Uz1XDwj7F7IJzk#hAx`Nu})eo2=WOG&50
zCX%O?EjP-sN%7g&eUbIso7xive~uWp?JTyD@bbPXDIuX|_~Z86r8YhP|EDMX`1I7=
zx%f0ETXl71TkrH)CyOl4o!DLUl=txF^mvJVHGdCZ*t%;%%Hfa8y7vB-GpwojKRNM|
zig;VsOi2|<KZBjIyZ=p7)TuFc&R%VMc+Or?7iqr>5AN^(Z&>s5)9l2DhgS2<nIpp!
zy?(1fj!lZwUY?>yPm0;f_|n)C6Z6{IS|eFv&pCOuyt(zY!O^8<a^h7l`?e1s>Uns0
zE=yi{GA}sKfSH;3@bP|o$wkTAjFv2wHq@~WI-c+$K`*Sd$9bIq6Ayz#e)il0&oh=V
QFfcH9y85}Sb4q9e037kSxc~qF

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/3883.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/3883.png
new file mode 100644
index 0000000000000000000000000000000000000000..d9cdd7b04dac4bcc565266746535e1cd9f83fb85
GIT binary patch
literal 421
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxUQ+J`@J6w42<rcE{-7<y;~>m&0=yCY2E+EzieX1UAv})xn8RU
za&lA-CIm%BE)~$$u4ULL*zMr3K~$AZ=ZMylJLUqP7@Eqm4&1ePy-dKF!}?##lWpJc
z<)52lTzu%~;`8=Xie4;O$juY`hc_bJcG5<{Woj$pzORV0P0VUa$!S?vwV%CvtCOWE
z!_nneP6t%&V?4Tij+DZ+-TKu^pLfj5{rsWo<n1e5F+EYi@ATs|%HH(_+r+mOv}%Pu
z;hOr>sASJ0<I4~48ZPbroyH{k{E^w)nqqa41#|N!b>D8>>u~h;k??tUx@wCXyTa#r
z>0VaN@?COah3Ud+FTMDuw{0(Q+Tk?4DR$xJf+r6>4^FL{^-<^0h6@Tg7V-A_ITk$J
zyvH_kOs$LJy0%2tY}%GLEZo<Z%zNALKKRYOOPhqN|4z5tKEHHTZqu(DAGh&`{n^XM
cn)h0GetntGgdaxI3=9kmp00i_>zopr0I*WH_y7O^

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/389.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/389.png
new file mode 100644
index 0000000000000000000000000000000000000000..0f3ba712423b81de3c838f375d374b0dacf68c42
GIT binary patch
literal 3170
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
II;Vst02A}y+5i9m

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/39-vatican.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/39-vatican.png
new file mode 100644
index 0000000000000000000000000000000000000000..68e637378ed913fc4077c9d4391aca4eefa5f9b1
GIT binary patch
literal 3050
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/39.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/39.png
new file mode 100644
index 0000000000000000000000000000000000000000..4fa1169543b3645a2cd29eb4d4472a042dc1678e
GIT binary patch
literal 151
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RWGyAS?Uqy;~15Ffdqpx;Tbd^d_gwc=ByNBl`|9+ut*mO_(EUwln<m
zbeZZ~)~u^#n3<WGh4nbS4z4)3n5|#RChJ3k6c58iM=oEkq8w`m1_lOCS3j3^P6<r_
D@NO)-

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/40.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/40.png
new file mode 100644
index 0000000000000000000000000000000000000000..4787d77bcba76196842d46952c278280dee94326
GIT binary patch
literal 151
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U$RPCy$}B6Q>sg1B0cfi(`mIZ*t0ob^p&dFvq-$D)b3{wpY|_XZY!x
zeS2q|Yz^&eY;0`goX)Z|;mU)+W_MmW(+US(HU{2eE~N`j$^RJ`7#KWV{an^LB{Ts5
D3xzK6

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/41.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/41.png
new file mode 100644
index 0000000000000000000000000000000000000000..737149fd040f764ca255204e8fb3209d03de0ac5
GIT binary patch
literal 2849
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/420.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/420.png
new file mode 100644
index 0000000000000000000000000000000000000000..5b01670a952df71a8a685c8bff47bdb9a9fc37cb
GIT binary patch
literal 400
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RX!rtCjjYfi3b342(veE{-7<y~!SVv48*HU7r7cCGQM*gKV=kcZw%E
z`i8YQM!L;tjB1z}d~@H!*WcrLvcJWrRs8xT+}yiQiP>74`zV{SV)3*$7RM7N+x0%Y
z(E3|M`plV?IrkfMKD>O*-!`>c&uGv8KfMQ|{2Lpmw$9XPp1FbZ-~a#f6R)*R=HZJp
zmN<8>!fDz;2|YKq_ja|(5&K><9X@}*UQ(yzspO2A8+I{kCy11+{q5g#$U)MtO^-Ql
z5wDuW-!uRJ8y?xS>&S$Xk1~f}pZ&igdBdN6ex9xUd`20ywZ2;#D|pjV5)wEni>E5S
zewoSkt-jvFOl0*zq5b;|LTs&$Bz*cQ8OfGpdgJ+9-?l%?)g^cQ|F`Hwz>b55_U|_i
zv9mgo@b#tPQMN<8WtH{)3!j_}WZP$NzcNjOnVFfHVdcJUlj?MH9T*rG7(8A5T-G@y
GGywp9{jJyl

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/421.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/421.png
new file mode 100644
index 0000000000000000000000000000000000000000..2fef0e26e14e3eaecac16189cf9377efdb8f593f
GIT binary patch
literal 409
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxFNgo^Gm7>42;&EE{-7<y;rZ;dLIrDVSDiXRc>&UNS>(Dt`@K6
z7cUm=uz2xK!{UeVANGH&=8j!EI^=gRkZqEm;drpY*>R(X`qs5mpIy5#&CE7$l13}r
z*$2C2ExzxZ&ivd+NvUPRK7$JZiSKl+-t*0weOumlV+q&9ixU%!DuayIpA@o+bXxvu
zqvN#;ERjyjA3ft^<xSt*9zQ+h*{d0B3v%-vJTpDy-zx3j(zW}JafpAs{>QU33i<5j
zxERMbXsc$Wt0n!i__cV??VtA^2zf8~9N2E6ccH4v@$3$l-7$?JZ1wEv-CQ~I4rHD?
zb}CL({kyNoy;}ycrUqvWiXTKzFg<&$Zr(y6*@kNx$wr)WE=w%A%*7V%^!=a@M~<(q
za&XW_iTb0v&M1BRA@Jwu{X~X@iyTs)xjW)#7UW7wyyg1u`tN@HN6wj7SK0BWlrl3g
PFfe$!`njxgN@xNAj5Vt=

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/423.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/423.png
new file mode 100644
index 0000000000000000000000000000000000000000..1a7db9fa5a614ddf75c9125b76c048f74c94db28
GIT binary patch
literal 2921
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
I=akR{0Nx#N(EtDd

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/43.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/43.png
new file mode 100644
index 0000000000000000000000000000000000000000..40e0b1a0ea35572fc9d87bbf7c5a061b16103a69
GIT binary patch
literal 134
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyu&~y(=7cp23=A5cE{-7<y~%qNkN=wA$kxy)*48K0!zA(l|9^X_
lO6MyH$1ct>FX3flxcrNQXTEMBGXnzygQu&X%Q~loCIB5FC`14N

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/44.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/44.png
new file mode 100644
index 0000000000000000000000000000000000000000..9318eb8fe70febc98c026e9a4ffd1afa3d3208d2
GIT binary patch
literal 3740
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/45.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/45.png
new file mode 100644
index 0000000000000000000000000000000000000000..969748551ec2684350e526cb03bdad0f30181c7e
GIT binary patch
literal 3015
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
BpKJgC

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/46.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/46.png
new file mode 100644
index 0000000000000000000000000000000000000000..143799009caa4c49364369cc7cb1ea1d5cb641e0
GIT binary patch
literal 3059
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/47.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/47.png
new file mode 100644
index 0000000000000000000000000000000000000000..1afaeccf0977d2aa0f1e98d2117b0b9ac73a1773
GIT binary patch
literal 3115
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
E09L)sCjbBd

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/48.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/48.png
new file mode 100644
index 0000000000000000000000000000000000000000..8a8fe27ba9d1c24b3b5a5a888d4f8f7f406b6b90
GIT binary patch
literal 2820
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
E0CoU6L;wH)

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/49.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/49.png
new file mode 100644
index 0000000000000000000000000000000000000000..72f0868642f812b89768f6dd45b984ba90239b5a
GIT binary patch
literal 2870
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
F2>?^VP$B>T

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/500.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/500.png
new file mode 100644
index 0000000000000000000000000000000000000000..55137c4ae14ab41c4b4f6fa1e89899c1ee636aa8
GIT binary patch
literal 3239
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/501.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/501.png
new file mode 100644
index 0000000000000000000000000000000000000000..57eb05c951a0e39f4c9706cba6dc6c7783d30cb6
GIT binary patch
literal 654
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxUNe1_kUar3`_=|E{-7<y<4Z)`Uo?M9IwAFw|CpTrBl9Thz1F;
zUJ_#yKA^=W?AfzhjYV9&M_#&{Pl{K~N<yZ0cAlFs8@qDhMMhUw<|Uk5E-L~iRW1G2
zye)jkwsXhK)-vbUzW;yv_le)!@zPdaZyY<8{}Ep$R=RZ;hfE%m!WN;Yw`WDk&M}&$
zrPg1zW2fz{<`e#}e2q%ogm*r&E3#JK`R|2svG&ETDCea|9LkL!hl_q{b)De7CwTdc
zUf<wN9VuT}=iPhr)MdfX{|CZ~Wgk!POEBXq;r2bVr_wd>YDd1#r(aK<V<g!x-cNiN
z|2c8uky{53FTd@XcD>+u3D?5sbKZXmys$m6{Ibjyz70R#a9&!UyJ;qevh%-N2M@}z
zdYUY@5M`On>uhr_;{%)c-dGJbX|{0TcW(MtR>zsXZF;b&xZ>4Yj-?Xk9PFQk*>}$H
zN~vR89=!bf8-{h?6jLJ8iW9roqJKV~{?=lak8)=kgNd*6q+FG#W|vpzH^gT;UN&I}
z`Y95<a_%kbe;WjjXZjoOw>*9Psd&!P#b<K2IbLkK{;hS}F+Vr9<0syw{S@(<!phBa
z@Avc1I+IR3X|6l-Bp^k9wSAI^toN0vYgDeM-m1wnn{;}M^)HUNc`DPdXGgp0tuOvw
zIAhVpmRUTHGdEt+kU6f!V)3MSvD)F1>R&sI3}eNj1bGZ(Zzbd;P5rWtyFVx0*4la5
zhq+FP(w<+6-(8Eo*RC}63CFfZ>rmenhhP6Wtv&6~#w?+hy+zyYd3#SY%c`FK%fP_E
N;OXk;vd$@?2>=;DA-Dhl

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/502.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/502.png
new file mode 100644
index 0000000000000000000000000000000000000000..5163b833e9a1094e9b04e61556033e2d40c11f7b
GIT binary patch
literal 2978
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
PU|{fc^>bP0l+XkK1-Oc0

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/503.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/503.png
new file mode 100644
index 0000000000000000000000000000000000000000..efa15872dc3e335a1ac64dedfae871866b245e0e
GIT binary patch
literal 2902
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/504.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/504.png
new file mode 100644
index 0000000000000000000000000000000000000000..f362afaf493b9a84b7b24ce5585ec4c2a35a6c0b
GIT binary patch
literal 2912
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/505.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/505.png
new file mode 100644
index 0000000000000000000000000000000000000000..083033e12dba965ace9af837e41b61d1266d89b0
GIT binary patch
literal 2934
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
UItV{tU|?YIboFyt=akR{02>KzlmGw#

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/506.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/506.png
new file mode 100644
index 0000000000000000000000000000000000000000..59e1f37393f51e88566824926c42fd96f2e31cd0
GIT binary patch
literal 2852
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/507.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/507.png
new file mode 100644
index 0000000000000000000000000000000000000000..a6b852c9785475de9af4a24f47ed57c2b71602b4
GIT binary patch
literal 320
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxG9tR!^i6w7#JRTx;Tbd^d|rL|NnnIo6^Bl$Ka%?Mh1z(e?IqT
z{9Ph>XV+iDQr>@GzuP;1*>ju6clLaPBWHG>{qS1<;=-2u31(?-Y}TT7Y^9!hY|)~2
zY-VY0n|RY)`uF(T|1<bdxZyx%ibLR&gFMdWQ$h~h*!Y<9BBNw|lI=$}<0bOSw;udA
z*6B2p$SzW5{j;O2eHYvR-ygdlzI_wQ!=L0WdGB1@(GTyB>%WpXbL8N$5ATorx846f
z-{{ZppOYIqn|rO;j13G7HfWwSS|JyG^1w2UZbkRNS&zP#C4j(#3js$aEVlSmz{oIB
X#O2mpm10K*1_lOCS3j3^P6<r_$`6RJ

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/508.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/508.png
new file mode 100644
index 0000000000000000000000000000000000000000..24b6a4bca6540e3c9f2bfb13dbf91cd37186842a
GIT binary patch
literal 147
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U(!$h!%@}d3g~71B0oji(`mIZ*oe&jQ{f)*(0nD_9>o<=Ujbf{@QBE
zx@lV<T{?B3CAiJWAnU`5gNxbvrEC_kF*7W?%TY5oS!4+V0|SGntDnm{r-UW|TbwR|

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/509.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/509.png
new file mode 100644
index 0000000000000000000000000000000000000000..f9269b395de1c66ee46e911586a72a9d70427edc
GIT binary patch
literal 2964
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
Bf%E_X

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/51.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/51.png
new file mode 100644
index 0000000000000000000000000000000000000000..afb3e6ea871c39fb1992fbabf6e5a0abaf549f9f
GIT binary patch
literal 147
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxQ<eLe^wm>1B0oji(`mIZ?etd10UuyvIoTMn&POT#kKm*?$px~
z@7&!VUpjT5CAiJWAnU`5gNxbvrEC_kF*BU0V}JQGu*QUefq}u()z4*}Q$iB}f;%rC

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/52.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/52.png
new file mode 100644
index 0000000000000000000000000000000000000000..8fc90266fb3a34a700b3239baa97eda842033df7
GIT binary patch
literal 2954
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`(#+;1OBOz`!jG!i)^F
z=14FwaQSCCI|l@0<d@_ZXXF<scse^P6cpvBW#*(ZFjU-{8=M{z{8G&J`@Jtt-W?57
zyz_%ZITV7Nx*J3$s%a^53V3xWF1#rkcu>&Ql|}l*f)3`szJ?yrKpmbgt{d!66c_b1
zFYf3%_4{G<;_PdCzCSzrZ|ilt=W9OC-F%+?00+-B592`72A-8pa)J+<j~_Yq@QI#7
zBbQ16g8;|o6vg7d%8U#@>TGPZl@74)V_>Yf%+0}Yz<2fm1DW>!{I8s5#xORtFditG
zXyMJ#Aj05K)#tQ~!NHBOVeSmIV1@-O3<;-`lO8h!=rSaz*FU?=&@lJM%xXr4=qZY#
zj0+|*C<v!^xG-c`Gpsou*5%3&VZb1g=6%GH;f5}QfoFJ{2g8Q#3<u5$aBpJZ;9)Qb
z>}b_wV5w$EIH9au!O$|3LB#D-xXnlHbpp?|7#J#MZnD{_V(Ho#&7oV!9v-eIr*Y0x
zTwBB}ktuPOgWjRanUY40Cj1XRpJ8BFFi}+SLG$Oo73cWYojYgNw~a4e_tk#3|4K<o
zkN-VAzq-JIf#G3E-Nk=8`kSR1tl1iJ|1DB|$C44py`c1aciJX?hph|?Ufv4-TmT9i
z*M$>y-n{wr$&(viN1UP)Pleb1OFtBUApCF6&pMkw-@iWC_eiDDD7Mj^<;R0VXTJC>
zl{r6&vnA=yvwrtK+qwV$k-e;R#4~AUgqFzTK%v4umsvfZjg~5PI!)3%s(R^v%A@-_
zznSgsn=)+3vSX~CsJkLInfaTyx<Ew9fk)pN7(VUJKX^rhgSjE2`QiEU|L^Vpx-U>=
zXh`#%RLH;(=c1w)a%!{vaSjFsmj#Vl8yuy-9F)*Gz$SB$_0B==KM7_nPAW$ZISDv%
zr8LMCC1|c`a?)r!yFpefLH~+_tjU4EjJC-Ie0qmMcktO3@c&BWn0HWPPa`Lb;|UJo
zM8#Vjj7eP)%6%N-Gh2Ts9`s-l>Q+%W*&!0B<UP^U!!W2TL?P5e_LFT9lVy91+pdY$
zCm4*H{<Q6JH=NSADbV%`&sOK1E6k-@+!k?PNGUO#)i1VS_JyJ?Qno#23!h(Doxy*r
z-_H5C!GRYN?8ZlO4D^m2cG_s6!#O$m^hTvMJgbjMZ3tV#yu0&j^7)PBEJBU02RO}G
z%AFJv<s3aCd?NgAc&t#6Q85v`#c9sT+!A<5U1{<P?=5P(1b-fpNHQ{PkMPh@z9!T!
ztS?aA;e5ngMX1x+NPXu7CeMvaLM{nia=Vllr2JB6<!loVDdov0Z>3~!Vz->4qo94F
z^~u~Pho2Zfk$$51DVl3;l0)H=AHk0_f=*?5Nj?>LYVwpVb%v2+=;B#HcULS75j5?O
za$37^ThRKz_7%b=rL!#0Hj8<BFI~H6>Sd`6@r>`8>tB@Y61+QA&TsmK@Jpv(y1$tI
zg85514{w`j^YM;!4awOO>=Nmc<r3>>_$-sW+%0)L#K7F}^^E5;`Df;bMrdu*su7)d
zifgLZRJEznTKXX?S1nt0Zxwgw=g`w3{VU^wYuCAj8V5gK$$4ek>d;kl16~J92dA&J
zUeUfPeMNqV{gS%KznyH6hkXwFJ1+@burdDeo?{B!$&#BZbQH6BSGScmnjTTxc=l#Z
znbz(Ze`R-f+pb!<(9+r1%Q$><(B~;>_Uw;m6#ke~;>Y=1WBK&YbzS#F-fKS6lwM}y
zv(qp&CVSPi>C+-sd#nyz?f!bN*}AvO=Pujpx;yfBBcJ1OFZCF8_w@dAtaG0S-weLH
zoNKw5udUVBb$Y9^mr5_(?NYu!Z~40!^Y+Cx%=5`#ey?)x^ItNx`hP?I=Kfm#)tx7T
zZ8MJw+ijk65;jLo3-fJc^^f2F80Z{(*ui;e;?%_H4_hYgylAuds#~uce^2JIn8zxQ
zbC2a7Tdc;Wrl{ua`^xv-tRUZ=%QTl+`&j!NKYQlvqO;d#n$EU0yl(V-_Vd}-XW!qR
z5LFSSvu(w;9jTt1o<uE+e79{+UTc(P<kE=HsMyVJYv-<2y|#Pp?&X5Zclu5CTRrbu
z`r!>9x1HR!a=YY)r#IMcuiKWptu`?|Nj!b~(RGL4P2M}Xc2{lhUt4zG_M3dGWus*4
zinkPrScO^Ln{{r^JNw$BU#7j(Pmee+aQ=qz<88vHHIHP@4W513JzYF~XL0lAj_ywH
zrqg=U?eu0#AG>>E?-Q?*uZ6J>t1f+=JA3o&LvL5yUjNSQUFN&?JM+(&%-5V3X<U5a
z@CoM!fln{mbI+e@kbQqmoxihxWBS(T%KFLr6T{bD->`jY`Ks@U@5SxD*%i%yZ1>p4
z{GQRh$oMnn2ezNse%k+V{=E3s`_A>s|5N@~{lCbtyg`*Qow>8ou`!zI_m8R?#r=Ku
zR<~2XZMyl^v1h?fM^VTArnOB^53W_rIPqq}TE*|rXPldOE|ae{pzg)B3+#!{61xxA
z@u;`9w}!Xb_Z4(RNL@6XZd!ivj&t#SmtQW^T<*<IH}tn$uj^&1Ww%N%%jTB(E|XpM
z$Mn)7&s>d|8{wJbEn}&twazRrXW#ulZ$Gy`n)`_Rakcmi{S&bTl?%@u`qH{wY^9!%
zj@2{=pAJ8ZDIXjKv{s1qsD2VISMB4fJS2N4T}l6<*~N|<&M{hYexE$Fe5)qCnYhQa
zQst=eQk|zeThv!h*yF?Nb9c7YJh5423b{tMR(lPbCrzAC=(I}Fck;IMSLx5v%1*CI
zZQb<mXkPbreYvUZC$l$CSi>5r%eBpE*^7`Ujq6(Mo6=Lm)Apb3JY_j;^*rsfZ_jK#
zb$f#OocHtpzZE(p^l;L)rET8fy0Q_^_O8jY++<T&d7JC8D64i`7~2|~9bMbBa<BTY
zej7f0UEN-_D&OqJxPzyf4sK=4e$5@q^|ZD2^_}Z)WBnuaBkylb{M9yB+D^2yYn{k#
z@#&)VH#F{4Je6+GKed16ohe&Zu0FCe<$T(uw3pBB>CTJho3?8Dv*~<!yf<%c;k_TW
z<?YvRuDA84pVhd%yLp@Q&c*v}cI-)Ae)8N|Yx|HTAzwm%g_ym&ba!jw^&fc`-$_^R
z`DXIw>h0(~-~Za3+;=;aG1T{J+SSzGp1(JLw_n$}>gA7VzjI^P`sEhBJ<fcI`7gUN
z-?r;JuUwVAWE&FHe@*+fJKu5negEdZFW2QY;|=YdbL^3FflK9+m)|+>f0yI6x>eRw
zz2+hNW%)AMbXol@r&*t7xy=rq^*cH#dYAthyNlOe-K+ZJep{Y@j)_fVrPt?>lbN?(
zHeH^a{^@+r+^KVG>-2u!Nw~deTlMqgbN93O^WX0hD0z6v^?&zs>pj-zVm|FC`LyZw
zQ{nI(;j`9T#pk{%d1do&@@4<yyXWklwQgrj_Re=zd$(4neSaxE&-~ooFMBILiv7QK
zb)Kc|-Mycy^1mPb{`J1t-MS+6zvoWxzFDsRZtWibJ@H>0-a6iNzT1A)KKkFC8}IMb
zXB{YC@cH5$_wQ`2&FBA3{Myg&%-TP*|8yH~+v|B2c9xcp?2G=s{IlHoe9C#XdE);T
z{X4x*Tui_2$JN)@&t05xapCk&(<krGty%i_)q&TN>u(=BbWCpF$qHk`xG!P9-yST#
zQ!e{{@qK>(Cp8N78viqXZu}a2VfpXLl9MO@XJMZ4`A@R3?rjDJ28CpgAYTTCDpdxC
zhGqtapZ^&c8eTFmlo~KFyh>nTu$sZZAf7)d{-_%R1H)EN7srr_TS+M=3jUvOVE!|I
zUo)e;h5nMh;J(gAw*(96KmY9yzkh#!MfQi^=G!IDtzVP=;@pRn8)nPftJwBee{6Yp
zZf`ly{(Z(qb8hXN_3-}w`YF<XJ{?VMYd=5F@WY1<27exkB?WB%oL=$um6~I7B!}jY
zzu)Z-s|%{O89(abu`zSvNs3y=V_*Mw!JP!jOj|a#w#_^?@s<+*{$EYJFhM+h!n8|^
r?<90QJjP>m>DXe)lnIhN5)2+!&EEFjY5L5-z`)??>gTe~DWM4f@gRk3

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/53.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/53.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd7ce15da4cc7c4786515401ef10172f9ed307ed
GIT binary patch
literal 3234
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
XeziZ(q)>4N1_lOCS3j3^P6<r_weta)

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/54.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/54.png
new file mode 100644
index 0000000000000000000000000000000000000000..64a961aa762f80fe60b3c6c8fbe9be0bbd432ca3
GIT binary patch
literal 3003
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/55.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/55.png
new file mode 100644
index 0000000000000000000000000000000000000000..d2b4c2231efa14dcf4afd6b9eecc13fd2d859a8b
GIT binary patch
literal 662
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U#GL1BarhLgRb}1||zn7sn8b-mQ~;Jth~*9JfDzd0WZ3otAU;-yRiB
zX76OvD!t_VLQ%;kbvj?^hHghel{h8;X9``f1e|wqT;wkCvg(*_!1HB6->I#a%p%Xt
zEZ(}ce12&_x_*DQKyCm3>F58S{{H(n_nns~KFh02s|rwk7TCG8T7&b>x=y3FGZJqZ
zI`3Bd^**6l>2ybGqv7oKvkThJE@(5H-7a{ViOqGJMug&a4Tkj9&OEXaPu|Yy6#jmG
zv)D?80~sB~Zx6A2c3&pRA(vtj)F0zeZ&5ZyRbu=3N873*zrNo2&dyh7q4t~h>!vYf
zb5n97+i$;0y<^wCSVu8AuUhMrYv<}x#&r_Rt&`?ez5AHw+#R%Z!7e9nzY~I=TqUY4
z{M}!(=Y6$jS5W4>!xLSwHp;{6QJ%;mhW_0A7nj`XD!-m=)~soi($c<qBq@4bpX~Na
z&tE0IYZbb|wEBn*^VhnlD~7wo`IVn;Up(Q{h0Rya1f1}46XHskZRxn!)8A_D(Tpp>
z(W{?+ZJB>jI(Umk`QwuwOwNkhw%%twe%?3o^HOTo_T5q$J+mjAv0&YA(Rk(i8sXZV
zNB2+mdTucD%N5fp#akYlF--obb!*RBo^>XoNfUI>&knl$viQ>L@`Nop1~o4we}8ZF
zRNZ_e*>lS-mD=TZuFP2c<(F*9uQ?ULulAmvJlSz#>W+`f=_T2F{)aRxG~E5w>V7fm
zm%V(F?eaUXvkE`--7*b)H>;K*CT81bqjkSe_X-_!NMxzk+dd<ue%>4})^{)1!(+~d
VKNYDiV_;xl@O1TaS?83{1OQ$3Eg}E_

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/56.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/56.png
new file mode 100644
index 0000000000000000000000000000000000000000..e1ebcdc4d00eeacf068fc738b36d8b69a9221b26
GIT binary patch
literal 239
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U(#7fUfFIo5oiR3=9)JT^vI!dXrNOVt>zPWRJL&b4uW;UbnZDeuC3O
zgNH$G3lDDfoOQ)~hh}W|LOs{!hc9HR*$f@aUP<ox`hvSnx__U+oc&)XKD_#SzKHZ0
zrsO+2{?Bx@&M{|}H`hMeW@MnS^T*@s_jy2I{sNPw4XQuSm(7`!^n1O*p2}1H(+>88
ne`zULmh8nK8vJg>!NbQA7%o_;a=wpy&j13Ru6{1-oD!M<1qocQ

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/57.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/57.png
new file mode 100644
index 0000000000000000000000000000000000000000..56d1d716f022f124ec49e28da33229243e9a912f
GIT binary patch
literal 157
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RX!ryP##_>jl*e3=H<3E{-7<y~%%y1K-#)^D+qQ^2nN2bV#3>wB^8i
z1zn!Blnpa%X7x!*fWY^T7xS049@KHF-!Faf(1V5I#~AcxaXmaOWwD-tfq}u()z4*}
HQ$iB}?*lPl

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/58.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/58.png
new file mode 100644
index 0000000000000000000000000000000000000000..0c259dd70208631cbefd34936fee59117071cd47
GIT binary patch
literal 273
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RWo^qm<I&zqZW`3=Eq+T^vI!dXxXu1^%&T=4BAp<&ia&U^Ot3Sbt2q
zvZsfKXU>~5JZxD^JRl&RSDWzT-)H^9^-O_&7mnUssKsNY^@pd%W(^pF*f$qyvBaKf
z^510Z-o7yZWp3N`_w|c9?$`gCx)3B%bV_tiRUunz^G1!slf&;zzO(t)6uP)ehrhW;
zLj7>#=Jgv-J?7~Oe_wA@^Xr%N@@~8OzlT3?omJP+v(sN>JL_}Xih~UIS&UaMP<&Cv
Qz`(%Z>FVdQ&MBb@0C|pQhyVZp

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/590.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/590.png
new file mode 100644
index 0000000000000000000000000000000000000000..24b6a4bca6540e3c9f2bfb13dbf91cd37186842a
GIT binary patch
literal 147
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U(!$h!%@}d3g~71B0oji(`mIZ*oe&jQ{f)*(0nD_9>o<=Ujbf{@QBE
zx@lV<T{?B3CAiJWAnU`5gNxbvrEC_kF*7W?%TY5oS!4+V0|SGntDnm{r-UW|TbwR|

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/591.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/591.png
new file mode 100644
index 0000000000000000000000000000000000000000..397b63958533972636df624646a2576e7084a0b7
GIT binary patch
literal 140
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U)<4x48H;<3Fhk3=DdnE{-7<y~#G}E56NdWNYXYYwMHhVUnni6PE7X
rqnKsD{adJXmW0ihrlc2=JPgjxtTzkA?tW)rU|{fc^>bP0l+XkKm5L}r

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/592.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/592.png
new file mode 100644
index 0000000000000000000000000000000000000000..7ee71fd7e9258889a32fad74e618b029a2cba9ce
GIT binary patch
literal 3185
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
ahPl%o+}zIf!HI!^fx*+&&t;ucLK6UE`1ExE

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/593.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/593.png
new file mode 100644
index 0000000000000000000000000000000000000000..371dfcba928413beb06ac80e337be95964646c1c
GIT binary patch
literal 3025
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
P7#KWV{an^LB{Ts5w*ITn

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/594.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/594.png
new file mode 100644
index 0000000000000000000000000000000000000000..24b6a4bca6540e3c9f2bfb13dbf91cd37186842a
GIT binary patch
literal 147
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U(!$h!%@}d3g~71B0oji(`mIZ*oe&jQ{f)*(0nD_9>o<=Ujbf{@QBE
zx@lV<T{?B3CAiJWAnU`5gNxbvrEC_kF*7W?%TY5oS!4+V0|SGntDnm{r-UW|TbwR|

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/595.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/595.png
new file mode 100644
index 0000000000000000000000000000000000000000..e5b17e7b71e05fd6f430d05a054a03c2101c953f
GIT binary patch
literal 2922
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
J);T3K0RT+NZubBH

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/596.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/596.png
new file mode 100644
index 0000000000000000000000000000000000000000..24b6a4bca6540e3c9f2bfb13dbf91cd37186842a
GIT binary patch
literal 147
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U(!$h!%@}d3g~71B0oji(`mIZ*oe&jQ{f)*(0nD_9>o<=Ujbf{@QBE
zx@lV<T{?B3CAiJWAnU`5gNxbvrEC_kF*7W?%TY5oS!4+V0|SGntDnm{r-UW|TbwR|

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/597.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/597.png
new file mode 100644
index 0000000000000000000000000000000000000000..546ed104b93f776f2f85af1a4081f827357607c0
GIT binary patch
literal 295
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RXQfpOMgE`PEw(7#L1^x;Tbd^uC?4m(S5rpmqOU?HEU=ehw+#&I<PY
z2dXAYS*-pKdMlVZow|3FNc|5_3Re{2+TEG+JjD3qOk?%QlLbq(rPwFvxy<F_Ub}U2
zuuIdogruWW${8Czt?B8A+?D9+bM5;A*5jF{PPrd(>3F*C#15s)cNh!oD_3-@#QfgR
zxmfXb^rPwL&%3sAzfQbpk>=wn@gv9WXZe2Fr<~32^9~*}oUlSR;;T0YztC0X=arW%
zl*QJbyWukF;_Q&^D}Jrn&$av1#vlK?#N{LzZA+8(@kKK*Ffe$!`njxgN@xNA9qx45

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/598.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/598.png
new file mode 100644
index 0000000000000000000000000000000000000000..3f28450d7fdda086e88991fc30dcfa8d0a67ceb0
GIT binary patch
literal 380
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{W>>~kUEEHsOxnG21Yqg7sn8b-m91QdmSziIr{OvZssi$p@pu|+EO|k
zN=l2I=eSI_Yk2TXdxzyup1gf6FP^A1S>1dT#8S9gR9AFuy+K&8lyBX+U8WNb{$`Np
zYcF=yT-x!_gkh=3`M1(vQYNMCJ>`+vnWNX=QBd-);rCBbUcSQ<j$LJ(6@T!1+{bF&
zrjwy<+-9?_#be@jUwja@xa(aw$DQCyQYG@cS(5n@Ht#hQ*WDP@^}Wyg#qNkSCQp_x
zd-S&VO6`2al)C(aIoE<tj%yDD-cFaiXXRh>+jh$vuB9(iOKgw6`IY!ZtLvN1N}qYZ
zf3c)lHRtst@$@hUlyUjo47<PK&)nJ1YZD~YlrEWn<Bq#+)t!3$(4#z?f}Hu=>o4^j
k?%mk6_wnxkS3mL>tS^|6qp|n~0|Nttr>mdKI;Vst0HLR&8UO$Q

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/599.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/599.png
new file mode 100644
index 0000000000000000000000000000000000000000..677c952bde158de0418c70b96b809be7833e66ea
GIT binary patch
literal 255
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxQS)|N9)rJ3=9iBT^vI!df!eq<Z5;haJ_$QgR8;Z4Q7^(?-VN7
z^fyniZGB*9)0*xvU2Sex!o&>gmrRPA@+K=iXl`t@|16m%k<z+x&66}gdBbT}qh`PP
zAvpV^G^;qLrcReJLuoCq(Y@bCR4fg6j2V23-8CbxO#86z&`z1;B!*xAJg@sQNC-cU
zc{kT0Lo~B$Nv?eS&i)0DBWEuxZMi0RElp8(L+!o)Qu`Uq%J*zCvi$Xmfq{X+)78&q
Iol`;+02+{Af&c&j

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/60.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/60.png
new file mode 100644
index 0000000000000000000000000000000000000000..20cf467e4d985b3db724d9e649965c553e61aa2b
GIT binary patch
literal 3266
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`(#+;1OBOz`!jG!i)^F
z=14FwaQSCCI|l@0<d@_ZXXF<scse^P6cpvBW#*(ZFjU-{8=M{z{8G&J`@Jtt-W?57
zyz_%ZITV7Nx*J3$s%a^53V3xWF1#rkcu>&Ql|}l*f)3`szJ?yrKpmbgt{d!66c_b1
zFYf3%_4{G<;_PdCzCSzrZ|ilt=W9OC-F%+?00+-B592`72A-8pa)J+<j~_Yq@QI#7
zBbQ16g8;|o6vg7d%8U#@>TGPZl@74)V_>Yf%+0}Yz<2fm1DW>!{I8s5#xORtFditG
zXyMJ#Aj05K)#tQ~!NHBOVeSmIV1@-O3<;-`lO8h!=rSaz*FU?=&@lJM%xXr4=qZY#
zj0+|*C<v!^xG-c`Gpsou*5%3&VZb1g=6%GH;f5}QfoFJ{2g8Q#3<u5$aBpJZ;9)Qb
z>}b_wV5w$EIH9au!O$|3LB#D-xXnlHbpp?|7#J#MZnD{_V(Ho#&7oV!9v-eIr*Y0x
zTwBB}ktuPOgWjRanUY40Cj1XRpJ8BFFi}+SLG$Oo73cWYojYgNw~a4e_tk#3|4K<o
zkN-VAzq-JIf#G3E-Nk=8`kSR1tl1iJ|1DB|$C44py`c1aciJX?hph|?Ufv4-TmT9i
z*M$>y-n{wr$&(viN1UP)Pleb1OFtBUApCF6&pMkw-@iWC_eiDDD7Mj^<;R0VXTJC>
zl{r6&vnA=yvwrtK+qwV$k-e;R#4~AUgqFzTK%v4umsvfZjg~5PI!)3%s(R^v%A@-_
zznSgsn=)+3vSX~CsJkLInfaTyx<Ew9fk)pN7(VUJKX^rhgSjE2`QiEU|L^Vpx-U>=
zXh`#%RLH;(=c1w)a%!{vaSjFsmj#Vl8yuy-9F)*Gz$SB$_0B==KM7_nPAW$ZISDv%
zr8LMCC1|c`a?)r!yFpefLH~+_tjU4EjJC-Ie0qmMcktO3@c&BWn0HWPPa`Lb;|UJo
zM8#Vjj7eP)%6%N-Gh2Ts9`s-l>Q+%W*&!0B<UP^U!!W2TL?P5e_LFT9lVy91+pdY$
zCm4*H{<Q6JH=NSADbV%`&sOK1E6k-@+!k?PNGUO#)i1VS_JyJ?Qno#23!h(Doxy*r
z-_H5C!GRYN?8ZlO4D^m2cG_s6!#O$m^hTvMJgbjMZ3tV#yu0&j^7)PBEJBU02RO}G
z%AFJv<s3aCd?NgAc&t#6Q85v`#c9sT+!A<5U1{<P?=5P(1b-fpNHQ{PkMPh@z9!T!
ztS?aA;e5ngMX1x+NPXu7CeMvaLM{nia=Vllr2JB6<!loVDdov0Z>3~!Vz->4qo94F
z^~u~Pho2Zfk$$51DVl3;l0)H=AHk0_f=*?5Nj?>LYVwpVb%v2+=;B#HcULS75j5?O
za$37^ThRKz_7%b=rL!#0Hj8<BFI~H6>Sd`6@r>`8>tB@Y61+QA&TsmK@Jpv(y1$tI
zg85514{w`j^YM;!4awOO>=Nmc<r3>>_$-sW+%0)L#K7F}^^E5;`Df;bMrdu*su7)d
zifgLZRJEznTKXX?S1nt0Zxwgw=g`w3{VU^wYuCAj8V5gK$$4ek>d;kl16~J92dA&J
zUeUfPeMNqV{gS%KznyH6hkXwFJ1+@burdDeo?{B!$&#BZbQH6BSGScmnjTTxc=l#Z
znbz(Ze`R-f+pb!<(9+r1%Q$><(B~;>_Uw;m6#ke~;>Y=1WBK&YbzS#F-fKS6lwM}y
zv(qp&CVSPi>C+-sd#nyz?f!bN*}AvO=Pujpx;yfBBcJ1OFZCF8_w@dAtaG0S-weLH
zoNKw5udUVBb$Y9^mr5_(?NYu!Z~40!^Y+Cx%=5`#ey?)x^ItNx`hP?I=Kfm#)tx7T
zZ8MJw+ijk65;jLo3-fJc^^f2F80Z{(*ui;e;?%_H4_hYgylAuds#~uce^2JIn8zxQ
zbC2a7Tdc;Wrl{ua`^xv-tRUZ=%QTl+`&j!NKYQlvqO;d#n$EU0yl(V-_Vd}-XW!qR
z5LFSSvu(w;9jTt1o<uE+e79{+UTc(P<kE=HsMyVJYv-<2y|#Pp?&X5Zclu5CTRrbu
z`r!>9x1HR!a=YY)r#IMcuiKWptu`?|Nj!b~(RGL4P2M}Xc2{lhUt4zG_M3dGWus*4
zinkPrScO^Ln{{r^JNw$BU#7j(Pmee+aQ=qz<88vHHIHP@4W513JzYF~XL0lAj_ywH
zrqg=U?eu0#AG>>E?-Q?*uZ6J>t1f+=JA3o&LvL5yUjNSQUFN&?JM+(&%-5V3X<U5a
z@CoM!fln{mbI+e@kbQqmoxihxWBS(T%KFLr6T{bD->`jY`Ks@U@5SxD*%i%yZ1>p4
z{GQRh$oMnn2ezNse%k+V{=E3s`_A>s|5N@~{lCbtyg`*Qow>8ou`!zI_m8R?#r=Ku
zR<~2XZMyl^v1h?fM^VTArnOB^53W_rIPqq}TE*|rXPldOE|ae{pzg)B3+#!{61xxA
z@u;`9w}!Xb_Z4(RNL@6XZd!ivj&t#SmtQW^T<*<IH}tn$uj^&1Ww%N%%jTB(E|XpM
z$Mn)7&s>d|8{wJbEn}&twazRrXW#ulZ$Gy`n)`_Rakcmi{S&bTl?%@u`qH{wY^9!%
zj@2{=pAJ8ZDIXjKv{s1qsD2VISMB4fJS2N4T}l6<*~N|<&M{hYexE$Fe5)qCnYhQa
zQst=eQk|zeThv!h*yF?Nb9c7YJh5423b{tMR(lPbCrzAC=(I}Fck;IMSLx5v%1*CI
zZQb<mXkPbreYvUZC$l$CSi>5r%eBpE*^7`Ujq6(Mo6=Lm)Apb3JY_j;^*rsfZ_jK#
zb$f#OocHtpzZE(p^l;L)rET8fy0Q_^_O8jY++<T&d7JC8D64i`7~2|~9bMbBa<BTY
zej7f0UEN-_D&OqJxPzyf4sK=4e$5@q^|ZD2^_}Z)WBnuaBkylb{M9yB+D^2yYn{k#
z@#&)VH#F{4Je6+GKed16ohe&Zu0FCe<$T(uw3pBB>CTJho3?8Dv*~<!yf<%c;k_TW
z<?YvRuDA84pVhd%yLp@Q&c*v}cI-)Ae)8N|Yx|HTAzwm%g_ym&ba!jw^&fc`-$_^R
z`DXIw>h0(~-~Za3+;=;aG1T{J+SSzGp1(JLw_n$}>gA7VzjI^P`sEhBJ<fcI`7gUN
z-?r;JuUwVAWE&FHe@*+fJKu5negEdZFW2QY;|=YdbL^3FflK9+m)|+>f0yI6x>eRw
zz2+hNW%)AMbXol@r&*t7xy=rq^*cH#dYAthyNlOe-K+ZJep{Y@j)_fVrPt?>lbN?(
zHeH^a{^@+r+^KVG>-2u!Nw~deTlMqgbN93O^WX0hD0z6v^?&zs>pj-zVm|FC`LyZw
zQ{nI(;j`9T#pk{%d1do&@@4<yyXWklwQgrj_Re=zd$(4neSaxE&-~ooFMBILiv7QK
zb)Kc|-Mycy^1mPb{`J1t-MS+6zvoWxzFDsRZtWibJ@H>0-a6iNzT1A)KKkFC8}IMb
zXB{YC@cH5$_wQ`2&FBA3{Myg&%-TP*|8yH~+v|B2c9xcp?2G=s{IlHoe9C#XdE);T
z{X4x*Tui_2$JN)@&t05xapCk&(<krGty%i_)q&TN>u(=BbWCpF$qHk`xG!P9-yST#
zQ!e{{@qK>(Cp8N78viqXZu}a2VfpXLl9MO@XJMZ4`A@R3?rjDJ28CpgAYTTCDpdxC
zhGqtapZ^&c8eTFmlo~KFyh>nTu$sZZAf7)d{-_%R1LIpy7srr_TU(~=%??f!IadGt
z-gmXVJ3D<ZFSukO;wTVO(!sH)DL}@^Vn>9mNKC9t*Ejispu&)Lg{BAMmmI?n@&^PM
zt=uwAr*lfiLi1;zZ{6v?u4uuLv@W2&pzU)}Ma8+(hXudcuVfN-VQW#_$vM3*{V}^3
zM+2MBrjp8kkF6?qvCQaMu(IK-%OuZPis5PRKdhbpG;-;Q=f}*HcohU#B_2z1J!OA#
zsY@b)>w{!Z;lCfwE+*mf^N-2p2i^KUFU<bv>{otHI*aQ1um1FQX>)Hd^tutA;kbse
zy-dgO`wJZj!J{v=wx7H6tb2C)w`Z<d@!OLu%qAC4KWXV?@@Mh>MGQQrkDDk(#c>Iq
z4cX?I*xfx>VuJ72m7Sg@FD~vX7f)R$+*j7)WU?^*^0%Ba|ErZZH3C-Vrayek7`E^E
zirtkH7&hw6nVD>{t?#`=<EPb<&%C+UY*mYVne*t--{Ok8rnLKv&dvgx_H8+%@bGx4
z4V!1h$CnDaIp5wyrG0%I_o_G3U{PY{1yd%Kxd%Odys$X5{Lb<}UaP-bdHQp^hp?vZ
zV`g!5Ug5b^*y5*BlJ+AOzp4Jq{(YG9XRqjmsLOu?4qmqM>kFLXcSK4=!MSEi^<%03
z%#raiG0a8MYhHW3eev*{eV$}{U(4HXA9m&HoSo0i5YoLNtw3JJmw|zS!PC{xWt~$(
F698cd6p8=<

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/61.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/61.png
new file mode 100644
index 0000000000000000000000000000000000000000..59f8fbabf96de683340ee0d8b331ff9ffc8b260c
GIT binary patch
literal 3547
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`(#+;1OBOz`!jG!i)^F
z=14FwaQSCCI|l@0<d@_ZXXF<scse^P6cpvBW#*(ZFjU-{8=M{z{8G&J`@Jtt-W?57
zyz_%ZITV7Nx*J3$s%a^53V3xWF1#rkcu>&Ql|}l*f)3`szJ?yrKpmbgt{d!66c_b1
zFYf3%_4{G<;_PdCzCSzrZ|ilt=W9OC-F%+?00+-B592`72A-8pa)J+<j~_Yq@QI#7
zBbQ16g8;|o6vg7d%8U#@>TGPZl@74)V_>Yf%+0}Yz<2fm1DW>!{I8s5#xORtFditG
zXyMJ#Aj05K)#tQ~!NHBOVeSmIV1@-O3<;-`lO8h!=rSaz*FU?=&@lJM%xXr4=qZY#
zj0+|*C<v!^xG-c`Gpsou*5%3&VZb1g=6%GH;f5}QfoFJ{2g8Q#3<u5$aBpJZ;9)Qb
z>}b_wV5w$EIH9au!O$|3LB#D-xXnlHbpp?|7#J#MZnD{_V(Ho#&7oV!9v-eIr*Y0x
zTwBB}ktuPOgWjRanUY40Cj1XRpJ8BFFi}+SLG$Oo73cWYojYgNw~a4e_tk#3|4K<o
zkN-VAzq-JIf#G3E-Nk=8`kSR1tl1iJ|1DB|$C44py`c1aciJX?hph|?Ufv4-TmT9i
z*M$>y-n{wr$&(viN1UP)Pleb1OFtBUApCF6&pMkw-@iWC_eiDDD7Mj^<;R0VXTJC>
zl{r6&vnA=yvwrtK+qwV$k-e;R#4~AUgqFzTK%v4umsvfZjg~5PI!)3%s(R^v%A@-_
zznSgsn=)+3vSX~CsJkLInfaTyx<Ew9fk)pN7(VUJKX^rhgSjE2`QiEU|L^Vpx-U>=
zXh`#%RLH;(=c1w)a%!{vaSjFsmj#Vl8yuy-9F)*Gz$SB$_0B==KM7_nPAW$ZISDv%
zr8LMCC1|c`a?)r!yFpefLH~+_tjU4EjJC-Ie0qmMcktO3@c&BWn0HWPPa`Lb;|UJo
zM8#Vjj7eP)%6%N-Gh2Ts9`s-l>Q+%W*&!0B<UP^U!!W2TL?P5e_LFT9lVy91+pdY$
zCm4*H{<Q6JH=NSADbV%`&sOK1E6k-@+!k?PNGUO#)i1VS_JyJ?Qno#23!h(Doxy*r
z-_H5C!GRYN?8ZlO4D^m2cG_s6!#O$m^hTvMJgbjMZ3tV#yu0&j^7)PBEJBU02RO}G
z%AFJv<s3aCd?NgAc&t#6Q85v`#c9sT+!A<5U1{<P?=5P(1b-fpNHQ{PkMPh@z9!T!
ztS?aA;e5ngMX1x+NPXu7CeMvaLM{nia=Vllr2JB6<!loVDdov0Z>3~!Vz->4qo94F
z^~u~Pho2Zfk$$51DVl3;l0)H=AHk0_f=*?5Nj?>LYVwpVb%v2+=;B#HcULS75j5?O
za$37^ThRKz_7%b=rL!#0Hj8<BFI~H6>Sd`6@r>`8>tB@Y61+QA&TsmK@Jpv(y1$tI
zg85514{w`j^YM;!4awOO>=Nmc<r3>>_$-sW+%0)L#K7F}^^E5;`Df;bMrdu*su7)d
zifgLZRJEznTKXX?S1nt0Zxwgw=g`w3{VU^wYuCAj8V5gK$$4ek>d;kl16~J92dA&J
zUeUfPeMNqV{gS%KznyH6hkXwFJ1+@burdDeo?{B!$&#BZbQH6BSGScmnjTTxc=l#Z
znbz(Ze`R-f+pb!<(9+r1%Q$><(B~;>_Uw;m6#ke~;>Y=1WBK&YbzS#F-fKS6lwM}y
zv(qp&CVSPi>C+-sd#nyz?f!bN*}AvO=Pujpx;yfBBcJ1OFZCF8_w@dAtaG0S-weLH
zoNKw5udUVBb$Y9^mr5_(?NYu!Z~40!^Y+Cx%=5`#ey?)x^ItNx`hP?I=Kfm#)tx7T
zZ8MJw+ijk65;jLo3-fJc^^f2F80Z{(*ui;e;?%_H4_hYgylAuds#~uce^2JIn8zxQ
zbC2a7Tdc;Wrl{ua`^xv-tRUZ=%QTl+`&j!NKYQlvqO;d#n$EU0yl(V-_Vd}-XW!qR
z5LFSSvu(w;9jTt1o<uE+e79{+UTc(P<kE=HsMyVJYv-<2y|#Pp?&X5Zclu5CTRrbu
z`r!>9x1HR!a=YY)r#IMcuiKWptu`?|Nj!b~(RGL4P2M}Xc2{lhUt4zG_M3dGWus*4
zinkPrScO^Ln{{r^JNw$BU#7j(Pmee+aQ=qz<88vHHIHP@4W513JzYF~XL0lAj_ywH
zrqg=U?eu0#AG>>E?-Q?*uZ6J>t1f+=JA3o&LvL5yUjNSQUFN&?JM+(&%-5V3X<U5a
z@CoM!fln{mbI+e@kbQqmoxihxWBS(T%KFLr6T{bD->`jY`Ks@U@5SxD*%i%yZ1>p4
z{GQRh$oMnn2ezNse%k+V{=E3s`_A>s|5N@~{lCbtyg`*Qow>8ou`!zI_m8R?#r=Ku
zR<~2XZMyl^v1h?fM^VTArnOB^53W_rIPqq}TE*|rXPldOE|ae{pzg)B3+#!{61xxA
z@u;`9w}!Xb_Z4(RNL@6XZd!ivj&t#SmtQW^T<*<IH}tn$uj^&1Ww%N%%jTB(E|XpM
z$Mn)7&s>d|8{wJbEn}&twazRrXW#ulZ$Gy`n)`_Rakcmi{S&bTl?%@u`qH{wY^9!%
zj@2{=pAJ8ZDIXjKv{s1qsD2VISMB4fJS2N4T}l6<*~N|<&M{hYexE$Fe5)qCnYhQa
zQst=eQk|zeThv!h*yF?Nb9c7YJh5423b{tMR(lPbCrzAC=(I}Fck;IMSLx5v%1*CI
zZQb<mXkPbreYvUZC$l$CSi>5r%eBpE*^7`Ujq6(Mo6=Lm)Apb3JY_j;^*rsfZ_jK#
zb$f#OocHtpzZE(p^l;L)rET8fy0Q_^_O8jY++<T&d7JC8D64i`7~2|~9bMbBa<BTY
zej7f0UEN-_D&OqJxPzyf4sK=4e$5@q^|ZD2^_}Z)WBnuaBkylb{M9yB+D^2yYn{k#
z@#&)VH#F{4Je6+GKed16ohe&Zu0FCe<$T(uw3pBB>CTJho3?8Dv*~<!yf<%c;k_TW
z<?YvRuDA84pVhd%yLp@Q&c*v}cI-)Ae)8N|Yx|HTAzwm%g_ym&ba!jw^&fc`-$_^R
z`DXIw>h0(~-~Za3+;=;aG1T{J+SSzGp1(JLw_n$}>gA7VzjI^P`sEhBJ<fcI`7gUN
z-?r;JuUwVAWE&FHe@*+fJKu5negEdZFW2QY;|=YdbL^3FflK9+m)|+>f0yI6x>eRw
zz2+hNW%)AMbXol@r&*t7xy=rq^*cH#dYAthyNlOe-K+ZJep{Y@j)_fVrPt?>lbN?(
zHeH^a{^@+r+^KVG>-2u!Nw~deTlMqgbN93O^WX0hD0z6v^?&zs>pj-zVm|FC`LyZw
zQ{nI(;j`9T#pk{%d1do&@@4<yyXWklwQgrj_Re=zd$(4neSaxE&-~ooFMBILiv7QK
zb)Kc|-Mycy^1mPb{`J1t-MS+6zvoWxzFDsRZtWibJ@H>0-a6iNzT1A)KKkFC8}IMb
zXB{YC@cH5$_wQ`2&FBA3{Myg&%-TP*|8yH~+v|B2c9xcp?2G=s{IlHoe9C#XdE);T
z{X4x*Tui_2$JN)@&t05xapCk&(<krGty%i_)q&TN>u(=BbWCpF$qHk`xG!P9-yST#
zQ!e{{@qK>(Cp8N78viqXZu}a2VfpXLl9MO@XJMZ4`A@R3?rjDJ28CpgAYTTCDpdxC
zhGqtapZ^&c8eTFmlo~KFyh>nTu$sZZAf7)d{-_%R12dbai(^Q|t(Ga?86n{^$LgQo
zv7Wh8GJYl}o2q1>^m5OSmKQE131+`!u5l1KST=D{6L)sY50`?+$$>$cUAj>^5xY1p
zPYV!Vx_Xh@l%{ScL!(|pPEU`io@&ODXZO6@`F+<6>&F)R_MLq==d->1|Ks0f7oMB9
z@BaR0lXu;X@BMVXSEAZJ_RP{0@pv}AkALU)N8IJGul><relK_FOP98gBryS-R@RIV
z#g*&de$(0W!?EPuRp$4FHE*jV<~Mk<pAA1eZ)*R~U1t*)lyblSKS5<`2lJ*sQI}a3
z1~h#9XyRo#^@!Zg%<S&UwJ(*|bb9J-k)HFahWnAEU*6iM#}9Wu_^iL9%Kf8XE!+I-
z%u_gWo}K?*^zV-v6C?8m?M~l^I$zW`%wb^VT*leQTPeIp?t@goiDpH|&%yS09S_ZW
zJT3lA#m`TyJpAVuOeu<1VOaL{<+j=sqpn{80`YdNGb4Xka{VrAZuqn2@RFy>@f$W&
z@0qau?i-eAtl!`HGEQ<>AhuNI(n}eI38()>9p4%H`(jy++A*a%&aI9s8t>ox)AMic
z+!w27{WROxbmD&gWE0Z^%N8c`wFPE%v&|?eS+jWWUQvVYtADEAz1Y~ib$d_7ci*x<
z`xyGy-cVcr`R;)rtKIJ}?=U<xajI~O{E;0-NeMU2#Pw@@jAkZRRGd;RlaQ`Hb9XoA
zrA%RgNZm>CRc~hBn^O4f{?R8zmL-}$?DLAXFQ2&Zf+zf+#Nzw+oqA6d8&5k}V#CAZ
zV{9=)WwtKgnw>l6EnGO|HXG*z(F;=<BsKV4cKlt<$R&D7Ye)Ja-TOuFyMFUZ&)QM@
zTk+<aNV$1Bp37CL_TTqb5jyhzyV5DU6@}L)UD?7lnd8?lx07jCjgL({FLf;C_czfm
z-|~{LuM?9w{^V=L!p~ZrvL?PleAhRooU}Rg(5fUhEaj(7mlfZxLVZ=S8)hzx{}=u&
zvbVK0)ahPTzfj13t~k%HRdd@L)|nV=FIn(fXz80zzqC9eOYWUG!Q&M<)zjuuV@2fE
u2W$bdKOW7=Z9jN$<*G!n`t9n>41L=SG!BVviDO`3VDNPHb6Mw<&;$VU{i?74

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/62.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/62.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e2480649711fcffd5ec7c3a378f893d1d7d25e6
GIT binary patch
literal 138
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxP}I^nOh121A~sIi(`mIZ?cX0if{89*%~^<+WMqyj_{_{Y%Y1r
pI7{Ns|Ns9lme^z&%;jNYIB<tk$~rZ_g@J*A!PC{xWt~$(698jODGdMs

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/63.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/63.png
new file mode 100644
index 0000000000000000000000000000000000000000..e240964121dd1a00f3a60af77260e83c43c1069d
GIT binary patch
literal 3087
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
YN|TqbQz`w;z`(%Z>FVdQ&MBb@08{_D$N&HU

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/64.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/64.png
new file mode 100644
index 0000000000000000000000000000000000000000..44955986fe3f7bd9705a5d55bd70f41bb4ef28f7
GIT binary patch
literal 3206
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/65.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/65.png
new file mode 100644
index 0000000000000000000000000000000000000000..8f4d09771500007dd65c4790d8627d52a50205a1
GIT binary patch
literal 319
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U#$9yRy*ZbUS+n28M^8E{-7<y>BmV^g9$FarEQ=y)T!pb>#?5u3%!?
z%&9oB_2}}1lvLGq`<j)TXA5&r)-h3RX>2@@Aa&Q!Q0UmSxCd4f4Loz)Z7)ln`##%l
zqt<nv<AGdT)N<E23;vY3ci49KgWd`QmfMNnrBvFUE}T<(>&<j|7yt8b?DtO)XLY&e
z&A<A#)-CzPQl%4wY-df_nXMqBE}IjUedMa@$I}9ld)#*D-M+~r?E3P-hmGC0vy?tt
z9;p<Qk$&T&B;p`b-x{j9Fv~orx%^8B-$yk|nQy=99=)EQklbTw`@8nZ%aitho<GPp
Y-(oB9SylNf0|Nttr>mdKI;Vst0ED7}zW@LL

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/66.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/66.png
new file mode 100644
index 0000000000000000000000000000000000000000..eee0b35558823195dc7f86f2366625962d142c9d
GIT binary patch
literal 157
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxQ<SOxqBr81B1P%i(`mIZ}J{>g^%+a*%~^<+Kdbg3^sfae{$hS
z!m<DV|MRb1kdP9vQZ`CY&QyZ0Ev_i}r$r){FHf3GQL6yMLJNTdNjlfJGcYhPc)I$z
JtaD0e0ssK-Fk=7!

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/670.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/670.png
new file mode 100644
index 0000000000000000000000000000000000000000..abfd2b8b5ba9f9cb0a3626f75bac7a33ca24c2e6
GIT binary patch
literal 3040
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/672-norfolk_island.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/672-norfolk_island.png
new file mode 100644
index 0000000000000000000000000000000000000000..dbe675de43b003a20ecea8ebeea485f3a11f48a2
GIT binary patch
literal 3053
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/672.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/672.png
new file mode 100644
index 0000000000000000000000000000000000000000..706fb7c9b8e36a30ff3a7e5841bbd4400c3e68bc
GIT binary patch
literal 3237
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/673.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/673.png
new file mode 100644
index 0000000000000000000000000000000000000000..7c574d3e592b52c178fd54a4f1e50217832b5376
GIT binary patch
literal 3236
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/674.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/674.png
new file mode 100644
index 0000000000000000000000000000000000000000..15c514149847b9c08038a1ee1f8907449da9b1a7
GIT binary patch
literal 2918
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
De&uIP

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/675.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/675.png
new file mode 100644
index 0000000000000000000000000000000000000000..257f7c27c828b843f207c94b5f3b497654414351
GIT binary patch
literal 3408
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/676.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/676.png
new file mode 100644
index 0000000000000000000000000000000000000000..d1ea1a14f13d13640e04b490b672fa4b761b57ce
GIT binary patch
literal 2945
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`(#+;1OBOz`!jG!i)^F
z=14FwaQSCCI|l@0<d@_ZXXF<scse^P6cpvBW#*(ZFjU-{8=M{z{8G&J`@Jtt-W?57
zyz_%ZITV7Nx*J3$s%a^53V3xWF1#rkcu>&Ql|}l*f)3`szJ?yrKpmbgt{d!66c_b1
zFYf3%_4{G<;_PdCzCSzrZ|ilt=W9OC-F%+?00+-B592`72A-8pa)J+<j~_Yq@QI#7
zBbQ16g8;|o6vg7d%8U#@>TGPZl@74)V_>Yf%+0}Yz<2fm1DW>!{I8s5#xORtFditG
zXyMJ#Aj05K)#tQ~!NHBOVeSmIV1@-O3<;-`lO8h!=rSaz*FU?=&@lJM%xXr4=qZY#
zj0+|*C<v!^xG-c`Gpsou*5%3&VZb1g=6%GH;f5}QfoFJ{2g8Q#3<u5$aBpJZ;9)Qb
z>}b_wV5w$EIH9au!O$|3LB#D-xXnlHbpp?|7#J#MZnD{_V(Ho#&7oV!9v-eIr*Y0x
zTwBB}ktuPOgWjRanUY40Cj1XRpJ8BFFi}+SLG$Oo73cWYojYgNw~a4e_tk#3|4K<o
zkN-VAzq-JIf#G3E-Nk=8`kSR1tl1iJ|1DB|$C44py`c1aciJX?hph|?Ufv4-TmT9i
z*M$>y-n{wr$&(viN1UP)Pleb1OFtBUApCF6&pMkw-@iWC_eiDDD7Mj^<;R0VXTJC>
zl{r6&vnA=yvwrtK+qwV$k-e;R#4~AUgqFzTK%v4umsvfZjg~5PI!)3%s(R^v%A@-_
zznSgsn=)+3vSX~CsJkLInfaTyx<Ew9fk)pN7(VUJKX^rhgSjE2`QiEU|L^Vpx-U>=
zXh`#%RLH;(=c1w)a%!{vaSjFsmj#Vl8yuy-9F)*Gz$SB$_0B==KM7_nPAW$ZISDv%
zr8LMCC1|c`a?)r!yFpefLH~+_tjU4EjJC-Ie0qmMcktO3@c&BWn0HWPPa`Lb;|UJo
zM8#Vjj7eP)%6%N-Gh2Ts9`s-l>Q+%W*&!0B<UP^U!!W2TL?P5e_LFT9lVy91+pdY$
zCm4*H{<Q6JH=NSADbV%`&sOK1E6k-@+!k?PNGUO#)i1VS_JyJ?Qno#23!h(Doxy*r
z-_H5C!GRYN?8ZlO4D^m2cG_s6!#O$m^hTvMJgbjMZ3tV#yu0&j^7)PBEJBU02RO}G
z%AFJv<s3aCd?NgAc&t#6Q85v`#c9sT+!A<5U1{<P?=5P(1b-fpNHQ{PkMPh@z9!T!
ztS?aA;e5ngMX1x+NPXu7CeMvaLM{nia=Vllr2JB6<!loVDdov0Z>3~!Vz->4qo94F
z^~u~Pho2Zfk$$51DVl3;l0)H=AHk0_f=*?5Nj?>LYVwpVb%v2+=;B#HcULS75j5?O
za$37^ThRKz_7%b=rL!#0Hj8<BFI~H6>Sd`6@r>`8>tB@Y61+QA&TsmK@Jpv(y1$tI
zg85514{w`j^YM;!4awOO>=Nmc<r3>>_$-sW+%0)L#K7F}^^E5;`Df;bMrdu*su7)d
zifgLZRJEznTKXX?S1nt0Zxwgw=g`w3{VU^wYuCAj8V5gK$$4ek>d;kl16~J92dA&J
zUeUfPeMNqV{gS%KznyH6hkXwFJ1+@burdDeo?{B!$&#BZbQH6BSGScmnjTTxc=l#Z
znbz(Ze`R-f+pb!<(9+r1%Q$><(B~;>_Uw;m6#ke~;>Y=1WBK&YbzS#F-fKS6lwM}y
zv(qp&CVSPi>C+-sd#nyz?f!bN*}AvO=Pujpx;yfBBcJ1OFZCF8_w@dAtaG0S-weLH
zoNKw5udUVBb$Y9^mr5_(?NYu!Z~40!^Y+Cx%=5`#ey?)x^ItNx`hP?I=Kfm#)tx7T
zZ8MJw+ijk65;jLo3-fJc^^f2F80Z{(*ui;e;?%_H4_hYgylAuds#~uce^2JIn8zxQ
zbC2a7Tdc;Wrl{ua`^xv-tRUZ=%QTl+`&j!NKYQlvqO;d#n$EU0yl(V-_Vd}-XW!qR
z5LFSSvu(w;9jTt1o<uE+e79{+UTc(P<kE=HsMyVJYv-<2y|#Pp?&X5Zclu5CTRrbu
z`r!>9x1HR!a=YY)r#IMcuiKWptu`?|Nj!b~(RGL4P2M}Xc2{lhUt4zG_M3dGWus*4
zinkPrScO^Ln{{r^JNw$BU#7j(Pmee+aQ=qz<88vHHIHP@4W513JzYF~XL0lAj_ywH
zrqg=U?eu0#AG>>E?-Q?*uZ6J>t1f+=JA3o&LvL5yUjNSQUFN&?JM+(&%-5V3X<U5a
z@CoM!fln{mbI+e@kbQqmoxihxWBS(T%KFLr6T{bD->`jY`Ks@U@5SxD*%i%yZ1>p4
z{GQRh$oMnn2ezNse%k+V{=E3s`_A>s|5N@~{lCbtyg`*Qow>8ou`!zI_m8R?#r=Ku
zR<~2XZMyl^v1h?fM^VTArnOB^53W_rIPqq}TE*|rXPldOE|ae{pzg)B3+#!{61xxA
z@u;`9w}!Xb_Z4(RNL@6XZd!ivj&t#SmtQW^T<*<IH}tn$uj^&1Ww%N%%jTB(E|XpM
z$Mn)7&s>d|8{wJbEn}&twazRrXW#ulZ$Gy`n)`_Rakcmi{S&bTl?%@u`qH{wY^9!%
zj@2{=pAJ8ZDIXjKv{s1qsD2VISMB4fJS2N4T}l6<*~N|<&M{hYexE$Fe5)qCnYhQa
zQst=eQk|zeThv!h*yF?Nb9c7YJh5423b{tMR(lPbCrzAC=(I}Fck;IMSLx5v%1*CI
zZQb<mXkPbreYvUZC$l$CSi>5r%eBpE*^7`Ujq6(Mo6=Lm)Apb3JY_j;^*rsfZ_jK#
zb$f#OocHtpzZE(p^l;L)rET8fy0Q_^_O8jY++<T&d7JC8D64i`7~2|~9bMbBa<BTY
zej7f0UEN-_D&OqJxPzyf4sK=4e$5@q^|ZD2^_}Z)WBnuaBkylb{M9yB+D^2yYn{k#
z@#&)VH#F{4Je6+GKed16ohe&Zu0FCe<$T(uw3pBB>CTJho3?8Dv*~<!yf<%c;k_TW
z<?YvRuDA84pVhd%yLp@Q&c*v}cI-)Ae)8N|Yx|HTAzwm%g_ym&ba!jw^&fc`-$_^R
z`DXIw>h0(~-~Za3+;=;aG1T{J+SSzGp1(JLw_n$}>gA7VzjI^P`sEhBJ<fcI`7gUN
z-?r;JuUwVAWE&FHe@*+fJKu5negEdZFW2QY;|=YdbL^3FflK9+m)|+>f0yI6x>eRw
zz2+hNW%)AMbXol@r&*t7xy=rq^*cH#dYAthyNlOe-K+ZJep{Y@j)_fVrPt?>lbN?(
zHeH^a{^@+r+^KVG>-2u!Nw~deTlMqgbN93O^WX0hD0z6v^?&zs>pj-zVm|FC`LyZw
zQ{nI(;j`9T#pk{%d1do&@@4<yyXWklwQgrj_Re=zd$(4neSaxE&-~ooFMBILiv7QK
zb)Kc|-Mycy^1mPb{`J1t-MS+6zvoWxzFDsRZtWibJ@H>0-a6iNzT1A)KKkFC8}IMb
zXB{YC@cH5$_wQ`2&FBA3{Myg&%-TP*|8yH~+v|B2c9xcp?2G=s{IlHoe9C#XdE);T
z{X4x*Tui_2$JN)@&t05xapCk&(<krGty%i_)q&TN>u(=BbWCpF$qHk`xG!P9-yST#
zQ!e{{@qK>(Cp8N78viqXZu}a2VfpXLl9MO@XJMZ4`A@R3?rjDJ28CpgAYTTCDpdxC
zhGqtapZ^&c8eTFmlo~KFyh>nTu$sZZAf7)d{-_%R1H&3m7srr_TS<TZ|F>t>We{fW
zW#DFJX1;Us|GwJfiruB!%=>$JnP)FiiMbeQYumPdy8h(%kM8H+Gl=2mPX1B!PUdUV
zqn9n5Jn3J*NPxgPcNc>@e%_1w4(<^X<C!#bCJzWGDJt?f?b|2PZpaJ*^IKV&+nbmU
z|Gv9hQf1O)$sf5n8b&id2D-B!{PL~j5KCLUe%yq#4~|Ph3{@_DTye1Dgmh7>KmtR|
YI=z1<m>ZiJ7#J8lUHx3vIVCg!08hGZP5=M^

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/677.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/677.png
new file mode 100644
index 0000000000000000000000000000000000000000..1e49ea6356a3affc9fea64f9f44b0739fc105b69
GIT binary patch
literal 3090
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/678.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/678.png
new file mode 100644
index 0000000000000000000000000000000000000000..a5e36f5d4b40164d483b825538a93b54e2ae3c2c
GIT binary patch
literal 3137
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`(#+;1OBOz`!jG!i)^F
z=14FwaQSCCI|l@0<d@_ZXXF<scse^P6cpvBW#*(ZFjU-{8=M{z{8G&J`@Jtt-W?57
zyz_%ZITV7Nx*J3$s%a^53V3xWF1#rkcu>&Ql|}l*f)3`szJ?yrKpmbgt{d!66c_b1
zFYf3%_4{G<;_PdCzCSzrZ|ilt=W9OC-F%+?00+-B592`72A-8pa)J+<j~_Yq@QI#7
zBbQ16g8;|o6vg7d%8U#@>TGPZl@74)V_>Yf%+0}Yz<2fm1DW>!{I8s5#xORtFditG
zXyMJ#Aj05K)#tQ~!NHBOVeSmIV1@-O3<;-`lO8h!=rSaz*FU?=&@lJM%xXr4=qZY#
zj0+|*C<v!^xG-c`Gpsou*5%3&VZb1g=6%GH;f5}QfoFJ{2g8Q#3<u5$aBpJZ;9)Qb
z>}b_wV5w$EIH9au!O$|3LB#D-xXnlHbpp?|7#J#MZnD{_V(Ho#&7oV!9v-eIr*Y0x
zTwBB}ktuPOgWjRanUY40Cj1XRpJ8BFFi}+SLG$Oo73cWYojYgNw~a4e_tk#3|4K<o
zkN-VAzq-JIf#G3E-Nk=8`kSR1tl1iJ|1DB|$C44py`c1aciJX?hph|?Ufv4-TmT9i
z*M$>y-n{wr$&(viN1UP)Pleb1OFtBUApCF6&pMkw-@iWC_eiDDD7Mj^<;R0VXTJC>
zl{r6&vnA=yvwrtK+qwV$k-e;R#4~AUgqFzTK%v4umsvfZjg~5PI!)3%s(R^v%A@-_
zznSgsn=)+3vSX~CsJkLInfaTyx<Ew9fk)pN7(VUJKX^rhgSjE2`QiEU|L^Vpx-U>=
zXh`#%RLH;(=c1w)a%!{vaSjFsmj#Vl8yuy-9F)*Gz$SB$_0B==KM7_nPAW$ZISDv%
zr8LMCC1|c`a?)r!yFpefLH~+_tjU4EjJC-Ie0qmMcktO3@c&BWn0HWPPa`Lb;|UJo
zM8#Vjj7eP)%6%N-Gh2Ts9`s-l>Q+%W*&!0B<UP^U!!W2TL?P5e_LFT9lVy91+pdY$
zCm4*H{<Q6JH=NSADbV%`&sOK1E6k-@+!k?PNGUO#)i1VS_JyJ?Qno#23!h(Doxy*r
z-_H5C!GRYN?8ZlO4D^m2cG_s6!#O$m^hTvMJgbjMZ3tV#yu0&j^7)PBEJBU02RO}G
z%AFJv<s3aCd?NgAc&t#6Q85v`#c9sT+!A<5U1{<P?=5P(1b-fpNHQ{PkMPh@z9!T!
ztS?aA;e5ngMX1x+NPXu7CeMvaLM{nia=Vllr2JB6<!loVDdov0Z>3~!Vz->4qo94F
z^~u~Pho2Zfk$$51DVl3;l0)H=AHk0_f=*?5Nj?>LYVwpVb%v2+=;B#HcULS75j5?O
za$37^ThRKz_7%b=rL!#0Hj8<BFI~H6>Sd`6@r>`8>tB@Y61+QA&TsmK@Jpv(y1$tI
zg85514{w`j^YM;!4awOO>=Nmc<r3>>_$-sW+%0)L#K7F}^^E5;`Df;bMrdu*su7)d
zifgLZRJEznTKXX?S1nt0Zxwgw=g`w3{VU^wYuCAj8V5gK$$4ek>d;kl16~J92dA&J
zUeUfPeMNqV{gS%KznyH6hkXwFJ1+@burdDeo?{B!$&#BZbQH6BSGScmnjTTxc=l#Z
znbz(Ze`R-f+pb!<(9+r1%Q$><(B~;>_Uw;m6#ke~;>Y=1WBK&YbzS#F-fKS6lwM}y
zv(qp&CVSPi>C+-sd#nyz?f!bN*}AvO=Pujpx;yfBBcJ1OFZCF8_w@dAtaG0S-weLH
zoNKw5udUVBb$Y9^mr5_(?NYu!Z~40!^Y+Cx%=5`#ey?)x^ItNx`hP?I=Kfm#)tx7T
zZ8MJw+ijk65;jLo3-fJc^^f2F80Z{(*ui;e;?%_H4_hYgylAuds#~uce^2JIn8zxQ
zbC2a7Tdc;Wrl{ua`^xv-tRUZ=%QTl+`&j!NKYQlvqO;d#n$EU0yl(V-_Vd}-XW!qR
z5LFSSvu(w;9jTt1o<uE+e79{+UTc(P<kE=HsMyVJYv-<2y|#Pp?&X5Zclu5CTRrbu
z`r!>9x1HR!a=YY)r#IMcuiKWptu`?|Nj!b~(RGL4P2M}Xc2{lhUt4zG_M3dGWus*4
zinkPrScO^Ln{{r^JNw$BU#7j(Pmee+aQ=qz<88vHHIHP@4W513JzYF~XL0lAj_ywH
zrqg=U?eu0#AG>>E?-Q?*uZ6J>t1f+=JA3o&LvL5yUjNSQUFN&?JM+(&%-5V3X<U5a
z@CoM!fln{mbI+e@kbQqmoxihxWBS(T%KFLr6T{bD->`jY`Ks@U@5SxD*%i%yZ1>p4
z{GQRh$oMnn2ezNse%k+V{=E3s`_A>s|5N@~{lCbtyg`*Qow>8ou`!zI_m8R?#r=Ku
zR<~2XZMyl^v1h?fM^VTArnOB^53W_rIPqq}TE*|rXPldOE|ae{pzg)B3+#!{61xxA
z@u;`9w}!Xb_Z4(RNL@6XZd!ivj&t#SmtQW^T<*<IH}tn$uj^&1Ww%N%%jTB(E|XpM
z$Mn)7&s>d|8{wJbEn}&twazRrXW#ulZ$Gy`n)`_Rakcmi{S&bTl?%@u`qH{wY^9!%
zj@2{=pAJ8ZDIXjKv{s1qsD2VISMB4fJS2N4T}l6<*~N|<&M{hYexE$Fe5)qCnYhQa
zQst=eQk|zeThv!h*yF?Nb9c7YJh5423b{tMR(lPbCrzAC=(I}Fck;IMSLx5v%1*CI
zZQb<mXkPbreYvUZC$l$CSi>5r%eBpE*^7`Ujq6(Mo6=Lm)Apb3JY_j;^*rsfZ_jK#
zb$f#OocHtpzZE(p^l;L)rET8fy0Q_^_O8jY++<T&d7JC8D64i`7~2|~9bMbBa<BTY
zej7f0UEN-_D&OqJxPzyf4sK=4e$5@q^|ZD2^_}Z)WBnuaBkylb{M9yB+D^2yYn{k#
z@#&)VH#F{4Je6+GKed16ohe&Zu0FCe<$T(uw3pBB>CTJho3?8Dv*~<!yf<%c;k_TW
z<?YvRuDA84pVhd%yLp@Q&c*v}cI-)Ae)8N|Yx|HTAzwm%g_ym&ba!jw^&fc`-$_^R
z`DXIw>h0(~-~Za3+;=;aG1T{J+SSzGp1(JLw_n$}>gA7VzjI^P`sEhBJ<fcI`7gUN
z-?r;JuUwVAWE&FHe@*+fJKu5negEdZFW2QY;|=YdbL^3FflK9+m)|+>f0yI6x>eRw
zz2+hNW%)AMbXol@r&*t7xy=rq^*cH#dYAthyNlOe-K+ZJep{Y@j)_fVrPt?>lbN?(
zHeH^a{^@+r+^KVG>-2u!Nw~deTlMqgbN93O^WX0hD0z6v^?&zs>pj-zVm|FC`LyZw
zQ{nI(;j`9T#pk{%d1do&@@4<yyXWklwQgrj_Re=zd$(4neSaxE&-~ooFMBILiv7QK
zb)Kc|-Mycy^1mPb{`J1t-MS+6zvoWxzFDsRZtWibJ@H>0-a6iNzT1A)KKkFC8}IMb
zXB{YC@cH5$_wQ`2&FBA3{Myg&%-TP*|8yH~+v|B2c9xcp?2G=s{IlHoe9C#XdE);T
z{X4x*Tui_2$JN)@&t05xapCk&(<krGty%i_)q&TN>u(=BbWCpF$qHk`xG!P9-yST#
zQ!e{{@qK>(Cp8N78viqXZu}a2VfpXLl9MO@XJMZ4`A@R3?rjDJ28CpgAYTTCDpdxC
zhGqtapZ^&c8eTFmlo~KFyh>nTu$sZZAf7)d{-_%R17nV-i(^Q|tu0f|Yd06l9FIRg
z@9Ue5wwup(Y+I76s@>Tfzf^>Mt>uoDf0;i$e(*rY-BrbNiO8ncrxMwP^t3a#PL2=k
zQaah6_%-KSX@H*IvCZe@KfJp8{PV9ps){T}C5l%EX|?Ib%{nt{VZ!AnPO~CDb28_r
zFDY8z)~LF=OX6Moys{a$TaLFhD_(WpoAX;<LV#hGsN1iFyIIrB9{jy<a>6S`jp+Y;
z+it5UDYm}eZNq+2XR+XmjFy+CC)8tkR>@^Oopk8n=H#$%{Y56%PR@y|73h6!@zy}9
zaU0u=nAXQjoDM8m<oW6S8U~O3+<EUl+w6b#@@+`RvC?^$3^uaV>AzXuFz@QlJr}vX
zV`4KGt@l<G3X+IFvtjOue;#|v6C1Upr_A8Cj=P}#xXfe8x#IiQ^P<}4`mnbAeQ>pB
zqtd^if2?b^Nk9I0t@$^1MDQ>B{_^R9p94GYPE$No_rbE~r_IW1sxIs0nf#o0J86aO
cuH|ERakcE|YnJ$Z3=9kmp00i_>zopr0Deo~^Z)<=

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/679.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/679.png
new file mode 100644
index 0000000000000000000000000000000000000000..fec582b952687b2570b97151402c621c3991d2c7
GIT binary patch
literal 3236
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/680.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/680.png
new file mode 100644
index 0000000000000000000000000000000000000000..a3320c7fd398e7f0bf3d19556b4434fe9a4284f8
GIT binary patch
literal 3019
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
Bp1%M9

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/681.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/681.png
new file mode 100644
index 0000000000000000000000000000000000000000..24b6a4bca6540e3c9f2bfb13dbf91cd37186842a
GIT binary patch
literal 147
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U(!$h!%@}d3g~71B0oji(`mIZ*oe&jQ{f)*(0nD_9>o<=Ujbf{@QBE
zx@lV<T{?B3CAiJWAnU`5gNxbvrEC_kF*7W?%TY5oS!4+V0|SGntDnm{r-UW|TbwR|

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/682.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/682.png
new file mode 100644
index 0000000000000000000000000000000000000000..fda0828867c02e6116e14e1dc556b0a1d818b37c
GIT binary patch
literal 3333
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
a;a|w{yl1PwpJrfSVDNPHb6Mw<&;$T14Ldjh

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/683.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/683.png
new file mode 100644
index 0000000000000000000000000000000000000000..a9eb7f285bb11c2ac876c72346da032bafd76deb
GIT binary patch
literal 3104
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/685.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/685.png
new file mode 100644
index 0000000000000000000000000000000000000000..d20e142173432ffd762fcf58fce6e3e8ee72d12b
GIT binary patch
literal 2936
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
Uvnh8N7#J8lUHx3vIVCg!03}R!VE_OC

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/686.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/686.png
new file mode 100644
index 0000000000000000000000000000000000000000..e6814ccf3b2e6ff0034423046c5eccf405fc7e56
GIT binary patch
literal 3301
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`(#+;1OBOz`!jG!i)^F
z=14FwaQSCCI|l@0<d@_ZXXF<scse^P6cpvBW#*(ZFjU-{8=M{z{8G&J`@Jtt-W?57
zyz_%ZITV7Nx*J3$s%a^53V3xWF1#rkcu>&Ql|}l*f)3`szJ?yrKpmbgt{d!66c_b1
zFYf3%_4{G<;_PdCzCSzrZ|ilt=W9OC-F%+?00+-B592`72A-8pa)J+<j~_Yq@QI#7
zBbQ16g8;|o6vg7d%8U#@>TGPZl@74)V_>Yf%+0}Yz<2fm1DW>!{I8s5#xORtFditG
zXyMJ#Aj05K)#tQ~!NHBOVeSmIV1@-O3<;-`lO8h!=rSaz*FU?=&@lJM%xXr4=qZY#
zj0+|*C<v!^xG-c`Gpsou*5%3&VZb1g=6%GH;f5}QfoFJ{2g8Q#3<u5$aBpJZ;9)Qb
z>}b_wV5w$EIH9au!O$|3LB#D-xXnlHbpp?|7#J#MZnD{_V(Ho#&7oV!9v-eIr*Y0x
zTwBB}ktuPOgWjRanUY40Cj1XRpJ8BFFi}+SLG$Oo73cWYojYgNw~a4e_tk#3|4K<o
zkN-VAzq-JIf#G3E-Nk=8`kSR1tl1iJ|1DB|$C44py`c1aciJX?hph|?Ufv4-TmT9i
z*M$>y-n{wr$&(viN1UP)Pleb1OFtBUApCF6&pMkw-@iWC_eiDDD7Mj^<;R0VXTJC>
zl{r6&vnA=yvwrtK+qwV$k-e;R#4~AUgqFzTK%v4umsvfZjg~5PI!)3%s(R^v%A@-_
zznSgsn=)+3vSX~CsJkLInfaTyx<Ew9fk)pN7(VUJKX^rhgSjE2`QiEU|L^Vpx-U>=
zXh`#%RLH;(=c1w)a%!{vaSjFsmj#Vl8yuy-9F)*Gz$SB$_0B==KM7_nPAW$ZISDv%
zr8LMCC1|c`a?)r!yFpefLH~+_tjU4EjJC-Ie0qmMcktO3@c&BWn0HWPPa`Lb;|UJo
zM8#Vjj7eP)%6%N-Gh2Ts9`s-l>Q+%W*&!0B<UP^U!!W2TL?P5e_LFT9lVy91+pdY$
zCm4*H{<Q6JH=NSADbV%`&sOK1E6k-@+!k?PNGUO#)i1VS_JyJ?Qno#23!h(Doxy*r
z-_H5C!GRYN?8ZlO4D^m2cG_s6!#O$m^hTvMJgbjMZ3tV#yu0&j^7)PBEJBU02RO}G
z%AFJv<s3aCd?NgAc&t#6Q85v`#c9sT+!A<5U1{<P?=5P(1b-fpNHQ{PkMPh@z9!T!
ztS?aA;e5ngMX1x+NPXu7CeMvaLM{nia=Vllr2JB6<!loVDdov0Z>3~!Vz->4qo94F
z^~u~Pho2Zfk$$51DVl3;l0)H=AHk0_f=*?5Nj?>LYVwpVb%v2+=;B#HcULS75j5?O
za$37^ThRKz_7%b=rL!#0Hj8<BFI~H6>Sd`6@r>`8>tB@Y61+QA&TsmK@Jpv(y1$tI
zg85514{w`j^YM;!4awOO>=Nmc<r3>>_$-sW+%0)L#K7F}^^E5;`Df;bMrdu*su7)d
zifgLZRJEznTKXX?S1nt0Zxwgw=g`w3{VU^wYuCAj8V5gK$$4ek>d;kl16~J92dA&J
zUeUfPeMNqV{gS%KznyH6hkXwFJ1+@burdDeo?{B!$&#BZbQH6BSGScmnjTTxc=l#Z
znbz(Ze`R-f+pb!<(9+r1%Q$><(B~;>_Uw;m6#ke~;>Y=1WBK&YbzS#F-fKS6lwM}y
zv(qp&CVSPi>C+-sd#nyz?f!bN*}AvO=Pujpx;yfBBcJ1OFZCF8_w@dAtaG0S-weLH
zoNKw5udUVBb$Y9^mr5_(?NYu!Z~40!^Y+Cx%=5`#ey?)x^ItNx`hP?I=Kfm#)tx7T
zZ8MJw+ijk65;jLo3-fJc^^f2F80Z{(*ui;e;?%_H4_hYgylAuds#~uce^2JIn8zxQ
zbC2a7Tdc;Wrl{ua`^xv-tRUZ=%QTl+`&j!NKYQlvqO;d#n$EU0yl(V-_Vd}-XW!qR
z5LFSSvu(w;9jTt1o<uE+e79{+UTc(P<kE=HsMyVJYv-<2y|#Pp?&X5Zclu5CTRrbu
z`r!>9x1HR!a=YY)r#IMcuiKWptu`?|Nj!b~(RGL4P2M}Xc2{lhUt4zG_M3dGWus*4
zinkPrScO^Ln{{r^JNw$BU#7j(Pmee+aQ=qz<88vHHIHP@4W513JzYF~XL0lAj_ywH
zrqg=U?eu0#AG>>E?-Q?*uZ6J>t1f+=JA3o&LvL5yUjNSQUFN&?JM+(&%-5V3X<U5a
z@CoM!fln{mbI+e@kbQqmoxihxWBS(T%KFLr6T{bD->`jY`Ks@U@5SxD*%i%yZ1>p4
z{GQRh$oMnn2ezNse%k+V{=E3s`_A>s|5N@~{lCbtyg`*Qow>8ou`!zI_m8R?#r=Ku
zR<~2XZMyl^v1h?fM^VTArnOB^53W_rIPqq}TE*|rXPldOE|ae{pzg)B3+#!{61xxA
z@u;`9w}!Xb_Z4(RNL@6XZd!ivj&t#SmtQW^T<*<IH}tn$uj^&1Ww%N%%jTB(E|XpM
z$Mn)7&s>d|8{wJbEn}&twazRrXW#ulZ$Gy`n)`_Rakcmi{S&bTl?%@u`qH{wY^9!%
zj@2{=pAJ8ZDIXjKv{s1qsD2VISMB4fJS2N4T}l6<*~N|<&M{hYexE$Fe5)qCnYhQa
zQst=eQk|zeThv!h*yF?Nb9c7YJh5423b{tMR(lPbCrzAC=(I}Fck;IMSLx5v%1*CI
zZQb<mXkPbreYvUZC$l$CSi>5r%eBpE*^7`Ujq6(Mo6=Lm)Apb3JY_j;^*rsfZ_jK#
zb$f#OocHtpzZE(p^l;L)rET8fy0Q_^_O8jY++<T&d7JC8D64i`7~2|~9bMbBa<BTY
zej7f0UEN-_D&OqJxPzyf4sK=4e$5@q^|ZD2^_}Z)WBnuaBkylb{M9yB+D^2yYn{k#
z@#&)VH#F{4Je6+GKed16ohe&Zu0FCe<$T(uw3pBB>CTJho3?8Dv*~<!yf<%c;k_TW
z<?YvRuDA84pVhd%yLp@Q&c*v}cI-)Ae)8N|Yx|HTAzwm%g_ym&ba!jw^&fc`-$_^R
z`DXIw>h0(~-~Za3+;=;aG1T{J+SSzGp1(JLw_n$}>gA7VzjI^P`sEhBJ<fcI`7gUN
z-?r;JuUwVAWE&FHe@*+fJKu5negEdZFW2QY;|=YdbL^3FflK9+m)|+>f0yI6x>eRw
zz2+hNW%)AMbXol@r&*t7xy=rq^*cH#dYAthyNlOe-K+ZJep{Y@j)_fVrPt?>lbN?(
zHeH^a{^@+r+^KVG>-2u!Nw~deTlMqgbN93O^WX0hD0z6v^?&zs>pj-zVm|FC`LyZw
zQ{nI(;j`9T#pk{%d1do&@@4<yyXWklwQgrj_Re=zd$(4neSaxE&-~ooFMBILiv7QK
zb)Kc|-Mycy^1mPb{`J1t-MS+6zvoWxzFDsRZtWibJ@H>0-a6iNzT1A)KKkFC8}IMb
zXB{YC@cH5$_wQ`2&FBA3{Myg&%-TP*|8yH~+v|B2c9xcp?2G=s{IlHoe9C#XdE);T
z{X4x*Tui_2$JN)@&t05xapCk&(<krGty%i_)q&TN>u(=BbWCpF$qHk`xG!P9-yST#
zQ!e{{@qK>(Cp8N78viqXZu}a2VfpXLl9MO@XJMZ4`A@R3?rjDJ28CpgAYTTCDpdxC
zhGqtapZ^&c8eTFmlo~KFyh>nTu$sZZAf7)d{-_%R1CxNKi(^Q|tt(T!{e=@HTIZjC
z**f#m?JY|Kn4G$Mu5h!sOmh<!HrMlwIdM*6`af>r|Lwo{@9Z>b<WLegFiDJY=>@0v
zCCiML*67?|?o50bIp5~}Qx$g)&7FLAAIy3Zb*Yy-Tx@%ei0g%uI|JFQG!DzYk!6fL
zfAqm=wfSj#HT-oBZT9txZu*t}HR#3E15SrdhEKiJC4EsaAZ*>YF7JbOo$sF-zVeY~
z$iC<Nc`|=yXFc=o<GG8@%ZBV{5?V8(ck{DjGe5`i^qtvvASUM7k|5{VJDSTg1hQ?L
zx9;mK&zSIFwn$VxXL$9?KTQWzE^fEl>c>}IEpBStHOp+n_Hx7ebq~4NFD^SKxZb{I
zqVY?Xi4CWm(&oqPJGJ+r#A9XKl<!(PDSRDlp=rm27|!HBv0N4DBVD`Xm$OcK_nLop
zDpNT=9(b`hWc!Th^UC|y{+lXo?Jlxf?eg~DAF}1Ro~mg_KYx~@)N=XVhvdx+2cBfe
z^hYOZ$E!|XUt}+-yzY0#48HsIZ!Zg9lGrWjYE$<;aMoJkU8elJmlfr%osgGZ%)U#*
zJnBf36z^rXj?WvGO!;A|-)<^=_rB}SdrE?DmjxJp%$Ae#WuO1*(APJKlQb8LpM9<N
zdAU#C`a`RimrM4rYh2Y8GiHC$sHf)k$U`&ooT%pYXdlVFE=*dxTdh_{y9WJD>|vC>
soVR&~rNf68f45F){qf%GMGk}Rn=2n3^?YYAFfcH9y85}Sb4q9e0B%+y>i_@%

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/687.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/687.png
new file mode 100644
index 0000000000000000000000000000000000000000..24b6a4bca6540e3c9f2bfb13dbf91cd37186842a
GIT binary patch
literal 147
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U(!$h!%@}d3g~71B0oji(`mIZ*oe&jQ{f)*(0nD_9>o<=Ujbf{@QBE
zx@lV<T{?B3CAiJWAnU`5gNxbvrEC_kF*7W?%TY5oS!4+V0|SGntDnm{r-UW|TbwR|

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/688.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/688.png
new file mode 100644
index 0000000000000000000000000000000000000000..96e1da3c2a5dde8b84d556b92e99e0acec56c77d
GIT binary patch
literal 3330
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
Z=^<yC!e5;7Vqjok@O1TaS?83{1ONoBKNA1|

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/689.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/689.png
new file mode 100644
index 0000000000000000000000000000000000000000..5a325063fd1a942cc902987cb7b1cbe99d8b576c
GIT binary patch
literal 347
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxQTX+hgUNL1H)fW7sn8b-nUZ>y`2Ij+U8fEGkw+8vO>kpbHXhp
zlV@T-`2Vmw71t|l*t=H#!nF$uyuEA9S~{A0mq}>Ol$s*jw5PN`c(r=h=C9}O|Nijt
z)86@)J5o%<RB{~FHr>72T&tbno}GKH;?l#PyZWZbrf2H%b{j4}YU*bbR=L~q@z+!8
z6&)WX<puR*4xPFdGg~p4xBNLzR3L}Gv8>j-Tb>#7{uDkw(EgoKe=>{F{_Y7)7jl_H
z<iChpe43uH@xV&0&4%j?)@?6fmiN!hl27$2UXW%m;kIAVMO}lbdQR*oET)tNsog%m
zZjpINOxSxyjd!_|I;zqN{=c~4wRG<P_>XHP`JecI7gU+r!@$76;OXk;vd$@?2>_{F
BkQe{}

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/690.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/690.png
new file mode 100644
index 0000000000000000000000000000000000000000..a3513fc62b1eddf991e13412a016a98764f72498
GIT binary patch
literal 3179
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
Uwx1U>FfcH9y85}Sb4q9e00e3L^#A|>

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/691.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/691.png
new file mode 100644
index 0000000000000000000000000000000000000000..6bf6ea1352624b0e9ba957537d8cb705e96d09a4
GIT binary patch
literal 2956
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/692.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/692.png
new file mode 100644
index 0000000000000000000000000000000000000000..c94bac9dcb889445ebefd423dec160af5a2ce8d2
GIT binary patch
literal 3333
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
ZLEYtQ!2R5LkqitB44$rjF6*2UngER&H4*>-

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/7-kazakhstan.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/7-kazakhstan.png
new file mode 100644
index 0000000000000000000000000000000000000000..ec69dd0e2e9301a2da7330df8de3be4a25a839e3
GIT binary patch
literal 3324
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
P1_lOCS3j3^P6<r_^c6D+

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/7.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/7.png
new file mode 100644
index 0000000000000000000000000000000000000000..53261c06fcd02a8f850a5fd8d7e66a1c7f568e21
GIT binary patch
literal 136
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U#HeD5p$iLT(xZ1A~^Qi(`mIZ}Ol2|NqysNinEJNmykWa3!Q9Nc8Sm
nm}T&|o~`ZT3F$>_%nT{lI7DtG^BrSgU|{fc^>bP0l+XkK0CFbd

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/81.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/81.png
new file mode 100644
index 0000000000000000000000000000000000000000..6c029f42c208ef2f5df6713ccdffbc3ef82821c6
GIT binary patch
literal 327
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U)O{uY$ngvYmez7#Lo9x;Tbd^j^KPk?&xD2-|~r;k{x<mUa3q(-TS+
zNPOL9$5t!!kxT5OfLXM2(gl~Uh#U?v&bjLjZWPL!?dCG)>-qmrpWT@)t*CTJ-0c_J
zujm`I^&VWCwc&B)jgK~Ws<`KE=4nx`v$o?sKEqt+&X2D@O?=$)F1Vi3Xm8K|)8%=M
z;lAvBv6-tDY>{)Cv^c-`q1HKN_YNk8`)>;6EDyzSe17W~QFX-mu+C(@mYJ(s+9zLK
zls|DL*QBXV6%msbU#QCUF#I;_sKk~!_liOW2Cf;WOB~l_PMmw;q~D7tv&1SlhX(Z4
i-2bTlxxW6Wtiz6p!Y^A-axyS5FnGH9xvX<aXaWG+q={Al

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/82.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/82.png
new file mode 100644
index 0000000000000000000000000000000000000000..30d01ec01717a12d50b7da648ec57a881d42ffa1
GIT binary patch
literal 666
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RXF;Ft2up>>FtY1|}O%7sn8b-mR1TJwy^Ej@27m?F#12w!E}zLHpb(
zKB@tmuI_4SU*LS>pq}itC=DilBkp-tY_YZ#vkxDNv(fAHda$s0O^27U<J_{30{<48
z=E!c3GPuuo@Y1VyLN5F@?eG8Id(Qs;yIofY$A8DHrH>vxdKAyR>g%=ndOEtg8~5xv
z^Xiq>#f&Kh7BLrRoK5po5fb5Im6DQ@kd<A__pMg`c%guxiLbH*&%Zi>hqsUOaJ&dV
ztWm0UFkym^n)Aj8mAQV#CMGS35~^W0!<PhU-nw;bgHHFxjfOs#pA@7Dmp@><ceZfP
z35)l?-WBfH)R{TU$KU_*<;%``)0L-sP3>1%{$$s>8{2f1l>RNZjm(yv_@(uAYPzn8
z($TwfIy!D_(_Qy^-m#7#ZPEOA)r=a;;9c@7rRLR5yeH58Wp9Ps?!P-`eSP!k-<8*E
z*WX#0zvSnR6Z4jR-t(BPdY0ek!inb5ySH5baE&GY)%#}`kL9kbwSTbp-jRu`7(XoC
zH<9<E<cf#3latSX?l}IK!KSjJdvdYW%g?&18V!OMcKrTg$MCU2=KSZZ=E)~j`W`P>
zrBz&9yk!>KXJg@#mRVl5cjxM!Iq!4fru?zeSf)mXzQ+@M)J`8rJ^i_Meujycicn&0
z?cAF;BYiGEd47^pe$)Iwkr%x2Zh<1-zJH%NXHH5%!33v;2d-QR`6?sb=BOi<oSxpk
zZk^tzpEeAotGxbC6{rp4a1CTQ@%(edw4>j?nH@fSI5prwPM@obn3$N>RP9w!`DbPR
cch@maWb?n<!tkM#fq{X+)78&qol`;+0FIY6egFUf

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/84.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/84.png
new file mode 100644
index 0000000000000000000000000000000000000000..1a101f13622a34fdff0e3389a4d53fb7bc7c23f8
GIT binary patch
literal 354
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RWpTt2Vz?U84{K10##4i(`mI@776%euo_dT<=${b-m}(&>g~|#p230
zQIGwEWD$#(mzRnKkBOy=l-3jvL51xLnXEgnJ0~^<d^pDTF#g=TJ#+u3Up284jtaQI
z_9Z+amo<0x>};OC_H4fP+5g$!^P9==T<bl!@cU7ZfW*w$)(bDKSrmJ?RrKF`tkVbz
zy}7<-zmk=%#lD*4_eU0PtMO!9oqqOoXnRRq?k#CoEB+b1yLH~5?ce-#Zlc+{s)g1E
z1EPHMbl%O5o$geWJ#mj!lUoAA?Q#~k6JoP+7G7Mo=IY7ad;Gt;Nv;=mE|O&|D4BRs
zdTmA32J7E@PXC_u<Icx_E3&h1uj*aI6~La$@^5t%b3H?YMX-{{nq3hL3=9mOu6{1-
HoD!M<I0K9h

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/850.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/850.png
new file mode 100644
index 0000000000000000000000000000000000000000..efecdb6b018af952ebd1340c6c4244608e306f68
GIT binary patch
literal 2968
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
E03H*F1poj5

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/852.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/852.png
new file mode 100644
index 0000000000000000000000000000000000000000..bc443392e955cac72568952bf0f8d7d9b080abd9
GIT binary patch
literal 403
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIa0H@WH4xY~p42-6pE{-7<y=N!y^>#`WX_t?;_u7*b-n~dkqlxFv
zY?)gv9J^Y01uuqOxNs@VnZ;N4(k-2<0<{gv$=>x26DBx$K5~!U;@x~NJX-ooRqK*@
zKmW{oIOl$0N*epDFANvCU;Y=+zNNMBZ}RP=>2np&`>>Q2i$`9qcVDBkE}**Zkga8}
zM8MBo`;|9r>@BVkd93BB`}c;~>kU~)D_$|S9N4jUfxgT^9npX!si1oI6^i#BeV*|%
z=6h0V;>?51ENOPfkDnB@VD&5IxPC(7>gHgnr$WA&+s;JEo%e{Hba_$Dy*ZCL-3xv;
zvy^{Zk$(Av)4sJ^7E2tk7C$N<ufAa$Yn=Y3m?Pqst&XladT9BBZe2y2zb`tSdtR$-
ziaAnqwoD}Y-44-roti1G%L6yAo3~c(|B`=`Hky9_u76kee#+v+O|#E?+A%ONFnGH9
KxvX<aXaWFUaj_@>

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/853.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/853.png
new file mode 100644
index 0000000000000000000000000000000000000000..f1b63fc10a547025a8b9421fffc936b9e2ffead5
GIT binary patch
literal 417
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{W>=fFNcAIp<*Tj1EaI2i(`mI@7*c3-cE@k$LssQ-%2o7>SnswZE<H=
z+W~Qo+uY{u%Q*h<=+(ANyEbiK`%agX?h7xTonF$i==(H%&G6cFyk~6}KDktHJ4gQi
zXZv>L9s8m-u>HKo7|WIOLdbb~J$oPfZ;4$h+1pOe%H@d_;{R69`g+wOfdFZ?0^45o
z-y96ri&yY6b1-rrEt}G3yihNB<wPT0uAMfmG4rNm8cvg%8Bkt&eCa$-C81;QFL$th
zXZ-NnL};S3*IO}zNZy*t8mE6>=G=QO;9J9AUR-wY-ZQc7`uumM%GbXMbu*kiX{WlU
zThbObzO{|cMncK&Jkx?|6}^r>O>6#rJ-w%wH|lRW!=c;OJu%aZHgB}rkypN94s#hZ
zo1G#<g>+3qzx$Q9eL`z`l8j~ttqGfOuc_pUlI+$A_nMNn9!fC_Z94k@ujuJl+;?Uc
WS>Jh4bBck1fx*+&&t;ucLK6UyA*_l3

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/855.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/855.png
new file mode 100644
index 0000000000000000000000000000000000000000..8ddee31654d7f75c59c720120ca6dc1efb15e394
GIT binary patch
literal 421
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxQx2S;uTB`42<rcE{-7<y;r9k^kNDWY1?nTSaq?XR+olrt`^54
zvCb61knS#x48bjVg1Sv{3tYb#*n0k8aN=I+x=q8!ury7=_xU}sCIOR#?#Pm|cINv(
ze?E|L{1+zZkm=~a%-Y^{E?ptvqsZ-V<vJ`Y9$IX&>7Uef@A2n|gnCh@1ev^^TQBMw
zZ#X7ik*<Dy_^6%eCuyI&bprPGi=wrRHyU`SnDcWe@u%+73VkGgT;udX-Kq8GpDtIb
zu5X{_*_682rgNU(0u$NDYzD5gCLg7A@14*4H!b3{3TJxo1n-3{OxyeI=C&P`OxfEj
zRq-P8a`@5peZ6x{zZ?;{RP@2hthq{BRdv(T3+qEB%1S>iJ2+V)di7&fzVlBz;^#fM
zIx8cM=jJv>i5q&mZaYW4GngoOINPi<e(t6EzYG3<`qr%6<$b+zPRR-pUzUS^+xI_`
ZwzytsrIPJ0#K6G7;OXk;vd$@?2>_~Ut5^U4

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/856.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/856.png
new file mode 100644
index 0000000000000000000000000000000000000000..1461d62e71ee0e1d11dbb283267c9f473c7e1201
GIT binary patch
literal 264
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{W_;0k1{)d?|CT(28LChE{-7<y~#G}E56NdWNYXYYrAwMVcO&zClkXN
z6CIVC6C}DhKO6n9d}U~0U|^7QtG@H$)!XM;c+(V@IE4GoO1$61#3tw{$HvCS*7ogt
zyu=(KHG`OaUq#m2H6`AOl;JR+(%9JO=rW;w;bw~o3%WU_)+|<Yog#6PEq>?M9u31u
zyn63r&wqIKSKQ+N+28s+Pxrp&l=9gea?m37PLo>XtfPOfTSv{XW;xBpV6ejA@XU@$
S%NQ6K7(8A5T-G@yGywoZw_#}j

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/86.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/86.png
new file mode 100644
index 0000000000000000000000000000000000000000..8cc127bc3f115545663b659913f684524c4264cd
GIT binary patch
literal 319
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RWQ|hlr5$%b9x_7#JRUx;Tbd^uE35o5f@(aqMILq{2C^ix)py#eIEV
zN|>DE3)QMg_YS(g57^VBF3=^t@JiRI7d0v`o!p`o5BY>Qo!8s*aC-ZmB*QM9J`T=n
zJC<!%{x5TDy7`_)#aS}1S6(l8|FhwPf5k`5n?B4<fsL=i*XuH-BuMU2X(>E*`88kt
z3dRkV9cl`z%)c?53EVK>bb_w;#z`siuWA&dHNI@yrE}`(%6X3KRaa$SxIbM!t3Q~p
zxW8uQoQ}<g4RP}~2!+aeODxa1*K{iPVOHh-WTAua?yhgW*OJTk>$K%M{{QCuKl&cZ
Zi-<TT7xTTZU|?Wi@O1TaS?83{1OT~jhXDWp

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/870.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/870.png
new file mode 100644
index 0000000000000000000000000000000000000000..c68fefef31d27d0b28ef370ba9b0e278d772a5b2
GIT binary patch
literal 3427
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
Vy1hS`GB7YOc)I$ztaD0e0swP^WPShu

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/871.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/871.png
new file mode 100644
index 0000000000000000000000000000000000000000..c68fefef31d27d0b28ef370ba9b0e278d772a5b2
GIT binary patch
literal 3427
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
Vy1hS`GB7YOc)I$ztaD0e0swP^WPShu

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/872.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/872.png
new file mode 100644
index 0000000000000000000000000000000000000000..c68fefef31d27d0b28ef370ba9b0e278d772a5b2
GIT binary patch
literal 3427
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
Vy1hS`GB7YOc)I$ztaD0e0swP^WPShu

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/873.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/873.png
new file mode 100644
index 0000000000000000000000000000000000000000..c68fefef31d27d0b28ef370ba9b0e278d772a5b2
GIT binary patch
literal 3427
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
Vy1hS`GB7YOc)I$ztaD0e0swP^WPShu

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/874.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/874.png
new file mode 100644
index 0000000000000000000000000000000000000000..c68fefef31d27d0b28ef370ba9b0e278d772a5b2
GIT binary patch
literal 3427
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
Vy1hS`GB7YOc)I$ztaD0e0swP^WPShu

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/880.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/880.png
new file mode 100644
index 0000000000000000000000000000000000000000..56500cb283c9ccea8f49643692b9b5713f794903
GIT binary patch
literal 2992
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/886.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/886.png
new file mode 100644
index 0000000000000000000000000000000000000000..9e08a99299eefd264f6597c3933130b23a9e46c8
GIT binary patch
literal 322
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RWSOh^YCu!|zlW7#N;-x;Tbd^d>(E@cn<jflWeEQu5#b;{s_v>Z;Y+
zB=in6=`C2QbyPuL_soY6FQePCx6c>M6^Lt|yT(LPX3Z7JD<VfE^K2_l7CgA&+g5vg
z-Q-jQ;X7<;YHX>jfo$Q@xoq|3&TQt=xnRCnnp({-PU%0--`ltS=8reNv+H|PV`F3E
z!(Vfs^L&@zm-gfHclk)R#VkiB8kb94nW8GW?oQRI4_|NVw<)K;n~<u}cF?}=U)qeF
zUl^JvFqj|S%^xrMZ_>*sHa0f4X^*~(8@S$|kSix+@Gm{#fX{{yh9|B+R~$TiJAq+o
Xtcyu?>LV!z1_lOCS3j3^P6<r_pLu}!

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/90.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/90.png
new file mode 100644
index 0000000000000000000000000000000000000000..f0baa01617e063f2375cd96af633cf1b8fd0781f
GIT binary patch
literal 389
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U$T3n1*)3#izXt42<fYE{-7<y;rZC^<oN?IQDV><&A2JB^+*@hvtZh
z>PBho(CXR1AH$-%tE23$yP_jo?yXjVT%|>?J2FGwBnL<C2${i{e#y-3$^?r}m-D|K
zmh<U9x7~N#VTY@{(pToc(h)}%@u&%V9DJ}o;h~i$=fWr7CS1Q1As)WRc7K92>zT=y
z?<G9Vkhk3GP^#HnyLNkY)54Udw!8~Qy6-n!P?J2jCg}V#yFiBH2lr_T-ME#auqa9V
zbj0)Nat}0l8E$Lr?7H+rLfQH@hwicLnv1u4=l*7A_)~1WF6r}1C)?@{k-(4V{T@$w
zZ*^$jdv2py_HJ>0fxh`Qa|>(cwZ*-tI;Iy9<fOsA`^0PQx8Z>YukoJw6B+)X|AV_r
u36tiUM^o}LuVu}<&{wejXMO!qYolw4cV%@SCNMBCFnGH9xvX<aXaWG`siqqM

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/90392.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/90392.png
new file mode 100644
index 0000000000000000000000000000000000000000..ba425f0f787d1e1bfa8d116481a1b6c95930564f
GIT binary patch
literal 390
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RWpTt2851!>nfv42&9{E{-7<y~%(6|NmdlCdDxAd~I+>q8{_(WWB;!
zJ7x%m2mIOjf5OB2tFQCuNUh@W`SV9b`b?AFhxdQk+rHmC%41*lChftOuPF)BCZ!}?
zy_oc%i%<FNlm8hHd^7I+S6|fizdm+Hi@=}1zyF^XUjG08?_a#JmVOOMAKvf&{@?zY
z(EtAncX2vD+^--1uYTVCC;yj!yZ8UTS)O8sfmgtvoz?w~AP^eOd^o*+zFqo{OZL4F
z&+o0~5lZKqD0WQelot;O>|cNHK)?wd-IE7`XB_?T|EYG{ee-<74J%epk~k*VX>sTW
zk7r`f#5@1?{y*@+Zh6bY<KJQ@gedABJ+Nx^*#n}IP8WWkU?{h$`!VC;{nOzSO3oa2
tpR|yN$K*_<&K_6GEe7J{0RdbLpUgbe_C(*dVqjok@O1TaS?83{1OVzEw;TWf

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/91.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/91.png
new file mode 100644
index 0000000000000000000000000000000000000000..0e8ce1fa92f59c27cdfd7133008f057fb72f6458
GIT binary patch
literal 249
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{U)Ovm!aTQOP{k03=Fe9T^vI!df#5&$lGinz<Qxx@xif#BMdiqxl>N9
znQ(K#21$m*(`Oqe1TQaY)KL2Pdj0are)BIqpIYE37rwy!kFb|!>iqP#T+eMf8uo=7
zEIWJXX7^0~p2tlB68DUkWggrn`#do_+@#l`$2#dw;B}^RKR<6U)OAYmh;%w7q-d}u
zEb_-pZH~YM39B=k*##Z5TUTjqGAPY2)PL{)P=DPVlP85AzJff);OXk;vd$@?2>?dj
BV9Nji

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/92.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/92.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e105a14409b87ebba7c0c7dfdbd8aac53614843
GIT binary patch
literal 419
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RWpTrwDh>^=ZKj42-UxE{-7<y~%(6|NmdlW^!TU;^u`#wW_-eJR3Td
z?l#|h;Lz;A=IiPEN-E}k@c9F$51uag`?GXM#GF)_=E=K+!@lYqkyxd@_H@9@$dd{&
zDm>zo#iymukT9G0@bC8TJYHA5o=D2%37z}!<gaksdi(u{j>_$;JrS^JTg$^AcOUb-
z(RstO|KGnP2fqXtNgZ8<vkE8mPaZgS=-7wX=k<5|xT9SBFo#c!uT8$b?!Zr%){mF@
z{UvwY*dg&q_i^E>pTGa>bIsRi4xbl!^27W8_HFMT<grPMO7m38$I7?eudiR+At)*`
zeSTcpiu)nwFTA;breMPpg~Pi(zn18`V|nPn(PKvw)bfu_*sR3v%pb^RY+zupB_}&^
z$JbY4&Yjtu&Hd~6o40N<J$$TNTJqBLWyX7c{pqS{mXwf?2%8&ubi=DNT8pmm_38L>
bF)-u_Cu^$yd2pS9fq}u()z4*}Q$iB}+fuwB

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/93.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/93.png
new file mode 100644
index 0000000000000000000000000000000000000000..45e31c8fdde0c1653225b4015f5c350290cf7428
GIT binary patch
literal 377
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxQtr-k{MGN7#O8JT^vI!daq92>vfnxq;>xlfusP%jU7r70Wn8c
zb}v<8TgYmyVb{3+;ernS2QMCJ@wsmId8IQ+S0H2SBGLa@3$LjpY`J(=S8<8Omo?Al
z^&fs3$M{3hDf&QB%l7%rm(Q+HNm;b^-j(_U!;=%1yk61fcp>9L?$#F(Veb<P6XhbW
zet5;l)8X;ca>+q|jyE@A-e{?~Cf2O&sjof#<(-_d_3a(v(|e|No!B&I-^UYc{3O~^
z%)@?Elzq^deKCk}i=vwPvWBc($KG$1W_dXKTd1gK=!G8DnB9IKu047A)v)%lzP-YV
zyM{3lPo7>-X>N!*_t=X6$Gq8cJQr*%oFernnT9F8xnyU(ytsyG=Z~00#h<m+zKa^4
jd@=vm`_KP)|8U=a6Jj$n{SiL{0|SGntDnm{r-UW|k3FaG

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/94.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/94.png
new file mode 100644
index 0000000000000000000000000000000000000000..b102a002100b583ce99176321556c6c0e16958a8
GIT binary patch
literal 3164
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
F2>?i7?O*@^

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/95.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/95.png
new file mode 100644
index 0000000000000000000000000000000000000000..c840e3835685b9ca18ed5316cbdd9075da369f63
GIT binary patch
literal 2998
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/960.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/960.png
new file mode 100644
index 0000000000000000000000000000000000000000..97a58b98d2c76159ef4068d57120b1c215bb7773
GIT binary patch
literal 295
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RWo^v!V1$o;f`X3=AhdT^vI!dXx94Bz&6R$kxy))^_Pif>_EqX+5?!
zYo(qP$t9nj**BjsmtmVfDKTlqhXlv#&LS^vd~84X`kMV4w#Uq(W`;cR_5V{MN(!Y9
z@2~$aY4`tETexi?+itDdMlZUwja}B~wsadB8X5ih-EZwEC|a3zDT*h3-dzX5!|56q
z+2+?2^&WKbVh&YS{^y}~>VfTdKjWCH!gj^;N>dygn%f(v&+T5&-PyP2++y#}&{GFM
upkvO`%xQhD`wR^_Y!>-lH2iXki-G%_E#K|a?UoD-3=E#GelF{r5}E*oW_3LP

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/961.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/961.png
new file mode 100644
index 0000000000000000000000000000000000000000..c7001fb90c622dd11fbac14d7932b8d371ab91cb
GIT binary patch
literal 383
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RXFuxGJ;n*De_b21Z3s7sn8b-nUmAwOI-!j(>b#|8~=jGTmw2Q<yC^
zJk54$<R6UfJLUQ==8nu9nLSM6J1sO+JuPz<6(n@_EcMx4HrsUe%!~iz)vwR&{PxW9
z|F17!zS#5^EpKmO3t1wV;ruWorA8~{LZDMjNJd1b#|p{wa%(Ti`foI{a*wZ8Gmz(P
z&a;;*3awo5Btj)Qca6W!f)DTQ3XZkqZYtf~{xfpnX4R7iUrX+M<eOl;Z-dy`bC(UL
zg*$g2`;_x3tnqWuzx)ls-wocF&&yVmJ<ECO9sA!-IlX)DHFsaVf4D8z=$h#Xx3Y<g
zk_{)xB@`ER=A_No{i<7EW`}6ghWHbONpVG4aht6-yX9x!5@!vFKmB>%hQ%!sU22WH
nn4&X-tbVM!@_+r0mHEOddE7Y)|I!#37#KWV{an^LB{Ts5HyWgW

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/962.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/962.png
new file mode 100644
index 0000000000000000000000000000000000000000..240d0f52ca1787e3cd77a141ad6b763e19fa1d5b
GIT binary patch
literal 2965
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
Bfo=c*

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/963.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/963.png
new file mode 100644
index 0000000000000000000000000000000000000000..32f0122ab71a70c0b16940f5f0ac53b1fcef8269
GIT binary patch
literal 241
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{W>=fkFM&RyY(PllRaG=Lo9leZPZtMo8QRR&?(l|C)L9w@&Et-e$!9?
zjQ^x3q$C_!EjeFmj^4cD*8+~=4?{o8b4PrCaHhVklJo!Tb8G+qfB)Z}=V$%@|9{t8
zZ~te1cu&j!*K%_XrX8tY<M{Ez>FBoNe0hV8;!nmAohuVcFKi4imx!zTe<DF;%>jk;
s$~}tx#yy&>Jv=--i!Jjzq<9!Ygo<y!TH9pLz`(%Z>FVdQ&MBb@0J)B0v;Y7A

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/964.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/964.png
new file mode 100644
index 0000000000000000000000000000000000000000..1e3371f0029bcfacc903ac1b4b1f4d035b46450f
GIT binary patch
literal 261
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxE`-uhUroU28QLHE{-7<y>BP$a~}#|I8y&U_i$$yN0I?&)HR<v
zr~S=0lSIz2ZRBrH5OCedaai4mE$@uI&E^G7i5(kOAOCwuR((&~VoygS-VC<7Nf)C2
z=j}OJ$JS6C!L)(9w(a)I<2^smdAtk%^P**Wn9KH-dr2;vW89B2Hh-0HmdY?;`Y3C$
zXU@xAwOwIy4PNV7aw9~1q(#|FviLqfZY$gR)o6ayaVM{tw(tE9^548^TKX__$7==#
O1_n=8KbLh*2~7ZB9%ZZm

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/965.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/965.png
new file mode 100644
index 0000000000000000000000000000000000000000..ec3f620292c2bd0423608470e1cffcef7021722a
GIT binary patch
literal 2923
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
Kb6Mw<&;$U_hH-EJ

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/966.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/966.png
new file mode 100644
index 0000000000000000000000000000000000000000..811fbe23dbc1c42e844a9b914f5687235a386637
GIT binary patch
literal 437
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RWo^vz)HUD#Ho}2F7qt7sn8b-m6n~dmUyFY1?nIZ0#|r+fCv<$Hew1
zHZ}7#ZEntgz-{r9&#txqp<14+0Q*a&M+-WpuUczz>B_M!YPou)MFNXgL>$cjV_73p
z$LF4qz0a4uqr~Y}U}1Q~j0q`KODvR>@@^mfYHL)hd}No3UbZX4rMrJ6{CJONC+_TB
z-?_Q#)U!iY$EOw-Ew#~J?A_tS64>z}Av}{!FDhw9^lG1jyV93$_<v3?>geX|;t<PZ
zqm_npWsVm~znS_eWRBD-n-2LOGSmELcxBy~CmiLvB4Ru5tbM10S09XxRaZQjb7t+r
zBSLeot#cHZ@k0Lbk|IYFAzo4L#OG$WtdBf8pmTKBIS2o)RmqQ7?fA>4u340{RVrpi
z`I#j~ccN0eO8;g*y8j^m{M)IaxssuBPd5JiqUL{Gl;?QLZ!Px=eEan8?X~1Md%3VR
sXMWd*%f0r83Ve8u|0#L)|8JN0GvTHnhg(Vt3=9kmp00i_>zopr0FHRQ4*&oF

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/967.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/967.png
new file mode 100644
index 0000000000000000000000000000000000000000..cf4fc8a339cc5d53d0aa0dc9a1a528fe84b211d5
GIT binary patch
literal 137
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RR&|pOEZ6w;x*>7#OrYT^vI!dXsI`SA3h_$kxy)*48K0!zA(l|9^X_
oO6MyHZftCA7f(npVq<0qS;j7{vGV^71_lNOPgg&ebxsLQ0Ct@y*8l(j

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/968.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/968.png
new file mode 100644
index 0000000000000000000000000000000000000000..3d7b6102e7d09105d30bbaa621f428f9a32f3771
GIT binary patch
literal 2927
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`(#+;1OBOz`!jG!i)^F
z=14FwaQSCCI|l@0<d@_ZXXF<scse^P6cpvBW#*(ZFjU-{8=M{z{8G&J`@Jtt-W?57
zyz_%ZITV7Nx*J3$s%a^53V3xWF1#rkcu>&Ql|}l*f)3`szJ?yrKpmbgt{d!66c_b1
zFYf3%_4{G<;_PdCzCSzrZ|ilt=W9OC-F%+?00+-B592`72A-8pa)J+<j~_Yq@QI#7
zBbQ16g8;|o6vg7d%8U#@>TGPZl@74)V_>Yf%+0}Yz<2fm1DW>!{I8s5#xORtFditG
zXyMJ#Aj05K)#tQ~!NHBOVeSmIV1@-O3<;-`lO8h!=rSaz*FU?=&@lJM%xXr4=qZY#
zj0+|*C<v!^xG-c`Gpsou*5%3&VZb1g=6%GH;f5}QfoFJ{2g8Q#3<u5$aBpJZ;9)Qb
z>}b_wV5w$EIH9au!O$|3LB#D-xXnlHbpp?|7#J#MZnD{_V(Ho#&7oV!9v-eIr*Y0x
zTwBB}ktuPOgWjRanUY40Cj1XRpJ8BFFi}+SLG$Oo73cWYojYgNw~a4e_tk#3|4K<o
zkN-VAzq-JIf#G3E-Nk=8`kSR1tl1iJ|1DB|$C44py`c1aciJX?hph|?Ufv4-TmT9i
z*M$>y-n{wr$&(viN1UP)Pleb1OFtBUApCF6&pMkw-@iWC_eiDDD7Mj^<;R0VXTJC>
zl{r6&vnA=yvwrtK+qwV$k-e;R#4~AUgqFzTK%v4umsvfZjg~5PI!)3%s(R^v%A@-_
zznSgsn=)+3vSX~CsJkLInfaTyx<Ew9fk)pN7(VUJKX^rhgSjE2`QiEU|L^Vpx-U>=
zXh`#%RLH;(=c1w)a%!{vaSjFsmj#Vl8yuy-9F)*Gz$SB$_0B==KM7_nPAW$ZISDv%
zr8LMCC1|c`a?)r!yFpefLH~+_tjU4EjJC-Ie0qmMcktO3@c&BWn0HWPPa`Lb;|UJo
zM8#Vjj7eP)%6%N-Gh2Ts9`s-l>Q+%W*&!0B<UP^U!!W2TL?P5e_LFT9lVy91+pdY$
zCm4*H{<Q6JH=NSADbV%`&sOK1E6k-@+!k?PNGUO#)i1VS_JyJ?Qno#23!h(Doxy*r
z-_H5C!GRYN?8ZlO4D^m2cG_s6!#O$m^hTvMJgbjMZ3tV#yu0&j^7)PBEJBU02RO}G
z%AFJv<s3aCd?NgAc&t#6Q85v`#c9sT+!A<5U1{<P?=5P(1b-fpNHQ{PkMPh@z9!T!
ztS?aA;e5ngMX1x+NPXu7CeMvaLM{nia=Vllr2JB6<!loVDdov0Z>3~!Vz->4qo94F
z^~u~Pho2Zfk$$51DVl3;l0)H=AHk0_f=*?5Nj?>LYVwpVb%v2+=;B#HcULS75j5?O
za$37^ThRKz_7%b=rL!#0Hj8<BFI~H6>Sd`6@r>`8>tB@Y61+QA&TsmK@Jpv(y1$tI
zg85514{w`j^YM;!4awOO>=Nmc<r3>>_$-sW+%0)L#K7F}^^E5;`Df;bMrdu*su7)d
zifgLZRJEznTKXX?S1nt0Zxwgw=g`w3{VU^wYuCAj8V5gK$$4ek>d;kl16~J92dA&J
zUeUfPeMNqV{gS%KznyH6hkXwFJ1+@burdDeo?{B!$&#BZbQH6BSGScmnjTTxc=l#Z
znbz(Ze`R-f+pb!<(9+r1%Q$><(B~;>_Uw;m6#ke~;>Y=1WBK&YbzS#F-fKS6lwM}y
zv(qp&CVSPi>C+-sd#nyz?f!bN*}AvO=Pujpx;yfBBcJ1OFZCF8_w@dAtaG0S-weLH
zoNKw5udUVBb$Y9^mr5_(?NYu!Z~40!^Y+Cx%=5`#ey?)x^ItNx`hP?I=Kfm#)tx7T
zZ8MJw+ijk65;jLo3-fJc^^f2F80Z{(*ui;e;?%_H4_hYgylAuds#~uce^2JIn8zxQ
zbC2a7Tdc;Wrl{ua`^xv-tRUZ=%QTl+`&j!NKYQlvqO;d#n$EU0yl(V-_Vd}-XW!qR
z5LFSSvu(w;9jTt1o<uE+e79{+UTc(P<kE=HsMyVJYv-<2y|#Pp?&X5Zclu5CTRrbu
z`r!>9x1HR!a=YY)r#IMcuiKWptu`?|Nj!b~(RGL4P2M}Xc2{lhUt4zG_M3dGWus*4
zinkPrScO^Ln{{r^JNw$BU#7j(Pmee+aQ=qz<88vHHIHP@4W513JzYF~XL0lAj_ywH
zrqg=U?eu0#AG>>E?-Q?*uZ6J>t1f+=JA3o&LvL5yUjNSQUFN&?JM+(&%-5V3X<U5a
z@CoM!fln{mbI+e@kbQqmoxihxWBS(T%KFLr6T{bD->`jY`Ks@U@5SxD*%i%yZ1>p4
z{GQRh$oMnn2ezNse%k+V{=E3s`_A>s|5N@~{lCbtyg`*Qow>8ou`!zI_m8R?#r=Ku
zR<~2XZMyl^v1h?fM^VTArnOB^53W_rIPqq}TE*|rXPldOE|ae{pzg)B3+#!{61xxA
z@u;`9w}!Xb_Z4(RNL@6XZd!ivj&t#SmtQW^T<*<IH}tn$uj^&1Ww%N%%jTB(E|XpM
z$Mn)7&s>d|8{wJbEn}&twazRrXW#ulZ$Gy`n)`_Rakcmi{S&bTl?%@u`qH{wY^9!%
zj@2{=pAJ8ZDIXjKv{s1qsD2VISMB4fJS2N4T}l6<*~N|<&M{hYexE$Fe5)qCnYhQa
zQst=eQk|zeThv!h*yF?Nb9c7YJh5423b{tMR(lPbCrzAC=(I}Fck;IMSLx5v%1*CI
zZQb<mXkPbreYvUZC$l$CSi>5r%eBpE*^7`Ujq6(Mo6=Lm)Apb3JY_j;^*rsfZ_jK#
zb$f#OocHtpzZE(p^l;L)rET8fy0Q_^_O8jY++<T&d7JC8D64i`7~2|~9bMbBa<BTY
zej7f0UEN-_D&OqJxPzyf4sK=4e$5@q^|ZD2^_}Z)WBnuaBkylb{M9yB+D^2yYn{k#
z@#&)VH#F{4Je6+GKed16ohe&Zu0FCe<$T(uw3pBB>CTJho3?8Dv*~<!yf<%c;k_TW
z<?YvRuDA84pVhd%yLp@Q&c*v}cI-)Ae)8N|Yx|HTAzwm%g_ym&ba!jw^&fc`-$_^R
z`DXIw>h0(~-~Za3+;=;aG1T{J+SSzGp1(JLw_n$}>gA7VzjI^P`sEhBJ<fcI`7gUN
z-?r;JuUwVAWE&FHe@*+fJKu5negEdZFW2QY;|=YdbL^3FflK9+m)|+>f0yI6x>eRw
zz2+hNW%)AMbXol@r&*t7xy=rq^*cH#dYAthyNlOe-K+ZJep{Y@j)_fVrPt?>lbN?(
zHeH^a{^@+r+^KVG>-2u!Nw~deTlMqgbN93O^WX0hD0z6v^?&zs>pj-zVm|FC`LyZw
zQ{nI(;j`9T#pk{%d1do&@@4<yyXWklwQgrj_Re=zd$(4neSaxE&-~ooFMBILiv7QK
zb)Kc|-Mycy^1mPb{`J1t-MS+6zvoWxzFDsRZtWibJ@H>0-a6iNzT1A)KKkFC8}IMb
zXB{YC@cH5$_wQ`2&FBA3{Myg&%-TP*|8yH~+v|B2c9xcp?2G=s{IlHoe9C#XdE);T
z{X4x*Tui_2$JN)@&t05xapCk&(<krGty%i_)q&TN>u(=BbWCpF$qHk`xG!P9-yST#
zQ!e{{@qK>(Cp8N78viqXZu}a2VfpXLl9MO@XJMZ4`A@R3?rjDJ28CpgAYTTCDpdxC
zhGqtapZ^&c8eTFmlo~KFyh>nTu$sZZAf7)d{-_%R1H&v&7srr_TS<TZ|F>t>We{fW
zWq2$fz4$+m&Ke$`SF?C{wy!fb`19}V0g1T>4osQny|ep&c80;9@BC>AJRB(r51uXS
z>W-9<kdT<Mr9@KV{=VcN-=AtTH&5XB%9B>{an8g0%f9mT+}g$Se}8RiLdBPchyVZC
zhHyMyI7KTX&4AnNV6V{{p3_fntjzzw8<*B*TC_%4r$@3qMv+B=K}bg<|J6CZvkVLj
N44$rjF6*2UngC3qZ$|(C

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/971.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/971.png
new file mode 100644
index 0000000000000000000000000000000000000000..db976ea171d47f8e2155be63cfde307e4ef16a4b
GIT binary patch
literal 2873
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`(#+;1OBOz`!jG!i)^F
z=14FwaQSCCI|l@0<d@_ZXXF<scse^P6cpvBW#*(ZFjU-{8=M{z{8G&J`@Jtt-W?57
zyz_%ZITV7Nx*J3$s%a^53V3xWF1#rkcu>&Ql|}l*f)3`szJ?yrKpmbgt{d!66c_b1
zFYf3%_4{G<;_PdCzCSzrZ|ilt=W9OC-F%+?00+-B592`72A-8pa)J+<j~_Yq@QI#7
zBbQ16g8;|o6vg7d%8U#@>TGPZl@74)V_>Yf%+0}Yz<2fm1DW>!{I8s5#xORtFditG
zXyMJ#Aj05K)#tQ~!NHBOVeSmIV1@-O3<;-`lO8h!=rSaz*FU?=&@lJM%xXr4=qZY#
zj0+|*C<v!^xG-c`Gpsou*5%3&VZb1g=6%GH;f5}QfoFJ{2g8Q#3<u5$aBpJZ;9)Qb
z>}b_wV5w$EIH9au!O$|3LB#D-xXnlHbpp?|7#J#MZnD{_V(Ho#&7oV!9v-eIr*Y0x
zTwBB}ktuPOgWjRanUY40Cj1XRpJ8BFFi}+SLG$Oo73cWYojYgNw~a4e_tk#3|4K<o
zkN-VAzq-JIf#G3E-Nk=8`kSR1tl1iJ|1DB|$C44py`c1aciJX?hph|?Ufv4-TmT9i
z*M$>y-n{wr$&(viN1UP)Pleb1OFtBUApCF6&pMkw-@iWC_eiDDD7Mj^<;R0VXTJC>
zl{r6&vnA=yvwrtK+qwV$k-e;R#4~AUgqFzTK%v4umsvfZjg~5PI!)3%s(R^v%A@-_
zznSgsn=)+3vSX~CsJkLInfaTyx<Ew9fk)pN7(VUJKX^rhgSjE2`QiEU|L^Vpx-U>=
zXh`#%RLH;(=c1w)a%!{vaSjFsmj#Vl8yuy-9F)*Gz$SB$_0B==KM7_nPAW$ZISDv%
zr8LMCC1|c`a?)r!yFpefLH~+_tjU4EjJC-Ie0qmMcktO3@c&BWn0HWPPa`Lb;|UJo
zM8#Vjj7eP)%6%N-Gh2Ts9`s-l>Q+%W*&!0B<UP^U!!W2TL?P5e_LFT9lVy91+pdY$
zCm4*H{<Q6JH=NSADbV%`&sOK1E6k-@+!k?PNGUO#)i1VS_JyJ?Qno#23!h(Doxy*r
z-_H5C!GRYN?8ZlO4D^m2cG_s6!#O$m^hTvMJgbjMZ3tV#yu0&j^7)PBEJBU02RO}G
z%AFJv<s3aCd?NgAc&t#6Q85v`#c9sT+!A<5U1{<P?=5P(1b-fpNHQ{PkMPh@z9!T!
ztS?aA;e5ngMX1x+NPXu7CeMvaLM{nia=Vllr2JB6<!loVDdov0Z>3~!Vz->4qo94F
z^~u~Pho2Zfk$$51DVl3;l0)H=AHk0_f=*?5Nj?>LYVwpVb%v2+=;B#HcULS75j5?O
za$37^ThRKz_7%b=rL!#0Hj8<BFI~H6>Sd`6@r>`8>tB@Y61+QA&TsmK@Jpv(y1$tI
zg85514{w`j^YM;!4awOO>=Nmc<r3>>_$-sW+%0)L#K7F}^^E5;`Df;bMrdu*su7)d
zifgLZRJEznTKXX?S1nt0Zxwgw=g`w3{VU^wYuCAj8V5gK$$4ek>d;kl16~J92dA&J
zUeUfPeMNqV{gS%KznyH6hkXwFJ1+@burdDeo?{B!$&#BZbQH6BSGScmnjTTxc=l#Z
znbz(Ze`R-f+pb!<(9+r1%Q$><(B~;>_Uw;m6#ke~;>Y=1WBK&YbzS#F-fKS6lwM}y
zv(qp&CVSPi>C+-sd#nyz?f!bN*}AvO=Pujpx;yfBBcJ1OFZCF8_w@dAtaG0S-weLH
zoNKw5udUVBb$Y9^mr5_(?NYu!Z~40!^Y+Cx%=5`#ey?)x^ItNx`hP?I=Kfm#)tx7T
zZ8MJw+ijk65;jLo3-fJc^^f2F80Z{(*ui;e;?%_H4_hYgylAuds#~uce^2JIn8zxQ
zbC2a7Tdc;Wrl{ua`^xv-tRUZ=%QTl+`&j!NKYQlvqO;d#n$EU0yl(V-_Vd}-XW!qR
z5LFSSvu(w;9jTt1o<uE+e79{+UTc(P<kE=HsMyVJYv-<2y|#Pp?&X5Zclu5CTRrbu
z`r!>9x1HR!a=YY)r#IMcuiKWptu`?|Nj!b~(RGL4P2M}Xc2{lhUt4zG_M3dGWus*4
zinkPrScO^Ln{{r^JNw$BU#7j(Pmee+aQ=qz<88vHHIHP@4W513JzYF~XL0lAj_ywH
zrqg=U?eu0#AG>>E?-Q?*uZ6J>t1f+=JA3o&LvL5yUjNSQUFN&?JM+(&%-5V3X<U5a
z@CoM!fln{mbI+e@kbQqmoxihxWBS(T%KFLr6T{bD->`jY`Ks@U@5SxD*%i%yZ1>p4
z{GQRh$oMnn2ezNse%k+V{=E3s`_A>s|5N@~{lCbtyg`*Qow>8ou`!zI_m8R?#r=Ku
zR<~2XZMyl^v1h?fM^VTArnOB^53W_rIPqq}TE*|rXPldOE|ae{pzg)B3+#!{61xxA
z@u;`9w}!Xb_Z4(RNL@6XZd!ivj&t#SmtQW^T<*<IH}tn$uj^&1Ww%N%%jTB(E|XpM
z$Mn)7&s>d|8{wJbEn}&twazRrXW#ulZ$Gy`n)`_Rakcmi{S&bTl?%@u`qH{wY^9!%
zj@2{=pAJ8ZDIXjKv{s1qsD2VISMB4fJS2N4T}l6<*~N|<&M{hYexE$Fe5)qCnYhQa
zQst=eQk|zeThv!h*yF?Nb9c7YJh5423b{tMR(lPbCrzAC=(I}Fck;IMSLx5v%1*CI
zZQb<mXkPbreYvUZC$l$CSi>5r%eBpE*^7`Ujq6(Mo6=Lm)Apb3JY_j;^*rsfZ_jK#
zb$f#OocHtpzZE(p^l;L)rET8fy0Q_^_O8jY++<T&d7JC8D64i`7~2|~9bMbBa<BTY
zej7f0UEN-_D&OqJxPzyf4sK=4e$5@q^|ZD2^_}Z)WBnuaBkylb{M9yB+D^2yYn{k#
z@#&)VH#F{4Je6+GKed16ohe&Zu0FCe<$T(uw3pBB>CTJho3?8Dv*~<!yf<%c;k_TW
z<?YvRuDA84pVhd%yLp@Q&c*v}cI-)Ae)8N|Yx|HTAzwm%g_ym&ba!jw^&fc`-$_^R
z`DXIw>h0(~-~Za3+;=;aG1T{J+SSzGp1(JLw_n$}>gA7VzjI^P`sEhBJ<fcI`7gUN
z-?r;JuUwVAWE&FHe@*+fJKu5negEdZFW2QY;|=YdbL^3FflK9+m)|+>f0yI6x>eRw
zz2+hNW%)AMbXol@r&*t7xy=rq^*cH#dYAthyNlOe-K+ZJep{Y@j)_fVrPt?>lbN?(
zHeH^a{^@+r+^KVG>-2u!Nw~deTlMqgbN93O^WX0hD0z6v^?&zs>pj-zVm|FC`LyZw
zQ{nI(;j`9T#pk{%d1do&@@4<yyXWklwQgrj_Re=zd$(4neSaxE&-~ooFMBILiv7QK
zb)Kc|-Mycy^1mPb{`J1t-MS+6zvoWxzFDsRZtWibJ@H>0-a6iNzT1A)KKkFC8}IMb
zXB{YC@cH5$_wQ`2&FBA3{Myg&%-TP*|8yH~+v|B2c9xcp?2G=s{IlHoe9C#XdE);T
z{X4x*Tui_2$JN)@&t05xapCk&(<krGty%i_)q&TN>u(=BbWCpF$qHk`xG!P9-yST#
zQ!e{{@qK>(Cp8N78viqXZu}a2VfpXLl9MO@XJMZ4`A@R3?rjDJ28CpgAYTTCDpdxC
zhGqtapZ^&c8eTFmlo~KFyh>nTu$sZZAf7)d{-_%R14D|Zi(^Q|t)xHy|JyU`G6*yG
zGCa0)H04ph-oDpn!_6Oy4=*S&Jj;`IQ0>Km{EyL&?r$xw^7@&aNf6z_vq2^@vBz}h
z+UXDP@BQ<;T5eVQ$JXfW5%2%}vAA@o;)JLZ0|NuY|NqPk8*^oTZw)zq2E_Mt^>bP0
Hl+XkKwUJlb

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/972.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/972.png
new file mode 100644
index 0000000000000000000000000000000000000000..560752617fed5108121fa882a025beb7442d4f26
GIT binary patch
literal 3052
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/973.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/973.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb803fd859294e979f25ea7ef7ae76f4e954f739
GIT binary patch
literal 2964
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
A?f?J)

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/974.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/974.png
new file mode 100644
index 0000000000000000000000000000000000000000..88f902a36b9d7d3a954f4f337a4015f866941512
GIT binary patch
literal 2834
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
R>T(0b_jL7hS?83{1OT7UKD__{

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/975.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/975.png
new file mode 100644
index 0000000000000000000000000000000000000000..acf16d9ff145df0ea71f052ac835eaebb878251f
GIT binary patch
literal 601
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RTIyxQx2S;uTB`42-`$T^vI!de>gI&Ik^aIsWne&YdsMo?UISwd}&I
zpslhsjS&L7G+#V;@aRccx%<IDE+q?2rE_^!77|e!K?35_n*yR<I_F+il!#t)>~*f+
zJ6nGCjY6}hvHY4}|NQX(gM#<H({<P*w(%9YJ(lB0V|9wSvdYy@JICXB!Gn2+mb9NZ
zF2CWc5g*&rc@F-%Lg)WW?^BLQb1SUYpQtg%wTmZkiAVix*V;9LdDlLyc#|@>Eb#G<
z9Q7`X_Tv|hP4ao_G37bODJk2?L#xAPeabC=Gs9}${9{p#_o9}6{Gzxjzh%k$!#lZe
zyb^Eey4AjRw(6UGU4gtoSA_~|CtNup@#&gD(qb>8Niz%_eD=OskbGR-qDp+S)PaMI
z|7Nea<)3uZ!G2$VpVE;}OcBjL-oM<p;Y{3-AI%*n*>`kzW&AMNR3TKq+b=0k?DA8^
zp1ix4>o%0Nd+xB@^Vq!OH~WV5^Cr)$_usSCvFMN4zqy=`YW%AU4ySQmPG;Hr{l>pg
zmADv(y0~N7BL7(K`CR;(!L)Z@TYXN)nV%P@ZOHg_DQ}uaHLrU8%z{kTdA5qXisnvv
zp6IPFka*$GuKyfmn{O4#`dUwWYIo+B)UUfg&S~t7;oJUPpmFkz+6n8Y#=2)W<#H57
zEes29n7XW?^7kyaaz^tX8`(FqubIYE<d*z;E%UBFE0sUw|7DwZ;PTu9@-sk*h{4m<
K&t;ucLK6U|$Qe%n

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/976.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/976.png
new file mode 100644
index 0000000000000000000000000000000000000000..21114e73be7e073336806f993c469c1022d8e302
GIT binary patch
literal 2973
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
JWt~$(69BUhenJ2M

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/977.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/977.png
new file mode 100644
index 0000000000000000000000000000000000000000..03ca19284acf9aad8812ac67720d2986f22e652a
GIT binary patch
literal 3373
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
O1B0ilpUXO@geCw@Tt$5V

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/98.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/98.png
new file mode 100644
index 0000000000000000000000000000000000000000..f8c7d6749636bcffd74fbb3963cb97464643ace1
GIT binary patch
literal 2957
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/992.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/992.png
new file mode 100644
index 0000000000000000000000000000000000000000..9b571f6d8502a7671ba1592785a5140568f185c0
GIT binary patch
literal 2933
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
U&mu0vz`(%Z>FVdQ&MBb@0E%#M!2kdN

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/993.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/993.png
new file mode 100644
index 0000000000000000000000000000000000000000..be6df0d155f2c9f1618c18d89d4cf08bac55daa6
GIT binary patch
literal 519
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{W_;0Bab|r>YpM82F8`1E{-7<y=yP;^$!k|IR5ed&gc6AZaI4^ES<p?
zFSYVmi(_wdj+%se%wOg?J~DUb{B53d_2h~`;UxB61&(H4*Y#Us@=x#7f4+m`Rl+5w
z`7b5??0!Bi|HScbZB)bU`@8Pk=a~^VYw`AN$0pBu6u9_Q;c?5DU7h|vuSu3^aplFO
z=<_j5=sWziSbWE(f_X2UGD~(mQg`u>59Ix((YAbsmI}j)1rAI2IUdWEPY-WvyL;G`
zL!!i{Zcjw|g?nyh4jcz-b~gD5Z#x{D=EddC(X;iidY{mAecr~ICtjE&{6BC!s{35g
zC7blpms0DL+nxS<uG!P`Ynkd=?pL|q>sK<~_;oLF*@_!CazF3*TJ=S%Nc)El@B4bI
zD@)wcC%g9_vQX+-yfE;`>MlpUpC&Vd!d=U_IIX5CJO1}wv!_RT<MHcxK9^axh<&Me
zP^VW}x$DI4N@vq4K1bDy{)ar|c8+|0Cd<(`{l_{<ex25(H^uMlyz*pIv{J$6j|YCQ
zJbtrXyQTB|Rrb>*zYkU<XtPA0kJ8ce`|$85+pF)M^5uPY=Ot#;eir;&Hg}WBmpwa$
c5AJ99uyD43(5fq@3=9kmp00i_>zopr0M*^?fdBvi

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/994.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/994.png
new file mode 100644
index 0000000000000000000000000000000000000000..bd0fb1adc861300c81c2dd5ad461a265ba0bd011
GIT binary patch
literal 2927
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
Lu6{1-oD!M<>7`~U

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/995.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/995.png
new file mode 100644
index 0000000000000000000000000000000000000000..ca25b95487020021ee6f3d6aabafc8f86d15b107
GIT binary patch
literal 286
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qVBqIqV_;x-kZYg8z`($k<n8Xl@E-&h>|H*Y
zfq{X&#M9T6{RWo^v!r4EtKT0O7#I$Cx;Tbd^d|rCXZdl-{`r4y$GiXaSxW!cznt&f
zGwr_*PsW4euh#O^=iPS~KgRj*&aUGhlFyp)6pA$0uep2fL+&r3Hu>&rMt^F5Oj)q7
zUfw40$Ho-d!`CyrCF|DQ?Yo`8=H?bMOCTX7B_Sc9C1^!e!~{zjM>!sz|Njg(yvQ~(
zIPEQLGCeYGR->|6N29C1@FMZ)2YGmScw`jgj_edmYgnbk+`USv&Ehe)<K6!%GhI{;
pc!)ONOK7{u({%O0#JP?Pv9sRk{(t4On}LCW!PC{xWt~$(699KZbHo4u

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/996.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/996.png
new file mode 100644
index 0000000000000000000000000000000000000000..f64723f6ffc304e27cb3a1dc49ad612aafe692d2
GIT binary patch
literal 3044
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/998.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/998.png
new file mode 100644
index 0000000000000000000000000000000000000000..f0d8338ed7cb3ed23f5510bb364101224b1935c1
GIT binary patch
literal 2949
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/icon18_active.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/icon18_active.png
new file mode 100644
index 0000000000000000000000000000000000000000..4daf42d88e83cd92acd59008c986abc7bab51cfb
GIT binary patch
literal 3820
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
N44$rjF6*2UngBg)A+rDg

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/icon18_inactive.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/icon18_inactive.png
new file mode 100644
index 0000000000000000000000000000000000000000..ec52c3ef7b742bd46939a10b8ed10deb76dbc199
GIT binary patch
literal 1424
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sga29w(7Bet#3xhBt!>l<H
z3=GWDna<7u0U7xv`NbLe1qz<d&I$!Z`DvLssSFGiw~`YQ<~?}v=*cOS0|x>ELV}*i
zJ&}+Ulw5kCZeC+=<IF}7P&C}R<A9;Uf%eA6Mn!#l{i%$i21W)oyN?|>ap1s#g2?L^
zkDi>`XmVgyOhCw?0|yEk8XFI4sBX2G+1U7yo0-|Us?yVulbJc0hnczABd83_W(2Xz
zJSG@3GbeL1GYk8BX1Q`QGcz|A*EyyJrd7FhHZ5GbbZJwvS6$F5r-IZ%&#b(SP3dt(
zb%Bm`fk~cOT+GbOSNPc2*x2Hx{}E#Se&mb|t8;KDn^tqj2@O^bZb3T^LlzG`U9Dzz
zRpw@fX0c{@XVt@6ZR|aldIEbsOUyTtG%_`aO}dtlm$L74(qW_isWVMyf7O~Td|Rzd
z^xI4sCYiZ&*33B@b0#MD&Ye5Ll}jq7eUkbt_lWyh^|5$e1(gj^7kocV3|PEj(TBu|
zC4q4l*CrJ{n)4`HHAtmZwcjh$<F%Ll#F@&{TIw3*Vf)+<x=#%M*mOzcsfMWP)a$FF
zuS#A0Ym#DmFYDdqSu5tQN?xnI<hR%Rj(;`HQinB^y^}p3-&gzY!#{hi!TaqiHu!A$
zv~k;pz^$SilQ;g(`hVx)w#Tf?lh0MhZrio4Jo@FnE6Ed|JFREE$6YJ-Tkmu9)BSb{
z*$?h5NIv-7Ij_}@`?t_R5lxAuBDpe;#iT{2i{GDQU|m>z>E@H?D}6GHUYbb;&J2y*
zyy^RsJExORh3kLN)X|$2TeIUy?o5}R-mZyH_pI7{wLbgnt4FWZO=YtG+|9W#>7Ld4
zw^i*4%ge*7zdwv?v-|yT7w2!afAim1EG>Q2`ErkOQ~J4CUo-ly-I-MRTdY8rCwfc8
z$Ky-+POItE@3>SE`uf%E?9%I|YxnQGm=JvY8GH2FZN7K^B`$xzF0|U>+p_o8bq;?M
zo-e%a{--a`POom!w<nV?-%H;%XR_`6x`&sS?l`@CT~thTne&&l*K608UwVIU&->30
z4k%wfzIwiv-Rz%EA5yPpKQk}QuivNt_ruHJgU`$3KkwW7d*c7khu=T4zyB}v?|*&<
zJs#Qa1vZ?93=9kk$sR$z3=CDO3=9p;3=BX2GcYu~WMC*YU|@Kaz`$TNgMmRje^UHW
zHwFgA_nt0}Ar-f5ChgA_PGoSn|NZHt-7!M_E;-4*tn~@9EP@x8Iv-r55Zdf~)HP$P
zf}ShOf5xNs2VxyX)^O+rm0Vhyadk!D1`*w3@>`e1DSKA!%`V!z`~1RX`E~i#kJw&w
zhzLp~X&Y^Dc2A6rt9>|~VatC$#YY9-vd&MKI%Q3({QHyNrgndR_|`eG(z(k(j*n0N
zg~-N39*i$~OMAoJ9ho%NY=7SV{qljM$Dc{6Nk;ix>sH=t?$~r_j)t6wj-a}0)Ay7Y
z$I`lFZ{~^|{~8>m*#GRj-h@P9sV*(C(>fnGyWd_h@OZXV$#&M!ht_<0oBt@aJ9dV0
z{c(HDeQu81C5vlnr{iZGsc@DSp6hz)%R@l}_ZicS<nRA!zW&EW@Ivc3uFqRKA2OsW
z1?^rs!OqH4D@5Q+LCahTm77ko?ESVJzHHkvo=s@zJuPLHsiG#Ow|U8h%)b-&3EP@y
zCOrsTD9tVJ*~MlWQ)6e|TrPE^|ITHueil7>jtHf`?&ErFfp_L7xC!rkFsb>-frOcC
zLUY9!e_Qk&Yu;AQYqB-`n|8>I38f1=81)Q)NixhcC~nj8h-*_{>~>{UH-l?~|Eyx3
z2gT|$<Q^5KPxYM2o8QUZB;eR)x6knEkE-kY{c>x&&iN<5T4{CA<muF!lRV;AwQuEo
b$Y%(cbV$Es$BRY=1_lOCS3j3^P6<r_r`v;2

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/icon32.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/icon32.png
new file mode 100644
index 0000000000000000000000000000000000000000..38949785768fa37e6490cd89025e35f38518997b
GIT binary patch
literal 5391
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
L`njxgN@xNAPyR=V

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/icon96.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/icon96.png
new file mode 100644
index 0000000000000000000000000000000000000000..0c0ea89ad2356ba6a6253bc2b545cf6584ed0298
GIT binary patch
literal 12314
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
UtFwQ`z`(%Z>FVdQ&MBb@0Bj4I)&Kwi

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/icon_menu.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/icon_menu.png
new file mode 100644
index 0000000000000000000000000000000000000000..62dd257f7e86daefb4f01088da641f90a2a9e6be
GIT binary patch
literal 583
zcmeAS@N?(olHy`uVBq!ia0y~yVBiN~4mJh`2J356y%-o6I14-?iy0WWg+Z8+Vb&Z8
z1_lO&WRD<U28JqC28M=a28N&i85kN~GBA`HFfhDIU|_JC!N4G%KPmpG8v_I5Sx*<o
zkcwMVE^W*cb`)THP+$JO?7iNnyE7%`9P#XFXcF<*!zkM8>gYJtgCmeJNTA<Av~w2w
z0w<-Q70O;(DlUw?LK8I#dpdoK`u2W%_m+>h(?e?Z%IBBQy!&&Y=cq*Xk-|+!C9)sb
zubz~8_3qVYp{G7`zh_`!P)KX=oECb2N#s`7Cnqb9?=8Nw^Aq!It4)*kom;)NROz|<
z;)~&$PnDi4z5kc9y(x1>hl#_5sCw?hACd%GKKB@Utjzn6`Qt~$hMO<{RCu^Vd4;Mg
zRlHAFd-JjJp2+CrxT)9PF)}=tiF)mS?bi2$J^SZ+EzJ{RbdhU*^ntbE(V3K$i;jD_
z&VHUMqwc?0W8XOm=Rldf=<M<Wu~qK9PnSi<?etkVMOyu4K;W00%*?B6Ox9nhd3#Bm
zfm>aTp}~OXdiK^|-sddMkA0a`@$O(tx9ieH(Nn#u+PND)Mr{ARxA`}N)$*0XPIuPn
zo0PQ*BpFF=pIhu+XtbS8$>12nu?6mj-~YY0zWUzp^Z)Zs?_J)vHEq9+_uEsO<d2_}
zs;s|dAR{7Q&3^Y<<qz|DSFSF8*k?G|Q}yh7E=86D32R^efA@VGTk~RdhHuN~HhXKD
oU(%_URzF#M?8es22j>~2{SQhx@3&sfz`(%Z>FVdQ&MBb@0F)R39smFU

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/info32.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/info32.png
new file mode 100644
index 0000000000000000000000000000000000000000..d8197d61a38f508651d3ce759bcd60d620226bbb
GIT binary patch
literal 2328
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/jshashtable.js b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/jshashtable.js
new file mode 100644
index 0000000000..3806f818f9
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/jshashtable.js
@@ -0,0 +1,380 @@
+/**
+ * Copyright 2009 Tim Down.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * jshashtable
+ *
+ * jshashtable is a JavaScript implementation of a hash table. It creates a
+ * single constructor function called Hashtable in the global scope.
+ *
+ * Author: Tim Down <tim@timdown.co.uk>
+ * Version: 1.0
+ * Build date: 5 February 2009
+ * Website: http://www.timdown.co.uk/jshashtable
+ */
+
+var Hashtable = (function() {
+	function isUndefined(obj) {
+		return (typeof obj === "undefined");
+	}
+
+	function isFunction(obj) {
+		return (typeof obj === "function");
+	}
+
+	function isString(obj) {
+		return (typeof obj === "string");
+	}
+
+	function hasMethod(obj, methodName) {
+		if (obj[methodName]) {
+			return isFunction(obj[methodName]);
+		} else {
+			return false;
+		}
+	}
+
+	function hasEquals(obj) {
+		return hasMethod(obj, "equals");
+	}
+
+	function hasHashCode(obj) {
+		return hasMethod(obj, "hashCode");
+	}
+
+	function keyForObject(obj) {
+		if (isString(obj)) {
+			return obj;
+		} else if (hasHashCode(obj)) {
+			// Check the hashCode method really has returned a string
+			var hashCode = obj.hashCode();
+			if (!isString(hashCode)) {
+				return keyForObject(hashCode);
+			}
+			return hashCode;
+		} else if (hasMethod(obj, "toString")) {
+			return obj.toString();
+		} else {
+			return String(obj);
+		}
+	}
+
+	function equals_fixedValueHasEquals(fixedValue, variableValue) {
+		return fixedValue.equals(variableValue);
+	}
+
+	function equals_fixedValueNoEquals(fixedValue, variableValue) {
+		if (hasEquals(variableValue)) {
+			return variableValue.equals(fixedValue);
+		} else {
+			return fixedValue === variableValue;
+		}
+	}
+
+	function equals_equivalence(o1, o2) {
+		return o1 === o2;
+	}
+
+	function arraySearch(arr, value, arrayValueFunction, returnFoundItem, equalityFunction) {
+		var currentValue;
+		for (var i = 0, len = arr.length; i < len; i++) {
+			currentValue = arr[i];
+			if (equalityFunction(value, arrayValueFunction(currentValue))) {
+				return returnFoundItem ? [i, currentValue] : true;
+			}
+		}
+		return false;
+	}
+
+	function arrayRemoveAt(arr, idx) {
+		if (hasMethod(arr, "splice")) {
+			arr.splice(idx, 1);
+		} else {
+			if (idx === arr.length - 1) {
+				arr.length = idx;
+			} else {
+				var itemsAfterDeleted = arr.slice(idx + 1);
+				arr.length = idx;
+				for (var i = 0, len = itemsAfterDeleted.length; i < len; i++) {
+					arr[idx + i] = itemsAfterDeleted[i];
+				}
+			}
+		}
+	}
+
+	function checkKeyOrValue(kv, kvStr) {
+		if (kv === null) {
+			throw new Error("null is not a valid " + kvStr);
+		} else if (isUndefined(kv)) {
+			throw new Error(kvStr + " must not be undefined");
+		}
+	}
+
+	var keyStr = "key", valueStr = "value";
+
+	function checkKey(key) {
+		checkKeyOrValue(key, keyStr);
+	}
+
+	function checkValue(value) {
+		checkKeyOrValue(value, valueStr);
+	}
+
+	/*------------------------------------------------------------------------*/
+
+	function Bucket(firstKey, firstValue, equalityFunction) {
+		this.entries = [];
+		this.addEntry(firstKey, firstValue);
+
+		if (equalityFunction !== null) {
+			this.getEqualityFunction = function() {
+				return equalityFunction;
+			};
+		}
+	}
+
+	function getBucketEntryKey(entry) {
+		return entry[0];
+	}
+
+	function getBucketEntryValue(entry) {
+		return entry[1];
+	}
+
+	Bucket.prototype = {
+		getEqualityFunction: function(searchValue) {
+			if (hasEquals(searchValue)) {
+				return equals_fixedValueHasEquals;
+			} else {
+				return equals_fixedValueNoEquals;
+			}
+		},
+
+		searchForEntry: function(key) {
+			return arraySearch(this.entries, key, getBucketEntryKey, true, this.getEqualityFunction(key));
+		},
+
+		getEntryForKey: function(key) {
+			return this.searchForEntry(key)[1];
+		},
+
+		getEntryIndexForKey: function(key) {
+			return this.searchForEntry(key)[0];
+		},
+
+		removeEntryForKey: function(key) {
+			var result = this.searchForEntry(key);
+			if (result) {
+				arrayRemoveAt(this.entries, result[0]);
+				return true;
+			}
+			return false;
+		},
+
+		addEntry: function(key, value) {
+			this.entries[this.entries.length] = [key, value];
+		},
+
+		size: function() {
+			return this.entries.length;
+		},
+
+		keys: function(keys) {
+			var startIndex = keys.length;
+			for (var i = 0, len = this.entries.length; i < len; i++) {
+				keys[startIndex + i] = this.entries[i][0];
+			}
+		},
+
+		values: function(values) {
+			var startIndex = values.length;
+			for (var i = 0, len = this.entries.length; i < len; i++) {
+				values[startIndex + i] = this.entries[i][1];
+			}
+		},
+
+		containsKey: function(key) {
+			return arraySearch(this.entries, key, getBucketEntryKey, false, this.getEqualityFunction(key));
+		},
+
+		containsValue: function(value) {
+			return arraySearch(this.entries, value, getBucketEntryValue, false, equals_equivalence);
+		}
+	};
+
+	/*------------------------------------------------------------------------*/
+
+	function BucketItem() {}
+	BucketItem.prototype = [];
+
+	// Supporting functions for searching hashtable bucket items
+
+	function getBucketKeyFromBucketItem(bucketItem) {
+		return bucketItem[0];
+	}
+
+	function searchBucketItems(bucketItems, bucketKey, equalityFunction) {
+		return arraySearch(bucketItems, bucketKey, getBucketKeyFromBucketItem, true, equalityFunction);
+	}
+
+	function getBucketForBucketKey(bucketItemsByBucketKey, bucketKey) {
+		var bucketItem = bucketItemsByBucketKey[bucketKey];
+
+		// Check that this is a genuine bucket item and not something
+		// inherited from prototype
+		if (bucketItem && (bucketItem instanceof BucketItem)) {
+			return bucketItem[1];
+		}
+		return null;
+	}
+
+	/*------------------------------------------------------------------------*/
+
+	function Hashtable(hashingFunction, equalityFunction) {
+		var bucketItems = [];
+		var bucketItemsByBucketKey = {};
+
+		hashingFunction = isFunction(hashingFunction) ? hashingFunction : keyForObject;
+		equalityFunction = isFunction(equalityFunction) ? equalityFunction : null;
+
+		this.put = function(key, value) {
+			checkKey(key);
+			checkValue(value);
+			var bucketKey = hashingFunction(key);
+
+			// Check if a bucket exists for the bucket key
+			var bucket = getBucketForBucketKey(bucketItemsByBucketKey, bucketKey);
+			if (bucket) {
+				// Check this bucket to see if it already contains this key
+				var bucketEntry = bucket.getEntryForKey(key);
+				if (bucketEntry) {
+					// This bucket entry is the current mapping of key to value, so replace
+					// old value and we're done.
+					bucketEntry[1] = value;
+				} else {
+					// The bucket does not contain an entry for this key, so add one
+					bucket.addEntry(key, value);
+				}
+			} else {
+				// No bucket, so create one and put our key/value mapping in
+				var bucketItem = new BucketItem();
+				bucketItem[0] = bucketKey;
+				bucketItem[1] = new Bucket(key, value, equalityFunction);
+				bucketItems[bucketItems.length] = bucketItem;
+				bucketItemsByBucketKey[bucketKey] = bucketItem;
+			}
+		};
+
+		this.get = function(key) {
+			if (key == null) return null;
+			checkKey(key);
+			var bucketKey = hashingFunction(key);
+			// Check if a bucket exists for the bucket key
+			var bucket = getBucketForBucketKey(bucketItemsByBucketKey, bucketKey);
+			if (bucket) {
+				// Check this bucket to see if it contains this key
+				var bucketEntry = bucket.getEntryForKey(key);
+				if (bucketEntry) {
+					// This bucket entry is the current mapping of key to value, so return
+					// the value.
+					return bucketEntry[1];
+				}
+			}
+			return null;
+		};
+
+		this.containsKey = function(key) {
+			checkKey(key);
+
+			var bucketKey = hashingFunction(key);
+
+			// Check if a bucket exists for the bucket key
+			var bucket = getBucketForBucketKey(bucketItemsByBucketKey, bucketKey);
+			if (bucket) {
+				return bucket.containsKey(key);
+			}
+
+			return false;
+		};
+
+		this.containsValue = function(value) {
+			checkValue(value);
+			for (var i = 0, len = bucketItems.length; i < len; i++) {
+				if (bucketItems[i][1].containsValue(value)) {
+					return true;
+				}
+			}
+			return false;
+		};
+
+		this.clear = function() {
+			bucketItems.length = 0;
+			bucketItemsByBucketKey = {};
+		};
+
+		this.isEmpty = function() {
+			return bucketItems.length === 0;
+		};
+
+		this.keys = function() {
+			var keys = [];
+			for (var i = 0, len = bucketItems.length; i < len; i++) {
+				bucketItems[i][1].keys(keys);
+			}
+			return keys;
+		};
+
+		this.values = function() {
+			var values = [];
+			for (var i = 0, len = bucketItems.length; i < len; i++) {
+				bucketItems[i][1].values(values);
+			}
+			return values;
+		};
+
+		this.remove = function(key) {
+			checkKey(key);
+
+			var bucketKey = hashingFunction(key);
+
+			// Check if a bucket exists for the bucket key
+			var bucket = getBucketForBucketKey(bucketItemsByBucketKey, bucketKey);
+
+			if (bucket) {
+				// Remove entry from this bucket for this key
+				if (bucket.removeEntryForKey(key)) {
+					// Entry was removed, so check if bucket is empty
+					if (bucket.size() === 0) {
+						// Bucket is empty, so remove it
+						var result = searchBucketItems(bucketItems, bucketKey, bucket.getEqualityFunction(key));
+						arrayRemoveAt(bucketItems, result[0]);
+						delete bucketItemsByBucketKey[bucketKey];
+					}
+				}
+			}
+		};
+
+		this.size = function() {
+			var total = 0;
+			for (var i = 0, len = bucketItems.length; i < len; i++) {
+				total += bucketItems[i][1].size();
+			}
+			return total;
+		};
+	}
+
+	return Hashtable;
+})();
\ No newline at end of file
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/messagebox.js b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/messagebox.js
new file mode 100644
index 0000000000..8be1b98285
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/messagebox.js
@@ -0,0 +1,43 @@
+/*
+Creative Commons License: Attribution-No Derivative Works 3.0 Unported
+http://creativecommons.org/licenses/by-nd/3.0/
+(c)2009 Michael Koch
+*/
+
+var objTelifyMessageBox = {
+
+init: function()
+{
+	var title = window.arguments[0].title;
+	if (title == null || title == "") title =" Telify";
+	document.getElementById("dlgTelifyMessageBox").setAttribute("title", title);
+	var msg_node = document.createTextNode(window.arguments[0].msg);
+	document.getElementById("idTelify_mb_msg").appendChild(msg_node);
+	var flags = window.arguments[0].flags;
+	if ((flags & objTelifyUtil.MB_MASK) == 0) flags |= objTelifyUtil.MB_OK; // default button
+	if ((flags & objTelifyUtil.MB_OK) == 0) document.documentElement.getButton("accept").collapsed = true;
+	if ((flags & objTelifyUtil.MB_CANCEL) == 0) document.documentElement.getButton("cancel").collapsed = true;
+	var icon = "info32.png";
+	switch (flags & objTelifyUtil.MB_ICON_MASK) {
+		case objTelifyUtil.MB_ICON_ERROR: icon = "error32.png"; break;
+		case objTelifyUtil.MB_ICON_WARNING: icon = "warn32.png"; break;
+		case objTelifyUtil.MB_ICON_ASK: icon = "ask32.png"; break;
+		case objTelifyUtil.MB_ICON_INFO: icon = "info32.png"; break;
+	}
+	document.getElementById("idTelify_mb_icon").setAttribute("src", "chrome://telify/content/"+icon);
+},
+
+onAccept: function()
+{
+	window.arguments[0].fResult = true;
+	return true;
+},
+
+onCancel: function()
+{
+	window.arguments[0].fResult = false;
+	return true;
+}
+
+};
+
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/messagebox.xul b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/messagebox.xul
new file mode 100644
index 0000000000..1be8d587f4
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/messagebox.xul
@@ -0,0 +1,34 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
+<?xml-stylesheet href="chrome://telify/content/dialog.css" type="text/css"?>
+
+<!DOCTYPE dialog SYSTEM "chrome://telify/locale/lang.dtd">
+
+<dialog id="dlgTelifyMessageBox"
+	xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+	buttons="accept, cancel"
+	onload="objTelifyMessageBox.init()"
+	ondialogaccept="objTelifyMessageBox.onAccept()"
+	ondialogcancel="objTelifyMessageBox.onCancel()"
+	title="">
+
+	<stringbundleset id="stringbundleset">
+		<stringbundle id="idTelifyStringBundle" src="chrome://telify/locale/lang.properties"/>
+	</stringbundleset>
+
+	<script type='application/x-javascript' src='chrome://telify/content/pref.js'></script>
+	<script type='application/x-javascript' src='chrome://telify/content/util.js'></script>
+	<script type='application/x-javascript' src='chrome://telify/content/messagebox.js'></script>
+
+	
+	<groupbox style="background-color:white;padding:8px;">
+		<hbox>
+			<vbox>
+				<image id="idTelify_mb_icon" src="chrome://telify/content/info32.png" style="width:32px;height:32px;margin-right:4px;"/>
+				<spacer flex="1"/>
+			</vbox>
+			<description id="idTelify_mb_msg" style="width:240px;text-align:justify;"/>
+		</hbox>
+	</groupbox>
+	
+</dialog>
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/pref.js b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/pref.js
new file mode 100644
index 0000000000..2d3b635917
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/pref.js
@@ -0,0 +1,164 @@
+/*
+Creative Commons License: Attribution-No Derivative Works 3.0 Unported
+http://creativecommons.org/licenses/by-nd/3.0/
+(c)2009 Michael Koch
+*/
+
+var objTelifyPrefs = {
+
+PREF_BLACKLIST: "blacklist",
+PREF_HIGHLIGHT: "highlight",
+PREF_EXCLUDE: "exclude",
+PREF_DEBUG: "debug",
+PREF_ACTIVE: "active",
+PREF_STATUSICON: "statusicon",
+PREF_HREFTYPE: "linktype",
+PREF_COLSORTCC: "colsortcc",
+PREF_NUMHISTORY: "num_history",
+PREF_IDD_PREFIX: "idd_prefix",
+PREF_DONT_ESCAPE_PLUS: "dont_escape_plus",
+PREF_DIAL_CC_DIRECT: "dial_cc_direct",
+
+NUM_CUSTOM_PARAMS: 3,
+
+PREF_CUSTOM_URL: "custom_url",
+PREF_CUSTOM_TMPL: "custom_tmpl",
+PREF_CUSTOM_PARAM: "custom_param",
+PREF_CUSTOM_OPENTYPE: "custom_opentype",
+
+maxHistory: 10,
+
+telPrefs: null,
+telStrings: null,
+
+blacklist: null,
+excludedHosts: null,
+highlight: null,
+excludedTags: null,
+hrefType: null,
+numHistory: null,
+idd_prefix: null,
+fStatusIcon: null,
+fActive: null,
+fDebug: null,
+fDontEscapePlus: null,
+fDialCCDirect: null,
+
+custom_url: null,
+custom_tmpl: null,
+custom_param: [],
+custom_opentype: null,
+
+HREFTYPE_CUSTOM: 9,
+
+protoList: new Array("tel", "callto", "skype", "sip"),
+
+
+showConfigDialog: function()
+{
+	while (true) {
+		window.openDialog("chrome://telify/content/config.xul", "dlgTelifyConfig", "centerscreen,chrome,modal").focus;
+		if (this.hrefType == this.HREFTYPE_CUSTOM && this.custom_url.indexOf("$0") < 0) {
+			var result = objTelifyUtil.showMessageBox("", objTelifyLocale.msgNumberTemplateMissing(),
+				 objTelifyUtil.MB_OK|objTelifyUtil.MB_CANCEL|objTelifyUtil.MB_ICON_WARNING);
+			if (result == false) continue;
+		}
+		break;
+	}
+},
+
+
+getPrefObj: function()
+{
+	var obj = Components.classes["@mozilla.org/preferences-service;1"];
+	obj = obj.getService(Components.interfaces.nsIPrefService);
+	obj = obj.getBranch("telify.settings.");
+	obj.QueryInterface(Components.interfaces.nsIPrefBranch2);
+	return obj;
+},
+
+
+getCharPref: function(name)
+{
+	try {
+		return this.telPrefs.getCharPref(name);
+	} catch (e) {
+		alert(e);
+		return "";
+	}
+},
+
+
+getIntPref: function(name)
+{
+	try {
+		return this.telPrefs.getIntPref(name);
+	} catch (e) {
+		return 0;
+	}
+},
+
+
+getBoolPref: function(name)
+{
+	try {
+		return this.telPrefs.getBoolPref(name);
+	} catch (e) {
+		return false;
+	}
+},
+
+
+getPrefs: function()
+{
+	this.blacklist = this.telPrefs.getCharPref(this.PREF_BLACKLIST);
+	if (this.blacklist.length > 0) {
+		this.excludedHosts = this.blacklist.toLowerCase().split(",");
+	} else {
+		this.excludedHosts = new Array();
+	}
+	this.highlight = this.telPrefs.getIntPref(this.PREF_HIGHLIGHT);
+	this.highlight = objTelifyUtil.trimInt(this.highlight, 0, 100);
+	this.numHistory = this.telPrefs.getIntPref(this.PREF_NUMHISTORY);
+	this.numHistory = objTelifyUtil.trimInt(this.numHistory, 1, 10);
+	this.idd_prefix = this.telPrefs.getCharPref(this.PREF_IDD_PREFIX);
+	var exclude = this.telPrefs.getCharPref(this.PREF_EXCLUDE);
+	this.excludedTags = exclude.toLowerCase().split(",");
+	this.hrefType = this.telPrefs.getIntPref(this.PREF_HREFTYPE);
+	if ((this.hrefType < 0 || this.hrefType >= this.protoList.length) && this.hrefType != this.HREFTYPE_CUSTOM) this.hrefType = 0;
+	this.fStatusIcon = this.telPrefs.getBoolPref(this.PREF_STATUSICON);
+	var status = document.getElementById("idTelify_status");
+	if (status) status.setAttribute("collapsed", !this.fStatusIcon);
+	this.fDebug = this.telPrefs.getBoolPref(this.PREF_DEBUG);
+	this.fActive = this.telPrefs.getBoolPref(this.PREF_ACTIVE);
+	this.fDontEscapePlus = this.telPrefs.getBoolPref(this.PREF_DONT_ESCAPE_PLUS);
+	this.fDialCCDirect = this.telPrefs.getBoolPref(this.PREF_DIAL_CC_DIRECT);
+	// custom url
+	this.custom_url = this.getCharPref(this.PREF_CUSTOM_URL);
+	this.custom_tmpl = this.getIntPref(this.PREF_CUSTOM_TMPL);
+	for (var i=1; i<this.NUM_CUSTOM_PARAMS+1; i++) {
+		this.custom_param[i] = this.getCharPref(this.PREF_CUSTOM_PARAM+i);
+	}
+	this.custom_opentype = this.getIntPref(this.PREF_CUSTOM_OPENTYPE);
+},
+
+
+prefObserver: {
+	observe: function(subject, topic, data) {
+		if (topic != "nsPref:changed") return;
+		objTelifyPrefs.getPrefs();
+	}
+},
+
+
+initTelifyPrefs: function()
+{
+	objTelifyPrefs.telPrefs = objTelifyPrefs.getPrefObj();
+	objTelifyPrefs.telPrefs.addObserver("", objTelifyPrefs.prefObserver, false);
+	objTelifyPrefs.telStrings = document.getElementById("idTelifyStringBundle");
+	objTelifyPrefs.getPrefs();
+}
+
+};
+
+
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/telify.js b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/telify.js
new file mode 100644
index 0000000000..58a615ec06
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/telify.js
@@ -0,0 +1,715 @@
+/*
+Creative Commons License: Attribution-No Derivative Works 3.0 Unported
+http://creativecommons.org/licenses/by-nd/3.0/
+(c)2009 Michael Koch
+*/
+
+var objTelify = {
+
+digits_min: 7,
+digits_max: 16,
+
+hilite_color: new Array(0,0,255),
+hilite_bgcolor: new Array(255,255,0),
+
+// special chars
+sc_nbsp: String.fromCharCode(0xa0),
+
+// chars which look like dashes
+token_dash:
+	String.fromCharCode(0x2013) +
+	String.fromCharCode(0x2014) +
+	String.fromCharCode(0x2212),
+
+exclPatternList: [
+	/^\d{2}\.\d{2} ?(-|–) ?\d{2}\.\d{2}$/,	// time range e.g. 08.00 - 17.00
+	/^\d{2}\/\d{2}\/\d{2}$/,	// date e.g. 09/03/09
+	/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,	// ip address
+	/^[0-3]?[0-9]\.[0-3]?[0-9]\.(19|20)\d{2} - \d{2}\.\d{2}$/,	// date and time e.g. 09.03.2009 - 17.59
+	/^[0-3]?[0-9][\/\.-][0-3]?[0-9][\/\.-](19|20)\d{2}$/,	// date e.g. 09/03/2009, 09.03.2009, 09-03-2009
+	/^[0-3]?[0-9][\/\.-][0-3]?[0-9][\/\.-]\d{2} ?(-|–) ?[0-3]?[0-9][\/\.-][0-3]?[0-9][\/\.-]\d{2}$/,	// date range short
+	/^[0-3]?[0-9][\/\.-][0-3]?[0-9][\/\.-] ?(-|–) ?[0-3]?[0-9][\/\.-][0-3]?[0-9][\/\.-](19|20)\d{2}$/,	// date range medium
+	/^[0-3]?[0-9][\/\.-][0-3]?[0-9][\/\.-](19|20)\d{2} ?(-|–) ?[0-3]?[0-9][\/\.-][0-3]?[0-9][\/\.-](19|20)\d{2}$/,	// date range long
+	/^0\.\d+$/, // e.g. 0.12345678
+],
+
+inclLocalList: [
+	[/^[1-9]\d{2}[\.-]\d{3}[\.-]\d{4}$/, "+1"],	// US
+],
+
+token_trigger: "+(0123456789",
+token_part: " -/()[].\r\n"
+	+ String.fromCharCode(0xa0) // sc_nbsp
+	+ String.fromCharCode(0x2013) + String.fromCharCode(0x2014) +	String.fromCharCode(0x2212), // token_dash
+token_start: "+(0",
+token_sep: " -/(.",
+token_disallowed_post: ":-",
+token_disallowed_prev: "-,.",
+
+dialHistory: new Array(objTelifyPrefs.maxHistory),
+
+
+getDialHistory: function()
+{
+	for (var i=0; i<objTelifyPrefs.maxHistory; i++) {
+		try {
+			this.dialHistory[i] = objTelifyPrefs.telPrefs.getCharPref("history"+i);
+		} catch (e) {
+			this.dialHistory[i] = "";
+		}
+	}
+},
+
+
+saveDialHistory: function()
+{
+	for (var i=0; i<objTelifyPrefs.maxHistory; i++) {
+		if (this.dialHistory[i] == null) this.dialHistory[i] = "";
+		objTelifyPrefs.telPrefs.setCharPref("history"+i, this.dialHistory[i]);
+	}
+},
+
+
+updateDialHistory: function(prefix)
+{
+	//logmsg("updateDialHistory("+prefix+")");
+	var newList = new Array(objTelifyPrefs.maxHistory);
+	newList[0] = prefix;
+	for (var i=0, j=1; i<objTelifyPrefs.maxHistory && j<objTelifyPrefs.maxHistory; i++) {
+		if (this.dialHistory[i] == null || this.dialHistory[i] == "" || this.dialHistory[i] == prefix) continue;
+		newList[j++] = this.dialHistory[i];
+	}
+	this.dialHistory = newList;
+	this.saveDialHistory();
+},
+
+
+setStatus: function()
+{
+	var statusicon = document.getElementById("idTelify_statusicon");
+	if (objTelifyPrefs.fActive) {
+		statusicon.setAttribute("src", "chrome://telify/content/icon18_active.png");
+		var text = objTelifyPrefs.telStrings.getString("telify_active");
+		statusicon.setAttribute("tooltiptext", text);
+	} else {
+		statusicon.setAttribute("src", "chrome://telify/content/icon18_inactive.png");
+		var text = objTelifyPrefs.telStrings.getString("telify_inactive");
+		statusicon.setAttribute("tooltiptext", text);
+	}
+},
+
+
+toggleBlacklist: function()
+{
+	var host = objTelifyUtil.getHost();
+	if (host == null) return;
+	if (objTelifyPrefs.excludedHosts.indexOf(host) >= 0) {
+		objTelifyUtil.arrayRemove(objTelifyPrefs.excludedHosts, host);
+	} else {
+		objTelifyPrefs.excludedHosts.push(host);
+	}
+	objTelifyPrefs.blacklist = objTelifyPrefs.excludedHosts.join(",");
+	objTelifyPrefs.telPrefs.setCharPref(objTelifyPrefs.PREF_BLACKLIST, objTelifyPrefs.blacklist);
+},
+
+
+toggleActive: function()
+{
+	objTelifyPrefs.telPrefs.setBoolPref(objTelifyPrefs.PREF_ACTIVE, !objTelifyPrefs.fActive);
+	this.setStatus();
+},
+
+
+getSelectionNumber: function()
+{
+	//var sel = content.window.getSelection().toString();
+	var sel = document.commandDispatcher.focusedWindow.getSelection().toString();
+	sel = this.convertVanityNr(sel);
+	sel = objTelifyUtil.stripNumber(sel);
+	return sel;
+},
+
+
+dialNumber: function(nr)
+{
+	var requ = new XMLHttpRequest();
+	var url = objTelifyUtil.createDialURL(nr);
+
+	if (objTelifyPrefs.hrefType == objTelifyPrefs.HREFTYPE_CUSTOM) {
+		if (objTelifyPrefs.custom_opentype == 1) {
+			window.open(url, "_blank");
+			return;
+		}
+		if (objTelifyPrefs.custom_opentype == 2) {
+			var browser = top.document.getElementById("content");
+			var tab = browser.addTab(url);
+			return;
+		}
+		if (objTelifyPrefs.custom_opentype == 3) {
+			var browser = top.document.getElementById("content");
+			var tab = browser.addTab(url);
+			browser.selectedTab = tab;
+			return;
+		}
+	}
+
+	try {
+		requ.open("GET", url, true);
+		requ.send(null);
+	} catch(e) {
+		// throws exception because answer is empty (or protocol is unknown)
+		if (e.name == "NS_ERROR_UNKNOWN_PROTOCOL") {
+			objTelifyUtil.showMessageBox("", objTelifyLocale.msgUnknownProtocol(), objTelifyUtil.MB_ICON_ERROR);
+		}
+	}
+},
+
+
+modifyPopup: function(event)
+{
+	var label, key;
+
+	//var selText = content.window.getSelection().toString();
+	var selText = document.commandDispatcher.focusedWindow.getSelection().toString();
+
+	if (document.popupNode && document.popupNode.getAttribute("class") == "telified") {
+		var nr = document.popupNode.getAttribute("nr");
+		var nr_parts = objTelifyUtil.splitPhoneNr(nr);
+		objTelify.modifyDialPopup(nr_parts[0], nr_parts[1], "context");
+		objTelifyUtil.setIdAttr("collapsed", false, "idTelify_menu_context");
+	} else if (objTelifyPrefs.fActive && selText.length > 0 && objTelifyUtil.countDigits(selText) > 1) {
+		var nr = objTelify.getSelectionNumber();
+		var nr_parts = objTelifyUtil.splitPhoneNr(nr);
+		objTelify.modifyDialPopup(nr_parts[0], nr_parts[1], "context");
+		objTelifyUtil.setIdAttr("collapsed", false, "idTelify_menu_context");
+	} else {
+		objTelifyUtil.setIdAttr("collapsed", true, "idTelify_menu_context");
+	}
+
+	if (objTelifyPrefs.fActive) {
+		label = objTelifyPrefs.telStrings.getString("telify_deactivate");
+	} else {
+		label = objTelifyPrefs.telStrings.getString("telify_activate");
+	}
+	objTelifyUtil.setIdAttr("label", label, "idTelify_menu_activity", "idTelify_status_activity");
+
+	var host = objTelifyUtil.getHost();
+	if (host) {
+		objTelifyUtil.setIdAttr("disabled", !objTelifyPrefs.fActive, "idTelify_menu_blacklist", "idTelify_status_blacklist");
+		if (objTelifyPrefs.excludedHosts.indexOf(host) >= 0) key = "host_active_arg"; else key = "host_inactive_arg";
+		label = objTelifyUtil.substArgs(objTelifyPrefs.telStrings.getString(key), host);
+		objTelifyUtil.setIdAttr("label", label, "idTelify_menu_blacklist", "idTelify_status_blacklist");
+	} else {
+		objTelifyUtil.setIdAttr("label", "Kein Host aktiv", "idTelify_menu_blacklist", "idTelify_status_blacklist");
+		objTelifyUtil.setIdAttr("disabled", true, "idTelify_menu_blacklist", "idTelify_status_blacklist");
+	}
+},
+
+
+showEditNumberDialog: function(cc, nr)
+{
+	var argObj = {cc: cc, nr: nr, fOK: false};
+	window.openDialog("chrome://telify/content/editNumber.xul", "dlgTelifyEditNumber", "centerscreen,chrome,modal", argObj);
+	if (argObj.fOK) {
+		this.updateDialHistory(argObj.cc);
+		var dial = objTelifyUtil.prefixNumber(argObj.cc, argObj.nr, "");
+		objTelify.dialNumber(dial);
+	}
+},
+
+
+dialMenuSelection: function(cc, nr)
+{
+	this.updateDialHistory(cc);
+	var dial = objTelifyUtil.prefixNumber(cc, nr, "");
+	objTelify.dialNumber(dial);
+},
+
+
+createTargetCountryInfo: function(prefix)
+{
+	var cstring = objTelifyUtil.getCountryListString(prefix);
+	if (cstring) return "\n" + objTelifyPrefs.telStrings.getString('country_code') + ": " + cstring;
+	return "";
+},
+
+
+setDialMenuItem: function(item, code, nr)
+{
+	var label = objTelifyUtil.prefixNumber(code, nr, "-");
+	item.setAttribute("label", label);
+	var cmd = "objTelify.dialMenuSelection('"+code+"','"+nr+"');";
+	item.setAttribute("oncommand", cmd);
+	label = objTelifyUtil.substArgs(objTelifyPrefs.telStrings.getString('call_arg'), label);
+	label += objTelify.createTargetCountryInfo(code);
+	item.setAttribute("tooltiptext", label);
+	item.setAttribute("image", "chrome://telify/content/flag/"+code.substr(1)+".png");
+},
+
+
+modifyDialPopup: function(cc, nr, id)
+{
+	var item = document.getElementById("idTelify_"+id);
+	var sep = document.getElementById("idTelify_sep_"+id);
+	var numShown = 0;
+
+	if (cc) {
+		this.setDialMenuItem(item, cc, nr);
+	} else {
+	  item.setAttribute("label", nr);
+		var label = objTelifyUtil.substArgs(objTelifyPrefs.telStrings.getString('call_arg'), nr);
+		item.setAttribute("tooltiptext", label);
+	  item.removeAttribute("image");
+	  item.setAttribute("oncommand", "objTelify.dialNumber('"+nr+"')");
+	}
+
+	item = document.getElementById("idTelify_edit_"+id);
+	if (cc) {
+	  item.setAttribute("oncommand", "objTelify.showEditNumberDialog('"+cc+"','"+nr+"')");
+	} else {
+	  item.setAttribute("oncommand", "objTelify.showEditNumberDialog(null,'"+nr+"')");
+	}
+
+	var tldcc = objTelifyUtil.tld2cc(objTelifyUtil.getHostTLD());
+	item = document.getElementById("idTelify_tld_"+id);
+	if (!cc && tldcc) {
+		item.setAttribute("collapsed", false);
+		this.setDialMenuItem(item, tldcc, nr);
+		numShown = 1;
+	} else {
+		item.setAttribute("collapsed", true);
+		tldcc = null;
+	}
+
+	this.getDialHistory();
+
+	if (!cc && nr.charAt(0) != '+') {
+		var numLeft = objTelifyPrefs.numHistory;
+		if (tldcc) numLeft--;
+		for (var i=0; i<objTelifyPrefs.maxHistory; i++) {
+			item = document.getElementById("idTelify_"+id+i);
+			if (numLeft == 0 || this.dialHistory[i] == null || this.dialHistory[i].length == 0 || this.dialHistory[i] == cc || this.dialHistory[i] == tldcc) {
+				item.setAttribute("collapsed", true);
+			} else {
+				item.setAttribute("collapsed", false);
+				this.setDialMenuItem(item, this.dialHistory[i], nr);
+				numLeft--;
+				numShown++;
+			}
+		}
+	} else {
+		for (var i=0; i<objTelifyPrefs.maxHistory; i++) {
+			item = document.getElementById("idTelify_"+id+i);
+			item.setAttribute("collapsed", true);
+		}
+	}
+	sep.setAttribute("collapsed", numShown == 0);
+},
+
+
+showDialPopup: function(target, cc, nr)
+{
+	var menu = document.getElementById("idTelify_popup_dial");
+	var nr_parts = objTelifyUtil.splitPhoneNr(nr);
+	this.modifyDialPopup(cc, nr, "dial");
+	menu.openPopup(target, "after_start", 0, 0, true, false);
+},
+
+
+onClick: function(event)
+{
+	if (event.button != 0) return;
+	var class = event.target.getAttribute("class");
+	if (class != "telified") return;
+	event.preventDefault();
+	var nr = event.target.getAttribute("nr");
+	var nr_parts = objTelifyUtil.splitPhoneNr(nr);
+	if (event.button == 0) {
+		if (nr_parts[0] && objTelifyPrefs.fDialCCDirect) {
+			objTelify.dialNumber(nr);
+		} else {
+			objTelify.showDialPopup(event.target, nr_parts[0], nr_parts[1]);
+		}
+	}
+	if (event.button == 2) {
+		objTelify.showDialPopup(event.target, nr_parts[0], nr_parts[1]);
+	}
+},
+
+
+getNodeBackgroundColor: function(node)
+{
+	node = node.parentNode;
+	if (node == null) return null;
+	if (node.nodeType == Node.ELEMENT_NODE) {
+		var style = content.document.defaultView.getComputedStyle(node, "");
+		var image = style.getPropertyValue("background-image");
+		if (image && image != "none") return null;
+		var color = style.getPropertyValue("background-color");
+		if (color && color != "transparent") return color;
+	}
+	return this.getNodeBackgroundColor(node);
+},
+
+
+getNodeColor: function(node)
+{
+	node = node.parentNode;
+	if (node == null) return null;
+	if (node.nodeType == Node.ELEMENT_NODE) {
+		var style = content.document.defaultView.getComputedStyle(node, "");
+		var color = style.getPropertyValue("color");
+		if (color && color != "transparent") return color;
+	}
+	return this.getNodeColor(node);
+},
+
+
+formatPhoneNr: function(phonenr)
+{
+	var substList = [
+		["  ", " "],	// double spaces to single space
+		[this.sc_nbsp, " "],	// non-breaking space to plain old space
+		["+ ", "+"],	// remove space after +
+		["--", "-"],	// double dashes to single dash
+		["(0)", " "],	// remove optional area code prefix
+		["[0]", " "],	// remove optional area code prefix
+		["-/", "/"],
+		["/-", "/"],
+		["( ", "("],
+		[" )", ")"],
+		["\r", " "],
+		["\n", " "],
+	];
+
+	// replace dash-like chars with dashes
+	for (var i=0; i<phonenr.length; i++) {
+		var c = phonenr.charAt(i);
+		if (this.token_dash.indexOf(c) >= 0) {
+			phonenr = phonenr.substr(0, i) + "-" + phonenr.substr(i+1);
+		}
+	}
+
+	const MAXLOOP = 100; // safety bailout
+	var nChanged;
+
+	nChanged = 1;
+	for (var j=0; nChanged > 0 && j < MAXLOOP; j++) {
+		nChanged = 0;
+		for (var i=0; i<substList.length; i++) {
+			var index;
+			while ((index = phonenr.indexOf(substList[i][0])) >= 0) {
+				phonenr = phonenr.substr(0, index) + substList[i][1] + phonenr.substr(index+substList[i][0].length);
+				nChanged++;
+			}
+		}
+	}
+
+	return phonenr;
+},
+
+
+convertVanityNr: function(phonenr)
+{
+	const tab_alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+	const tab_digit = "22233344455566677778889999";
+	var newnr = "";
+	for (var i=0; i<phonenr.length; i++) {
+		var c = phonenr.charAt(i);
+		var index = tab_alpha.indexOf(c);
+		if (index >= 0) c = tab_digit.substr(index, 1);
+		newnr += c;
+	}
+	return newnr;
+},
+
+
+reject: function(str, reason)
+{
+	if (objTelifyPrefs.fDebug == false) return;
+	var msg = "Telify: reject '"+str+"' reason: "+reason;
+	objTelifyUtil.logmsg(msg);
+},
+
+
+basechar_tab: [
+	String.fromCharCode(0xa0) +
+	String.fromCharCode(0x2013) +
+	String.fromCharCode(0x2014) +
+	String.fromCharCode(0x2212),
+	" ---"
+],
+
+
+basechar: function(c)
+{
+	var index = this.basechar_tab[0].indexOf(c);
+	if (index >= 0) c = this.basechar_tab[1].charAt(index);
+	return c;
+},
+
+
+telifyTextNode: function(node)
+{
+	if (node == null) return 0;
+	var text = node.data;
+	var len = text.length;
+	if (len < this.digits_min) return 0;
+	var hlFactor = objTelifyPrefs.highlight/200.0;
+
+	for (var i=0; i<len; i++) {
+		var c = text.charAt(i);
+
+		if (this.token_trigger.indexOf(c) < 0) continue;
+
+		c = this.basechar(c);
+
+		var str = "" + c;
+		var strlen = 1;
+		var last_c = c;
+		var ndigits = (objTelifyUtil.isdigit(c) ? 1 : 0);
+		var index;
+		var fStartsWithCountryCode = false;
+		var CCfromPattern = null;
+
+		// gather allowed chars
+		while (strlen < len-i) {
+			c = text.charAt(i+strlen);
+			c = this.basechar(c);
+			if ((c == '+' && ndigits == 0) || (this.token_part.indexOf(c) >= 0)) {
+				if (c == last_c && c!=' ') break;
+			} else {
+				if (!objTelifyUtil.isdigit(c)) break;
+				ndigits++;
+			}
+			str += c;
+			strlen++;
+			last_c = c;
+		}
+
+		// check against digit count min value
+		if (ndigits < this.digits_min) {
+			this.reject(str, "less than "+this.digits_min+" digits");
+			i += strlen - 1; continue;
+		}
+
+		// check allowed prev token
+		if (i > 0) {
+			var prev_c = text.charAt(i-1);
+			if (this.token_disallowed_prev.indexOf(prev_c) >= 0) {
+				this.reject(str, "unallowed previous token (reject list)");
+				i += strlen - 1; continue;
+			}
+			if ((prev_c >= 'a' && prev_c <= "z") || (prev_c >= 'A' && prev_c <= "Z")) {
+				this.reject(str, "unallowed previous token (letter)");
+				i += strlen - 1; continue;
+			}
+		}
+
+		// check if phone number starts with country code
+		for (var j=0; j<telify_country_data.length; j++) {
+			var cclen = telify_country_data[j][0].length;
+			if (cclen < 2 || cclen > 4) continue;
+			var pattern = telify_country_data[j][0].substr(1);
+			var plen = pattern.length;
+			if (str.substr(0, plen) != pattern) continue;
+			var c = str.charAt(plen);
+			if (this.token_sep.indexOf(c) < 0) continue;
+			fStartsWithCountryCode = true;
+			break;
+		}
+
+		// check against special local patterns
+		for (var j=0; j<this.inclLocalList.length; j++) {
+			var res = this.inclLocalList[j][0].exec(str);
+			if (res) {CCfromPattern = this.inclLocalList[j][1]; break;}
+		}
+
+		// check if phone number starts with allowed token
+		if (CCfromPattern == null && fStartsWithCountryCode == false && this.token_start.indexOf(str.charAt(0)) < 0) {
+			this.reject(str, "unallowed start token (reject list)");
+			i += strlen - 1; continue;
+		}
+
+		// trim chars at end of string up to an unmatched opening bracket
+		index = -1;
+		for (var j=strlen-1; j>=0; j--) {
+			c = str.charAt(j);
+			if (c == ')') break;
+			if (c == '(') {index = j; break;}
+		}
+		if (index == 0) continue;
+		if (index > 0) {
+			str = str.substr(0, index);
+			strlen = str.length;
+		}
+
+		// check against digit count max value (after we have removed unnecessary digits)
+		if (objTelifyUtil.countDigits(str) > this.digits_max) {
+			this.reject(str, "more than "+this.digits_max+" digits");
+			i += strlen - 1; continue;
+		}
+
+		// trim non-digit chars at end of string
+		while (str.length > 0) {
+			c = str.charAt(str.length-1);
+			if (!objTelifyUtil.isdigit(c)) {
+				str = str.substr(0, str.length-1);
+				strlen--;
+			} else break;
+		}
+
+		// check allowed post token
+		var post_c = text.charAt(i+strlen);
+		if (post_c) {
+			if (this.token_disallowed_post.indexOf(post_c) >= 0) {
+				this.reject(str, "unallowed post token (reject list)");
+				i += strlen - 1; continue;
+			}
+			if ((post_c >= 'a' && post_c <= "z") || (post_c >= 'A' && post_c <= "Z")) {
+				this.reject(str, "unallowed post token (letter)");
+				i += strlen - 1; continue;
+			}
+		}
+
+		// check if this is just a number in braces
+		// first check for unnecessary opening braces
+		if (str.substr(0, 1) == "(" && str.indexOf(")") < 0) {
+			str = str.substr(1);
+			i++;
+			strlen--;
+			// now check if it still starts with allowed token
+			if (this.token_start.indexOf(str.charAt(0)) < 0) {
+				this.reject(str, "unallowed start token (after brace removal)");
+				i += strlen - 1;
+				continue;
+			}
+		}
+
+		// check against blacklist patterns (date, time ranges etc.)
+		index = -1;
+		for (var j=0; j<this.exclPatternList.length; j++) {
+			var res = this.exclPatternList[j].exec(str);
+			if (res) {index = j; break;}
+		}
+		if (index >= 0) {this.reject(str, "blacklisted pattern #"+index); i += strlen - 1; continue;}
+
+
+		// ----------------------------------------------------------------
+
+		var display = this.formatPhoneNr(str);
+		var href = objTelifyUtil.stripNumber(display);
+		if (fStartsWithCountryCode) href = "+"+href;
+		//if (CCfromPattern) href = CCfromPattern + href;
+
+		// insert link into DOM
+
+		var node_prev = content.document.createTextNode(text.substr(0, i));
+		var node_after = content.document.createTextNode(text.substr(i+strlen));
+
+		//alert("match="+str);
+
+		var node_anchor = content.document.createElement("a");
+
+		if (hlFactor > 0.0) {
+			var color = objTelifyUtil.parseColor(this.getNodeColor(node));
+			if (color == null) color = new Array(0,0,0);
+			var bgcolor = objTelifyUtil.parseColor(this.getNodeBackgroundColor(node));
+			if (bgcolor == null) bgcolor = new Array(255,255,255);
+			for (var i=0; i<3; i++) {
+				color[i] = color[i] + hlFactor * (this.hilite_color[i] - color[i]);
+				bgcolor[i] = bgcolor[i] + hlFactor * (this.hilite_bgcolor[i] - bgcolor[i]);
+			}
+			var style = "color:#"+objTelifyUtil.color2hex(color)+";background-color:#"+objTelifyUtil.color2hex(bgcolor)+";-moz-border-radius:3px";
+			node_anchor.setAttribute("style", style);
+		}
+
+		node_anchor.setAttribute("title", objTelifyPrefs.telStrings.getString('link_title'));
+		node_anchor.setAttribute("class", "telified");
+		node_anchor.setAttribute("nr", href);
+		node_anchor.setAttribute("href", objTelifyUtil.createDialURL(href));
+
+		var node_text = content.document.createTextNode(str);
+		node_anchor.appendChild(node_text);
+
+		var parentNode = node.parentNode;
+		parentNode.replaceChild(node_after, node);
+		parentNode.insertBefore(node_anchor, node_after);
+		parentNode.insertBefore(node_prev, node_anchor);
+
+		return 1;
+	}
+
+	return 0;
+},
+
+
+recurseNode: function(node)
+{
+	if (node == null) return 0; // safety
+	if (node.nodeType == Node.TEXT_NODE) {
+		return this.telifyTextNode(node);
+	} else {
+		var nChanged = 0;
+		//objTelifyUtil.logmsg("node type="+node.nodeType+" "+node.tagName+" (childs:"+node.childNodes.length+")");
+		if (node.nodeType == Node.ELEMENT_NODE) {
+			var tagName = node.tagName.toLowerCase();
+			if (objTelifyPrefs.excludedTags.indexOf(tagName) >= 0) return 0;
+		}
+		for (var i=0; i<node.childNodes.length; i++) {
+			nChanged += this.recurseNode(node.childNodes[i]);
+		}
+		if (node.contentDocument) {
+			nChanged += this.recurseNode(node.contentDocument.body);
+			node.contentDocument.addEventListener("click", objTelify.onClick, false);
+		}
+	}
+	return nChanged;
+},
+
+
+parsePage: function(event)
+{
+	if (!objTelifyPrefs.fActive) return;
+	//objTelifyUtil.logmsg("eventPhase: "+event.eventPhase+"\n"+content.document.URL);
+	if (content.document.body == null) return;
+	if (event && event.eventPhase != 1) return;
+
+	var host = objTelifyUtil.getHost();
+	if (host && objTelifyPrefs.excludedHosts.indexOf(host) >= 0) return;
+
+	//if (content.document.body.getAttribute('telified') == 1) return;
+	//content.document.body.setAttribute('telified', 1);
+
+/*
+	var nChanged = 0;
+	var duration = (new Date()).getTime();
+	nChanged = objTelify.recurseNode(content.document.body);
+	duration = (new Date()).getTime() - duration;
+	var label = "Telify\n" + objTelifyPrefs.telStrings.getString('converted') + ": " + nChanged + " (" + duration + " ms)";
+	document.getElementById("idTelify_statusicon").setAttribute("tooltiptext", label);
+*/
+
+	window.setTimeout("objTelify.recurseNode(content.document.body)",	0);
+
+	content.document.addEventListener("click", objTelify.onClick, false);
+},
+
+
+init: function(event)
+{
+	window.addEventListener('load', objTelify.init, false);
+	objTelifyPrefs.initTelifyPrefs();
+	objTelify.setStatus();
+	getBrowser().addEventListener("load", objTelify.parsePage, true);
+	document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", objTelify.modifyPopup, false);
+	objTelifyUtil.addScheme("tel");
+	objTelifyUtil.localizeCountryData();
+	objTelifyUtil.getAddonVersion();
+}
+
+};
+
+
+window.addEventListener('load', objTelify.init, false);
+
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/util.js b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/util.js
new file mode 100644
index 0000000000..838cd91afb
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/util.js
@@ -0,0 +1,516 @@
+/*
+Creative Commons License: Attribution-No Derivative Works 3.0 Unported
+http://creativecommons.org/licenses/by-nd/3.0/
+(c)2009 Michael Koch
+*/
+
+var objTelifyUtil = {
+
+getBrowser: function()
+{
+	var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
+	var mainWindow = wm.getMostRecentWindow("navigator:browser");
+	var browser =  mainWindow.getBrowser();
+	return browser;
+},
+
+
+getAddonVersion: function()
+{
+	var gExtensionManager = Components.classes["@mozilla.org/extensions/manager;1"]
+		.getService(Components.interfaces.nsIExtensionManager);
+	return gExtensionManager.getItemForID("{6c5f349a-ddda-49ad-bdf0-326d3fe1f938}").version;
+},
+
+
+createDialURL: function(nr)
+{
+	var url;
+	if (nr.charAt(0) == '+') {
+		if (objTelifyPrefs.idd_prefix.length > 0) {
+			nr = objTelifyPrefs.idd_prefix + nr.substr(1);
+		}	else if (objTelifyPrefs.hrefType == objTelifyPrefs.HREFTYPE_CUSTOM && !objTelifyPrefs.fDontEscapePlus) {
+			nr = "%2B" + nr.substr(1);
+		}
+	}
+	if (objTelifyPrefs.hrefType == objTelifyPrefs.HREFTYPE_CUSTOM) {
+		url = objTelifyPrefs.custom_url;
+		url = objTelifyUtil.replaceRefs(url, 0, nr);
+		for (var i=1; i<objTelifyPrefs.NUM_CUSTOM_PARAMS+1; i++) {
+			url = objTelifyUtil.replaceRefs(url, i, objTelifyPrefs.custom_param[i]);
+		}
+	} else {
+		url = objTelifyPrefs.protoList[objTelifyPrefs.hrefType]+":"+nr;
+	}
+	return url;
+},
+
+
+token_href: "+0123456789",
+
+stripNumber: function(phonenr)
+{
+	var newnr = "";
+	for (var i=0; i<phonenr.length; i++) {
+		var c = phonenr.charAt(i);
+		if (this.token_href.indexOf(c) >= 0) newnr += c;
+	}
+	return newnr.substr(0, objTelify.digits_max);
+},
+
+
+code2ndd_hashtable: null,
+
+create_code2ndd_hashtable: function()
+{
+	this.code2ndd_hashtable = new Hashtable();
+	for (var i=0; i<telify_country_data.length; i++) {
+		if (telify_country_data[i][0] == "") continue;
+		this.code2ndd_hashtable.put(telify_country_data[i][0], telify_country_data[i][3]);
+	}
+},
+
+
+prefixNumber: function(prefix, nr, sep)
+{
+	if (prefix == null || prefix == "") return this.stripNumber(nr);
+	if (this.code2ndd_hashtable == null) this.create_code2ndd_hashtable();
+	var ndd = this.code2ndd_hashtable.get(prefix);
+	if ((ndd.length > 0) && (nr.substr(0, ndd.length) == ndd)) nr = nr.substr(ndd.length);
+	return this.stripNumber(prefix) + sep + this.stripNumber(nr);
+},
+
+
+trim: function(s)
+{
+  s = s.replace(/^\s*(.*)/, "$1");
+  s = s.replace(/(.*?)\s*$/, "$1");
+  return s;
+},
+
+
+localizeCountryData: function()
+{
+/*
+	for (var i=0; i < telify_country_data.length; i++) {
+		for (var j=0; j<telify_country_locale.length; j++) {
+			if (telify_country_data[i][1] == telify_country_locale[j][0]) {
+				telify_country_data[i][1] = telify_country_locale[j][1];
+				break;
+			}
+		}
+	}
+*/
+	var hashtable = new Hashtable();
+	for (var i=0; i<telify_country_locale.length; i++) {
+		hashtable.put(telify_country_locale[i][0], telify_country_locale[i][1]);
+	}
+	for (var i=0; i<telify_country_data.length; i++) {
+		var value = hashtable.get(telify_country_data[i][1]);
+		if (value) telify_country_data[i][1] = value;
+	}
+},
+
+
+tld_hashtable: null,
+
+create_tld_hashtable: function()
+{
+	this.tld_hashtable = new Hashtable();
+	for (var i=0; i<telify_country_data.length; i++) {
+		if (telify_country_data[i][2] == "") continue;
+		var tld_list = telify_country_data[i][2].toLowerCase().split(",");
+		for (var j=0; j<tld_list.length; j++) {
+			tld_list[j] = this.trim(tld_list[j]);
+			this.tld_hashtable.put(tld_list[j], telify_country_data[i][0]);
+		}
+	}
+},
+
+
+tld2cc: function(tld)
+{
+	if (this.tld_hashtable == null) this.create_tld_hashtable();
+	return this.tld_hashtable.get(tld);
+},
+
+
+splitPhoneNr: function(nr)
+{
+	var index = -1;
+	var maxlen = 0;
+	var idd_list = ["00", "011"];
+	var oldnr = nr;
+
+	if (nr.charAt(0) != '+') {
+		for (var i=0; i<idd_list.length; i++) {
+			if (nr.substr(0, idd_list[i].length) == idd_list[i]) {
+				nr = "+" + nr.substr(idd_list[i].length);
+				break;
+			}
+		}
+	}
+	if (nr.charAt(0) != '+') return [null, oldnr];
+	for (var i=0; i<telify_country_data.length; i++) {
+		if (nr.substr(0, telify_country_data[i][0].length) == telify_country_data[i][0]) {
+			if (telify_country_data[i][0].length > maxlen) {
+				index = i;
+				maxlen = telify_country_data[i][0].length;
+			}
+		}
+	}
+	if (index >= 0) {
+		var cc = telify_country_data[index][0];
+		return [cc, nr.substr(cc.length)];
+	}
+	return [null, oldnr];
+},
+
+
+code2name_hashtable: null,
+
+create_code2name_hashtable: function()
+{
+	this.code2name_hashtable = new Hashtable();
+	for (var i=0; i<telify_country_data.length; i++) {
+		if (telify_country_data[i][0] == "") continue;
+		var name = telify_country_data[i][1];
+		var prev = this.code2name_hashtable.get(telify_country_data[i][0]);
+		if (prev) name = prev + ", " + name;
+		this.code2name_hashtable.put(telify_country_data[i][0], name);
+	}
+},
+
+
+getCountryListString: function(prefix)
+{
+	if (this.code2name_hashtable == null) this.create_code2name_hashtable();
+	return this.code2name_hashtable.get(prefix);
+},
+
+
+getHost: function()
+{
+	try {
+		return content.document.location.host.toLowerCase();
+	} catch (e) {
+		return null;
+	}
+},
+
+
+getHostTLD: function()
+{
+	var host = this.getHost();
+	if (host) {
+		var index = host.lastIndexOf('.');
+		if (index >= 0) {
+			var tld = host.substr(index+1);
+			if (tld.length) return tld;
+		}
+	}
+	return null;
+},
+
+
+MB_MASK: 0xff, MB_OK: 1, MB_CANCEL: 2,
+MB_ICON_MASK: 0xff00, MB_ICON_INFO: 0, MB_ICON_WARNING: 0x0100, MB_ICON_ERROR: 0x0200, MB_ICON_ASK: 0x0300,
+
+showMessageBox: function(title, msg, flags)
+{
+	var argObj = {title: title, msg: msg, flags: flags, fResult: true};
+	window.openDialog("chrome://telify/content/messagebox.xul", "dlgTelifyMessageBox", "centerscreen,chrome,modal", argObj).focus();
+	return argObj.fResult;
+},
+
+
+consoleService: null,
+
+logmsg: function(msg) {
+	if (this.consoleService == null) {
+		this.consoleService = Components.classes["@mozilla.org/consoleservice;1"];
+		this.consoleService = this.consoleService.getService(Components.interfaces.nsIConsoleService);
+	}
+	this.consoleService.logStringMessage(msg);
+},
+
+
+logerror: function(msg) {
+  Components.utils.reportError(msg);
+},
+
+
+arrayRemove: function(a, v)
+{
+	for (var i=0; i<a.length; i++) {
+		if (a[i] == v) {
+			a.splice(i, 1);
+			i--;
+		}
+	}
+},
+
+
+replaceRefs: function(string, nr, param)
+{
+	var index;
+	while ((index = string.indexOf("$"+nr)) >= 0 && string.charAt(index-1) != '\\') {
+		string = string.substr(0, index) + param + string.substr(index+2);
+	}
+	return string;
+},
+
+
+substArgs: function(text)
+{
+	var newText = "";
+	for (var i=1; i<arguments.length && i<10; i++) {
+		for (var j=0; j<text.length; j++) {
+			var c = text.charAt(j);
+			if (c == '$') {
+				c = text.charAt(j+1);
+				if (c >= '1' && c <= '9') {
+					var index = c - '0';
+					if (index < arguments.length) {
+						newText += arguments[index];
+					} else {
+						this.logerror("substArgs("+text+"): argument for $"+index+" missing");
+					}
+					j++;
+				} else {
+					newText += c;
+				}
+			} else {
+				newText += c;
+			}
+		}
+	}
+	return newText;
+},
+
+
+setIdAttr: function(name, value)
+{
+	for (var i=2; i<arguments.length; i++) {
+		var e = document.getElementById(arguments[i]);
+		if (e) {
+			e.setAttribute(name, value);
+		} else {
+			this.logerror("unknown element '"+arguments[i]+"'");
+		}
+	}
+},
+
+
+countDigits: function(text)
+{
+	var count = 0;
+	for (var i=0; i<text.length; i++) {
+		var c = text.charAt(i);
+		if (c >= '0' && c <= '9') count++;
+	}
+	return count;
+},
+
+
+isdigit: function(c)
+{
+	return ("0123456789".indexOf(c) >= 0);
+},
+
+
+trimInt: function(value, min, max)
+{
+	if (value < min) return min;
+	if (value > max) return max;
+	return value;
+},
+
+
+parseColor: function(text)
+{
+	var exp, res, color;
+
+	if (text == null) return null;
+
+	exp = /^rgb *\( *(\d{1,3}) *, *(\d{1,3}) *, *(\d{1,3}) *\)$/;
+	res = exp.exec(text);
+	if (res) {
+		color = new Array(parseInt(res[1]), parseInt(res[2]), parseInt(res[3]));
+		for (var i=0; i<3; i++) {
+			if (color[i] < 0) color[i] = 0;
+			if (color[i] > 255) color[i] = 255;
+		}
+		return color;
+	}
+
+	exp = /^#?([\da-f]{2})([\da-f]{2})([\da-f]{2})$/i;
+	res = exp.exec(text);
+	if (res) {
+		color = new Array(parseInt(res[1], 16), parseInt(res[2], 16), parseInt(res[3], 16));
+		return color;
+	}
+
+	exp = /^#?([\da-f])([\da-f])([\da-f])$/i;
+	res = exp.exec(text);
+	if (res) {
+		color = new Array(parseInt(res[1], 16), parseInt(res[2], 16), parseInt(res[3], 16));
+		for (var i=0; i<3; i++) color[i] = color[i]*16+color[i];
+		return color;
+	}
+
+	return null;
+},
+
+
+color2hex: function(color)
+{
+	var hex;
+
+	if (color == null || color.length != 3) return "";
+	for (var i=0, hex=""; i<3; i++) {
+		var d = "0"+Math.floor(color[i]).toString(16);
+		hex += d.substr(d.length - 2, 2);
+	}
+	return hex;
+},
+
+
+esc2xml: function(string)
+{
+	var substList = [
+		["&", "&amp;"],	// here be dragons: must be first element in list
+		["<", "&lt;"],
+		[">", "&gt;"],
+		["\'", "&apos;"],
+		["\"", "&quot;"],
+		["Ä", "&#196;"],
+		["Ö", "&#214;"],
+		["Ü", "&#220;"],
+		["ä", "&#228;"],
+		["ö", "&#246;"],
+		["ü", "&#252;"],
+		["ß", "&#223;"],
+	];
+
+	for (var i=0; i<substList.length; i++) {
+		var index;
+		while ((index = string.indexOf(substList[i][0])) >= 0) {
+			string = string.substr(0, index) + substList[i][1] + string.substr(index+substList[i][0].length);
+		}
+	}
+
+	return string;
+},
+
+
+iso2utf8: function(s)
+{
+	s = s.split("");
+	for (var i=0; i<s.length; i++) {
+		var c = s[i].charCodeAt(0);
+		if (c > 127) s[i] = String.fromCharCode(0xc0 | ((c >> 6) & 3)) + String.fromCharCode(0x80 | (c & 0x3f));
+	}
+	return s.join("");
+},
+
+addScheme: function(scheme)
+{
+	var createNC = function(aProperty) {return "http://home.netscape.com/NC-rdf#" + aProperty;};
+
+	var RDF = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService();
+	var IRDFService = RDF.QueryInterface(Components.interfaces.nsIRDFService);
+
+	var ContainerUtils = Components.classes["@mozilla.org/rdf/container-utils;1"].getService();
+	var IRDFContainerUtils = ContainerUtils.QueryInterface(Components.interfaces.nsIRDFContainerUtils);
+
+  var Container = Components.classes["@mozilla.org/rdf/container;1"].createInstance();
+	var IRDFContainer = Container.QueryInterface(Components.interfaces.nsIRDFContainer);
+
+  const mimeTypes = "UMimTyp";
+  var fileLocator = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties);
+  var file = fileLocator.get(mimeTypes, Components.interfaces.nsIFile);
+  var ioService = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
+  var fileHandler = ioService.getProtocolHandler("file").QueryInterface(Components.interfaces.nsIFileProtocolHandler);
+  var datasource = IRDFService.GetDataSource(fileHandler.getURLSpecFromFile(file));
+	var irds = datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
+
+	var about, property, value;
+
+  about = IRDFService.GetResource("urn:schemes");
+  property = IRDFService.GetResource(createNC("Protocol-Schemes"));
+	value = IRDFService.GetResource("urn:schemes:root");
+  datasource.Assert(about, property, value, true);
+
+	about = IRDFService.GetResource("urn:schemes:root");
+	if (IRDFContainerUtils.IsSeq(datasource, about) == false) {
+	  datasource.Assert(about, null, null, true);
+		IRDFContainerUtils.MakeSeq(datasource, about);
+	}
+	IRDFContainer.Init(datasource, about);
+	var element = IRDFService.GetResource("urn:scheme:"+scheme);
+	if (IRDFContainer.IndexOf(element) < 0) {
+		IRDFContainer.AppendElement(element);
+	}
+
+  about = IRDFService.GetResource("urn:scheme:"+scheme);
+  property = IRDFService.GetResource(createNC("value"));
+  value = IRDFService.GetLiteral(scheme);
+  datasource.Assert(about, property, value, true);
+  property = IRDFService.GetResource(createNC("handlerProp"));
+	value = IRDFService.GetResource("urn:scheme:handler:"+scheme)
+  datasource.Assert(about, property, value, true);
+
+  about = IRDFService.GetResource("urn:scheme:handler:"+scheme);
+  property = IRDFService.GetResource(createNC("alwaysAsk"));
+  value = IRDFService.GetLiteral("true");
+  datasource.Assert(about, property, value, true);
+  property = IRDFService.GetResource(createNC("useSystemDefault"));
+  value = IRDFService.GetLiteral("false");
+  datasource.Assert(about, property, value, true);
+/*
+  property = IRDFService.GetResource(createNC("possibleApplication"));
+	value = IRDFService.GetResource("urn:scheme:possibleApplication:tel");
+  datasource.Assert(about, property, value, true);
+
+  about = IRDFService.GetResource("urn:scheme:possibleApplication:tel");
+  property = IRDFService.GetResource(createNC("prettyName"));
+  value = IRDFService.GetLiteral("Nicht konfiguriert");
+  datasource.Assert(about, property, value, true);
+  property = IRDFService.GetResource(createNC("uriTemplate"));
+  value = IRDFService.GetLiteral("urn:handler:web:http://www.mike-koch.de");
+  datasource.Assert(about, property, value, true);
+*/
+	irds.Flush();
+}
+
+
+/*
+  <RDF:Description RDF:about="urn:schemes">
+    <NC:Protocol-Schemes RDF:resource="urn:schemes:root"/>
+  </RDF:Description>
+
+  <RDF:Seq RDF:about="urn:schemes:root">
+    <RDF:li RDF:resource="urn:scheme:webcal"/>
+    <RDF:li RDF:resource="urn:scheme:mailto"/>
+    <RDF:li RDF:resource="urn:scheme:callto"/>
+    <RDF:li RDF:resource="urn:scheme:tel"/>
+  </RDF:Seq>
+
+  <RDF:Description RDF:about="urn:scheme:tel" NC:value="tel">
+    <NC:handlerProp RDF:resource="urn:scheme:handler:tel"/>
+  </RDF:Description>
+
+  <RDF:Description RDF:about="urn:scheme:handler:tel" NC:alwaysAsk="true">
+    <NC:externalApplication RDF:resource="urn:scheme:externalApplication:tel"/>
+  </RDF:Description>
+
+  <RDF:Description RDF:about="urn:scheme:externalApplication:tel"
+                   NC:prettyName="3GP_Converter.exe"
+                   NC:path="C:\Programme\3GP_Converter033\3GP_Converter.exe" />
+
+*/
+
+
+};
+
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/warn32.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/warn32.png
new file mode 100644
index 0000000000000000000000000000000000000000..d5f6551d940eb76b48597f3f9bf09e2a3395b090
GIT binary patch
literal 2125
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

literal 0
HcmV?d00001

diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/de-DE/country_locale.js b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/de-DE/country_locale.js
new file mode 100644
index 0000000000..57e1c7035d
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/de-DE/country_locale.js
@@ -0,0 +1,158 @@
+// caveat: save as UTF-8
+var telify_country_locale = [
+['U.S. Virgin Islands', 'Amerikanische Jungferninseln'],
+['Northern Mariana Islands', 'Nördliche Marianen'],
+['American Samoa', 'Amerikanisch-Samoa'],
+['Canada', 'Kanada'],
+['Antigua and Barbuda', 'Antigua und Barbuda'],
+['British Virgin Islands', 'Britische Junferninseln'],
+['Cayman Islands', 'Kaimaninseln'],
+['Dominican Republic', 'Dominikanische Republik'],
+['Jamaica', 'Jamaika'],
+['Saint Kitts and Nevis', 'Saint Kitts und Nevis'],
+['Saint Lucia', 'St. Lucia'],
+['Saint Vincent and the Grenadines', 'St. Vincent und die Grenadinen'],
+['Trinidad and Tobago', 'Trinidad und Tobago'],
+['Turks and Caicos Islands', 'Turks- und Caicosinseln'],
+['Egypt', 'Ägypten'],
+['Morocco', 'Marokko'],
+['Algeria', 'Algerien'],
+['Tunisia', 'Tunesien'],
+['Libya', 'Libyen'],
+['Mauritania', 'Mauretanien'],
+['Ivory Coast', 'Elfenbeinküste'],
+['Ghana', 'Gana'],
+['Chad', 'Tschad'],
+['Central African Republic', 'Zentralafrikanische Republik'],
+['Cameroon', 'Kamerun'],
+['Cape Verde', 'Kap Verde'],
+['São Tomé and Príncipe', 'São Tomé und Príncipe'],
+['Equatorial Guinea', 'Äquatorialguinea'],
+['Gabon', 'Gabun'],
+['Congo (Republic)', 'Kongo (Republik)'],
+['Congo (Democratic Republic)', 'Kongo (Demokratische Republik)'],
+['Ascension Island', 'Ascension'],
+['Seychelles', 'Seychellen'],
+['Rwanda', 'Ruanda'],
+['Ethiopia', 'Äthiopien'],
+['Djibouti', 'Dschibuti'],
+['Kenya', 'Kenia'],
+['Tanzania', 'Tansania'],
+['Mozambique', 'Mosambik'],
+['Zambia', 'Sambia'],
+['Madagascar', 'Madagaskar'],
+['Zimbabwe', 'Simbabwe'],
+['Botswana', 'Botsuana'],
+['Swaziland', 'Swasiland'],
+['Comoros', 'Komoren'],
+['South Africa', 'Südafrika'],
+['Saint Helena', 'St.Helena'],
+['Faroe Islands', 'Färöer'],
+['Greenland', 'Grönland'],
+['Greece', 'Griechenland'],
+['Netherlands', 'Niederlande'],
+['Belgium', 'Belgien'],
+['France', 'Frankreich'],
+['Spain', 'Spanien'],
+['Luxembourg', 'Luxemburg'],
+['Ireland', 'Irland'],
+['Iceland', 'Island'],
+['Albania', 'Albanien'],
+['Cyprus (South)', 'Zypern (Süden)'],
+['Finland', 'Finnland'],
+['Bulgaria', 'Bulgarien'],
+['Hungary', 'Ungarn'],
+['Lithuania', 'Litauen'],
+['Latvia', 'Lettland'],
+['Estonia', 'Estland'],
+['Moldova', 'Moldawien'],
+['Armenia', 'Armenien'],
+['Nagorno-Karabakh', 'Bergkarabach'],
+['Nagorno-Karabakh (Mobile)', 'Bergkarabach (Handynetz)'],
+['Belarus', 'Weißrussland'],
+['Kosovo (Mobile)', 'Kosovo (Handynetz)'],
+['Serbia', 'Serbien'],
+['Croatia', 'Kroatien'],
+['Slovenia', 'Slowenien'],
+['Kosovo (Mobile)', 'Kosovo (Handynetz)'],
+['Bosnia and Herzegovina', 'Bosnien und Herzegowina'],
+['Macedonia', 'Mazedonien'],
+['Italy and Vatican City', 'Italien und Vatikanstadt'],
+['Romania', 'Rumänien'],
+['Switzerland', 'Schweiz'],
+['Czech Republic', 'Tschechien'],
+['Slovakia', 'Slowakei'],
+['Austria', 'Österreich'],
+['United Kingdom', 'Großbritannien'],
+['Denmark', 'Dänemark'],
+['Sweden', 'Schweden'],
+['Norway', 'Norwegen'],
+['Poland', 'Polen'],
+['Germany', 'Deutschland'],
+['Falkland Islands', 'Falklandinseln'],
+['Saint-Pierre and Miquelon', 'Saint-Pierre und Miquelon'],
+['Mexico', 'Mexiko'],
+['Cuba', 'Kuba'],
+['Argentina', 'Argentinien'],
+['Brazil', 'Brasilien'],
+['Colombia', 'Kolumbien'],
+['Bolivia', 'Bolivien'],
+['French Guiana', 'Französisch-Guayana'],
+['Suriname', 'Surinam'],
+['Netherlands Antilles', 'Niederländische Antillen'],
+['Malaysia', 'Malaisia'],
+['Australia', 'Australien'],
+['Indonesia', 'Indonesien'],
+['Philippines', 'Philippinen'],
+['New Zealand', 'Neuseeland'],
+['Singapore', 'Singapur'],
+['East Timor', 'Ost-Timor'],
+['Australian external territories', 'Australische Außengebiete'],
+['Papua New Guinea', 'Papua-Neuguinea'],
+['Solomon Islands', 'Salomonen'],
+['Fiji', 'Fidschi'],
+['Wallis and Futuna', 'Wallis und Futuna'],
+['Cook Islands', 'Cook-Inseln'],
+['Niue Island', 'Niue'],
+['New Caledonia', 'Neukaledonien'],
+['French Polynesia', 'Französisch-Polynesien'],
+['Micronesia', 'Mikronesien'],
+['Marshall Islands', 'Marshallinseln'],
+['Russia', 'Russland'],
+['Kazakhstan', 'Kasachstan'],
+['South Korea', 'Südkorea'],
+['North Korea', 'Nordkorea'],
+['Hong Kong', 'Hongkong'],
+['Macau', 'Macao'],
+['Cambodia', 'Kambodscha'],
+['Inmarsat (Atlantic East)', 'Inmarsat (Ostatlantik)'],
+['Inmarsat (Pacific)', 'Inmarsat (Pazifik)'],
+['Inmarsat (Indian)', 'Inmarsat (Indien)'],
+['Inmarsat (Atlantic West)', 'Inmarsat (Westatlantik)'],
+['Bangladesh', 'Bangladesch'],
+['Global Mobile Satellite System', 'Globales mobiles Satellitensystem'],
+['International Networks', 'Internationale Netzwerke'],
+['Turkey', 'Türkei'],
+['Cyprus (North)', 'Zypern (Nord)'],
+['India', 'Indien'],
+['Maldives', 'Malediven'],
+['Lebanon', 'Libanon'],
+['Jordan', 'Jordanien'],
+['Syria', 'Syrien'],
+['Iraq', 'Irak'],
+['Saudi Arabia', 'Saudi Arabien'],
+['Yemen', 'Jemen'],
+['United Arab Emirates', 'Vereinigte Arabische Emirate'],
+['Bahrain', 'Barain'],
+['Qatar', 'Katar'],
+['Bhutan', 'Butan'],
+['Mongolia', 'Mongolei'],
+['Tajikistan', 'Tadschikistan'],
+['Azerbaijan', 'Aserbaidschan'],
+['Georgia', 'Georgien'],
+['Kyrgyzstan', 'Kirgisistan'],
+['Uzbekistan', 'Usbekistan'],
+['Guantanamo Bay', 'Guantanamo'],
+['Midway Island', 'Midway Inseln'],
+['Vatican City', 'Vatikanstadt'],
+];
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/de-DE/custom_preset.js b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/de-DE/custom_preset.js
new file mode 100644
index 0000000000..7f248be61d
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/de-DE/custom_preset.js
@@ -0,0 +1,8 @@
+/* (c)2009 Michael Koch
+*/
+
+/* name, url, parameter #1, parameter #2, parameter #3 */
+var telify_custom_preset = [
+	["", "", "Parameter #1", "Parameter #2", "Parameter #3"],
+	["Vorlage für snom-Telefone", "http://$1/command.htm?number=$0&outgoing_uri=$2", "Telefon-IP", "Ausgehende URI", ""],
+];
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/de-DE/lang.dtd b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/de-DE/lang.dtd
new file mode 100644
index 0000000000..797fd04dcf
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/de-DE/lang.dtd
@@ -0,0 +1,39 @@
+<!ENTITY menu.edit_number "Telefonnummer bearbeiten">
+<!ENTITY menu.selection "Rufnummernauswahl">
+<!ENTITY menu.config "Einstellungen">
+<!ENTITY menu.onlinehelp "Online-Hilfe">
+<!ENTITY dialog.edit.title "Telefonnummer bearbeiten">
+<!ENTITY dialog.edit.code "Vorwahl">
+<!ENTITY dialog.edit.country "Land">
+<!ENTITY dialog.edit.dial "W&#228;hlen">
+<!ENTITY dialog.config.title "Telify-Einstellungen">
+<!ENTITY dialog.config.general "Allgemeine Einstellungen">
+<!ENTITY dialog.config.custom "Eigene URL">
+<!ENTITY dialog.config.about "Info">
+<!ENTITY dialog.config.replaces "Ersetzt">
+<!ENTITY dialog.config.in_template "in der Vorlage">
+<!ENTITY dialog.config.empty_url "Vorlage unten eingeben oder aus der Liste ausw&#228;hlen">
+<!ENTITY dialog.config.idd_prefix "Ersetze '+' durch">
+<!ENTITY dialog.config.hreftype "Verwendetes Protokoll">
+<!ENTITY dialog.config.hreftype0 "tel:">
+<!ENTITY dialog.config.hreftype1 "callto:">
+<!ENTITY dialog.config.hreftype2 "skype:">
+<!ENTITY dialog.config.hreftype3 "sip:">
+<!ENTITY dialog.config.hreftype_custom "Eigene URL">
+<!ENTITY dialog.config.dialcc "Bei vorhandener Landesvorwahl">
+<!ENTITY dialog.config.dialcc_menu "&#214;ffne Menu">
+<!ENTITY dialog.config.dialcc_direct "W&#228;hle direkt">
+<!ENTITY dialog.config.highlight "Texthervorhebung">
+<!ENTITY dialog.config.highlight0 "Keine">
+<!ENTITY dialog.config.highlight1 "Leicht">
+<!ENTITY dialog.config.highlight2 "Mittel">
+<!ENTITY dialog.config.highlight3 "Stark">
+<!ENTITY dialog.config.num_history "Anzahl der Nummerneintr&#228;ge">
+<!ENTITY dialog.config.statusicon "Status-Icon anzeigen">
+<!ENTITY dialog.config.statusicon0 "Nein">
+<!ENTITY dialog.config.statusicon1 "Ja">
+<!ENTITY dialog.config.opentype "&#214;ffne Link">
+<!ENTITY dialog.config.opentype0 "im Hintergrund">
+<!ENTITY dialog.config.opentype1 "in einem neuen Fenster">
+<!ENTITY dialog.config.opentype2 "in einem neuen Tab ohne Fokus">
+<!ENTITY dialog.config.opentype3 "in einem neuen Tab mit Fokus">
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/de-DE/lang.properties b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/de-DE/lang.properties
new file mode 100644
index 0000000000..52c37336e6
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/de-DE/lang.properties
@@ -0,0 +1,13 @@
+leave_blank=
+converted=Konvertiert
+telify_active=Telify ist aktiv
+telify_inactive=Telify ist inaktiv
+telify_activate=Telify aktivieren
+telify_deactivate=Telify deaktivieren
+call_arg=$1 anrufen
+host_active_arg=Auf $1 aktivieren
+host_inactive_arg=Auf $1 deaktivieren
+link_title=Wählbare Rufnummer
+country_code=Landesvorwahl
+empty_url=Vorlage unten eingeben oder aus der Liste auswählen
+phonenr_tmpl=[TelNr]
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/de-DE/locale.js b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/de-DE/locale.js
new file mode 100644
index 0000000000..539c6126e6
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/de-DE/locale.js
@@ -0,0 +1,25 @@
+/* (c)2009 Michael Koch
+*/
+
+var objTelifyLocale = {
+
+openOnlineHelp: function()
+{
+	var browser = objTelifyUtil.getBrowser();
+	var tab = browser.addTab("http://www.codepad.de/de/download/firefox-add-ons/telify.html");
+	browser.selectedTab = tab;
+},
+
+msgNumberTemplateMissing: function()
+{
+	return "Ihre Vorlage enthält keinen Platzhalter für die Telefonnummer (d.h. '$0') und wird deshalb keine Telefonnummer übermitteln. "
+		+ "Wollen Sie das wirklich?";
+},
+
+msgUnknownProtocol: function()
+{
+	return "Im diesem System ist keine Anwendung installiert, die sich für das verwendete Protokoll registriert hat. "
+		+ "Bitte stellen Sie in der Telify-Konfiguration ein geeignetes Protokoll ein oder installieren Sie eine geeignete Anwendung.";
+}
+
+}
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/country_locale.js b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/country_locale.js
new file mode 100644
index 0000000000..8d0143c5c1
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/country_locale.js
@@ -0,0 +1,3 @@
+var telify_country_locale = [
+/* for en-US this is empty */
+];
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/custom_preset.js b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/custom_preset.js
new file mode 100644
index 0000000000..e8d3b6be97
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/custom_preset.js
@@ -0,0 +1,8 @@
+/* (c)2009 Michael Koch
+*/
+
+/* name, url, parameter #1, parameter #2, parameter #3 */
+var telify_custom_preset = [
+	["", "", "Parameter #1", "Parameter #2", "Parameter #3"],
+	["snom phones template", "http://$1/command.htm?number=$0&outgoing_uri=$2", "Telefon-IP", "Ausgehende URI", ""],
+];
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/lang.dtd b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/lang.dtd
new file mode 100644
index 0000000000..7dd845151d
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/lang.dtd
@@ -0,0 +1,39 @@
+<!ENTITY menu.edit_number "Edit phone number">
+<!ENTITY menu.selection "Phone number selection">
+<!ENTITY menu.config "Preferences">
+<!ENTITY menu.onlinehelp "Online Help">
+<!ENTITY dialog.edit.title "Edit phone number">
+<!ENTITY dialog.edit.code "Code">
+<!ENTITY dialog.edit.country "Country">
+<!ENTITY dialog.edit.dial "Dial">
+<!ENTITY dialog.config.title "Telify Preferences">
+<!ENTITY dialog.config.general "General Settings">
+<!ENTITY dialog.config.custom "Custom URL">
+<!ENTITY dialog.config.about "About">
+<!ENTITY dialog.config.replaces "Replaces">
+<!ENTITY dialog.config.in_template "in template string">
+<!ENTITY dialog.config.idd_prefix "Replace '+' with">
+<!ENTITY dialog.config.hreftype "Used protocol">
+<!ENTITY dialog.config.hreftype0 "tel:">
+<!ENTITY dialog.config.hreftype1 "callto:">
+<!ENTITY dialog.config.hreftype2 "skype:">
+<!ENTITY dialog.config.hreftype3 "sip:">
+<!ENTITY dialog.config.hreftype_custom "Custom URL">
+<!ENTITY dialog.config.dialcc "When number has country code">
+<!ENTITY dialog.config.dialcc_menu "open menu">
+<!ENTITY dialog.config.dialcc_direct "dial directly">
+<!ENTITY dialog.config.highlight "Text highlighting">
+<!ENTITY dialog.config.highlight0 "None">
+<!ENTITY dialog.config.highlight1 "Light">
+<!ENTITY dialog.config.highlight2 "Medium">
+<!ENTITY dialog.config.highlight3 "Strong">
+<!ENTITY dialog.config.num_history "Number of recent country codes">
+<!ENTITY dialog.config.statusicon "Status icon">
+<!ENTITY dialog.config.statusicon0 "Hide">
+<!ENTITY dialog.config.statusicon1 "Show">
+<!ENTITY dialog.config.opentype "Open link">
+<!ENTITY dialog.config.opentype0 "silently in the background">
+<!ENTITY dialog.config.opentype1 "in a new window">
+<!ENTITY dialog.config.opentype2 "in a new tab without focus">
+<!ENTITY dialog.config.opentype3 "in a new tab with focus">
+ 
\ No newline at end of file
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/lang.properties b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/lang.properties
new file mode 100644
index 0000000000..ce7ed93d49
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/lang.properties
@@ -0,0 +1,13 @@
+leave_blank=
+converted=Converted
+telify_active=Telify is active
+telify_inactive=Telify is inactive
+telify_activate=Activate Telify
+telify_deactivate=Deactivate Telify
+call_arg=Call $1
+host_active_arg=Activate on $1
+host_inactive_arg=Deactivate on $1
+link_title=phone number
+country_code=Country Code
+empty_url=Enter template below or choose from the list
+phonenr_tmpl=[phonenr]
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/locale.js b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/locale.js
new file mode 100644
index 0000000000..5240f8585d
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/locale.js
@@ -0,0 +1,25 @@
+/* (c)2009 Michael Koch
+*/
+
+var objTelifyLocale = {
+
+openOnlineHelp: function()
+{
+	var browser = objTelifyUtil.getBrowser();
+	var tab = browser.addTab("http://www.codepad.de/en/download/firefox-add-ons/telify.html");
+	browser.selectedTab = tab;
+},
+
+msgNumberTemplateMissing: function()
+{
+	return "Your template does not contain a placeholder for the phone number (i.e. '$0') and will therefore not transmit a phone number. "
+		+ "Do you really want to continue?";
+},
+
+msgUnknownProtocol: function()
+{
+	return "No application is installed which registered itself for the used protocol. "
+		+ "Please configure a suitable protocol in the Telify preferences or install a suitable application.";
+}
+
+}
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/defaults/preferences/preferences.js b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/defaults/preferences/preferences.js
new file mode 100644
index 0000000000..b0bb58542d
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/defaults/preferences/preferences.js
@@ -0,0 +1,18 @@
+pref("telify.settings.blacklist", "");
+pref("telify.settings.highlight", 25);
+pref("telify.settings.debug", false);
+pref("telify.settings.active", true);
+pref("telify.settings.exclude", "a,applet,map,select,script,textarea");
+pref("telify.settings.statusicon", true);
+pref("telify.settings.linktype", 0);
+pref("telify.settings.colsortcc", 1);
+pref("telify.settings.num_history", 5);
+pref("telify.settings.idd_prefix", "");
+pref("telify.settings.custom_url", "");
+pref("telify.settings.custom_tmpl", 0);
+pref("telify.settings.custom_param1", "");
+pref("telify.settings.custom_param2", "");
+pref("telify.settings.custom_param3", "");
+pref("telify.settings.custom_opentype", 3);
+pref("telify.settings.dont_escape_plus", false);
+pref("telify.settings.dial_cc_direct", false);
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/install.rdf b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/install.rdf
new file mode 100644
index 0000000000..5128cb4f70
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/install.rdf
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
+	<Description about="urn:mozilla:install-manifest">
+		<em:id>{6c5f349a-ddda-49ad-bdf0-326d3fe1f938}</em:id>
+		<em:extension>true</em:extension>
+		<em:iconURL>chrome://telify/content/icon32.png</em:iconURL>
+		<em:version>0.4.7.3</em:version>
+		<em:creator>Michael Koch</em:creator>
+		<em:homepageURL>http://www.codepad.de/</em:homepageURL>
+		<em:optionsURL>chrome://telify/content/config.xul</em:optionsURL> 
+
+		<em:localized>
+			<Description>
+				<em:locale>de-DE</em:locale>
+				<em:name>Telify</em:name>
+				<em:description>Erzeugt klickbare Links aus Telefonnummern</em:description>
+			</Description>
+		</em:localized>
+
+		<em:localized>
+			<Description>
+				<em:locale>en-US</em:locale>
+				<em:name>Telify</em:name>
+				<em:description>Converts telephone numbers into clickable links</em:description>
+			</Description>
+		</em:localized>
+
+		<!-- Firefox -->
+		<em:targetApplication>
+			<Description>
+				<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
+				<em:minVersion>3.0</em:minVersion>
+				<em:maxVersion>3.6.*</em:maxVersion>
+			</Description>
+		</em:targetApplication>
+	</Description>
+</RDF>
\ No newline at end of file
diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/postinst b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/postinst
new file mode 100755
index 0000000000..1039df3268
--- /dev/null
+++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/postinst
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+gconftool-2 --direct --config-source xml::/etc/gconf/gconf.xml.defaults -t string -s /desktop/gnome/url-handlers/tel/command "/usr/bin/sflphone-handler %s"
+gconftool-2 --direct --config-source xml::/etc/gconf/gconf.xml.defaults -s /desktop/gnome/url-handlers/tel/needs_terminal false -t bool
+gconftool-2 --direct --config-source xml::/etc/gconf/gconf.xml.defaults -t bool -s /desktop/gnome/url-handlers/tel/enabled true
+
+gconftool-2 --direct --config-source xml::/etc/gconf/gconf.xml.defaults -t string -s /desktop/gnome/url-handlers/callto/command "/usr/bin/sflphone-handler %s"
+gconftool-2 --direct --config-source xml::/etc/gconf/gconf.xml.defaults -s /desktop/gnome/url-handlers/callto/needs_terminal false -t bool
+gconftool-2 --direct --config-source xml::/etc/gconf/gconf.xml.defaults -t bool -s /desktop/gnome/url-handlers/callto/enabled true
+
+gconftool-2 --direct --config-source xml::/etc/gconf/gconf.xml.defaults -t string -s /desktop/gnome/url-handlers/sip/command "/usr/bin/sflphone-handler %s"
+gconftool-2 --direct --config-source xml::/etc/gconf/gconf.xml.defaults -s /desktop/gnome/url-handlers/sip/needs_terminal false -t bool
+gconftool-2 --direct --config-source xml::/etc/gconf/gconf.xml.defaults -t bool -s /desktop/gnome/url-handlers/sip/enabled true
+
+exit 0
+
diff --git a/tools/mozilla-telify-sflphone/debian/rules b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/rules
similarity index 100%
rename from tools/mozilla-telify-sflphone/debian/rules
rename to tools/build-system/launchpad/mozilla-telify-sflphone/debian/rules
diff --git a/tools/mozilla-telify-sflphone/debian/watch b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/watch
similarity index 100%
rename from tools/mozilla-telify-sflphone/debian/watch
rename to tools/build-system/launchpad/mozilla-telify-sflphone/debian/watch
-- 
GitLab


From 828e5384daa712b8e9a40b173185bf9d1c3bde44 Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Tue, 15 Dec 2009 18:00:38 -0500
Subject: [PATCH 094/188] [#2181] Cleaning

---
 tools/build-system/README                     |   42 -
 .../distributions/build-packages.sh           |   95 --
 tools/build-system/distributions/globals      |   53 -
 .../mandriva/build-packages-mandriva.sh       |   94 --
 .../mandriva/sflphone-client-gnome.spec       |   75 -
 .../mandriva/sflphone-client-kde.spec         |   68 -
 .../mandriva/sflphone-common.spec             |   91 --
 .../opensuse/build-packages-opensuse.sh       |   94 --
 .../opensuse/sflphone-client-gnome.spec       |   75 -
 .../opensuse/sflphone-client-kde.spec         |   69 -
 .../opensuse/sflphone-common.spec             |   90 --
 .../ubuntu/build-packages-ubuntu.sh           |  109 --
 .../debian-sflphone-client-gnome/changelog    | 1284 -----------------
 .../debian-sflphone-client-gnome/compat       |    1 -
 .../control.hardy                             |   20 -
 .../control.intrepid                          |   20 -
 .../control.jaunty                            |   20 -
 .../debian-sflphone-client-gnome/copyright    |   28 -
 .../debian-sflphone-client-gnome/cron.d       |    4 -
 .../ubuntu/debian-sflphone-client-gnome/dirs  |    7 -
 .../ubuntu/debian-sflphone-client-gnome/docs  |    5 -
 .../debian-sflphone-client-gnome/manpages     |    2 -
 .../debian-sflphone-client-gnome/postinst     |    7 -
 .../debian-sflphone-client-gnome/postrm       |   36 -
 .../debian-sflphone-client-gnome/preinst      |   19 -
 .../ubuntu/debian-sflphone-client-gnome/prerm |    7 -
 .../ubuntu/debian-sflphone-client-gnome/rules |  117 --
 .../debian-sflphone-client-kde/changelog      | 1284 -----------------
 .../ubuntu/debian-sflphone-client-kde/compat  |    1 -
 .../control.intrepid                          |   20 -
 .../debian-sflphone-client-kde/control.jaunty |   20 -
 .../debian-sflphone-client-kde/copyright      |   28 -
 .../ubuntu/debian-sflphone-client-kde/cron.d  |    4 -
 .../ubuntu/debian-sflphone-client-kde/dirs    |    7 -
 .../ubuntu/debian-sflphone-client-kde/docs    |    5 -
 .../debian-sflphone-client-kde/manpages       |    2 -
 .../debian-sflphone-client-kde/postinst       |    9 -
 .../ubuntu/debian-sflphone-client-kde/preinst |   15 -
 .../ubuntu/debian-sflphone-client-kde/prerm   |    7 -
 .../ubuntu/debian-sflphone-client-kde/rules   |  118 --
 .../ubuntu/debian-sflphone-common/changelog   | 1284 -----------------
 .../ubuntu/debian-sflphone-common/compat      |    1 -
 .../debian-sflphone-common/control.hardy      |   20 -
 .../debian-sflphone-common/control.intrepid   |   20 -
 .../debian-sflphone-common/control.jaunty     |   19 -
 .../ubuntu/debian-sflphone-common/copyright   |   28 -
 .../ubuntu/debian-sflphone-common/cron.d      |    4 -
 .../ubuntu/debian-sflphone-common/dirs        |    8 -
 .../ubuntu/debian-sflphone-common/docs        |    6 -
 .../ubuntu/debian-sflphone-common/manpages    |    1 -
 .../ubuntu/debian-sflphone-common/postinst    |   56 -
 .../ubuntu/debian-sflphone-common/postrm      |   36 -
 .../ubuntu/debian-sflphone-common/preinst     |   16 -
 .../ubuntu/debian-sflphone-common/rules       |  120 --
 tools/build-system/gpg/setup-gpg.sh           |   56 -
 tools/build-system/launch-build-machine.sh    |  431 ------
 .../packages/git-buildpackage_0.4.45_all.deb  |  Bin 62098 -> 0 bytes
 .../build-system/remote/update-repository.sh  |   68 -
 tools/build-system/send-emails.sh             |   41 -
 tools/build-system/sfl-git-dch.sh             |  163 ---
 60 files changed, 6430 deletions(-)
 delete mode 100644 tools/build-system/README
 delete mode 100755 tools/build-system/distributions/build-packages.sh
 delete mode 100644 tools/build-system/distributions/globals
 delete mode 100755 tools/build-system/distributions/mandriva/build-packages-mandriva.sh
 delete mode 100644 tools/build-system/distributions/mandriva/sflphone-client-gnome.spec
 delete mode 100644 tools/build-system/distributions/mandriva/sflphone-client-kde.spec
 delete mode 100644 tools/build-system/distributions/mandriva/sflphone-common.spec
 delete mode 100755 tools/build-system/distributions/opensuse/build-packages-opensuse.sh
 delete mode 100644 tools/build-system/distributions/opensuse/sflphone-client-gnome.spec
 delete mode 100644 tools/build-system/distributions/opensuse/sflphone-client-kde.spec
 delete mode 100644 tools/build-system/distributions/opensuse/sflphone-common.spec
 delete mode 100755 tools/build-system/distributions/ubuntu/build-packages-ubuntu.sh
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/changelog
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/compat
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/control.hardy
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/control.intrepid
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/control.jaunty
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/copyright
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/cron.d
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/dirs
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/docs
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/manpages
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/postinst
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/postrm
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/preinst
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/prerm
 delete mode 100755 tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/rules
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/changelog
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/compat
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/control.intrepid
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/control.jaunty
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/copyright
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/cron.d
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/dirs
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/docs
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/manpages
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/postinst
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/preinst
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/prerm
 delete mode 100755 tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/rules
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-common/changelog
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-common/compat
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-common/control.hardy
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-common/control.intrepid
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-common/control.jaunty
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-common/copyright
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-common/cron.d
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-common/dirs
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-common/docs
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-common/manpages
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-common/postinst
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-common/postrm
 delete mode 100644 tools/build-system/distributions/ubuntu/debian-sflphone-common/preinst
 delete mode 100755 tools/build-system/distributions/ubuntu/debian-sflphone-common/rules
 delete mode 100755 tools/build-system/gpg/setup-gpg.sh
 delete mode 100755 tools/build-system/launch-build-machine.sh
 delete mode 100644 tools/build-system/packages/git-buildpackage_0.4.45_all.deb
 delete mode 100755 tools/build-system/remote/update-repository.sh
 delete mode 100755 tools/build-system/send-emails.sh
 delete mode 100755 tools/build-system/sfl-git-dch.sh

diff --git a/tools/build-system/README b/tools/build-system/README
deleted file mode 100644
index c12a4bbfc4..0000000000
--- a/tools/build-system/README
+++ /dev/null
@@ -1,42 +0,0 @@
-# register image
-VBoxManage registerimage disk VDI/ubuntu-9.04.vdi -type normal
-
-# check registration
-VBoxManage showvdiinfo VDI/ubuntu-9.04.vdi
-
-# create VM
-VBoxManage createvm -name "ubuntu-9.04" -register
-
-# check vm creation
-VBoxManage list vms
-
-# update configuration
-VBoxManage modifyvm "ubuntu-9.04" -hda "VDI/ubuntu-9.04.vdi" -memory "1024MB" -acpi on -nic1 nat
-
-#si 64 bits
-# VBoxManage modifyvm ubuntu-9.04-64 --ostype Ubuntu_64
-# VBoxManage modifyvm ubuntu-9.04-64 --hwvirtex on
-
-VBoxManage setextradata "ubuntu-9.04" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP
-VBoxManage setextradata "ubuntu-9.04" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 50001
-VBoxManage setextradata "ubuntu-9.04" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22
-
-# start vm
-VBoxHeadless -startvm "ubuntu-9.04" -p 50000
-
-# install ssh support
-sudo apt-get install openssh-server
-
-# add office-srv-01 sflphone user ssh key in authorized_keys of vm
-ssh -o LogLevel=ERROR -o CheckHostIP=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 50001 sflphone@127.0.0.1 "mkdir ~/.ssh/"
-scp -o LogLevel=ERROR -o CheckHostIP=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -P 50001 /home/projects/sflphone/.ssh/id_dsa.pub sflphone@127.0.0.1:~/.ssh/authorized_keys
-ssh -o LogLevel=ERROR -o CheckHostIP=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 50001 sflphone@127.0.0.1 "chmod 0600 ~/.ssh/authorized_keys"
-
-# si nécessaire
-# scp -o LogLevel=ERROR -o CheckHostIP=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -P 50001 /home/projects/sflphone/build-system/git-buildpackage_0.4.45_all.deb sflphone@127.0.0.1:
-
-# update /etc/sudoers
-sflphone ALL = NOPASSWD: /sbin/shutdown, /usr/bin/apt-get, /usr/bin/dpkg
-
-# stop vm
-VBoxManage controlvm "ubuntu-9-04" poweroff
diff --git a/tools/build-system/distributions/build-packages.sh b/tools/build-system/distributions/build-packages.sh
deleted file mode 100755
index 0b9e09fbec..0000000000
--- a/tools/build-system/distributions/build-packages.sh
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/bin/bash
-#####################################################
-# File Name: build-packages.sh
-#
-# Purpose :
-#
-# Author: Julien Bonjean (julien@bonjean.info) 
-#
-# Creation Date: 2009-05-29
-# Last Modified: 2009-06-01 17:27:25 -0400
-#####################################################
-
-. ./globals
-
-if [ "$?" -ne 0 ]; then
-	echo "!! Cannot source global file"
-	exit -1
-fi
-
-cd ${PACKAGING_DIR}
-
-if [ ! ${PACKAGING_DIR} ];then
-	echo "!! Cannot go to working directory"
-	exit -1
-fi
-
-# check if version is ok
-if [ ! ${VERSION} ]; then
-        echo "!! Cannot detect current version"
-        exit -1
-fi
-
-# open log file
-exec 3<>${LOG_FILE}
-
-# redirect outputs (stdout & stderr)
-exec 1>&3
-exec 2>&3
-
-echo "SFLPhone version is ${VERSION}"
-
-# check user
-if [ "${WHOAMI}" != "${USER}" ]; then
-        echo "!! Please use user ${USER} to run this script"
-        exit -1;
-fi
-
-if [ ${RELEASE_MODE} ]; then
-        echo "Release mode : ${RELEASE_MODE}"
-else
-        echo "Snapshot mode"
-fi
-
-# decompress repository
-echo "Untar repository"
-cd ${BUILD_DIR} && tar xf ${REPOSITORY_ARCHIVE} >/dev/null 2>&1
-
-if [ "$?" -ne "0" ]; then
-        echo " !! Cannot untar repository"
-        exit -1
-fi
-
-# launch distribution specific script
-if [ "${DISTRIBUTION}" = "ubuntu" ];then
-	echo "Launch packaging for Ubuntu (hardy/intrepid/jaunty)"
-	cd ${UBUNTU_DIR} && ./build-packages-ubuntu.sh $*
-
-elif [ "${DISTRIBUTION}" = "opensuse" ]; then
-	echo "Launch packaging for openSUSE 11"
-	cd ${OPENSUSE_DIR} && ./build-packages-opensuse.sh $*
-
-elif [ "${DISTRIBUTION}" = "mandriva" ]; then
-	echo "Launch packaging for Mandriva 2009.1"
-	cd ${MANDRIVA_DIR} && ./build-packages-mandriva.sh $*
-
-elif [ "${DISTRIBUTION}" = "fedora" ]; then
-	echo "Launch packaging for Fedora 11"
-	cd ${FEDORA_DIR} && ./build-packages-fedora.sh $*
-
-else
-	echo "!! Cannot detect distribution"
-	exit -1
-fi
-
-if [ "$?" -ne 0 ]; then
-	echo "!! Error in subprocess"
-	exit -1
-fi
-
-echo "All done"
-
-# close file descriptor
-exec 3>&-
-
-exit 0
diff --git a/tools/build-system/distributions/globals b/tools/build-system/distributions/globals
deleted file mode 100644
index 0de0f01a92..0000000000
--- a/tools/build-system/distributions/globals
+++ /dev/null
@@ -1,53 +0,0 @@
-#####################################################
-# File Name: globals
-#
-# Purpose :
-#
-# Author: Julien Bonjean (julien@bonjean.info) 
-#
-# Creation Date: 2009-05-28
-# Last Modified: 2009-05-28 15:55:14 -0400
-#####################################################
-
-# general
-RELEASE_MODE="$1"
-ROOT_DIR="/home/sflphone"
-PACKAGING_DIR="${ROOT_DIR}/sflphone-packaging"
-
-# distributions
-UBUNTU_DIR="${PACKAGING_DIR}/ubuntu"
-OPENSUSE_DIR="${PACKAGING_DIR}/opensuse"
-MANDRIVA_DIR="${PACKAGING_DIR}/mandriva"
-FEDORA_DIR="${PACKAGING_DIR}/fedora"
-
-# where packaging will be donne
-BUILD_DIR="${PACKAGING_DIR}/build"
-REPOSITORY_ARCHIVE="${BUILD_DIR}/sflphone.tar.gz"
-REPOSITORY_DIR="${BUILD_DIR}/sflphone"
-
-# target directories
-DEB_RESULT_DIR="${PACKAGING_DIR}/deb/dists"
-RPM_RESULT_DIR="${PACKAGING_DIR}/rpm"
-
-# system information
-ARCH_FLAG=`getconf -a|grep LONG_BIT | sed -e 's/LONG_BIT\s*//'`
-OS_VERSION=`lsb_release -d -s -c | sed -e '1d'`
-DISTRIBUTION=`lsb_release -s -d | sed 's/"//g' | tr 'A-Z' 'a-z' | cut -d " " -f1`
-VERSION=`cat ${BUILD_DIR}/VERSION` 
-
-# other stuff
-EDITOR=echo
-export EDITOR
-RELEASE_MODE=$1
-USER="sflphone"
-WHOAMI=`whoami`
-
-# packages we will build
-PACKAGES=('sflphone-common sflphone-client-gnome' 'sflphone-client-kde')
-
-# log file
-LOG_ID="${OS_VERSION}"
-if [ "${LOG_ID}" = "" ]; then
-	LOG_ID="${DISTRIBUTION}"
-fi
-LOG_FILE=${PACKAGING_DIR}/sflphone-${LOG_ID}-${ARCH_FLAG}.log
diff --git a/tools/build-system/distributions/mandriva/build-packages-mandriva.sh b/tools/build-system/distributions/mandriva/build-packages-mandriva.sh
deleted file mode 100755
index 88137cba65..0000000000
--- a/tools/build-system/distributions/mandriva/build-packages-mandriva.sh
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/bin/bash
-#####################################################
-# File Name: build-packages-mandriva.sh
-#
-# Purpose :
-#
-# Author: Julien Bonjean (julien@bonjean.info) 
-#
-# Creation Date: 2009-05-27
-# Last Modified: 2009-06-04 16:29:34 -0400
-#####################################################
-
-. ../globals
-
-cd ${MANDRIVA_DIR}
-
-if [ "$?" -ne "0" ]; then
-        echo " !! Cannot cd to Mandriva directory"
-        exit -1
-fi
-
-echo "Do updates"
-sudo /usr/sbin/urpmi --auto-update --auto >/dev/null
-
-# create build directories
-echo "Create directories"
-mkdir -p ${BUILD_DIR}/BUILD
-mkdir -p ${RPM_RESULT_DIR}
-mkdir -p ${BUILD_DIR}/SOURCES
-mkdir -p ${BUILD_DIR}/SPECS
-
-# create rpm macros
-echo "Create RPM macros"
-cat > ~/.rpmmacros << STOP
-%packager               Julien Bonjean (julien.bonjean@savoirfairelinux.com)
-%distribution           Savoir-faire Linux
-%vendor                 Savoir-faire Linux
-
-%_signature             gpg
-%_gpg_name              Julien Bonjean
-
-%_topdir                ${BUILD_DIR}
-%_builddir		%{_topdir}/BUILD
-%_rpmdir		${RPM_RESULT_DIR}
-%_sourcedir		%{_topdir}/SOURCES
-%_specdir		%{_topdir}/SPECS
-%_srcrpmdir		${RPM_RESULT_DIR}
-STOP
-
-# create packages
-for PACKAGE in ${PACKAGES[@]}
-do
-	echo "Prepare ${PACKAGE}"
-
-	cd ${REPOSITORY_DIR}
-
-	echo " -> create source archive"
-	mv ${PACKAGE} ${PACKAGE}-${VERSION} 2>/dev/null && \
-	tar cf ${PACKAGE}.tar.gz ${PACKAGE}-${VERSION} >/dev/null && \
-	mv ${PACKAGE}-${VERSION} ${PACKAGE}
-	
-	if [ "$?" -ne "0" ]; then
-		echo "!! Cannot create source archive"
-		exit -1
-	fi
-	
-	echo " -> move archive to source directory"
-	mv ${PACKAGE}.tar.gz ${BUILD_DIR}/SOURCES
-
-	if [ "$?" -ne "0" ]; then
-                echo "!! Cannot move archive"
-                exit -1
-        fi
-
-	cd ${PACKAGING_DIR}
-
-	echo " -> update spec file"
-	sed "s/VERSION/${VERSION}/g" mandriva/${PACKAGE}.spec > ${BUILD_DIR}/SPECS/${PACKAGE}.spec
-
-	if [ "$?" -ne "0" ]; then
-                echo "!! Cannot update spec file"
-                exit -1
-        fi
-done
-
-# launch build
-echo "Launch build"
-rpmbuild -ba ${BUILD_DIR}/SPECS/*.spec
-
-if [ "$?" -ne "0" ]; then
-	echo "!! Cannot build packages"
-	exit -1
-fi
-
diff --git a/tools/build-system/distributions/mandriva/sflphone-client-gnome.spec b/tools/build-system/distributions/mandriva/sflphone-client-gnome.spec
deleted file mode 100644
index 0e7ac8beb0..0000000000
--- a/tools/build-system/distributions/mandriva/sflphone-client-gnome.spec
+++ /dev/null
@@ -1,75 +0,0 @@
-#####################################################
-# File Name: sflphone-client-gnome.spec
-#
-# Purpose :
-#
-# Author: Julien Bonjean (julien@bonjean.info) 
-#
-# Creation Date: 2009-05-27
-# Last Modified: 2009-05-27 17:23:32 -0400
-#####################################################
-
-Name:           sflphone-client-gnome
-License:        GNU General Public License (GPL)
-Group:          Productivity/Networking/System
-Summary:        GNOME client for SFLphone
-Version:        VERSION
-Release:        mandriva
-URL:            http://www.sflphone.org/
-Vendor:		Savoir-faire Linux
-Packager:       Julien Bonjean <julien.bonjean@savoirfairelinux.com>
-
-BuildRoot:      %{_tmppath}/%{name}-%{version}
-Source0:        sflphone-client-gnome.tar.gz
-BuildRequires:	gtk2-devel
-BuildRequires:	libnotify-devel
-BuildRequires:	libsexy-devel
-BuildRequires:	evolution-data-server-devel
-BuildRequires:	check-devel
-BuildRequires:	libdbus-glib-devel
-BuildRequires:	log4c-devel
-Requires:	sflphone-common = %{version}
-Requires:	dbus-1-glib
-Requires:	gtk2
-Requires:	glib2
-Requires:	dbus-1-glib
-Requires:	libnotify
-Requires:	librsvg
-Requires:	log4c
-Requires:	libsexy
-Conflicts:	sflphone
-Prefix:		%{_prefix}
-
-%description
-Provide a GNOME client for SFLphone.
- SFLphone is meant to be a robust enterprise-class desktop phone.
- SFLphone is released under the GNU General Public License.
- SFLphone is being developed by the global community, and maintained by
- Savoir-faire Linux, a Montreal, Quebec, Canada-based Linux consulting company.
-
-Authors:
---------
-    Julien Bonjean <julien.bonjean@savoirfairelinux.com>
-
-%lang_package
-
-%prep
-%setup -q
-
-%build
-./autogen.sh
-./configure --prefix=%{_prefix}
-make -j
-
-%install
-make DESTDIR=%{buildroot} install
-
-%clean
-make clean
-
-%files
-%defattr(-, root, root)
-%{_prefix}/*
-%doc AUTHORS COPYING README
-
-%changelog
diff --git a/tools/build-system/distributions/mandriva/sflphone-client-kde.spec b/tools/build-system/distributions/mandriva/sflphone-client-kde.spec
deleted file mode 100644
index a453cf9144..0000000000
--- a/tools/build-system/distributions/mandriva/sflphone-client-kde.spec
+++ /dev/null
@@ -1,68 +0,0 @@
-#####################################################
-# File Name: sflphone-client-kde.spec
-#
-# Purpose :
-#
-# Author: Julien Bonjean (julien@bonjean.info) 
-#
-# Creation Date: 2009-05-27
-# Last Modified: 2009-05-27 17:23:32 -0400
-#####################################################
-
-Name:           sflphone-client-kde
-License:        GNU General Public License (GPL)
-Group:          Productivity/Networking/System
-Summary:        KDE client for SFLphone
-Version:        VERSION
-Release:        mandriva
-URL:            http://www.sflphone.org/
-Vendor:		Savoir-faire Linux
-Packager:       Julien Bonjean <julien.bonjean@savoirfairelinux.com>
-
-BuildRoot:      %{_tmppath}/%{name}-%{version}
-Source0:        sflphone-client-kde.tar.gz
-Requires:	sflphone-common = %{version}
-Requires:	commoncpp2
-Requires:	libkdepimlibs4
-Requires:	libqt4-dbus-1
-Requires:	libqt4-svg
-Requires:	libqt4-x11
-BuildRequires:  cmake
-BuildRequires:  libcommoncpp-devel
-BuildRequires:  kdepimlibs4-devel
-BuildRequires:  libqt4-devel >= 4.3
-Conflicts:	sflphone
-Prefix:		%{_prefix}
-
-%description
-Provide a KDE client for SFLphone.
- SFLphone is meant to be a robust enterprise-class desktop phone.
- SFLphone is released under the GNU General Public License.
- SFLphone is being developed by the global community, and maintained by
- Savoir-faire Linux, a Montreal, Quebec, Canada-based Linux consulting company.
-
-Authors:
---------
-    Julien Bonjean <julien.bonjean@savoirfairelinux.com>
-
-%lang_package
-
-%prep
-%setup -q
-
-%build
-cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix}
-make
-
-%install
-make DESTDIR=%{buildroot} install
-
-%clean
-make clean
-
-%files
-%defattr(-, root, root)
-%{_prefix}/*
-%doc AUTHORS COPYING README
-
-%changelog
diff --git a/tools/build-system/distributions/mandriva/sflphone-common.spec b/tools/build-system/distributions/mandriva/sflphone-common.spec
deleted file mode 100644
index 84f14d414a..0000000000
--- a/tools/build-system/distributions/mandriva/sflphone-common.spec
+++ /dev/null
@@ -1,91 +0,0 @@
-#####################################################
-# File Name: sflphone-common.spec
-#
-# Purpose :
-#
-# Author: Julien Bonjean (julien@bonjean.info) 
-#
-# Creation Date: 2009-05-27
-# Last Modified: 2009-05-27 17:23:32 -0400
-#####################################################
-
-Name:           sflphone-common
-License:        GNU General Public License (GPL)
-Group:          System Environment/Daemons
-Summary:        SIP and IAX2 compatible softphone - Core
-Version:        VERSION
-Release:        mandriva
-URL:            http://www.sflphone.org/
-Vendor:         Savoir-faire Linux
-Packager:	Julien Bonjean <julien.bonjean@savoirfairelinux.com>
-
-BuildRoot:      %{_tmppath}/%{name}-%{version}
-Source0:        sflphone-common.tar.gz
-BuildRequires:	glibc-devel
-BuildRequires:	libccrtp-devel
-BuildRequires:	libsamplerate-devel
-BuildRequires:	libdbus-1-devel
-BuildRequires:	libexpat-devel
-BuildRequires:	libgsm-devel
-BuildRequires:	speex-devel
-BuildRequires:	libcppunit-devel
-BuildRequires:	libcommoncpp-devel
-BuildRequires:	libalsa2-devel
-BuildRequires:	libpulseaudio-devel
-BuildRequires:	libext2fs-devel
-Requires:	libsamplerate
-Requires:	libexpat1
-Requires:	commoncpp2
-Requires:	libgsm1
-Requires:	libspeex
-Requires:	dbus-1
-Requires:	libasound2
-Requires:	libpulse0
-Requires:	libccrtp1
-Conflicts:      sflphone
-Prefix:		%{_prefix}
-
-%description
-SFLphone is meant to be a robust enterprise-class desktop phone.
- SFLphone is released under the GNU General Public License.
- SFLphone is being developed by the global community, and maintained by
- Savoir-faire Linux, a Montreal, Quebec, Canada-based Linux consulting company.
-
-Authors:
---------
-    Julien Bonjean <julien.bonjean@savoirfairelinux.com>
-
-%prep
-%setup -q
-
-%build
-cd libs/pjproject
-./autogen.sh
-./configure --prefix=%{_prefix}
-make dep
-make clean
-make
-cd -
-./autogen.sh
-./configure --prefix=%{_prefix}
-make -j
-
-%install
-cd libs/pjproject
-make DESTDIR=%{buildroot} install
-cd -
-make DESTDIR=%{buildroot} install
-
-%clean
-cd libs/pjproject
-make clean
-cd -
-make clean
-
-%files
-%defattr(-, root, root)
-%{_prefix}/*
-%exclude %{_prefix}/include
-%doc AUTHORS COPYING README TODO
-
-%changelog
diff --git a/tools/build-system/distributions/opensuse/build-packages-opensuse.sh b/tools/build-system/distributions/opensuse/build-packages-opensuse.sh
deleted file mode 100755
index 8ea2639ad3..0000000000
--- a/tools/build-system/distributions/opensuse/build-packages-opensuse.sh
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/bin/bash
-#####################################################
-# File Name: build-packages-opensuse.sh
-#
-# Purpose :
-#
-# Author: Julien Bonjean (julien@bonjean.info) 
-#
-# Creation Date: 2009-05-27
-# Last Modified: 2009-09-11 11:22:27 -0400
-#####################################################
-
-. ../globals
-
-cd ${OPENSUSE_DIR}
-
-if [ "$?" -ne "0" ]; then
-        echo " !! Cannot cd to openSUSE directory"
-        exit -1
-fi
-
-echo "Do updates"
-sudo /usr/bin/zypper -n update --auto-agree-with-licenses >/dev/null
-
-# create build directories
-echo "Create directories"
-mkdir -p ${BUILD_DIR}/BUILD
-mkdir -p ${RPM_RESULT_DIR}
-mkdir -p ${BUILD_DIR}/SOURCES
-mkdir -p ${BUILD_DIR}/SPECS
-
-# create rpm macros
-echo "Create RPM macros"
-cat > ~/.rpmmacros << STOP
-%packager               Julien Bonjean (julien.bonjean@savoirfairelinux.com)
-%distribution           Savoir-faire Linux
-%vendor                 Savoir-faire Linux
-
-%_signature             gpg
-%_gpg_name              Julien Bonjean
-
-%_topdir                ${BUILD_DIR}
-%_builddir		%{_topdir}/BUILD
-%_rpmdir		${RPM_RESULT_DIR}
-%_sourcedir		%{_topdir}/SOURCES
-%_specdir		%{_topdir}/SPECS
-%_srcrpmdir		${RPM_RESULT_DIR}
-STOP
-
-# create packages
-for PACKAGE in ${PACKAGES[@]}
-do
-	echo "Prepare ${PACKAGE}"
-
-	cd ${REPOSITORY_DIR}
-
-	echo " -> create source archive"
-	mv ${PACKAGE} ${PACKAGE}-${VERSION} 2>/dev/null && \
-	tar cf ${PACKAGE}.tar.gz ${PACKAGE}-${VERSION} >/dev/null && \
-	mv ${PACKAGE}-${VERSION} ${PACKAGE}
-	
-	if [ "$?" -ne "0" ]; then
-		echo "!! Cannot create source archive"
-		exit -1
-	fi
-	
-	echo " -> move archive to source directory"
-	mv ${PACKAGE}.tar.gz ${BUILD_DIR}/SOURCES
-
-	if [ "$?" -ne "0" ]; then
-                echo "!! Cannot move archive"
-                exit -1
-        fi
-
-	cd ${PACKAGING_DIR}
-
-	echo " -> update spec file"
-	sed "s/VERSION/${VERSION}/g" opensuse/${PACKAGE}.spec > ${BUILD_DIR}/SPECS/${PACKAGE}.spec
-
-	if [ "$?" -ne "0" ]; then
-                echo "!! Cannot update spec file"
-                exit -1
-        fi
-done
-
-# launch build
-echo "Launch build"
-rpmbuild -ba ${BUILD_DIR}/SPECS/*.spec
-
-if [ "$?" -ne "0" ]; then
-	echo "!! Cannot build packages"
-	exit -1
-fi
-
diff --git a/tools/build-system/distributions/opensuse/sflphone-client-gnome.spec b/tools/build-system/distributions/opensuse/sflphone-client-gnome.spec
deleted file mode 100644
index c6f20e7a0f..0000000000
--- a/tools/build-system/distributions/opensuse/sflphone-client-gnome.spec
+++ /dev/null
@@ -1,75 +0,0 @@
-#####################################################
-# File Name: sflphone-client-gnome.spec
-#
-# Purpose :
-#
-# Author: Julien Bonjean (julien@bonjean.info) 
-#
-# Creation Date: 2009-05-27
-# Last Modified: 2009-05-27 17:23:32 -0400
-#####################################################
-
-Name:           sflphone-client-gnome
-License:        GNU General Public License (GPL)
-Group:          Productivity/Networking/System
-Summary:        GNOME client for SFLphone
-Version:        VERSION
-Release:        opensuse
-URL:            http://www.sflphone.org/
-Vendor:		Savoir-faire Linux
-Packager:       Julien Bonjean <julien.bonjean@savoirfairelinux.com>
-
-BuildRoot:      %{_tmppath}/%{name}-%{version}
-Source0:        sflphone-client-gnome.tar.gz
-BuildRequires:	liblog4c-devel
-BuildRequires:	gtk2-devel
-BuildRequires:	dbus-1-glib-devel
-BuildRequires:	libnotify-devel
-BuildRequires:	libsexy-devel
-BuildRequires:	evolution-data-server-devel
-BuildRequires:	check-devel
-Requires:	sflphone-common = %{version}
-Requires:	dbus-1-glib
-Requires:	gtk2
-Requires:	glib2
-Requires:	dbus-1-glib
-Requires:	libnotify
-Requires:	librsvg
-Requires:	liblog4c3
-Requires:	libsexy
-Conflicts:	sflphone
-Prefix:		%{_prefix}
-
-%description
-Provide a GNOME client for SFLphone.
- SFLphone is meant to be a robust enterprise-class desktop phone.
- SFLphone is released under the GNU General Public License.
- SFLphone is being developed by the global community, and maintained by
- Savoir-faire Linux, a Montreal, Quebec, Canada-based Linux consulting company.
-
-Authors:
---------
-    Julien Bonjean <julien.bonjean@savoirfairelinux.com>
-
-%lang_package
-
-%prep
-%setup -q
-
-%build
-./autogen.sh
-./configure --prefix=%{_prefix}
-make -j
-
-%install
-make DESTDIR=%{buildroot} install
-
-%clean
-make clean
-
-%files
-%defattr(-, root, root)
-%{_prefix}/*
-%doc AUTHORS COPYING README
-
-%changelog
diff --git a/tools/build-system/distributions/opensuse/sflphone-client-kde.spec b/tools/build-system/distributions/opensuse/sflphone-client-kde.spec
deleted file mode 100644
index f558d9b0cd..0000000000
--- a/tools/build-system/distributions/opensuse/sflphone-client-kde.spec
+++ /dev/null
@@ -1,69 +0,0 @@
-#####################################################
-# File Name: sflphone-client-kde.spec
-#
-# Purpose :
-#
-# Author: Julien Bonjean (julien@bonjean.info) 
-#
-# Creation Date: 2009-05-27
-# Last Modified: 2009-05-27 17:23:32 -0400
-#####################################################
-
-Name:           sflphone-client-kde
-License:        GNU General Public License (GPL)
-Group:          Productivity/Networking/System
-Summary:        KDE client for SFLphone
-Version:        VERSION
-Release:        opensuse
-URL:            http://www.sflphone.org/
-Vendor:		Savoir-faire Linux
-Packager:       Julien Bonjean <julien.bonjean@savoirfairelinux.com>
-
-BuildRoot:      %{_tmppath}/%{name}-%{version}
-Source0:        sflphone-client-kde.tar.gz
-Requires:	sflphone-common = %{version}
-Requires:	commoncpp2
-Requires:	libkdepimlibs4
-Requires:	libqt4-dbus-1
-Requires:	libqt4-svg
-Requires:	libqt4-x11
-BuildRequires:  cmake
-BuildRequires:  libkdepimlibs4-devel
-BuildRequires:  commoncpp2-devel
-BuildRequires:  libqt4-devel >= 4.3
-BuildRequires:	gettext-tools
-Conflicts:	sflphone
-Prefix:		%{_prefix}
-
-%description
-Provide a KDE client for SFLphone.
- SFLphone is meant to be a robust enterprise-class desktop phone.
- SFLphone is released under the GNU General Public License.
- SFLphone is being developed by the global community, and maintained by
- Savoir-faire Linux, a Montreal, Quebec, Canada-based Linux consulting company.
-
-Authors:
---------
-    Julien Bonjean <julien.bonjean@savoirfairelinux.com>
-
-%lang_package
-
-%prep
-%setup -q
-
-%build
-cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix}
-make
-
-%install
-make DESTDIR=%{buildroot} install
-
-%clean
-make clean
-
-%files
-%defattr(-, root, root)
-%{_prefix}/*
-%doc AUTHORS COPYING README
-
-%changelog
diff --git a/tools/build-system/distributions/opensuse/sflphone-common.spec b/tools/build-system/distributions/opensuse/sflphone-common.spec
deleted file mode 100644
index 1929b7e222..0000000000
--- a/tools/build-system/distributions/opensuse/sflphone-common.spec
+++ /dev/null
@@ -1,90 +0,0 @@
-#####################################################
-# File Name: sflphone-common.spec
-#
-# Purpose :
-#
-# Author: Julien Bonjean (julien@bonjean.info) 
-#
-# Creation Date: 2009-05-27
-# Last Modified: 2009-05-27 17:23:32 -0400
-#####################################################
-
-Name:           sflphone-common
-License:        GNU General Public License (GPL)
-Group:          System Environment/Daemons
-Summary:        SIP and IAX2 compatible softphone - Core
-Version:        VERSION
-Release:        opensuse
-URL:            http://www.sflphone.org/
-Vendor:         Savoir-faire Linux
-Packager:	Julien Bonjean <julien.bonjean@savoirfairelinux.com>
-
-BuildRoot:      %{_tmppath}/%{name}-%{version}
-Source0:        sflphone-common.tar.gz
-BuildRequires:	libpulse-devel
-BuildRequires:	commoncpp2-devel
-BuildRequires:	libccrtp-devel
-BuildRequires:	libsamplerate-devel
-BuildRequires:	dbus-1-devel
-BuildRequires:	libexpat-devel
-BuildRequires:	libgsm-devel
-BuildRequires:	speex-devel
-BuildRequires:	libcppunit-devel
-BuildRequires:	alsa-devel
-BuildRequires:	libuuid-devel
-Requires:	libsamplerate
-Requires:	libexpat1
-Requires:	commoncpp2
-Requires:	libgsm1
-Requires:	libspeex
-Requires:	dbus-1
-Requires:	libasound2
-Requires:	libpulse0
-Requires:	libccrtp1
-Conflicts:      sflphone
-Prefix:		%{_prefix}
-
-%description
-SFLphone is meant to be a robust enterprise-class desktop phone.
- SFLphone is released under the GNU General Public License.
- SFLphone is being developed by the global community, and maintained by
- Savoir-faire Linux, a Montreal, Quebec, Canada-based Linux consulting company.
-
-Authors:
---------
-    Julien Bonjean <julien.bonjean@savoirfairelinux.com>
-
-%prep
-%setup -q
-
-%build
-cd libs/pjproject
-./autogen.sh
-./configure --prefix=%{_prefix}
-make dep
-make clean
-make
-cd -
-./autogen.sh
-./configure --prefix=%{_prefix} 
-make -j
-
-%install
-cd libs/pjproject
-make DESTDIR=%{buildroot} install
-cd -
-make DESTDIR=%{buildroot} install
-
-%clean
-cd libs/pjproject
-make clean
-cd -
-make clean
-
-%files
-%defattr(-, root, root)
-%{_prefix}/*
-%exclude %{_prefix}/include
-%doc AUTHORS COPYING README TODO
-
-%changelog
diff --git a/tools/build-system/distributions/ubuntu/build-packages-ubuntu.sh b/tools/build-system/distributions/ubuntu/build-packages-ubuntu.sh
deleted file mode 100755
index 8dd8a30ed5..0000000000
--- a/tools/build-system/distributions/ubuntu/build-packages-ubuntu.sh
+++ /dev/null
@@ -1,109 +0,0 @@
-#!/bin/bash
-#
-# @author: Yun Liu <yun.liu@savoirfairelinux.com>, Julien Bonjean <julien.bonjean@savoirfairelinux.com>
-#
-# Refer to http://www.sflphone.org for futher information
-#
-
-. ../globals
-
-cd ${UBUNTU_DIR}
-
-if [ "$?" -ne "0" ]; then
-        echo " !! Cannot cd to Ubuntu directory"
-        exit -1
-fi
-
-PACKAGE_SYSVER="0ubuntu1"
-FULL_VERSION="${VERSION}-${PACKAGE_SYSVER}"
-
-#########################
-# BEGIN
-#########################
-
-DIST="${OS_VERSION}"
-if [ ${RELEASE_MODE} ]; then
-	if [ "${RELEASE_MODE}" != "release" ]; then
-		DIST="${DIST}-testing"
-	fi
-else
-	DIST="${DIST}-daily"
-fi
-
-echo "Do updates and dependencies build"
-sudo apt-get update >/dev/null
-sudo apt-get upgrade -y >/dev/null
-sudo apt-get build-dep sflphone-common >/dev/null
-sudo apt-get build-dep sflphone-client-gnome >/dev/null
-sudo apt-get build-dep sflphone-client-kde >/dev/null
-
-for PACKAGE in ${PACKAGES[@]}
-do
-        echo "Process ${PACKAGE}"
-
-	echo " -> prepare debian directories"
-	mv ${UBUNTU_DIR}/debian-${PACKAGE} ${REPOSITORY_DIR}/${PACKAGE}/debian
-
-	# generate the changelog
-	echo " -> generate changelog"
-	sed -i 's/SYSTEM/'${OS_VERSION}'/g' ${REPOSITORY_DIR}/${PACKAGE}/debian/changelog && \
-	sed -i 's/SYSVER/'${PACKAGE_SYSVER}'/g' ${REPOSITORY_DIR}/${PACKAGE}/debian/changelog
-
-	if [ "$?" -ne "0" ]; then
-		echo "!! Cannot generate changelog"
-		exit -1
-	fi
-
-	# copy the appropriate control file based on architecture
-	echo " -> generate control file"
-	if [ ! -e ${REPOSITORY_DIR}/${PACKAGE}/debian/control.$OS_VERSION ];then
-		echo " -> no control file, skipping"
-		continue
-	fi
-	cp ${REPOSITORY_DIR}/${PACKAGE}/debian/control.$OS_VERSION ${REPOSITORY_DIR}/${PACKAGE}/debian/control && \
- 	sed -i "s/VERSION/${FULL_VERSION}/g" ${REPOSITORY_DIR}/${PACKAGE}/debian/control
-
-	if [ "$?" -ne "0" ]; then
-	        echo "!! Cannot generate control file"
-	        exit -1
-	fi
-
-	# provide prerequisite directories used by debuild
-	echo " -> prepare directories"
-	cp -r ${REPOSITORY_DIR}/${PACKAGE} ${REPOSITORY_DIR}/${PACKAGE}-${FULL_VERSION}.orig && \
-	mv ${REPOSITORY_DIR}/${PACKAGE} ${REPOSITORY_DIR}/${PACKAGE}-${FULL_VERSION}
-
-	# build package sflphone-common
-	cd ${REPOSITORY_DIR}/${PACKAGE}-${FULL_VERSION}/debian && \
-	debuild -us -uc
-
-	if [ "$?" -ne "0" ]; then
-	        echo "!! Cannot generate package ${PACKAGE}"
-	        exit -1
-	fi
-done
-
-# move to dist
-echo "Deploy files in dist directories"
-BINARY_DIR=""
-if [ "${ARCH_FLAG}" -eq "32" ]; then
-	BINARY_DIR="binary-i386"
-else
-	BINARY_DIR="binary-amd64"
-fi
-
-mkdir -p ${DEB_RESULT_DIR}/${DIST}/universe/source
-mkdir -p ${DEB_RESULT_DIR}/${DIST}/universe/${BINARY_DIR}
-
-mv ${REPOSITORY_DIR}/sflphone*.deb ${DEB_RESULT_DIR}/${DIST}/universe/${BINARY_DIR} && \
-mv ${REPOSITORY_DIR}/sflphone*.dsc ${DEB_RESULT_DIR}/${DIST}/universe/source/ && \
-mv ${REPOSITORY_DIR}/sflphone*.build ${DEB_RESULT_DIR}/${DIST}/universe/source/ && \
-mv ${REPOSITORY_DIR}/sflphone*.changes ${DEB_RESULT_DIR}/${DIST}/universe/source/ && \
-mv ${REPOSITORY_DIR}/sflphone*.orig.tar.gz ${DEB_RESULT_DIR}/${DIST}/universe/source/ && \
-mv ${REPOSITORY_DIR}/sflphone*.diff.gz ${DEB_RESULT_DIR}/${DIST}/universe/source/
-
-if [ "$?" -ne "0" ]; then
-        echo "!! Cannot copy dist files"
-        exit -1
-fi
-
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/changelog b/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/changelog
deleted file mode 100644
index 003c33d69c..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/changelog
+++ /dev/null
@@ -1,1284 +0,0 @@
-sflphone-client-gnome (0.9.6-SYSVER) SYSTEM; urgency=low
-
-    ** 0.9.6 **
-
-  * Documentation on echo test
-  * [redmine_down] codec names not displayed in total
-  * [redmine_down] crash when hanging up a dialing call because tries to
-    add it to history whereas no starttime
-  * [#1927] alternate every time screen changed to call history
-  * [#1886] clean code
-  * [#1886] debug messages when loading history removed
-  * [redmine_down] sflphone-kde icons
-  * [#1855] Update language files
-  * [#1502] Update version number
-  * [redmine_down] setHistory at close
-  * [#redmine_down] Handle PJ_DECLINE_SC as failure
-  * [#1923] Fix segmentation fault when adding a new account
-  * [#1923] Check on iterator before setting the config
-  * [#1904] Added mnemonic to tabs in sflphone-client-gnome.
-  * [#1905] The daemon was not sending the currentSelectedCodec signal
-    on dbus when answering a call.
-  * [#1922] Default values set to all account details
-  * [#1886] Spinbox reg expire enables apply, and address book is not
-    visible when disabled
-  * [#1905] Bug fix for segmentation fault caused by an empty string,
-  * [#1910] Warnings in test directory
-  * [#1919] Error fixed
-  * [#1855] Update russian translation - Hussein Abdallah
-  * [#1910] Remove files
-  * [#1919] fixed
-  * [#1777] Code indentation
-  * [#1918] fixed
-  * [#1917] fixed
-  * [#1910] Remove warnings compilation in src
-  * [#1886] removed AccountListModel in configskeleton
-  * [#1914]
-  * [#1911] check previous and new port
-  * [#1910] Remove compilation warnings in src/dbus and src/history
-  * [#1910] Remove compilation warnings in src/audio
-  * [1855] Update german translation - Sven Werlen
-  * [#1909] removed
-  * [#1906] Done
-  * [#1904] The registration expire value is now configurable from the
-  * Cleaned up debug messages.
-  * [#1886] separated initCallItem in two functions
-  * [#1886] reversed error in commit
-  * [#1886] clean debug
-  * [#1886] changed Name of classes and files
-  * [#1886] clean
-  * [#1870] In call_state_cb (dbus.c:126), _time_stop was overridden by
-    the actual time.
-  * [#1884] Added some new gpg flags to prevent tty warnings
-  * [#1886] Clean audio config dialog
-  * [#1886] No more compile warnings. + 1 comm
-  * [#1872] Check if the user input is smaller than PJ_MAX_HOSTNAME.
-  * [#1886]
-  * [#1785] Fixed build when no new commit
-  * [#1852] If chosen by the user, the hostname can now be solved and
-    used
-  * [#1871] * and # inverted back
-  * [#1869] Conditional compilation that checks if
-  * [#1309] removed test in main
-  * [#1425] Put actions in SFLPhone window class instead of ui view,
-    made a separate toolbar for screens.
-
- -- SFLphone Automatic Build System <team@sflphone.org>  Mon, 27 Jul 2009 09:53:19 -0400
-
-sflphone-client-gnome (0.9.6~rc2-SYSVER) SYSTEM; urgency=low
-
-    ** 0.9.6~rc2 **
-
-  * [#1755] Remove generated file
-  * [#1753] restore ilbc ...
-  * [#1866] Methods getSipPort and setSipPort now have an effect on the
-  * [#1753] make pjsip compile without ilbc. Use ./autogen.sh --disable-
-    ilbc-codec
-  * [#1855] Fix error in russian translation
-  * [#1805] Remove the old flawed signal mechanism which was failing in
-  * [#1855] Refresh translation
-  * Spanish translation finished + po README files updated + echo's in
-    copy-in-clients
-  * [#1850] Yun made the chinese HK-CN translation
-  * [#1848] Fix transfer interface bug
-  * [#1862] At install, kde client installs only french translation file
-  * [#1841] A new fallback mechanism was added to the internal resolver
-    in PJSIP.
-  * Started AccountList model/view
-  * [#1855] Remove po subdir in Makefile.am
-  * [#1855] Fix typo error in sflphone-client-gnome
-  * [#1855] Do not generate Makefile in sflphone-common/po
-  * [#1855] Copy translation files into both clients dirs
-  * [#1855] Remove po dir from sflphone-common
-  * Comments added
-  * [#1860] mailbox->voicemail...
-  * make scripts executable
-  * [#1855] French translation
-  * [#1855] Chinese zh_HK partially filled...
-  * [#1859] An unnamed pipe monitored by poll() was added. When we want
-    to
-  * [#1855] Sven completed the first part of the german translation
-  * [#1855] Cantonese manually filled for already translated, almost
-    equal strings
-  * [#1855] Merge russian translation
-  * [#1855] Spanish manually filled for already translated, almost equal
-    strings
-  * [#1855] Update german translation in ./lang/de
-  * [#1858] This problem was fixed by removing a useless line in
-  * [#1855] merged existing translations in lang/ sflphone.po's
-  * [#1842] [#1843] An attempt at improving the expected behaviour that
-    can't
-  * [#1855] added po folder in gnome client and scripts for copying from
-    common lang folder to clients
-  * [#1853] Edit before call does nothing on call history
-  * Put most language entries possible in common. From 300 to 250
-    entries. Stays underscores problem. Scripts for copy in clients.
-  * commit to merge master
-  * [#1825] Changed "Bad authentification" to "Authentication Failed".
-  * common po files
-  * [#1753] Remove ILBC from pjproject
-
- -- SFLphone Automatic Build System <team@sflphone.org>  Fri, 17 Jul 2009 19:12:58 -0400
-
-sflphone-client-gnome (0.9.6~rc1-SYSVER) SYSTEM; urgency=low
-
-    ** 0.9.6~rc1 **
-
-  * Update some version number
-  * [#1792] Creates .sflphone directory with permission 600. Also,
-    "chmod 600" after
-  * [#1810] GUI is now notified that the call failed. Also, a segfault
-    was
-  * [#1816] Address book search disabled when disabled address book and
-    enabled it back plus button stays triggered
-  * codeclistmodel + asynchronous loading of address book +
-    enable/disable address book
-  * [#1810] Now checking SDP answer after 200 OK. Still need to
-    implement full
-  * [#1794] Can't use the interface during a call
-  * Updated translation files
-  * Russian translation integrated
-  * Codec list model/view started.
-  * [#1807] Add configure.ac in pjproject-1.0.3
-  * [#1787] closeRtpSession added in some places where it should have
-    been
-  * Use Item class for contacts and accounts
-  * Comments + clean code
-  * [#1794] Improved debug messages
-  * [#1805] Replaced the old and unreliable mecanism that was was
-    waiting for
-  * [#1794] Can't use the interface during a call
-  * [#1787]  For those cases where no registered SIP account is
-    configured
-  * [#1797] Make pjsip compile
-  * [#1787] Minor changes. Removed useless commented line. Changed order
-    of
-  * [#1777] Code indentation
-  * [#1797] Update package generation with new pjsip version
-  * [#1798] Does not hang up when the call is building up
-  * [#1797] Update .gitignore with new pjsip version
-  * [#1797] Remove generated files from repo
-  * [#1797] Main build system now uses pjproject-1.0.3
-  * [#1797] Add pjproject-1.0.3
-  * [#1797] Remove pjproject-1.0.2
-  * [#1796] Computing time optimization (samplerate conversion)
-  * [#1787] _audiortp->start() moved away from offhold(),
-    SIPCallAnswered()
-  * [#1312] Added new states for calls initialized by other clients
-  * [#1795] Crashes when adding a new account, checking it and applying
-  * [#1782] Missing icons
-  * [#1793] KDE client compilation problem
-  * Fake ringtone files can no longer be set.
-  * indentation
-  * [#1312] Able to fetch to differentiate incoming/ringing call state
-  * [#1784] Use DESTDIR variable in po Makefile - fix language file
-    installation
-  * [#1785] Fixed typo
-  * [#1785] Fixed changelog update
-  * [#1759] ./autogen.sh --prefix=/usr --with-debug to use optimization
-    level 0
-  * [#1773] Changed snapshot naming convention
-  * [#1773] Removed gpg agent use, added repository cache cleaning
-  * [#1759] Use optimization level 0 for repository, 2 for packages
-  * [#1777] Code indentation/formatting
-  * Translated new features in french
-  * [#1785] Added missing changelog entry
-  * [#1781] Window title is SFLPhone
-  * [#1777] Add code indentation/formatting in the buil system
-  * [#1774] Can't set voicemail number in KDE account creation wizard
-  * [#1775] Can't modify account information for account created with
-    the wizard
-  * [#1771] Add a "Default" button in context menu to disable chosen
-    prior account
-  * [#1705]
-  * [#1224] Remove generated file from the repo
-  * [#1224] Remove generated file from the repo
-  * [#1762] distclean target should remove kconfig generated files
-    (settings.h, settings.cpp). Rename them?
-  * [#1761] clear history button should really clear history
-  * Dialpad works.
-  * Implemented Dialpad widget instead of building it in main view.
-  * Removed last occurence of the old config dialog, that made the build
-    crash.
-  * [#1755] Do not consider G722 as a dynamic payload elsewhere than in
-    RTP layer
-  * [#1753] Remove ilbc Makefile generation
-  * [#1756] Implement a kde configuration dialog with kconfig xt and
-    kconfigdialog class
-  * [#1755] fix audiocodec folder parsing problem
-  * [#1450] Reinit timestamp comparison in RTP, create session in
-    newOutgoingCall
-  * [#1753] Remove milenage third party code from pjsip
-  * New Config Dialog integrated in GUI.(without codecs)
-  * [#1753] Remove ILBC codec
-  * kconfig started, tr2i18n -> i18n, icons folder, accountList changed
-  * [#1705] Fixed Audio RTP thread creation/start
-  * [#1714] Fix codec negociation result handling
-  * [#1678] Fix audiortp payload setting
-  * [#1678] Put bac putData method in rtp
-  * [#1669] gtk_file_chooser_get_filename() support UTF-8 by default
-  * [#1735] Add conditions to sdp update call if call declined
-  * [#1737] substr of recordings destination folder to remove "file://"
-    should be done in client rather than in daemon
-  * [#1731] Enlarge audio stream buffer size
-  * [#1714] Missing true
-  * [#1317] Fixed Mandriva timeout
-  * [#1317] Changed tag convention
-  * [#1317] Cleaned git-dch
-
- -- SFLphone Automatic Build System <team@sflphone.org>  Fri, 10 Jul 2009 15:50:26 -0400
-
-sflphone-client-gnome (0.9.6~beta-SYSVER) SYSTEM; urgency=low
-
-    ** 0.9.6~beta **
-
-  * spec files for mandriva and opensuse updated with buildrequires
-    libqt4-dev >=4.3
-  * [#1700] Cannot build on ubuntu 8.10 and a few other distribs
-  * [#1502] Update version number where applicable
-  * [#1642] Update client icons
-  * [#1450] Clean up useless debug and comments in sipvoiplink and
-    audiortp
-  * [#1450] Remove Semaphore object in AudioRtp thread deletion
-  * [#1450] Audio RTP init now synchronized with Sip/SDP
-  * [#1693] kde client crashes when changing codecs order/activation
-  * [#1450] Deep refactoring of audiortp
-  * [#1450] setRtpSessionRemoteIp
-  * [#1689] getCallList at start
-  * [#1224] Change path in package files
-  * [#1450] Audio RTP initialized only once, payload and remote ip set
-    at runtime
-  * [#1450] Add setRtpSessionMedia and setRtpSessionRemoteIp address
-  * [#1642] Make GNOME GUI fresher and younger ;)
-  * [#1686] Status bar displaying used account
-  * added sflphone-kde icon so that it compiles
-  * [#1659] Ending a call causes the daemon to crash
-  * corrected introspection XMLs, po files...
-  * [#1211] g722 media descriptor in codecDescriptor
-  * [#1310] Install sflphoned in $(prefix)/lib/sflphone
-  * [#1502] Do not install test binaries and dbus utilitaries
-  * [#1224] hack for pjsip build system!
-  * [#1224] Remove pjsip binaries from repo
-  * [#1224] Upgrade to pjsip 1.0.2
-  * [#1658] About SFLphone (bugs)
-  * [#1658] About SFLphone
-  * [#1660] Displaying all dialed numbers in a call
-  * Tested status bar.
-  * [#790] Optimize pulse audio streams parameters
-  * [#1678] Some usefull debug messages for mutex/semaphore deadlock
-    problem
-  * [#1669] Add/remove some usefull/unusefull debug
-  * [#1665] Fix latency related to pulse audio stream openning/closing
-  * [#1457] Make the menus and panels accessible in french
-  * [#1457] Improve broken keyboard accessibility in menus and conf
-    panels
-  * [#961] Instanciate only once the searchbar icons
-  * [#961] Restore transfer fonction
-  * [#961] Filter on the history type OK
-  * [#961] Fix compilation problems on hardy/intrepid
-  * [#1157] Commit missing files
-  * [#790] Reduce number of start/stop streams call on pulse audio
-  * [#1639] kde client crashes when no account registered
-  * [#1620] Fix the searchbar
-  * [#1620] Get back caltree as it was during gtkcritical area
-  * [#1620] Add history filter reinit function
-  * [#1335] Add a missing label in address book preferences
-  * [#1561] Update russian translation - Hussein Abdallah
-  * [#1605] Fix edit menu french translation
-  * [#961] Enable to search in the history according to the call type
-  * [#1449] Searchbar does not work anymore
-  * [#961] Add popup menu on the entry primary icon for history
-  * [#1317] Fixed KDE client package dependency
-  * [#936] speex 32 khz integration completed
-  * [#936] Use 320 frame size
-  * [#936] Test using a frame size at 320 smpls
-  * [#1214] Enable / Disable history
-  * [#1607] Fix compilation problem for ubuntu 8.10 (libsexy)
-  * [#1313] Implement processDataEncode processDataDecode in audiortp
-  * [#1613] codec list order can't be set
-  * Better handling of localisation + added languages + corrected
-    warnings + begginning of new config dialog with kconfig + 14px
-    account leds
-  * [#1214] Save and load history according to the limit timestamp +
-    unit tests
-  * [1609] Fix call number copy/paste feature
-  * [1607] Restore clear action icon in searchbar
-  * [#936] Try to decode using 1280 samples
-  * [#936] Add some debug
-  * [#936] Add .cpp file
-  * [#936] Oops Forgot speex 32 khz
-  * [#1214] Add configuration panel for history + D-Bus calls
-  * [#1313] Test rtp thread function, frame size, nbbytes, resampling
-  * [#790] Flush audio data before closing audio streams
-  * [#1214] History displays local time
-  * [#1214] Skip empty field on display
-  * [#1214] Associate an account to an history entry
-  * [#1342] Get addressbook options sensitive/non-sensitive
-  * [#1211] Clean up and comments
-  * [#1211] Get back to 20 ms framesize
-  * [#1211] Use sendImmediate instead of putData in RTP
-  * [#1211] Fix nb byte available in RTP
-  * [#1211] Clear condition on maxNbSamples in RTP
-  * [#1211] Fix max byte available in RTP session
-  * [#1211] G722: Use 160 samples per frame instead of 320
-  * [#1211] Test using a dynamic payload
-  * [#1211] Test using a dynamic payload type
-  * [#1211] Rename size variable (nb_samples, nb_bytes)
-  * [#1211] Test g722 ip-to-ip sending twice the data lenth
-  * [#1211] Test g722 ip-to-ip
-  * [#1214] Do not select an history item by default at startup
-  * [#1214] Remove some compilation warnings
-  * [#1214] Handle empty field - remove g_print
-  * [#1214] Add each history item only once
-  * [#1214] Handle call timestamps properlier
-  * [#1214] Do not need timestamp files anymore
-  * [#1214] Use the saved date for history entry
-  * Clean up
-  * [#1214] Client doesn't crash if the D-Bus call fails
-  * [#1214] Client is able to save its history - still some glitches
-  * [#1211] Forgot 16000 for g722
-  * [#1211] G722 initialization
-  * [#1214] Save name/number, successfully load the history if no fields
-    are empty
-  * [#1499] Fixed destination directory bug
-  * [#1214] Restore all the functionalities; peer name/number way more
-    easy to handle !!
-  * [#1214] Add callable_object instead of call_t, refactoring
-  * [#1211] Test with polycom soundstation 16000
-  * [#1211] Remove C like inline function in g722 codec
-  * [#1342] Finalize gnome client preference window formating
-  * [#1214] Retrieve the history when the gnome client startsup
-  * [#1306] Implement localization for KDE client
-  * [#1593] enable accounts apply button when account checked/unchecked
-  * [#1214] Implement the dbus calls on server side
-  * [#1214] Add serialized/unserialized functions to pass data on DBUS
-  * [#1342] Formating gnome client configuration windows
-  * [#1214] Save sucessfully a map of history items
-  * [#1499] Removed multiple jobs compilation for KDE client (2)
-  * [#1214] Load history from file into memory, add unit tests
-  * [#1534] Throws a length_error exception in case URL exceeds
-    std::string max_size
-  * [#1499] Removed multiple jobs compilation for KDE client
-  * [#1565] make account leds smaller
-  * [1430] Fix dbus debug
-  * [#1562] crashes when trying to change item of a call of state "OVER"
-  * [#1116] Fix compilation bug
-  * [#1317] Added mandriva and opensuse-11 64 bits
-  * [#1108] Add messges in main window concerning transfer success
-    failure
-  * [#1116] Fix compilation problems
-  * [#1211] g722 Makefile
-  * [#1108] Client side transferFailed/trasferSucceded signals handling
-  * [#1211] G722 mostly completed,
-  * [#1555] make bigger toolbar (24x24)
-  * [#1551] remove default mailbox number in wizard and disable mailbox
-    button when first account doesn't have mailbox number
-  * [#1342] Re-add sflphone manpages
-  * [#1116] Fix compilation on non-jaunty distros
-  * [#1317] Fixed opensuse startup sleep
-  * [#1108] Add a signal in the client to notify successful or failed
-    transfer
-  * [#1108] Dbus signals concerning call transfer success/failure
-  * [#1317] Added opensuse to automatic build system
-  * [#1223] Fix manpages bug
-  * [#1060] german translation glitch
-  * Clean up some gnome client warnings
-  * [#1547] replace ugly account leds by beautiful icons
-  * [#1548] add close button that hides windowand just hide on clicking
-    the cross
-  * [#1549] put introspec XMLs in the client's source
-  * [#1312] Implement getCallList D-BUS method
-  * [#1116] Clear text in history and contacts
-  * [#1499] KDE integration
-  * [#1469] Modify header linkers in dbus-c++'s Makefile.am's
-  * [#1469] Remove examples folder from dbus-c++
-  * [#1214] History integration in build system; unit test squeleton
-  * [#1317] Cleaning
-  * [#1469] Remove configure stuff in dbus-c++
-  * [#1469] Add unofficial mainline dbus-c++
-  * [#1469] Remove dbus-c++ from freedesktop
-  * [#1430] Bring account changed signal/callback back to normal
-  * [#1060] Update german translation - Sven Werlen
-  * [#1430] Add marshaller one string define
-  * [#1430] Send account change signal broadcast using account id
-  * [#1430] Remove condition on setRegistrationState, cause stun to
-    crash
-  * [#1317] Centralized version handling
-  * [#1317] Fixed version number on sfl-git-dch
-  * [#1317] Refactoring for new distributions
-  * [#1215] Fix account order at startup if latency
-  * [#1088] Restore sip dns srv
-  * [#1214] Add squeleton for history manager
-  * [#1430] Add accout id to accout changed method
-  * [#1430] No connectionStatusNotification (account changed) if no
-    changes
-  * [#1538] Add COPYING file
-  * [#1430] Add audio rtp thread tests
-  * [#1317] Changed version detection
-  * [#1538] Document license in libs/stund
-  * [#1317] Added version files
-  * [#1538] Apply François patches - debian packages
-  * [#1317] Updated spec files
-  * add files
-  * [#1538] Apply François patches - debian packages
-  * [#1535] Change program file structure (directory src...)
-  * [#1317] Updated build system scripts
-  * [#1317] Cleaning
-  * [#1317] Copied introspect files to gnome client
-  * [#1317] Added opensuse to build-system : first-shot
-  * [#1317] Remove spec files from configure
-  * [#1317] Added missing prefix
-  * removed debug for daemon account fix
-  * [#1430] Add a connection reference which most likely belong to
-    libdbus
-  * [#1430] Use shared connection instead of private
-  * make daemon find the account, added userMatch
-  * Clean code, add comments...
-  * [#1317] Fixed packaging rules
-  * [#1317] Updated autogen
-  * Updated autogen.sh for pjsip
-  * [#1526] Set accounts order
-  * [#1317] Fixed pjsip lib dirs
-  * [#1317] Updated debian packaging for new pjsip configuration script
-  * [#1317] Switch to autogenerated guess and sub files
-  * [#1317] Updated pjsip inclusion in build system
-  * [#1317] Replaced pjsip guess and sub files
-  * [#1317] Fixed compilation issues on opensuse 11
-  * [#1505] account list seem to crash the application when clicking
-    Apply very fast...
-  * [#1456] Add a flag to be replaced in the control files
-  * [#1456] Added version dependancy handling
-  * put account alias in AccountWidgetItem rather than in the item with
-    "    " before.
-  * [#1034] The KDE client should start sflphoned if it is not started
-  * [#1500] Handle options for notifications and display on incoming
-    call.
-  * [#1443] Client should not crash when receive an unexpected
-    stateChanged signal
-  * [#1403] Do not stop the notification anymore
-  * [#1456] Added version dependancy handling
-  * [#1426] Daemon crashes when get alsa plugin
-  * [#1422] Improved error messages
-  * commit for merge
-  * [#1424] Change logo in tray icon and put a different one when
-    incoming call
-  * [#1425] first part done, window title...
-  * [#1413] add manpages creating and installing in build system
-  * [#1417] The client should start the account creation wizard if
-    started for the first time (if config file doesn't exist)
-  * [#1421] Make volume bars horizontal when dialpad is hidden.
-  * Changed main window title and fixed a mistake in sflphone_const.h
-  * [#1412] make debian package building work
-  * changelog changed.
-  * Changed addAccount method in gnome client.
-  * Debian and man folders added.
-  * [#1388] Change project name from sflphone_kde to sflphone-client-kde
-  * Better handle of kabc check.
-  * [#1351] Automatic generation of dbus interfaces in makefile
-    generated by cmake
-  * [#1307] Implement "edit before call" in history and address book.
-  * [#1344] change action_call label in call history from "call" to
-    "call back".
-  * [#1308] Implement Hook feature in kde client
-  * Improved build system.
-  * #1219 : Add address book configuration page
-  * Better handling of registration to the daemon.
-  * #1039 : Add tray icon in kde.
-  * Issue no 1216 : Double click on item in history or address book
-    causes call.
-  * display peer name in call list and call history when called from
-    address book.
-  * Address book functionnal with photo displayed.
-  * Help menu kde available but actions disappeared. All fonctions in
-    view.
-  * Address book functionnal but ugly and making its own sort in the
-    complete address book.
-  * Account choice on right click, clean out includes, page address
-    book, fixed bugs...
-  * Wizard, double click, context menu...
-  * Removed sflphone_kde.kdevelop.filelist
-  * Added account creation wizard and translated interface in english.
-  * Transfer functionnal but ugly.
-  * transfer not functionnal
-  * Bug fixed : unholding (UNHOLD_CURRENT, UNHOLD_RECORD)
-  * Commit functional for push. With install.sh
-  * Before merge.
-  * Problem with enable accounts. Account display increased.
-  * Functional with codec order working , playDTMF.
-  * Commit functional.
-  * sflphone_kde/build added in .gitignore.
-  * complete commit for checkout previous.
-  * Commit before checkout previous version to check the display
-    bug(little font everywhere...)
-  * Functionnal client. Rest : history icons, config icons and
-    functionalities
-  * commit before merge asavard for isRecording.
-  * Call and Automate fusion done and seems to work.
-  * Commiting before putting Automate class in Call class.
-  * Functionnal main window without recording, history, voicemail, kio
-    widgets.
-  * client kde avec kdevelop.
-  * Config Dialog almost finished.
-  * Base of QT client
-
- -- SFLphone Automatic Build System <team@sflphone.org>  Tue, 23 Jun 2009 11:13:42 -0400
-
-sflphone-client-gnome (0.9.5-SYSVER) SYSTEM; urgency=low
-
-    ** 0.9.5 release **
-
-  * [#1060] FIx bug in chinese translation
-  * [#1313] git add rtpTest.cpp rtpTest.h
-  * [#1313] Add init/close rtp tests
-  * [#1313] Basic instanciation of the rtp layer
-  * [#1449] Gtk-Critical concerning history filters and new calls
-  * [#1400] Make the match with the hostname instead of username
-  * [#1324] Change status bar label for "Using %s (%s)"
-  * [#1403] Icon size: 60x60 px
-  * [#1403] Do not remove notification, improve icon quality
-  * [#1403] Add smaller icon for gnome notifications
-  * [#1403] Prevent crash when hangup && no notification
-  * [#1403] Remove all actions on notifications; code refactoring
-  * [#1451] Use stun.sflphone.org as default STUN server
-  * [#1060] New po files - need to be translated
-  * [#1060] Update french translation - Rebuild template file
-  * [#1456] Add a flag to be replaced in the control files
-  * [#1454] Make cppunit optional; remove from build deps in control
-    files
-  * [#1401] Add libexpat1-dev dependency in control files
-  * [#1448] Take off these ugly debug messages
-  * [#1448] fixed getTelephoneTone and getTelephoneFile() called
-    repeatedly
-  * [#1406] add liblog4c-dev in build-depends
-  * [#1409] Restore .desktop icon
-
- -- SFLphone Automatic Build System <team@sflphone.org>  Mon, 25 May 2009 11:34:48 -0400
-
-sflphone-client-gnome (0.9.5-SYSVER~rc2) SYSTEM; urgency=low
-
-    ** 0.9.5 rc2 **
-
-  * [#1422] Improved error message
-  * [#1402] Fix pjsip build
-  * [#1404] Clear GTK-Critical Bug at client startup
-  * [#1422] Added automatic VM shutdown when building on more than one
-    VM
-  * [#1422] Fixed some issues with new changelog generation script
-  * [#1422] Moved distribution update to specific file
-  * [#1422] Dropped git-dch, replace by home made implementation
-  * [#1402] Fix pjsip build
-  * [#1404] Clear GTK-Critical Bug at client startup
-  * Changes for name based dbus connection
-  * Clean changelogs
-  * [#1343] Gnome: Implement a callback system to handle focus on
-    different widgets
-  * Debus Session
-  * Refactoring Python code, PEP8
-  * [#1430] Get back dbus_g_proxy_new_for_name
-  * [#1430] Get back DBUS_BUS_SESSION type
-  * [#1430] Dbus fixed owner message binding
-  * Second test with DBUS owner
-  * [#1404] Gnome -> Preferences -> Hooks
-  * [#1404] Gnome -> Preferences -> Recordings
-  * [#1404] Call History
-  * [#1404] Gnome -> Preferences -> Address Book
-  * [#1404] IF the first notification option disable the second
-    notification
-  * Dbus with fixed owner does not automatically start the deamon
-  * Add codec debug tests in pysflphone
-  * [#1407] Some print info
-  * [#1407] Add a scenario to pick_up action
-  * Test client dbus connection to a fixed owner
-  * Add python dbus test suite
-  * [#1161] Modified version handling in build system
-  * [#1314] Test pulse audio and audio streams connect and disconnect
-  * [#1402] Add info message after configure
-  * [#1402] Build the daemon with the local pjsip library (vs the
-    installed one)
-  * [#1009] Fix Codec Sampling Rate set to zeros
-  * [#1314] Add mutex to pulse layer audio streams
-  * [#1314] Refactoring pulseaudio stream to test connect disconnect
-  * [#1314] Refactoring of pulselayer to test conect/disconnect
-  * Add debug messages in debus calls concerning account
-  * [#1314] Add some return values to audio init functions
-  * [#1406] add liblog4c-dev in build-depends
-  * [#1409] Restore .desktop icon
-  * Bug #1405: Fix strings as requested.
-  * Bug #1404: Fix strings in preferences panel.
-
- -- SFLphone Automatic Build System <team@sflphone.org>  Tue, 19 May 2009 12:08:18 -0400
-
-sflphone-client-gnome (0.9.5-0ubuntu1~rc1) SYSTEM; urgency=low
-
-  [ SFLphone Project ]
-  * [#1262] Updated changelogs for version 0.9.5-0ubuntu1 Snapshot 2009-
-    05-05
-
-  [ Emmanuel Milou ]
-  * Add some python CLI client code; not really functional
-  * [#1108] Fix peerHungup method for IP to IP call
-
-  [ Alexandre Savard ]
-  * [#1108] Correct setting of SIP contact for direct IP call
-  * [#1108] SIP user agent handles incoming REFER
-
-  [ Emmanuel Milou ]
-  * Remove website from repository
-  * Update translation
-
-  [ Alexandre Savard ]
-  * Sflphone icon's tooltip changed for "configured" instead of
-    "registered"
-
-  [ Emmanuel Milou ]
-  * Update translation
-
-  [ Sflphone Project ]
-
- -- Sflphone Project <sflphone@mtl.savoirfairelinux.net>  Tue, 05 May 2009 19:16:13 -0400
-
-sflphone-client-gnome (0.9.5-0ubuntu1~beta) SYSTEM; urgency=low
-
-  [ Julien Bonjean ]
-  * Updated Eclipse stuff
-  * Improved addressbook config window
-  * Added sflphone Eclipse stuff
-  * Implemented addressbook list server side
-  * Moved dbus stuff in dbus directory
-  * Updated addressbook configuration
-
-  [ Emmanuel Milou ]
-  * Remove unuseful installation scripts. Use apt-get build-dep sflphone
-    instead
-  * fix bug #1090
-
-  [ Alexandre Savard ]
-  * defining speex 16khz
-
-  [ Emmanuel Milou ]
-  * Remove unuseful file from build system
-  * Start dns srv resolver
-
-  [ Alexandre Savard ]
-  * Basic ogg/vorbis initialization
-
-  [ Emmanuel Milou ]
-  * Handle incoming IP-to-IP invite correctly
-
-  [ Alexandre Savard ]
-  * speex wideband 16000
-
-  [ Emmanuel Milou ]
-  * Better handling of incoming IP to IP call
-  * DNS SRV resolution functional
-  * Implement IAX2 incoming URL
-  * Allow user to make IP call without any accounts configured
-  * Add a contextual menu to edit a number from the contacts tab
-  * Add comments, tooltip and new button to the contextual menu
-  * add delete event, migrate to GTK 2.16 for sexy icons
-  * Resolve ticket #1118
-  * Update suse spec file
-  * Add phone number cleanup functions, unit tests and panel
-    configuration
-  * Add pertinent test that fails
-  * fix dependencies for suse package
-  * Add contextual edit menu in history - #1120
-
-  [ Alexandre Savard ]
-  * Temporary comit: make speex wideband (16 khz)
-  * Temporary: shared object for speex narrow band
-  * Temporary: speex narrowband and wideband coexist
-
-  [ Julien Bonjean ]
-  * Fixed bug when no book selected
-  * Fixed addressbook related compilation warnings
-  * Fixed GTK client remaining compilation warnings
-  * Fixed segfault when book removed since last sflphone run
-  * Fixed bug when book is unreachable (ldap error)
-
-  [ Alexandre Savard ]
-  * Fix codec list in audio config window
-  * Active/inactive speex codec by payload
-
-  [ Julien Bonjean ]
-  * Updated gitignore
-  * Added some comments
-
-  [ Emmanuel Milou ]
-  * Add callto: handler script for browsers and al.
-  * Integrate test compilation in the daemon build-system
-
-  [ Julien Bonjean ]
-  * Fixed g_object_unref warning for pixbuf
-  * Cleaned too verbose output
-  * Fixed toolbar update warning
-  * Added support for asynchornous books open (first shot)
-
-  [ Emmanuel Milou ]
-  * Add a DBus call to fetch the call details from a call ID - Ticket
-    #928
-
-  [ Julien Bonjean ]
-  * Improved async open books
-  * Fixed bug #1139
-
-  [ Emmanuel Milou ]
-  * Add a way to save account order
-  * commit missing files
-
-  [ Julien Bonjean ]
-  * Introduced log4c (ticket #1162)
-
-  [ Emmanuel Milou ]
-  * Load/save account order functionnal - ticket #813
-
-  [ Alexandre Savard ]
-  * Add CELT codec (#1143)
-  * Make celt frame size 256  (*1143)
-
-  [ Julien Bonjean ]
-  * Switched everything to log4c (ticket #1162)
-  * Updated eclipse settings
-
-  [ Emmanuel Milou ]
-  * Restore adding account - ticket #1172
-  * Add liblog4c dependecy - ticket #1179
-
-  [ Alexandre Savard ]
-  * Double maxAvailByte for frame size in rtp (#1143)
-
-  [ Emmanuel Milou ]
-  * Add User-Agent SIP header - Ticket #1173
-
-  [ Julien Bonjean ]
-  * Fixed autoresize issue (#708)
-
-  [ Emmanuel Milou ]
-  * Remove libcppuint dependency for the debian packages
-  * Look for libsexy only if gtk version < 2.16 - Ticket #1116
-  * Remove libsexy dependency for jaunty. ticket #1116
-
-  [ Julien Bonjean ]
-  * Introduced unit tests (#1146)
-  * Updated gitignore
-  * Fixed Makefile (#1146)
-
-  [ Emmanuel Milou ]
-  * [TICKET #1112] Add a test on the voice buffer to send through iax
-    packets
-  * Remove doublon in dependencies
-  * Remove warnings from the client test framework
-  * Update version number to 0.9.5~beta
-  * Update build-package script
-  * Add check dependency in build-deps control file field
-  * Create debian files for the new sflphone-client-gnome
-  * [TICKET #1212] Add Replaces field in control files
-  * [TICKET #1212] Fix manpages installation path
-  * [TICKET #1212] Add maintainer scripts to create alternatives
-  * [#1212] Update the manpages generation - edit preinst maintainer
-    script
-  * [#1212] Fix reference error in manpage
-  * [#1212] Add missing files on the client side
-  * [#1212] Fix debian docs files - no TODO file
-  * [1212] Fix manpage creation problem
-  * [#1220] Generate client-side glue files and marshaller at
-    compilation time
-  * [#1220] Generate server-side glue files at compilation time
-  * [#1212] Change binary name to sflphone-client-gnome
-  * [#1212] Update .gitignore to fit the new working tree
-  * [#1220] Explicitly generate glue files before building the library
-  * [#1220] Compile dbus directory before audio
-  * [#1212] Create sflphone-common at the root of the repository
-  * [#1212] Re-add pjproject
-  * [#1212] Remove Makefile from repo
-  * [#1220] Fix Makefile.am
-  * [#1212] New working directory functional
-  * [#1212] Update .gitignore
-  * [#1212] Hack to make pjsip compile..
-  * [#1220] Use non-installed binary for dbusxx-xml2cpp
-  * [#1212] Add descriptive files, remove unuseful scripts from tools/
-
-  [ Alexandre Savard ]
-  * Restore speex codecs
-  * add frame size for celt (#1143)
-  * add framesize to codec, independant from audiolayer (#1143)
-  * use codec frame size in rtp (#1143)
-  * compute fixed_codec_framesize (#1143)
-  * do not resample if not required (#1143)
-  * add condition on resampling for decoder (#1143)
-  * add a condition on bytesAvail == 0 from mic data
-  * no maximum in rtp decode (#1143)
-  * compute maximum for decoding (#1143)
-
-  [ Emmanuel Milou ]
-  * [#1146] Implement unitary tests on the client-side
-
-  [ Alexandre Savard ]
-  * use float instead of int to compute max nb of sample (#1143)
-  * add nbSampleMax for unresampled data (#1143)
-  * make thread sleep during 5 ms insead of 20 (#1143)
-  * use unix usleep (#1143)
-  * 50 usecond thread!!!!! (#1143)
-  * try with the smallest compression (#1143)
-  * use timer set at framesize (#1143)
-
-  [ Emmanuel Milou ]
-  * [#1161] Restore changelog version
-
-  [ Alexandre Savard ]
-  * Remove celt stuff
-
-  [ Emmanuel Milou ]
-  * [#1161] Update changelog
-  * [#1220] Add Conflicts: sflphone in debian control files
-  * [#1179] Add liblog4c3 runtime dependency
-  * [#1212] FIx typo error in dependency list for itnrepid
-  * [#1212] FIx .desktop file to point on the right exec
-  * [#1212] Modify changelog replacing tag
-
-  [ Sflphone Project ]
-  * "[#1262] Updated changelogs for version 0.9.5-0ubuntu1~beta"
-
-  [ Emmanuel Milou ]
-  * [#1212] restore changelogs
-
-  [ Sflphone Project ]
-  * [#1262] Updated changelogs for version 0.9.5-0ubuntu1 Snapshot 2009-
-    04-27
-
-  [ Emmanuel Milou ]
-  * [#1212] restore changelogs
-
-  [ Sflphone Project ]
-  * [#1262] Updated changelogs for version 0.9.5-0ubuntu1~beta
-
-  [ Emmanuel Milou ]
-  * [#1212] restore changelogs
-
-  [ Sflphone Project ]
-
- -- Sflphone Project <sflphone@mtl.savoirfairelinux.net>  Mon, 27 Apr 2009 17:00:03 -0400
-
-sflphone-client-gnome (0.9.4-0ubuntu2) SYSTEM; urgency=low
-
-  [ Alexandre Savard ]
-  * Restore speex and GSM detection
-
-  [ Emmanuel Milou ]
-  * Fix bug #1090
- 
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Wed, 8 Apr 2009 11:29:15 -0500
-
-sflphone (0.9.4-0ubuntu1) SYSTEM; urgency=low
-
-  [ Emmanuel Milou ]
-  * Integrate DBus-c++ and libiax2 in the main build system
-  * Clean up in the working repository
-  * Reorder hooks configuration panel
-  * Protect case when no codecs are active
-  * Fix some return values
-  * Add unitary tests for the hook manager (premisces)
-  
-  [Yun Liu]
-  * Update chinese translation
-
-  [Sven Werlen]
-  * Update german translation
-
-  [Hussein Abdallah]
-  * Update russian translation
-
-  [Maxime Chambreuil]
-  * Update spanish translation
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 3 Apr 2009 18:29:15 -0500
-
-
-sflphone (0.9.4-rc1) SYSTEM; urgency=low
-
-  [ Emmanuel Milou ]
-  * Fix bug while trying to hold/unhold several simultaneous call
-  * Improve address book build system
-  * Implement SIP url popup on incoming call
-  * Improve GTK+ panel configuration
-  [ Julien Bonjean ]
-  * GTK+ client refactoring
-  * GTK+ clean up
-  * Address book improvment
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 27 Mar 2009 18:29:15 -0500
-
-sflphone (0.9.4-0beta1) SYSTEM; urgency=low
-
-  [ Alexandre Savard ]
-  * Display codec used during conversation on the GUI
-  * Enable/disable STUN parameters at runtime
-  * Refactor search bar use
-  [ Emmanuel Milou ]
-  * Build system fixes
-  * Implement SIP re-invite
-  * Implement IP to IP call
-  [ Julien Bonjean ]
-  * Integrate GNOME address book based on evolution data server
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 20 Mar 2009 18:29:15 -0500
-
-
-sflphone (0.9.3-0ubuntu3) SYSTEM; urgency=low
-
-  [ Alexandre Savard ]
-  * Both playback and record streams in PA_STREAM_CORKED (pulseaudio)
-  * Use PLUGHW device for ALSA capture
-  * Functional IAX and SIP recording for voicemail
-  * Use the less CPU-consuming interpolator algorithm for resampling
-  * Display in GTK GUI the codec used in conversation
-  * GTK GUI use ASCII instread of utf-8
-  * Add record menus in GTK GUI
-  * Put on hold when dialing a new number
-  * AccountID's are saved in the history
-
-  [ Emmanuel Milou ]
-  * Integrate DBUS C++, libiax2 in the git repository
-  * Update website
-  * Use libspeexdsp only if available on the system
-  * Updated .gitignore file
-
-  [Cyrille Béraud]
-  * Account assistant manager improvment
-  * Add an email request when creating a new account to receive voicemails
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Sat, 14 Feb 2009 13:29:15 -0500
-
-sflphone (0.9.3-0ubuntu2) SYSTEM; urgency=low
-
-  [ Emmanuel Milou ]
-  * Add compilation note in README
-  * Use default ALSA plugin for capture
-  * Fix the ALSA capture problem one more time
-  * Clean up debug messages in dbus.c
-  * Add libspeexdsp dependency
-  * Remove implicit declaration compilation warnings
-  * Fix links in the website, add release note
-  * Change capture for the website front page
-  * Add alsa devel dependency in build-depends control file field
-  * Clean up, indentation, try to handle latency problems in iax/pulseaudio
-  * Remove pjsip generated files from the repo
-  * Use the previous declared curAlias function in accountwindow
-  * Fix bug in history call duration when the call fails
-  * Remove runtime warning in the GTK+ client
-  * Add librsvg2-common dependency to load SVG under KDE
-  * Refresh .gitignore
-  * Update locales files + french translation
-  * Add configuration panel for future noise reduction
-  * Add configuration panel for audio record module
-  * Daemon less verbose; accounts don't try to access STUn options anymore
-  * Fix typo in configwindow
-  * Add content in the official website
-  * use a GTK_STOCK icon for the record button
-  * Complete description text in the assistant manager
-  * Add libtool flags in client configure.ac
-  * Remove unuseful dependency (snd)
-  * Fix SIP transfer problems
-  * Remove previous version of PJSIP from the repo
-  * Upgrade PJSIP to version 1.0.1
-  * Add the new website source in the repository
-  * Use libspeexdsp for silence detection only if available
-
-  [ Loïc Faure-Lacroix ]
-  * Ajout du logo gpl3
-  * Ajout des images
-  * Ajout de la section screenshot pour le site
-  * Ajout du favicon dans le header
-  * Modification des cartes
-
-  [ Alexandre Savard ]
-  * Clean up <speex/libspeexdsp>
-  * Small cleanup
-  * Save Wave fixed
-  * Fix new call button when recording
-  * libspeexdsp added
-  * Recording: default home folder at startup
-  * Minor changes to config window
-  * IAX recording fixed
-  * Set / get recording path, still need some GTK for client
-  * AudioRecord file name format
-  * Now recording in HOME folder
-
-  [ Cyrille Béraud ]
-  * Fix bug in reqaccount.c
-
-  [ Maxime Chambreuil ]
-  * Update spanish translation
-
-  [Yun Liu ]
-  * Update chinese translation 
-
-  [ Hussein Abdallah ]
-  * Update russian translation
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Sat, 14 Feb 2009 13:29:15 -0500
-
-sflphone (0.9.3-0ubuntu1) SYSTEM; urgency=low
-
-  * Remove debug
-  * Join thread before leaving
-  * Fix implicit declaration in reqaccount
-  * Add REST code to build the request to server
-  * Fix GValue initialization warnings
-  * Update version number, fix implicit declaration, fix GTK markup
-    warnings
-  * Apply patch to create custom SIP account from our own server
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 06 Feb 2009 19:17:32 -0500
-
-sflphone (0.9.2-2ubuntu9) SYSTEM; urgency=low
-
-  [ Alexandre Savard ]
-  * Speex audio codec preprocessing initialization
-  * peer hung up segmentation fault solved
-  * Stop recording when transfering
-  * Terminate only one call
-  * Add isRecording() function
-  * Fix call_icon GTK client
-  * Fix SIPCallClose() function, recorded file now close properly
-  * Function terminateSIPCall added in sipvoiplink and managerimpl
-  * Fix thread destructor
-  * setRecordingOption function implement in audiorecord
-  * Record now implemented in Call class
-  * Record interface complete (on hold erase previous recording)
-  * Added recButton in client
-  * Added: record button related icons
-  * Record button added
-  * Overload AudioRecord::recData to get mic and speaker data mixed
-  * Recording now in audiortp::run() method
-  * Audio recording working in AudioRTP: receiveSessionForSpeaker
-  * Open/close a wave file when pulse audio stream start/stop
-
-  [ Emmanuel Milou ]
-  * Fix path for GTK+ icons; clean up
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Thu, 05 Feb 2009 18:27:53 -0500
-
-sflphone (0.9.2-2ubuntu8) SYSTEM; urgency=low
-
-  [ Emmanuel Milou ]
-  * Update changelogs
-  * Fix bug in merge and in Makefile.am
-  * Terminate only one call
-  * Disable PJsip shutdown when changing STUN parameters
-  * Function terminateSIPCall added in sipvoiplink and managerimpl
-  * Add a timer to the alsa thread to not jam the CPU load
-  * Fix bug in sipvoiplink.cpp
-  * Clean shutdown of pulseaudio on quiting
-  * Fix DTMF at first start with Pulseaudio
-  * Remove zeroconf from the build system
-  * Add a library manager + exception handling
-  * Clean up in the working directory
-  * Better handling of capture XRUNs
-  * Restore mic adjust volume on ALSA layer
-  * Protect device ALSA operation if not opened
-  * Fix the switching layer bug
-  * Use dynamic_cast<> to use audiolayer-specific methods
-  * Open the audio devices only once at startup
-  * Refactoring of the ALSA part
-  * Functional plug-in manager
-  * Use a C++ thread to handle tones and DTMF in ALSA
-  * Restore IAXVoIPLink, restore Mutex
-  * Make the plugins registering against the plugin manager
-  * Migrate to 1->N relationship between voiplink and accounts
-  * API plugin for registration
-  * Use C++ thread in SIP, move everything in sipvoiplink
-  * Complete singleton pattern for the plugin manager
-  * Add -Wno-return-type compilation flag to remove warnings; Update
-    version number in configure.ac
-  * Add the dynamic loading for the plugin framework; integate unittest
-
-  [ Yun Liu ]
-  * Update rpm spec file
-  * modify build package script and spec file for suse
-
-  [ Alexandre Savard ]
-  * Add audiorecorder plugin and testaudiorecorder
-  * Add audio Recording class, edit global.h
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Wed, 04 Feb 2009 14:00:30 -0500
-
-sflphone (0.9.2-2ubuntu7) SYSTEM; urgency=low
-
-  [ Emmanuel Milou ]
-  * Update changelog to 0.9.2-6
-  * Fix some dbus-glib implementation details on the client side
-  * Init history after dbus initialization
-  * Add error checking in useragent; Clean sipvoiplink
-  * Prevent crash when trying to call an empty number
-  * Set the volume of the playback stream to PA_VOLUME_NORM at startup
-  * Fix GTK+ generic value double initialization
-  * Fix jaunty control file dependency problems
-  * Fix jaunty control file dependency problems
-
-  [ Yun Liu ]
-  * Fix bug ticket # 137
-  * Tolerant to gsm library of OpenSuse 11
-
-  [ Sven Werlen ]
-  * Update german translation
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 23 Jan 2009 17:48:13 -0500
-
-sflphone (0.9.2-2ubuntu6) SYSTEM; urgency=low
-
-  [ Emmanuel Milou ]
-  * Migrate STUN configuration to the main config window
-  * Update french translation
-  * Other tiny memory leaks
-  * Fix memory leak in sampleconverter.cpp
-  * Generate packages from the release branch
-  * update the build package script
-  * modify the control files with architecture=any
-  * Remove valgring uninitialized value
-  * IAX and SIP use the same global variables to set account
-    configuration ; fix broken code
-
-  [ Maxime Chambreuil ]
-  * Update spanish translation
-
-  [ Hussein Abdallah ]
-  * Update russian translation
-
-  [ Yun Liu ]
-  * Update translation files
-  * Fix the bug when user uncheck the account which fails in the
-    previous registration
-  * Add stun error status
-  * Fix bug ticket #143
-  * Script for auto-install dependencies
-  * Fix bug ticket #140
-  * Fix bug ticket 141
-  * Fix the reregister process when user change the details of an
-    account
-
- -- Emmanuel Milou <manu@sulfur.inside.savoirfairelinux.net>  Fri, 16 Jan 2009 18:19:05 -0500
-
-sflphone (0.9.2-2ubuntu5) SYSTEM; urgency=low
-
-  * Fix memory leak in the pulseaudio callback
-  * Update debian package generation script
-  * Warnings removal in GTK+ client
-  * Clean adjust volume method in alsalayer
-  * Plug the sflphone playback volume control to the pulseaudio volume
-    manager
-  * Display the date in history according to the current locale
-  * Generate the changelog according to the git commit messages
-  * Complete header in chinese translation file
-  * Use the right gpg key to sign the packages
-  * add debian jaunty jackalope support
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Wed, 14 Jan 2009 21:17:20 -0500
-
-sflphone (0.9.2-2ubuntu4) SYSTEM; urgency=low
-
-  [ Emmanuel Milou ]
-  * add german translation
-  
-  [ Yun Liu ]
-  * Fix GUI crash in Ubuntu8.10 64bit system
-  
- -- Yun Liu <yun.liu@savoirfairelinux.com>  Thu, 08 Jan 2009 13:08:51 -0500
-
-sflphone (0.9.2-2ubuntu3) SYSTEM; urgency=low
-
-  [ Emmanuel Milou ]
-  * The main thread synchronizes the ringtone thread
-  * disable custom ringtone for the ALSA layer
-  * Fix the Makefile.am in man directory, add a SEE ALSO section
-  
-  [ Yun Liu ]
-  * Fix daemon crash caused by the previous patch ( for bug ticket #129)
-  
- -- Yun Liu <yun.liu@savoirfairelinux.com>  Tue, 06 Jan 2009 16:18:38 -0500
-
-sflphone (0.9.2-2ubuntu2) SYSTEM; urgency=low
-  
-  * Fix bug ticket #129
-  
- -- Yun Liu <yun.liu@savoirfairelinux.com>  Wed, 5 Jan 2009 15:54:53 -0500
-
-sflphone (0.9.2-2ubuntu1) SYSTEM; urgency=low
-
-  * Migrate from eXosip library to pjsip
-  * Add multiple SIP accounts support
-  * Fix ringtones problems
-  * Add a pulseaudio support
-  * Improve audio quality with ALSA
-  * Add chinese translation
-  * Improve spanish translation
-  * Migrate to a maintained C++ DBus bindings
-  * Clean and improve the build system
-  * Add build-dependency on Perl because we need pod2man to generate manpages
-
- -- Yun Liu <yun.liu@savoirfairelinux.com>  Wed, 26 Nov 2008 09:47:53 -0500
-
-sflphone (0.9.1) unstable; urgency=low
-  * Add a search tool in the history
-  * Migrate some gtk_entry_new to sexy_icon_entry_new
-  * Bug fix (Ticket #78): The voicemail password isn't displayed anymore in
-    the history tab
-  * Add the SIP registration expire value in the user file.
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Thu, 22 May 2008 11:14:25 -0500
-
-sflphone (0.9.0) unstable; urgency=low
-  * Add history features
-    * Call date
-    * Call duration
-    * Mouse events in the history tab
-  * Smooth switch from the history tab to the calls tab
-  * Remove most of GTK-Critical warnings
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Wed, 13 May 2008 16:58:25 -0500
-
-sflphone (0.9-2008-06-06) unstable; urgency=low
-  * Audio bug correction: capture stopped after a few minutes of conversation
-  with USB Plantronics sound card
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Tue, 06 May 2008 16:58:25 -0500
-
-sflphone (0.9-2008-05-06) unstable; urgency=low
-  * Bug correction: account creation with the assistant
-  * GTK+ warnings removal
-  * libnotify warnings removal
-  * Remove aliasing on the SFLphone logo
-  
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Mon, 05 May 2008 16:58:25 -0500
-
-sflphone (0.9) unstable; urgency=low
-  * Clean dependencies ( removal of libboost )
-  * Several GTK improvement and updates
-    -account window
-    -configuration window
-  * Migrate from GtkCheckMenuItem to GtkImageMenuItem  
-  * ALSA standard I/O transfers: MMAP instead of R/W
-  * Fix speex audio quality
-  * IAX2 protocol
-    -Fix hold/unhold situation
-    -Add on hold music
-  * SIP protocol
-    -Ringtone on incoming call
-    -Fix transfer situation
-  * Add desktop notification ( libnotify )
-  * Improve the system tray icon behaviour
-  * Improve registration error handling
-  * Register/unregister from the account window takes effect without starting back SFLphone
-  * Compilation warnings removal
-  * Call history
-  * Add an account configuration wizard
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Wed, 30 Apr 2008 16:58:25 -0500
-
-sflphone (0.8.2) unstable; urgency=low
-  * Internationalization of the GTK GUI
-  * English / French
-  * STUN support
-  * Slight modifications of the graphical interface ( tooltips, dialpad, ...)
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 21 Mar 2008 11:37:53 -0500
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/compat b/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/compat
deleted file mode 100644
index 7ed6ff82de..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/compat
+++ /dev/null
@@ -1 +0,0 @@
-5
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/control.hardy b/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/control.hardy
deleted file mode 100644
index 95d2f2538c..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/control.hardy
+++ /dev/null
@@ -1,20 +0,0 @@
-Source: sflphone-client-gnome
-Maintainer: SavoirFaireLinux Inc <emmanuel.milou@savoirfairelinux.com>
-Section: gnome
-Priority: optional
-Build-Depends: debhelper (>= 5), libgcc1, autoconf, automake, libtool, libgtk2.0-dev, libsexy-dev, libdbus-glib-1-dev, libnotify-dev, libebook1.2-dev, check, liblog4c-dev
-Standards-Version: 3.7.3
-
-Package: sflphone-client-gnome
-Priority: optional
-Architecture: any
-Depends: sflphone-common (=VERSION), libdbus-glib-1-2 (>= 0.73), libgtk2.0-0 , libc6 (>= 2.3.6-6) , libglib2.0-0 (>= 2.12.0), libdbus-glib-1-2, libnotify1 (>= 0.4), libsexy2 (>= 0.1), librsvg2-common (>=2.22.2), liblog4c3
-Replaces: sflphone
-Conflicts: sflphone
-Homepage: http://www.sflphone.org
-Description: GNOME client for SFLphone
- Provide a GNOME client to SFLphone.
- SFLphone is meant to be a robust enterprise-class desktop phone.
- SFLphone is released under the GNU General Public License.
- SFLphone is being developed by the global community, and maintained by
- Savoir-faire Linux, a Montreal, Quebec, Canada-based Linux consulting company.
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/control.intrepid b/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/control.intrepid
deleted file mode 100644
index 17532c599e..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/control.intrepid
+++ /dev/null
@@ -1,20 +0,0 @@
-Source: sflphone-client-gnome
-Maintainer: SavoirFaireLinux Inc <emmanuel.milou@savoirfairelinux.com>
-Section: gnome
-Priority: optional
-Build-Depends: debhelper (>= 5), libgcc1, autoconf, libtool, libgtk2.0-dev, libsexy-dev, libdbus-glib-1-dev, libnotify-dev, libebook1.2-dev, check, liblog4c-dev
-Standards-Version: 3.8.0
-
-Package: sflphone-client-gnome
-Priority: optional
-Architecture: any
-Depends: sflphone-common (=VERSION), libdbus-glib-1-2 (>= 0.73), libgtk2.0-0 , libc6 (>= 2.3.6-6) , libglib2.0-0 (>= 2.12.0), libdbus-glib-1-2, libnotify1 (>= 0.4), libsexy2 (>= 0.1), librsvg2-common (>= 2.22.2), liblog4c3
-Replaces: sflphone
-Conflicts: sflphone
-Homepage: http://www.sflphone.org
-Description: GNOME client for SFLphone
- Provide a GNOME client to SFLphone.
- SFLphone is meant to be a robust enterprise-class desktop phone.
- SFLphone is released under the GNU General Public License.
- SFLphone is being developed by the global community, and maintained by
- Savoir-faire Linux, a Montreal, Quebec, Canada-based Linux consulting company.
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/control.jaunty b/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/control.jaunty
deleted file mode 100644
index 9b9c3130e5..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/control.jaunty
+++ /dev/null
@@ -1,20 +0,0 @@
-Source: sflphone-client-gnome
-Maintainer: SavoirFaireLinux Inc <emmanuel.milou@savoirfairelinux.com>
-Section: gnome
-Priority: optional
-Build-Depends: debhelper (>= 5), libgcc1, autoconf, automake, libtool, libgtk2.0-dev (>=2.16), libdbus-glib-1-dev, libnotify-dev, libebook1.2-dev, check, liblog4c-dev, libgnomeui-dev
-Standards-Version: 3.7.3
-
-Package: sflphone-client-gnome
-Priority: optional
-Architecture: any
-Depends: sflphone-common (=VERSION), libdbus-glib-1-2 (>= 0.73), libgtk2.0-0 (>=2.16) , libc6 (>= 2.3.6-6) , libglib2.0-0 (>= 2.12.0) ,libdbus-glib-1-2, libnotify1 (>= 0.4), librsvg2-common (>=2.22.2), liblog4c3
-Replaces: sflphone
-Conflicts: sflphone
-Homepage: http://www.sflphone.org
-Description: GNOME client for SFLphone
- Provide a GNOME client for SFLphone.
- SFLphone is meant to be a robust enterprise-class desktop phone.
- SFLphone is released under the GNU General Public License.
- SFLphone is being developed by the global community, and maintained by
- Savoir-faire Linux, a Montreal, Quebec, Canada-based Linux consulting company.
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/copyright b/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/copyright
deleted file mode 100644
index fbde2314be..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/copyright
+++ /dev/null
@@ -1,28 +0,0 @@
-This package was debianized by Emmanuel Milou <emmanuel.milou@savoirfairelinux.com> on
-Fri, 3 Apr 2009 09:47:53 -0500.
-
-It was downloaded from the git repository of SFLphone: git://sflphone.org/git/sflphone.git
-
-Upstream Author: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
-
-Copyright:
-
-Savoir-Faire Linux Inc.
-
-License:
-
-This software is copyright (c) 2004-2009 Savoir-Faire Linux inc.
-
-You are free to distribute this software under the terms of
-the GNU General Public License version 3.
-On Debian systems, the complete text of the GNU General Public
-License can be found in the file `/usr/share/common-licenses/GPL'.
-
-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., 51 Franklyn St, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/cron.d b/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/cron.d
deleted file mode 100644
index d11e611777..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/cron.d
+++ /dev/null
@@ -1,4 +0,0 @@
-#
-# Regular cron jobs for the sflphone package
-#
-0 4	* * *	root	sflphone_maintenance
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/dirs b/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/dirs
deleted file mode 100644
index e2dc98dcb2..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/dirs
+++ /dev/null
@@ -1,7 +0,0 @@
-usr/bin
-usr/share/applications
-usr/share/pixmaps
-usr/share/sflphone
-usr/share/locale
-usr/share/doc
-usr/share/man
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/docs b/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/docs
deleted file mode 100644
index 9830da213f..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/docs
+++ /dev/null
@@ -1,5 +0,0 @@
-NEWS
-README
-ChangeLog
-AUTHORS
-
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/manpages b/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/manpages
deleted file mode 100644
index 7e75945912..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/manpages
+++ /dev/null
@@ -1,2 +0,0 @@
-debian/sflphone-client-gnome/usr/share/man/man1/sflphone-client-gnome.1
-debian/sflphone-client-gnome/usr/share/man/man1/sflphone.1
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/postinst b/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/postinst
deleted file mode 100644
index ebee7fa2bb..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/postinst
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh -e
-
-update-alternatives --install /usr/bin/sflphone sflphone /usr/bin/sflphone-client-gnome 100 \
-                    --slave /usr/share/man/man1/sflphone.1.gz sflphone.1.gz \
-                            /usr/share/man/man1/sflphone-client-gnome.1.gz
-
-exit 0
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/postrm b/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/postrm
deleted file mode 100644
index 70be710bd1..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/postrm
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-# postrm script for sflphone
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-#        * <postrm> `remove'
-#        * <postrm> `purge'
-#        * <old-postrm> `upgrade' <new-version>
-#        * <new-postrm> `failed-upgrade' <old-version>
-#        * <new-postrm> `abort-install'
-#        * <new-postrm> `abort-install' <old-version>
-#        * <new-postrm> `abort-upgrade' <old-version>
-#        * <disappearer's-postrm> `disappear' <overwriter>
-#          <overwriter-version>
-# for details, see http://www.debian.org/doc/debian-policy/ or
-# the debian-policy package
-
-if [ "$1" = "purge" ]
-then
-
-  # remove the user config file
-  rm -f $HOME/.sflphone/sflphonedrc
-
-fi
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
-
-
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/preinst b/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/preinst
deleted file mode 100644
index ab8a90ca57..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/preinst
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-# postrm script for sflphone
-#
-# see: dh_installdeb(1)
-
-set -e
-
-package=sflphone-client-gnome
-
-case "$1" in
-    install|upgrade)
-        ## Clean up the previous manpage
-        if [ -f /usr/share/man/man1/sflphone-gtk.1 ]; then
-            rm /usr/share/man/man1/sflphone-gtk.1
-        fi
-    ;;
-esac
-
-exit 0
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/prerm b/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/prerm
deleted file mode 100644
index 5e90217068..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/prerm
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh -e
-
-
-if [ "$1" = "remove" ]; then
-    # Remove alternatives symlink set in postinst
-    update-alternatives --remove sflphone /usr/bin/sflphone
-fi
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/rules b/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/rules
deleted file mode 100755
index 3ff2428272..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-gnome/rules
+++ /dev/null
@@ -1,117 +0,0 @@
-#!/usr/bin/make -f
-# -*- makefile -*-
-# Sample debian/rules that uses debhelper.
-# This file was originally written by Joey Hess and Craig Small.
-# As a special exception, when this file is copied by dh-make into a
-# dh-make output file, you may use that output file without restriction.
-# This special exception was added by Craig Small in version 0.37 of dh-make.
-
-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
-export DH_OPTIONS
-
-package=sflphone-client-gnome
-
-CXX = g++-4.0
-CFLAGS = -Wall -g
-DEB_INSTALL_MANPAGES_sflphone_client_gnome = sflphone.1 sflphone-client-gnome.1
-
-configure: configure-stamp
-configure-stamp:
-	dh_testdir
-	# Add here commands to configure the package.
-	./autogen.sh
-	./configure --prefix=/usr
-	touch configure-stamp
-
-
-#Architecture 
-build: build-arch build-indep
-
-build-arch: build-arch-stamp
-build-arch-stamp: configure-stamp 
-
-    # Add here commands to compile the arch part of the package.
-	$(MAKE) 
-	touch $@
-
-build-indep: build-indep-stamp
-build-indep-stamp: configure-stamp 
-
-       # Add here commands to compile the indep part of the package.
-       #$(MAKE) doc
-	touch $@
-clean:
-	dh_testdir
-	dh_testroot
-	rm -f build-arch-stamp build-indep-stamp configure-stamp
-	# Add here commands to clean up after the build process.
-	[ ! -f Makefile ] || $(MAKE) distclean 
-
-ifneq "$(wildcard /usr/share/misc/config.sub)" ""
-	cp -f /usr/share/misc/config.sub config.sub
-endif
-ifneq "$(wildcard /usr/share/misc/config.guess)" ""
-	cp -f /usr/share/misc/config.guess config.guess
-endif
-	dh_clean 
-
-install: install-indep install-arch
-install-indep:
-	dh_testdir
-	dh_testroot
-	dh_clean -k -i 
-	dh_installdirs -i
-	# Add here commands to install the package into debian/sflphone.
-
-install-arch:
-	dh_testdir
-	dh_testroot
-	dh_clean -k -s 
-	dh_installdirs -s
-	# Add here commands to install the arch part of the package into 
-	# debian/tmp.
-	$(MAKE) DESTDIR=$(CURDIR)/debian/$(package) install
-	dh_install -s
-# Must not depend on anything. This is to be called by
-# binary-arch/binary-indep
-# in another 'make' thread.
-
-binary-common:
-	dh_testdir
-	dh_testroot
-	dh_installchangelogs ChangeLog
-	dh_installdocs
-	dh_installexamples
-#	dh_installmenu
-#	dh_installdebconf	
-#	dh_installlogrotate	
-#	dh_installemacsen
-#	dh_installpam
-#	dh_installmime
-#	dh_python
-#	dh_installinit
-#	dh_installcron
-#	dh_installinfo
-	dh_installman
-	dh_link
-	dh_strip
-	dh_compress 
-	dh_fixperms
-#	dh_perl
-	dh_makeshlibs
-	dh_installdeb
-#	dh_shlibdeps
-	dh_gencontrol
-	dh_md5sums
-	dh_builddeb
-# Build architecture independant packages using the common target.
-binary-indep: build-indep install-indep
-	$(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
-
-# Build architecture dependant packages using the common target.
-binary-arch: build-arch install-arch
-	$(MAKE) -f debian/rules DH_OPTIONS=-s binary-common
-
-binary: binary-arch binary-indep
-.PHONY: build clean binary-indep binary-arch binary install install-indep install-arch configure
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/changelog b/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/changelog
deleted file mode 100644
index d59275102a..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/changelog
+++ /dev/null
@@ -1,1284 +0,0 @@
-sflphone-client-kde (0.9.6-SYSVER) SYSTEM; urgency=low
-
-    ** 0.9.6 **
-
-  * Documentation on echo test
-  * [redmine_down] codec names not displayed in total
-  * [redmine_down] crash when hanging up a dialing call because tries to
-    add it to history whereas no starttime
-  * [#1927] alternate every time screen changed to call history
-  * [#1886] clean code
-  * [#1886] debug messages when loading history removed
-  * [redmine_down] sflphone-kde icons
-  * [#1855] Update language files
-  * [#1502] Update version number
-  * [redmine_down] setHistory at close
-  * [#redmine_down] Handle PJ_DECLINE_SC as failure
-  * [#1923] Fix segmentation fault when adding a new account
-  * [#1923] Check on iterator before setting the config
-  * [#1904] Added mnemonic to tabs in sflphone-client-gnome.
-  * [#1905] The daemon was not sending the currentSelectedCodec signal
-    on dbus when answering a call.
-  * [#1922] Default values set to all account details
-  * [#1886] Spinbox reg expire enables apply, and address book is not
-    visible when disabled
-  * [#1905] Bug fix for segmentation fault caused by an empty string,
-  * [#1910] Warnings in test directory
-  * [#1919] Error fixed
-  * [#1855] Update russian translation - Hussein Abdallah
-  * [#1910] Remove files
-  * [#1919] fixed
-  * [#1777] Code indentation
-  * [#1918] fixed
-  * [#1917] fixed
-  * [#1910] Remove warnings compilation in src
-  * [#1886] removed AccountListModel in configskeleton
-  * [#1914]
-  * [#1911] check previous and new port
-  * [#1910] Remove compilation warnings in src/dbus and src/history
-  * [#1910] Remove compilation warnings in src/audio
-  * [1855] Update german translation - Sven Werlen
-  * [#1909] removed
-  * [#1906] Done
-  * [#1904] The registration expire value is now configurable from the
-  * Cleaned up debug messages.
-  * [#1886] separated initCallItem in two functions
-  * [#1886] reversed error in commit
-  * [#1886] clean debug
-  * [#1886] changed Name of classes and files
-  * [#1886] clean
-  * [#1870] In call_state_cb (dbus.c:126), _time_stop was overridden by
-    the actual time.
-  * [#1884] Added some new gpg flags to prevent tty warnings
-  * [#1886] Clean audio config dialog
-  * [#1886] No more compile warnings. + 1 comm
-  * [#1872] Check if the user input is smaller than PJ_MAX_HOSTNAME.
-  * [#1886]
-  * [#1785] Fixed build when no new commit
-  * [#1852] If chosen by the user, the hostname can now be solved and
-    used
-  * [#1871] * and # inverted back
-  * [#1869] Conditional compilation that checks if
-  * [#1309] removed test in main
-  * [#1425] Put actions in SFLPhone window class instead of ui view,
-    made a separate toolbar for screens.
-
- -- SFLphone Automatic Build System <team@sflphone.org>  Mon, 27 Jul 2009 09:53:37 -0400
-
-sflphone-client-kde (0.9.6~rc2-SYSVER) SYSTEM; urgency=low
-
-    ** 0.9.6~rc2 **
-
-  * [#1755] Remove generated file
-  * [#1753] restore ilbc ...
-  * [#1866] Methods getSipPort and setSipPort now have an effect on the
-  * [#1753] make pjsip compile without ilbc. Use ./autogen.sh --disable-
-    ilbc-codec
-  * [#1855] Fix error in russian translation
-  * [#1805] Remove the old flawed signal mechanism which was failing in
-  * [#1855] Refresh translation
-  * Spanish translation finished + po README files updated + echo's in
-    copy-in-clients
-  * [#1850] Yun made the chinese HK-CN translation
-  * [#1848] Fix transfer interface bug
-  * [#1862] At install, kde client installs only french translation file
-  * [#1841] A new fallback mechanism was added to the internal resolver
-    in PJSIP.
-  * Started AccountList model/view
-  * [#1855] Remove po subdir in Makefile.am
-  * [#1855] Fix typo error in sflphone-client-gnome
-  * [#1855] Do not generate Makefile in sflphone-common/po
-  * [#1855] Copy translation files into both clients dirs
-  * [#1855] Remove po dir from sflphone-common
-  * Comments added
-  * [#1860] mailbox->voicemail...
-  * make scripts executable
-  * [#1855] French translation
-  * [#1855] Chinese zh_HK partially filled...
-  * [#1859] An unnamed pipe monitored by poll() was added. When we want
-    to
-  * [#1855] Sven completed the first part of the german translation
-  * [#1855] Cantonese manually filled for already translated, almost
-    equal strings
-  * [#1855] Merge russian translation
-  * [#1855] Spanish manually filled for already translated, almost equal
-    strings
-  * [#1855] Update german translation in ./lang/de
-  * [#1858] This problem was fixed by removing a useless line in
-  * [#1855] merged existing translations in lang/ sflphone.po's
-  * [#1842] [#1843] An attempt at improving the expected behaviour that
-    can't
-  * [#1855] added po folder in gnome client and scripts for copying from
-    common lang folder to clients
-  * [#1853] Edit before call does nothing on call history
-  * Put most language entries possible in common. From 300 to 250
-    entries. Stays underscores problem. Scripts for copy in clients.
-  * commit to merge master
-  * [#1825] Changed "Bad authentification" to "Authentication Failed".
-  * common po files
-  * [#1753] Remove ILBC from pjproject
-
- -- SFLphone Automatic Build System <team@sflphone.org>  Fri, 17 Jul 2009 19:13:11 -0400
-
-sflphone-client-kde (0.9.6~rc1-SYSVER) SYSTEM; urgency=low
-
-    ** 0.9.6~rc1 **
-
-  * Update some version number
-  * [#1792] Creates .sflphone directory with permission 600. Also,
-    "chmod 600" after
-  * [#1810] GUI is now notified that the call failed. Also, a segfault
-    was
-  * [#1816] Address book search disabled when disabled address book and
-    enabled it back plus button stays triggered
-  * codeclistmodel + asynchronous loading of address book +
-    enable/disable address book
-  * [#1810] Now checking SDP answer after 200 OK. Still need to
-    implement full
-  * [#1794] Can't use the interface during a call
-  * Updated translation files
-  * Russian translation integrated
-  * Codec list model/view started.
-  * [#1807] Add configure.ac in pjproject-1.0.3
-  * [#1787] closeRtpSession added in some places where it should have
-    been
-  * Use Item class for contacts and accounts
-  * Comments + clean code
-  * [#1794] Improved debug messages
-  * [#1805] Replaced the old and unreliable mecanism that was was
-    waiting for
-  * [#1794] Can't use the interface during a call
-  * [#1787]  For those cases where no registered SIP account is
-    configured
-  * [#1797] Make pjsip compile
-  * [#1787] Minor changes. Removed useless commented line. Changed order
-    of
-  * [#1777] Code indentation
-  * [#1797] Update package generation with new pjsip version
-  * [#1798] Does not hang up when the call is building up
-  * [#1797] Update .gitignore with new pjsip version
-  * [#1797] Remove generated files from repo
-  * [#1797] Main build system now uses pjproject-1.0.3
-  * [#1797] Add pjproject-1.0.3
-  * [#1797] Remove pjproject-1.0.2
-  * [#1796] Computing time optimization (samplerate conversion)
-  * [#1787] _audiortp->start() moved away from offhold(),
-    SIPCallAnswered()
-  * [#1312] Added new states for calls initialized by other clients
-  * [#1795] Crashes when adding a new account, checking it and applying
-  * [#1782] Missing icons
-  * [#1793] KDE client compilation problem
-  * Fake ringtone files can no longer be set.
-  * indentation
-  * [#1312] Able to fetch to differentiate incoming/ringing call state
-  * [#1784] Use DESTDIR variable in po Makefile - fix language file
-    installation
-  * [#1785] Fixed typo
-  * [#1785] Fixed changelog update
-  * [#1759] ./autogen.sh --prefix=/usr --with-debug to use optimization
-    level 0
-  * [#1773] Changed snapshot naming convention
-  * [#1773] Removed gpg agent use, added repository cache cleaning
-  * [#1759] Use optimization level 0 for repository, 2 for packages
-  * [#1777] Code indentation/formatting
-  * Translated new features in french
-  * [#1785] Added missing changelog entry
-  * [#1781] Window title is SFLPhone
-  * [#1777] Add code indentation/formatting in the buil system
-  * [#1774] Can't set voicemail number in KDE account creation wizard
-  * [#1775] Can't modify account information for account created with
-    the wizard
-  * [#1771] Add a "Default" button in context menu to disable chosen
-    prior account
-  * [#1705]
-  * [#1224] Remove generated file from the repo
-  * [#1224] Remove generated file from the repo
-  * [#1762] distclean target should remove kconfig generated files
-    (settings.h, settings.cpp). Rename them?
-  * [#1761] clear history button should really clear history
-  * Dialpad works.
-  * Implemented Dialpad widget instead of building it in main view.
-  * Removed last occurence of the old config dialog, that made the build
-    crash.
-  * [#1755] Do not consider G722 as a dynamic payload elsewhere than in
-    RTP layer
-  * [#1753] Remove ilbc Makefile generation
-  * [#1756] Implement a kde configuration dialog with kconfig xt and
-    kconfigdialog class
-  * [#1755] fix audiocodec folder parsing problem
-  * [#1450] Reinit timestamp comparison in RTP, create session in
-    newOutgoingCall
-  * [#1753] Remove milenage third party code from pjsip
-  * New Config Dialog integrated in GUI.(without codecs)
-  * [#1753] Remove ILBC codec
-  * kconfig started, tr2i18n -> i18n, icons folder, accountList changed
-  * [#1705] Fixed Audio RTP thread creation/start
-  * [#1714] Fix codec negociation result handling
-  * [#1678] Fix audiortp payload setting
-  * [#1678] Put bac putData method in rtp
-  * [#1669] gtk_file_chooser_get_filename() support UTF-8 by default
-  * [#1735] Add conditions to sdp update call if call declined
-  * [#1737] substr of recordings destination folder to remove "file://"
-    should be done in client rather than in daemon
-  * [#1731] Enlarge audio stream buffer size
-  * [#1714] Missing true
-  * [#1317] Fixed Mandriva timeout
-  * [#1317] Changed tag convention
-  * [#1317] Cleaned git-dch
-
- -- SFLphone Automatic Build System <team@sflphone.org>  Fri, 10 Jul 2009 15:50:55 -0400
-
-sflphone-client-kde (0.9.6~beta-SYSVER) SYSTEM; urgency=low
-
-    ** 0.9.6~beta **
-
-  * spec files for mandriva and opensuse updated with buildrequires
-    libqt4-dev >=4.3
-  * [#1700] Cannot build on ubuntu 8.10 and a few other distribs
-  * [#1502] Update version number where applicable
-  * [#1642] Update client icons
-  * [#1450] Clean up useless debug and comments in sipvoiplink and
-    audiortp
-  * [#1450] Remove Semaphore object in AudioRtp thread deletion
-  * [#1450] Audio RTP init now synchronized with Sip/SDP
-  * [#1693] kde client crashes when changing codecs order/activation
-  * [#1450] Deep refactoring of audiortp
-  * [#1450] setRtpSessionRemoteIp
-  * [#1689] getCallList at start
-  * [#1224] Change path in package files
-  * [#1450] Audio RTP initialized only once, payload and remote ip set
-    at runtime
-  * [#1450] Add setRtpSessionMedia and setRtpSessionRemoteIp address
-  * [#1642] Make GNOME GUI fresher and younger ;)
-  * [#1686] Status bar displaying used account
-  * added sflphone-kde icon so that it compiles
-  * [#1659] Ending a call causes the daemon to crash
-  * corrected introspection XMLs, po files...
-  * [#1211] g722 media descriptor in codecDescriptor
-  * [#1310] Install sflphoned in $(prefix)/lib/sflphone
-  * [#1502] Do not install test binaries and dbus utilitaries
-  * [#1224] hack for pjsip build system!
-  * [#1224] Remove pjsip binaries from repo
-  * [#1224] Upgrade to pjsip 1.0.2
-  * [#1658] About SFLphone (bugs)
-  * [#1658] About SFLphone
-  * [#1660] Displaying all dialed numbers in a call
-  * Tested status bar.
-  * [#790] Optimize pulse audio streams parameters
-  * [#1678] Some usefull debug messages for mutex/semaphore deadlock
-    problem
-  * [#1669] Add/remove some usefull/unusefull debug
-  * [#1665] Fix latency related to pulse audio stream openning/closing
-  * [#1457] Make the menus and panels accessible in french
-  * [#1457] Improve broken keyboard accessibility in menus and conf
-    panels
-  * [#961] Instanciate only once the searchbar icons
-  * [#961] Restore transfer fonction
-  * [#961] Filter on the history type OK
-  * [#961] Fix compilation problems on hardy/intrepid
-  * [#1157] Commit missing files
-  * [#790] Reduce number of start/stop streams call on pulse audio
-  * [#1639] kde client crashes when no account registered
-  * [#1620] Fix the searchbar
-  * [#1620] Get back caltree as it was during gtkcritical area
-  * [#1620] Add history filter reinit function
-  * [#1335] Add a missing label in address book preferences
-  * [#1561] Update russian translation - Hussein Abdallah
-  * [#1605] Fix edit menu french translation
-  * [#961] Enable to search in the history according to the call type
-  * [#1449] Searchbar does not work anymore
-  * [#961] Add popup menu on the entry primary icon for history
-  * [#1317] Fixed KDE client package dependency
-  * [#936] speex 32 khz integration completed
-  * [#936] Use 320 frame size
-  * [#936] Test using a frame size at 320 smpls
-  * [#1214] Enable / Disable history
-  * [#1607] Fix compilation problem for ubuntu 8.10 (libsexy)
-  * [#1313] Implement processDataEncode processDataDecode in audiortp
-  * [#1613] codec list order can't be set
-  * Better handling of localisation + added languages + corrected
-    warnings + begginning of new config dialog with kconfig + 14px
-    account leds
-  * [#1214] Save and load history according to the limit timestamp +
-    unit tests
-  * [1609] Fix call number copy/paste feature
-  * [1607] Restore clear action icon in searchbar
-  * [#936] Try to decode using 1280 samples
-  * [#936] Add some debug
-  * [#936] Add .cpp file
-  * [#936] Oops Forgot speex 32 khz
-  * [#1214] Add configuration panel for history + D-Bus calls
-  * [#1313] Test rtp thread function, frame size, nbbytes, resampling
-  * [#790] Flush audio data before closing audio streams
-  * [#1214] History displays local time
-  * [#1214] Skip empty field on display
-  * [#1214] Associate an account to an history entry
-  * [#1342] Get addressbook options sensitive/non-sensitive
-  * [#1211] Clean up and comments
-  * [#1211] Get back to 20 ms framesize
-  * [#1211] Use sendImmediate instead of putData in RTP
-  * [#1211] Fix nb byte available in RTP
-  * [#1211] Clear condition on maxNbSamples in RTP
-  * [#1211] Fix max byte available in RTP session
-  * [#1211] G722: Use 160 samples per frame instead of 320
-  * [#1211] Test using a dynamic payload
-  * [#1211] Test using a dynamic payload type
-  * [#1211] Rename size variable (nb_samples, nb_bytes)
-  * [#1211] Test g722 ip-to-ip sending twice the data lenth
-  * [#1211] Test g722 ip-to-ip
-  * [#1214] Do not select an history item by default at startup
-  * [#1214] Remove some compilation warnings
-  * [#1214] Handle empty field - remove g_print
-  * [#1214] Add each history item only once
-  * [#1214] Handle call timestamps properlier
-  * [#1214] Do not need timestamp files anymore
-  * [#1214] Use the saved date for history entry
-  * Clean up
-  * [#1214] Client doesn't crash if the D-Bus call fails
-  * [#1214] Client is able to save its history - still some glitches
-  * [#1211] Forgot 16000 for g722
-  * [#1211] G722 initialization
-  * [#1214] Save name/number, successfully load the history if no fields
-    are empty
-  * [#1499] Fixed destination directory bug
-  * [#1214] Restore all the functionalities; peer name/number way more
-    easy to handle !!
-  * [#1214] Add callable_object instead of call_t, refactoring
-  * [#1211] Test with polycom soundstation 16000
-  * [#1211] Remove C like inline function in g722 codec
-  * [#1342] Finalize gnome client preference window formating
-  * [#1214] Retrieve the history when the gnome client startsup
-  * [#1306] Implement localization for KDE client
-  * [#1593] enable accounts apply button when account checked/unchecked
-  * [#1214] Implement the dbus calls on server side
-  * [#1214] Add serialized/unserialized functions to pass data on DBUS
-  * [#1342] Formating gnome client configuration windows
-  * [#1214] Save sucessfully a map of history items
-  * [#1499] Removed multiple jobs compilation for KDE client (2)
-  * [#1214] Load history from file into memory, add unit tests
-  * [#1534] Throws a length_error exception in case URL exceeds
-    std::string max_size
-  * [#1499] Removed multiple jobs compilation for KDE client
-  * [#1565] make account leds smaller
-  * [1430] Fix dbus debug
-  * [#1562] crashes when trying to change item of a call of state "OVER"
-  * [#1116] Fix compilation bug
-  * [#1317] Added mandriva and opensuse-11 64 bits
-  * [#1108] Add messges in main window concerning transfer success
-    failure
-  * [#1116] Fix compilation problems
-  * [#1211] g722 Makefile
-  * [#1108] Client side transferFailed/trasferSucceded signals handling
-  * [#1211] G722 mostly completed,
-  * [#1555] make bigger toolbar (24x24)
-  * [#1551] remove default mailbox number in wizard and disable mailbox
-    button when first account doesn't have mailbox number
-  * [#1342] Re-add sflphone manpages
-  * [#1116] Fix compilation on non-jaunty distros
-  * [#1317] Fixed opensuse startup sleep
-  * [#1108] Add a signal in the client to notify successful or failed
-    transfer
-  * [#1108] Dbus signals concerning call transfer success/failure
-  * [#1317] Added opensuse to automatic build system
-  * [#1223] Fix manpages bug
-  * [#1060] german translation glitch
-  * Clean up some gnome client warnings
-  * [#1547] replace ugly account leds by beautiful icons
-  * [#1548] add close button that hides windowand just hide on clicking
-    the cross
-  * [#1549] put introspec XMLs in the client's source
-  * [#1312] Implement getCallList D-BUS method
-  * [#1116] Clear text in history and contacts
-  * [#1499] KDE integration
-  * [#1469] Modify header linkers in dbus-c++'s Makefile.am's
-  * [#1469] Remove examples folder from dbus-c++
-  * [#1214] History integration in build system; unit test squeleton
-  * [#1317] Cleaning
-  * [#1469] Remove configure stuff in dbus-c++
-  * [#1469] Add unofficial mainline dbus-c++
-  * [#1469] Remove dbus-c++ from freedesktop
-  * [#1430] Bring account changed signal/callback back to normal
-  * [#1060] Update german translation - Sven Werlen
-  * [#1430] Add marshaller one string define
-  * [#1430] Send account change signal broadcast using account id
-  * [#1430] Remove condition on setRegistrationState, cause stun to
-    crash
-  * [#1317] Centralized version handling
-  * [#1317] Fixed version number on sfl-git-dch
-  * [#1317] Refactoring for new distributions
-  * [#1215] Fix account order at startup if latency
-  * [#1088] Restore sip dns srv
-  * [#1214] Add squeleton for history manager
-  * [#1430] Add accout id to accout changed method
-  * [#1430] No connectionStatusNotification (account changed) if no
-    changes
-  * [#1538] Add COPYING file
-  * [#1430] Add audio rtp thread tests
-  * [#1317] Changed version detection
-  * [#1538] Document license in libs/stund
-  * [#1317] Added version files
-  * [#1538] Apply François patches - debian packages
-  * [#1317] Updated spec files
-  * add files
-  * [#1538] Apply François patches - debian packages
-  * [#1535] Change program file structure (directory src...)
-  * [#1317] Updated build system scripts
-  * [#1317] Cleaning
-  * [#1317] Copied introspect files to gnome client
-  * [#1317] Added opensuse to build-system : first-shot
-  * [#1317] Remove spec files from configure
-  * [#1317] Added missing prefix
-  * removed debug for daemon account fix
-  * [#1430] Add a connection reference which most likely belong to
-    libdbus
-  * [#1430] Use shared connection instead of private
-  * make daemon find the account, added userMatch
-  * Clean code, add comments...
-  * [#1317] Fixed packaging rules
-  * [#1317] Updated autogen
-  * Updated autogen.sh for pjsip
-  * [#1526] Set accounts order
-  * [#1317] Fixed pjsip lib dirs
-  * [#1317] Updated debian packaging for new pjsip configuration script
-  * [#1317] Switch to autogenerated guess and sub files
-  * [#1317] Updated pjsip inclusion in build system
-  * [#1317] Replaced pjsip guess and sub files
-  * [#1317] Fixed compilation issues on opensuse 11
-  * [#1505] account list seem to crash the application when clicking
-    Apply very fast...
-  * [#1456] Add a flag to be replaced in the control files
-  * [#1456] Added version dependancy handling
-  * put account alias in AccountWidgetItem rather than in the item with
-    "    " before.
-  * [#1034] The KDE client should start sflphoned if it is not started
-  * [#1500] Handle options for notifications and display on incoming
-    call.
-  * [#1443] Client should not crash when receive an unexpected
-    stateChanged signal
-  * [#1403] Do not stop the notification anymore
-  * [#1456] Added version dependancy handling
-  * [#1426] Daemon crashes when get alsa plugin
-  * [#1422] Improved error messages
-  * commit for merge
-  * [#1424] Change logo in tray icon and put a different one when
-    incoming call
-  * [#1425] first part done, window title...
-  * [#1413] add manpages creating and installing in build system
-  * [#1417] The client should start the account creation wizard if
-    started for the first time (if config file doesn't exist)
-  * [#1421] Make volume bars horizontal when dialpad is hidden.
-  * Changed main window title and fixed a mistake in sflphone_const.h
-  * [#1412] make debian package building work
-  * changelog changed.
-  * Changed addAccount method in gnome client.
-  * Debian and man folders added.
-  * [#1388] Change project name from sflphone_kde to sflphone-client-kde
-  * Better handle of kabc check.
-  * [#1351] Automatic generation of dbus interfaces in makefile
-    generated by cmake
-  * [#1307] Implement "edit before call" in history and address book.
-  * [#1344] change action_call label in call history from "call" to
-    "call back".
-  * [#1308] Implement Hook feature in kde client
-  * Improved build system.
-  * #1219 : Add address book configuration page
-  * Better handling of registration to the daemon.
-  * #1039 : Add tray icon in kde.
-  * Issue no 1216 : Double click on item in history or address book
-    causes call.
-  * display peer name in call list and call history when called from
-    address book.
-  * Address book functionnal with photo displayed.
-  * Help menu kde available but actions disappeared. All fonctions in
-    view.
-  * Address book functionnal but ugly and making its own sort in the
-    complete address book.
-  * Account choice on right click, clean out includes, page address
-    book, fixed bugs...
-  * Wizard, double click, context menu...
-  * Removed sflphone_kde.kdevelop.filelist
-  * Added account creation wizard and translated interface in english.
-  * Transfer functionnal but ugly.
-  * transfer not functionnal
-  * Bug fixed : unholding (UNHOLD_CURRENT, UNHOLD_RECORD)
-  * Commit functional for push. With install.sh
-  * Before merge.
-  * Problem with enable accounts. Account display increased.
-  * Functional with codec order working , playDTMF.
-  * Commit functional.
-  * sflphone_kde/build added in .gitignore.
-  * complete commit for checkout previous.
-  * Commit before checkout previous version to check the display
-    bug(little font everywhere...)
-  * Functionnal client. Rest : history icons, config icons and
-    functionalities
-  * commit before merge asavard for isRecording.
-  * Call and Automate fusion done and seems to work.
-  * Commiting before putting Automate class in Call class.
-  * Functionnal main window without recording, history, voicemail, kio
-    widgets.
-  * client kde avec kdevelop.
-  * Config Dialog almost finished.
-  * Base of QT client
-
- -- SFLphone Automatic Build System <team@sflphone.org>  Tue, 23 Jun 2009 11:15:26 -0400
-
-sflphone-client-kde (0.9.5-SYSVER) SYSTEM; urgency=low
-
-    ** 0.9.5 release **
-
-  * [#1060] FIx bug in chinese translation
-  * [#1313] git add rtpTest.cpp rtpTest.h
-  * [#1313] Add init/close rtp tests
-  * [#1313] Basic instanciation of the rtp layer
-  * [#1449] Gtk-Critical concerning history filters and new calls
-  * [#1400] Make the match with the hostname instead of username
-  * [#1324] Change status bar label for "Using %s (%s)"
-  * [#1403] Icon size: 60x60 px
-  * [#1403] Do not remove notification, improve icon quality
-  * [#1403] Add smaller icon for gnome notifications
-  * [#1403] Prevent crash when hangup && no notification
-  * [#1403] Remove all actions on notifications; code refactoring
-  * [#1451] Use stun.sflphone.org as default STUN server
-  * [#1060] New po files - need to be translated
-  * [#1060] Update french translation - Rebuild template file
-  * [#1456] Add a flag to be replaced in the control files
-  * [#1454] Make cppunit optional; remove from build deps in control
-    files
-  * [#1401] Add libexpat1-dev dependency in control files
-  * [#1448] Take off these ugly debug messages
-  * [#1448] fixed getTelephoneTone and getTelephoneFile() called
-    repeatedly
-  * [#1406] add liblog4c-dev in build-depends
-  * [#1409] Restore .desktop icon
-
- -- SFLphone Automatic Build System <team@sflphone.org>  Mon, 25 May 2009 11:34:48 -0400
-
-sflphone-client-kde (0.9.5-SYSVER~rc2) SYSTEM; urgency=low
-
-    ** 0.9.5 rc2 **
-
-  * [#1422] Improved error message
-  * [#1402] Fix pjsip build
-  * [#1404] Clear GTK-Critical Bug at client startup
-  * [#1422] Added automatic VM shutdown when building on more than one
-    VM
-  * [#1422] Fixed some issues with new changelog generation script
-  * [#1422] Moved distribution update to specific file
-  * [#1422] Dropped git-dch, replace by home made implementation
-  * [#1402] Fix pjsip build
-  * [#1404] Clear GTK-Critical Bug at client startup
-  * Changes for name based dbus connection
-  * Clean changelogs
-  * [#1343] Gnome: Implement a callback system to handle focus on
-    different widgets
-  * Debus Session
-  * Refactoring Python code, PEP8
-  * [#1430] Get back dbus_g_proxy_new_for_name
-  * [#1430] Get back DBUS_BUS_SESSION type
-  * [#1430] Dbus fixed owner message binding
-  * Second test with DBUS owner
-  * [#1404] Gnome -> Preferences -> Hooks
-  * [#1404] Gnome -> Preferences -> Recordings
-  * [#1404] Call History
-  * [#1404] Gnome -> Preferences -> Address Book
-  * [#1404] IF the first notification option disable the second
-    notification
-  * Dbus with fixed owner does not automatically start the deamon
-  * Add codec debug tests in pysflphone
-  * [#1407] Some print info
-  * [#1407] Add a scenario to pick_up action
-  * Test client dbus connection to a fixed owner
-  * Add python dbus test suite
-  * [#1161] Modified version handling in build system
-  * [#1314] Test pulse audio and audio streams connect and disconnect
-  * [#1402] Add info message after configure
-  * [#1402] Build the daemon with the local pjsip library (vs the
-    installed one)
-  * [#1009] Fix Codec Sampling Rate set to zeros
-  * [#1314] Add mutex to pulse layer audio streams
-  * [#1314] Refactoring pulseaudio stream to test connect disconnect
-  * [#1314] Refactoring of pulselayer to test conect/disconnect
-  * Add debug messages in debus calls concerning account
-  * [#1314] Add some return values to audio init functions
-  * [#1406] add liblog4c-dev in build-depends
-  * [#1409] Restore .desktop icon
-  * Bug #1405: Fix strings as requested.
-  * Bug #1404: Fix strings in preferences panel.
-
- -- SFLphone Automatic Build System <team@sflphone.org>  Tue, 19 May 2009 12:08:18 -0400
-
-sflphone-client-kde (0.9.5-0ubuntu1~rc1) SYSTEM; urgency=low
-
-  [ SFLphone Project ]
-  * [#1262] Updated changelogs for version 0.9.5-0ubuntu1 Snapshot 2009-
-    05-05
-
-  [ Emmanuel Milou ]
-  * Add some python CLI client code; not really functional
-  * [#1108] Fix peerHungup method for IP to IP call
-
-  [ Alexandre Savard ]
-  * [#1108] Correct setting of SIP contact for direct IP call
-  * [#1108] SIP user agent handles incoming REFER
-
-  [ Emmanuel Milou ]
-  * Remove website from repository
-  * Update translation
-
-  [ Alexandre Savard ]
-  * Sflphone icon's tooltip changed for "configured" instead of
-    "registered"
-
-  [ Emmanuel Milou ]
-  * Update translation
-
-  [ Sflphone Project ]
-
- -- Sflphone Project <sflphone@mtl.savoirfairelinux.net>  Tue, 05 May 2009 19:16:13 -0400
-
-sflphone-client-kde (0.9.5-0ubuntu1~beta) SYSTEM; urgency=low
-
-  [ Julien Bonjean ]
-  * Updated Eclipse stuff
-  * Improved addressbook config window
-  * Added sflphone Eclipse stuff
-  * Implemented addressbook list server side
-  * Moved dbus stuff in dbus directory
-  * Updated addressbook configuration
-
-  [ Emmanuel Milou ]
-  * Remove unuseful installation scripts. Use apt-get build-dep sflphone
-    instead
-  * fix bug #1090
-
-  [ Alexandre Savard ]
-  * defining speex 16khz
-
-  [ Emmanuel Milou ]
-  * Remove unuseful file from build system
-  * Start dns srv resolver
-
-  [ Alexandre Savard ]
-  * Basic ogg/vorbis initialization
-
-  [ Emmanuel Milou ]
-  * Handle incoming IP-to-IP invite correctly
-
-  [ Alexandre Savard ]
-  * speex wideband 16000
-
-  [ Emmanuel Milou ]
-  * Better handling of incoming IP to IP call
-  * DNS SRV resolution functional
-  * Implement IAX2 incoming URL
-  * Allow user to make IP call without any accounts configured
-  * Add a contextual menu to edit a number from the contacts tab
-  * Add comments, tooltip and new button to the contextual menu
-  * add delete event, migrate to GTK 2.16 for sexy icons
-  * Resolve ticket #1118
-  * Update suse spec file
-  * Add phone number cleanup functions, unit tests and panel
-    configuration
-  * Add pertinent test that fails
-  * fix dependencies for suse package
-  * Add contextual edit menu in history - #1120
-
-  [ Alexandre Savard ]
-  * Temporary comit: make speex wideband (16 khz)
-  * Temporary: shared object for speex narrow band
-  * Temporary: speex narrowband and wideband coexist
-
-  [ Julien Bonjean ]
-  * Fixed bug when no book selected
-  * Fixed addressbook related compilation warnings
-  * Fixed GTK client remaining compilation warnings
-  * Fixed segfault when book removed since last sflphone run
-  * Fixed bug when book is unreachable (ldap error)
-
-  [ Alexandre Savard ]
-  * Fix codec list in audio config window
-  * Active/inactive speex codec by payload
-
-  [ Julien Bonjean ]
-  * Updated gitignore
-  * Added some comments
-
-  [ Emmanuel Milou ]
-  * Add callto: handler script for browsers and al.
-  * Integrate test compilation in the daemon build-system
-
-  [ Julien Bonjean ]
-  * Fixed g_object_unref warning for pixbuf
-  * Cleaned too verbose output
-  * Fixed toolbar update warning
-  * Added support for asynchornous books open (first shot)
-
-  [ Emmanuel Milou ]
-  * Add a DBus call to fetch the call details from a call ID - Ticket
-    #928
-
-  [ Julien Bonjean ]
-  * Improved async open books
-  * Fixed bug #1139
-
-  [ Emmanuel Milou ]
-  * Add a way to save account order
-  * commit missing files
-
-  [ Julien Bonjean ]
-  * Introduced log4c (ticket #1162)
-
-  [ Emmanuel Milou ]
-  * Load/save account order functionnal - ticket #813
-
-  [ Alexandre Savard ]
-  * Add CELT codec (#1143)
-  * Make celt frame size 256  (*1143)
-
-  [ Julien Bonjean ]
-  * Switched everything to log4c (ticket #1162)
-  * Updated eclipse settings
-
-  [ Emmanuel Milou ]
-  * Restore adding account - ticket #1172
-  * Add liblog4c dependecy - ticket #1179
-
-  [ Alexandre Savard ]
-  * Double maxAvailByte for frame size in rtp (#1143)
-
-  [ Emmanuel Milou ]
-  * Add User-Agent SIP header - Ticket #1173
-
-  [ Julien Bonjean ]
-  * Fixed autoresize issue (#708)
-
-  [ Emmanuel Milou ]
-  * Remove libcppuint dependency for the debian packages
-  * Look for libsexy only if gtk version < 2.16 - Ticket #1116
-  * Remove libsexy dependency for jaunty. ticket #1116
-
-  [ Julien Bonjean ]
-  * Introduced unit tests (#1146)
-  * Updated gitignore
-  * Fixed Makefile (#1146)
-
-  [ Emmanuel Milou ]
-  * [TICKET #1112] Add a test on the voice buffer to send through iax
-    packets
-  * Remove doublon in dependencies
-  * Remove warnings from the client test framework
-  * Update version number to 0.9.5~beta
-  * Update build-package script
-  * Add check dependency in build-deps control file field
-  * Create debian files for the new sflphone-client-gnome
-  * [TICKET #1212] Add Replaces field in control files
-  * [TICKET #1212] Fix manpages installation path
-  * [TICKET #1212] Add maintainer scripts to create alternatives
-  * [#1212] Update the manpages generation - edit preinst maintainer
-    script
-  * [#1212] Fix reference error in manpage
-  * [#1212] Add missing files on the client side
-  * [#1212] Fix debian docs files - no TODO file
-  * [1212] Fix manpage creation problem
-  * [#1220] Generate client-side glue files and marshaller at
-    compilation time
-  * [#1220] Generate server-side glue files at compilation time
-  * [#1212] Change binary name to sflphone-client-gnome
-  * [#1212] Update .gitignore to fit the new working tree
-  * [#1220] Explicitly generate glue files before building the library
-  * [#1220] Compile dbus directory before audio
-  * [#1212] Create sflphone-common at the root of the repository
-  * [#1212] Re-add pjproject
-  * [#1212] Remove Makefile from repo
-  * [#1220] Fix Makefile.am
-  * [#1212] New working directory functional
-  * [#1212] Update .gitignore
-  * [#1212] Hack to make pjsip compile..
-  * [#1220] Use non-installed binary for dbusxx-xml2cpp
-  * [#1212] Add descriptive files, remove unuseful scripts from tools/
-
-  [ Alexandre Savard ]
-  * Restore speex codecs
-  * add frame size for celt (#1143)
-  * add framesize to codec, independant from audiolayer (#1143)
-  * use codec frame size in rtp (#1143)
-  * compute fixed_codec_framesize (#1143)
-  * do not resample if not required (#1143)
-  * add condition on resampling for decoder (#1143)
-  * add a condition on bytesAvail == 0 from mic data
-  * no maximum in rtp decode (#1143)
-  * compute maximum for decoding (#1143)
-
-  [ Emmanuel Milou ]
-  * [#1146] Implement unitary tests on the client-side
-
-  [ Alexandre Savard ]
-  * use float instead of int to compute max nb of sample (#1143)
-  * add nbSampleMax for unresampled data (#1143)
-  * make thread sleep during 5 ms insead of 20 (#1143)
-  * use unix usleep (#1143)
-  * 50 usecond thread!!!!! (#1143)
-  * try with the smallest compression (#1143)
-  * use timer set at framesize (#1143)
-
-  [ Emmanuel Milou ]
-  * [#1161] Restore changelog version
-
-  [ Alexandre Savard ]
-  * Remove celt stuff
-
-  [ Emmanuel Milou ]
-  * [#1161] Update changelog
-  * [#1220] Add Conflicts: sflphone in debian control files
-  * [#1179] Add liblog4c3 runtime dependency
-  * [#1212] FIx typo error in dependency list for itnrepid
-  * [#1212] FIx .desktop file to point on the right exec
-  * [#1212] Modify changelog replacing tag
-
-  [ Sflphone Project ]
-  * "[#1262] Updated changelogs for version 0.9.5-0ubuntu1~beta"
-
-  [ Emmanuel Milou ]
-  * [#1212] restore changelogs
-
-  [ Sflphone Project ]
-  * [#1262] Updated changelogs for version 0.9.5-0ubuntu1 Snapshot 2009-
-    04-27
-
-  [ Emmanuel Milou ]
-  * [#1212] restore changelogs
-
-  [ Sflphone Project ]
-  * [#1262] Updated changelogs for version 0.9.5-0ubuntu1~beta
-
-  [ Emmanuel Milou ]
-  * [#1212] restore changelogs
-
-  [ Sflphone Project ]
-
- -- Sflphone Project <sflphone@mtl.savoirfairelinux.net>  Mon, 27 Apr 2009 17:00:03 -0400
-
-sflphone-client-kde (0.9.4-0ubuntu2) SYSTEM; urgency=low
-
-  [ Alexandre Savard ]
-  * Restore speex and GSM detection
-
-  [ Emmanuel Milou ]
-  * Fix bug #1090
- 
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Wed, 8 Apr 2009 11:29:15 -0500
-
-sflphone (0.9.4-0ubuntu1) SYSTEM; urgency=low
-
-  [ Emmanuel Milou ]
-  * Integrate DBus-c++ and libiax2 in the main build system
-  * Clean up in the working repository
-  * Reorder hooks configuration panel
-  * Protect case when no codecs are active
-  * Fix some return values
-  * Add unitary tests for the hook manager (premisces)
-  
-  [Yun Liu]
-  * Update chinese translation
-
-  [Sven Werlen]
-  * Update german translation
-
-  [Hussein Abdallah]
-  * Update russian translation
-
-  [Maxime Chambreuil]
-  * Update spanish translation
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 3 Apr 2009 18:29:15 -0500
-
-
-sflphone (0.9.4-rc1) SYSTEM; urgency=low
-
-  [ Emmanuel Milou ]
-  * Fix bug while trying to hold/unhold several simultaneous call
-  * Improve address book build system
-  * Implement SIP url popup on incoming call
-  * Improve GTK+ panel configuration
-  [ Julien Bonjean ]
-  * GTK+ client refactoring
-  * GTK+ clean up
-  * Address book improvment
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 27 Mar 2009 18:29:15 -0500
-
-sflphone (0.9.4-0beta1) SYSTEM; urgency=low
-
-  [ Alexandre Savard ]
-  * Display codec used during conversation on the GUI
-  * Enable/disable STUN parameters at runtime
-  * Refactor search bar use
-  [ Emmanuel Milou ]
-  * Build system fixes
-  * Implement SIP re-invite
-  * Implement IP to IP call
-  [ Julien Bonjean ]
-  * Integrate GNOME address book based on evolution data server
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 20 Mar 2009 18:29:15 -0500
-
-
-sflphone (0.9.3-0ubuntu3) SYSTEM; urgency=low
-
-  [ Alexandre Savard ]
-  * Both playback and record streams in PA_STREAM_CORKED (pulseaudio)
-  * Use PLUGHW device for ALSA capture
-  * Functional IAX and SIP recording for voicemail
-  * Use the less CPU-consuming interpolator algorithm for resampling
-  * Display in GTK GUI the codec used in conversation
-  * GTK GUI use ASCII instread of utf-8
-  * Add record menus in GTK GUI
-  * Put on hold when dialing a new number
-  * AccountID's are saved in the history
-
-  [ Emmanuel Milou ]
-  * Integrate DBUS C++, libiax2 in the git repository
-  * Update website
-  * Use libspeexdsp only if available on the system
-  * Updated .gitignore file
-
-  [Cyrille Béraud]
-  * Account assistant manager improvment
-  * Add an email request when creating a new account to receive voicemails
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Sat, 14 Feb 2009 13:29:15 -0500
-
-sflphone (0.9.3-0ubuntu2) SYSTEM; urgency=low
-
-  [ Emmanuel Milou ]
-  * Add compilation note in README
-  * Use default ALSA plugin for capture
-  * Fix the ALSA capture problem one more time
-  * Clean up debug messages in dbus.c
-  * Add libspeexdsp dependency
-  * Remove implicit declaration compilation warnings
-  * Fix links in the website, add release note
-  * Change capture for the website front page
-  * Add alsa devel dependency in build-depends control file field
-  * Clean up, indentation, try to handle latency problems in iax/pulseaudio
-  * Remove pjsip generated files from the repo
-  * Use the previous declared curAlias function in accountwindow
-  * Fix bug in history call duration when the call fails
-  * Remove runtime warning in the GTK+ client
-  * Add librsvg2-common dependency to load SVG under KDE
-  * Refresh .gitignore
-  * Update locales files + french translation
-  * Add configuration panel for future noise reduction
-  * Add configuration panel for audio record module
-  * Daemon less verbose; accounts don't try to access STUn options anymore
-  * Fix typo in configwindow
-  * Add content in the official website
-  * use a GTK_STOCK icon for the record button
-  * Complete description text in the assistant manager
-  * Add libtool flags in client configure.ac
-  * Remove unuseful dependency (snd)
-  * Fix SIP transfer problems
-  * Remove previous version of PJSIP from the repo
-  * Upgrade PJSIP to version 1.0.1
-  * Add the new website source in the repository
-  * Use libspeexdsp for silence detection only if available
-
-  [ Loïc Faure-Lacroix ]
-  * Ajout du logo gpl3
-  * Ajout des images
-  * Ajout de la section screenshot pour le site
-  * Ajout du favicon dans le header
-  * Modification des cartes
-
-  [ Alexandre Savard ]
-  * Clean up <speex/libspeexdsp>
-  * Small cleanup
-  * Save Wave fixed
-  * Fix new call button when recording
-  * libspeexdsp added
-  * Recording: default home folder at startup
-  * Minor changes to config window
-  * IAX recording fixed
-  * Set / get recording path, still need some GTK for client
-  * AudioRecord file name format
-  * Now recording in HOME folder
-
-  [ Cyrille Béraud ]
-  * Fix bug in reqaccount.c
-
-  [ Maxime Chambreuil ]
-  * Update spanish translation
-
-  [Yun Liu ]
-  * Update chinese translation 
-
-  [ Hussein Abdallah ]
-  * Update russian translation
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Sat, 14 Feb 2009 13:29:15 -0500
-
-sflphone (0.9.3-0ubuntu1) SYSTEM; urgency=low
-
-  * Remove debug
-  * Join thread before leaving
-  * Fix implicit declaration in reqaccount
-  * Add REST code to build the request to server
-  * Fix GValue initialization warnings
-  * Update version number, fix implicit declaration, fix GTK markup
-    warnings
-  * Apply patch to create custom SIP account from our own server
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 06 Feb 2009 19:17:32 -0500
-
-sflphone (0.9.2-2ubuntu9) SYSTEM; urgency=low
-
-  [ Alexandre Savard ]
-  * Speex audio codec preprocessing initialization
-  * peer hung up segmentation fault solved
-  * Stop recording when transfering
-  * Terminate only one call
-  * Add isRecording() function
-  * Fix call_icon GTK client
-  * Fix SIPCallClose() function, recorded file now close properly
-  * Function terminateSIPCall added in sipvoiplink and managerimpl
-  * Fix thread destructor
-  * setRecordingOption function implement in audiorecord
-  * Record now implemented in Call class
-  * Record interface complete (on hold erase previous recording)
-  * Added recButton in client
-  * Added: record button related icons
-  * Record button added
-  * Overload AudioRecord::recData to get mic and speaker data mixed
-  * Recording now in audiortp::run() method
-  * Audio recording working in AudioRTP: receiveSessionForSpeaker
-  * Open/close a wave file when pulse audio stream start/stop
-
-  [ Emmanuel Milou ]
-  * Fix path for GTK+ icons; clean up
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Thu, 05 Feb 2009 18:27:53 -0500
-
-sflphone (0.9.2-2ubuntu8) SYSTEM; urgency=low
-
-  [ Emmanuel Milou ]
-  * Update changelogs
-  * Fix bug in merge and in Makefile.am
-  * Terminate only one call
-  * Disable PJsip shutdown when changing STUN parameters
-  * Function terminateSIPCall added in sipvoiplink and managerimpl
-  * Add a timer to the alsa thread to not jam the CPU load
-  * Fix bug in sipvoiplink.cpp
-  * Clean shutdown of pulseaudio on quiting
-  * Fix DTMF at first start with Pulseaudio
-  * Remove zeroconf from the build system
-  * Add a library manager + exception handling
-  * Clean up in the working directory
-  * Better handling of capture XRUNs
-  * Restore mic adjust volume on ALSA layer
-  * Protect device ALSA operation if not opened
-  * Fix the switching layer bug
-  * Use dynamic_cast<> to use audiolayer-specific methods
-  * Open the audio devices only once at startup
-  * Refactoring of the ALSA part
-  * Functional plug-in manager
-  * Use a C++ thread to handle tones and DTMF in ALSA
-  * Restore IAXVoIPLink, restore Mutex
-  * Make the plugins registering against the plugin manager
-  * Migrate to 1->N relationship between voiplink and accounts
-  * API plugin for registration
-  * Use C++ thread in SIP, move everything in sipvoiplink
-  * Complete singleton pattern for the plugin manager
-  * Add -Wno-return-type compilation flag to remove warnings; Update
-    version number in configure.ac
-  * Add the dynamic loading for the plugin framework; integate unittest
-
-  [ Yun Liu ]
-  * Update rpm spec file
-  * modify build package script and spec file for suse
-
-  [ Alexandre Savard ]
-  * Add audiorecorder plugin and testaudiorecorder
-  * Add audio Recording class, edit global.h
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Wed, 04 Feb 2009 14:00:30 -0500
-
-sflphone (0.9.2-2ubuntu7) SYSTEM; urgency=low
-
-  [ Emmanuel Milou ]
-  * Update changelog to 0.9.2-6
-  * Fix some dbus-glib implementation details on the client side
-  * Init history after dbus initialization
-  * Add error checking in useragent; Clean sipvoiplink
-  * Prevent crash when trying to call an empty number
-  * Set the volume of the playback stream to PA_VOLUME_NORM at startup
-  * Fix GTK+ generic value double initialization
-  * Fix jaunty control file dependency problems
-  * Fix jaunty control file dependency problems
-
-  [ Yun Liu ]
-  * Fix bug ticket # 137
-  * Tolerant to gsm library of OpenSuse 11
-
-  [ Sven Werlen ]
-  * Update german translation
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 23 Jan 2009 17:48:13 -0500
-
-sflphone (0.9.2-2ubuntu6) SYSTEM; urgency=low
-
-  [ Emmanuel Milou ]
-  * Migrate STUN configuration to the main config window
-  * Update french translation
-  * Other tiny memory leaks
-  * Fix memory leak in sampleconverter.cpp
-  * Generate packages from the release branch
-  * update the build package script
-  * modify the control files with architecture=any
-  * Remove valgring uninitialized value
-  * IAX and SIP use the same global variables to set account
-    configuration ; fix broken code
-
-  [ Maxime Chambreuil ]
-  * Update spanish translation
-
-  [ Hussein Abdallah ]
-  * Update russian translation
-
-  [ Yun Liu ]
-  * Update translation files
-  * Fix the bug when user uncheck the account which fails in the
-    previous registration
-  * Add stun error status
-  * Fix bug ticket #143
-  * Script for auto-install dependencies
-  * Fix bug ticket #140
-  * Fix bug ticket 141
-  * Fix the reregister process when user change the details of an
-    account
-
- -- Emmanuel Milou <manu@sulfur.inside.savoirfairelinux.net>  Fri, 16 Jan 2009 18:19:05 -0500
-
-sflphone (0.9.2-2ubuntu5) SYSTEM; urgency=low
-
-  * Fix memory leak in the pulseaudio callback
-  * Update debian package generation script
-  * Warnings removal in GTK+ client
-  * Clean adjust volume method in alsalayer
-  * Plug the sflphone playback volume control to the pulseaudio volume
-    manager
-  * Display the date in history according to the current locale
-  * Generate the changelog according to the git commit messages
-  * Complete header in chinese translation file
-  * Use the right gpg key to sign the packages
-  * add debian jaunty jackalope support
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Wed, 14 Jan 2009 21:17:20 -0500
-
-sflphone (0.9.2-2ubuntu4) SYSTEM; urgency=low
-
-  [ Emmanuel Milou ]
-  * add german translation
-  
-  [ Yun Liu ]
-  * Fix GUI crash in Ubuntu8.10 64bit system
-  
- -- Yun Liu <yun.liu@savoirfairelinux.com>  Thu, 08 Jan 2009 13:08:51 -0500
-
-sflphone (0.9.2-2ubuntu3) SYSTEM; urgency=low
-
-  [ Emmanuel Milou ]
-  * The main thread synchronizes the ringtone thread
-  * disable custom ringtone for the ALSA layer
-  * Fix the Makefile.am in man directory, add a SEE ALSO section
-  
-  [ Yun Liu ]
-  * Fix daemon crash caused by the previous patch ( for bug ticket #129)
-  
- -- Yun Liu <yun.liu@savoirfairelinux.com>  Tue, 06 Jan 2009 16:18:38 -0500
-
-sflphone (0.9.2-2ubuntu2) SYSTEM; urgency=low
-  
-  * Fix bug ticket #129
-  
- -- Yun Liu <yun.liu@savoirfairelinux.com>  Wed, 5 Jan 2009 15:54:53 -0500
-
-sflphone (0.9.2-2ubuntu1) SYSTEM; urgency=low
-
-  * Migrate from eXosip library to pjsip
-  * Add multiple SIP accounts support
-  * Fix ringtones problems
-  * Add a pulseaudio support
-  * Improve audio quality with ALSA
-  * Add chinese translation
-  * Improve spanish translation
-  * Migrate to a maintained C++ DBus bindings
-  * Clean and improve the build system
-  * Add build-dependency on Perl because we need pod2man to generate manpages
-
- -- Yun Liu <yun.liu@savoirfairelinux.com>  Wed, 26 Nov 2008 09:47:53 -0500
-
-sflphone (0.9.1) unstable; urgency=low
-  * Add a search tool in the history
-  * Migrate some gtk_entry_new to sexy_icon_entry_new
-  * Bug fix (Ticket #78): The voicemail password isn't displayed anymore in
-    the history tab
-  * Add the SIP registration expire value in the user file.
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Thu, 22 May 2008 11:14:25 -0500
-
-sflphone (0.9.0) unstable; urgency=low
-  * Add history features
-    * Call date
-    * Call duration
-    * Mouse events in the history tab
-  * Smooth switch from the history tab to the calls tab
-  * Remove most of GTK-Critical warnings
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Wed, 13 May 2008 16:58:25 -0500
-
-sflphone (0.9-2008-06-06) unstable; urgency=low
-  * Audio bug correction: capture stopped after a few minutes of conversation
-  with USB Plantronics sound card
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Tue, 06 May 2008 16:58:25 -0500
-
-sflphone (0.9-2008-05-06) unstable; urgency=low
-  * Bug correction: account creation with the assistant
-  * GTK+ warnings removal
-  * libnotify warnings removal
-  * Remove aliasing on the SFLphone logo
-  
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Mon, 05 May 2008 16:58:25 -0500
-
-sflphone (0.9) unstable; urgency=low
-  * Clean dependencies ( removal of libboost )
-  * Several GTK improvement and updates
-    -account window
-    -configuration window
-  * Migrate from GtkCheckMenuItem to GtkImageMenuItem  
-  * ALSA standard I/O transfers: MMAP instead of R/W
-  * Fix speex audio quality
-  * IAX2 protocol
-    -Fix hold/unhold situation
-    -Add on hold music
-  * SIP protocol
-    -Ringtone on incoming call
-    -Fix transfer situation
-  * Add desktop notification ( libnotify )
-  * Improve the system tray icon behaviour
-  * Improve registration error handling
-  * Register/unregister from the account window takes effect without starting back SFLphone
-  * Compilation warnings removal
-  * Call history
-  * Add an account configuration wizard
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Wed, 30 Apr 2008 16:58:25 -0500
-
-sflphone (0.8.2) unstable; urgency=low
-  * Internationalization of the GTK GUI
-  * English / French
-  * STUN support
-  * Slight modifications of the graphical interface ( tooltips, dialpad, ...)
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 21 Mar 2008 11:37:53 -0500
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/compat b/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/compat
deleted file mode 100644
index 7ed6ff82de..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/compat
+++ /dev/null
@@ -1 +0,0 @@
-5
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/control.intrepid b/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/control.intrepid
deleted file mode 100644
index 98d0dd6ce2..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/control.intrepid
+++ /dev/null
@@ -1,20 +0,0 @@
-Source: sflphone-client-kde
-Maintainer: SavoirFaireLinux Inc <jeremy.quentin@savoirfairelinux.com>
-Section: kde
-Priority: optional
-Build-Depends: debhelper (>= 5), cmake (>=2.6), kdepimlibs5-dev (>=4.1.4), libcommoncpp2-dev (>=1.6.2), libqt4-dev (>=4.3)
-Standards-Version: 3.7.3
-
-Package: sflphone-client-kde
-Priority: optional
-Architecture: any
-Depends: sflphone-common (=VERSION), libcommoncpp2-1.6-0, kdepimlibs5 (>=4.1.4), libqt4-dbus (>=4.4.3), libqt4-svg (>=4.4.3), libqtgui4 (>=4.4.3)
-Replaces: sflphone
-Conflicts: sflphone
-Homepage: http://www.sflphone.org
-Description: KDE client for SFLphone
- Provide a KDE client for SFLphone.
- SFLphone is meant to be a robust enterprise-class desktop phone.
- SFLphone is released under the GNU General Public License.
- SFLphone is being developed by the global community, and maintained by
- Savoir-faire Linux, a Montreal, Quebec, Canada-based Linux consulting company.
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/control.jaunty b/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/control.jaunty
deleted file mode 100644
index 98d0dd6ce2..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/control.jaunty
+++ /dev/null
@@ -1,20 +0,0 @@
-Source: sflphone-client-kde
-Maintainer: SavoirFaireLinux Inc <jeremy.quentin@savoirfairelinux.com>
-Section: kde
-Priority: optional
-Build-Depends: debhelper (>= 5), cmake (>=2.6), kdepimlibs5-dev (>=4.1.4), libcommoncpp2-dev (>=1.6.2), libqt4-dev (>=4.3)
-Standards-Version: 3.7.3
-
-Package: sflphone-client-kde
-Priority: optional
-Architecture: any
-Depends: sflphone-common (=VERSION), libcommoncpp2-1.6-0, kdepimlibs5 (>=4.1.4), libqt4-dbus (>=4.4.3), libqt4-svg (>=4.4.3), libqtgui4 (>=4.4.3)
-Replaces: sflphone
-Conflicts: sflphone
-Homepage: http://www.sflphone.org
-Description: KDE client for SFLphone
- Provide a KDE client for SFLphone.
- SFLphone is meant to be a robust enterprise-class desktop phone.
- SFLphone is released under the GNU General Public License.
- SFLphone is being developed by the global community, and maintained by
- Savoir-faire Linux, a Montreal, Quebec, Canada-based Linux consulting company.
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/copyright b/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/copyright
deleted file mode 100644
index fbde2314be..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/copyright
+++ /dev/null
@@ -1,28 +0,0 @@
-This package was debianized by Emmanuel Milou <emmanuel.milou@savoirfairelinux.com> on
-Fri, 3 Apr 2009 09:47:53 -0500.
-
-It was downloaded from the git repository of SFLphone: git://sflphone.org/git/sflphone.git
-
-Upstream Author: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
-
-Copyright:
-
-Savoir-Faire Linux Inc.
-
-License:
-
-This software is copyright (c) 2004-2009 Savoir-Faire Linux inc.
-
-You are free to distribute this software under the terms of
-the GNU General Public License version 3.
-On Debian systems, the complete text of the GNU General Public
-License can be found in the file `/usr/share/common-licenses/GPL'.
-
-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., 51 Franklyn St, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/cron.d b/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/cron.d
deleted file mode 100644
index d11e611777..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/cron.d
+++ /dev/null
@@ -1,4 +0,0 @@
-#
-# Regular cron jobs for the sflphone package
-#
-0 4	* * *	root	sflphone_maintenance
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/dirs b/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/dirs
deleted file mode 100644
index e2dc98dcb2..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/dirs
+++ /dev/null
@@ -1,7 +0,0 @@
-usr/bin
-usr/share/applications
-usr/share/pixmaps
-usr/share/sflphone
-usr/share/locale
-usr/share/doc
-usr/share/man
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/docs b/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/docs
deleted file mode 100644
index 9830da213f..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/docs
+++ /dev/null
@@ -1,5 +0,0 @@
-NEWS
-README
-ChangeLog
-AUTHORS
-
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/manpages b/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/manpages
deleted file mode 100644
index 919cf59a8e..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/manpages
+++ /dev/null
@@ -1,2 +0,0 @@
-debian/sflphone-client-kde/usr/share/man/man1/sflphone.1
-debian/sflphone-client-kde/usr/share/man/man1/sflphone-client-kde.1
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/postinst b/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/postinst
deleted file mode 100644
index 20a15b4f8f..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/postinst
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh -e
-
-update-alternatives --install /usr/bin/sflphone sflphone /usr/bin/sflphone-client-kde 200 \
-                    --slave /usr/share/man/man1/sflphone.1.gz  sflphone.1.gz \
-                            /usr/share/man/man1/sflphone-client-kde.1
-                            
-update-alternatives --set sflphone /usr/bin/sflphone-client-kde
-
-exit 0
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/preinst b/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/preinst
deleted file mode 100644
index fdaa8ab8ec..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/preinst
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-# postrm script for sflphone
-#
-# see: dh_installdeb(1)
-
-set -e
-
-package=sflphone-client-kde
-
-case "$1" in
-    install|upgrade)
-    ;;
-esac
-
-exit 0
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/prerm b/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/prerm
deleted file mode 100644
index 5e90217068..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/prerm
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh -e
-
-
-if [ "$1" = "remove" ]; then
-    # Remove alternatives symlink set in postinst
-    update-alternatives --remove sflphone /usr/bin/sflphone
-fi
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/rules b/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/rules
deleted file mode 100755
index f1edaffc9d..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-client-kde/rules
+++ /dev/null
@@ -1,118 +0,0 @@
-#!/usr/bin/make -f
-# -*- makefile -*-
-# Sample debian/rules that uses debhelper.
-# This file was originally written by Joey Hess and Craig Small.
-# As a special exception, when this file is copied by dh-make into a
-# dh-make output file, you may use that output file without restriction.
-# This special exception was added by Craig Small in version 0.37 of dh-make.
-
-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
-export DH_OPTIONS
-
-package=sflphone-client-kde
-
-CXX = g++-4.0
-# CFLAGS = -Wall -g
-# DEB_INSTALL_PAGES_sflphone_client_kde = sflphone.1 sflphone-client-kde.1
-
-configure: configure-stamp
-configure-stamp:
-	dh_testdir
-	# Add here commands to configure the package.
-	cmake . -DCMAKE_INSTALL_PREFIX=/usr
-	touch configure-stamp
-
-
-#Architecture 
-build: build-arch build-indep
-
-build-arch: build-arch-stamp
-build-arch-stamp: configure-stamp 
-
-    # Add here commands to compile the arch part of the package.
-	$(MAKE)
-	touch $@
-
-build-indep: build-indep-stamp
-build-indep-stamp: configure-stamp 
-
-       # Add here commands to compile the indep part of the package.
-       #$(MAKE) doc
-	touch $@
-
-clean:
-	dh_testdir
-	dh_testroot
-	rm -f build-arch-stamp build-indep-stamp configure-stamp
-	# Add here commands to clean up after the build process.
-	[ ! -f Makefile ] || $(MAKE) distclean
-
-ifneq "$(wildcard /usr/share/misc/config.sub)" ""
-	cp -f /usr/share/misc/config.sub config.sub
-endif
-ifneq "$(wildcard /usr/share/misc/config.guess)" ""
-	cp -f /usr/share/misc/config.guess config.guess
-endif
-	dh_clean 
-
-install: install-indep install-arch
-install-indep:
-	dh_testdir
-	dh_testroot
-	dh_clean -k -i 
-	dh_installdirs -i
-	# Add here commands to install the package into debian/sflphone.
-
-install-arch:
-	dh_testdir
-	dh_testroot
-	dh_clean -k -s 
-	dh_installdirs -s
-	# Add here commands to install the arch part of the package into 
-	# debian/tmp.
-	$(MAKE) DESTDIR=$(CURDIR)/debian/$(package) install
-	dh_install -s
-# Must not depend on anything. This is to be called by
-# binary-arch/binary-indep
-# in another 'make' thread.
-
-binary-common:
-	pwd
-	dh_testdir
-	dh_testroot
-	dh_installchangelogs ChangeLog
-	dh_installdocs
-	dh_installexamples
-#	dh_installmenu
-#	dh_installdebconf	
-#	dh_installlogrotate	
-#	dh_installemacsen
-#	dh_installpam
-#	dh_installmime
-#	dh_python
-#	dh_installinit
-#	dh_installcron
-#	dh_installinfo
-#	dh_installman
-	dh_link
-	dh_strip
-	dh_compress 
-	dh_fixperms
-#	dh_perl
-	dh_makeshlibs
-	dh_installdeb
-#	dh_shlibdeps
-	dh_gencontrol
-	dh_md5sums
-	dh_builddeb
-# Build architecture independant packages using the common target.
-binary-indep: build-indep install-indep
-	$(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
-
-# Build architecture dependant packages using the common target.
-binary-arch: build-arch install-arch
-	$(MAKE) -f debian/rules DH_OPTIONS=-s binary-common
-
-binary: binary-arch binary-indep
-.PHONY: build clean binary-indep binary-arch binary install install-indep install-arch configure
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-common/changelog b/tools/build-system/distributions/ubuntu/debian-sflphone-common/changelog
deleted file mode 100644
index 3d95374e25..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-common/changelog
+++ /dev/null
@@ -1,1284 +0,0 @@
-sflphone-common (0.9.6-SYSVER) SYSTEM; urgency=low
-
-    ** 0.9.6 **
-
-  * Documentation on echo test
-  * [redmine_down] codec names not displayed in total
-  * [redmine_down] crash when hanging up a dialing call because tries to
-    add it to history whereas no starttime
-  * [#1927] alternate every time screen changed to call history
-  * [#1886] clean code
-  * [#1886] debug messages when loading history removed
-  * [redmine_down] sflphone-kde icons
-  * [#1855] Update language files
-  * [#1502] Update version number
-  * [redmine_down] setHistory at close
-  * [#redmine_down] Handle PJ_DECLINE_SC as failure
-  * [#1923] Fix segmentation fault when adding a new account
-  * [#1923] Check on iterator before setting the config
-  * [#1904] Added mnemonic to tabs in sflphone-client-gnome.
-  * [#1905] The daemon was not sending the currentSelectedCodec signal
-    on dbus when answering a call.
-  * [#1922] Default values set to all account details
-  * [#1886] Spinbox reg expire enables apply, and address book is not
-    visible when disabled
-  * [#1905] Bug fix for segmentation fault caused by an empty string,
-  * [#1910] Warnings in test directory
-  * [#1919] Error fixed
-  * [#1855] Update russian translation - Hussein Abdallah
-  * [#1910] Remove files
-  * [#1919] fixed
-  * [#1777] Code indentation
-  * [#1918] fixed
-  * [#1917] fixed
-  * [#1910] Remove warnings compilation in src
-  * [#1886] removed AccountListModel in configskeleton
-  * [#1914]
-  * [#1911] check previous and new port
-  * [#1910] Remove compilation warnings in src/dbus and src/history
-  * [#1910] Remove compilation warnings in src/audio
-  * [1855] Update german translation - Sven Werlen
-  * [#1909] removed
-  * [#1906] Done
-  * [#1904] The registration expire value is now configurable from the
-  * Cleaned up debug messages.
-  * [#1886] separated initCallItem in two functions
-  * [#1886] reversed error in commit
-  * [#1886] clean debug
-  * [#1886] changed Name of classes and files
-  * [#1886] clean
-  * [#1870] In call_state_cb (dbus.c:126), _time_stop was overridden by
-    the actual time.
-  * [#1884] Added some new gpg flags to prevent tty warnings
-  * [#1886] Clean audio config dialog
-  * [#1886] No more compile warnings. + 1 comm
-  * [#1872] Check if the user input is smaller than PJ_MAX_HOSTNAME.
-  * [#1886]
-  * [#1785] Fixed build when no new commit
-  * [#1852] If chosen by the user, the hostname can now be solved and
-    used
-  * [#1871] * and # inverted back
-  * [#1869] Conditional compilation that checks if
-  * [#1309] removed test in main
-  * [#1425] Put actions in SFLPhone window class instead of ui view,
-    made a separate toolbar for screens.
-
- -- SFLphone Automatic Build System <team@sflphone.org>  Mon, 27 Jul 2009 09:53:00 -0400
-
-sflphone-common (0.9.6~rc2-SYSVER) SYSTEM; urgency=low
-
-    ** 0.9.6~rc2 **
-
-  * [#1755] Remove generated file
-  * [#1753] restore ilbc ...
-  * [#1866] Methods getSipPort and setSipPort now have an effect on the
-  * [#1753] make pjsip compile without ilbc. Use ./autogen.sh --disable-
-    ilbc-codec
-  * [#1855] Fix error in russian translation
-  * [#1805] Remove the old flawed signal mechanism which was failing in
-  * [#1855] Refresh translation
-  * Spanish translation finished + po README files updated + echo's in
-    copy-in-clients
-  * [#1850] Yun made the chinese HK-CN translation
-  * [#1848] Fix transfer interface bug
-  * [#1862] At install, kde client installs only french translation file
-  * [#1841] A new fallback mechanism was added to the internal resolver
-    in PJSIP.
-  * Started AccountList model/view
-  * [#1855] Remove po subdir in Makefile.am
-  * [#1855] Fix typo error in sflphone-client-gnome
-  * [#1855] Do not generate Makefile in sflphone-common/po
-  * [#1855] Copy translation files into both clients dirs
-  * [#1855] Remove po dir from sflphone-common
-  * Comments added
-  * [#1860] mailbox->voicemail...
-  * make scripts executable
-  * [#1855] French translation
-  * [#1855] Chinese zh_HK partially filled...
-  * [#1859] An unnamed pipe monitored by poll() was added. When we want
-    to
-  * [#1855] Sven completed the first part of the german translation
-  * [#1855] Cantonese manually filled for already translated, almost
-    equal strings
-  * [#1855] Merge russian translation
-  * [#1855] Spanish manually filled for already translated, almost equal
-    strings
-  * [#1855] Update german translation in ./lang/de
-  * [#1858] This problem was fixed by removing a useless line in
-  * [#1855] merged existing translations in lang/ sflphone.po's
-  * [#1842] [#1843] An attempt at improving the expected behaviour that
-    can't
-  * [#1855] added po folder in gnome client and scripts for copying from
-    common lang folder to clients
-  * [#1853] Edit before call does nothing on call history
-  * Put most language entries possible in common. From 300 to 250
-    entries. Stays underscores problem. Scripts for copy in clients.
-  * commit to merge master
-  * [#1825] Changed "Bad authentification" to "Authentication Failed".
-  * common po files
-  * [#1753] Remove ILBC from pjproject
-
- -- SFLphone Automatic Build System <team@sflphone.org>  Fri, 17 Jul 2009 19:12:44 -0400
-
-sflphone-common (0.9.6~rc1-SYSVER) SYSTEM; urgency=low
-
-    ** 0.9.6~rc1 **
-
-  * Update some version number
-  * [#1792] Creates .sflphone directory with permission 600. Also,
-    "chmod 600" after
-  * [#1810] GUI is now notified that the call failed. Also, a segfault
-    was
-  * [#1816] Address book search disabled when disabled address book and
-    enabled it back plus button stays triggered
-  * codeclistmodel + asynchronous loading of address book +
-    enable/disable address book
-  * [#1810] Now checking SDP answer after 200 OK. Still need to
-    implement full
-  * [#1794] Can't use the interface during a call
-  * Updated translation files
-  * Russian translation integrated
-  * Codec list model/view started.
-  * [#1807] Add configure.ac in pjproject-1.0.3
-  * [#1787] closeRtpSession added in some places where it should have
-    been
-  * Use Item class for contacts and accounts
-  * Comments + clean code
-  * [#1794] Improved debug messages
-  * [#1805] Replaced the old and unreliable mecanism that was was
-    waiting for
-  * [#1794] Can't use the interface during a call
-  * [#1787]  For those cases where no registered SIP account is
-    configured
-  * [#1797] Make pjsip compile
-  * [#1787] Minor changes. Removed useless commented line. Changed order
-    of
-  * [#1777] Code indentation
-  * [#1797] Update package generation with new pjsip version
-  * [#1798] Does not hang up when the call is building up
-  * [#1797] Update .gitignore with new pjsip version
-  * [#1797] Remove generated files from repo
-  * [#1797] Main build system now uses pjproject-1.0.3
-  * [#1797] Add pjproject-1.0.3
-  * [#1797] Remove pjproject-1.0.2
-  * [#1796] Computing time optimization (samplerate conversion)
-  * [#1787] _audiortp->start() moved away from offhold(),
-    SIPCallAnswered()
-  * [#1312] Added new states for calls initialized by other clients
-  * [#1795] Crashes when adding a new account, checking it and applying
-  * [#1782] Missing icons
-  * [#1793] KDE client compilation problem
-  * Fake ringtone files can no longer be set.
-  * indentation
-  * [#1312] Able to fetch to differentiate incoming/ringing call state
-  * [#1784] Use DESTDIR variable in po Makefile - fix language file
-    installation
-  * [#1785] Fixed typo
-  * [#1785] Fixed changelog update
-  * [#1759] ./autogen.sh --prefix=/usr --with-debug to use optimization
-    level 0
-  * [#1773] Changed snapshot naming convention
-  * [#1773] Removed gpg agent use, added repository cache cleaning
-  * [#1759] Use optimization level 0 for repository, 2 for packages
-  * [#1777] Code indentation/formatting
-  * Translated new features in french
-  * [#1785] Added missing changelog entry
-  * [#1781] Window title is SFLPhone
-  * [#1777] Add code indentation/formatting in the buil system
-  * [#1774] Can't set voicemail number in KDE account creation wizard
-  * [#1775] Can't modify account information for account created with
-    the wizard
-  * [#1771] Add a "Default" button in context menu to disable chosen
-    prior account
-  * [#1705]
-  * [#1224] Remove generated file from the repo
-  * [#1224] Remove generated file from the repo
-  * [#1762] distclean target should remove kconfig generated files
-    (settings.h, settings.cpp). Rename them?
-  * [#1761] clear history button should really clear history
-  * Dialpad works.
-  * Implemented Dialpad widget instead of building it in main view.
-  * Removed last occurence of the old config dialog, that made the build
-    crash.
-  * [#1755] Do not consider G722 as a dynamic payload elsewhere than in
-    RTP layer
-  * [#1753] Remove ilbc Makefile generation
-  * [#1756] Implement a kde configuration dialog with kconfig xt and
-    kconfigdialog class
-  * [#1755] fix audiocodec folder parsing problem
-  * [#1450] Reinit timestamp comparison in RTP, create session in
-    newOutgoingCall
-  * [#1753] Remove milenage third party code from pjsip
-  * New Config Dialog integrated in GUI.(without codecs)
-  * [#1753] Remove ILBC codec
-  * kconfig started, tr2i18n -> i18n, icons folder, accountList changed
-  * [#1705] Fixed Audio RTP thread creation/start
-  * [#1714] Fix codec negociation result handling
-  * [#1678] Fix audiortp payload setting
-  * [#1678] Put bac putData method in rtp
-  * [#1669] gtk_file_chooser_get_filename() support UTF-8 by default
-  * [#1735] Add conditions to sdp update call if call declined
-  * [#1737] substr of recordings destination folder to remove "file://"
-    should be done in client rather than in daemon
-  * [#1731] Enlarge audio stream buffer size
-  * [#1714] Missing true
-  * [#1317] Fixed Mandriva timeout
-  * [#1317] Changed tag convention
-  * [#1317] Cleaned git-dch
-
- -- SFLphone Automatic Build System <team@sflphone.org>  Fri, 10 Jul 2009 15:49:56 -0400
-
-sflphone-common (0.9.6~beta-SYSVER) SYSTEM; urgency=low
-
-    ** 0.9.6~beta **
-
-  * spec files for mandriva and opensuse updated with buildrequires
-    libqt4-dev >=4.3
-  * [#1700] Cannot build on ubuntu 8.10 and a few other distribs
-  * [#1502] Update version number where applicable
-  * [#1642] Update client icons
-  * [#1450] Clean up useless debug and comments in sipvoiplink and
-    audiortp
-  * [#1450] Remove Semaphore object in AudioRtp thread deletion
-  * [#1450] Audio RTP init now synchronized with Sip/SDP
-  * [#1693] kde client crashes when changing codecs order/activation
-  * [#1450] Deep refactoring of audiortp
-  * [#1450] setRtpSessionRemoteIp
-  * [#1689] getCallList at start
-  * [#1224] Change path in package files
-  * [#1450] Audio RTP initialized only once, payload and remote ip set
-    at runtime
-  * [#1450] Add setRtpSessionMedia and setRtpSessionRemoteIp address
-  * [#1642] Make GNOME GUI fresher and younger ;)
-  * [#1686] Status bar displaying used account
-  * added sflphone-kde icon so that it compiles
-  * [#1659] Ending a call causes the daemon to crash
-  * corrected introspection XMLs, po files...
-  * [#1211] g722 media descriptor in codecDescriptor
-  * [#1310] Install sflphoned in $(prefix)/lib/sflphone
-  * [#1502] Do not install test binaries and dbus utilitaries
-  * [#1224] hack for pjsip build system!
-  * [#1224] Remove pjsip binaries from repo
-  * [#1224] Upgrade to pjsip 1.0.2
-  * [#1658] About SFLphone (bugs)
-  * [#1658] About SFLphone
-  * [#1660] Displaying all dialed numbers in a call
-  * Tested status bar.
-  * [#790] Optimize pulse audio streams parameters
-  * [#1678] Some usefull debug messages for mutex/semaphore deadlock
-    problem
-  * [#1669] Add/remove some usefull/unusefull debug
-  * [#1665] Fix latency related to pulse audio stream openning/closing
-  * [#1457] Make the menus and panels accessible in french
-  * [#1457] Improve broken keyboard accessibility in menus and conf
-    panels
-  * [#961] Instanciate only once the searchbar icons
-  * [#961] Restore transfer fonction
-  * [#961] Filter on the history type OK
-  * [#961] Fix compilation problems on hardy/intrepid
-  * [#1157] Commit missing files
-  * [#790] Reduce number of start/stop streams call on pulse audio
-  * [#1639] kde client crashes when no account registered
-  * [#1620] Fix the searchbar
-  * [#1620] Get back caltree as it was during gtkcritical area
-  * [#1620] Add history filter reinit function
-  * [#1335] Add a missing label in address book preferences
-  * [#1561] Update russian translation - Hussein Abdallah
-  * [#1605] Fix edit menu french translation
-  * [#961] Enable to search in the history according to the call type
-  * [#1449] Searchbar does not work anymore
-  * [#961] Add popup menu on the entry primary icon for history
-  * [#1317] Fixed KDE client package dependency
-  * [#936] speex 32 khz integration completed
-  * [#936] Use 320 frame size
-  * [#936] Test using a frame size at 320 smpls
-  * [#1214] Enable / Disable history
-  * [#1607] Fix compilation problem for ubuntu 8.10 (libsexy)
-  * [#1313] Implement processDataEncode processDataDecode in audiortp
-  * [#1613] codec list order can't be set
-  * Better handling of localisation + added languages + corrected
-    warnings + begginning of new config dialog with kconfig + 14px
-    account leds
-  * [#1214] Save and load history according to the limit timestamp +
-    unit tests
-  * [1609] Fix call number copy/paste feature
-  * [1607] Restore clear action icon in searchbar
-  * [#936] Try to decode using 1280 samples
-  * [#936] Add some debug
-  * [#936] Add .cpp file
-  * [#936] Oops Forgot speex 32 khz
-  * [#1214] Add configuration panel for history + D-Bus calls
-  * [#1313] Test rtp thread function, frame size, nbbytes, resampling
-  * [#790] Flush audio data before closing audio streams
-  * [#1214] History displays local time
-  * [#1214] Skip empty field on display
-  * [#1214] Associate an account to an history entry
-  * [#1342] Get addressbook options sensitive/non-sensitive
-  * [#1211] Clean up and comments
-  * [#1211] Get back to 20 ms framesize
-  * [#1211] Use sendImmediate instead of putData in RTP
-  * [#1211] Fix nb byte available in RTP
-  * [#1211] Clear condition on maxNbSamples in RTP
-  * [#1211] Fix max byte available in RTP session
-  * [#1211] G722: Use 160 samples per frame instead of 320
-  * [#1211] Test using a dynamic payload
-  * [#1211] Test using a dynamic payload type
-  * [#1211] Rename size variable (nb_samples, nb_bytes)
-  * [#1211] Test g722 ip-to-ip sending twice the data lenth
-  * [#1211] Test g722 ip-to-ip
-  * [#1214] Do not select an history item by default at startup
-  * [#1214] Remove some compilation warnings
-  * [#1214] Handle empty field - remove g_print
-  * [#1214] Add each history item only once
-  * [#1214] Handle call timestamps properlier
-  * [#1214] Do not need timestamp files anymore
-  * [#1214] Use the saved date for history entry
-  * Clean up
-  * [#1214] Client doesn't crash if the D-Bus call fails
-  * [#1214] Client is able to save its history - still some glitches
-  * [#1211] Forgot 16000 for g722
-  * [#1211] G722 initialization
-  * [#1214] Save name/number, successfully load the history if no fields
-    are empty
-  * [#1499] Fixed destination directory bug
-  * [#1214] Restore all the functionalities; peer name/number way more
-    easy to handle !!
-  * [#1214] Add callable_object instead of call_t, refactoring
-  * [#1211] Test with polycom soundstation 16000
-  * [#1211] Remove C like inline function in g722 codec
-  * [#1342] Finalize gnome client preference window formating
-  * [#1214] Retrieve the history when the gnome client startsup
-  * [#1306] Implement localization for KDE client
-  * [#1593] enable accounts apply button when account checked/unchecked
-  * [#1214] Implement the dbus calls on server side
-  * [#1214] Add serialized/unserialized functions to pass data on DBUS
-  * [#1342] Formating gnome client configuration windows
-  * [#1214] Save sucessfully a map of history items
-  * [#1499] Removed multiple jobs compilation for KDE client (2)
-  * [#1214] Load history from file into memory, add unit tests
-  * [#1534] Throws a length_error exception in case URL exceeds
-    std::string max_size
-  * [#1499] Removed multiple jobs compilation for KDE client
-  * [#1565] make account leds smaller
-  * [1430] Fix dbus debug
-  * [#1562] crashes when trying to change item of a call of state "OVER"
-  * [#1116] Fix compilation bug
-  * [#1317] Added mandriva and opensuse-11 64 bits
-  * [#1108] Add messges in main window concerning transfer success
-    failure
-  * [#1116] Fix compilation problems
-  * [#1211] g722 Makefile
-  * [#1108] Client side transferFailed/trasferSucceded signals handling
-  * [#1211] G722 mostly completed,
-  * [#1555] make bigger toolbar (24x24)
-  * [#1551] remove default mailbox number in wizard and disable mailbox
-    button when first account doesn't have mailbox number
-  * [#1342] Re-add sflphone manpages
-  * [#1116] Fix compilation on non-jaunty distros
-  * [#1317] Fixed opensuse startup sleep
-  * [#1108] Add a signal in the client to notify successful or failed
-    transfer
-  * [#1108] Dbus signals concerning call transfer success/failure
-  * [#1317] Added opensuse to automatic build system
-  * [#1223] Fix manpages bug
-  * [#1060] german translation glitch
-  * Clean up some gnome client warnings
-  * [#1547] replace ugly account leds by beautiful icons
-  * [#1548] add close button that hides windowand just hide on clicking
-    the cross
-  * [#1549] put introspec XMLs in the client's source
-  * [#1312] Implement getCallList D-BUS method
-  * [#1116] Clear text in history and contacts
-  * [#1499] KDE integration
-  * [#1469] Modify header linkers in dbus-c++'s Makefile.am's
-  * [#1469] Remove examples folder from dbus-c++
-  * [#1214] History integration in build system; unit test squeleton
-  * [#1317] Cleaning
-  * [#1469] Remove configure stuff in dbus-c++
-  * [#1469] Add unofficial mainline dbus-c++
-  * [#1469] Remove dbus-c++ from freedesktop
-  * [#1430] Bring account changed signal/callback back to normal
-  * [#1060] Update german translation - Sven Werlen
-  * [#1430] Add marshaller one string define
-  * [#1430] Send account change signal broadcast using account id
-  * [#1430] Remove condition on setRegistrationState, cause stun to
-    crash
-  * [#1317] Centralized version handling
-  * [#1317] Fixed version number on sfl-git-dch
-  * [#1317] Refactoring for new distributions
-  * [#1215] Fix account order at startup if latency
-  * [#1088] Restore sip dns srv
-  * [#1214] Add squeleton for history manager
-  * [#1430] Add accout id to accout changed method
-  * [#1430] No connectionStatusNotification (account changed) if no
-    changes
-  * [#1538] Add COPYING file
-  * [#1430] Add audio rtp thread tests
-  * [#1317] Changed version detection
-  * [#1538] Document license in libs/stund
-  * [#1317] Added version files
-  * [#1538] Apply François patches - debian packages
-  * [#1317] Updated spec files
-  * add files
-  * [#1538] Apply François patches - debian packages
-  * [#1535] Change program file structure (directory src...)
-  * [#1317] Updated build system scripts
-  * [#1317] Cleaning
-  * [#1317] Copied introspect files to gnome client
-  * [#1317] Added opensuse to build-system : first-shot
-  * [#1317] Remove spec files from configure
-  * [#1317] Added missing prefix
-  * removed debug for daemon account fix
-  * [#1430] Add a connection reference which most likely belong to
-    libdbus
-  * [#1430] Use shared connection instead of private
-  * make daemon find the account, added userMatch
-  * Clean code, add comments...
-  * [#1317] Fixed packaging rules
-  * [#1317] Updated autogen
-  * Updated autogen.sh for pjsip
-  * [#1526] Set accounts order
-  * [#1317] Fixed pjsip lib dirs
-  * [#1317] Updated debian packaging for new pjsip configuration script
-  * [#1317] Switch to autogenerated guess and sub files
-  * [#1317] Updated pjsip inclusion in build system
-  * [#1317] Replaced pjsip guess and sub files
-  * [#1317] Fixed compilation issues on opensuse 11
-  * [#1505] account list seem to crash the application when clicking
-    Apply very fast...
-  * [#1456] Add a flag to be replaced in the control files
-  * [#1456] Added version dependancy handling
-  * put account alias in AccountWidgetItem rather than in the item with
-    "    " before.
-  * [#1034] The KDE client should start sflphoned if it is not started
-  * [#1500] Handle options for notifications and display on incoming
-    call.
-  * [#1443] Client should not crash when receive an unexpected
-    stateChanged signal
-  * [#1403] Do not stop the notification anymore
-  * [#1456] Added version dependancy handling
-  * [#1426] Daemon crashes when get alsa plugin
-  * [#1422] Improved error messages
-  * commit for merge
-  * [#1424] Change logo in tray icon and put a different one when
-    incoming call
-  * [#1425] first part done, window title...
-  * [#1413] add manpages creating and installing in build system
-  * [#1417] The client should start the account creation wizard if
-    started for the first time (if config file doesn't exist)
-  * [#1421] Make volume bars horizontal when dialpad is hidden.
-  * Changed main window title and fixed a mistake in sflphone_const.h
-  * [#1412] make debian package building work
-  * changelog changed.
-  * Changed addAccount method in gnome client.
-  * Debian and man folders added.
-  * [#1388] Change project name from sflphone_kde to sflphone-client-kde
-  * Better handle of kabc check.
-  * [#1351] Automatic generation of dbus interfaces in makefile
-    generated by cmake
-  * [#1307] Implement "edit before call" in history and address book.
-  * [#1344] change action_call label in call history from "call" to
-    "call back".
-  * [#1308] Implement Hook feature in kde client
-  * Improved build system.
-  * #1219 : Add address book configuration page
-  * Better handling of registration to the daemon.
-  * #1039 : Add tray icon in kde.
-  * Issue no 1216 : Double click on item in history or address book
-    causes call.
-  * display peer name in call list and call history when called from
-    address book.
-  * Address book functionnal with photo displayed.
-  * Help menu kde available but actions disappeared. All fonctions in
-    view.
-  * Address book functionnal but ugly and making its own sort in the
-    complete address book.
-  * Account choice on right click, clean out includes, page address
-    book, fixed bugs...
-  * Wizard, double click, context menu...
-  * Removed sflphone_kde.kdevelop.filelist
-  * Added account creation wizard and translated interface in english.
-  * Transfer functionnal but ugly.
-  * transfer not functionnal
-  * Bug fixed : unholding (UNHOLD_CURRENT, UNHOLD_RECORD)
-  * Commit functional for push. With install.sh
-  * Before merge.
-  * Problem with enable accounts. Account display increased.
-  * Functional with codec order working , playDTMF.
-  * Commit functional.
-  * sflphone_kde/build added in .gitignore.
-  * complete commit for checkout previous.
-  * Commit before checkout previous version to check the display
-    bug(little font everywhere...)
-  * Functionnal client. Rest : history icons, config icons and
-    functionalities
-  * commit before merge asavard for isRecording.
-  * Call and Automate fusion done and seems to work.
-  * Commiting before putting Automate class in Call class.
-  * Functionnal main window without recording, history, voicemail, kio
-    widgets.
-  * client kde avec kdevelop.
-  * Config Dialog almost finished.
-  * Base of QT client
-
- -- SFLphone Automatic Build System <team@sflphone.org>  Tue, 23 Jun 2009 11:12:06 -0400
-
-sflphone-common (0.9.5-SYSVER) SYSTEM; urgency=low
-
-    ** 0.9.5 release **
-
-  * [#1060] FIx bug in chinese translation
-  * [#1313] git add rtpTest.cpp rtpTest.h
-  * [#1313] Add init/close rtp tests
-  * [#1313] Basic instanciation of the rtp layer
-  * [#1449] Gtk-Critical concerning history filters and new calls
-  * [#1400] Make the match with the hostname instead of username
-  * [#1324] Change status bar label for "Using %s (%s)"
-  * [#1403] Icon size: 60x60 px
-  * [#1403] Do not remove notification, improve icon quality
-  * [#1403] Add smaller icon for gnome notifications
-  * [#1403] Prevent crash when hangup && no notification
-  * [#1403] Remove all actions on notifications; code refactoring
-  * [#1451] Use stun.sflphone.org as default STUN server
-  * [#1060] New po files - need to be translated
-  * [#1060] Update french translation - Rebuild template file
-  * [#1456] Add a flag to be replaced in the control files
-  * [#1454] Make cppunit optional; remove from build deps in control
-    files
-  * [#1401] Add libexpat1-dev dependency in control files
-  * [#1448] Take off these ugly debug messages
-  * [#1448] fixed getTelephoneTone and getTelephoneFile() called
-    repeatedly
-  * [#1406] add liblog4c-dev in build-depends
-  * [#1409] Restore .desktop icon
-
- -- SFLphone Automatic Build System <team@sflphone.org>  Mon, 25 May 2009 11:34:40 -0400
-
-sflphone-common (0.9.5-SYSVER~rc2) SYSTEM; urgency=low
-
-    ** 0.9.5 rc2 **
-
-  * [#1422] Improved error message
-  * [#1402] Fix pjsip build
-  * [#1404] Clear GTK-Critical Bug at client startup
-  * [#1422] Added automatic VM shutdown when building on more than one
-    VM
-  * [#1422] Fixed some issues with new changelog generation script
-  * [#1422] Moved distribution update to specific file
-  * [#1422] Dropped git-dch, replace by home made implementation
-  * [#1402] Fix pjsip build
-  * [#1404] Clear GTK-Critical Bug at client startup
-  * Changes for name based dbus connection
-  * Clean changelogs
-  * [#1343] Gnome: Implement a callback system to handle focus on
-    different widgets
-  * Debus Session
-  * Refactoring Python code, PEP8
-  * [#1430] Get back dbus_g_proxy_new_for_name
-  * [#1430] Get back DBUS_BUS_SESSION type
-  * [#1430] Dbus fixed owner message binding
-  * Second test with DBUS owner
-  * [#1404] Gnome -> Preferences -> Hooks
-  * [#1404] Gnome -> Preferences -> Recordings
-  * [#1404] Call History
-  * [#1404] Gnome -> Preferences -> Address Book
-  * [#1404] IF the first notification option disable the second
-    notification
-  * Dbus with fixed owner does not automatically start the deamon
-  * Add codec debug tests in pysflphone
-  * [#1407] Some print info
-  * [#1407] Add a scenario to pick_up action
-  * Test client dbus connection to a fixed owner
-  * Add python dbus test suite
-  * [#1161] Modified version handling in build system
-  * [#1314] Test pulse audio and audio streams connect and disconnect
-  * [#1402] Add info message after configure
-  * [#1402] Build the daemon with the local pjsip library (vs the
-    installed one)
-  * [#1009] Fix Codec Sampling Rate set to zeros
-  * [#1314] Add mutex to pulse layer audio streams
-  * [#1314] Refactoring pulseaudio stream to test connect disconnect
-  * [#1314] Refactoring of pulselayer to test conect/disconnect
-  * Add debug messages in debus calls concerning account
-  * [#1314] Add some return values to audio init functions
-  * [#1406] add liblog4c-dev in build-depends
-  * [#1409] Restore .desktop icon
-  * Bug #1405: Fix strings as requested.
-  * Bug #1404: Fix strings in preferences panel.
-
- -- SFLphone Automatic Build System <team@sflphone.org>  Tue, 19 May 2009 12:08:03 -0400
-
-sflphone-common (0.9.5-0ubuntu1~rc1) SYSTEM; urgency=low
-
-  [ SFLphone Project ]
-  * [#1262] Updated changelogs for version 0.9.5-0ubuntu1 Snapshot 2009-
-    05-05
-
-  [ Emmanuel Milou ]
-  * Add some python CLI client code; not really functional
-  * [#1108] Fix peerHungup method for IP to IP call
-
-  [ Alexandre Savard ]
-  * [#1108] Correct setting of SIP contact for direct IP call
-  * [#1108] SIP user agent handles incoming REFER
-
-  [ Emmanuel Milou ]
-  * Remove website from repository
-  * Update translation
-
-  [ Alexandre Savard ]
-  * Sflphone icon's tooltip changed for "configured" instead of
-    "registered"
-
-  [ Emmanuel Milou ]
-  * Update translation
-
-  [ Sflphone Project ]
-
- -- Sflphone Project <sflphone@mtl.savoirfairelinux.net>  Tue, 05 May 2009 19:16:09 -0400
-
-sflphone-common (0.9.5-0ubuntu1~beta) SYSTEM; urgency=low
-
-  [ Julien Bonjean ]
-  * Updated Eclipse stuff
-  * Improved addressbook config window
-  * Added sflphone Eclipse stuff
-  * Implemented addressbook list server side
-  * Moved dbus stuff in dbus directory
-  * Updated addressbook configuration
-
-  [ Emmanuel Milou ]
-  * Remove unuseful installation scripts. Use apt-get build-dep sflphone
-    instead
-  * fix bug #1090
-
-  [ Alexandre Savard ]
-  * defining speex 16khz
-
-  [ Emmanuel Milou ]
-  * Remove unuseful file from build system
-  * Start dns srv resolver
-
-  [ Alexandre Savard ]
-  * Basic ogg/vorbis initialization
-
-  [ Emmanuel Milou ]
-  * Handle incoming IP-to-IP invite correctly
-
-  [ Alexandre Savard ]
-  * speex wideband 16000
-
-  [ Emmanuel Milou ]
-  * Better handling of incoming IP to IP call
-  * DNS SRV resolution functional
-  * Implement IAX2 incoming URL
-  * Allow user to make IP call without any accounts configured
-  * Add a contextual menu to edit a number from the contacts tab
-  * Add comments, tooltip and new button to the contextual menu
-  * add delete event, migrate to GTK 2.16 for sexy icons
-  * Resolve ticket #1118
-  * Update suse spec file
-  * Add phone number cleanup functions, unit tests and panel
-    configuration
-  * Add pertinent test that fails
-  * fix dependencies for suse package
-  * Add contextual edit menu in history - #1120
-
-  [ Alexandre Savard ]
-  * Temporary comit: make speex wideband (16 khz)
-  * Temporary: shared object for speex narrow band
-  * Temporary: speex narrowband and wideband coexist
-
-  [ Julien Bonjean ]
-  * Fixed bug when no book selected
-  * Fixed addressbook related compilation warnings
-  * Fixed GTK client remaining compilation warnings
-  * Fixed segfault when book removed since last sflphone run
-  * Fixed bug when book is unreachable (ldap error)
-
-  [ Alexandre Savard ]
-  * Fix codec list in audio config window
-  * Active/inactive speex codec by payload
-
-  [ Julien Bonjean ]
-  * Updated gitignore
-  * Added some comments
-
-  [ Emmanuel Milou ]
-  * Add callto: handler script for browsers and al.
-  * Integrate test compilation in the daemon build-system
-
-  [ Julien Bonjean ]
-  * Fixed g_object_unref warning for pixbuf
-  * Cleaned too verbose output
-  * Fixed toolbar update warning
-  * Added support for asynchornous books open (first shot)
-
-  [ Emmanuel Milou ]
-  * Add a DBus call to fetch the call details from a call ID - Ticket
-    #928
-
-  [ Julien Bonjean ]
-  * Improved async open books
-  * Fixed bug #1139
-
-  [ Emmanuel Milou ]
-  * Add a way to save account order
-  * commit missing files
-
-  [ Julien Bonjean ]
-  * Introduced log4c (ticket #1162)
-
-  [ Emmanuel Milou ]
-  * Load/save account order functionnal - ticket #813
-
-  [ Alexandre Savard ]
-  * Add CELT codec (#1143)
-  * Make celt frame size 256  (*1143)
-
-  [ Julien Bonjean ]
-  * Switched everything to log4c (ticket #1162)
-  * Updated eclipse settings
-
-  [ Emmanuel Milou ]
-  * Restore adding account - ticket #1172
-  * Add liblog4c dependecy - ticket #1179
-
-  [ Alexandre Savard ]
-  * Double maxAvailByte for frame size in rtp (#1143)
-
-  [ Emmanuel Milou ]
-  * Add User-Agent SIP header - Ticket #1173
-
-  [ Julien Bonjean ]
-  * Fixed autoresize issue (#708)
-
-  [ Emmanuel Milou ]
-  * Remove libcppuint dependency for the debian packages
-  * Look for libsexy only if gtk version < 2.16 - Ticket #1116
-  * Remove libsexy dependency for jaunty. ticket #1116
-
-  [ Julien Bonjean ]
-  * Introduced unit tests (#1146)
-  * Updated gitignore
-  * Fixed Makefile (#1146)
-
-  [ Emmanuel Milou ]
-  * [TICKET #1112] Add a test on the voice buffer to send through iax
-    packets
-  * Remove doublon in dependencies
-  * Remove warnings from the client test framework
-  * Update version number to 0.9.5~beta
-  * Update build-package script
-  * Add check dependency in build-deps control file field
-  * Create debian files for the new sflphone-client-gnome
-  * [TICKET #1212] Add Replaces field in control files
-  * [TICKET #1212] Fix manpages installation path
-  * [TICKET #1212] Add maintainer scripts to create alternatives
-  * [#1212] Update the manpages generation - edit preinst maintainer
-    script
-  * [#1212] Fix reference error in manpage
-  * [#1212] Add missing files on the client side
-  * [#1212] Fix debian docs files - no TODO file
-  * [1212] Fix manpage creation problem
-  * [#1220] Generate client-side glue files and marshaller at
-    compilation time
-  * [#1220] Generate server-side glue files at compilation time
-  * [#1212] Change binary name to sflphone-client-gnome
-  * [#1212] Update .gitignore to fit the new working tree
-  * [#1220] Explicitly generate glue files before building the library
-  * [#1220] Compile dbus directory before audio
-  * [#1212] Create sflphone-common at the root of the repository
-  * [#1212] Re-add pjproject
-  * [#1212] Remove Makefile from repo
-  * [#1220] Fix Makefile.am
-  * [#1212] New working directory functional
-  * [#1212] Update .gitignore
-  * [#1212] Hack to make pjsip compile..
-  * [#1220] Use non-installed binary for dbusxx-xml2cpp
-  * [#1212] Add descriptive files, remove unuseful scripts from tools/
-
-  [ Alexandre Savard ]
-  * Restore speex codecs
-  * add frame size for celt (#1143)
-  * add framesize to codec, independant from audiolayer (#1143)
-  * use codec frame size in rtp (#1143)
-  * compute fixed_codec_framesize (#1143)
-  * do not resample if not required (#1143)
-  * add condition on resampling for decoder (#1143)
-  * add a condition on bytesAvail == 0 from mic data
-  * no maximum in rtp decode (#1143)
-  * compute maximum for decoding (#1143)
-
-  [ Emmanuel Milou ]
-  * [#1146] Implement unitary tests on the client-side
-
-  [ Alexandre Savard ]
-  * use float instead of int to compute max nb of sample (#1143)
-  * add nbSampleMax for unresampled data (#1143)
-  * make thread sleep during 5 ms insead of 20 (#1143)
-  * use unix usleep (#1143)
-  * 50 usecond thread!!!!! (#1143)
-  * try with the smallest compression (#1143)
-  * use timer set at framesize (#1143)
-
-  [ Emmanuel Milou ]
-  * [#1161] Restore changelog version
-
-  [ Alexandre Savard ]
-  * Remove celt stuff
-
-  [ Emmanuel Milou ]
-  * [#1161] Update changelog
-  * [#1220] Add Conflicts: sflphone in debian control files
-  * [#1179] Add liblog4c3 runtime dependency
-  * [#1212] FIx typo error in dependency list for itnrepid
-  * [#1212] FIx .desktop file to point on the right exec
-  * [#1212] Modify changelog replacing tag
-
-  [ Sflphone Project ]
-  * "[#1262] Updated changelogs for version 0.9.5-0ubuntu1~beta"
-
-  [ Emmanuel Milou ]
-  * [#1212] restore changelogs
-
-  [ Sflphone Project ]
-  * [#1262] Updated changelogs for version 0.9.5-0ubuntu1 Snapshot 2009-
-    04-27
-
-  [ Emmanuel Milou ]
-  * [#1212] restore changelogs
-
-  [ Sflphone Project ]
-  * [#1262] Updated changelogs for version 0.9.5-0ubuntu1~beta
-
-  [ Emmanuel Milou ]
-  * [#1212] restore changelogs
-
-  [ Sflphone Project ]
-
- -- Sflphone Project <sflphone@mtl.savoirfairelinux.net>  Mon, 27 Apr 2009 16:57:00 -0400
-
-sflphone-common (0.9.4-0ubuntu2) SYSTEM; urgency=low
-
-  [ Alexandre Savard ]
-  * Restore speex and GSM detection
-
-  [ Emmanuel Milou ]
-  * Fix bug #1090
- 
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Wed, 8 Apr 2009 11:29:15 -0500
-
-sflphone (0.9.4-0ubuntu1) SYSTEM; urgency=low
-
-  [ Emmanuel Milou ]
-  * Integrate DBus-c++ and libiax2 in the main build system
-  * Clean up in the working repository
-  * Reorder hooks configuration panel
-  * Protect case when no codecs are active
-  * Fix some return values
-  * Add unitary tests for the hook manager (premisces)
-  
-  [Yun Liu]
-  * Update chinese translation
-
-  [Sven Werlen]
-  * Update german translation
-
-  [Hussein Abdallah]
-  * Update russian translation
-
-  [Maxime Chambreuil]
-  * Update spanish translation
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 3 Apr 2009 18:29:15 -0500
-
-
-sflphone (0.9.4-rc1) SYSTEM; urgency=low
-
-  [ Emmanuel Milou ]
-  * Fix bug while trying to hold/unhold several simultaneous call
-  * Improve address book build system
-  * Implement SIP url popup on incoming call
-  * Improve GTK+ panel configuration
-  [ Julien Bonjean ]
-  * GTK+ client refactoring
-  * GTK+ clean up
-  * Address book improvment
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 27 Mar 2009 18:29:15 -0500
-
-sflphone (0.9.4-0beta1) SYSTEM; urgency=low
-
-  [ Alexandre Savard ]
-  * Display codec used during conversation on the GUI
-  * Enable/disable STUN parameters at runtime
-  * Refactor search bar use
-  [ Emmanuel Milou ]
-  * Build system fixes
-  * Implement SIP re-invite
-  * Implement IP to IP call
-  [ Julien Bonjean ]
-  * Integrate GNOME address book based on evolution data server
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 20 Mar 2009 18:29:15 -0500
-
-
-sflphone (0.9.3-0ubuntu3) SYSTEM; urgency=low
-
-  [ Alexandre Savard ]
-  * Both playback and record streams in PA_STREAM_CORKED (pulseaudio)
-  * Use PLUGHW device for ALSA capture
-  * Functional IAX and SIP recording for voicemail
-  * Use the less CPU-consuming interpolator algorithm for resampling
-  * Display in GTK GUI the codec used in conversation
-  * GTK GUI use ASCII instread of utf-8
-  * Add record menus in GTK GUI
-  * Put on hold when dialing a new number
-  * AccountID's are saved in the history
-
-  [ Emmanuel Milou ]
-  * Integrate DBUS C++, libiax2 in the git repository
-  * Update website
-  * Use libspeexdsp only if available on the system
-  * Updated .gitignore file
-
-  [Cyrille Béraud]
-  * Account assistant manager improvment
-  * Add an email request when creating a new account to receive voicemails
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Sat, 14 Feb 2009 13:29:15 -0500
-
-sflphone (0.9.3-0ubuntu2) SYSTEM; urgency=low
-
-  [ Emmanuel Milou ]
-  * Add compilation note in README
-  * Use default ALSA plugin for capture
-  * Fix the ALSA capture problem one more time
-  * Clean up debug messages in dbus.c
-  * Add libspeexdsp dependency
-  * Remove implicit declaration compilation warnings
-  * Fix links in the website, add release note
-  * Change capture for the website front page
-  * Add alsa devel dependency in build-depends control file field
-  * Clean up, indentation, try to handle latency problems in iax/pulseaudio
-  * Remove pjsip generated files from the repo
-  * Use the previous declared curAlias function in accountwindow
-  * Fix bug in history call duration when the call fails
-  * Remove runtime warning in the GTK+ client
-  * Add librsvg2-common dependency to load SVG under KDE
-  * Refresh .gitignore
-  * Update locales files + french translation
-  * Add configuration panel for future noise reduction
-  * Add configuration panel for audio record module
-  * Daemon less verbose; accounts don't try to access STUn options anymore
-  * Fix typo in configwindow
-  * Add content in the official website
-  * use a GTK_STOCK icon for the record button
-  * Complete description text in the assistant manager
-  * Add libtool flags in client configure.ac
-  * Remove unuseful dependency (snd)
-  * Fix SIP transfer problems
-  * Remove previous version of PJSIP from the repo
-  * Upgrade PJSIP to version 1.0.1
-  * Add the new website source in the repository
-  * Use libspeexdsp for silence detection only if available
-
-  [ Loïc Faure-Lacroix ]
-  * Ajout du logo gpl3
-  * Ajout des images
-  * Ajout de la section screenshot pour le site
-  * Ajout du favicon dans le header
-  * Modification des cartes
-
-  [ Alexandre Savard ]
-  * Clean up <speex/libspeexdsp>
-  * Small cleanup
-  * Save Wave fixed
-  * Fix new call button when recording
-  * libspeexdsp added
-  * Recording: default home folder at startup
-  * Minor changes to config window
-  * IAX recording fixed
-  * Set / get recording path, still need some GTK for client
-  * AudioRecord file name format
-  * Now recording in HOME folder
-
-  [ Cyrille Béraud ]
-  * Fix bug in reqaccount.c
-
-  [ Maxime Chambreuil ]
-  * Update spanish translation
-
-  [Yun Liu ]
-  * Update chinese translation 
-
-  [ Hussein Abdallah ]
-  * Update russian translation
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Sat, 14 Feb 2009 13:29:15 -0500
-
-sflphone (0.9.3-0ubuntu1) SYSTEM; urgency=low
-
-  * Remove debug
-  * Join thread before leaving
-  * Fix implicit declaration in reqaccount
-  * Add REST code to build the request to server
-  * Fix GValue initialization warnings
-  * Update version number, fix implicit declaration, fix GTK markup
-    warnings
-  * Apply patch to create custom SIP account from our own server
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 06 Feb 2009 19:17:32 -0500
-
-sflphone (0.9.2-2ubuntu9) SYSTEM; urgency=low
-
-  [ Alexandre Savard ]
-  * Speex audio codec preprocessing initialization
-  * peer hung up segmentation fault solved
-  * Stop recording when transfering
-  * Terminate only one call
-  * Add isRecording() function
-  * Fix call_icon GTK client
-  * Fix SIPCallClose() function, recorded file now close properly
-  * Function terminateSIPCall added in sipvoiplink and managerimpl
-  * Fix thread destructor
-  * setRecordingOption function implement in audiorecord
-  * Record now implemented in Call class
-  * Record interface complete (on hold erase previous recording)
-  * Added recButton in client
-  * Added: record button related icons
-  * Record button added
-  * Overload AudioRecord::recData to get mic and speaker data mixed
-  * Recording now in audiortp::run() method
-  * Audio recording working in AudioRTP: receiveSessionForSpeaker
-  * Open/close a wave file when pulse audio stream start/stop
-
-  [ Emmanuel Milou ]
-  * Fix path for GTK+ icons; clean up
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Thu, 05 Feb 2009 18:27:53 -0500
-
-sflphone (0.9.2-2ubuntu8) SYSTEM; urgency=low
-
-  [ Emmanuel Milou ]
-  * Update changelogs
-  * Fix bug in merge and in Makefile.am
-  * Terminate only one call
-  * Disable PJsip shutdown when changing STUN parameters
-  * Function terminateSIPCall added in sipvoiplink and managerimpl
-  * Add a timer to the alsa thread to not jam the CPU load
-  * Fix bug in sipvoiplink.cpp
-  * Clean shutdown of pulseaudio on quiting
-  * Fix DTMF at first start with Pulseaudio
-  * Remove zeroconf from the build system
-  * Add a library manager + exception handling
-  * Clean up in the working directory
-  * Better handling of capture XRUNs
-  * Restore mic adjust volume on ALSA layer
-  * Protect device ALSA operation if not opened
-  * Fix the switching layer bug
-  * Use dynamic_cast<> to use audiolayer-specific methods
-  * Open the audio devices only once at startup
-  * Refactoring of the ALSA part
-  * Functional plug-in manager
-  * Use a C++ thread to handle tones and DTMF in ALSA
-  * Restore IAXVoIPLink, restore Mutex
-  * Make the plugins registering against the plugin manager
-  * Migrate to 1->N relationship between voiplink and accounts
-  * API plugin for registration
-  * Use C++ thread in SIP, move everything in sipvoiplink
-  * Complete singleton pattern for the plugin manager
-  * Add -Wno-return-type compilation flag to remove warnings; Update
-    version number in configure.ac
-  * Add the dynamic loading for the plugin framework; integate unittest
-
-  [ Yun Liu ]
-  * Update rpm spec file
-  * modify build package script and spec file for suse
-
-  [ Alexandre Savard ]
-  * Add audiorecorder plugin and testaudiorecorder
-  * Add audio Recording class, edit global.h
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Wed, 04 Feb 2009 14:00:30 -0500
-
-sflphone (0.9.2-2ubuntu7) SYSTEM; urgency=low
-
-  [ Emmanuel Milou ]
-  * Update changelog to 0.9.2-6
-  * Fix some dbus-glib implementation details on the client side
-  * Init history after dbus initialization
-  * Add error checking in useragent; Clean sipvoiplink
-  * Prevent crash when trying to call an empty number
-  * Set the volume of the playback stream to PA_VOLUME_NORM at startup
-  * Fix GTK+ generic value double initialization
-  * Fix jaunty control file dependency problems
-  * Fix jaunty control file dependency problems
-
-  [ Yun Liu ]
-  * Fix bug ticket # 137
-  * Tolerant to gsm library of OpenSuse 11
-
-  [ Sven Werlen ]
-  * Update german translation
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 23 Jan 2009 17:48:13 -0500
-
-sflphone (0.9.2-2ubuntu6) SYSTEM; urgency=low
-
-  [ Emmanuel Milou ]
-  * Migrate STUN configuration to the main config window
-  * Update french translation
-  * Other tiny memory leaks
-  * Fix memory leak in sampleconverter.cpp
-  * Generate packages from the release branch
-  * update the build package script
-  * modify the control files with architecture=any
-  * Remove valgring uninitialized value
-  * IAX and SIP use the same global variables to set account
-    configuration ; fix broken code
-
-  [ Maxime Chambreuil ]
-  * Update spanish translation
-
-  [ Hussein Abdallah ]
-  * Update russian translation
-
-  [ Yun Liu ]
-  * Update translation files
-  * Fix the bug when user uncheck the account which fails in the
-    previous registration
-  * Add stun error status
-  * Fix bug ticket #143
-  * Script for auto-install dependencies
-  * Fix bug ticket #140
-  * Fix bug ticket 141
-  * Fix the reregister process when user change the details of an
-    account
-
- -- Emmanuel Milou <manu@sulfur.inside.savoirfairelinux.net>  Fri, 16 Jan 2009 18:19:05 -0500
-
-sflphone (0.9.2-2ubuntu5) SYSTEM; urgency=low
-
-  * Fix memory leak in the pulseaudio callback
-  * Update debian package generation script
-  * Warnings removal in GTK+ client
-  * Clean adjust volume method in alsalayer
-  * Plug the sflphone playback volume control to the pulseaudio volume
-    manager
-  * Display the date in history according to the current locale
-  * Generate the changelog according to the git commit messages
-  * Complete header in chinese translation file
-  * Use the right gpg key to sign the packages
-  * add debian jaunty jackalope support
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Wed, 14 Jan 2009 21:17:20 -0500
-
-sflphone (0.9.2-2ubuntu4) SYSTEM; urgency=low
-
-  [ Emmanuel Milou ]
-  * add german translation
-  
-  [ Yun Liu ]
-  * Fix GUI crash in Ubuntu8.10 64bit system
-  
- -- Yun Liu <yun.liu@savoirfairelinux.com>  Thu, 08 Jan 2009 13:08:51 -0500
-
-sflphone (0.9.2-2ubuntu3) SYSTEM; urgency=low
-
-  [ Emmanuel Milou ]
-  * The main thread synchronizes the ringtone thread
-  * disable custom ringtone for the ALSA layer
-  * Fix the Makefile.am in man directory, add a SEE ALSO section
-  
-  [ Yun Liu ]
-  * Fix daemon crash caused by the previous patch ( for bug ticket #129)
-  
- -- Yun Liu <yun.liu@savoirfairelinux.com>  Tue, 06 Jan 2009 16:18:38 -0500
-
-sflphone (0.9.2-2ubuntu2) SYSTEM; urgency=low
-  
-  * Fix bug ticket #129
-  
- -- Yun Liu <yun.liu@savoirfairelinux.com>  Wed, 5 Jan 2009 15:54:53 -0500
-
-sflphone (0.9.2-2ubuntu1) SYSTEM; urgency=low
-
-  * Migrate from eXosip library to pjsip
-  * Add multiple SIP accounts support
-  * Fix ringtones problems
-  * Add a pulseaudio support
-  * Improve audio quality with ALSA
-  * Add chinese translation
-  * Improve spanish translation
-  * Migrate to a maintained C++ DBus bindings
-  * Clean and improve the build system
-  * Add build-dependency on Perl because we need pod2man to generate manpages
-
- -- Yun Liu <yun.liu@savoirfairelinux.com>  Wed, 26 Nov 2008 09:47:53 -0500
-
-sflphone (0.9.1) unstable; urgency=low
-  * Add a search tool in the history
-  * Migrate some gtk_entry_new to sexy_icon_entry_new
-  * Bug fix (Ticket #78): The voicemail password isn't displayed anymore in
-    the history tab
-  * Add the SIP registration expire value in the user file.
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Thu, 22 May 2008 11:14:25 -0500
-
-sflphone (0.9.0) unstable; urgency=low
-  * Add history features
-    * Call date
-    * Call duration
-    * Mouse events in the history tab
-  * Smooth switch from the history tab to the calls tab
-  * Remove most of GTK-Critical warnings
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Wed, 13 May 2008 16:58:25 -0500
-
-sflphone (0.9-2008-06-06) unstable; urgency=low
-  * Audio bug correction: capture stopped after a few minutes of conversation
-  with USB Plantronics sound card
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Tue, 06 May 2008 16:58:25 -0500
-
-sflphone (0.9-2008-05-06) unstable; urgency=low
-  * Bug correction: account creation with the assistant
-  * GTK+ warnings removal
-  * libnotify warnings removal
-  * Remove aliasing on the SFLphone logo
-  
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Mon, 05 May 2008 16:58:25 -0500
-
-sflphone (0.9) unstable; urgency=low
-  * Clean dependencies ( removal of libboost )
-  * Several GTK improvement and updates
-    -account window
-    -configuration window
-  * Migrate from GtkCheckMenuItem to GtkImageMenuItem  
-  * ALSA standard I/O transfers: MMAP instead of R/W
-  * Fix speex audio quality
-  * IAX2 protocol
-    -Fix hold/unhold situation
-    -Add on hold music
-  * SIP protocol
-    -Ringtone on incoming call
-    -Fix transfer situation
-  * Add desktop notification ( libnotify )
-  * Improve the system tray icon behaviour
-  * Improve registration error handling
-  * Register/unregister from the account window takes effect without starting back SFLphone
-  * Compilation warnings removal
-  * Call history
-  * Add an account configuration wizard
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Wed, 30 Apr 2008 16:58:25 -0500
-
-sflphone (0.8.2) unstable; urgency=low
-  * Internationalization of the GTK GUI
-  * English / French
-  * STUN support
-  * Slight modifications of the graphical interface ( tooltips, dialpad, ...)
-
- -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>  Fri, 21 Mar 2008 11:37:53 -0500
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-common/compat b/tools/build-system/distributions/ubuntu/debian-sflphone-common/compat
deleted file mode 100644
index 7ed6ff82de..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-common/compat
+++ /dev/null
@@ -1 +0,0 @@
-5
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-common/control.hardy b/tools/build-system/distributions/ubuntu/debian-sflphone-common/control.hardy
deleted file mode 100644
index e14674d170..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-common/control.hardy
+++ /dev/null
@@ -1,20 +0,0 @@
-Source: sflphone-common
-Maintainer: SavoirFaireLinux Inc <emmanuel.milou@savoirfairelinux.com>
-Section: gnome
-Priority: optional
-Build-Depends: debhelper (>= 5), libgcc1, autoconf, automake, libpulse-dev, libsamplerate0-dev, libcommoncpp2-dev, libccrtp-dev, libgsm1-dev, libspeex-dev, libtool, libdbus-1-dev, libasound2-dev, uuid-dev, libexpat1-dev
-Standards-Version: 3.7.3
-
-Package: sflphone-common
-Priority: optional
-Architecture: any
-Depends:  libsamplerate0 (>=0.1.2) , libdbus-glib-1-2 (>= 0.73), libexpat1, libc6 (>= 2.3.6-6) , libcommoncpp2-1.6-0 ,libgsm1 (>=1.0.10) , libspeex1 (>=1.1.12) , libdbus-1-3, libasound2 (>= 1.0), libpulse0 (>= 0.9.6), libccrtp1-1.6-0
-Replaces: sflphone
-Conflicts: sflphone
-Homepage: http://www.sflphone.org
-Description: SIP and IAX2 compatible softphone - Core
- This package provides SFLphone daemon, that is the core of the application.
- SFLphone is meant to be a robust enterprise-class desktop phone.
- SFLphone is released under the GNU General Public License.
- SFLphone is being developed by the global community, and maintained by
- Savoir-faire Linux, a Montreal, Quebec, Canada-based Linux consulting company.
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-common/control.intrepid b/tools/build-system/distributions/ubuntu/debian-sflphone-common/control.intrepid
deleted file mode 100644
index 270e678112..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-common/control.intrepid
+++ /dev/null
@@ -1,20 +0,0 @@
-Source: sflphone-common
-Maintainer: SavoirFaireLinux Inc <emmanuel.milou@savoirfairelinux.com>
-Section: gnome
-Priority: optional
-Build-Depends: debhelper (>= 5), libgcc1 , autoconf, libpulse-dev, libsamplerate0-dev, libcommoncpp2-dev, libccrtp-dev, libgsm1-dev, libspeex-dev, libtool, libdbus-1-dev, libasound2-dev, libspeexdsp-dev, uuid-dev, libexpat1-dev
-Standards-Version: 3.8.0
-
-Package: sflphone-common
-Priority: optional
-Architecture: any
-Depends: libsamplerate0 (>=0.1.2) , libexpat1 , libc6 (>= 2.3.6-6) , libcommoncpp2-1.6-0 , libgsm1 (>=1.0.10) , libspeex1 (>=1.1.12) , libdbus-1-3, libasound2 (>= 1.0), libpulse0 (>= 0.9.6), libccrtp1-1.6-1, libspeexdsp1
-Replaces: sflphone
-Conflicts: sflphone
-Homepage: http://www.sflphone.org
-Description: SIP and IAX2 compatible softphone - Core 
- This package provides SFLphone daemon, that is the core of the application.
- SFLphone is meant to be a robust enterprise-class desktop phone.
- SFLphone is released under the GNU General Public License.
- SFLphone is being developed by the global community, and maintained by
- Savoir-faire Linux, a Montreal, Quebec, Canada-based Linux consulting company.
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-common/control.jaunty b/tools/build-system/distributions/ubuntu/debian-sflphone-common/control.jaunty
deleted file mode 100644
index 8a99d63922..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-common/control.jaunty
+++ /dev/null
@@ -1,19 +0,0 @@
-Source: sflphone-common
-Maintainer: SavoirFaireLinux Inc <emmanuel.milou@savoirfairelinux.com>
-Section: gnome
-Priority: optional
-Build-Depends: debhelper (>= 5), libgcc1 , autoconf, automake, libpulse-dev, libsamplerate0-dev, libcommoncpp2-dev, libccrtp-dev, libgsm1-dev, libspeex-dev, libtool, libdbus-1-dev, libasound2-dev, libspeexdsp-dev, uuid-dev, libexpat1-dev, libzrtpcpp-dev, libssl-dev
-Standards-Version: 3.7.3
-
-Package: sflphone-common
-Priority: optional
-Architecture: any
-Depends: libsamplerate0 (>=0.1.2) , libexpat1 , libc6 (>= 2.3.6-6) , libcommoncpp2-1.6-0  , libgsm1 (>=1.0.10) , libspeex1 (>=1.1.12) , libdbus-1-3, libasound2 (>= 1.0), libpulse0 (>= 0.9.6), libccrtp1-1.6-1, libspeexdsp1
-Replaces: sflphone
-Conflicts: sflphone
-Homepage: http://www.sflphone.org
-Description: SIP and IAX2 compatible softphone - Core
- SFLphone is meant to be a robust enterprise-class desktop phone.
- SFLphone is released under the GNU General Public License.
- SFLphone is being developed by the global community, and maintained by
- Savoir-faire Linux, a Montreal, Quebec, Canada-based Linux consulting company.
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-common/copyright b/tools/build-system/distributions/ubuntu/debian-sflphone-common/copyright
deleted file mode 100644
index fbde2314be..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-common/copyright
+++ /dev/null
@@ -1,28 +0,0 @@
-This package was debianized by Emmanuel Milou <emmanuel.milou@savoirfairelinux.com> on
-Fri, 3 Apr 2009 09:47:53 -0500.
-
-It was downloaded from the git repository of SFLphone: git://sflphone.org/git/sflphone.git
-
-Upstream Author: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
-
-Copyright:
-
-Savoir-Faire Linux Inc.
-
-License:
-
-This software is copyright (c) 2004-2009 Savoir-Faire Linux inc.
-
-You are free to distribute this software under the terms of
-the GNU General Public License version 3.
-On Debian systems, the complete text of the GNU General Public
-License can be found in the file `/usr/share/common-licenses/GPL'.
-
-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., 51 Franklyn St, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-common/cron.d b/tools/build-system/distributions/ubuntu/debian-sflphone-common/cron.d
deleted file mode 100644
index d11e611777..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-common/cron.d
+++ /dev/null
@@ -1,4 +0,0 @@
-#
-# Regular cron jobs for the sflphone package
-#
-0 4	* * *	root	sflphone_maintenance
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-common/dirs b/tools/build-system/distributions/ubuntu/debian-sflphone-common/dirs
deleted file mode 100644
index ab04d899ac..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-common/dirs
+++ /dev/null
@@ -1,8 +0,0 @@
-usr/bin
-usr/lib
-usr/share/applications
-usr/share/dbus-1/services
-usr/share/sflphone/ringtones
-usr/share/locale
-usr/share/doc
-usr/share/man
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-common/docs b/tools/build-system/distributions/ubuntu/debian-sflphone-common/docs
deleted file mode 100644
index f1dd08af02..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-common/docs
+++ /dev/null
@@ -1,6 +0,0 @@
-NEWS
-README
-TODO
-ChangeLog
-AUTHORS
-
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-common/manpages b/tools/build-system/distributions/ubuntu/debian-sflphone-common/manpages
deleted file mode 100644
index 18f8b41d08..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-common/manpages
+++ /dev/null
@@ -1 +0,0 @@
-debian/sflphone-common/usr/share/man/man1/sflphoned.1
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-common/postinst b/tools/build-system/distributions/ubuntu/debian-sflphone-common/postinst
deleted file mode 100644
index ff29eda333..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-common/postinst
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/bash
-# postinst script for sflphone-common
-#
-# see: dh_installdeb(1)
-
-# Script to copy and move, if exists, configuration file sflphonedrc and history in the XDG directory
-# Freedesktop specifications: http://standards.freedesktop.org/basedir-spec/latest/
-
-set -e
-
-INST_CONFIG="$HOME/.sflphone/sflphonedrc";
-INST_DATA="$HOME/.sflphone/history";
-INST_CACHE="$HOME/.sflphone/sfl.pid";
-
-NEW_INST_CONFIG= 
-NEW_INST_DATA= 
-NEW_INST_CACHE=
-
-# Set the XDG CONFIG directory to the default one or to the path set in the environment variable
-if [ -z $XDG_CONFIG_HOME ]; then
-	NEW_INST_CONFIG=$HOME"/.config/sflphone/";  # This is the standard path
-else
-	NEW_INST_CONFIG=$XDG_CONFIG_HOME;
-fi;
-
-# Set the XDG DATA directory to the default one or to the path set in the environment variable
-if [ -z $XDG_DATA_HOME ]; then
-	NEW_INST_DATA=$HOME"/.local/share/sflphone/";  # This is the standard path
-else
-	NEW_INST_DATA=$XDG_DATA_HOME;
-fi;
-
-# Move the configuration file
-if [ -f $INST_CONFIG ] ; then
-	echo "Moving the configuration file into $NEW_INST_CONFIG directory";
-	if [ ! -d $NEW_INST_CONFIG ]; then
-		mkdir $NEW_INST_CONFIG;
-	fi
-	mv $INST_CONFIG $NEW_INST_CONFIG;
-fi
-
-# Move the history
-if [ -f $INST_DATA ] ; then
-	echo "Moving the history file into $NEW_INST_DATA directory";
-	if [ ! -d $NEW_INST_DATA ]; then
-		mkdir $NEW_INST_DATA;
-	fi
-	mv $INST_DATA $NEW_INST_DATA;
-fi
-
-# Remove the directory
-# rmdir $HOME"/.sflphone";
-
-echo "You may remove the $HOME/.sflphone, the application won't use it anymore, but the XDG directories instead. Thank you.";
-
-exit 0
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-common/postrm b/tools/build-system/distributions/ubuntu/debian-sflphone-common/postrm
deleted file mode 100644
index 70be710bd1..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-common/postrm
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-# postrm script for sflphone
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-#        * <postrm> `remove'
-#        * <postrm> `purge'
-#        * <old-postrm> `upgrade' <new-version>
-#        * <new-postrm> `failed-upgrade' <old-version>
-#        * <new-postrm> `abort-install'
-#        * <new-postrm> `abort-install' <old-version>
-#        * <new-postrm> `abort-upgrade' <old-version>
-#        * <disappearer's-postrm> `disappear' <overwriter>
-#          <overwriter-version>
-# for details, see http://www.debian.org/doc/debian-policy/ or
-# the debian-policy package
-
-if [ "$1" = "purge" ]
-then
-
-  # remove the user config file
-  rm -f $HOME/.sflphone/sflphonedrc
-
-fi
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
-
-
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-common/preinst b/tools/build-system/distributions/ubuntu/debian-sflphone-common/preinst
deleted file mode 100644
index 6d04e97b45..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-common/preinst
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-# postrm script for sflphone
-#
-# see: dh_installdeb(1)
-
-set -e
-
-package=sflphone
-
-case "$1" in
-    install|upgrade)
-        # Clear the old dbus-c++ and iax2 if presents
-    ;;
-esac
-
-exit 0
diff --git a/tools/build-system/distributions/ubuntu/debian-sflphone-common/rules b/tools/build-system/distributions/ubuntu/debian-sflphone-common/rules
deleted file mode 100755
index 5624b56e3e..0000000000
--- a/tools/build-system/distributions/ubuntu/debian-sflphone-common/rules
+++ /dev/null
@@ -1,120 +0,0 @@
-#!/usr/bin/make -f
-# -*- makefile -*-
-# Sample debian/rules that uses debhelper.
-# This file was originally written by Joey Hess and Craig Small.
-# As a special exception, when this file is copied by dh-make into a
-# dh-make output file, you may use that output file without restriction.
-# This special exception was added by Craig Small in version 0.37 of dh-make.
-
-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
-export DH_OPTIONS
-
-package=sflphone-common
-
-CXX = g++-4.0
-CFLAGS = -Wall -g
-DEB_INSTALL_MANPAGES_sflphone_common = sflphoned.1
-
-configure: configure-stamp
-configure-stamp:
-	dh_testdir
-	# Add here commands to configure the package.
-	./autogen.sh 
-	./configure --prefix=/usr
-	cd libs/pjproject; ./autogen.sh; ./configure --prefix=/usr
-	touch configure-stamp
-
-#Architecture 
-build: build-arch build-indep
-
-build-arch: build-arch-stamp
-build-arch-stamp: configure-stamp 
-
-    # Add here commands to compile the arch part of the package.
-	cd libs/pjproject; $(MAKE) dep; $(MAKE) clean; $(MAKE)
-	cd -; $(MAKE) 
-	touch $@
-
-build-indep: build-indep-stamp
-build-indep-stamp: configure-stamp 
-
-       # Add here commands to compile the indep part of the package.
-       #$(MAKE) doc
-	touch $@
-clean:
-	dh_testdir
-	dh_testroot
-	rm -f build-arch-stamp build-indep-stamp configure-stamp
-	# Add here commands to clean up after the build process.
-	[ ! -f Makefile ] || $(MAKE) distclean 
-
-ifneq "$(wildcard /usr/share/misc/config.sub)" ""
-	cp -f /usr/share/misc/config.sub config.sub
-endif
-ifneq "$(wildcard /usr/share/misc/config.guess)" ""
-	cp -f /usr/share/misc/config.guess config.guess
-endif
-	dh_clean 
-
-install: install-indep install-arch
-install-indep:
-	dh_testdir
-	dh_testroot
-	dh_clean -k -i 
-	dh_installdirs -i
-	# Add here commands to install the package into debian/sflphone.
-
-install-arch:
-	dh_testdir
-	dh_testroot
-	dh_clean -k -s 
-	dh_installdirs -s
-	# Add here commands to install the arch part of the package into 
-	# debian/tmp.
-	$(MAKE) DESTDIR=$(CURDIR)/debian/$(package) install
-	cd libs/pjproject; $(MAKE) prefix=$(CURDIR)/debian/$(package)/usr install
-	rm -rf $(CURDIR)/debian/$(package)/usr/include
-	dh_install -s
-# Must not depend on anything. This is to be called by
-# binary-arch/binary-indep
-# in another 'make' thread.
-
-binary-common:
-	dh_testdir
-	dh_testroot
-	dh_installchangelogs ChangeLog
-	dh_installdocs
-	dh_installexamples
-#	dh_installmenu
-#	dh_installdebconf	
-#	dh_installlogrotate	
-#	dh_installemacsen
-#	dh_installpam
-#	dh_installmime
-#	dh_python
-#	dh_installinit
-#	dh_installcron
-#	dh_installinfo
-	dh_installman
-	dh_link
-	dh_strip
-	dh_compress 
-	dh_fixperms
-#	dh_perl
-	dh_makeshlibs
-	dh_installdeb
-#	dh_shlibdeps
-	dh_gencontrol
-	dh_md5sums
-	dh_builddeb
-# Build architecture independant packages using the common target.
-binary-indep: build-indep install-indep
-	$(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
-
-# Build architecture dependant packages using the common target.
-binary-arch: build-arch install-arch
-	$(MAKE) -f debian/rules DH_OPTIONS=-s binary-common
-
-binary: binary-arch binary-indep
-.PHONY: build clean binary-indep binary-arch binary install install-indep install-arch configure
diff --git a/tools/build-system/gpg/setup-gpg.sh b/tools/build-system/gpg/setup-gpg.sh
deleted file mode 100755
index 1a12793003..0000000000
--- a/tools/build-system/gpg/setup-gpg.sh
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/bash
-#####################################################
-# File Name: setup-gpg.sh
-#
-# Purpose :
-#
-# Author: Julien Bonjean (julien@bonjean.info) 
-#
-# Creation Date: 2009-04-20
-# Last Modified:
-#####################################################
-
-# pkill gpg-agent
-
-export LANG=en_CA.UTF-8
-export LC_ALL=en_CA.UTF-8
-
-echo "Check if GPG key is present"
-gpg --list-secret-keys | grep "Savoir-Faire Linux Inc." >/dev/null
-
-if [ "$?" -ne "0" ]; then
-       echo "!! GPG private key is not present"
-       exit -1
-fi
-
-echo  "Check GPG agent"
-pgrep -u "sflphone-package-manager" gpg-agent > /dev/null
-if [ "$?" -ne "0" ]; then
-	echo "Not running, launching it"
-        EVAL=`/usr/bin/gpg-agent --daemon --write-env-file $HOME/.gpg-agent-info --default-cache-ttl 2000000000 --max-cache-ttl 2000000000 --pinentry-program /usr/bin/pinentry`
-	eval ${EVAL}
-fi
-
-if [ "$?" -ne "0" ]; then
-       echo "!! Error with GPG agent"
-       exit -1
-fi
-
-GPG_AGENT_INFO=`cat $HOME/.gpg-agent-info 2> /dev/null`
-export ${GPG_AGENT_INFO}
-
-if [ "${GPG_AGENT_INFO}" == "" ]; then
-	echo "!! Cannot get GPG agent info"
-	exit -1
-fi
-
-GPG_TTY=`tty`
-export GPG_TTY
-
-touch ./test-gpg
-gpg -v --clearsign --use-agent ./test-gpg
-rm -f ./test-gpg
-rm -f ./test-gpg.asc
-
-exit 0
-
diff --git a/tools/build-system/launch-build-machine.sh b/tools/build-system/launch-build-machine.sh
deleted file mode 100755
index f4c0246049..0000000000
--- a/tools/build-system/launch-build-machine.sh
+++ /dev/null
@@ -1,431 +0,0 @@
-#!/bin/bash
-#####################################################
-# File Name: launch-build-machine.sh
-#
-# Purpose :
-#
-# Author: Julien Bonjean (julien@bonjean.info) 
-#
-# Creation Date: 2009-04-20
-# Last Modified: 2009-08-07 17:01:32 -0400
-#####################################################
-
-#
-# Not working with git 1.5.4.3
-#
-
-TAG=`date +%Y-%m-%d`
-
-# wait delay after startup and shutdown of VMs
-STARTUP_WAIT=40
-SHUTDOWN_WAIT=30
-
-# ssh stuff
-SSH_OPTIONS="-o LogLevel=ERROR -o CheckHostIP=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
-SSH_HOST="sflphone@127.0.0.1"
-SSH_REPOSITORY_HOST="sflphone-package-manager@dev.savoirfairelinux.net"
-SSH_BASE="ssh ${SSH_OPTIONS} -p 50001 ${SSH_HOST}"
-SCP_BASE="scp ${SSH_OPTIONS} -r -P 50001"
-
-# home directory
-ROOT_DIR="/home/projects/sflphone"
-
-# local hidden repository (only for changelog commit)
-LOCAL_REPOSITORY=${ROOT_DIR}/.sflphone-repository
-
-# gpg passphrase file
-GPG_FILE="${ROOT_DIR}/.gpg-sflphone"
-
-# vbox config directory
-export VBOX_USER_HOME="${ROOT_DIR}/vbox"
-
-# remote home directory
-REMOTE_ROOT_DIR="/home/sflphone"
-
-# scripts
-SCRIPTS_DIR="${ROOT_DIR}/build-system"
-PACKAGING_SCRIPTS_DIR="${SCRIPTS_DIR}/remote"
-DISTRIBUTION_SCRIPTS_DIR="${SCRIPTS_DIR}/distributions"
-
-# directory that will be deployed to remote machine
-TODEPLOY_DIR="${ROOT_DIR}/sflphone-packaging"
-TODEPLOY_BUILD_DIR="${TODEPLOY_DIR}/build"
-
-# remote deployment dir
-REMOTE_DEPLOY_DIR="/home/sflphone/sflphone-packaging"
-
-# cloned repository and archive
-REPOSITORY_DIR="${TODEPLOY_BUILD_DIR}/sflphone"
-REPOSITORY_ARCHIVE="`dirname ${REPOSITORY_DIR}`/sflphone.tar.gz"
-REPOSITORY_SFLPHONE_COMMON_DIR="${REPOSITORY_DIR}/sflphone-common"
-REPOSITORY_SFLPHONE_CLIENT_KDE_DIR="${REPOSITORY_DIR}/sflphone-client-kde"
-REPOSITORY_SFLPHONE_CLIENT_GNOME_DIR="${REPOSITORY_DIR}/sflphone-client-gnome"
-
-# where results go
-PACKAGING_RESULT_DIR=${ROOT_DIR}/packages-${TAG}
-
-USER="sflphone"
-
-RELEASE_MODE=
-
-SNAPSHOT_TAG=`date +%Y%m%d`
-
-DO_CLEAN=1
-DO_PREPARE=1
-DO_PUSH=1
-DO_MAIN_LOOP=1
-DO_SIGNATURES=1
-DO_UPLOAD=1
-DO_LOGGING=1
-DO_SEND_EMAIL=1
-
-EDITOR=echo
-export EDITOR
-
-NON_FATAL_ERRORS=0
-
-MACHINES=( "ubuntu-8.04" "ubuntu-8.04-64" "ubuntu-8.10" "ubuntu-8.10-64" "ubuntu-9.04" "ubuntu-9.04-64" "opensuse-11" "opensuse-11-64" "mandriva-2009.1" )
-
-#########################
-# BEGIN
-#########################
-
-echo
-echo "    /***********************\\"
-echo "    | SFLPhone build system |"
-echo "    \\***********************/"
-echo
-
-for PARAMETER in $*
-do
-	case ${PARAMETER} in
-	--help)
-		echo
-		echo "Options :"
-		echo " --skip-clean"
-		echo " --skip-prepare"
-		echo " --skip-push"
-		echo " --skip-main-loop"
-		echo " --skip-signatures"
-		echo " --skip-upload"
-		echo " --no-logging"
-		echo " --machine=MACHINE"
-		echo " --release-mode=[beta|rc|release]"
-		echo " --list-machines"
-		echo
-		exit 0;;
-	--skip-clean)
-		unset DO_CLEAN;;
-	--skip-prepare)
-		unset DO_PREPARE;;
-	--skip-push)
-		unset DO_PUSH;;
-	--skip-main-loop)
-		unset DO_MAIN_LOOP;;
-	--skip-signatures)
-		unset DO_SIGNATURES;;
-	--skip-upload)
-		unset DO_UPLOAD;;
-	--no-logging)
-		unset DO_LOGGING;;
-	--machine=*)
-		MACHINES=(${PARAMETER##*=});;
-	--release-mode=*)
-		RELEASE_MODE=(${PARAMETER##*=});;
-	--list-machines)
-		echo "Available machines :"
-		for MACHINE in ${MACHINES[@]}; do
-			echo " "${MACHINE}
-		done
-		exit 0;;
-	*)
-		echo "Unknown parameter : ${PARAMETER}"
-		exit -1;;
-	esac
-done
-
-# if more than one VM will be launched, automatically stop running VMs
-if [ "${#MACHINES[@]}" -gt "1" ]; then
-	VBoxManage list runningvms | tail -n +5 | awk '{print $1}' | xargs -i VBoxManage controlvm {} poweroff
-fi
-
-# change to working directory
-cd ${SCRIPTS_DIR}
-
-if [ "$?" -ne "0" ]; then
-        echo " !! Cannot cd to working directory"
-        exit -1
-fi
-
-WHO=`whoami`
-
-if [ "${WHO}" != "${USER}" ]; then
-        echo "!! Please use user ${USER} to run this script"
-        exit -1;
-fi
-
-# logging
-if [ ${DO_CLEAN} ]; then
-	rm -rf ${PACKAGING_RESULT_DIR} 2>/dev/null
-fi
-mkdir ${PACKAGING_RESULT_DIR} 2>/dev/null
-if [ ${DO_LOGGING} ]; then
-
-	# open file descriptor
-	rm -f ${PACKAGING_RESULT_DIR}/packaging.log
-	exec 3<> ${PACKAGING_RESULT_DIR}/packaging.log
-
-	# redirect outputs (stdout & stderr)
-	exec 1>&3
-	exec 2>&3
-fi
-
-# check release
-if [ ${RELEASE_MODE} ]; then
-	case ${RELEASE_MODE} in
-		beta);;
-		rc[1-9]);;
-		release);;
-		*)
-			echo "Bad release mode"
-			exit -1;;
-	esac
-fi
-
-# check machines list
-if [ -z "${MACHINES}" ]; then
-	echo "Need at least a machine name to launch"
-	exit -1
-fi
-
-echo
-echo "Launching build system with the following machines :"
-for MACHINE in ${MACHINES[*]}
-do
-	echo " "${MACHINE}
-done
-echo
-
-if [ ${RELEASE_MODE} ]; then
-	echo "Release mode : ${RELEASE_MODE}"
-else
-	echo "Snapshot mode : ${SNAPSHOT_TAG}"
-fi
-
-#########################
-# COMMON PART
-#########################
-
-if [ ${DO_PREPARE} ]; then
-
-	echo
-	echo "Cleaning old deploy dir"
-	rm -rf ${TODEPLOY_DIR}
-	mkdir ${TODEPLOY_DIR}
-	mkdir ${TODEPLOY_BUILD_DIR}
-
-	echo "Clone repository"
-	git clone ssh://repos-sflphone-git@git.sflphone.org/~/sflphone.git ${REPOSITORY_DIR} >/dev/null 2>&1
-
-	if [ "$?" -ne "0" ]; then
-		echo " !! Cannot clone repository"
-		exit -1
-	fi
-
-	VERSION=`cd ${REPOSITORY_DIR} && git describe --tag HEAD | cut -d "." -f1-3`
-
-	if [ ${RELEASE_MODE} ]; then
-		if [ "${RELEASE_MODE}" != "release" ];then
-			VERSION="${VERSION}~${RELEASE_MODE}"
-		fi
-	else
-		VERSION="${VERSION}~snapshot${SNAPSHOT_TAG}"
-	fi
-	echo "Version is : ${VERSION}"
-
-	# generate the changelog, according to the distribution and the git commit messages
-	echo "Update debian changelogs"
-	cd ${REPOSITORY_DIR}
-	${SCRIPTS_DIR}/sfl-git-dch.sh ${VERSION} ${RELEASE_MODE}
-	
-	if [ "$?" -ne "0" ]; then
-		echo "!! Cannot update debian changelogs"
-		exit -1
-	fi
-
-	# if push is activated
-	if [[ ${DO_PUSH} && ${RELEASE_MODE} ]];then
-
-		echo " Doing commit"
-		
-        	cd ${LOCAL_REPOSITORY}
-		git commit -m "[#1262] Updated debian changelogs (${VERSION})" .
-
-		echo " Pushing commit"
-		git push origin master
-
-		cd -
-	fi
-
-	# change current branch if needed
-        if [ ${RELEASE_MODE} ]; then
-                cd ${REPOSITORY_DIR}
-                git checkout origin/release -b release
-        else
-                echo "Using master branch"
-        fi
-	
-	echo "Write version numbers for following processes"
-	echo "${VERSION}" > ${REPOSITORY_DIR}/sflphone-common/VERSION
-	echo "${VERSION}" > ${REPOSITORY_DIR}/sflphone-client-gnome/VERSION
-	echo "${VERSION}" > ${REPOSITORY_DIR}/sflphone-client-kde/VERSION
-	echo "${VERSION}" > ${TODEPLOY_BUILD_DIR}/VERSION
-
-	echo "Archiving repository"
-	tar czf ${REPOSITORY_ARCHIVE} --exclude .git -C `dirname ${REPOSITORY_DIR}` sflphone 
-
-	if [ "$?" -ne "0" ]; then
-		echo " !! Cannot archive repository"
-		exit -1
-	fi
-
-	echo  "Removing repository"
-	rm -rf ${REPOSITORY_DIR}
-
-	echo "Finish preparing deploy directory"
-	cp -r ${DISTRIBUTION_SCRIPTS_DIR}/* ${TODEPLOY_DIR}
-
-	if [ "$?" -ne "0" ]; then
-		echo " !! Cannot prepare scripts for deployment"
-		exit -1
-	fi
-fi
-
-#########################
-# MAIN LOOP
-#########################
-
-if [ ${DO_MAIN_LOOP} ]; then
-
-	echo
-	echo "Entering main loop"
-	echo
-
-	rm -f ${PACKAGING_RESULT_DIR}/stats.log
-	for MACHINE in ${MACHINES[*]}
-	do
-
-		echo "Launch machine ${MACHINE}"
-		VM_STATE=`VBoxManage showvminfo ${MACHINE} | grep State | awk '{print $2}'`
-		if [ "${VM_STATE}" = "running" ]; then
-			echo "Not needed, already running"
-		else
-			cd ${VBOX_USER_HOME} && VBoxHeadless -startvm "${MACHINE}" -p 50000 &
-			if [[ ${MACHINE} =~ "opensuse" || ${MACHINE} =~ "mandriva" ]]; then
-				STARTUP_WAIT=200
-			fi
-			echo "Wait ${STARTUP_WAIT} s"
-			sleep ${STARTUP_WAIT}
-		fi
-	
-		echo "Clean remote directory"
-		${SSH_BASE} "rm -rf ${REMOTE_DEPLOY_DIR} 2>/dev/null"
-
-		echo "Deploy packaging system"
-		${SCP_BASE} ${TODEPLOY_DIR} ${SSH_HOST}:
-
-		if [ "$?" -ne "0" ]; then
-	                echo " !! Cannot deploy packaging system"
-			echo "${MACHINE} : Cannot deploy packaging system" >> ${PACKAGING_RESULT_DIR}/stats.log
-			NON_FATAL_ERRORS=1
-	        else
-
-			echo "Launch remote build"
-			${SSH_BASE} "cd ${REMOTE_DEPLOY_DIR} && ./build-packages.sh ${RELEASE_MODE}"
-
-			if [ "$?" -ne "0" ]; then
-	                	echo " !! Error during remote packaging process"
-				echo "${MACHINE} : Error during remote packaging process" >> ${PACKAGING_RESULT_DIR}/stats.log
-				NON_FATAL_ERRORS=1
-	        	else
-
-				echo "Retrieve dists files"
-				${SCP_BASE} ${SSH_HOST}:${REMOTE_DEPLOY_DIR}/deb ${PACKAGING_RESULT_DIR}/ >/dev/null 2>&1
-				${SCP_BASE} ${SSH_HOST}:${REMOTE_DEPLOY_DIR}/rpm ${PACKAGING_RESULT_DIR}/ >/dev/null 2>&1
-				
-				echo "${MACHINE} : OK" >> ${PACKAGING_RESULT_DIR}/stats.log
-			fi
-
-			echo "Retrieve log files"
-			${SCP_BASE} ${SSH_HOST}:${REMOTE_DEPLOY_DIR}"/*.log" ${PACKAGING_RESULT_DIR}/
-		fi
-
-		if [ "${VM_STATE}" = "running" ]; then
-			echo "Leave machine running"
-		else
-			echo "Shut down machine ${MACHINE}"
-			${SSH_BASE} 'sudo /sbin/shutdown -h now'
-			echo "Wait ${SHUTDOWN_WAIT} s"
-			sleep ${SHUTDOWN_WAIT}
-			# hard shut down (just to be sure)
-			cd "${VBOX_USER_HOME}" && VBoxManage controlvm ${MACHINE} poweroff >/dev/null 2>&1
-		fi
-	done
-fi
-
-#########################
-# SIGNATURES
-#########################
-
-if [ ${DO_SIGNATURES} ]; then
-	
-	echo "Sign packages"
-	find ${PACKAGING_RESULT_DIR}/deb/dists -name "*.deb" -exec dpkg-sig -g '--yes --batch --no-tty -q --passphrase `cat '${GPG_FILE}'`' -k 'Savoir-Faire Linux Inc.' --sign builder --sign-changes full {}  \;
-	find ${PACKAGING_RESULT_DIR}/deb/dists -name "*.changes" -exec gpg --yes --batch --no-tty --local-user 'Savoir-Faire Linux Inc.' --passphrase `cat ${GPG_FILE}` --clearsign --list-options no-show-policy-urls --armor --textmode --output {}.asc {} \;
-fi
-
-#########################
-# UPLOAD FILES
-#########################
-
-if [ ${DO_UPLOAD} ]; then
-	
-	echo
-	echo "Upload packages"
-	echo
-
-	echo "Prepare packages upload"
-	scp ${SSH_OPTIONS} ${PACKAGING_SCRIPTS_DIR}/update-repository.sh ${SSH_REPOSITORY_HOST}:debian/ 
-
-	if [ "$?" -ne "0" ]; then
-                echo " !! Cannot deploy repository scripts"
-        fi
-	
-	echo "Upload packages"
-	echo "Install dists files to repository"
-	scp -r ${SSH_OPTIONS} ${PACKAGING_RESULT_DIR}/rpm/* ${SSH_REPOSITORY_HOST}:rpm/
-	scp -r ${SSH_OPTIONS} ${PACKAGING_RESULT_DIR}/deb/dists ${SSH_REPOSITORY_HOST}:debian/
-
-	if [ "$?" -ne "0" ]; then
-		echo " !! Cannot upload packages"
-		exit -1
-	fi
-
-	echo "Update repository"
-	ssh ${SSH_OPTIONS} ${SSH_REPOSITORY_HOST} "cd debian && ./update-repository.sh"
-
-	if [ "$?" -ne "0" ]; then
-		echo " !! Cannot update repository"
-		exit -1
-	fi
-fi
-
-if [ "${NON_FATAL_ERRORS}" -eq "1" ]; then
-	exit -1
-fi
-
-# close file descriptor
-exec 3>&-
-
-exit 0
-
diff --git a/tools/build-system/packages/git-buildpackage_0.4.45_all.deb b/tools/build-system/packages/git-buildpackage_0.4.45_all.deb
deleted file mode 100644
index cf62358c48f1a5ce054c997b8b87ef9dac677028..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 62098
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
S{K>cf&;CqKMv=jSg#iGC@DxD+

diff --git a/tools/build-system/remote/update-repository.sh b/tools/build-system/remote/update-repository.sh
deleted file mode 100755
index a488a29745..0000000000
--- a/tools/build-system/remote/update-repository.sh
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/bin/bash
-
-# Script to update the debian repository description files (Release, Packages, Sources)
-#
-# @author: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
-# @date: 2008 Jan 16  
-
-ROOT_DIR="/var/repos/sflphone/debian"
-
-# gpg passphrase file
-GPG_FILE="${ROOT_DIR}/.gpg-sflphone"
-
-USER="sflphone-package-manager"
-
-export LANG=en_CA.UTF-8
-export LC_ALL=en_CA.UTF-8
-
-WHO=`whoami`
-
-if [ "${WHO}" != "${USER}" ]; then
-	echo "!! Please use user ${USER} to run this script"
-	exit -1;
-fi
-
-echo "Remove cache files"
-rm -f packages-i386.db
-rm -f packages-amd64.db
-
-apt-ftparchive generate conf/apt-ftparchive.conf
-
-echo "Generate the description file for each distribution"
-apt-ftparchive -c conf/apt-hardy-release.conf release dists/hardy > dists/hardy/Release
-apt-ftparchive -c conf/apt-hardy-testing.conf release dists/hardy-testing > dists/hardy-testing/Release
-apt-ftparchive -c conf/apt-hardy-daily.conf release dists/hardy-daily > dists/hardy-daily/Release
-
-apt-ftparchive -c conf/apt-intrepid-release.conf release dists/intrepid > dists/intrepid/Release
-apt-ftparchive -c conf/apt-intrepid-testing.conf release dists/intrepid-testing > dists/intrepid-testing/Release
-apt-ftparchive -c conf/apt-intrepid-daily.conf release dists/intrepid-daily > dists/intrepid-daily/Release
-
-apt-ftparchive -c conf/apt-jaunty-release.conf release dists/jaunty > dists/jaunty/Release
-apt-ftparchive -c conf/apt-jaunty-testing.conf release dists/jaunty-testing > dists/jaunty-testing/Release
-apt-ftparchive -c conf/apt-jaunty-daily.conf release dists/jaunty-daily > dists/jaunty-daily/Release
-
-echo "Sign the Release files"
-
-rm -f dists/intrepid/Release.gpg
-rm -f dists/intrepid-testing/Release.gpg
-rm -f dists/intrepid-daily/Release.gpg
-gpg --passphrase `cat ${GPG_FILE}` --no-tty -u C842D122 --output dists/intrepid/Release.gpg -ba dists/intrepid/Release
-gpg --passphrase `cat ${GPG_FILE}` --no-tty -u C842D122 --output dists/intrepid-testing/Release.gpg -ba dists/intrepid-testing/Release
-gpg --passphrase `cat ${GPG_FILE}` --no-tty -u C842D122 --output dists/intrepid-daily/Release.gpg -ba dists/intrepid-daily/Release
-
-rm -f dists/hardy/Release.gpg
-rm -f dists/hardy-testing/Release.gpg
-rm -f dists/hardy-daily/Release.gpg
-gpg --passphrase `cat ${GPG_FILE}` --no-tty -u C842D122 --output dists/hardy/Release.gpg -ba dists/hardy/Release
-gpg --passphrase `cat ${GPG_FILE}` --no-tty -u C842D122 --output dists/hardy-testing/Release.gpg -ba dists/hardy-testing/Release
-gpg --passphrase `cat ${GPG_FILE}` --no-tty -u C842D122 --output dists/hardy-daily/Release.gpg -ba dists/hardy-daily/Release
-
-rm -f dists/jaunty/Release.gpg
-rm -f dists/jaunty-testing/Release.gpg
-rm -f dists/jaunty-daily/Release.gpg
-gpg --passphrase `cat ${GPG_FILE}` --no-tty -u C842D122 --output dists/jaunty/Release.gpg -ba dists/jaunty/Release
-gpg --passphrase `cat ${GPG_FILE}` --no-tty -u C842D122 --output dists/jaunty-testing/Release.gpg -ba dists/jaunty-testing/Release
-gpg --passphrase `cat ${GPG_FILE}` --no-tty -u C842D122 --output dists/jaunty-daily/Release.gpg -ba dists/jaunty-daily/Release
-
-echo "All done"
-exit 0
diff --git a/tools/build-system/send-emails.sh b/tools/build-system/send-emails.sh
deleted file mode 100755
index 4b9c7d52bc..0000000000
--- a/tools/build-system/send-emails.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/bash
-#####################################################
-# File Name: send-emails.sh
-#
-# Purpose :
-#
-# Author: Julien Bonjean (julien@bonjean.info) 
-#
-# Creation Date: 2009-04-20
-# Last Modified: 2009-06-01 18:11:20 -0400
-#####################################################
-
-TAG=`date +%Y-%m-%d`
-ROOT_DIR="/home/projects/sflphone"
-PACKAGING_RESULT_DIR=${ROOT_DIR}/packages-${TAG}
-STATUS="OK"
-
-if [ "$1" -ne 0 ]; then
-	STATUS="ERROR"
-fi
-
-echo
-echo "Send notification emails"
-echo
-
-MAIL_SUBJECT="[ ${TAG} ] SFLphone Automatic Build System : ${STATUS}"
-
-if [ "$1" -eq 0 ]; then
-	echo | mail -s "${MAIL_SUBJECT}" -c emmanuel.milou@savoirfairelinux.com julien.bonjean@savoirfairelinux.com
-else
-#	(
-#	for i in ${PACKAGING_RESULT_DIR}/*.log
-#	do
-#		uuencode $i $(basename $i)
-#	done
-#	)
-	cat ${PACKAGING_RESULT_DIR}/stats.log | mail -s "${MAIL_SUBJECT}" -c emmanuel.milou@savoirfairelinux.com julien.bonjean@savoirfairelinux.com 
-fi
-
-exit 0
-
diff --git a/tools/build-system/sfl-git-dch.sh b/tools/build-system/sfl-git-dch.sh
deleted file mode 100755
index 740cc448b6..0000000000
--- a/tools/build-system/sfl-git-dch.sh
+++ /dev/null
@@ -1,163 +0,0 @@
-#!/bin/bash
-#####################################################
-# File Name: sfl-git-dch.sh
-#
-# Purpose :
-#
-# Author: Julien Bonjean (julien@bonjean.info) 
-#
-# Creation Date: 2009-05-13
-# Last Modified: 2009-07-20 23:03:24 -0400
-#####################################################
-
-# set -x
-
-VERSION=$1
-RELEASE_MODE=$2
-
-ROOT_DIR="/home/projects/sflphone"
-TODEPLOY_DIR="${ROOT_DIR}/sflphone-packaging"
-TODEPLOY_BUILD_DIR="${TODEPLOY_DIR}/build"
-REPOSITORY_DIR="${TODEPLOY_BUILD_DIR}/sflphone"
-SCRIPTS_DIR="${ROOT_DIR}/build-system"
-DEBIAN_DIR="${SCRIPTS_DIR}/distributions/ubuntu"
-CHANGELOG_FILES=( "${DEBIAN_DIR}/debian-sflphone-common/changelog" "${DEBIAN_DIR}/debian-sflphone-client-gnome/changelog" "${DEBIAN_DIR}/debian-sflphone-client-kde/changelog")
-
-export DEBFULLNAME="SFLphone Automatic Build System"
-export DEBEMAIL="team@sflphone.org"
-export EDITOR="echo"
-
-cd ${REPOSITORY_DIR}
-
-if [ "$?" -ne "0" ]; then
-        echo " !! Cannot cd to working directory"
-        exit -1
-fi
-
-# get last release tag
-LAST_RELEASE_TAG_NAME=`git tag -l "[0-9]\.[0-9]\.[0-9]\.*" | tail -n 1`
-
-if [ "$?" -ne "0" ]; then
-	echo " !! Error when retrieving last tag"
-	exit -1
-fi
-
-# get last release tag
-PREVIOUS_RELEASE_TAG_NAME=`git tag -l "[0-9]\.[0-9]\.[0-9]\.*" | tail -n 2 | sed -n '1p;1q'`
-
-if [ "$?" -ne "0" ]; then
-	echo " !! Error when retrieving previous revision tag"
-	exit -1
-fi
-
-echo "Last release tag is : ${LAST_RELEASE_TAG_NAME}"
-
-# get last release commit hash
-REF_COMMIT_HASH=
-if [ ${RELEASE_MODE} ]; then
-	echo "Reference tag is : ${PREVIOUS_RELEASE_TAG_NAME}"
-	REF_COMMIT_HASH=`git show --pretty=format:"%H" -s ${PREVIOUS_RELEASE_TAG_NAME} | tail -n 1`
-else
-	echo "Reference tag is : ${LAST_RELEASE_TAG_NAME}"
-	REF_COMMIT_HASH=`git show --pretty=format:"%H" -s ${LAST_RELEASE_TAG_NAME} | tail -n 1`
-fi
-
-if [ "$?" -ne "0" ]; then
-	echo " !! Error when retrieving last release commit hash"
-	exit -1
-fi
-
-echo "Reference commit is : ${REF_COMMIT_HASH}"
-echo
-
-# use git log to retrieve changelog content
-CHANGELOG_CONTENT=`git log --no-merges --pretty=format:"%s" ${REF_COMMIT_HASH}.. | grep -v "\[\#1262\]"`
-
-if [ "$?" -eq "1" ]; then
-        echo " !! No new commit since last release"
-	CHANGELOG_CONTENT="No new commit"
-fi
-
-if [ "$?" -ne "0" ]; then
-        echo " !! Error when retrieving changelog content"
-        exit -1
-fi
-
-# iterate throw changelog files
-for CHANGELOG_FILE in ${CHANGELOG_FILES[@]}
-do
-	echo "Changelog : ${CHANGELOG_FILE}"
-	echo
-	rm -f ${CHANGELOG_FILE}.dch >/dev/null 2>&1	
-
-	# if previous entry is a snapshot, remove it
-	sed -n 's/ //g;3p;3q' ${CHANGELOG_FILE} | grep "**SNAPSHOT" >/dev/null 2>&1
-	if [ $? -eq 0 ]; then
-		echo "Previous entry is a snapshot, removing it"
-
-		# detect first section length
-		FIRST_SECTION_LENGTH=`tail -n +2 ${CHANGELOG_FILE} | nl -ba | grep -m 1 "sflphone-.* SYSTEM; urgency=.*" | awk '{print $1}'`
-
-		if [ "$?" -ne "0" ] || [ ! ${FIRST_SECTION_LENGTH} ]; then
-	        	echo " !! Error when retrieving snapshot entry length"
-		        exit -1
-		fi
-
-		# remove first section
-		sed -i "1,${FIRST_SECTION_LENGTH}d" ${CHANGELOG_FILE}
-
-		if [ "$?" -ne "0" ]; then
-	                echo " !! Error when removing snapshot section"
-	                exit -1
-        	fi
-	fi
-
-	echo -n "Generate changelog "
-	IS_FIRST=1
-	echo "${CHANGELOG_CONTENT}" | while read line
-	do
-
-		if [ ${IS_FIRST} ]
-		then
-			yes | dch --changelog ${CHANGELOG_FILE}  -b --allow-lower-version --no-auto-nmu --distribution SYSTEM --newversion ${VERSION}-SYSVER "$line" >/dev/null 2>&1
-		
-			if [ "$?" -ne "0" ]; then
-				echo
-	                	echo " !! Error with new version"
-		                exit -1
-	        	fi
-
-			IS_FIRST=
-		else
-			dch --changelog ${CHANGELOG_FILE} --no-auto-nmu "$line"
-			if [ "$?" -ne "0" ]; then
-	                        echo
-	                        echo " !! Error when adding changelog entry"
-	                        exit -1
-	                fi
-		fi
-		echo -n .
-	done
-
-	# add snapshot or release flag if needed
-	echo
-	if [ ${RELEASE_MODE} ]; then
-		sed -i "3i\    ** ${VERSION} **\n" ${CHANGELOG_FILE}
-                if [ "$?" -ne "0" ]; then
-                        echo " !! Error when adding snapshot flag"
-                        exit -1
-                fi
-	else
-		sed -i "3i\    ** SNAPSHOT ${VERSION} **\n" ${CHANGELOG_FILE}
-		if [ "$?" -ne "0" ]; then
-	                echo " !! Error when adding snapshot flag"
-			exit -1
-		fi
-	fi
-	echo
-done
-
-echo "All done !"
-
-exit 0
-
-- 
GitLab


From 9398e80dc5532d53dd15ab2867bc5c1e86b326bd Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Wed, 16 Dec 2009 11:37:16 -0500
Subject: [PATCH 095/188] [#2519] Synchronize account map and SIPVoIPLink
 loading

---
 sflphone-common/src/managerimpl.cpp     | 36 ++++++++++----------
 sflphone-common/src/sip/sipaccount.cpp  | 32 +++++++++---------
 sflphone-common/src/sip/sipvoiplink.cpp | 44 +++++++++----------------
 3 files changed, 50 insertions(+), 62 deletions(-)

diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index c97310af27..a4144df327 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -120,6 +120,7 @@ ManagerImpl::~ManagerImpl (void)
 void
 ManagerImpl::init()
 {
+
     // Load accounts, init map
     loadAccountMap();
 
@@ -4223,7 +4224,7 @@ short
 ManagerImpl::loadAccountMap()
 {
 
-    _debug ("ManagerImpl::loadAccountMap\n");
+    _debug ("Loading account map\n");
 
     short nbAccount = 0;
     TokenList sections = _config.getSections();
@@ -4242,16 +4243,26 @@ ManagerImpl::loadAccountMap()
     _directIpAccount = AccountCreator::createAccount (AccountCreator::SIP_DIRECT_IP_ACCOUNT, "");
 
     if (_directIpAccount == NULL) {
+
         _debug ("Failed to create direct ip calls \"account\"\n");
     } else {
-        // Force the options to be loaded
-        // No registration in the sense of
-        // the REGISTER method is performed.
+
         _debug ("Succeed to create direct ip calls \"account\"\n");
         _accountMap[IP2IP_PROFILE] = _directIpAccount;
-        _directIpAccount->registerVoIPLink();
+
+	// Force IP2IP settings to be loaded to be loaded 
+        // No registration in the sense of the REGISTER method is performed.
+	_directIpAccount->registerVoIPLink();
+
+	// SIPVoIPlink is used as a singleton, it is the first call to instance here
+	// The SIP library initialization is done in the SIPVoIPLink constructor
+	// We need the IP2IP settings to be loaded at this time as they are used 
+	// for default sip transport
+	_directIpAccount->setVoIPLink(SIPVoIPLink::instance (""));
+
     }
 
+    // initialize other accounts
     while (iter != sections.end()) {
         // Check if it starts with "Account:" (SIP and IAX pour le moment)
         if ( (int) (iter->find ("Account:")) != 0) {
@@ -4276,25 +4287,14 @@ ManagerImpl::loadAccountMap()
         if (tmpAccount != NULL) {
             _debug ("Loading account %s \n", iter->c_str());
             _accountMap[iter->c_str() ] = tmpAccount;
+	    tmpAccount->setVoIPLink(SIPVoIPLink::instance (""));
             nbAccount++;
         }
 
         iter++;
     }
 
-    /*
-    if (_directIpAccount == NULL) {
-        _debug ("Failed to create direct ip calls \"account\"\n");
-    } else {
-        // Force the options to be loaded
-        // No registration in the sense of
-        // the REGISTER method is performed.
-        _debug ("Succeed to create direct ip calls \"account\"\n");
-        _directIpAccount->registerVoIPLink();
-    _accountMap[IP2IP_PROFILE] = _directIpAccount;
-    }
-    */
-    _debug ("nbAccount loaded %i \n", nbAccount);
+    _debug ("nb account loaded %i \n", nbAccount);
 
     return nbAccount;
 }
diff --git a/sflphone-common/src/sip/sipaccount.cpp b/sflphone-common/src/sip/sipaccount.cpp
index b8c509b29a..ae2da8374e 100644
--- a/sflphone-common/src/sip/sipaccount.cpp
+++ b/sflphone-common/src/sip/sipaccount.cpp
@@ -44,14 +44,13 @@ SIPAccount::SIPAccount (const AccountID& accountID)
         , _tlsSetting (NULL)
         , _displayName ("")
 {
-    /* SIPVoIPlink is used as a singleton, because we want to have only one link for all the SIP accounts created */
-    /* So instead of creating a new instance, we just fetch the static instance, or create one if it is not yet */
-    /* The SIP library initialization is done in the SIPVoIPLink constructor */
-    /* The SIP voip link is now independant of the account ID as it can manage several SIP accounts */
-    _link = SIPVoIPLink::instance ("");
+    
+    // IP2IP settings must be loaded before singleton instanciation, cannot call it here... 
+
+    // _link = SIPVoIPLink::instance ("");
 
     /* Represents the number of SIP accounts connected the same link */
-    dynamic_cast<SIPVoIPLink*> (_link)->incrementClients();
+    // dynamic_cast<SIPVoIPLink*> (_link)->incrementClients();
 
 }
 
@@ -65,6 +64,7 @@ SIPAccount::~SIPAccount()
     free (_tlsSetting);
 }
 
+
 int SIPAccount::initCredential (void)
 {
     int credentialCount = 0;
@@ -76,7 +76,7 @@ int SIPAccount::initCredential (void)
     md5HashingEnabled = Manager::instance().getConfigBool (PREFERENCES, CONFIG_MD5HASH);
     std::string digest;
 
-// Create the credential array
+    // Create the credential array
     pjsip_cred_info * cred_info = (pjsip_cred_info *) malloc (sizeof (pjsip_cred_info) * (credentialCount));
 
     if (cred_info == NULL) {
@@ -86,7 +86,7 @@ int SIPAccount::initCredential (void)
 
     pj_bzero (cred_info, sizeof (pjsip_cred_info) *credentialCount);
 
-// Use authentication username if provided
+    // Use authentication username if provided
 
     if (!_authenticationUsername.empty()) {
         cred_info[0].username = pj_str (strdup (_authenticationUsername.c_str()));
@@ -94,15 +94,15 @@ int SIPAccount::initCredential (void)
         cred_info[0].username = pj_str (strdup (_username.c_str()));
     }
 
-// Set password
+    // Set password
     cred_info[0].data =  pj_str (strdup (_password.c_str()));
 
-// Set realm for that credential. * by default.
+    // Set realm for that credential. * by default.
     cred_info[0].realm = pj_str (strdup (_realm.c_str()));
 
-// We want to make sure that the password is really
-// 32 characters long. Otherwise, pjsip will fail
-// on an assertion.
+    // We want to make sure that the password is really
+    // 32 characters long. Otherwise, pjsip will fail
+    // on an assertion.
     if (md5HashingEnabled && _password.length() == 32) {
         dataType = PJSIP_CRED_DATA_DIGEST;
         _debug ("Setting digest \n");
@@ -110,10 +110,10 @@ int SIPAccount::initCredential (void)
         dataType = PJSIP_CRED_DATA_PLAIN_PASSWD;
     }
 
-// Set the datatype
+    // Set the datatype
     cred_info[0].data_type = dataType;
-
-// Set the secheme
+    
+    // Set the secheme
     cred_info[0].scheme = pj_str ( (char*) "digest");
 
     int i;
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index c483beb7e1..065cdba48d 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -1479,25 +1479,25 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
         account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (IP2IP_PROFILE));
 
         if (account == NULL) {
-            _debug ("Account is null. Returning\n");
+	    _debug ("Account %s is null. Returning\n", IP2IP_PROFILE);
             return !PJ_SUCCESS;
         }
 
-		// Set the local address
-		localAddress = account->getLocalAddress ();
+	// Set the local address
+	localAddress = account->getLocalAddress ();
         // Set SDP parameters - Set to local or published address
-		account->isStunEnabled () ? addrSdp = account->getPublishedAddress () :  addrSdp = account->getLocalAddress (); 
+	account->isStunEnabled () ? addrSdp = account->getPublishedAddress () :  addrSdp = account->getLocalAddress (); 
 
         _debug ("new_ip_to_ip_call localAddress: %s\n", localAddress.c_str());
 
         if (localAddress == "0.0.0.0") {
-            _debug ("Here is the local address: %s\n", localAddress.c_str ());
+            _debug ("Local address: %s\n", localAddress.c_str ());
             loadSIPLocalIP (&localAddress);
         }
 
-		if (addrSdp == "0.0.0.0") {
-			addrSdp = localAddress;
-		}
+	if (addrSdp == "0.0.0.0") {
+	    addrSdp = localAddress;
+	}
 
         setCallAudioLocal (call, localAddress);
 
@@ -2110,26 +2110,25 @@ int SIPVoIPLink::createUDPServer (AccountID id)
     int listeningPort = _regPort;
 
     /* Use my local address as default value */
-
     if (!loadSIPLocalIP (&listeningAddress))
         return !PJ_SUCCESS;
 
-    _debug ("SIPVoIPLink::createUDPServer\n");
+    _debug ("Create UDP transport for account \"%s\"\n", id.c_str());
 
     /*
      * Retrieve the account information
      */
     SIPAccount * account = NULL;
-
     account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (id));
 
     // Set information to the local address and port
-
     if (account == NULL) {
         _debug ("Account with id \"%s\" is null in createUDPServer.\n", id.c_str());
         // account = Manager::instance()->getAccount(IP2IP_PROFILE);
     } else {
         // We are trying to initialize a UDP transport available for all local accounts and direct IP calls
+        _debug("Found account %s in map\n", account->getAccountID().c_str());
+
         if (account->getLocalAddress () != "0.0.0.0") {
 	    listeningAddress = account->getLocalAddress ();
 	}
@@ -2139,18 +2138,15 @@ int SIPVoIPLink::createUDPServer (AccountID id)
 
     // 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) listeningPort);
-
     bound_addr.sin_family = PJ_AF_INET;
-
     pj_bzero (bound_addr.sin_zero, sizeof (bound_addr.sin_zero));
 
     // Create UDP-Server (default port: 5060)
     // Use here either the local information or the published address
     if (account != NULL && !account->getPublishedSameasLocal ()) {
+
         // Set the listening address to the published address
         listeningAddress = account->getPublishedAddress ();
         // Set the listening port to the published port
@@ -2159,32 +2155,25 @@ int SIPVoIPLink::createUDPServer (AccountID id)
 
     }
 
+
     //strcpy (tmpIP, listeningAddress.data());
     /* Init published name */
     pj_bzero (&a_name, sizeof (pjsip_host_port));
-
     pj_cstr (&a_name.host, listeningAddress.c_str());
-
     a_name.port = listeningPort;
 
     //pj_strdup2 (_pool, &a_name.host, tmpIP);
-
     //a_name.port = (pj_uint16_t) listeningPort;
 
     status = pjsip_udp_transport_start (_endpt, &bound_addr, &a_name, 1, &transport);
 
-    // Get the transport manager associated with
-    // this endpoint
-    pjsip_tpmgr * tpmgr = NULL;
-
-    tpmgr = pjsip_endpt_get_tpmgr (_endpt);
-
+    // Print info from transport manager associated to endpoint
+    pjsip_tpmgr * tpmgr = pjsip_endpt_get_tpmgr (_endpt);
     pjsip_tpmgr_dump_transports (tpmgr);
 
     if (status != PJ_SUCCESS) {
         _debug ("UserAgent: (%d) Unable to start UDP transport on %s:%d\n", status, listeningAddress.data(), listeningPort);
-        // Try to acquire an existing one
-        // pjsip_tpmgr_acquire_transport ()
+
         return status;
     } else {
         _debug ("UserAgent: UDP server listening on port %d\n", listeningPort);
@@ -2201,7 +2190,6 @@ int SIPVoIPLink::createUDPServer (AccountID id)
 
     _debug ("Transport initialized successfully on %s:%i\n", listeningAddress.c_str (), listeningPort);
 
-
     return PJ_SUCCESS;
 }
 
-- 
GitLab


From 5779603edd28795216f31914085fee4299ed4efb Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Wed, 16 Dec 2009 13:25:58 -0500
Subject: [PATCH 096/188] [#2519] Fix pjsip shutdown when destroying accounts

---
 sflphone-common/src/account.h           |  2 +-
 sflphone-common/src/iax/iaxaccount.cpp  |  5 +++++
 sflphone-common/src/iax/iaxaccount.h    |  2 ++
 sflphone-common/src/managerimpl.cpp     |  9 ++++++---
 sflphone-common/src/sip/sipaccount.cpp  | 10 ++++++++++
 sflphone-common/src/sip/sipaccount.h    |  6 ++++++
 sflphone-common/src/sip/sipvoiplink.cpp | 13 +++++++------
 7 files changed, 37 insertions(+), 10 deletions(-)

diff --git a/sflphone-common/src/account.h b/sflphone-common/src/account.h
index 3d6c36b8b2..c7c0424537 100644
--- a/sflphone-common/src/account.h
+++ b/sflphone-common/src/account.h
@@ -139,7 +139,7 @@ class Account{
          */
         inline VoIPLink* getVoIPLink() { return _link; }
 
-        inline void setVoIPLink (VoIPLink *link) { _link = link; }
+        virtual void setVoIPLink () = 0;
 
         /**
          * Register the underlying VoIPLink. Launch the event listener.
diff --git a/sflphone-common/src/iax/iaxaccount.cpp b/sflphone-common/src/iax/iaxaccount.cpp
index f68dfbef67..de210fda00 100644
--- a/sflphone-common/src/iax/iaxaccount.cpp
+++ b/sflphone-common/src/iax/iaxaccount.cpp
@@ -36,6 +36,11 @@ IAXAccount::~IAXAccount()
     _link = NULL;
 }
 
+void IAXAccount::setVoIPLink()
+{
+
+}
+
 int IAXAccount::registerVoIPLink()
 {
     _link->init();
diff --git a/sflphone-common/src/iax/iaxaccount.h b/sflphone-common/src/iax/iaxaccount.h
index 9c40df1194..54e6094de7 100644
--- a/sflphone-common/src/iax/iaxaccount.h
+++ b/sflphone-common/src/iax/iaxaccount.h
@@ -33,6 +33,8 @@ class IAXAccount : public Account
 
         ~IAXAccount();
 
+	void setVoIPLink ();
+
         /** 
          * Actually unuseful, since config loading is done in init() 
          */
diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index a4144df327..a527cf120c 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -4258,7 +4258,9 @@ ManagerImpl::loadAccountMap()
 	// The SIP library initialization is done in the SIPVoIPLink constructor
 	// We need the IP2IP settings to be loaded at this time as they are used 
 	// for default sip transport
-	_directIpAccount->setVoIPLink(SIPVoIPLink::instance (""));
+
+	// _directIpAccount->setVoIPLink(SIPVoIPLink::instance (""));
+	_directIpAccount->setVoIPLink();
 
     }
 
@@ -4287,7 +4289,8 @@ ManagerImpl::loadAccountMap()
         if (tmpAccount != NULL) {
             _debug ("Loading account %s \n", iter->c_str());
             _accountMap[iter->c_str() ] = tmpAccount;
-	    tmpAccount->setVoIPLink(SIPVoIPLink::instance (""));
+	    // tmpAccount->setVoIPLink(SIPVoIPLink::instance (""));
+	    tmpAccount->setVoIPLink();
             nbAccount++;
         }
 
@@ -4307,7 +4310,7 @@ ManagerImpl::unloadAccountMap()
 
     while (iter != _accountMap.end()) {
 
-        _debug ("-> Unloading account %s\n", iter->first.c_str());
+        _debug ("Unloading account %s\n", iter->first.c_str());
         delete iter->second;
         iter->second = 0;
 
diff --git a/sflphone-common/src/sip/sipaccount.cpp b/sflphone-common/src/sip/sipaccount.cpp
index ae2da8374e..01db69d8ac 100644
--- a/sflphone-common/src/sip/sipaccount.cpp
+++ b/sflphone-common/src/sip/sipaccount.cpp
@@ -58,6 +58,7 @@ SIPAccount::~SIPAccount()
 {
     /* One SIP account less connected to the sip voiplink */
     dynamic_cast<SIPVoIPLink*> (_link)->decrementClients();
+
     /* Delete accounts-related information */
     _regc = NULL;
     free (_cred);
@@ -65,6 +66,15 @@ SIPAccount::~SIPAccount()
 }
 
 
+// void SIPAccount::setVoIPLink(VoIPLink *link) {
+void SIPAccount::setVoIPLink() {
+
+    _link = SIPVoIPLink::instance ("");
+    dynamic_cast<SIPVoIPLink*> (_link)->incrementClients();
+
+}
+
+
 int SIPAccount::initCredential (void)
 {
     int credentialCount = 0;
diff --git a/sflphone-common/src/sip/sipaccount.h b/sflphone-common/src/sip/sipaccount.h
index 97116b56ca..58c3d1dc24 100644
--- a/sflphone-common/src/sip/sipaccount.h
+++ b/sflphone-common/src/sip/sipaccount.h
@@ -58,6 +58,12 @@ class SIPAccount : public Account
          */
         virtual ~SIPAccount();
 
+	/**
+	 * Special setVoIPLink which increment SipVoIPLink's number of client. 
+	 */
+	// void setVoIPLink(VoIPLink *link);
+	void setVoIPLink();
+
         /** 
          * Actually unuseful, since config loading is done in init() 
          */
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 065cdba48d..76be51e934 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -239,6 +239,8 @@ SIPVoIPLink::SIPVoIPLink (const AccountID& accountID)
 
 SIPVoIPLink::~SIPVoIPLink()
 {
+    _debug("SIPVoIPLink destructor called\n");
+
     terminate();
 }
 
@@ -258,6 +260,8 @@ void SIPVoIPLink::decrementClients (void)
     _clients--;
 
     if (_clients == 0) {
+
+        _debug("No SIP account anymore, terminate SIPVoIPLink\n");
         terminate();
         SIPVoIPLink::_instance=NULL;
     }
@@ -286,21 +290,18 @@ bool SIPVoIPLink::init()
 void
 SIPVoIPLink::terminate()
 {
-    _debug ("SIPVoIPLink::terminate");
-
-
+    _debug ("Terminating SIPVoIPLink\n");
 
     if (_evThread) {
-        _debug ("SIPVoIPLink:: delete eventThread");
+        _debug ("Deleting sip eventThread\n");
         delete _evThread;
         _evThread = NULL;
     }
 
 
-
     /* Clean shutdown of pjsip library */
     if (initDone()) {
-        _debug ("pjsip_shutdown\n");
+        _debug ("Shuting down PJSIP\n");
         pjsip_shutdown();
     }
 
-- 
GitLab


From 9cc29b69b5fa7907d9eff4124f48fdd09dccd340 Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Wed, 16 Dec 2009 14:56:49 -0500
Subject: [PATCH 097/188] [#2181] Refactoring ...

---
 tools/build-system/launch-build-machine-2.sh | 16 +------
 tools/build-system/make-telify-package.sh    | 45 ++++++++++++++++++++
 tools/build-system/setenv.sh                 | 27 ++++++++++++
 3 files changed, 74 insertions(+), 14 deletions(-)
 create mode 100644 tools/build-system/make-telify-package.sh
 create mode 100644 tools/build-system/setenv.sh

diff --git a/tools/build-system/launch-build-machine-2.sh b/tools/build-system/launch-build-machine-2.sh
index b6b7638195..12f8760e79 100755
--- a/tools/build-system/launch-build-machine-2.sh
+++ b/tools/build-system/launch-build-machine-2.sh
@@ -7,16 +7,12 @@
 # Author: Julien Bonjean (julien@bonjean.info) 
 #
 # Creation Date: 2009-10-20
-# Last Modified: 2009-10-21 18:18:07 -0400
+# Last Modified: 2009-12-15 18:16:50 -0500
 #####################################################
 
 #set -x
 
-# home directory
-ROOT_DIR=${HOME}
-
-# gpg passphrase file
-GPG_FILE="${ROOT_DIR}/.gpg-sflphone"
+. `dirname $0`/setenv.sh
 
 IS_RELEASE=
 VERSION_INDEX="1"
@@ -25,14 +21,6 @@ DO_LOGGING=1
 DO_UPLOAD=1
 SNAPSHOT_TAG=`date +%Y%m%d`
 
-EDITOR=echo
-export EDITOR
-
-REFERENCE_REPOSITORY="${ROOT_DIR}/sflphone-source-repository"
-
-WORKING_DIR="${ROOT_DIR}/sflphone-build-repository/tools/build-system"
-LAUNCHPAD_DIR="${WORKING_DIR}/launchpad"
-LAUNCHPAD_DISTRIBUTIONS=( "jaunty" "karmic" )
 LAUNCHPAD_PACKAGES=( "sflphone-client-gnome" "sflphone-common" )
 
 echo
diff --git a/tools/build-system/make-telify-package.sh b/tools/build-system/make-telify-package.sh
new file mode 100644
index 0000000000..be3be86bd2
--- /dev/null
+++ b/tools/build-system/make-telify-package.sh
@@ -0,0 +1,45 @@
+#!/bin/bash
+#####################################################
+# File Name: make-telify-package.sh
+#
+# Purpose :
+#
+# Author: Julien Bonjean (julien@bonjean.info) 
+#
+# Creation Date: 2009-12-15
+# Last Modified: 2009-12-15 18:16:47 -0500
+#####################################################
+
+#set -x
+
+. `dirname $0`/setenv.sh
+
+# change to working directory
+cd ${LAUNCHPAD_DIR}
+
+if [ "$?" -ne "0" ]; then
+        echo " !! Cannot cd to launchpad directory"
+        exit -1
+fi
+
+cd ${REFERENCE_REPOSITORY}
+
+for LAUNCHPAD_DISTRIBUTION in ${LAUNCHPAD_DISTRIBUTIONS[*]}
+do
+	LOCAL_VERSION="${SOFTWARE_VERSION}~ppa${VERSION_INDEX}~${LAUNCHPAD_DISTRIBUTION}"
+
+	cp ${DEBIAN_DIR}/control.${LAUNCHPAD_DISTRIBUTION} ${DEBIAN_DIR}/control
+	cp ${DEBIAN_DIR}/changelog.generic ${DEBIAN_DIR}/changelog
+
+	sed -i "s/SYSTEM/${LAUNCHPAD_DISTRIBUTION}/g" ${DEBIAN_DIR}/changelog
+
+	cd ${LAUNCHPAD_DIR}/${LAUNCHPAD_PACKAGE}
+	./autogen.sh
+	debuild -S -sa -kFDFE4451
+	cd ${LAUNCHPAD_DIR}
+
+	if [ ${DO_UPLOAD} ] ; then
+		dput -f -c ${LAUNCHPAD_DIR}/dput.conf ${LAUNCHPAD_CONF_PREFIX}-${LAUNCHPAD_DISTRIBUTION} ${LAUNCHPAD_PACKAGE}_${LOCAL_VERSION}_source.changes
+	fi
+done
+
diff --git a/tools/build-system/setenv.sh b/tools/build-system/setenv.sh
new file mode 100644
index 0000000000..ee6bbb068d
--- /dev/null
+++ b/tools/build-system/setenv.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+#####################################################
+# File Name: setenv.sh
+#
+# Purpose :
+#
+# Author: Julien Bonjean (julien@bonjean.info) 
+#
+# Creation Date: 2009-12-15
+# Last Modified: 2009-12-15 18:16:52 -0500
+#####################################################
+
+# home directory
+export ROOT_DIR=${HOME}
+
+# gpg passphrase file
+export GPG_FILE="${ROOT_DIR}/.gpg-sflphone"
+
+export EDITOR="echo"
+
+export REFERENCE_REPOSITORY="${ROOT_DIR}/sflphone-source-repository"
+
+export WORKING_DIR="${ROOT_DIR}/sflphone-build-repository/tools/build-system"
+export LAUNCHPAD_DIR="${WORKING_DIR}/launchpad"
+LAUNCHPAD_DISTRIBUTIONS=( "jaunty" "karmic" )
+export LAUNCHPAD_DISTRIBUTIONS
+
-- 
GitLab


From 57f874593251a3d78144a6fb950304db512c063e Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Wed, 16 Dec 2009 15:07:37 -0500
Subject: [PATCH 098/188] [#2519] Store default transport (IP2IP) into map

---
 sflphone-common/src/sip/sipaccount.cpp  |  7 +++-
 sflphone-common/src/sip/sipvoiplink.cpp | 44 +++++++++++++++----------
 sflphone-common/src/sip/sipvoiplink.h   |  3 ++
 3 files changed, 35 insertions(+), 19 deletions(-)

diff --git a/sflphone-common/src/sip/sipaccount.cpp b/sflphone-common/src/sip/sipaccount.cpp
index 01db69d8ac..7524541f4f 100644
--- a/sflphone-common/src/sip/sipaccount.cpp
+++ b/sflphone-common/src/sip/sipaccount.cpp
@@ -419,6 +419,7 @@ std::string SIPAccount::getLoginName (void)
 
 std::string SIPAccount::getTransportMapKey(void)
 {
+    /*
     std::string mapKey;
 
     std::stringstream out;
@@ -436,8 +437,12 @@ std::string SIPAccount::getTransportMapKey(void)
     mapKey.append(localPort.c_str());
     mapKey.append(publishedAddress.c_str());
     mapKey.append(publishedPort.c_str());
+    */
+    std::stringstream out;
+    out << getLocalPort();
+    std::string localPort = out.str();
 
-    return mapKey;
+    return localPort;
 }
 
 
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 76be51e934..dd2895f336 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -1799,10 +1799,11 @@ bool SIPVoIPLink::pjsip_init()
         }
     }
 
-    // Bind the newly created transport to the ip to ip account
-    // setAccountTransport
+    if(account && (errPjsip == PJ_SUCCESS)) {
+
+        addTransportToMap(account->getTransportMapKey(), account->getAccountTransport());
+    }
 
-    _debug ("pjsip_init -- listening on port %d\n", port);
 
     // Create a TLS listener meant for Direct IP calls
     // if the user did enabled it.
@@ -1983,7 +1984,7 @@ bool SIPVoIPLink::acquireTransport(const AccountID& accountID) {
 
         // Transport could not be created, account account already have one set.
         // Most likely this is the transport we tried to create.
-        _debug("Transport (%s) already set for account, use it\n", account->getTransportMapKey().c_str());
+        _debug("Transport (%s) already set for this account, use it\n", account->getTransportMapKey().c_str());
 
 	return true;
     } 
@@ -2075,21 +2076,9 @@ bool SIPVoIPLink::createSipTransport(AccountID id) {
     // If Transport created succesfully, store it in the internal map
     if(status == PJ_SUCCESS) {
 
-         SipTransportMap::iterator iter_transport;
-	 iter_transport = _transportMap.find(account->getTransportMapKey());
-
-	 // old transport in transport map, erase it
-	 if(iter_transport != _transportMap.end()){
-	     _transportMap.erase(iter_transport);
-	 }
-
-         std::string key = account->getTransportMapKey();
-	 pjsip_transport* transport = account->getAccountTransport();	 
- 
-	 _debug("Storing the newly created transport in transport map using key %s\n", key.c_str());
-         _transportMap.insert(pair<std::string, pjsip_transport*>(key, transport));
+        addTransportToMap(account->getTransportMapKey(), account->getAccountTransport());
 
-         return true;
+	return true;
     }
     else {
 
@@ -2099,6 +2088,25 @@ bool SIPVoIPLink::createSipTransport(AccountID id) {
 }
 
 
+bool SIPVoIPLink::addTransportToMap(std::string key, pjsip_transport* transport)
+{
+
+    SipTransportMap::iterator iter_transport;
+    iter_transport = _transportMap.find(key);
+	
+    // old transport in transport map, erase it
+    if(iter_transport != _transportMap.end()){
+        _transportMap.erase(iter_transport);
+    }
+
+    _debug("Storing the newly created transport in transport map using key %s\n", key.c_str());
+    _transportMap.insert(pair<std::string, pjsip_transport*>(key, transport));
+
+    return true;
+
+}
+
+
 int SIPVoIPLink::createUDPServer (AccountID id)
 {
 
diff --git a/sflphone-common/src/sip/sipvoiplink.h b/sflphone-common/src/sip/sipvoiplink.h
index 5a010702e4..4a9b8e3437 100644
--- a/sflphone-common/src/sip/sipvoiplink.h
+++ b/sflphone-common/src/sip/sipvoiplink.h
@@ -376,6 +376,9 @@ class SIPVoIPLink : public VoIPLink
 	 */
 	bool createSipTransport(AccountID id);
 
+
+	bool addTransportToMap(std::string key, pjsip_transport* transport);
+
         /** Create SIP UDP Listener */
         int createUDPServer (AccountID = "");
 
-- 
GitLab


From b2a8a0a538861f03e01cd0478f5891c57ed7d5dc Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Wed, 16 Dec 2009 16:26:24 -0500
Subject: [PATCH 099/188] [#2519] Manage dynamic transport changes and network
 manager registration call

---
 sflphone-common/src/sip/sipvoiplink.cpp | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index dd2895f336..be5ad54e86 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -452,6 +452,7 @@ int SIPVoIPLink::sendRegister (AccountID id)
         }
     }
 
+
     // Create SIP transport or get existent SIP transport from internal map 
     // according to account settings, if the transport could not be created but
     // one is already set in account, use this one (most likely this is the 
@@ -637,7 +638,7 @@ SIPVoIPLink::sendUnregister (AccountID id)
 	       account->getAccountTransport()->info,
 	       (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
 
-	// shutdownSipTransport(account->getAccountID());
+        // shutdownSipTransport(account->getAccountID());
     }
 
     // This may occurs if account failed to register and is in state INVALID
@@ -1975,11 +1976,21 @@ bool SIPVoIPLink::acquireTransport(const AccountID& accountID) {
     if(!account)
         return false;
 
+    // If an account is already bound to this account, decrease its reference 
+    // as it is going to change. If the same transport is selected, reference 
+    // counter will be increased
+    if(account->getAccountTransport()) {
+
+        _debug("pjsip_transport_dec_ref in acquireTransport\n");
+        pjsip_transport_dec_ref(account->getAccountTransport());
+    }
+
     // Try to create a new transport
     if(createSipTransport(accountID)) {
 
         return true;
     }
+    /*
     else if(account->getAccountTransport()) {
 
         // Transport could not be created, account account already have one set.
@@ -1988,6 +1999,7 @@ bool SIPVoIPLink::acquireTransport(const AccountID& accountID) {
 
 	return true;
     } 
+    */
     else {
 
         _debug("Searching transport (%s) in transport map\n", account->getTransportMapKey().c_str());
@@ -2038,7 +2050,7 @@ bool SIPVoIPLink::createSipTransport(AccountID id) {
     // if the user did choose it.
     if (account->isTlsEnabled()) {
 
-        _debug ("    sendRegister: createTlsTransport\n");
+        _debug ("Create TLS transport\n");
         status = createTlsTransportRetryOnFailure (id);
 
         if (status != PJ_SUCCESS) {
@@ -2049,7 +2061,7 @@ bool SIPVoIPLink::createSipTransport(AccountID id) {
         // Launch a new UDP listener/transport, using the published address
         if (account->isStunEnabled ()) {
 
-            _debug ("    sendRegister: createAlternateUdpTransport\n");
+            _debug ("Create Alternate UDP transport\n");
             status = createAlternateUdpTransport (id);
 
             if (status != PJ_SUCCESS) {
@@ -2057,6 +2069,7 @@ bool SIPVoIPLink::createSipTransport(AccountID id) {
             }
         } else {
 
+	    _debug ("Create UDP transport\n");
             status = createUDPServer (id);
 
 	    if (status != PJ_SUCCESS) {
@@ -2074,7 +2087,8 @@ bool SIPVoIPLink::createSipTransport(AccountID id) {
     }
 
     // If Transport created succesfully, store it in the internal map
-    if(status == PJ_SUCCESS) {
+    // If stun is enabled, do not store it due to stun per account policy 
+    if((status == PJ_SUCCESS) && !account->isStunEnabled()) {
 
         addTransportToMap(account->getTransportMapKey(), account->getAccountTransport());
 
-- 
GitLab


From 228bf3a3d38507bb771efbd700a52c9a7558fb8f Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Wed, 16 Dec 2009 18:11:27 -0500
Subject: [PATCH 100/188] [#2519] Use IP2IP transport as the default transport

---
 sflphone-common/src/sip/sipvoiplink.cpp | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index dae29a1ee8..dde7a25d67 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -1812,6 +1812,9 @@ bool SIPVoIPLink::pjsip_init()
 
         addTransportToMap(account->getTransportMapKey(), account->getAccountTransport());
 
+	// if account is not NULL, use IP2IP trasport as default one
+	_localUDPTransport = account->getAccountTransport();
+ 
     }
 
     // Create a TLS listener meant for Direct IP calls
@@ -2560,13 +2563,7 @@ pj_status_t SIPVoIPLink::createAlternateUdpTransport (AccountID id)
 	   pj_sockaddr_get_port((const pj_sockaddr*)&(transport->key.rem_addr)));
 
     }
-    pjsip_tpmgr * tpmgr = NULL;
-
-    tpmgr = pjsip_endpt_get_tpmgr (_endpt);
-
-    _debug ("Number of transport: %i\n", pjsip_tpmgr_get_transport_count (tpmgr));
-
-    // status = pjsip_transport_register( tpmgr, (pjsip_transport*)transport);
+    pjsip_tpmgr * tpmgr = pjsip_endpt_get_tpmgr (_endpt);
 
     pjsip_tpmgr_dump_transports (tpmgr);
 
-- 
GitLab


From 0cbaa83a46f00c5e1edadcfd25da17c089093a12 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 17 Dec 2009 10:27:22 -0500
Subject: [PATCH 101/188] [#2519] Do not store STUN or TLS transport in map

---
 sflphone-common/src/sip/sipvoiplink.cpp | 34 ++++++++++++-------------
 1 file changed, 16 insertions(+), 18 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index dde7a25d67..de9edbb294 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -2066,9 +2066,11 @@ bool SIPVoIPLink::createSipTransport(AccountID id) {
 
         if (status != PJ_SUCCESS) {
             _debug ("Failed to initialize TLS transport for account %s\n", id.c_str());
+	    return false;
         }
     }
     else {
+
         // Launch a new UDP listener/transport, using the published address
         if (account->isStunEnabled ()) {
 
@@ -2077,7 +2079,9 @@ bool SIPVoIPLink::createSipTransport(AccountID id) {
 
             if (status != PJ_SUCCESS) {
                 _debug ("Failed to initialize UDP transport with an extern published address for account %s\n", id.c_str());
+		return false;
             }
+
         } else {
 
 	    _debug ("Create UDP transport\n");
@@ -2085,32 +2089,26 @@ bool SIPVoIPLink::createSipTransport(AccountID id) {
 
 	    if (status != PJ_SUCCESS) {
                 _debug ("Failed to initialize UDP transport for account %s\n", id.c_str());
+		return false;
 	    }
+	    else {
 
-	    // We should not bind account to local udp transport here since we must
-	    /*
-            if (status != PJ_SUCCESS) {
-                _debug ("Use the local UDP transport\n");
-                account->setAccountTransport (_localUDPTransport);
-            }
-	    */
-        }
-    }
+	        // If transport succesfully created, store it in the internal map.
+	        // STUN aware transport are account specific and should not be stored in map.
+	        // TLS transport is ephemeral and is managed by PJSIP, should not be stored either.
+	        addTransportToMap(account->getTransportMapKey(), account->getAccountTransport());
+	    }
 
-    // If Transport created succesfully, store it in the internal map
-    // If stun is enabled, do not store it due to stun per account policy 
-    if((status == PJ_SUCCESS) && !account->isStunEnabled()) {
 
-        addTransportToMap(account->getTransportMapKey(), account->getAccountTransport());
+	}
 
-	return true;
     }
-    else {
 
-        return false;
-    }
-    
+    return true;
+
+	    
 }
+   
 
 
 bool SIPVoIPLink::addTransportToMap(std::string key, pjsip_transport* transport)
-- 
GitLab


From 4640d7604c30df2ea7f4411fc8ee32c1328c47af Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 17 Dec 2009 10:41:12 -0500
Subject: [PATCH 102/188] [#2519] Fix NULL pointer when TLS transport set to
 account

---
 sflphone-common/src/sip/sipvoiplink.cpp | 41 +++++++++++++++----------
 1 file changed, 24 insertions(+), 17 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index de9edbb294..4a78f873cf 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -458,10 +458,12 @@ int SIPVoIPLink::sendRegister (AccountID id)
     // transport we tried to create) 
     acquireTransport(account->getAccountID());
 
-    _debug("Acquire transport in account registration: %s %s (refcnt=%d)\n",
-	       account->getAccountTransport()->obj_name,
-	       account->getAccountTransport()->info,
-	       (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
+    if (account->getAccountTransport()) {
+       _debug("Acquire transport in account registration: %s %s (refcnt=%d)\n",
+	      account->getAccountTransport()->obj_name,
+	      account->getAccountTransport()->info,
+	      (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
+    }
 
     _mutexSIP.enterMutex();
 
@@ -574,15 +576,16 @@ int SIPVoIPLink::sendRegister (AccountID id)
     // pjsip_regc_set_transport increments transport ref count by one
     status = pjsip_regc_set_transport (regc, tp);
 
-    // decrease transport's ref count, counter icrementation is 
-    // managed when acquiring transport 
-    pjsip_transport_dec_ref(account->getAccountTransport ());
+    if(account->getAccountTransport()) {
+        // decrease transport's ref count, counter icrementation is 
+        // managed when acquiring transport 
+        pjsip_transport_dec_ref(account->getAccountTransport ());
 
-    _debug("After setting the transport in account registration using transport: %s %s (refcnt=%d)\n",
+        _debug("After setting the transport in account registration using transport: %s %s (refcnt=%d)\n",
 	       account->getAccountTransport()->obj_name,
 	       account->getAccountTransport()->info,
 	       (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
-
+    }
 
     if (status != PJ_SUCCESS) {
         _debug ("UserAgent: Unable to set transport.");
@@ -594,10 +597,12 @@ int SIPVoIPLink::sendRegister (AccountID id)
     // pjsip_regc_send increment the transport ref count by one, 
     status = pjsip_regc_send (regc, tdata);
 
-    // Decrease transport's ref count, since coresponding reference counter decrementation 
-    // is performed in pjsip_regc_destroy. This function is never called in SFLphone as the
-    // regc data structure is permanently associated to the account at first registration.
-    pjsip_transport_dec_ref(account->getAccountTransport ());
+    if(account->getAccountTransport()) {
+        // Decrease transport's ref count, since coresponding reference counter decrementation 
+        // is performed in pjsip_regc_destroy. This function is never called in SFLphone as the
+        // regc data structure is permanently associated to the account at first registration.
+        pjsip_transport_dec_ref(account->getAccountTransport ());
+    }
 
     if (status != PJ_SUCCESS) {
         _debug ("UserAgent: Unable to send regc request.");
@@ -609,11 +614,13 @@ int SIPVoIPLink::sendRegister (AccountID id)
 
     account->setRegistrationInfo (regc);
 
-    _debug("Sent account registration using transport: %s %s (refcnt=%d)\n",
-	   account->getAccountTransport()->obj_name,
-	   account->getAccountTransport()->info,
-	   (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
+    if(account->getAccountTransport()) {
 
+        _debug("Sent account registration using transport: %s %s (refcnt=%d)\n",
+	       account->getAccountTransport()->obj_name,
+	       account->getAccountTransport()->info,
+	       (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
+    }
 
     return true;
 }
-- 
GitLab


From 418ed26139d5d02bbb2acfbfeecef5867419a1fb Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 17 Dec 2009 12:00:38 -0500
Subject: [PATCH 103/188] [#2519] Strip \n in debug messages

---
 sflphone-common/src/sip/sipvoiplink.cpp | 93 +++++++++++++------------
 1 file changed, 48 insertions(+), 45 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 4a78f873cf..338ba18c5f 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -239,7 +239,7 @@ SIPVoIPLink::SIPVoIPLink (const AccountID& accountID)
 
 SIPVoIPLink::~SIPVoIPLink()
 {
-    _debug("SIPVoIPLink destructor called\n");
+    _debug("SIPVoIPLink destructor called");
 
     terminate();
 }
@@ -261,7 +261,7 @@ void SIPVoIPLink::decrementClients (void)
 
     if (_clients == 0) {
 
-        _debug("No SIP account anymore, terminate SIPVoIPLink\n");
+        _debug("No SIP account anymore, terminate SIPVoIPLink");
         terminate();
         SIPVoIPLink::_instance=NULL;
     }
@@ -290,10 +290,10 @@ bool SIPVoIPLink::init()
 void
 SIPVoIPLink::terminate()
 {
-    _debug ("Terminating SIPVoIPLink\n");
+    _debug ("Terminating SIPVoIPLink");
 
     if (_evThread) {
-        _debug ("Deleting sip eventThread\n");
+        _debug ("Deleting sip eventThread");
         delete _evThread;
         _evThread = NULL;
     }
@@ -301,7 +301,7 @@ SIPVoIPLink::terminate()
 
     /* Clean shutdown of pjsip library */
     if (initDone()) {
-        _debug ("Shuting down PJSIP\n");
+        _debug ("Shuting down PJSIP");
         pjsip_shutdown();
     }
 
@@ -459,7 +459,7 @@ int SIPVoIPLink::sendRegister (AccountID id)
     acquireTransport(account->getAccountID());
 
     if (account->getAccountTransport()) {
-       _debug("Acquire transport in account registration: %s %s (refcnt=%d)\n",
+       _debug("Acquire transport in account registration: %s %s (refcnt=%d)",
 	      account->getAccountTransport()->obj_name,
 	      account->getAccountTransport()->info,
 	      (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
@@ -581,7 +581,7 @@ int SIPVoIPLink::sendRegister (AccountID id)
         // managed when acquiring transport 
         pjsip_transport_dec_ref(account->getAccountTransport ());
 
-        _debug("After setting the transport in account registration using transport: %s %s (refcnt=%d)\n",
+        _debug("After setting the transport in account registration using transport: %s %s (refcnt=%d)",
 	       account->getAccountTransport()->obj_name,
 	       account->getAccountTransport()->info,
 	       (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
@@ -616,7 +616,7 @@ int SIPVoIPLink::sendRegister (AccountID id)
 
     if(account->getAccountTransport()) {
 
-        _debug("Sent account registration using transport: %s %s (refcnt=%d)\n",
+        _debug("Sent account registration using transport: %s %s (refcnt=%d)",
 	       account->getAccountTransport()->obj_name,
 	       account->getAccountTransport()->info,
 	       (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
@@ -640,7 +640,7 @@ SIPVoIPLink::sendUnregister (AccountID id)
     // If an transport is attached to this account, detach it and decrease reference counter
     if(account->getAccountTransport()) {
 
-        _debug("Sent account unregistration using transport: %s %s (refcnt=%d)\n",
+        _debug("Sent account unregistration using transport: %s %s (refcnt=%d)",
 	       account->getAccountTransport()->obj_name,
 	       account->getAccountTransport()->info,
 	       (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
@@ -1373,7 +1373,7 @@ SIPVoIPLink::SIPStartCall (SIPCall* call, const std::string& subject UNUSED)
         return false;
     }
 
-    _debug("Sent invite request using transport: %s %s (refcnt=%d)\n",
+    _debug("Sent invite request using transport: %s %s (refcnt=%d)",
 	               account->getAccountTransport()->obj_name,
 		       account->getAccountTransport()->info,
 	               (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
@@ -1496,7 +1496,7 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
 
         if (account == NULL) {
 
-	    _debug ("Account %s is null. Returning\n", IP2IP_PROFILE);
+	    _debug ("Account %s is null. Returning", IP2IP_PROFILE);
             return !PJ_SUCCESS;
         }
 
@@ -1508,7 +1508,7 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
         _debug ("new_ip_to_ip_call localAddress: %s", localAddress.c_str());
 
         if (localAddress == "0.0.0.0") {
-            _debug ("Local address: %s\n", localAddress.c_str ());
+            _debug ("Local address: %s", localAddress.c_str ());
             loadSIPLocalIP (&localAddress);
         }
 
@@ -1535,13 +1535,13 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
 
         // If no account already set, use the default one created at pjsip initialization
         if (account->getAccountTransport() == NULL) {
-            _debug ("No transport for this account, using the default one\n");
+            _debug ("No transport for this account, using the default one");
             account->setAccountTransport (_localUDPTransport);
         }
 
-        _debug ("IptoIP local port %i\n", account->getLocalPort());
+        _debug ("IptoIP local port %i", account->getLocalPort());
 
-        _debug ("IptoIP local address in sdp %s\n", account->getLocalAddress().c_str());
+        _debug ("IptoIP local address in sdp %s", account->getLocalAddress().c_str());
 
         // Create URI
         std::string fromUri;
@@ -1694,7 +1694,7 @@ pj_status_t SIPVoIPLink::enable_dns_srv_resolver (pjsip_endpoint *endpt, pj_dns_
 
     // Build the nameservers list needed by pjsip
     if ( (scount = dns_servers.size ()) <= 0) {
-        _debug ("No server detected while fetching DNS information, stop dns resolution\n");
+        _debug ("No server detected while fetching DNS information, stop dns resolution");
         return 0;
     }
 
@@ -1739,7 +1739,7 @@ bool SIPVoIPLink::pjsip_init()
 
     name_mod = "sflphone";
 
-    _debug ("pjsip_init\n");
+    _debug ("pjsip_init");
 
     // Init PJLIB: must be called before any call to the pjsip library
     status = pj_init();
@@ -1999,7 +1999,7 @@ bool SIPVoIPLink::acquireTransport(const AccountID& accountID) {
     // counter will be increased
     if(account->getAccountTransport()) {
 
-        _debug("pjsip_transport_dec_ref in acquireTransport\n");
+        _debug("pjsip_transport_dec_ref in acquireTransport");
         pjsip_transport_dec_ref(account->getAccountTransport());
     }
 
@@ -2020,7 +2020,7 @@ bool SIPVoIPLink::acquireTransport(const AccountID& accountID) {
     */
     else {
 
-        _debug("Searching transport (%s) in transport map\n", account->getTransportMapKey().c_str());
+        _debug("Searching transport (%s) in transport map", account->getTransportMapKey().c_str());
 
         // Could not create new transport, this transport may already exists
         SipTransportMap::iterator transport;
@@ -2029,7 +2029,7 @@ bool SIPVoIPLink::acquireTransport(const AccountID& accountID) {
 	if(transport != _transportMap.end()) {
 
 	    // Transport already exist, use it for this account
-	    _debug("Found transport (%s) in transport map\n", account->getTransportMapKey().c_str());
+	    _debug("Found transport (%s) in transport map", account->getTransportMapKey().c_str());
 
 	    pjsip_transport* tr = transport->second;
 
@@ -2045,7 +2045,7 @@ bool SIPVoIPLink::acquireTransport(const AccountID& accountID) {
 	else {
 
 	    // Transport could not either be created, socket not available
-	    _debug("Found transport (%s) in transport map\n", account->getTransportMapKey().c_str());
+	    _debug("Found transport (%s) in transport map", account->getTransportMapKey().c_str());
 
 	    // Transport could not either be created or found in the map, socket not available
 	    return false;
@@ -2068,11 +2068,11 @@ bool SIPVoIPLink::createSipTransport(AccountID id) {
     // if the user did choose it.
     if (account->isTlsEnabled()) {
 
-        _debug ("Create TLS transport\n");
+        _debug ("Create TLS transport");
         status = createTlsTransportRetryOnFailure (id);
 
         if (status != PJ_SUCCESS) {
-            _debug ("Failed to initialize TLS transport for account %s\n", id.c_str());
+            _debug ("Failed to initialize TLS transport for account %s", id.c_str());
 	    return false;
         }
     }
@@ -2081,21 +2081,21 @@ bool SIPVoIPLink::createSipTransport(AccountID id) {
         // Launch a new UDP listener/transport, using the published address
         if (account->isStunEnabled ()) {
 
-            _debug ("Create Alternate UDP transport\n");
+            _debug ("Create Alternate UDP transport");
             status = createAlternateUdpTransport (id);
 
             if (status != PJ_SUCCESS) {
-                _debug ("Failed to initialize UDP transport with an extern published address for account %s\n", id.c_str());
+                _debug ("Failed to initialize UDP transport with an extern published address for account %s", id.c_str());
 		return false;
             }
 
         } else {
 
-	    _debug ("Create UDP transport\n");
+	    _debug ("Create UDP transport");
             status = createUDPServer (id);
 
 	    if (status != PJ_SUCCESS) {
-                _debug ("Failed to initialize UDP transport for account %s\n", id.c_str());
+                _debug ("Failed to initialize UDP transport for account %s", id.c_str());
 		return false;
 	    }
 	    else {
@@ -2129,7 +2129,7 @@ bool SIPVoIPLink::addTransportToMap(std::string key, pjsip_transport* transport)
         _transportMap.erase(iter_transport);
     }
 
-    _debug("Storing the newly created transport in transport map using key %s\n", key.c_str());
+    _debug("Storing the newly created transport in transport map using key %s", key.c_str());
     _transportMap.insert(pair<std::string, pjsip_transport*>(key, transport));
 
     return true;
@@ -2152,7 +2152,7 @@ int SIPVoIPLink::createUDPServer (AccountID id)
     if (!loadSIPLocalIP (&listeningAddress))
         return !PJ_SUCCESS;
 
-    _debug ("Create UDP transport for account \"%s\"\n", id.c_str());
+    _debug ("Create UDP transport for account \"%s\"", id.c_str());
 
     /*
      * Retrieve the account information
@@ -2165,7 +2165,7 @@ int SIPVoIPLink::createUDPServer (AccountID id)
         _debug ("Account with id \"%s\" is null in createUDPServer.", id.c_str());
     } else {
         // We are trying to initialize a UDP transport available for all local accounts and direct IP calls
-        _debug("Found account %s in map\n", account->getAccountID().c_str());
+        _debug("Found account %s in map", account->getAccountID().c_str());
 
         if (account->getLocalAddress () != "0.0.0.0") {
             listeningAddress = account->getLocalAddress ();
@@ -2189,7 +2189,7 @@ int SIPVoIPLink::createUDPServer (AccountID id)
         listeningAddress = account->getPublishedAddress ();
         // Set the listening port to the published port
         listeningPort = account->getPublishedPort ();
-        _debug ("Creating UDP transport published %s:%i\n", listeningAddress.c_str (), listeningPort);
+        _debug ("Creating UDP transport published %s:%i", listeningAddress.c_str (), listeningPort);
 
     }
 
@@ -2211,7 +2211,7 @@ int SIPVoIPLink::createUDPServer (AccountID id)
 
     if (status != PJ_SUCCESS) {
 
-        _debug ("UserAgent: (%d) Unable to start UDP transport on %s:%d\n", status, listeningAddress.data(), listeningPort);
+        _debug ("UserAgent: (%d) Unable to start UDP transport on %s:%d", status, listeningAddress.data(), listeningPort);
         return status;
 
     } else {
@@ -2220,12 +2220,12 @@ int SIPVoIPLink::createUDPServer (AccountID id)
 
         if (account == NULL) {
 
-	    _debug("Use transport as local UDP server\n");
+	    _debug("Use transport as local UDP server");
             _localUDPTransport = transport;
 	}
         else {
 
-	    _debug("Bind transport to account %s\n", account->getAccountID().c_str());
+	    _debug("Bind transport to account %s", account->getAccountID().c_str());
 	    account->setAccountTransport (transport);
 	}
     }
@@ -2269,6 +2269,7 @@ std::string SIPVoIPLink::findLocalAddressFromUri (const std::string& uri, pjsip_
 
     if (PJSIP_URI_SCHEME_IS_SIPS (sip_uri)) {
         transportType = PJSIP_TRANSPORT_TLS;
+
     } else {
         if (transport == NULL) {
             _debug ("transport is NULL in findLocalAddressFromUri. Try the local UDP transport");
@@ -2304,8 +2305,10 @@ std::string SIPVoIPLink::findLocalAddressFromUri (const std::string& uri, pjsip_
             status = pjsip_tpmgr_find_local_addr (tpmgr, _pool, transportType, tp_sel, &localAddress, &port);
         else
             status = pjsip_tpmgr_find_local_addr (tpmgr, _pool, transportType, NULL, &localAddress, &port);
-    } else
+    } else {
+
         status = pjsip_tpmgr_find_local_addr (tpmgr, _pool, transportType, NULL, &localAddress, &port);
+    }
 
     if (status != PJ_SUCCESS) {
         _debug ("Failed to find local address from transport");
@@ -2548,7 +2551,7 @@ pj_status_t SIPVoIPLink::createAlternateUdpTransport (AccountID id)
 
     if(transport) {
 
-    _debug("INITIAL REF COUNT: %s %s (refcnt=%i)\n",
+    _debug("INITIAL REF COUNT: %s %s (refcnt=%i)",
 	   transport->obj_name,
 	   transport->info,
 	   (int)pj_atomic_get(transport->ref_cnt));
@@ -2562,7 +2565,7 @@ pj_status_t SIPVoIPLink::createAlternateUdpTransport (AccountID id)
 		 str, sizeof(str));
     
     
-    _debug("KEY: %s:%d\n",
+    _debug("KEY: %s:%d",
 	   // addr_string(account->getAccountTransport()->key.rem_addr),
 	   str,
 	   pj_sockaddr_get_port((const pj_sockaddr*)&(transport->key.rem_addr)));
@@ -2654,7 +2657,7 @@ pj_status_t SIPVoIPLink::createTlsTransport (AccountID id)
 
 void SIPVoIPLink::shutdownSipTransport(const AccountID& accountID)
 {
-    _debug("Shutdown Sip Transport\n");
+    _debug("Shutdown Sip Transport");
 
     pj_status_t status = 0;
 
@@ -2665,7 +2668,7 @@ void SIPVoIPLink::shutdownSipTransport(const AccountID& accountID)
 
     if(account->getAccountTransport()) {
 
-        _debug("Transport bound to account, decrease ref count\n");
+        _debug("Transport bound to account, decrease ref count");
 
 	// decrease reference count added by pjsip_regc_send
 	// PJSIP's IDLE timer is set if counter reach 0
@@ -2765,7 +2768,7 @@ bool SIPVoIPLink::pjsip_shutdown (void)
     /* Shutdown PJLIB */
     pj_shutdown();
 
-    _debug ("UserAgent: Shutted down succesfully\n");
+    _debug ("UserAgent: Shutted down succesfully");
 
     /* Done. */
     return true;
@@ -3125,7 +3128,7 @@ void call_on_tsx_changed (pjsip_inv_session *inv, pjsip_transaction *tsx, pjsip_
 
                 if (request.find (method_name) != (size_t)-1) {
 
-                    _debug ("%s\n", pjsip_rx_data_get_info (r_data));
+                    _debug ("%s", pjsip_rx_data_get_info (r_data));
 
                     pjsip_dlg_create_response (inv->dlg, r_data, PJSIP_SC_OK, NULL, &t_data);
 
@@ -3251,7 +3254,7 @@ mod_on_rx_request (pjsip_rx_data *rdata)
     // Handle the incoming call invite in this function
     _debug ("UserAgent: Callback on_rx_request is involved! ");
 
-    _debug("Receiving REQUEST using transport: %s %s (refcnt=%d)\n",
+    _debug("Receiving REQUEST using transport: %s %s (refcnt=%d)",
 	   rdata->tp_info.transport->obj_name,
 	   rdata->tp_info.transport->info,
 	   (int)pj_atomic_get(rdata->tp_info.transport->ref_cnt));
@@ -3388,7 +3391,7 @@ mod_on_rx_request (pjsip_rx_data *rdata)
 
     /************************************************************************************************/
 
-    _debug ("create a new call\n");
+    _debug ("create a new call");
 
     // Generate a new call ID for the incoming call!
     id = Manager::instance().getNewCallID();
@@ -3420,7 +3423,7 @@ mod_on_rx_request (pjsip_rx_data *rdata)
 
 	if(account->getAccountTransport()) {
 
-	    _debug("Process INVITE request using transport: %s %s (refcnt=%i)\n",
+	    _debug("Process INVITE request using transport: %s %s (refcnt=%i)",
 		   account->getAccountTransport()->obj_name,
 		   account->getAccountTransport()->info,
 		   (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
@@ -3447,7 +3450,7 @@ mod_on_rx_request (pjsip_rx_data *rdata)
 
     // Notify UI there is an incoming call
 
-    _debug ("Add call to account link\n");
+    _debug ("Add call to account link");
 
     if (Manager::instance().incomingCall (call, account_id)) {
         // Add this call to the callAccountMap in ManagerImpl
-- 
GitLab


From db38693550cf1ce3a1f934096f64e4d4d799f454 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 17 Dec 2009 12:49:21 -0500
Subject: [PATCH 104/188] [#2519] Store new localUDPTransport if changed in
 IP2IP settings

---
 sflphone-common/src/sip/sipvoiplink.cpp | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 338ba18c5f..d94fc1f426 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -2685,7 +2685,14 @@ void SIPVoIPLink::shutdownSipTransport(const AccountID& accountID)
 void SIPVoIPLink::updateAccountInfo (const AccountID& accountID)
 {
 
-    createUDPServer (accountID);
+    createSipTransport (accountID);
+
+    if(accountID == IP2IP_PROFILE) {
+
+        SIPAccount* account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (accountID));
+	// Store new IP2IP UDP transport as default 
+        _localUDPTransport = account->getAccountTransport();
+    }
 
 }
 
-- 
GitLab


From 6375d8dd173271a844e56ffa21fd53ffb8b33b7d Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 17 Dec 2009 12:59:15 -0500
Subject: [PATCH 105/188] [#2519] Must use acquireTransport and not
 createSipTransport in updateAccountInfo

---
 sflphone-common/src/sip/sipvoiplink.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index d94fc1f426..fb977d2608 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -2685,7 +2685,8 @@ void SIPVoIPLink::shutdownSipTransport(const AccountID& accountID)
 void SIPVoIPLink::updateAccountInfo (const AccountID& accountID)
 {
 
-    createSipTransport (accountID);
+    // createSipTransport (accountID);
+    acquireTransport(accountID);
 
     if(accountID == IP2IP_PROFILE) {
 
-- 
GitLab


From fe1a401eddd611efdcacb983d9d6b76efb4f4a58 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 17 Dec 2009 14:46:44 -0500
Subject: [PATCH 106/188] [#2592] Make sure the message buffer is large enought
 in Logger::log

---
 sflphone-common/src/logger.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sflphone-common/src/logger.cpp b/sflphone-common/src/logger.cpp
index b7966beea5..16880b9ad7 100644
--- a/sflphone-common/src/logger.cpp
+++ b/sflphone-common/src/logger.cpp
@@ -37,7 +37,7 @@ void log(const int level, const char* format, ...)
 
 	va_list ap;
 	string prefix = "<> ";
-	char buffer[1024];
+	char buffer[2048];
 	string message = "";
 	string color_prefix = "";
 
-- 
GitLab


From aa3cfdacde10e9c0b7a0326cd926c4c5f111cfb7 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 17 Dec 2009 15:43:52 -0500
Subject: [PATCH 107/188] [#2594] Add a method to access audiolayer mutex lock

---
 sflphone-common/src/audio/audiolayer.h | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/sflphone-common/src/audio/audiolayer.h b/sflphone-common/src/audio/audiolayer.h
index ab70ddfd07..580c064e51 100644
--- a/sflphone-common/src/audio/audiolayer.h
+++ b/sflphone-common/src/audio/audiolayer.h
@@ -213,6 +213,11 @@ class AudioLayer {
 	 */
 	inline Recordable* getRecorderInstance (void) {return _recorder;}
 
+	/**
+	 * Get the mutex lock for the entire audio layer 
+	 */
+	inline ost::Mutex* getMutexLock(void) { return &_mutex; }
+
 
     protected:
 
@@ -285,6 +290,9 @@ class AudioLayer {
         /** Contains the current error code */
         int _errorMessage;
 
+	/**
+	 * Lock for the entire audio layer
+	 */ 
         ost::Mutex _mutex;
 
 };
-- 
GitLab


From 40efc879b2038ae398fc500eae027e8005579fae Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 17 Dec 2009 15:44:58 -0500
Subject: [PATCH 108/188] [#2592] Buffer length for log message should be
 longer

---
 sflphone-common/src/logger.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sflphone-common/src/logger.cpp b/sflphone-common/src/logger.cpp
index 16880b9ad7..08ab98f208 100644
--- a/sflphone-common/src/logger.cpp
+++ b/sflphone-common/src/logger.cpp
@@ -37,7 +37,7 @@ void log(const int level, const char* format, ...)
 
 	va_list ap;
 	string prefix = "<> ";
-	char buffer[2048];
+	char buffer[4096];
 	string message = "";
 	string color_prefix = "";
 
-- 
GitLab


From e6ff28c3e212a35c52dd70cf4324606e4c7bc957 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 17 Dec 2009 17:14:22 -0500
Subject: [PATCH 109/188] [#2594] Get audiolayer from manager in RTP and add
 mutex

---
 .../src/audio/audiortp/AudioRtpSession.h      | 34 +++++++++++++------
 sflphone-common/src/managerimpl.cpp           |  5 +++
 sflphone-common/src/managerimpl.h             |  4 +++
 3 files changed, 32 insertions(+), 11 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioRtpSession.h b/sflphone-common/src/audio/audiortp/AudioRtpSession.h
index afe37aa21d..e1d8b536cb 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpSession.h
+++ b/sflphone-common/src/audio/audiortp/AudioRtpSession.h
@@ -202,7 +202,8 @@ namespace sfl {
         }
 
 	_debug("Unbind audio RTP stream for call id %s\n", _ca->getCallId().c_str());
-	_audiolayer->getMainBuffer()->unBindAll(_ca->getCallId());
+	// _audiolayer->getMainBuffer()->unBindAll(_ca->getCallId());
+	_manager->getAudioDriver()->getMainBuffer()->unBindAll(_ca->getCallId());
 
         delete [] _micData;
         delete [] _micDataConverted;
@@ -218,10 +219,12 @@ namespace sfl {
     void AudioRtpSession<D>::initBuffers() 
     {
 	// Set sampling rate, main buffer choose the highest one
-	_audiolayer->getMainBuffer()->setInternalSamplingRate(_codecSampleRate);
+	// _audiolayer->getMainBuffer()->setInternalSamplingRate(_codecSampleRate);
+        _manager->getAudioDriver()->getMainBuffer()->setInternalSamplingRate(_codecSampleRate);
 
 	// may be different than one already setted
-	converterSamplingRate = _audiolayer->getMainBuffer()->getInternalSamplingRate();
+	// converterSamplingRate = _audiolayer->getMainBuffer()->getInternalSamplingRate();
+	converterSamplingRate = _manager->getAudioDriver()->getMainBuffer()->getInternalSamplingRate();
 
 	// initialize SampleRate converter using AudioLayer's sampling rate
 	// (internal buffers initialized with maximal sampling rate and frame size)
@@ -310,7 +313,8 @@ namespace sfl {
         assert(_audiocodec);
         assert(_audiolayer);
 
-	int _mainBufferSampleRate = _audiolayer->getMainBuffer()->getInternalSamplingRate();
+	
+	int _mainBufferSampleRate = _manager->getAudioDriver()->getMainBuffer()->getInternalSamplingRate();
 
         // compute codec framesize in ms
         float fixed_codec_framesize = computeCodecFrameSize (_audiocodec->getFrameSize(), _audiocodec->getClockRate());
@@ -319,7 +323,7 @@ namespace sfl {
         int maxBytesToGet = computeNbByteAudioLayer (fixed_codec_framesize);
 
         // available bytes inside ringbuffer
-        int availBytesFromMic = _audiolayer->getMainBuffer()->availForGet(_ca->getCallId());
+        int availBytesFromMic = _manager->getAudioDriver()->getMainBuffer()->availForGet(_ca->getCallId());
 
         // set available byte to maxByteToGet
         int bytesAvail = (availBytesFromMic < maxBytesToGet) ? availBytesFromMic : maxBytesToGet;
@@ -328,7 +332,7 @@ namespace sfl {
             return 0;
 
         // Get bytes from micRingBuffer to data_from_mic
-        int nbSample = _audiolayer->getMainBuffer()->getData(_micData , bytesAvail, 100, _ca->getCallId()) / sizeof (SFLDataFormat);
+        int nbSample = _manager->getAudioDriver()->getMainBuffer()->getData(_micData , bytesAvail, 100, _ca->getCallId()) / sizeof (SFLDataFormat);
 
         // nb bytes to be sent over RTP
         int compSize = 0;
@@ -361,7 +365,7 @@ namespace sfl {
         if (_audiocodec != NULL) {
 
 
-	    int _mainBufferSampleRate = _audiolayer->getMainBuffer()->getInternalSamplingRate();
+	    int _mainBufferSampleRate = _manager->getAudioDriver()->getMainBuffer()->getInternalSamplingRate();
 
             // Return the size of data in bytes
             int expandedSize = _audiocodec->codecDecode (_spkrDataDecoded , spkrData , size);
@@ -381,7 +385,7 @@ namespace sfl {
                 _nSamplesSpkr = nbSample;
 
                 // put data in audio layer, size in byte
-		_audiolayer->getMainBuffer()->putData (_spkrDataConverted, nbSample * sizeof (SFLDataFormat), 100, _ca->getCallId());
+		_manager->getAudioDriver()->getMainBuffer()->putData (_spkrDataConverted, nbSample * sizeof (SFLDataFormat), 100, _ca->getCallId());
 
 
             } else {
@@ -390,7 +394,7 @@ namespace sfl {
 
 
                 // put data in audio layer, size in byte
-                _audiolayer->getMainBuffer()->putData (_spkrDataDecoded, expandedSize, 100, _ca->getCallId());
+                _manager->getAudioDriver()->getMainBuffer()->putData (_spkrDataDecoded, expandedSize, 100, _ca->getCallId());
             }
 
             // Notify (with a beep) an incoming call when there is already a call
@@ -513,7 +517,7 @@ namespace sfl {
 	_ca->setRecordingSmplRate(_audiocodec->getClockRate());
  
 	// Start audio stream (if not started) AND flush all buffers (main and urgent)
-        _audiolayer->startStream();
+        _manager->getAudioDriver()->startStream();
         static_cast<D*>(this)->startRunning();
 
 	// Already called in _audiolayer->startStream()
@@ -524,7 +528,12 @@ namespace sfl {
 
         while (!testCancel()) {
 
-	    converterSamplingRate = _audiolayer->getMainBuffer()->getInternalSamplingRate();
+	    // ost::MutexLock lock(*(_manager->getAudioLayerMutex()));
+
+	    _manager->getAudioLayerMutex()->enter();
+
+	    // converterSamplingRate = _audiolayer->getMainBuffer()->getInternalSamplingRate();
+	    _manager->getAudioDriver()->getMainBuffer()->getInternalSamplingRate();
 
             // Send session
             sessionWaiting = static_cast<D*>(this)->isWaiting();
@@ -544,6 +553,9 @@ namespace sfl {
                 _ca->recAudio.recData (_micData,_nSamplesMic);
             }
 
+	    // ost::MutexLock unlock(*(_manager->getAudioLayerMutex()));
+	    _manager->getAudioLayerMutex()->leave();
+
             // Let's wait for the next transmit cycle
             Thread::sleep (TimerPort::getTimer());
 
diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index 31c3e247b8..06234906f6 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -3143,6 +3143,9 @@ void ManagerImpl::switchAudioManager (void)
 
     _debug ("Deleting current layer... ");
 
+    // ost::MutexLock lock (*getAudioLayerMutex());
+    getAudioLayerMutex()->enter();
+
     // _audiodriver->closeLayer();
     delete _audiodriver;
 
@@ -3181,6 +3184,8 @@ void ManagerImpl::switchAudioManager (void)
     if (hasCurrentCall())
         _audiodriver->startStream();
 
+    // ost::MutexLock unlock (*getAudioLayerMutex());
+    getAudioLayerMutex()->leave();
 
     // need to stop audio streams if there is currently no call
     // if ( (type != PULSEAUDIO) && (!hasCurrentCall())) {
diff --git a/sflphone-common/src/managerimpl.h b/sflphone-common/src/managerimpl.h
index f173539d25..fe2ce8618d 100644
--- a/sflphone-common/src/managerimpl.h
+++ b/sflphone-common/src/managerimpl.h
@@ -1050,6 +1050,8 @@ class ManagerImpl {
      * Initialize audiodriver
      */
     bool initAudioDriver(void);
+
+    ost::Mutex* getAudioLayerMutex() { return &_audiolayer_mutex; }
     
   private:
     /* Transform digest to string.
@@ -1155,6 +1157,8 @@ class ManagerImpl {
     /** Mutex to protect access to code section */
     ost::Mutex _mutex;
 
+    ost::Mutex _audiolayer_mutex;
+
     // Multithread variable (non protected)
     DBusManagerImpl * _dbus;
 
-- 
GitLab


From dd285eeadbb7a8e43fcceb67da571483c2993c7e Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 17 Dec 2009 17:32:45 -0500
Subject: [PATCH 110/188] [#2596] Close stream when hanging up call no yet sent

---
 sflphone-common/src/managerimpl.cpp | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index 06234906f6..a409aa5a6d 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -413,7 +413,7 @@ ManagerImpl::hangupCall (const CallID& call_id)
     _debug ("ManagerImpl::hangupCall(%s)", call_id.c_str());
     PulseLayer *pulselayer;
     AccountID account_id;
-    bool returnValue;
+    bool returnValue = true;
 
     // store the current call id
     CallID current_call_id = getCurrentCallId();
@@ -446,19 +446,20 @@ ManagerImpl::hangupCall (const CallID& call_id)
     if (getConfigFromCall (call_id) == Call::IPtoIP) {
         returnValue = SIPVoIPLink::instance (AccountNULL)->hangup (call_id);
     }
-
     /* Classic call, attached to an account */
     else {
         account_id = getAccountFromCall (call_id);
 
         if (account_id == AccountNULL) {
+
             _debug ("! Manager Hangup Call: Call doesn't exists");
-            return false;
+            returnValue = false;
         }
+	else {
 
-        returnValue = getAccountLink (account_id)->hangup (call_id);
-
-        removeCallAccount (call_id);
+	    returnValue = getAccountLink (account_id)->hangup (call_id);
+	    removeCallAccount (call_id);
+	}
     }
 
     int nbCalls = getCallList().size();
-- 
GitLab


From e1ef1577fbcab9f7fc839d157ab8b9a45f09c231 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Fri, 18 Dec 2009 10:03:35 -0500
Subject: [PATCH 111/188] [#2594] Lower prebuffering threshold in Pulseaudio to
 prevent stream to stop

---
 sflphone-common/src/audio/pulseaudio/audiostream.cpp | 2 +-
 sflphone-common/src/audio/pulseaudio/pulselayer.cpp  | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/sflphone-common/src/audio/pulseaudio/audiostream.cpp b/sflphone-common/src/audio/pulseaudio/audiostream.cpp
index d98251075a..55377b1739 100644
--- a/sflphone-common/src/audio/pulseaudio/audiostream.cpp
+++ b/sflphone-common/src/audio/pulseaudio/audiostream.cpp
@@ -203,7 +203,7 @@ AudioStream::createStream (pa_context* c)
         // 20 ms framesize TODO: take framesize value from config
         attributes->maxlength = (uint32_t) -1;
         attributes->tlength = pa_usec_to_bytes (50 * PA_USEC_PER_MSEC, &sample_spec);
-        attributes->prebuf = (uint32_t) -1;
+        attributes->prebuf = 0;
         attributes->minreq = (uint32_t) -1;
         attributes->fragsize = (uint32_t) -1;
 
diff --git a/sflphone-common/src/audio/pulseaudio/pulselayer.cpp b/sflphone-common/src/audio/pulseaudio/pulselayer.cpp
index 046d81cec1..773956df5b 100644
--- a/sflphone-common/src/audio/pulseaudio/pulselayer.cpp
+++ b/sflphone-common/src/audio/pulseaudio/pulselayer.cpp
@@ -587,6 +587,7 @@ void PulseLayer::writeToSpeaker (void)
             normalAvailBytes = getMainBuffer()->availForGet();
 
             byteToGet = (normalAvailBytes < (int) (maxNbBytesToGet)) ? normalAvailBytes : maxNbBytesToGet;
+	    // _debug("byteToGet: %i", byteToGet);
 
             if (byteToGet) {
 
-- 
GitLab


From d538725766723c3ffe27ce075266d20bac903074 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Fri, 18 Dec 2009 11:00:39 -0500
Subject: [PATCH 112/188] [#2597] Fix compilation warnings in tls and zrtp
 config windows

---
 sflphone-client-gnome/src/config/tlsadvanceddialog.h  | 1 +
 sflphone-client-gnome/src/config/zrtpadvanceddialog.c | 2 +-
 sflphone-client-gnome/src/config/zrtpadvanceddialog.h | 2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/sflphone-client-gnome/src/config/tlsadvanceddialog.h b/sflphone-client-gnome/src/config/tlsadvanceddialog.h
index 853d0ddd95..4b7702a232 100644
--- a/sflphone-client-gnome/src/config/tlsadvanceddialog.h
+++ b/sflphone-client-gnome/src/config/tlsadvanceddialog.h
@@ -24,6 +24,7 @@
   */
 
 #include <glib.h>
+#include <mainwindow.h>
 
 /** 
  * Display the advanced options window for zrtp
diff --git a/sflphone-client-gnome/src/config/zrtpadvanceddialog.c b/sflphone-client-gnome/src/config/zrtpadvanceddialog.c
index b055e0de41..02b634d559 100644
--- a/sflphone-client-gnome/src/config/zrtpadvanceddialog.c
+++ b/sflphone-client-gnome/src/config/zrtpadvanceddialog.c
@@ -47,7 +47,7 @@ void show_advanced_zrtp_options(GHashTable * properties)
     }
     
     securityDialog = GTK_DIALOG	(gtk_dialog_new_with_buttons (	_("ZRTP Options"),
-																GTK_WINDOW (get_main_window()),
+			    GTK_WINDOW (get_main_window()),
 																GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
 																GTK_STOCK_CANCEL,
 																GTK_RESPONSE_CANCEL,
diff --git a/sflphone-client-gnome/src/config/zrtpadvanceddialog.h b/sflphone-client-gnome/src/config/zrtpadvanceddialog.h
index fb84c6e7b7..df92bfb09b 100644
--- a/sflphone-client-gnome/src/config/zrtpadvanceddialog.h
+++ b/sflphone-client-gnome/src/config/zrtpadvanceddialog.h
@@ -24,7 +24,7 @@
   */
 
 #include <glib.h>
-
+#include <mainwindow.h>
 /** 
  * Display the advanced options window for zrtp
  */  
-- 
GitLab


From 43f290878f6581206522442f639276a149263a5a Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Fri, 18 Dec 2009 13:34:51 -0500
Subject: [PATCH 113/188] [#2598] Enlarge requested latency when creating audio
 streams

---
 sflphone-common/src/audio/pulseaudio/audiostream.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sflphone-common/src/audio/pulseaudio/audiostream.cpp b/sflphone-common/src/audio/pulseaudio/audiostream.cpp
index 55377b1739..dd11a28d57 100644
--- a/sflphone-common/src/audio/pulseaudio/audiostream.cpp
+++ b/sflphone-common/src/audio/pulseaudio/audiostream.cpp
@@ -202,7 +202,7 @@ AudioStream::createStream (pa_context* c)
 
         // 20 ms framesize TODO: take framesize value from config
         attributes->maxlength = (uint32_t) -1;
-        attributes->tlength = pa_usec_to_bytes (50 * PA_USEC_PER_MSEC, &sample_spec);
+        attributes->tlength = pa_usec_to_bytes (100 * PA_USEC_PER_MSEC, &sample_spec);
         attributes->prebuf = 0;
         attributes->minreq = (uint32_t) -1;
         attributes->fragsize = (uint32_t) -1;
-- 
GitLab


From f81ecebe12f16df63ac8237c2dc6a260329012de Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Fri, 18 Dec 2009 17:57:06 -0500
Subject: [PATCH 114/188] [#2601] Add sorting algorithm in history manager

---
 .../src/history/historymanager.cpp            | 42 ++++++++++++++++++-
 sflphone-common/src/history/historymanager.h  |  2 +
 2 files changed, 43 insertions(+), 1 deletion(-)

diff --git a/sflphone-common/src/history/historymanager.cpp b/sflphone-common/src/history/historymanager.cpp
index 9ea8f933d3..1720e9018d 100644
--- a/sflphone-common/src/history/historymanager.cpp
+++ b/sflphone-common/src/history/historymanager.cpp
@@ -70,6 +70,7 @@ int HistoryManager::load_history_items_map (Conf::ConfigTree *history_list, int
     short nb_items = 0;
     Conf::TokenList sections;
     HistoryItem *item;
+    HistoryItemMap unsorted_map;
     Conf::TokenList::iterator iter;
     std::string number, name, accountID, timestamp_start, timestamp_stop;
     CallType type;
@@ -97,16 +98,55 @@ int HistoryManager::load_history_items_map (Conf::ConfigTree *history_list, int
 
         if (atoi (timestamp_start.c_str ()) >= ( (int) current_timestamp - history_limit)) {
             item = new HistoryItem (timestamp_start, type, timestamp_stop, name, number, accountID);
-            add_new_history_entry (item);
+            // add_new_history_entry (item);
+	    unsorted_map [item->get_timestamp ()] = item;
             nb_items ++;
         }
 
         iter ++;
     }
 
+    sort_and_fill_history_map(&unsorted_map);
+
     return nb_items;
 }
 
+
+bool HistoryManager::sort_and_fill_history_map(HistoryItemMap *unsorted_map)
+{
+    int max_timestamp = 0;
+    int timestamp;
+    std::string key;
+
+    while(unsorted_map->size() > 0) {
+
+        HistoryItemMap::iterator iter_item = unsorted_map->begin();
+
+	// find highest timestamp
+        while(iter_item != unsorted_map->end()) {
+
+	    timestamp = atoi(iter_item->first.c_str());
+	    _debug("-------------------------------------------------- timestamp: %i\n", timestamp);
+
+	    // save items as maximum
+	    if(timestamp > max_timestamp) { 
+	        max_timestamp = timestamp;
+		key = iter_item->first;
+	    }
+	    
+	    iter_item++;
+	}
+
+	iter_item = unsorted_map->find(key);
+	add_new_history_entry (iter_item->second);
+	unsorted_map->erase(iter_item);  
+    }
+
+    return true;
+
+}
+
+
 bool HistoryManager::save_history_to_file (Conf::ConfigTree *history_list)
 {
     _debug ("Saving history in XDG directory: %s", _history_path.data());
diff --git a/sflphone-common/src/history/historymanager.h b/sflphone-common/src/history/historymanager.h
index b00b509c3c..ccb6615f2e 100644
--- a/sflphone-common/src/history/historymanager.h
+++ b/sflphone-common/src/history/historymanager.h
@@ -116,6 +116,8 @@ class HistoryManager {
          */
         void add_new_history_entry (HistoryItem *new_item);
 
+	bool sort_and_fill_history_map(HistoryItemMap *unsorted_map);
+
         /*
          * Map containing the history items
          */
-- 
GitLab


From b3b7e1834e086bce923196e8247b9751b587a0b6 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 21 Dec 2009 11:10:05 -0500
Subject: [PATCH 115/188] [#2601] History entries must be sorted in client
 (hash table are not sorted)

---
 sflphone-client-gnome/src/actions.c           | 60 +++++++++++++++----
 .../src/history/historymanager.cpp            | 41 +------------
 sflphone-common/src/history/historymanager.h  |  2 -
 3 files changed, 49 insertions(+), 54 deletions(-)

diff --git a/sflphone-client-gnome/src/actions.c b/sflphone-client-gnome/src/actions.c
index 2166de5387..fe433aace6 100644
--- a/sflphone-client-gnome/src/actions.c
+++ b/sflphone-client-gnome/src/actions.c
@@ -1182,23 +1182,59 @@ void sflphone_fill_history (void)
 {
     GHashTable *entries;
     GHashTableIter iter;
-    gpointer key, value;
+    gpointer key, key_to_min, value;
     callable_obj_t *history_entry;
 
+    int timestamp, min_timestamp;
+
+    gboolean is_first;
+
     DEBUG ("Loading history ...");
 
     entries = dbus_get_history ();
-    if (entries)
-    {
-        // Init the iterator
-        g_hash_table_iter_init (&iter, entries);
-        while (g_hash_table_iter_next (&iter, &key, &value)) 
-        {
-            /* do something with key and value */
-            create_history_entry_from_serialized_form ((gchar*)key, (gchar*)value, &history_entry);    
-            // Add it and update the GUI
-            calllist_add (history, history_entry);
-        }
+    if (entries) {
+
+	while(g_hash_table_size (entries)) {
+
+	    is_first = TRUE;
+
+	    // find lowest timestamp in map
+	    g_hash_table_iter_init (&iter, entries);
+	    while (g_hash_table_iter_next (&iter, &key, &value))  {
+
+	        timestamp = atoi((gchar*)key);
+
+	        if(is_first) {
+
+		    // first iteration of the loop, init search
+		    min_timestamp = timestamp;
+		    key_to_min = key;
+
+		    is_first = FALSE;
+		}
+		else {
+
+		    // if lower, replace
+		    if(timestamp < min_timestamp) {
+
+		        min_timestamp = timestamp;
+			key_to_min = key;
+		    }
+		}
+	    }
+
+	    if(g_hash_table_lookup_extended(entries, key_to_min, &key, &value)) {
+
+	        // do something with key and value 
+	        create_history_entry_from_serialized_form ((gchar*)key, (gchar*)value, &history_entry);    
+		DEBUG("HISTORY ENTRY: %i\n", history_entry->_time_start);
+		// Add it and update the GUI
+		calllist_add (history, history_entry);
+		
+		// remove entry from map
+		g_hash_table_remove(entries, key_to_min);
+	    }
+	}
     }
 }
 
diff --git a/sflphone-common/src/history/historymanager.cpp b/sflphone-common/src/history/historymanager.cpp
index 1720e9018d..1fb5b99154 100644
--- a/sflphone-common/src/history/historymanager.cpp
+++ b/sflphone-common/src/history/historymanager.cpp
@@ -70,7 +70,6 @@ int HistoryManager::load_history_items_map (Conf::ConfigTree *history_list, int
     short nb_items = 0;
     Conf::TokenList sections;
     HistoryItem *item;
-    HistoryItemMap unsorted_map;
     Conf::TokenList::iterator iter;
     std::string number, name, accountID, timestamp_start, timestamp_stop;
     CallType type;
@@ -98,55 +97,17 @@ int HistoryManager::load_history_items_map (Conf::ConfigTree *history_list, int
 
         if (atoi (timestamp_start.c_str ()) >= ( (int) current_timestamp - history_limit)) {
             item = new HistoryItem (timestamp_start, type, timestamp_stop, name, number, accountID);
-            // add_new_history_entry (item);
-	    unsorted_map [item->get_timestamp ()] = item;
+            add_new_history_entry (item);
             nb_items ++;
         }
 
         iter ++;
     }
 
-    sort_and_fill_history_map(&unsorted_map);
-
     return nb_items;
 }
 
 
-bool HistoryManager::sort_and_fill_history_map(HistoryItemMap *unsorted_map)
-{
-    int max_timestamp = 0;
-    int timestamp;
-    std::string key;
-
-    while(unsorted_map->size() > 0) {
-
-        HistoryItemMap::iterator iter_item = unsorted_map->begin();
-
-	// find highest timestamp
-        while(iter_item != unsorted_map->end()) {
-
-	    timestamp = atoi(iter_item->first.c_str());
-	    _debug("-------------------------------------------------- timestamp: %i\n", timestamp);
-
-	    // save items as maximum
-	    if(timestamp > max_timestamp) { 
-	        max_timestamp = timestamp;
-		key = iter_item->first;
-	    }
-	    
-	    iter_item++;
-	}
-
-	iter_item = unsorted_map->find(key);
-	add_new_history_entry (iter_item->second);
-	unsorted_map->erase(iter_item);  
-    }
-
-    return true;
-
-}
-
-
 bool HistoryManager::save_history_to_file (Conf::ConfigTree *history_list)
 {
     _debug ("Saving history in XDG directory: %s", _history_path.data());
diff --git a/sflphone-common/src/history/historymanager.h b/sflphone-common/src/history/historymanager.h
index ccb6615f2e..b00b509c3c 100644
--- a/sflphone-common/src/history/historymanager.h
+++ b/sflphone-common/src/history/historymanager.h
@@ -116,8 +116,6 @@ class HistoryManager {
          */
         void add_new_history_entry (HistoryItem *new_item);
 
-	bool sort_and_fill_history_map(HistoryItemMap *unsorted_map);
-
         /*
          * Map containing the history items
          */
-- 
GitLab


From 7be613566347ad2492686a7774700dabf7f7b436 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 21 Dec 2009 17:28:15 -0500
Subject: [PATCH 116/188] [#2486] Add primitive to handle local interface by
 name

---
 sflphone-common/src/sip/sipvoiplink.cpp | 85 +++++++++++++++++++++++++
 sflphone-common/src/sip/sipvoiplink.h   | 22 +++++++
 2 files changed, 107 insertions(+)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index fb977d2608..4dc4d6d491 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -43,6 +43,11 @@
 #include <resolv.h>
 #include <istream>
 
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/ioctl.h>
+#include <linux/if.h>
+
 #define CAN_REINVITE        1
 
 static char * invitationStateMap[] = {
@@ -367,6 +372,38 @@ void get_remote_sdp_from_offer (pjsip_rx_data *rdata, pjmedia_sdp_session** r_sd
 }
 
 
+std::string getInterfaceAddrFromName(std::string ifaceName) {
+
+    struct ifreq ifr;
+    int fd;
+    int rval = 0;
+    int err;
+
+    struct sockaddr_in *saddr_in;
+    struct in_addr *addr_in;
+
+    if((fd = socket (AF_INET, SOCK_DGRAM,0)) < 0)
+        _debug("getInterfaceAddrFromName error could not open socket\n");
+
+    memset (&ifr, 0, sizeof (struct ifreq));
+
+    strcpy (ifr.ifr_name, ifaceName.c_str());
+    ifr.ifr_addr.sa_family = AF_INET;
+
+    if((err = ioctl(fd, SIOCGIFADDR, &ifr)) < 0)
+        _debug("getInterfaceAddrFromName use default interface (0.0.0.0)\n");
+
+    // printf("Local address: %s\n", inet_ntos( ((struct sockaddr_in *) &ifr.ifr_ifru.ifru_addr)->sin_addr ));
+    
+    saddr_in = (struct sockaddr_in *)&ifr.ifr_addr;
+    addr_in = &(saddr_in->sin_addr);
+
+    std::string addr(pj_inet_ntoa(*((pj_in_addr*)addr_in)));
+
+    return addr;
+}
+
+
 std::string SIPVoIPLink::get_useragent_name (void)
 {
     std::ostringstream  useragent;
@@ -4143,6 +4180,54 @@ std::vector<std::string> SIPVoIPLink::getAllIpInterface (void)
 }
 
 
+int get_iface_list(struct ifconf *ifconf)
+{
+   int sock, rval;
+
+   if((sock = socket(AF_INET,SOCK_STREAM,0)) < 0)
+       _debug("get_iface_list error could not open socket\n");
+
+
+   if((rval = ioctl(sock, SIOCGIFCONF , (char*) ifconf  )) < 0 )
+       _debug("get_iface_list error ioctl(SIOGIFCONF)\n");
+
+   close(sock);
+
+   return rval;
+}
+
+
+std::vector<std::string> SIPVoIPLink::getAllIpInterfaceByName(void)
+{
+    std::vector<std::string> ifaceList;
+
+    static struct ifreq ifreqs[20];
+    struct ifconf ifconf;
+    int  nifaces;
+
+    // add the default 
+    ifaceList.push_back(std::string("default"));
+
+    memset(&ifconf,0,sizeof(ifconf));
+    ifconf.ifc_buf = (char*) (ifreqs);
+    ifconf.ifc_len = sizeof(ifreqs);
+
+    if(get_iface_list(&ifconf) < 0)
+        _debug("getAllIpInterfaceByName error could not get interface list\n");
+
+    nifaces =  ifconf.ifc_len/sizeof(struct ifreq);
+
+    _debug("Interfaces (count = %d):\n", nifaces);
+    for(int i = 0; i < nifaces; i++) {
+        _debug("  %s  ", ifreqs[i].ifr_name);
+	ifaceList.push_back(std::string (ifreqs[i].ifr_name));
+	printf("    %s\n", getInterfaceAddrFromName(std::string (ifreqs[i].ifr_name)).c_str());
+    }
+
+    return ifaceList;   
+}
+
+
 pj_bool_t stun_sock_on_status (pj_stun_sock *stun_sock, pj_stun_sock_op op, pj_status_t status)
 {
     if (status == PJ_SUCCESS)
diff --git a/sflphone-common/src/sip/sipvoiplink.h b/sflphone-common/src/sip/sipvoiplink.h
index 4a9b8e3437..911cca0a96 100644
--- a/sflphone-common/src/sip/sipvoiplink.h
+++ b/sflphone-common/src/sip/sipvoiplink.h
@@ -292,6 +292,28 @@ class SIPVoIPLink : public VoIPLink
         std::vector<std::string> getAllIpInterface(void);
 
 
+       	/** 
+         * List all the interfaces on the system and return 
+         * a vector list containing their name (eth0, eth0:1 ...).
+         * @param void
+         * @return std::vector<std::string> A std::string vector
+         * of interface name available on all of the interfaces on
+         * the system.
+         */
+        std::vector<std::string> getAllIpInterfaceByName(void);
+
+
+	/** 
+         * List all the interfaces on the system and return 
+         * a vector list containing their name (eth0, eth0:1 ...).
+         * @param void
+         * @return std::vector<std::string> A std::string vector
+         * of interface name available on all of the interfaces on
+         * the system.
+         */
+	// std::string getInterfaceAddrFromName(std::string ifaceName);
+
+
 	/**
 	 * Initialize the transport selector
 	 * @param transport		A transport associated with an account
-- 
GitLab


From cd3d3d8bed9d2a91d63fdc3566dd58e8a78320bb Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Tue, 22 Dec 2009 15:00:21 -0500
Subject: [PATCH 117/188] [#2606] Fix transport fallback mechanism

---
 sflphone-common/src/sip/sipvoiplink.cpp | 79 +++++++++++++++++--------
 1 file changed, 53 insertions(+), 26 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 4dc4d6d491..a91f39e0eb 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -1410,10 +1410,13 @@ SIPVoIPLink::SIPStartCall (SIPCall* call, const std::string& subject UNUSED)
         return false;
     }
 
+    if(account->getAccountTransport()) {
+
     _debug("Sent invite request using transport: %s %s (refcnt=%d)",
 	               account->getAccountTransport()->obj_name,
 		       account->getAccountTransport()->info,
 	               (int)pj_atomic_get(account->getAccountTransport()->ref_cnt));
+    }
 
     return true;
 }
@@ -1822,47 +1825,50 @@ bool SIPVoIPLink::pjsip_init()
 
     bool directIpCallsTlsEnabled = false;
 
+    // Use IP2IP_PROFILE to init default udp transport settings
     account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (IP2IP_PROFILE));
 
-    if (account == NULL) {
-        _debug ("Account is null in pjsip init");
-        port = _regPort;
-    } else {
-        directIpCallsTlsEnabled = account->isTlsEnabled();
-        port = account->getLocalPort ();
-    }
-
-    // Create a UDP listener meant for all accounts
-    // for which TLS was not enabled
+    // Create a UDP listener meant for all accounts for which TLS was not enabled
+    // Cannot acquireTransport since default UDP transport must be created regardless of TLS
     errPjsip = createUDPServer(IP2IP_PROFILE);
 
+    if(account && (errPjsip == PJ_SUCCESS)) {
+
+        _debug("UserAgent: Initialized sip listener on port %d", account->getLocalPort ());
+        addTransportToMap(account->getTransportMapKey(), account->getAccountTransport());
+
+	// if account is not NULL, use IP2IP trasport as default one
+	_localUDPTransport = account->getAccountTransport();
+ 
+    }
     // If the above UDP server
     // could not be created, then give it another try
     // on a random sip port
-    if (errPjsip != PJ_SUCCESS) {
-        _debug ("UserAgent: Could not initialize SIP listener on port %d", port);
-        port = RANDOM_SIP_PORT;
+    else if (errPjsip != PJ_SUCCESS) {
+        _debug ("UserAgent: Could not initialize SIP listener on port %d", _regPort);
+        _regPort = RANDOM_SIP_PORT;
 
-        _debug ("UserAgent: Trying to initialize SIP listener on port %d", port);
+        _debug ("UserAgent: Trying to initialize SIP listener on port %d", _regPort);
+	// If no AccountID specified, pointer to transport is stored in _localUDPTransport 
         errPjsip = createUDPServer();
 
         if (errPjsip != PJ_SUCCESS) {
-            _debug ("UserAgent: Fail to initialize SIP listener on port %d", port);
+            _debug ("UserAgent: Fail to initialize SIP listener on port %d", _regPort);
             return errPjsip;
         }
     }
 
-    if(account && (errPjsip == PJ_SUCCESS)) {
-
-        addTransportToMap(account->getTransportMapKey(), account->getAccountTransport());
-
-	// if account is not NULL, use IP2IP trasport as default one
-	_localUDPTransport = account->getAccountTransport();
- 
-    }
+    acquireTransport(IP2IP_PROFILE);
 
+    /*
     // Create a TLS listener meant for Direct IP calls
     // if the user did enabled it.
+    if (account != NULL) {
+ 
+        directIpCallsTlsEnabled = account->isTlsEnabled();
+        port = account->getLocalPort ();
+
+    }
 
     if (directIpCallsTlsEnabled) {
         errPjsip = createTlsTransportRetryOnFailure (IP2IP_PROFILE);
@@ -1871,6 +1877,7 @@ bool SIPVoIPLink::pjsip_init()
     if (errPjsip != PJ_SUCCESS) {
         _debug ("pj_init(): could not start TLS transport for Direct Calls");
     }
+    */
 
     // TODO: For TLS, retry on random port, just we already do above
     // for UDP transport.
@@ -2082,7 +2089,16 @@ bool SIPVoIPLink::acquireTransport(const AccountID& accountID) {
 	else {
 
 	    // Transport could not either be created, socket not available
-	    _debug("Found transport (%s) in transport map", account->getTransportMapKey().c_str());
+	    _debug("Did not find transport (%s) in transport map", account->getTransportMapKey().c_str());
+	    _debug("Use default one instead");
+	    account->setAccountTransport(_localUDPTransport);
+
+	    std::string localHostName(_localUDPTransport->local_name.host.ptr, _localUDPTransport->local_name.host.slen);
+
+	    _debug("Use default one instead (%s:%i)", localHostName.c_str(), _localUDPTransport->local_name.port);
+
+	    account->setLocalAddress(localHostName);
+	    account->setLocalPort(_localUDPTransport->local_name.port);
 
 	    // Transport could not either be created or found in the map, socket not available
 	    return false;
@@ -2195,12 +2211,20 @@ int SIPVoIPLink::createUDPServer (AccountID id)
      * Retrieve the account information
      */
     SIPAccount * account = NULL;
-    account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (id));
+
+    // if account id is not specified, init _localUDPTransport
+    if (id != "") {
+
+        account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (id));
+    }
 
     // Set information to the local address and port
     if (account == NULL) {
+
         _debug ("Account with id \"%s\" is null in createUDPServer.", id.c_str());
+
     } else {
+
         // We are trying to initialize a UDP transport available for all local accounts and direct IP calls
         _debug("Found account %s in map", account->getAccountID().c_str());
 
@@ -2267,7 +2291,10 @@ int SIPVoIPLink::createUDPServer (AccountID id)
 	}
     }
 
-    _debug ("Transport initialized successfully on %s:%i", listeningAddress.c_str (), listeningPort);
+    if (status == PJ_SUCCESS) {
+        _debug ("Transport initialized successfully on %s:%i", listeningAddress.c_str (), listeningPort);
+
+    }
 
     return PJ_SUCCESS;
 }
-- 
GitLab


From fdf1dfb840b27b81b2cc39d36ef069ce55bbed4f Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Tue, 22 Dec 2009 17:20:30 -0500
Subject: [PATCH 118/188] [#2606] Clean up redundant debug messages

---
 sflphone-common/src/sip/sipvoiplink.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index a91f39e0eb..87d0d7b100 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -2090,7 +2090,7 @@ bool SIPVoIPLink::acquireTransport(const AccountID& accountID) {
 
 	    // Transport could not either be created, socket not available
 	    _debug("Did not find transport (%s) in transport map", account->getTransportMapKey().c_str());
-	    _debug("Use default one instead");
+
 	    account->setAccountTransport(_localUDPTransport);
 
 	    std::string localHostName(_localUDPTransport->local_name.host.ptr, _localUDPTransport->local_name.host.slen);
-- 
GitLab


From 52badabc743b925c7b981952d78cc20a837191a2 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Tue, 22 Dec 2009 18:00:57 -0500
Subject: [PATCH 119/188] [#2486] Add dbus methods to get interface by names

---
 .../src/config/accountconfigdialog.c          |  1 +
 .../src/config/preferencesdialog.c            |  1 +
 .../dbus/configurationmanager-introspec.xml   |  5 ++++
 sflphone-client-gnome/src/dbus/dbus.c         | 24 +++++++++++++++++++
 sflphone-client-gnome/src/dbus/dbus.h         |  5 ++++
 .../dbus/configurationmanager-introspec.xml   |  5 ++++
 .../src/dbus/configurationmanager.cpp         | 15 ++++++++++++
 .../src/dbus/configurationmanager.h           |  1 +
 8 files changed, 57 insertions(+)

diff --git a/sflphone-client-gnome/src/config/accountconfigdialog.c b/sflphone-client-gnome/src/config/accountconfigdialog.c
index 84e2150b94..0ac11ca5a1 100644
--- a/sflphone-client-gnome/src/config/accountconfigdialog.c
+++ b/sflphone-client-gnome/src/config/accountconfigdialog.c
@@ -834,6 +834,7 @@ GtkWidget * create_advanced_tab(account_t **a)
 	GtkTreeIter current_local_address_iter = iter;   
 	gchar ** iface_list = NULL;
 	iface_list = (gchar**) dbus_get_all_ip_interface();
+	// iface_list = (gchar**) dbus_get_all_ip_interface_by_name();
 	gchar ** iface = NULL;
     
 	// flag to determine if local_address is found 
diff --git a/sflphone-client-gnome/src/config/preferencesdialog.c b/sflphone-client-gnome/src/config/preferencesdialog.c
index 93c1982f7d..ae34fb9549 100644
--- a/sflphone-client-gnome/src/config/preferencesdialog.c
+++ b/sflphone-client-gnome/src/config/preferencesdialog.c
@@ -253,6 +253,7 @@ GtkWidget* create_direct_ip_calls_tab()
 	GtkTreeIter current_local_address_iter = iter;   
 	gchar ** iface_list = NULL;
 	iface_list = (gchar**) dbus_get_all_ip_interface();
+	// iface_list = (gchar**) dbus_get_all_ip_interface_by_name();
 	gchar ** iface;
 
 	gboolean iface_found = FALSE;
diff --git a/sflphone-client-gnome/src/dbus/configurationmanager-introspec.xml b/sflphone-client-gnome/src/dbus/configurationmanager-introspec.xml
index 4a1e2c286f..4b77337df8 100644
--- a/sflphone-client-gnome/src/dbus/configurationmanager-introspec.xml
+++ b/sflphone-client-gnome/src/dbus/configurationmanager-introspec.xml
@@ -374,6 +374,11 @@
       <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
       <arg type="as" name="list" direction="out"/>
     </method>
+
+    <method name="getAllIpInterfaceByName">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+      <arg type="as" name="list" direction="out"/>
+    </method>
     
   </interface>
 </node>
diff --git a/sflphone-client-gnome/src/dbus/dbus.c b/sflphone-client-gnome/src/dbus/dbus.c
index a00c4134f1..2158cc1288 100644
--- a/sflphone-client-gnome/src/dbus/dbus.c
+++ b/sflphone-client-gnome/src/dbus/dbus.c
@@ -2382,3 +2382,27 @@ gchar ** dbus_get_all_ip_interface(void)
     }
 }
 
+gchar ** dbus_get_all_ip_interface_by_name(void)
+{
+    GError *error = NULL;
+    gchar ** array;
+
+    if(!org_sflphone_SFLphone_ConfigurationManager_get_all_ip_interface_by_name ( configurationManagerProxy, &array, &error))
+    {
+        if(error->domain == DBUS_GERROR && error->code == DBUS_GERROR_REMOTE_EXCEPTION)
+        {
+            ERROR ("Caught remote method (get_all_ip_interface) exception  %s: %s", dbus_g_error_get_name(error), error->message);
+        }
+        else
+        {
+            ERROR("Error while calling get_all_ip_interface: %s", error->message);
+        }
+        g_error_free (error);
+        return NULL;
+    }
+    else{
+        DEBUG ("DBus called get_all_ip_interface() on ConfigurationManager");
+        return array;
+    }
+}
+
diff --git a/sflphone-client-gnome/src/dbus/dbus.h b/sflphone-client-gnome/src/dbus/dbus.h
index bb6d57a3b6..f4dcc59da9 100644
--- a/sflphone-client-gnome/src/dbus/dbus.h
+++ b/sflphone-client-gnome/src/dbus/dbus.h
@@ -520,6 +520,11 @@ void dbus_set_addressbook_list (const gchar** list);
  */
 gchar** dbus_get_all_ip_interface(void);
 
+/**
+ * Query the daemon to return a list of network interface (described as there name)
+ */
+gchar** dbus_get_all_ip_interface_by_name(void);
+
 /**
  * Encapsulate all the url hook-related configuration
  * Get the configuration
diff --git a/sflphone-common/src/dbus/configurationmanager-introspec.xml b/sflphone-common/src/dbus/configurationmanager-introspec.xml
index 4a1e2c286f..4b77337df8 100644
--- a/sflphone-common/src/dbus/configurationmanager-introspec.xml
+++ b/sflphone-common/src/dbus/configurationmanager-introspec.xml
@@ -374,6 +374,11 @@
       <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
       <arg type="as" name="list" direction="out"/>
     </method>
+
+    <method name="getAllIpInterfaceByName">
+      <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+      <arg type="as" name="list" direction="out"/>
+    </method>
     
   </interface>
 </node>
diff --git a/sflphone-common/src/dbus/configurationmanager.cpp b/sflphone-common/src/dbus/configurationmanager.cpp
index e381e6d13d..7b13da09a8 100644
--- a/sflphone-common/src/dbus/configurationmanager.cpp
+++ b/sflphone-common/src/dbus/configurationmanager.cpp
@@ -789,3 +789,18 @@ std::vector<std::string> ConfigurationManager::getAllIpInterface (void)
 
     return vector;
 }
+
+std::vector<std::string> ConfigurationManager::getAllIpInterfaceByName(void)
+{
+    _debug ("ConfigurationManager::getAllIpInterface received\n");
+
+    std::vector<std::string> vector;
+    SIPVoIPLink * sipLink = NULL;
+    sipLink = SIPVoIPLink::instance ("");
+
+    if (sipLink != NULL) {
+        vector = sipLink->getAllIpInterfaceByName();
+    }
+
+    return vector;
+}
diff --git a/sflphone-common/src/dbus/configurationmanager.h b/sflphone-common/src/dbus/configurationmanager.h
index 98a7441c62..4da05f8126 100644
--- a/sflphone-common/src/dbus/configurationmanager.h
+++ b/sflphone-common/src/dbus/configurationmanager.h
@@ -133,6 +133,7 @@ public:
     void setTlsSettings(const std::string& accountID, const std::map< std::string, std::string >& details);
     
     std::vector<std::string> getAllIpInterface(void);
+    std::vector<std::string> getAllIpInterfaceByName(void);
 };
 
 
-- 
GitLab


From eaa5b37197f04ee749daeebad67ea2163f86c028 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Tue, 22 Dec 2009 18:25:57 -0500
Subject: [PATCH 120/188] [#2486] Bind transports to specific interfaces

---
 .../src/config/accountconfigdialog.c          |  4 +--
 .../src/config/preferencesdialog.c            |  4 +--
 sflphone-common/src/sip/sipvoiplink.cpp       | 36 ++++++++++++-------
 3 files changed, 28 insertions(+), 16 deletions(-)

diff --git a/sflphone-client-gnome/src/config/accountconfigdialog.c b/sflphone-client-gnome/src/config/accountconfigdialog.c
index 0ac11ca5a1..327f356ead 100644
--- a/sflphone-client-gnome/src/config/accountconfigdialog.c
+++ b/sflphone-client-gnome/src/config/accountconfigdialog.c
@@ -833,8 +833,8 @@ GtkWidget * create_advanced_tab(account_t **a)
 			
 	GtkTreeIter current_local_address_iter = iter;   
 	gchar ** iface_list = NULL;
-	iface_list = (gchar**) dbus_get_all_ip_interface();
-	// iface_list = (gchar**) dbus_get_all_ip_interface_by_name();
+	// iface_list = (gchar**) dbus_get_all_ip_interface();
+	iface_list = (gchar**) dbus_get_all_ip_interface_by_name();
 	gchar ** iface = NULL;
     
 	// flag to determine if local_address is found 
diff --git a/sflphone-client-gnome/src/config/preferencesdialog.c b/sflphone-client-gnome/src/config/preferencesdialog.c
index ae34fb9549..fddc259eed 100644
--- a/sflphone-client-gnome/src/config/preferencesdialog.c
+++ b/sflphone-client-gnome/src/config/preferencesdialog.c
@@ -252,8 +252,8 @@ GtkWidget* create_direct_ip_calls_tab()
 
 	GtkTreeIter current_local_address_iter = iter;   
 	gchar ** iface_list = NULL;
-	iface_list = (gchar**) dbus_get_all_ip_interface();
-	// iface_list = (gchar**) dbus_get_all_ip_interface_by_name();
+	// iface_list = (gchar**) dbus_get_all_ip_interface();
+	iface_list = (gchar**) dbus_get_all_ip_interface_by_name();
 	gchar ** iface;
 
 	gboolean iface_found = FALSE;
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 87d0d7b100..87e546317c 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -741,7 +741,7 @@ SIPVoIPLink::newOutgoingCall (const CallID& id, const std::string& toUrl)
 
         call->setPeerNumber (toUri);
 
-        localAddr = account->getLocalAddress ();
+        localAddr = getInterfaceAddrFromName(account->getLocalAddress ());
 
         if (localAddr == "0.0.0.0")
             loadSIPLocalIP (&localAddr);
@@ -749,7 +749,7 @@ SIPVoIPLink::newOutgoingCall (const CallID& id, const std::string& toUrl)
         setCallAudioLocal (call, localAddr);
 
         // May use the published address as well
-        account->isStunEnabled () ? addrSdp = account->getPublishedAddress () : addrSdp = account->getLocalAddress ();
+        account->isStunEnabled () ? addrSdp = account->getPublishedAddress () : addrSdp = getInterfaceAddrFromName(account->getLocalAddress ());
 
         if (addrSdp == "0.0.0.0")
             loadSIPLocalIP (&addrSdp);
@@ -1541,9 +1541,9 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
         }
 
 	// Set the local address
-	localAddress = account->getLocalAddress ();
+	localAddress = getInterfaceAddrFromName(account->getLocalAddress ());
         // Set SDP parameters - Set to local or published address
-	account->isStunEnabled () ? addrSdp = account->getPublishedAddress () :  addrSdp = account->getLocalAddress ();
+	account->isStunEnabled () ? addrSdp = account->getPublishedAddress () :  addrSdp = getInterfaceAddrFromName(account->getLocalAddress ());
 
         _debug ("new_ip_to_ip_call localAddress: %s", localAddress.c_str());
 
@@ -2228,16 +2228,28 @@ int SIPVoIPLink::createUDPServer (AccountID id)
         // We are trying to initialize a UDP transport available for all local accounts and direct IP calls
         _debug("Found account %s in map", account->getAccountID().c_str());
 
-        if (account->getLocalAddress () != "0.0.0.0") {
-            listeningAddress = account->getLocalAddress ();
+        if (account->getLocalAddress () != "default") {
+            listeningAddress = getInterfaceAddrFromName(account->getLocalAddress());
         }
 
         listeningPort = account->getLocalPort ();
     }
 
-    // Init bound address to ANY
     pj_memset (&bound_addr, 0, sizeof (bound_addr));
-    bound_addr.sin_addr.s_addr = pj_htonl (PJ_INADDR_ANY);
+
+    pj_str_t temporary_address;
+
+    // Init bound address to ANY
+    if (account && account->getLocalAddress () == "default") {
+
+        bound_addr.sin_addr.s_addr = pj_htonl (PJ_INADDR_ANY);
+    }
+    else {
+        // bind this account to a specific interface
+        pj_strdup2(_pool, &temporary_address, listeningAddress.c_str());
+	bound_addr.sin_addr = pj_inet_addr(&temporary_address);
+    }
+
     bound_addr.sin_port = pj_htons ( (pj_uint16_t) listeningPort);
     bound_addr.sin_family = PJ_AF_INET;
     pj_bzero (bound_addr.sin_zero, sizeof (bound_addr.sin_zero));
@@ -2678,11 +2690,11 @@ pj_status_t SIPVoIPLink::createTlsTransport (AccountID id)
         local_addr.sin_port = pj_htons (localTlsPort);
     }
 
-    std::string localAddress = account->getLocalAddress();
+    std::string localAddress = getInterfaceAddrFromName(account->getLocalAddress());
 
     if (!localAddress.empty()) {
         pj_str_t pjAddress;
-        pj_cstr (&pjAddress, (account->getLocalAddress()).c_str());
+        pj_cstr (&pjAddress, (getInterfaceAddrFromName(account->getLocalAddress())).c_str());
 
         pj_status_t success;
         success = pj_sockaddr_in_set_str_addr (&local_addr, &pjAddress);
@@ -3488,8 +3500,8 @@ mod_on_rx_request (pjsip_rx_data *rdata)
 
         // May use the published address as well
 
-        addrToUse = account->getLocalAddress ();
-	account->isStunEnabled () ? addrSdp = account->getPublishedAddress () : addrSdp = account->getLocalAddress ();		
+        addrToUse = getInterfaceAddrFromName(account->getLocalAddress ());
+	account->isStunEnabled () ? addrSdp = account->getPublishedAddress () : addrSdp = getInterfaceAddrFromName(account->getLocalAddress ());		
 	// Set the appropriate transport to have the right VIA header
 	link->init_transport_selector (account->getAccountTransport (), &tp);
 
-- 
GitLab


From 2cbd6788372ee8ee0dce36e79b1405cb98d8ce29 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 4 Jan 2010 11:22:58 -0500
Subject: [PATCH 121/188] [#2623] Add interface name in account

---
 sflphone-common/src/sip/sipaccount.h | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/sflphone-common/src/sip/sipaccount.h b/sflphone-common/src/sip/sipaccount.h
index 58c3d1dc24..db4dbb17ff 100644
--- a/sflphone-common/src/sip/sipaccount.h
+++ b/sflphone-common/src/sip/sipaccount.h
@@ -196,6 +196,17 @@ class SIPAccount : public Account
          */
         std::string getContactHeader(const std::string& address, const std::string& port);
 
+	/**
+	 * Set the interface name on which this account is bound, "default" means 
+	 * that the account is bound to the ANY interafec (0.0.0.0). This method should be
+	 * when binding the account to a new sip transport only.
+	 */
+	inline voidsetLocalInterface(const std::string interface&) {_interface = interface;}
+
+	/**
+	 * Get the local interface name on which this account is bound.
+	 */
+	inline std::string getLocalInterface(void) { return _interface; }
 
 	/**
 	 * Get a flag which determine the usage in sip headers of either the local 
@@ -328,6 +339,9 @@ class SIPAccount : public Account
         // Network settings
         std::string _registrationExpire;
 
+	// interface name on which this account is bound
+	std::string _interface;
+
 	// Flag which determine if _localIpAddress or _publishedIpAddress is used in 
         // sip headers
 	bool _publishedSameasLocal;
-- 
GitLab


From db2b154978516e1905c790696ea9d7afca51bcec Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 4 Jan 2010 12:20:18 -0500
Subject: [PATCH 122/188] [#2623] Add local interface field in account
 configuration file

---
 sflphone-common/src/account.h          | 1 +
 sflphone-common/src/managerimpl.cpp    | 7 +++++++
 sflphone-common/src/sip/sipaccount.cpp | 5 ++++-
 sflphone-common/src/sip/sipaccount.h   | 2 +-
 4 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/sflphone-common/src/account.h b/sflphone-common/src/account.h
index c7c0424537..22dc6341b7 100644
--- a/sflphone-common/src/account.h
+++ b/sflphone-common/src/account.h
@@ -70,6 +70,7 @@ typedef enum RegistrationState {
 #define REALM                               "realm"
 #define DEFAULT_REALM                       "*"
 
+#define LOCAL_INTERFACE                     "Account.localInterface"
 #define PUBLISHED_SAMEAS_LOCAL              "Account.publishedSameAsLocal"
 #define LOCAL_PORT                          "Account.localPort"
 #define LOCAL_ADDRESS                       "Account.localAddress"
diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index a409aa5a6d..29dcc62fd9 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -2266,6 +2266,7 @@ ManagerImpl::initConfigFile (bool load_user_value, std::string alternate)
     _config.addDefaultValue (std::pair<std::string, std::string> (TLS_REQUIRE_CLIENT_CERTIFICATE, TRUE_STR), IP2IP_PROFILE);
     _config.addDefaultValue (std::pair<std::string, std::string> (TLS_NEGOTIATION_TIMEOUT_SEC, "2"), IP2IP_PROFILE);
     _config.addDefaultValue (std::pair<std::string, std::string> (TLS_NEGOTIATION_TIMEOUT_MSEC, "0"), IP2IP_PROFILE);
+    _config.addDefaultValue (std::pair<std::string, std::string> (LOCAL_INTERFACE, "default"), IP2IP_PROFILE);
     _config.addDefaultValue (std::pair<std::string, std::string> (PUBLISHED_SAMEAS_LOCAL, TRUE_STR), IP2IP_PROFILE);
     _config.addDefaultValue (std::pair<std::string, std::string> (LOCAL_PORT, DEFAULT_SIP_PORT), IP2IP_PROFILE);
     _config.addDefaultValue (std::pair<std::string, std::string> (PUBLISHED_PORT, DEFAULT_SIP_PORT), IP2IP_PROFILE);
@@ -3769,6 +3770,7 @@ void ManagerImpl::setAccountDetails (const std::string& accountID, const std::ma
 
     std::string hostname;
     std::string displayName;
+    std::string localInterface;
     std::string publishedSameasLocal;
     std::string localAddress;
     std::string publishedAddress;
@@ -3805,6 +3807,10 @@ void ManagerImpl::setAccountDetails (const std::string& accountID, const std::ma
         displayName = iter->second;
     }
 
+    if ( (iter = map_cpy.find (LOCAL_INTERFACE)) != map_cpy.end()) {
+        localInterface = iter->second;
+    }
+
     if ( (iter = map_cpy.find (PUBLISHED_SAMEAS_LOCAL)) != map_cpy.end()) {
         publishedSameasLocal = iter->second;
     }
@@ -3935,6 +3941,7 @@ void ManagerImpl::setAccountDetails (const std::string& accountID, const std::ma
 
     setConfig (accountID, HOSTNAME, hostname);
 
+    setConfig (accountID, LOCAL_INTERFACE, localInterface);
     setConfig (accountID, PUBLISHED_SAMEAS_LOCAL, publishedSameasLocal);
     setConfig (accountID, LOCAL_ADDRESS, localAddress);
     setConfig (accountID, PUBLISHED_ADDRESS, publishedAddress);
diff --git a/sflphone-common/src/sip/sipaccount.cpp b/sflphone-common/src/sip/sipaccount.cpp
index 8c624d036b..60085f54af 100644
--- a/sflphone-common/src/sip/sipaccount.cpp
+++ b/sflphone-common/src/sip/sipaccount.cpp
@@ -341,8 +341,11 @@ void SIPAccount::loadConfig()
 
     // Load network settings
     // Local parameters
-    std::string localPort = Manager::instance().getConfigString (_accountID, LOCAL_PORT);
 
+    // Load local interface
+    setLocalInterface(Manager::instance().getConfigString (_accountID, LOCAL_INTERFACE));
+
+    std::string localPort = Manager::instance().getConfigString (_accountID, LOCAL_PORT);
     setLocalPort (atoi (localPort.c_str()));
 
     // Do not store or use IP address in config as this address may change
diff --git a/sflphone-common/src/sip/sipaccount.h b/sflphone-common/src/sip/sipaccount.h
index db4dbb17ff..855fbe39e4 100644
--- a/sflphone-common/src/sip/sipaccount.h
+++ b/sflphone-common/src/sip/sipaccount.h
@@ -201,7 +201,7 @@ class SIPAccount : public Account
 	 * that the account is bound to the ANY interafec (0.0.0.0). This method should be
 	 * when binding the account to a new sip transport only.
 	 */
-	inline voidsetLocalInterface(const std::string interface&) {_interface = interface;}
+	inline void setLocalInterface(const std::string& interface) {_interface = interface;}
 
 	/**
 	 * Get the local interface name on which this account is bound.
-- 
GitLab


From ef7f067d93c99610cba031a0f6a1666ef280dae1 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 4 Jan 2010 14:19:34 -0500
Subject: [PATCH 123/188] [#2623] Load local interface in account configuration
 dialog

---
 .../src/config/accountconfigdialog.c                | 13 +++++++++++--
 .../src/config/preferencesdialog.c                  |  9 ++++++---
 sflphone-client-gnome/src/sflphone_const.h          |  1 +
 sflphone-common/src/dbus/configurationmanager.cpp   |  7 +++++++
 sflphone-common/src/managerimpl.cpp                 |  1 +
 5 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/sflphone-client-gnome/src/config/accountconfigdialog.c b/sflphone-client-gnome/src/config/accountconfigdialog.c
index 327f356ead..02b19959f8 100644
--- a/sflphone-client-gnome/src/config/accountconfigdialog.c
+++ b/sflphone-client-gnome/src/config/accountconfigdialog.c
@@ -757,6 +757,7 @@ GtkWidget * create_advanced_tab(account_t **a)
 	gchar * use_tls;
 	gchar * published_address;
 	gchar * published_port;
+	gchar * local_interface;
 	gchar * local_address;
 	gchar * local_port;
 	gchar * stun_enable;    
@@ -772,6 +773,9 @@ GtkWidget * create_advanced_tab(account_t **a)
 
 		published_sameas_local = g_hash_table_lookup(currentAccount->properties,  PUBLISHED_SAMEAS_LOCAL);
 
+		local_interface = g_hash_table_lookup(currentAccount->properties, LOCAL_INTERFACE);
+
+
 		local_port = g_hash_table_lookup(currentAccount->properties, LOCAL_PORT);
 		local_address = g_hash_table_lookup(currentAccount->properties,  LOCAL_ADDRESS);
 
@@ -849,7 +853,7 @@ GtkWidget * create_advanced_tab(account_t **a)
             gtk_list_store_set(ipInterfaceListStore, &iter, 0, *iface, -1 );
 
 	    // set the current local address
-	    if (!iface_found && (g_strcmp0(*iface, local_address) == 0)) {
+	    if (!iface_found && (g_strcmp0(*iface, local_interface) == 0)) {
                 DEBUG("Setting active local address combo box");
                 current_local_address_iter = iter;
 		iface_found = TRUE;
@@ -1114,9 +1118,13 @@ show_account_window (account_t * a)
 
 			g_hash_table_replace(currentAccount->properties, g_strdup(PUBLISHED_SAMEAS_LOCAL), g_strdup(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sameAsLocalRadioButton)) ? "true":"false"));	
 
+			g_hash_table_replace(currentAccount->properties,
+    				g_strdup(LOCAL_INTERFACE),
+			        g_strdup((gchar *)gtk_combo_box_get_active_text(GTK_COMBO_BOX(localAddressCombo))));
+
 			g_hash_table_replace(currentAccount->properties,
     				g_strdup(LOCAL_PORT),
-    				g_strdup((gchar *)gtk_entry_get_text(GTK_ENTRY(localPortSpinBox))));	
+			        g_strdup((gchar *)gtk_entry_get_text(GTK_ENTRY(localPortSpinBox))));
 
 			g_hash_table_replace(currentAccount->properties,
     				g_strdup(LOCAL_ADDRESS),
@@ -1136,6 +1144,7 @@ show_account_window (account_t * a)
 			   g_hash_table_replace(currentAccount->properties,
 						 g_strdup(PUBLISHED_PORT),
 						 g_strdup((gchar *)gtk_entry_get_text(GTK_ENTRY(localPortSpinBox))));
+			   
 
 			   g_hash_table_replace(currentAccount->properties,
 						 g_strdup(PUBLISHED_ADDRESS),
diff --git a/sflphone-client-gnome/src/config/preferencesdialog.c b/sflphone-client-gnome/src/config/preferencesdialog.c
index fddc259eed..13257f4c91 100644
--- a/sflphone-client-gnome/src/config/preferencesdialog.c
+++ b/sflphone-client-gnome/src/config/preferencesdialog.c
@@ -165,7 +165,7 @@ static void use_sip_tls_cb(GtkWidget *widget, gpointer data)
 static void ip2ip_local_address_changed_cb(GtkWidget *widget, gpointer data)
 {
 	DEBUG("ip2ip_local_address_changed_cb\n");
-	g_hash_table_replace(directIpCallsProperties, g_strdup(LOCAL_ADDRESS), g_strdup((gchar *)gtk_combo_box_get_active_text(GTK_COMBO_BOX(widget))));
+	g_hash_table_replace(directIpCallsProperties, g_strdup(LOCAL_INTERFACE), g_strdup((gchar *)gtk_combo_box_get_active_text(GTK_COMBO_BOX(widget))));
 }
 
 static void ip2ip_local_port_changed_cb(GtkWidget *widget, gpointer data)
@@ -199,6 +199,7 @@ GtkWidget* create_direct_ip_calls_tab()
 	gchar * curKeyExchange = "0";
 	gchar * description;
 
+	gchar * local_interface;
 	gchar * local_address;
 	gchar * local_port;
 
@@ -207,8 +208,10 @@ GtkWidget* create_direct_ip_calls_tab()
 
 	if(directIpCallsProperties != NULL) {
 		DEBUG("got a directIpCallsProperties");
+		local_interface = g_hash_table_lookup(directIpCallsProperties, LOCAL_INTERFACE);
 		local_address = g_hash_table_lookup(directIpCallsProperties,  LOCAL_ADDRESS);
 		local_port = g_hash_table_lookup(directIpCallsProperties, LOCAL_PORT);
+		DEBUG("    local interface = %s", local_interface);
 		DEBUG("    local address = %s", local_address);
 		DEBUG("    local port = %s", local_port);
 		curSRTPEnabled = g_hash_table_lookup(directIpCallsProperties, ACCOUNT_SRTP_ENABLED);
@@ -264,7 +267,7 @@ GtkWidget* create_direct_ip_calls_tab()
 			gtk_list_store_append(ipInterfaceListStore, &iter );
 			gtk_list_store_set(ipInterfaceListStore, &iter, 0, *iface, -1 );
 
-			if (!iface_found && (g_strcmp0(*iface, local_address) == 0)) {
+			if (!iface_found && (g_strcmp0(*iface, local_interface) == 0)) {
 				DEBUG("Setting active local address combo box");
 				current_local_address_iter = iter;
 				iface_found = TRUE;
@@ -292,7 +295,7 @@ GtkWidget* create_direct_ip_calls_tab()
 	gtk_combo_box_set_active_iter(GTK_COMBO_BOX(localAddressCombo), &current_local_address_iter);
 	g_signal_connect (G_OBJECT(GTK_COMBO_BOX(localAddressCombo)), "changed", G_CALLBACK (ip2ip_local_address_changed_cb), localAddressCombo);
 
-	g_hash_table_replace(directIpCallsProperties, g_strdup(LOCAL_ADDRESS), g_strdup((gchar *)gtk_combo_box_get_active_text(GTK_COMBO_BOX(localAddressCombo))));
+	g_hash_table_replace(directIpCallsProperties, g_strdup(LOCAL_INTERFACE), g_strdup((gchar *)gtk_combo_box_get_active_text(GTK_COMBO_BOX(localAddressCombo))));
 
 
 	/**
diff --git a/sflphone-client-gnome/src/sflphone_const.h b/sflphone-client-gnome/src/sflphone_const.h
index b63a3e17e1..485e755dc0 100644
--- a/sflphone-client-gnome/src/sflphone_const.h
+++ b/sflphone-client-gnome/src/sflphone_const.h
@@ -88,6 +88,7 @@
 #define TLS_NEGOTIATION_TIMEOUT_SEC         "TLS.negotiationTimeoutSec"
 #define TLS_NEGOTIATION_TIMEOUT_MSEC        "TLS.negotiationTimemoutMsec"
 
+#define LOCAL_INTERFACE                     "Account.localInterface"
 #define PUBLISHED_SAMEAS_LOCAL              "Account.publishedSameAsLocal"
 #define LOCAL_PORT                          "Account.localPort"
 #define LOCAL_ADDRESS                       "Account.localAddress"
diff --git a/sflphone-common/src/dbus/configurationmanager.cpp b/sflphone-common/src/dbus/configurationmanager.cpp
index 7b13da09a8..05fdc738f3 100644
--- a/sflphone-common/src/dbus/configurationmanager.cpp
+++ b/sflphone-common/src/dbus/configurationmanager.cpp
@@ -77,6 +77,7 @@ ConfigurationManager::getIp2IpDetails (void)
     ip2ipAccountDetails.insert (std::pair<std::string, std::string> (ZRTP_NOT_SUPP_WARNING, Manager::instance().getConfigString (IP2IP_PROFILE, ZRTP_NOT_SUPP_WARNING)));
     ip2ipAccountDetails.insert (std::pair<std::string, std::string> (ZRTP_DISPLAY_SAS_ONCE, Manager::instance().getConfigString (IP2IP_PROFILE, ZRTP_DISPLAY_SAS_ONCE)));
 
+    ip2ipAccountDetails.insert (std::pair<std::string, std::string> (LOCAL_INTERFACE, Manager::instance().getConfigString(IP2IP_PROFILE, LOCAL_INTERFACE)));
     ip2ipAccountDetails.insert (std::pair<std::string, std::string> (LOCAL_ADDRESS, Manager::instance().getConfigString (IP2IP_PROFILE, LOCAL_ADDRESS)));
     ip2ipAccountDetails.insert (std::pair<std::string, std::string> (LOCAL_PORT, Manager::instance().getConfigString (IP2IP_PROFILE, LOCAL_PORT)));
 
@@ -94,6 +95,12 @@ ConfigurationManager::setIp2IpDetails (const std::map< std::string, std::string
     std::map<std::string, std::string> map_cpy = details;
     std::map<std::string, std::string>::iterator it;
 
+    it = map_cpy.find (LOCAL_INTERFACE);
+
+    if (it != details.end()) {
+        Manager::instance().setConfig (IP2IP_PROFILE, LOCAL_INTERFACE, it->second);
+    }
+
     it = map_cpy.find (LOCAL_ADDRESS);
 
     if (it != details.end()) {
diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index 29dcc62fd9..d4cd94ab24 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -3536,6 +3536,7 @@ std::map< std::string, std::string > ManagerImpl::getAccountDetails (const Accou
     a.insert (std::pair<std::string, std::string> (AUTHENTICATION_USERNAME, getConfigString (accountID, AUTHENTICATION_USERNAME)));
     a.insert (std::pair<std::string, std::string> (CONFIG_ACCOUNT_MAILBOX, getConfigString (accountID, CONFIG_ACCOUNT_MAILBOX)));
     a.insert (std::pair<std::string, std::string> (CONFIG_ACCOUNT_REGISTRATION_EXPIRE, getConfigString (accountID, CONFIG_ACCOUNT_REGISTRATION_EXPIRE)));
+    a.insert (std::pair<std::string, std::string> (LOCAL_INTERFACE, getConfigString (accountID, LOCAL_INTERFACE)));
     a.insert (std::pair<std::string, std::string> (PUBLISHED_SAMEAS_LOCAL, getConfigString (accountID, PUBLISHED_SAMEAS_LOCAL)));
     a.insert (std::pair<std::string, std::string> (LOCAL_ADDRESS, getConfigString (accountID, LOCAL_ADDRESS)));
     a.insert (std::pair<std::string, std::string> (PUBLISHED_ADDRESS, getConfigString (accountID, PUBLISHED_ADDRESS)));
-- 
GitLab


From cb967d302072cef88b0689885a9f0c69cd41e850 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 4 Jan 2010 14:54:10 -0500
Subject: [PATCH 124/188] [#2623] Use interface instead of local address in
 CreateUDPServer

---
 sflphone-common/src/sip/sipvoiplink.cpp | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 87e546317c..92fb8973cc 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -2229,7 +2229,7 @@ int SIPVoIPLink::createUDPServer (AccountID id)
         _debug("Found account %s in map", account->getAccountID().c_str());
 
         if (account->getLocalAddress () != "default") {
-            listeningAddress = getInterfaceAddrFromName(account->getLocalAddress());
+            listeningAddress = getInterfaceAddrFromName(account->getLocalInterface());
         }
 
         listeningPort = account->getLocalPort ();
@@ -2239,13 +2239,14 @@ int SIPVoIPLink::createUDPServer (AccountID id)
 
     pj_str_t temporary_address;
 
-    // Init bound address to ANY
-    if (account && account->getLocalAddress () == "default") {
+    if (account && account->getLocalInterface () == "default") {
 
+        // Init bound address to ANY
         bound_addr.sin_addr.s_addr = pj_htonl (PJ_INADDR_ANY);
     }
     else {
-        // bind this account to a specific interface
+
+        // bind this account to a specific interface        
         pj_strdup2(_pool, &temporary_address, listeningAddress.c_str());
 	bound_addr.sin_addr = pj_inet_addr(&temporary_address);
     }
-- 
GitLab


From 24b36777de24908a0f1cfff729ef04b74a79f525 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 4 Jan 2010 15:36:30 -0500
Subject: [PATCH 125/188] [#2623] Add getInterfaceAddrFromName into SIPVoIPLink
 namespace

---
 sflphone-common/src/sip/sipvoiplink.cpp | 22 +++++++++++-----------
 sflphone-common/src/sip/sipvoiplink.h   |  2 +-
 2 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 92fb8973cc..8e40585318 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -372,7 +372,7 @@ void get_remote_sdp_from_offer (pjsip_rx_data *rdata, pjmedia_sdp_session** r_sd
 }
 
 
-std::string getInterfaceAddrFromName(std::string ifaceName) {
+std::string SIPVoIPLink::getInterfaceAddrFromName(std::string ifaceName) {
 
     struct ifreq ifr;
     int fd;
@@ -741,7 +741,7 @@ SIPVoIPLink::newOutgoingCall (const CallID& id, const std::string& toUrl)
 
         call->setPeerNumber (toUri);
 
-        localAddr = getInterfaceAddrFromName(account->getLocalAddress ());
+        localAddr = getInterfaceAddrFromName(account->getLocalInterface ());
 
         if (localAddr == "0.0.0.0")
             loadSIPLocalIP (&localAddr);
@@ -749,7 +749,7 @@ SIPVoIPLink::newOutgoingCall (const CallID& id, const std::string& toUrl)
         setCallAudioLocal (call, localAddr);
 
         // May use the published address as well
-        account->isStunEnabled () ? addrSdp = account->getPublishedAddress () : addrSdp = getInterfaceAddrFromName(account->getLocalAddress ());
+        account->isStunEnabled () ? addrSdp = account->getPublishedAddress () : addrSdp = getInterfaceAddrFromName(account->getLocalInterface ());
 
         if (addrSdp == "0.0.0.0")
             loadSIPLocalIP (&addrSdp);
@@ -1541,9 +1541,9 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
         }
 
 	// Set the local address
-	localAddress = getInterfaceAddrFromName(account->getLocalAddress ());
+	localAddress = getInterfaceAddrFromName(account->getLocalInterface ());
         // Set SDP parameters - Set to local or published address
-	account->isStunEnabled () ? addrSdp = account->getPublishedAddress () :  addrSdp = getInterfaceAddrFromName(account->getLocalAddress ());
+	account->isStunEnabled () ? addrSdp = account->getPublishedAddress () :  localAddress;
 
         _debug ("new_ip_to_ip_call localAddress: %s", localAddress.c_str());
 
@@ -1581,7 +1581,7 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
 
         _debug ("IptoIP local port %i", account->getLocalPort());
 
-        _debug ("IptoIP local address in sdp %s", account->getLocalAddress().c_str());
+        _debug ("IptoIP local address in sdp %s", localAddress.c_str());
 
         // Create URI
         std::string fromUri;
@@ -2228,7 +2228,7 @@ int SIPVoIPLink::createUDPServer (AccountID id)
         // We are trying to initialize a UDP transport available for all local accounts and direct IP calls
         _debug("Found account %s in map", account->getAccountID().c_str());
 
-        if (account->getLocalAddress () != "default") {
+        if (account->getLocalInterface () != "default") {
             listeningAddress = getInterfaceAddrFromName(account->getLocalInterface());
         }
 
@@ -2691,11 +2691,11 @@ pj_status_t SIPVoIPLink::createTlsTransport (AccountID id)
         local_addr.sin_port = pj_htons (localTlsPort);
     }
 
-    std::string localAddress = getInterfaceAddrFromName(account->getLocalAddress());
+    std::string localAddress = getInterfaceAddrFromName(account->getLocalInterface());
 
     if (!localAddress.empty()) {
         pj_str_t pjAddress;
-        pj_cstr (&pjAddress, (getInterfaceAddrFromName(account->getLocalAddress())).c_str());
+        pj_cstr (&pjAddress, (getInterfaceAddrFromName(account->getLocalInterface())).c_str());
 
         pj_status_t success;
         success = pj_sockaddr_in_set_str_addr (&local_addr, &pjAddress);
@@ -3501,8 +3501,8 @@ mod_on_rx_request (pjsip_rx_data *rdata)
 
         // May use the published address as well
 
-        addrToUse = getInterfaceAddrFromName(account->getLocalAddress ());
-	account->isStunEnabled () ? addrSdp = account->getPublishedAddress () : addrSdp = getInterfaceAddrFromName(account->getLocalAddress ());		
+        addrToUse = SIPVoIPLink::instance("")->getInterfaceAddrFromName(account->getLocalInterface ());
+	account->isStunEnabled () ? addrSdp = account->getPublishedAddress () : addrSdp = addrToUse;		
 	// Set the appropriate transport to have the right VIA header
 	link->init_transport_selector (account->getAccountTransport (), &tp);
 
diff --git a/sflphone-common/src/sip/sipvoiplink.h b/sflphone-common/src/sip/sipvoiplink.h
index 911cca0a96..620dc9919e 100644
--- a/sflphone-common/src/sip/sipvoiplink.h
+++ b/sflphone-common/src/sip/sipvoiplink.h
@@ -311,7 +311,7 @@ class SIPVoIPLink : public VoIPLink
          * of interface name available on all of the interfaces on
          * the system.
          */
-	// std::string getInterfaceAddrFromName(std::string ifaceName);
+	std::string getInterfaceAddrFromName(std::string ifaceName);
 
 
 	/**
-- 
GitLab


From 0d425a7202f3736d2aab02e5d92c018721045ffe Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 4 Jan 2010 15:55:08 -0500
Subject: [PATCH 126/188] [#2623] add dbus method to resolve local ip address
 from interface name

---
 .../src/dbus/configurationmanager-introspec.xml   |  7 ++++++-
 sflphone-client-gnome/src/dbus/dbus.c             | 15 +++++++++++++++
 .../src/dbus/configurationmanager-introspec.xml   |  7 ++++++-
 sflphone-common/src/dbus/configurationmanager.cpp |  7 +++++++
 sflphone-common/src/dbus/configurationmanager.h   |  3 +++
 5 files changed, 37 insertions(+), 2 deletions(-)

diff --git a/sflphone-client-gnome/src/dbus/configurationmanager-introspec.xml b/sflphone-client-gnome/src/dbus/configurationmanager-introspec.xml
index 4b77337df8..3957e19693 100644
--- a/sflphone-client-gnome/src/dbus/configurationmanager-introspec.xml
+++ b/sflphone-client-gnome/src/dbus/configurationmanager-introspec.xml
@@ -369,7 +369,12 @@
       <arg type="s" name="accountID" direction="in"/>
       <arg type="a{ss}" name="details" direction="in"/>
     </method>
-    
+
+    <method name="getAddrFromInterfaceName">
+      <arg type="s" name="interface" direction="in"/>
+      <arg type="s" name="address" direction="out"/>
+    </method>
+
     <method name="getAllIpInterface">
       <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
       <arg type="as" name="list" direction="out"/>
diff --git a/sflphone-client-gnome/src/dbus/dbus.c b/sflphone-client-gnome/src/dbus/dbus.c
index 2158cc1288..7640216f82 100644
--- a/sflphone-client-gnome/src/dbus/dbus.c
+++ b/sflphone-client-gnome/src/dbus/dbus.c
@@ -2358,6 +2358,21 @@ GHashTable* dbus_get_tls_settings_default(void)
     return results;
 }
 
+
+gchar * dbus_get_address_from_interface_name(gchar* interface)
+{
+    GError *error = NULL;
+    gchar * address;
+
+    org_sflphone_SFLphone_ConfigurationManager_get_addr_from_interface_name ( configurationManagerProxy, interface, &address, &error);
+    if (error != NULL){
+        ERROR ("Error calling org_sflphone_SFLphone_ConfigurationManager_get_addr_from_interface_name\n");
+        g_error_free (error);
+    }
+
+}
+
+
 gchar ** dbus_get_all_ip_interface(void)
 {
     GError *error = NULL;
diff --git a/sflphone-common/src/dbus/configurationmanager-introspec.xml b/sflphone-common/src/dbus/configurationmanager-introspec.xml
index 4b77337df8..3957e19693 100644
--- a/sflphone-common/src/dbus/configurationmanager-introspec.xml
+++ b/sflphone-common/src/dbus/configurationmanager-introspec.xml
@@ -369,7 +369,12 @@
       <arg type="s" name="accountID" direction="in"/>
       <arg type="a{ss}" name="details" direction="in"/>
     </method>
-    
+
+    <method name="getAddrFromInterfaceName">
+      <arg type="s" name="interface" direction="in"/>
+      <arg type="s" name="address" direction="out"/>
+    </method>
+
     <method name="getAllIpInterface">
       <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
       <arg type="as" name="list" direction="out"/>
diff --git a/sflphone-common/src/dbus/configurationmanager.cpp b/sflphone-common/src/dbus/configurationmanager.cpp
index 05fdc738f3..3654d1c1f8 100644
--- a/sflphone-common/src/dbus/configurationmanager.cpp
+++ b/sflphone-common/src/dbus/configurationmanager.cpp
@@ -721,6 +721,7 @@ ConfigurationManager::getMailNotify (void)
     return Manager::instance().getMailNotify();
 }
 
+
 int
 ConfigurationManager::getSipAddress (void)
 {
@@ -782,6 +783,12 @@ void ConfigurationManager::setHistory (const std::map <std::string, std::string>
     Manager::instance().receive_history_from_client (entries);
 }
 
+std::string
+ConfigurationManager::getAddrFromInterfaceName(const std::string& interface)
+{
+    return SIPVoIPLink::instance("")->getInterfaceAddrFromName(interface);
+}
+
 std::vector<std::string> ConfigurationManager::getAllIpInterface (void)
 {
     _debug ("ConfigurationManager::getAllIpInterface received");
diff --git a/sflphone-common/src/dbus/configurationmanager.h b/sflphone-common/src/dbus/configurationmanager.h
index 4da05f8126..92e2dbed7a 100644
--- a/sflphone-common/src/dbus/configurationmanager.h
+++ b/sflphone-common/src/dbus/configurationmanager.h
@@ -113,6 +113,7 @@ public:
     void setNotify( void );
     int32_t getMailNotify( void );
     void setMailNotify( void );
+
     int getSipAddress( void );
     void setSipAddress( const std::string& address );
 
@@ -131,6 +132,8 @@ public:
 
     std::map<std::string, std::string> getTlsSettings(const std::string& accountID);
     void setTlsSettings(const std::string& accountID, const std::map< std::string, std::string >& details);
+
+    std::string getAddrFromInterfaceName(const std::string& interface);
     
     std::vector<std::string> getAllIpInterface(void);
     std::vector<std::string> getAllIpInterfaceByName(void);
-- 
GitLab


From b4633195e57c8c3beacf2411e81477af4571be37 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 4 Jan 2010 17:42:03 -0500
Subject: [PATCH 127/188] [#2623] Robust published_address variable against
 configuration changes

---
 .../src/config/accountconfigdialog.c          | 32 +++++++++++++++----
 sflphone-client-gnome/src/dbus/dbus.c         |  2 ++
 sflphone-client-gnome/src/dbus/dbus.h         |  4 +++
 .../src/dbus/configurationmanager.cpp         |  8 ++++-
 4 files changed, 38 insertions(+), 8 deletions(-)

diff --git a/sflphone-client-gnome/src/config/accountconfigdialog.c b/sflphone-client-gnome/src/config/accountconfigdialog.c
index 02b19959f8..9bf4145e16 100644
--- a/sflphone-client-gnome/src/config/accountconfigdialog.c
+++ b/sflphone-client-gnome/src/config/accountconfigdialog.c
@@ -536,12 +536,18 @@ static use_stun_cb(GtkWidget * widget, gpointer data UNUSED)
  
 }
 
+
 static same_as_local_cb(GtkWidget * widget, gpointer data UNUSED)
 {
     if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) {
         DEBUG("Same as local");
-		gchar * ip_address = (gchar *) gtk_combo_box_get_active_text(GTK_COMBO_BOX(localAddressCombo));
-	    gtk_entry_set_text(GTK_ENTRY(publishedAddressEntry), ip_address);
+	gchar * local_interface;
+	gchar * local_address;
+
+	local_interface = (gchar *) gtk_combo_box_get_active_text(GTK_COMBO_BOX(localAddressCombo));
+	local_address = dbus_get_address_from_interface_name(local_interface);
+
+	gtk_entry_set_text(GTK_ENTRY(publishedAddressEntry), local_address);
 	    
         gchar * local_port = (gchar *) gtk_entry_get_text(GTK_ENTRY(localPortSpinBox));
         gtk_spin_button_set_value(GTK_SPIN_BUTTON(publishedPortSpinBox), g_ascii_strtod(local_port, NULL));
@@ -549,7 +555,6 @@ static same_as_local_cb(GtkWidget * widget, gpointer data UNUSED)
 }
 
 
-
 GtkWidget * create_security_tab(account_t **a)
 {
     GtkWidget * frame;
@@ -781,8 +786,9 @@ GtkWidget * create_advanced_tab(account_t **a)
 
 		if (g_strcasecmp(published_sameas_local,"true") == 0) {
 
-		    published_address = g_hash_table_lookup(currentAccount->properties,  LOCAL_ADDRESS);
+		    published_address = dbus_get_address_from_interface_name(local_interface);
 		    published_port = g_hash_table_lookup(currentAccount->properties,  LOCAL_PORT);
+
 		}
 		else {
 
@@ -935,6 +941,7 @@ GtkWidget * create_advanced_tab(account_t **a)
 	gtk_misc_set_alignment(GTK_MISC (publishedAddressLabel), 0, 0.5);
 	publishedAddressEntry = gtk_entry_new();
 	gtk_label_set_mnemonic_widget (GTK_LABEL (publishedAddressLabel), publishedAddressEntry);
+
 	gtk_entry_set_text(GTK_ENTRY(publishedAddressEntry), published_address);
 	gtk_table_attach_defaults( GTK_TABLE(table), publishedAddressEntry, 1, 2, 5, 6);
 		
@@ -951,7 +958,10 @@ GtkWidget * create_advanced_tab(account_t **a)
 
 	// This will trigger a signal, and the above two
 	// widgets need to be instanciated before that.
-	g_signal_connect(useStunCheckBox, "toggled", G_CALLBACK(use_stun_cb), useStunCheckBox);		    		
+	// g_signal_connect(localAddressCombo, "changed", G_CALLBACK(use_stun_cb), useStunCheckBox);	
+
+	g_signal_connect(useStunCheckBox, "toggled", G_CALLBACK(use_stun_cb), useStunCheckBox);	
+
 	g_signal_connect(sameAsLocalRadioButton, "toggled", G_CALLBACK(same_as_local_cb), sameAsLocalRadioButton);   
 	g_signal_connect(publishedAddrRadioButton, "toggled", G_CALLBACK(set_published_addr_manually_cb), publishedAddrRadioButton);
 
@@ -1020,6 +1030,11 @@ show_account_window (account_t * a)
 	gint response;
 	account_t *currentAccount;
 
+	// In case the published address is same than local, 
+	// we must resolve published address from interface name 
+	gchar * local_interface;
+	gchar * published_address;
+
 	currentAccount = a;   
 	
 	if (currentAccount == NULL) {
@@ -1131,6 +1146,7 @@ show_account_window (account_t * a)
 			        g_strdup((gchar *)gtk_combo_box_get_active_text(GTK_COMBO_BOX(localAddressCombo))));
 			if(!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sameAsLocalRadioButton)))
 			{
+
 			    g_hash_table_replace(currentAccount->properties,
 						 g_strdup(PUBLISHED_PORT),
 						 g_strdup((gchar *)gtk_entry_get_text(GTK_ENTRY(publishedPortSpinBox))));
@@ -1144,11 +1160,13 @@ show_account_window (account_t * a)
 			   g_hash_table_replace(currentAccount->properties,
 						 g_strdup(PUBLISHED_PORT),
 						 g_strdup((gchar *)gtk_entry_get_text(GTK_ENTRY(localPortSpinBox))));
-			   
+			   local_interface = g_strdup((gchar *)gtk_combo_box_get_active_text(GTK_COMBO_BOX(localAddressCombo)));
+
+			   published_address = dbus_get_address_from_interface_name(local_interface);
 
 			   g_hash_table_replace(currentAccount->properties,
 						 g_strdup(PUBLISHED_ADDRESS),
-						 g_strdup((gchar *)gtk_combo_box_get_active_text(GTK_COMBO_BOX(localAddressCombo)))); 
+						 published_address);
 			}
 			
 		}
diff --git a/sflphone-client-gnome/src/dbus/dbus.c b/sflphone-client-gnome/src/dbus/dbus.c
index 7640216f82..c4aa52b7dc 100644
--- a/sflphone-client-gnome/src/dbus/dbus.c
+++ b/sflphone-client-gnome/src/dbus/dbus.c
@@ -2370,6 +2370,8 @@ gchar * dbus_get_address_from_interface_name(gchar* interface)
         g_error_free (error);
     }
 
+    return address;
+
 }
 
 
diff --git a/sflphone-client-gnome/src/dbus/dbus.h b/sflphone-client-gnome/src/dbus/dbus.h
index f4dcc59da9..fb9662231f 100644
--- a/sflphone-client-gnome/src/dbus/dbus.h
+++ b/sflphone-client-gnome/src/dbus/dbus.h
@@ -514,6 +514,10 @@ gchar** dbus_get_addressbook_list (void);
 
 void dbus_set_addressbook_list (const gchar** list);
 
+/**
+ * Resolve the local address given an interface name
+ */
+gchar * dbus_get_address_from_interface_name(gchar* interface);
 
 /**
  * Query the daemon to return a list of network interface (described as there IP address)
diff --git a/sflphone-common/src/dbus/configurationmanager.cpp b/sflphone-common/src/dbus/configurationmanager.cpp
index 3654d1c1f8..b17aa8b873 100644
--- a/sflphone-common/src/dbus/configurationmanager.cpp
+++ b/sflphone-common/src/dbus/configurationmanager.cpp
@@ -786,7 +786,13 @@ void ConfigurationManager::setHistory (const std::map <std::string, std::string>
 std::string
 ConfigurationManager::getAddrFromInterfaceName(const std::string& interface)
 {
-    return SIPVoIPLink::instance("")->getInterfaceAddrFromName(interface);
+    _debug ("ConfigurationManager::getAddrFromInterfaceName received");
+
+    std::string address = SIPVoIPLink::instance("")->getInterfaceAddrFromName(interface);
+
+    _debug("address: %s", address.c_str());
+
+    return address;
 }
 
 std::vector<std::string> ConfigurationManager::getAllIpInterface (void)
-- 
GitLab


From ba38ebbca81df545b6535c1e9f59bbd79b494825 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 4 Jan 2010 18:29:58 -0500
Subject: [PATCH 128/188] [#2623] Make sure manual publishied address is sync
 with interface changes

---
 .../src/config/accountconfigdialog.c          | 32 ++++++++++++++++++-
 1 file changed, 31 insertions(+), 1 deletion(-)

diff --git a/sflphone-client-gnome/src/config/accountconfigdialog.c b/sflphone-client-gnome/src/config/accountconfigdialog.c
index 9bf4145e16..f3b8aa024b 100644
--- a/sflphone-client-gnome/src/config/accountconfigdialog.c
+++ b/sflphone-client-gnome/src/config/accountconfigdialog.c
@@ -489,6 +489,25 @@ static void use_sip_tls_cb(GtkWidget *widget, gpointer data)
     }   
 }
 
+static local_interface_changed_cb(GtkWidget * widget, gpointer data UNUSED)
+{
+
+    if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sameAsLocalRadioButton))) {
+
+        gchar * local_interface;
+	gchar * local_address;
+
+	local_interface = (gchar *) gtk_combo_box_get_active_text(GTK_COMBO_BOX(localAddressCombo));
+	local_address = dbus_get_address_from_interface_name(local_interface);
+
+	gtk_entry_set_text(GTK_ENTRY(publishedAddressEntry), local_address);
+	    
+        // gchar * local_port = (gchar *) gtk_entry_get_text(GTK_ENTRY(localPortSpinBox));
+        // gtk_spin_button_set_value(GTK_SPIN_BUTTON(publishedPortSpinBox), g_ascii_strtod(local_port, NULL));
+    }
+
+}
+
 static set_published_addr_manually_cb(GtkWidget * widget, gpointer data UNUSED)
 {
     DEBUG("set_published_addr_manually_cb");
@@ -510,6 +529,9 @@ static set_published_addr_manually_cb(GtkWidget * widget, gpointer data UNUSED)
 
 static use_stun_cb(GtkWidget * widget, gpointer data UNUSED)
 {
+    gchar * local_interface;
+    gchar * local_address;
+
     if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) {
         DEBUG("Showing stun options, hiding Local/Published info");
         gtk_widget_show(stunServerLabel);
@@ -531,6 +553,14 @@ static use_stun_cb(GtkWidget * widget, gpointer data UNUSED)
 	    gtk_widget_show(publishedPortLabel);
 	    gtk_widget_show(publishedAddressEntry);
 	    gtk_widget_show(publishedPortSpinBox);
+
+	    // Since stun callback is called at initialization, we cannot reinit published address
+	    // TODO: find a way so that if stun is unchecked, reinit published address entry 
+	    //       in case local address changedd
+
+	    // local_interface = (gchar *) gtk_combo_box_get_active_text(GTK_COMBO_BOX(localAddressCombo));
+	    // local_address = dbus_get_address_from_interface_name(local_interface);
+	    // gtk_entry_set_text(GTK_ENTRY(publishedAddressEntry), local_address);
 	}
     }
  
@@ -958,7 +988,7 @@ GtkWidget * create_advanced_tab(account_t **a)
 
 	// This will trigger a signal, and the above two
 	// widgets need to be instanciated before that.
-	// g_signal_connect(localAddressCombo, "changed", G_CALLBACK(use_stun_cb), useStunCheckBox);	
+	g_signal_connect(localAddressCombo, "changed", G_CALLBACK(local_interface_changed_cb), localAddressCombo);   
 
 	g_signal_connect(useStunCheckBox, "toggled", G_CALLBACK(use_stun_cb), useStunCheckBox);	
 
-- 
GitLab


From 475971cb15e2ae97f8e90ffa76c7d455103c4901 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Tue, 5 Jan 2010 11:30:00 -0500
Subject: [PATCH 129/188] [#2623] Fix published address for TLS transport if
 default interface selected

---
 sflphone-common/src/sip/sipvoiplink.cpp | 38 +++++++++++++++++++++++--
 1 file changed, 36 insertions(+), 2 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 8e40585318..51b6beb62c 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -2691,11 +2691,25 @@ pj_status_t SIPVoIPLink::createTlsTransport (AccountID id)
         local_addr.sin_port = pj_htons (localTlsPort);
     }
 
+    /*
+    std::string localAddress;
+    if (account->getLocalInterface() == "default"){
+
+        // Current selected interface address is 0.0.0.0, resolve local address using  
+        loadSIPLocalIP (&localAddress);
+    }
+    else {
+
+        // Specific interface selected, reslove it
+        localAddress = getInterfaceAddrFromName(account->getLocalInterface());
+    }
+    */
+
     std::string localAddress = getInterfaceAddrFromName(account->getLocalInterface());
 
     if (!localAddress.empty()) {
         pj_str_t pjAddress;
-        pj_cstr (&pjAddress, (getInterfaceAddrFromName(account->getLocalInterface())).c_str());
+        pj_cstr (&pjAddress, localAddress.c_str());
 
         pj_status_t success;
         success = pj_sockaddr_in_set_str_addr (&local_addr, &pjAddress);
@@ -2705,10 +2719,30 @@ pj_status_t SIPVoIPLink::createTlsTransport (AccountID id)
         }
     }
 
+    std::string publishedAddress;
+    if (account->getPublishedSameasLocal()) {
+
+        // if "default" interface is selected, loadSIPLocalIP() is used to get local address
+        if (account->getLocalInterface() == "default"){
+
+	    loadSIPLocalIP (&publishedAddress);
+	}
+	else {
+
+	    // Specific interface selected
+	    publishedAddress = localAddress;
+	}   
+    }
+    else {
+
+        publishedAddress = account->getPublishedAddress();
+    }
+
+
     /* Init published name */
     pj_bzero (&a_name, sizeof (pjsip_host_port));
 
-    pj_cstr (&a_name.host, (account->getPublishedAddress()).c_str());
+    pj_cstr (&a_name.host, publishedAddress.c_str());
 
     a_name.port = account->getPublishedPort();
 
-- 
GitLab


From 5d4e55e6a7b9e77e81a3344fadd666fa4517e372 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Tue, 5 Jan 2010 13:30:00 -0500
Subject: [PATCH 130/188] [#2623] Clean up: LOCAL_ADDRESS configuration field
 no usefull anymore

We now store interfaces by name
---
 .../src/config/accountconfigdialog.c          |  7 +--
 sflphone-client-gnome/src/config/assistant.c  |  3 +-
 .../src/config/preferencesdialog.c            | 20 +-------
 .../dbus/configurationmanager-introspec.xml   |  7 ---
 sflphone-client-gnome/src/dbus/dbus.c         |  5 ++
 sflphone-client-gnome/src/sflphone_const.h    |  1 -
 sflphone-common/src/account.h                 |  1 -
 .../dbus/configurationmanager-introspec.xml   |  7 ---
 .../src/dbus/configurationmanager.cpp         | 22 --------
 .../src/dbus/configurationmanager.h           |  3 --
 sflphone-common/src/managerimpl.cpp           | 50 +------------------
 sflphone-common/src/managerimpl.h             |  2 -
 .../src/managerimpl_registration.cpp          |  5 +-
 sflphone-common/src/sip/sipaccount.cpp        | 27 +---------
 sflphone-common/src/sip/sipaccount.h          | 14 ------
 sflphone-common/src/sip/sipvoiplink.cpp       |  2 +-
 16 files changed, 14 insertions(+), 162 deletions(-)

diff --git a/sflphone-client-gnome/src/config/accountconfigdialog.c b/sflphone-client-gnome/src/config/accountconfigdialog.c
index f3b8aa024b..764ca6a06a 100644
--- a/sflphone-client-gnome/src/config/accountconfigdialog.c
+++ b/sflphone-client-gnome/src/config/accountconfigdialog.c
@@ -810,9 +810,7 @@ GtkWidget * create_advanced_tab(account_t **a)
 
 		local_interface = g_hash_table_lookup(currentAccount->properties, LOCAL_INTERFACE);
 
-
 		local_port = g_hash_table_lookup(currentAccount->properties, LOCAL_PORT);
-		local_address = g_hash_table_lookup(currentAccount->properties,  LOCAL_ADDRESS);
 
 		if (g_strcasecmp(published_sameas_local,"true") == 0) {
 
@@ -1170,10 +1168,7 @@ show_account_window (account_t * a)
 			g_hash_table_replace(currentAccount->properties,
     				g_strdup(LOCAL_PORT),
 			        g_strdup((gchar *)gtk_entry_get_text(GTK_ENTRY(localPortSpinBox))));
-
-			g_hash_table_replace(currentAccount->properties,
-    				g_strdup(LOCAL_ADDRESS),
-			        g_strdup((gchar *)gtk_combo_box_get_active_text(GTK_COMBO_BOX(localAddressCombo))));
+			
 			if(!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sameAsLocalRadioButton)))
 			{
 
diff --git a/sflphone-client-gnome/src/config/assistant.c b/sflphone-client-gnome/src/config/assistant.c
index c3be338bce..0319d1bd5e 100644
--- a/sflphone-client-gnome/src/config/assistant.c
+++ b/sflphone-client-gnome/src/config/assistant.c
@@ -164,7 +164,8 @@ static void sip_apply_callback( void ) {
 	iface = iface_list;
 	DEBUG("Selected interface %s", *iface);
 
-	g_hash_table_insert(current->properties, g_strdup(LOCAL_ADDRESS), g_strdup((gchar *)*iface));
+	g_hash_table_insert(current->properties, g_strdup(LOCAL_INTERFACE), g_strdup((gchar *)*iface));
+
 	g_hash_table_insert(current->properties, g_strdup(PUBLISHED_ADDRESS), g_strdup((gchar *)*iface));
 
 	dbus_add_account( current );
diff --git a/sflphone-client-gnome/src/config/preferencesdialog.c b/sflphone-client-gnome/src/config/preferencesdialog.c
index 13257f4c91..d83e711183 100644
--- a/sflphone-client-gnome/src/config/preferencesdialog.c
+++ b/sflphone-client-gnome/src/config/preferencesdialog.c
@@ -58,22 +58,6 @@ static gboolean history_enabled = TRUE;
 GHashTable * directIpCallsProperties = NULL;
 
 
-
-
-static void update_ip_address_port_cb ( GtkSpinButton *button UNUSED, void *ptr )
-{ 
-	// dbus_set_sip_port(gtk_spin_button_get_value_as_int((GtkSpinButton *)(ptr)));
-	gchar* local_address = g_strdup((gchar *)gtk_combo_box_get_active_text(GTK_COMBO_BOX(localAddressCombo)));
-	gchar* local_port = g_strdup((gchar *)gtk_entry_get_text(GTK_ENTRY(localPortSpinBox)));
-
-	gchar* ip_interface = g_strconcat(local_address, ":", local_port, NULL);
-
-	DEBUG("update_ip_address_port_cb %s\n", ip_interface);
-
-	dbus_set_sip_address(ip_interface);
-}
-
-
 	static void
 set_md5_hash_cb(GtkWidget *widget UNUSED, gpointer data UNUSED)
 {
@@ -209,10 +193,8 @@ GtkWidget* create_direct_ip_calls_tab()
 	if(directIpCallsProperties != NULL) {
 		DEBUG("got a directIpCallsProperties");
 		local_interface = g_hash_table_lookup(directIpCallsProperties, LOCAL_INTERFACE);
-		local_address = g_hash_table_lookup(directIpCallsProperties,  LOCAL_ADDRESS);
 		local_port = g_hash_table_lookup(directIpCallsProperties, LOCAL_PORT);
 		DEBUG("    local interface = %s", local_interface);
-		DEBUG("    local address = %s", local_address);
 		DEBUG("    local port = %s", local_port);
 		curSRTPEnabled = g_hash_table_lookup(directIpCallsProperties, ACCOUNT_SRTP_ENABLED);
 		DEBUG("    curSRTPEnabled = %s", curSRTPEnabled);
@@ -315,7 +297,7 @@ GtkWidget* create_direct_ip_calls_tab()
 
 
 	GtkWidget *applyModificationButton = gtk_button_new_from_stock(GTK_STOCK_APPLY);
-	g_signal_connect( G_OBJECT(applyModificationButton) , "clicked" , G_CALLBACK( update_ip_address_port_cb ), localPortSpinBox);
+	// g_signal_connect( G_OBJECT(applyModificationButton) , "clicked" , G_CALLBACK( update_ip_address_port_cb ), localPortSpinBox);
 	gtk_table_attach( GTK_TABLE(table), applyModificationButton, 2, 3, 1, 2, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 5);
 
 
diff --git a/sflphone-client-gnome/src/dbus/configurationmanager-introspec.xml b/sflphone-client-gnome/src/dbus/configurationmanager-introspec.xml
index 3957e19693..018917eaa4 100644
--- a/sflphone-client-gnome/src/dbus/configurationmanager-introspec.xml
+++ b/sflphone-client-gnome/src/dbus/configurationmanager-introspec.xml
@@ -290,13 +290,6 @@
     <method name="switchPopupMode">
     </method>
 
-    <method name="setSipAddress">
-      <arg type="s" name="address" direction="in"/>
-    </method>
-
-    <method name="getSipAddress">
-      <arg type="i" name="address" direction="out"/>
-    </method>
 
     <!-- Addressbook configuration -->
     <method name="getAddressbookSettings">
diff --git a/sflphone-client-gnome/src/dbus/dbus.c b/sflphone-client-gnome/src/dbus/dbus.c
index c4aa52b7dc..7d4fb6f4e7 100644
--- a/sflphone-client-gnome/src/dbus/dbus.c
+++ b/sflphone-client-gnome/src/dbus/dbus.c
@@ -2056,6 +2056,7 @@ dbus_get_audio_manager( void )
     return api;
 }
 
+/*
     void
 dbus_set_sip_address( const gchar* address )
 {
@@ -2069,6 +2070,9 @@ dbus_set_sip_address( const gchar* address )
         g_error_free(error);
     }
 }
+*/
+
+ /*
 
     gint
 dbus_get_sip_address( void )
@@ -2085,6 +2089,7 @@ dbus_get_sip_address( void )
     }
     return address;
 }
+ */
 
 GHashTable* dbus_get_addressbook_settings (void) {
 
diff --git a/sflphone-client-gnome/src/sflphone_const.h b/sflphone-client-gnome/src/sflphone_const.h
index 485e755dc0..d8e7870b9e 100644
--- a/sflphone-client-gnome/src/sflphone_const.h
+++ b/sflphone-client-gnome/src/sflphone_const.h
@@ -91,7 +91,6 @@
 #define LOCAL_INTERFACE                     "Account.localInterface"
 #define PUBLISHED_SAMEAS_LOCAL              "Account.publishedSameAsLocal"
 #define LOCAL_PORT                          "Account.localPort"
-#define LOCAL_ADDRESS                       "Account.localAddress"
 #define PUBLISHED_PORT                      "Account.publishedPort"
 #define PUBLISHED_ADDRESS                   "Account.publishedAddress"
 
diff --git a/sflphone-common/src/account.h b/sflphone-common/src/account.h
index 22dc6341b7..2edddfe9bf 100644
--- a/sflphone-common/src/account.h
+++ b/sflphone-common/src/account.h
@@ -73,7 +73,6 @@ typedef enum RegistrationState {
 #define LOCAL_INTERFACE                     "Account.localInterface"
 #define PUBLISHED_SAMEAS_LOCAL              "Account.publishedSameAsLocal"
 #define LOCAL_PORT                          "Account.localPort"
-#define LOCAL_ADDRESS                       "Account.localAddress"
 #define PUBLISHED_PORT                      "Account.publishedPort"
 #define PUBLISHED_ADDRESS                   "Account.publishedAddress"
 
diff --git a/sflphone-common/src/dbus/configurationmanager-introspec.xml b/sflphone-common/src/dbus/configurationmanager-introspec.xml
index 3957e19693..018917eaa4 100644
--- a/sflphone-common/src/dbus/configurationmanager-introspec.xml
+++ b/sflphone-common/src/dbus/configurationmanager-introspec.xml
@@ -290,13 +290,6 @@
     <method name="switchPopupMode">
     </method>
 
-    <method name="setSipAddress">
-      <arg type="s" name="address" direction="in"/>
-    </method>
-
-    <method name="getSipAddress">
-      <arg type="i" name="address" direction="out"/>
-    </method>
 
     <!-- Addressbook configuration -->
     <method name="getAddressbookSettings">
diff --git a/sflphone-common/src/dbus/configurationmanager.cpp b/sflphone-common/src/dbus/configurationmanager.cpp
index b17aa8b873..82f7b6dda2 100644
--- a/sflphone-common/src/dbus/configurationmanager.cpp
+++ b/sflphone-common/src/dbus/configurationmanager.cpp
@@ -78,7 +78,6 @@ ConfigurationManager::getIp2IpDetails (void)
     ip2ipAccountDetails.insert (std::pair<std::string, std::string> (ZRTP_DISPLAY_SAS_ONCE, Manager::instance().getConfigString (IP2IP_PROFILE, ZRTP_DISPLAY_SAS_ONCE)));
 
     ip2ipAccountDetails.insert (std::pair<std::string, std::string> (LOCAL_INTERFACE, Manager::instance().getConfigString(IP2IP_PROFILE, LOCAL_INTERFACE)));
-    ip2ipAccountDetails.insert (std::pair<std::string, std::string> (LOCAL_ADDRESS, Manager::instance().getConfigString (IP2IP_PROFILE, LOCAL_ADDRESS)));
     ip2ipAccountDetails.insert (std::pair<std::string, std::string> (LOCAL_PORT, Manager::instance().getConfigString (IP2IP_PROFILE, LOCAL_PORT)));
 
     std::map<std::string, std::string> tlsSettings;
@@ -101,12 +100,6 @@ ConfigurationManager::setIp2IpDetails (const std::map< std::string, std::string
         Manager::instance().setConfig (IP2IP_PROFILE, LOCAL_INTERFACE, it->second);
     }
 
-    it = map_cpy.find (LOCAL_ADDRESS);
-
-    if (it != details.end()) {
-        Manager::instance().setConfig (IP2IP_PROFILE, LOCAL_ADDRESS, it->second);
-    }
-
     it = map_cpy.find (LOCAL_PORT);
 
     if (it != details.end()) {
@@ -722,21 +715,6 @@ ConfigurationManager::getMailNotify (void)
 }
 
 
-int
-ConfigurationManager::getSipAddress (void)
-{
-    return Manager::instance().getLocalIp2IpPort();
-
-    // return "ok";
-}
-
-void
-ConfigurationManager::setSipAddress (const std::string& address)
-{
-    _debug ("Manager received setSipAddress: %s", address.c_str());
-    Manager::instance().setLocalIp2IpInfo (address);
-}
-
 std::map<std::string, int32_t> ConfigurationManager::getAddressbookSettings (void)
 {
     return Manager::instance().getAddressbookSettings ();
diff --git a/sflphone-common/src/dbus/configurationmanager.h b/sflphone-common/src/dbus/configurationmanager.h
index 92e2dbed7a..61072e16b5 100644
--- a/sflphone-common/src/dbus/configurationmanager.h
+++ b/sflphone-common/src/dbus/configurationmanager.h
@@ -114,9 +114,6 @@ public:
     int32_t getMailNotify( void );
     void setMailNotify( void );
 
-    int getSipAddress( void );
-    void setSipAddress( const std::string& address );
-
     std::map<std::string, int32_t> getAddressbookSettings (void);
     void setAddressbookSettings (const std::map<std::string, int32_t>& settings);
     std::vector< std::string > getAddressbookList ( void );
diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index d4cd94ab24..f8d3d551ba 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -2270,7 +2270,6 @@ ManagerImpl::initConfigFile (bool load_user_value, std::string alternate)
     _config.addDefaultValue (std::pair<std::string, std::string> (PUBLISHED_SAMEAS_LOCAL, TRUE_STR), IP2IP_PROFILE);
     _config.addDefaultValue (std::pair<std::string, std::string> (LOCAL_PORT, DEFAULT_SIP_PORT), IP2IP_PROFILE);
     _config.addDefaultValue (std::pair<std::string, std::string> (PUBLISHED_PORT, DEFAULT_SIP_PORT), IP2IP_PROFILE);
-    _config.addDefaultValue (std::pair<std::string, std::string> (LOCAL_ADDRESS, DEFAULT_ADDRESS), IP2IP_PROFILE);
     _config.addDefaultValue (std::pair<std::string, std::string> (PUBLISHED_ADDRESS, DEFAULT_ADDRESS), IP2IP_PROFILE);
     _config.addDefaultValue (std::pair<std::string, std::string> (STUN_ENABLE, DFT_STUN_ENABLE), IP2IP_PROFILE);
     _config.addDefaultValue (std::pair<std::string, std::string> (STUN_SERVER, DFT_STUN_SERVER), IP2IP_PROFILE);
@@ -3235,49 +3234,10 @@ void ManagerImpl::setMicVolume (unsigned short mic_vol)
 
 
 
-
-
-void ManagerImpl::setLocalIp2IpInfo (const std::string& address)
-{
-    std::string ip_address = std::string (address);
-
-    int index = ip_address.find_first_of (":");
-
-    std::string local_address = ip_address.substr (0,index);
-    std::string local_port = ip_address.substr (index+1);
-    int newPort = atoi (local_port.c_str());
-
-    _debug ("Setting new address %s and port %s for default account (ip to ip calls)", local_address.c_str(), local_port.c_str());
-
-    int prevPort = getConfigInt (IP2IP_PROFILE, LOCAL_PORT);
-    std::string prevAddress  = getConfigString (IP2IP_PROFILE, LOCAL_ADDRESS);
-
-    if ( (prevPort != newPort) || (prevAddress.compare (local_address) != 0)) {
-
-
-        if (_directIpAccount) {
-
-            SIPAccount* account = dynamic_cast<SIPAccount*> (_directIpAccount);
-
-            account->setLocalPort (newPort);
-            account->setLocalAddress (local_address);
-        }
-
-        setConfig (IP2IP_PROFILE, LOCAL_ADDRESS, local_address);
-
-        setConfig (IP2IP_PROFILE, LOCAL_PORT, newPort);
-
-        SIPVoIPLink* siplink = SIPVoIPLink::instance ("");
-        // if(siplink)
-        siplink->updateAccountInfo (_directIpAccount->getAccountID());
-        // this->restartPJSIP ();
-    }
-}
-
-
+ 
 int ManagerImpl::getLocalIp2IpPort (void)
 {
-    /* The SIP port used for default account (IP to IP) calls */
+    // The SIP port used for default account (IP to IP) calls
     _debug ("Default account port %i", getConfigInt (IP2IP_PROFILE, LOCAL_PORT));
 
     return getConfigInt (IP2IP_PROFILE, LOCAL_PORT);
@@ -3538,7 +3498,6 @@ std::map< std::string, std::string > ManagerImpl::getAccountDetails (const Accou
     a.insert (std::pair<std::string, std::string> (CONFIG_ACCOUNT_REGISTRATION_EXPIRE, getConfigString (accountID, CONFIG_ACCOUNT_REGISTRATION_EXPIRE)));
     a.insert (std::pair<std::string, std::string> (LOCAL_INTERFACE, getConfigString (accountID, LOCAL_INTERFACE)));
     a.insert (std::pair<std::string, std::string> (PUBLISHED_SAMEAS_LOCAL, getConfigString (accountID, PUBLISHED_SAMEAS_LOCAL)));
-    a.insert (std::pair<std::string, std::string> (LOCAL_ADDRESS, getConfigString (accountID, LOCAL_ADDRESS)));
     a.insert (std::pair<std::string, std::string> (PUBLISHED_ADDRESS, getConfigString (accountID, PUBLISHED_ADDRESS)));
     a.insert (std::pair<std::string, std::string> (LOCAL_PORT, getConfigString (accountID, LOCAL_PORT)));
     a.insert (std::pair<std::string, std::string> (PUBLISHED_PORT, getConfigString (accountID, PUBLISHED_PORT)));
@@ -3816,10 +3775,6 @@ void ManagerImpl::setAccountDetails (const std::string& accountID, const std::ma
         publishedSameasLocal = iter->second;
     }
 
-    if ( (iter = map_cpy.find (LOCAL_ADDRESS)) != map_cpy.end()) {
-        localAddress = iter->second;
-    }
-
     if ( (iter = map_cpy.find (PUBLISHED_ADDRESS)) != map_cpy.end()) {
         publishedAddress = iter->second;
     }
@@ -3944,7 +3899,6 @@ void ManagerImpl::setAccountDetails (const std::string& accountID, const std::ma
 
     setConfig (accountID, LOCAL_INTERFACE, localInterface);
     setConfig (accountID, PUBLISHED_SAMEAS_LOCAL, publishedSameasLocal);
-    setConfig (accountID, LOCAL_ADDRESS, localAddress);
     setConfig (accountID, PUBLISHED_ADDRESS, publishedAddress);
     setConfig (accountID, LOCAL_PORT, localPort);
     setConfig (accountID, PUBLISHED_PORT, publishedPort);
diff --git a/sflphone-common/src/managerimpl.h b/sflphone-common/src/managerimpl.h
index fe2ce8618d..ca88a42939 100644
--- a/sflphone-common/src/managerimpl.h
+++ b/sflphone-common/src/managerimpl.h
@@ -1319,8 +1319,6 @@ class ManagerImpl {
 
     int getLocalIp2IpPort();
 
-    void setLocalIp2IpInfo( const std::string& address );
-
     std::string getStunServer (void);
     void setStunServer (const std::string &server);
 
diff --git a/sflphone-common/src/managerimpl_registration.cpp b/sflphone-common/src/managerimpl_registration.cpp
index 004faf8f2e..241a8b4078 100644
--- a/sflphone-common/src/managerimpl_registration.cpp
+++ b/sflphone-common/src/managerimpl_registration.cpp
@@ -95,11 +95,8 @@ ManagerImpl::initRegisterAccounts()
     while (iter != _accountMap.end()) {
         if (iter->second) {
             iter->second->loadConfig();
-            /* If the account is set as enabled, try to register */
-
-            // TODO: take off this protection by storing localIPAddress using interface name
-            setConfig (iter->second->getAccountID(), LOCAL_ADDRESS, "0.0.0.0");
 
+            /* If the account is set as enabled, try to register */
             if (iter->second->isEnabled()) {
                 status = iter->second->registerVoIPLink();
 
diff --git a/sflphone-common/src/sip/sipaccount.cpp b/sflphone-common/src/sip/sipaccount.cpp
index 60085f54af..29e1ace799 100644
--- a/sflphone-common/src/sip/sipaccount.cpp
+++ b/sflphone-common/src/sip/sipaccount.cpp
@@ -30,7 +30,6 @@ SIPAccount::SIPAccount (const AccountID& accountID)
         , _bRegister (false)
         , _registrationExpire ("")
         , _publishedSameasLocal (true)
-        , _localIpAddress ("")
         , _publishedIpAddress ("")
         , _localPort (atoi (DEFAULT_SIP_PORT))
         , _publishedPort (atoi (DEFAULT_SIP_PORT))
@@ -348,12 +347,6 @@ void SIPAccount::loadConfig()
     std::string localPort = Manager::instance().getConfigString (_accountID, LOCAL_PORT);
     setLocalPort (atoi (localPort.c_str()));
 
-    // Do not store or use IP address in config as this address may change
-    // Use loadSIPLocalIP for now instead in register/unregister (UDP,STUN,TLS), newOutGoingCall, mod_on_rx_request
-    // TODO: if we realy have to bind to a specific interface, store interfaces by name instead
-    // setLocalAddress (std::string("0.0.0.0"));
-    setLocalAddress (Manager::instance().getConfigString (_accountID, LOCAL_ADDRESS));
-
 
     // Published parameters
     setPublishedSameasLocal (Manager::instance().getConfigString (_accountID, PUBLISHED_SAMEAS_LOCAL) == TRUE_STR ? true : false);
@@ -422,25 +415,7 @@ std::string SIPAccount::getLoginName (void)
 
 std::string SIPAccount::getTransportMapKey(void)
 {
-    /*
-    std::string mapKey;
-
-    std::stringstream out;
-
-    out << getLocalPort();
-    std::string localAddress = getLocalAddress();
-    std::string localPort = out.str();
-
-    out.seekp (0);
-    out << getPublishedPort();
-    std::string publishedAddress = getPublishedAddress();
-    std::string publishedPort = out.str();
-
-    mapKey.append(localAddress.c_str());
-    mapKey.append(localPort.c_str());
-    mapKey.append(publishedAddress.c_str());
-    mapKey.append(publishedPort.c_str());
-    */
+    
     std::stringstream out;
     out << getLocalPort();
     std::string localPort = out.str();
diff --git a/sflphone-common/src/sip/sipaccount.h b/sflphone-common/src/sip/sipaccount.h
index 855fbe39e4..ae454a5333 100644
--- a/sflphone-common/src/sip/sipaccount.h
+++ b/sflphone-common/src/sip/sipaccount.h
@@ -248,19 +248,6 @@ class SIPAccount : public Account
          * @pram port The port used by this account.
          */
         inline void setPublishedPort(pj_uint16_t port) { _publishedPort = port; }
-
-        /**
-         * Get the bound address set by the user.
-         * @return std::string The public IPV4 address formatted in the standard dot notation.
-         */
-        inline std::string getLocalAddress(void) { return _localIpAddress; }
-        
-        /**
-         * Set the bound address chosen by the user.
-         * @param The public IPV4 address in the standard dot notation.
-         * @return void
-         */
-        inline void setLocalAddress(const std::string& address) { _localIpAddress = address; }
                 
         /**
          * Get the public IP address set by the user for this account.
@@ -346,7 +333,6 @@ class SIPAccount : public Account
         // sip headers
 	bool _publishedSameasLocal;
                 
-        std::string _localIpAddress;
         std::string _publishedIpAddress;
         
         pj_uint16_t _localPort;
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 51b6beb62c..3064cbf013 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -2097,7 +2097,7 @@ bool SIPVoIPLink::acquireTransport(const AccountID& accountID) {
 
 	    _debug("Use default one instead (%s:%i)", localHostName.c_str(), _localUDPTransport->local_name.port);
 
-	    account->setLocalAddress(localHostName);
+	    // account->setLocalAddress(localHostName);
 	    account->setLocalPort(_localUDPTransport->local_name.port);
 
 	    // Transport could not either be created or found in the map, socket not available
-- 
GitLab


From 25332552e7e4df7921024b6c9be0de28a082e661 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Tue, 5 Jan 2010 15:07:09 -0500
Subject: [PATCH 131/188] [#2623] Fix outgoing ip to ip calls, sdp parameters
 set using local address

---
 sflphone-common/src/sip/sipvoiplink.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 3064cbf013..7231e20595 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -1542,8 +1542,8 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
 
 	// Set the local address
 	localAddress = getInterfaceAddrFromName(account->getLocalInterface ());
-        // Set SDP parameters - Set to local or published address
-	account->isStunEnabled () ? addrSdp = account->getPublishedAddress () :  localAddress;
+        // Set SDP parameters - Set to local
+	addrSdp = localAddress;
 
         _debug ("new_ip_to_ip_call localAddress: %s", localAddress.c_str());
 
-- 
GitLab


From c0ae25bbc58b68d726207b9056e0e30f7b90f897 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Wed, 6 Jan 2010 12:59:09 -0500
Subject: [PATCH 132/188] [#2522] Add basic SRTP attribute in sdp

---
 sflphone-common/src/sip/sdp.cpp | 33 +++++++++++++++++++++++++++++++++
 sflphone-common/src/sip/sdp.h   |  8 ++++++++
 2 files changed, 41 insertions(+)

diff --git a/sflphone-common/src/sip/sdp.cpp b/sflphone-common/src/sip/sdp.cpp
index c9cf1b6e97..66abc5ca75 100644
--- a/sflphone-common/src/sip/sdp.cpp
+++ b/sflphone-common/src/sip/sdp.cpp
@@ -130,6 +130,8 @@ void Sdp::set_media_descriptor_line (sdpMedia *media, pjmedia_sdp_media** p_med)
         _debug ("No hash specified");
     }
 
+    // sdp_add_srtp_attribute (med);
+
     *p_med = med;
 }
 
@@ -360,6 +362,37 @@ void Sdp::sdp_add_media_description()
     }
 }
 
+
+void Sdp::sdp_add_srtp_attribute (pjmedia_sdp_media* media)
+{
+
+    char tempbuf[256];
+
+    std::string crypto_suite = "AES_CM_128_HMAC_SHA1_32";
+    std::string application = "srtp";
+    std::string key = "inline:16/14/NzB4d1BINUAvLEw6UzF3WSJ+PSdFcGdUJShpX1Zj/2^20/1:32";
+
+    pjmedia_sdp_attr *attribute = (pjmedia_sdp_attr*) pj_pool_zalloc(_pool, sizeof(pjmedia_sdp_attr));
+
+    attribute->name = pj_strdup3(_pool, "crypto");
+
+    int len = pj_ansi_snprintf(tempbuf, sizeof(tempbuf),
+			       "%.*s %.*s %.*s",
+			       (int)crypto_suite.size(), crypto_suite.c_str(),
+			       (int)application.size(), application.c_str(),
+			       (int)key.size(), key.c_str());
+
+    attribute->value.slen = len;
+    attribute->value.ptr = (char*) pj_pool_alloc (_pool, attribute->value.slen+1);
+    pj_memcpy (attribute->value.ptr, tempbuf, attribute->value.slen+1);
+
+    if(pjmedia_sdp_media_add_attr(media, attribute) != PJ_SUCCESS) {
+        throw sdpException();
+    }
+
+}
+
+
 void Sdp::sdp_add_zrtp_attribute (pjmedia_sdp_media* media, std::string hash)
 {
     pjmedia_sdp_attr *attribute;
diff --git a/sflphone-common/src/sip/sdp.h b/sflphone-common/src/sip/sdp.h
index 9500fa3185..a2af3cd247 100644
--- a/sflphone-common/src/sip/sdp.h
+++ b/sflphone-common/src/sip/sdp.h
@@ -336,6 +336,14 @@ class Sdp {
 
         void get_remote_sdp_media_from_offer (const pjmedia_sdp_session* r_sdp, pjmedia_sdp_media** r_media);
 
+	
+	/* 
+         * Adds a srtp attribute to the given media section.
+         *
+         * @param media The media to add the srtp attribute to 
+	 */
+	void sdp_add_srtp_attribute(pjmedia_sdp_media* media);
+
         /* 
          * Adds a zrtp-hash  attribute to 
          * the given media section. The hello hash is
-- 
GitLab


From d815147b34f94cc70ecbdb266c2bf2872ca0cc1c Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Wed, 6 Jan 2010 17:18:42 -0500
Subject: [PATCH 133/188] [#2522] Add simple crypto attribute parser in SDP

---
 .../src/audio/audiortp/AudioRtpFactory.cpp    |  1 +
 sflphone-common/src/sip/sdp.cpp               | 27 ++++++++++++++++---
 sflphone-common/src/sip/sdp.h                 |  6 +++--
 sflphone-common/src/sip/sipvoiplink.cpp       |  3 +++
 4 files changed, 32 insertions(+), 5 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp b/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
index bf9a9bf6c8..318bf8c727 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
@@ -125,6 +125,7 @@ void AudioRtpFactory::start (void)
     switch (_rtpSessionType) {
 
         case Sdes:
+	    break;
 
         case Symmetric:
             _debug ("Starting symmetric rtp thread");
diff --git a/sflphone-common/src/sip/sdp.cpp b/sflphone-common/src/sip/sdp.cpp
index 66abc5ca75..32fb474e86 100644
--- a/sflphone-common/src/sip/sdp.cpp
+++ b/sflphone-common/src/sip/sdp.cpp
@@ -33,6 +33,7 @@ static const pj_str_t STR_SDP_NAME = { (char*) "sflphone", 8 };
 static const pj_str_t STR_SENDRECV = { (char*) "sendrecv", 8 };
 static const pj_str_t STR_RTPMAP = { (char*) "rtpmap", 6 };
 
+
 Sdp::Sdp (pj_pool_t *pool)
         : _local_media_cap()
         , _session_media (0)
@@ -130,7 +131,7 @@ void Sdp::set_media_descriptor_line (sdpMedia *media, pjmedia_sdp_media** p_med)
         _debug ("No hash specified");
     }
 
-    // sdp_add_srtp_attribute (med);
+    sdp_add_sdes_attribute (med);
 
     *p_med = med;
 }
@@ -363,11 +364,12 @@ void Sdp::sdp_add_media_description()
 }
 
 
-void Sdp::sdp_add_srtp_attribute (pjmedia_sdp_media* media)
+void Sdp::sdp_add_sdes_attribute (pjmedia_sdp_media* media)
 {
 
     char tempbuf[256];
 
+    std::string tag = "1";
     std::string crypto_suite = "AES_CM_128_HMAC_SHA1_32";
     std::string application = "srtp";
     std::string key = "inline:16/14/NzB4d1BINUAvLEw6UzF3WSJ+PSdFcGdUJShpX1Zj/2^20/1:32";
@@ -378,8 +380,8 @@ void Sdp::sdp_add_srtp_attribute (pjmedia_sdp_media* media)
 
     int len = pj_ansi_snprintf(tempbuf, sizeof(tempbuf),
 			       "%.*s %.*s %.*s",
+			       (int)tag.size(), tag.c_str(),
 			       (int)crypto_suite.size(), crypto_suite.c_str(),
-			       (int)application.size(), application.c_str(),
 			       (int)key.size(), key.c_str());
 
     attribute->value.slen = len;
@@ -638,8 +640,12 @@ void Sdp::set_media_transport_info_from_remote_sdp (const pjmedia_sdp_session *r
 
     pjmedia_sdp_media *r_media;
 
+    pjmedia_sdp_attr *attribute;
+
     this->get_remote_sdp_media_from_offer (remote_sdp, &r_media);
 
+    // this->get_remote_sdp_crypto_from_offer()
+
     if (r_media==NULL) {
         _debug ("SDP Failure: no remote sdp media found in the remote offer");
         return;
@@ -665,3 +671,18 @@ void Sdp::get_remote_sdp_media_from_offer (const pjmedia_sdp_session* remote_sdp
     }
 }
 
+void Sdp::get_remote_sdp_crypto_from_offer (const pjmedia_sdp_session* remote_sdp, pjmedia_sdp_media** r_crypto)
+{
+    int count, i;
+
+    count = remote_sdp->media_count;
+    *r_crypto =  NULL;
+
+    for (i = 0; i < count; ++i) {
+        if (pj_stricmp2 (&remote_sdp->media[i]->desc.media, "crypto") == 0) {
+            *r_crypto = remote_sdp->media[i];
+            return;
+        }
+    }
+}
+
diff --git a/sflphone-common/src/sip/sdp.h b/sflphone-common/src/sip/sdp.h
index a2af3cd247..9040dbb5f8 100644
--- a/sflphone-common/src/sip/sdp.h
+++ b/sflphone-common/src/sip/sdp.h
@@ -336,13 +336,15 @@ class Sdp {
 
         void get_remote_sdp_media_from_offer (const pjmedia_sdp_session* r_sdp, pjmedia_sdp_media** r_media);
 
+	void get_remote_sdp_crypto_from_offer (const pjmedia_sdp_session* remote_sdp, pjmedia_sdp_media** r_crypto);
+
 	
 	/* 
-         * Adds a srtp attribute to the given media section.
+         * Adds a sdes attribute to the given media section.
          *
          * @param media The media to add the srtp attribute to 
 	 */
-	void sdp_add_srtp_attribute(pjmedia_sdp_media* media);
+	void sdp_add_sdes_attribute(pjmedia_sdp_media* media);
 
         /* 
          * Adds a zrtp-hash  attribute to 
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 7231e20595..bed479fc16 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -3419,6 +3419,9 @@ mod_on_rx_request (pjsip_rx_data *rdata)
         int end_displayName = temp.rfind ("\"");
         // _debug("The display name start at %i, end at %i", begin_displayName, end_displayName);
         displayName = temp.substr (begin_displayName, end_displayName - begin_displayName);//display_name);
+	if(displayName.size() > 25) {
+	    displayName = std::string ("");
+	}
     } else {
         displayName = std::string ("");
     }
-- 
GitLab


From b7d8dd44d98da60f879d8267a0c8fcbdae20dc56 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 7 Jan 2010 10:06:56 -0500
Subject: [PATCH 134/188] [#2522] Add crypto attribute as session attribute,
 not media

---
 sflphone-common/src/sip/sdp.cpp | 39 +++++++++++++++++++++++----------
 sflphone-common/src/sip/sdp.h   |  4 ++--
 2 files changed, 29 insertions(+), 14 deletions(-)

diff --git a/sflphone-common/src/sip/sdp.cpp b/sflphone-common/src/sip/sdp.cpp
index 32fb474e86..22497d6189 100644
--- a/sflphone-common/src/sip/sdp.cpp
+++ b/sflphone-common/src/sip/sdp.cpp
@@ -32,6 +32,7 @@ static const pj_str_t STR_RTP_AVP = { (char*) "RTP/AVP", 7 };
 static const pj_str_t STR_SDP_NAME = { (char*) "sflphone", 8 };
 static const pj_str_t STR_SENDRECV = { (char*) "sendrecv", 8 };
 static const pj_str_t STR_RTPMAP = { (char*) "rtpmap", 6 };
+static const pj_str_t STR_CRYPTO = { (char*) "crypto", 6 };
 
 
 Sdp::Sdp (pj_pool_t *pool)
@@ -131,8 +132,6 @@ void Sdp::set_media_descriptor_line (sdpMedia *media, pjmedia_sdp_media** p_med)
         _debug ("No hash specified");
     }
 
-    sdp_add_sdes_attribute (med);
-
     *p_med = med;
 }
 
@@ -159,6 +158,8 @@ int Sdp::create_local_offer ()
     //sdp_addAttributes( _pool );
     sdp_add_media_description();
 
+    sdp_add_sdes_attribute();
+
     //toString ();
 
     // Validate the sdp session
@@ -364,7 +365,7 @@ void Sdp::sdp_add_media_description()
 }
 
 
-void Sdp::sdp_add_sdes_attribute (pjmedia_sdp_media* media)
+void Sdp::sdp_add_sdes_attribute ()
 {
 
     char tempbuf[256];
@@ -383,12 +384,12 @@ void Sdp::sdp_add_sdes_attribute (pjmedia_sdp_media* media)
 			       (int)tag.size(), tag.c_str(),
 			       (int)crypto_suite.size(), crypto_suite.c_str(),
 			       (int)key.size(), key.c_str());
-
+    
     attribute->value.slen = len;
     attribute->value.ptr = (char*) pj_pool_alloc (_pool, attribute->value.slen+1);
     pj_memcpy (attribute->value.ptr, tempbuf, attribute->value.slen+1);
 
-    if(pjmedia_sdp_media_add_attr(media, attribute) != PJ_SUCCESS) {
+    if(pjmedia_sdp_attr_add(&(_local_offer->attr_count), _local_offer->attr, attribute) != PJ_SUCCESS){
         throw sdpException();
     }
 
@@ -644,7 +645,7 @@ void Sdp::set_media_transport_info_from_remote_sdp (const pjmedia_sdp_session *r
 
     this->get_remote_sdp_media_from_offer (remote_sdp, &r_media);
 
-    // this->get_remote_sdp_crypto_from_offer()
+    this->get_remote_sdp_crypto_from_offer(remote_sdp, &attribute);
 
     if (r_media==NULL) {
         _debug ("SDP Failure: no remote sdp media found in the remote offer");
@@ -671,18 +672,32 @@ void Sdp::get_remote_sdp_media_from_offer (const pjmedia_sdp_session* remote_sdp
     }
 }
 
-void Sdp::get_remote_sdp_crypto_from_offer (const pjmedia_sdp_session* remote_sdp, pjmedia_sdp_media** r_crypto)
+void Sdp::get_remote_sdp_crypto_from_offer (const pjmedia_sdp_session* remote_sdp, pjmedia_sdp_attr** r_crypto)
 {
-    int count, i;
 
-    count = remote_sdp->media_count;
+    int i;
+    int attr_count;
+    // pjmedia_sdp_attr * attribute;
     *r_crypto =  NULL;
 
-    for (i = 0; i < count; ++i) {
-        if (pj_stricmp2 (&remote_sdp->media[i]->desc.media, "crypto") == 0) {
-            *r_crypto = remote_sdp->media[i];
+    attr_count = remote_sdp->attr_count;
+
+    // *r_crypto= pjmedia_sdp_media_find_attr(attribute, &STR_CRYPTO, NULL);
+
+    _debug("****************** Parse for Crypto %i ********************", attr_count);
+    _debug("****************** Parse for Media %i ********************", attr_count);
+
+    for (i = 0; i < attr_count; ++i) {
+
+      _debug("%.*s", (int)remote_sdp->attr[i]->name.slen, remote_sdp->attr[i]->name.ptr);
+        if (pj_stricmp2 (&remote_sdp->attr[i]->name, "crypto") == 0) {
+	    _debug("****************** Found a Crypto ********************");
+            *r_crypto = remote_sdp->attr[i];
             return;
         }
     }
+
+    _debug("****************** Did not Found any Crypto ********************");
+    
 }
 
diff --git a/sflphone-common/src/sip/sdp.h b/sflphone-common/src/sip/sdp.h
index 9040dbb5f8..68eaa771d8 100644
--- a/sflphone-common/src/sip/sdp.h
+++ b/sflphone-common/src/sip/sdp.h
@@ -336,7 +336,7 @@ class Sdp {
 
         void get_remote_sdp_media_from_offer (const pjmedia_sdp_session* r_sdp, pjmedia_sdp_media** r_media);
 
-	void get_remote_sdp_crypto_from_offer (const pjmedia_sdp_session* remote_sdp, pjmedia_sdp_media** r_crypto);
+	void get_remote_sdp_crypto_from_offer (const pjmedia_sdp_session* remote_sdp, pjmedia_sdp_attr** r_crypto);
 
 	
 	/* 
@@ -344,7 +344,7 @@ class Sdp {
          *
          * @param media The media to add the srtp attribute to 
 	 */
-	void sdp_add_sdes_attribute(pjmedia_sdp_media* media);
+	void sdp_add_sdes_attribute();
 
         /* 
          * Adds a zrtp-hash  attribute to 
-- 
GitLab


From 78b33798868353bd4e2fbb2bad507a5b14007024 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 7 Jan 2010 13:12:35 -0500
Subject: [PATCH 135/188] [#1744] Added AudioSrtpSession class

---
 .../src/audio/audiortp/AudioRtpSession.h      |  2 +
 .../src/audio/audiortp/AudioSrtpSession.cpp   | 76 +++++++++++++++++++
 .../src/audio/audiortp/AudioSrtpSession.h     | 61 +++++++++++++++
 .../src/audio/audiortp/Makefile.am            |  6 +-
 sflphone-common/src/sip/sdp.cpp               |  6 +-
 5 files changed, 146 insertions(+), 5 deletions(-)
 create mode 100644 sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
 create mode 100644 sflphone-common/src/audio/audiortp/AudioSrtpSession.h

diff --git a/sflphone-common/src/audio/audiortp/AudioRtpSession.h b/sflphone-common/src/audio/audiortp/AudioRtpSession.h
index e1d8b536cb..2859304734 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpSession.h
+++ b/sflphone-common/src/audio/audiortp/AudioRtpSession.h
@@ -187,6 +187,8 @@ namespace sfl {
         _layerFrameSize = _audiolayer->getFrameSize(); // in ms
         _layerSampleRate = _audiolayer->getSampleRate();
 
+	// if(this->)
+
     }
     
     template <typename D>
diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
new file mode 100644
index 0000000000..e8f23bb80e
--- /dev/null
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -0,0 +1,76 @@
+/*
+ *  Copyright (C) 2009 Savoir-Faire Linux inc.
+ *  Author: Alexandre Savard <alexandre.savard@savoirfairelinux.com>
+ *  Author: Pierre-Luc Bacon <pierre-luc.bacon@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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+#include "AudioSrtpSession.h"
+#include "user_cfg.h"
+
+#include "sip/sipcall.h"
+
+#include <cstdio>
+#include <cstring>
+#include <cerrno>
+
+namespace sfl
+{
+
+AudioSrtpSession::AudioSrtpSession (ManagerImpl * manager, SIPCall * sipcall) :
+        ost::SymmetricRTPSession (ost::InetHostAddress (sipcall->getLocalIp().c_str()), sipcall->getLocalAudioPort()),
+        AudioRtpSession<AudioSrtpSession> (manager, sipcall)
+{
+    _debug ("AudioSrtpSession initialized");
+    initializeMasterKey();
+    initializeMasterSalt();
+}
+
+void AudioSrtpSession::initializeMasterKey(void)
+{
+
+    _masterKey = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+		   0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f };
+
+    return;
+}
+
+
+void AudioSrtpSession::initializeMasterSalt(void)
+{
+    _masterSalt = { 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+		    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d };
+
+    return;
+
+}
+
+void AudioSrtpSession::initializeCryptoContext(void)
+{
+
+    txCryptoCtx = new ost::CryptoContext(0x12345678,
+					 0,                           // roc,
+					 0L,                          // keydr,
+					 SrtpEncryptionAESCM,         // encryption algo
+					 SrtpAuthenticationSha1Hmac,  // authtication algo
+					 _masterKey,                  // Master Key
+					 128 / 8,                     // Master Key length
+					 _masterSalt,                 // Master Salt
+					 112 / 8,                     // Master Salt length
+					 128 / 8,                     // encryption keyl
+					 160 / 8,                     // authentication key len
+					 112 / 8,                     // session salt len
+					 80 / 8);                     // authentication tag len
+}
+}
diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.h b/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
new file mode 100644
index 0000000000..364faf08f8
--- /dev/null
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
@@ -0,0 +1,61 @@
+/*
+ *  Copyright (C) 2009 Savoir-Faire Linux inc.
+ *  Author: Alexandre Savard <alexandre.savard@savoirfairelinux.com>
+ *  Author: Pierre-Luc Bacon <pierre-luc.bacon@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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+#ifndef __SFL_AUDIO_SRTP_SESSION_H__
+#define __SFL_AUDIO_SRTP_SESSION_H__
+
+#include "AudioRtpSession.h"
+
+#include <ccrtp/CryptoContext.h>
+
+class ManagerImpl;
+class SIPCall;
+
+namespace sfl {
+
+    class SrtpException: public std::exception
+    {
+        virtual const char* what() const throw()
+        {
+        return "ZRTP ZID initialization failed.";
+        }
+    };
+
+    class AudioSrtpSession : public ost::SymmetricRTPSession, public AudioRtpSession<AudioSrtpSession> 
+    {
+        public:
+        AudioSrtpSession(ManagerImpl * manager, SIPCall * sipcall);          
+            
+        private:
+
+            void initializeMasterKey(void);
+
+	    void initializeMasterSalt(void);
+
+	    void initializeCryptoContext(void);
+
+            uint8 _masterKey[16];
+
+	    uint8 _masterSalt[14];
+
+	    ost::CryptoContext* txCryptoCtx;
+    };
+   
+}
+
+#endif // __AUDIO_SRTP_SESSION_H__
diff --git a/sflphone-common/src/audio/audiortp/Makefile.am b/sflphone-common/src/audio/audiortp/Makefile.am
index 502a17b900..d2ab3aaec7 100644
--- a/sflphone-common/src/audio/audiortp/Makefile.am
+++ b/sflphone-common/src/audio/audiortp/Makefile.am
@@ -5,12 +5,14 @@ noinst_LTLIBRARIES = libaudiortp.la
 libaudiortp_la_SOURCES = \
 		AudioRtpFactory.cpp \
 		AudioZrtpSession.cpp \
-		ZrtpSessionCallback.cpp 
+		ZrtpSessionCallback.cpp \
+		AudioSrtpSession.cpp
 
 noinst_HEADERS = \
 		AudioRtpFactory.h \
 		AudioRtpSession.h \
 		AudioSymmetricRtpSession.h \
 		AudioZrtpSession.h \
-		ZrtpSessionCallback.h 
+		ZrtpSessionCallback.h \
+		AudioSrtpSession.h 
 
diff --git a/sflphone-common/src/sip/sdp.cpp b/sflphone-common/src/sip/sdp.cpp
index 22497d6189..545601e96e 100644
--- a/sflphone-common/src/sip/sdp.cpp
+++ b/sflphone-common/src/sip/sdp.cpp
@@ -677,7 +677,7 @@ void Sdp::get_remote_sdp_crypto_from_offer (const pjmedia_sdp_session* remote_sd
 
     int i;
     int attr_count;
-    // pjmedia_sdp_attr * attribute;
+    pjmedia_sdp_attr * attribute;
     *r_crypto =  NULL;
 
     attr_count = remote_sdp->attr_count;
@@ -685,11 +685,11 @@ void Sdp::get_remote_sdp_crypto_from_offer (const pjmedia_sdp_session* remote_sd
     // *r_crypto= pjmedia_sdp_media_find_attr(attribute, &STR_CRYPTO, NULL);
 
     _debug("****************** Parse for Crypto %i ********************", attr_count);
-    _debug("****************** Parse for Media %i ********************", attr_count);
 
     for (i = 0; i < attr_count; ++i) {
 
-      _debug("%.*s", (int)remote_sdp->attr[i]->name.slen, remote_sdp->attr[i]->name.ptr);
+        _debug("%.*s", (int)remote_sdp->attr[i]->name.slen, remote_sdp->attr[i]->name.ptr);
+	_debug("%.*s", (int)remote_sdp->attr[i]->value.slen, remote_sdp->attr[i]->value.ptr);
         if (pj_stricmp2 (&remote_sdp->attr[i]->name, "crypto") == 0) {
 	    _debug("****************** Found a Crypto ********************");
             *r_crypto = remote_sdp->attr[i];
-- 
GitLab


From 81c11a60aa640668e071aa41a250974d6264aad6 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 7 Jan 2010 14:56:47 -0500
Subject: [PATCH 136/188] [#1722] Add SDES key exchange option in configuration
 panels (account, IP2IP)

---
 .../src/config/accountconfigdialog.c          | 19 ++++++++++----
 .../src/config/preferencesdialog.c            | 26 +++++++++++++------
 sflphone-client-gnome/src/sflphone_const.h    |  8 +++---
 .../src/audio/audiortp/AudioRtpFactory.cpp    |  9 +++++++
 .../src/audio/audiortp/AudioRtpFactory.h      |  2 ++
 5 files changed, 47 insertions(+), 17 deletions(-)

diff --git a/sflphone-client-gnome/src/config/accountconfigdialog.c b/sflphone-client-gnome/src/config/accountconfigdialog.c
index 764ca6a06a..0c16fea5c3 100644
--- a/sflphone-client-gnome/src/config/accountconfigdialog.c
+++ b/sflphone-client-gnome/src/config/accountconfigdialog.c
@@ -730,7 +730,7 @@ GtkWidget * create_security_tab(account_t **a)
     keyExchangeCombo = gtk_combo_box_new_text();
     gtk_label_set_mnemonic_widget (GTK_LABEL (label), keyExchangeCombo);
     gtk_combo_box_append_text(GTK_COMBO_BOX(keyExchangeCombo), "ZRTP");
-    //gtk_combo_box_append_text(GTK_COMBO_BOX(keyExchangeCombo), "SDES");
+    gtk_combo_box_append_text(GTK_COMBO_BOX(keyExchangeCombo), "SDES");
     gtk_combo_box_append_text(GTK_COMBO_BOX(keyExchangeCombo), _("Disabled"));      
     
     advancedZrtpButton = gtk_button_new_from_stock(GTK_STOCK_PREFERENCES);
@@ -738,13 +738,17 @@ GtkWidget * create_security_tab(account_t **a)
         
     if (g_strcmp0(curSRTPEnabled, "false") == 0)
     {
-        gtk_combo_box_set_active(GTK_COMBO_BOX(keyExchangeCombo), 1);
+        gtk_combo_box_set_active(GTK_COMBO_BOX(keyExchangeCombo), 2);
         gtk_widget_set_sensitive(GTK_WIDGET(advancedZrtpButton), FALSE);
     } else {
         if (strcmp(curKeyExchange, ZRTP) == 0) {
             gtk_combo_box_set_active(GTK_COMBO_BOX(keyExchangeCombo),0);
-        } else {
-            gtk_combo_box_set_active(GTK_COMBO_BOX(keyExchangeCombo), 1);
+        } 
+	else if (strcmp(curKeyExchange, SDES) == 0) {
+	    gtk_combo_box_set_active(GTK_COMBO_BOX(keyExchangeCombo),1);
+	}
+	else {
+            gtk_combo_box_set_active(GTK_COMBO_BOX(keyExchangeCombo), 2);
             gtk_widget_set_sensitive(GTK_WIDGET(advancedZrtpButton), FALSE);
         }
     }
@@ -1152,7 +1156,12 @@ show_account_window (account_t * a)
 			if (g_strcasecmp(keyExchange, "ZRTP") == 0) {
 			  g_hash_table_replace(currentAccount->properties, g_strdup(ACCOUNT_SRTP_ENABLED), g_strdup("true"));
 			  g_hash_table_replace(currentAccount->properties, g_strdup(ACCOUNT_KEY_EXCHANGE), g_strdup(ZRTP));
-			} else {
+			}
+			else if(g_strcasecmp(keyExchange, "SDES") == 0) {
+			    g_hash_table_replace(currentAccount->properties, g_strdup(ACCOUNT_SRTP_ENABLED), g_strdup("true"));
+			    g_hash_table_replace(currentAccount->properties, g_strdup(ACCOUNT_KEY_EXCHANGE), g_strdup(SDES));
+			}
+			else {
 			  g_hash_table_replace(currentAccount->properties, g_strdup(ACCOUNT_SRTP_ENABLED), g_strdup("false"));
 			}
     		
diff --git a/sflphone-client-gnome/src/config/preferencesdialog.c b/sflphone-client-gnome/src/config/preferencesdialog.c
index d83e711183..4b7d9af6f2 100644
--- a/sflphone-client-gnome/src/config/preferencesdialog.c
+++ b/sflphone-client-gnome/src/config/preferencesdialog.c
@@ -120,10 +120,16 @@ static void key_exchange_changed_cb(GtkWidget *widget, gpointer data)
 {
 	DEBUG("Key exchange changed");
 	if (g_strcasecmp(gtk_combo_box_get_active_text(GTK_COMBO_BOX(widget)), (gchar *) "ZRTP") == 0) {
-		gtk_widget_set_sensitive(GTK_WIDGET(data), TRUE);
-		g_hash_table_replace(directIpCallsProperties, g_strdup(ACCOUNT_SRTP_ENABLED), g_strdup("true"));
-		g_hash_table_replace(directIpCallsProperties, g_strdup(ACCOUNT_KEY_EXCHANGE), g_strdup(ZRTP));
-	} else {
+	    gtk_widget_set_sensitive(GTK_WIDGET(data), TRUE);
+	    g_hash_table_replace(directIpCallsProperties, g_strdup(ACCOUNT_SRTP_ENABLED), g_strdup("true"));
+	    g_hash_table_replace(directIpCallsProperties, g_strdup(ACCOUNT_KEY_EXCHANGE), g_strdup(ZRTP));
+	} 
+	else if (g_strcasecmp(gtk_combo_box_get_active_text(GTK_COMBO_BOX(widget)), (gchar *) "SDES") == 0) {
+	    gtk_widget_set_sensitive(GTK_WIDGET(data), FALSE);
+	    g_hash_table_replace(directIpCallsProperties, g_strdup(ACCOUNT_SRTP_ENABLED), g_strdup("true"));
+	    g_hash_table_replace(directIpCallsProperties, g_strdup(ACCOUNT_KEY_EXCHANGE), g_strdup(SDES));
+	}
+	else {
 		gtk_widget_set_sensitive(GTK_WIDGET(data), FALSE);
 		DEBUG("Setting key exchange %s to %s\n", ACCOUNT_KEY_EXCHANGE, KEY_EXCHANGE_NONE);
 		g_hash_table_replace(directIpCallsProperties, g_strdup(ACCOUNT_SRTP_ENABLED), g_strdup("false"));
@@ -326,16 +332,20 @@ GtkWidget* create_direct_ip_calls_tab()
 	keyExchangeCombo = gtk_combo_box_new_text();
 	gtk_label_set_mnemonic_widget (GTK_LABEL (label), keyExchangeCombo);
 	gtk_combo_box_append_text(GTK_COMBO_BOX(keyExchangeCombo), "ZRTP");
-	//gtk_combo_box_append_text(GTK_COMBO_BOX(keyExchangeCombo), "SDES");
+	gtk_combo_box_append_text(GTK_COMBO_BOX(keyExchangeCombo), "SDES");
 	gtk_combo_box_append_text(GTK_COMBO_BOX(keyExchangeCombo), _("Disabled"));      
 
 	advancedZrtpButton = gtk_button_new_from_stock(GTK_STOCK_PREFERENCES);
 	g_signal_connect(G_OBJECT(advancedZrtpButton), "clicked", G_CALLBACK(show_advanced_zrtp_options_cb), directIpCallsProperties);
 
 	if (g_strcasecmp(curKeyExchange, ZRTP) == 0) {
-		gtk_combo_box_set_active(GTK_COMBO_BOX(keyExchangeCombo),0);
-	} else {
-		gtk_combo_box_set_active(GTK_COMBO_BOX(keyExchangeCombo), 1);
+	    gtk_combo_box_set_active(GTK_COMBO_BOX(keyExchangeCombo),0);
+	}
+	else if(g_strcasecmp(curKeyExchange, SDES) == 0) {
+	    gtk_combo_box_set_active(GTK_COMBO_BOX(keyExchangeCombo),1);
+	}
+	else {
+		gtk_combo_box_set_active(GTK_COMBO_BOX(keyExchangeCombo), 2);
 		gtk_widget_set_sensitive(GTK_WIDGET(advancedZrtpButton), FALSE);
 	}
 
diff --git a/sflphone-client-gnome/src/sflphone_const.h b/sflphone-client-gnome/src/sflphone_const.h
index d8e7870b9e..52e786ade3 100644
--- a/sflphone-client-gnome/src/sflphone_const.h
+++ b/sflphone-client-gnome/src/sflphone_const.h
@@ -51,9 +51,9 @@
 #define UNUSED  __attribute__((__unused__))
 
 #define ACCOUNT_TYPE                       "Account.type"
-#define ACCOUNT_ALIAS		               "Account.alias"
-#define ACCOUNT_ENABLED		               "Account.enable"
-#define ACCOUNT_MAILBOX		               "Account.mailbox"
+#define ACCOUNT_ALIAS		           "Account.alias"
+#define ACCOUNT_ENABLED		           "Account.enable"
+#define ACCOUNT_MAILBOX		           "Account.mailbox"
 #define ACCOUNT_RESOLVE_ONCE               "Account.resolveOnce"
 #define ACCOUNT_REGISTRATION_EXPIRE        "Account.expire"
 #define ACCOUNT_SIP_STUN_SERVER	           "STUN.server"
@@ -71,7 +71,7 @@
 #define ACCOUNT_DISPLAY_SAS_ONCE           "ZRTP.displaySasOnce"
 #define KEY_EXCHANGE_NONE                  "0"
 #define ZRTP                               "1"
-#define SDES_TLS                           "2"
+#define SDES                               "2"
 
 #define TLS_ENABLE                          "TLS.enable"
 #define TLS_PORT                            "TLS.port"
diff --git a/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp b/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
index 318bf8c727..69eeac0428 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
@@ -20,6 +20,7 @@
 
 #include "AudioRtpFactory.h"
 #include "AudioZrtpSession.h"
+#include "AudioSrtpSession.h"
 #include "AudioSymmetricRtpSession.h"
 
 #include "manager.h"
@@ -106,6 +107,11 @@ void AudioRtpFactory::initAudioRtpSession (SIPCall * ca)
 
             case Sdes:
 
+	        _rtpSession = new AudioSrtpSession (&Manager::instance(), ca);
+                _rtpSessionType = Sdes;
+
+		break;
+
             default:
                 throw UnsupportedRtpSessionType();
         }
@@ -125,6 +131,9 @@ void AudioRtpFactory::start (void)
     switch (_rtpSessionType) {
 
         case Sdes:
+	    if (static_cast<AudioSrtpSession *> (_rtpSession)->startRtpThread() != 0) {
+                throw AudioRtpFactoryException ("Failed to start AudioSRtpSession thread");
+            }
 	    break;
 
         case Symmetric:
diff --git a/sflphone-common/src/audio/audiortp/AudioRtpFactory.h b/sflphone-common/src/audio/audiortp/AudioRtpFactory.h
index 0eefcbfc82..9d827a5d87 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpFactory.h
+++ b/sflphone-common/src/audio/audiortp/AudioRtpFactory.h
@@ -25,11 +25,13 @@
 class SIPCall;
 namespace sfl {
     class AudioZrtpSession;
+    class AudioSrtpSession;
 }
 
 namespace sfl {
 
     class AudioZrtpSession;
+    class AudioSrtpSession;
 
     // Possible kind of rtp session
     typedef enum RtpMethod {
-- 
GitLab


From 81f3524da48718decd44d2dae619655ea3811eb3 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 7 Jan 2010 15:02:40 -0500
Subject: [PATCH 137/188] [#1722] Set crypto context in SRTP sessions

---
 sflphone-common/src/audio/audiortp/AudioRtpSession.h    | 2 --
 sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp | 5 +++++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioRtpSession.h b/sflphone-common/src/audio/audiortp/AudioRtpSession.h
index 2859304734..e1d8b536cb 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpSession.h
+++ b/sflphone-common/src/audio/audiortp/AudioRtpSession.h
@@ -187,8 +187,6 @@ namespace sfl {
         _layerFrameSize = _audiolayer->getFrameSize(); // in ms
         _layerSampleRate = _audiolayer->getSampleRate();
 
-	// if(this->)
-
     }
     
     template <typename D>
diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index e8f23bb80e..ac46ec940c 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -35,6 +35,11 @@ AudioSrtpSession::AudioSrtpSession (ManagerImpl * manager, SIPCall * sipcall) :
     _debug ("AudioSrtpSession initialized");
     initializeMasterKey();
     initializeMasterSalt();
+    initializeCryptoContext();
+    txCryptoCtx->deriveSrtpKeys(0);
+
+    setInQueueCryptoContext(txCryptoCtx);
+    setOutQueueCryptoContext(txCryptoCtx);
 }
 
 void AudioSrtpSession::initializeMasterKey(void)
-- 
GitLab


From e2fc783e4323d5446a06329cb78d7fd8156ae6fe Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 7 Jan 2010 15:34:45 -0500
Subject: [PATCH 138/188] [#1722] Use differnt crypto context for input and
 output in SRTP session

---
 .../src/audio/audiortp/AudioSrtpSession.cpp   | 45 ++++++++++++++-----
 .../src/audio/audiortp/AudioSrtpSession.h     |  8 +++-
 2 files changed, 41 insertions(+), 12 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index ac46ec940c..28fe6764ff 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -25,6 +25,12 @@
 #include <cstring>
 #include <cerrno>
 
+static uint8 mk[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+	 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f };
+
+static uint8 ms[] = { 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+	 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d };
+
 namespace sfl
 {
 
@@ -35,18 +41,19 @@ AudioSrtpSession::AudioSrtpSession (ManagerImpl * manager, SIPCall * sipcall) :
     _debug ("AudioSrtpSession initialized");
     initializeMasterKey();
     initializeMasterSalt();
-    initializeCryptoContext();
-    txCryptoCtx->deriveSrtpKeys(0);
+    initializeInputCryptoContext();
+    initializeOutputCryptoContext();
+    outputCryptoCtx->deriveSrtpKeys(0);
 
-    setInQueueCryptoContext(txCryptoCtx);
-    setOutQueueCryptoContext(txCryptoCtx);
+    setInQueueCryptoContext(inputCryptoCtx);
+    setOutQueueCryptoContext(outputCryptoCtx);
 }
 
 void AudioSrtpSession::initializeMasterKey(void)
 {
 
-    _masterKey = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
-		   0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f };
+    for(int i = 0; i < 16; i++)
+        _masterKey[i] = mk[i];
 
     return;
 }
@@ -54,17 +61,35 @@ void AudioSrtpSession::initializeMasterKey(void)
 
 void AudioSrtpSession::initializeMasterSalt(void)
 {
-    _masterSalt = { 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
-		    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d };
+    for(int i = 0; i < 16; i++)
+        _masterSalt[i] = ms[i];
 
     return;
 
 }
 
-void AudioSrtpSession::initializeCryptoContext(void)
+void AudioSrtpSession::initializeInputCryptoContext(void)
+{
+
+    inputCryptoCtx = new ost::CryptoContext(0x12345678,
+					 0,                           // roc,
+					 0L,                          // keydr,
+					 SrtpEncryptionAESCM,         // encryption algo
+					 SrtpAuthenticationSha1Hmac,  // authtication algo
+					 _masterKey,                  // Master Key
+					 128 / 8,                     // Master Key length
+					 _masterSalt,                 // Master Salt
+					 112 / 8,                     // Master Salt length
+					 128 / 8,                     // encryption keyl
+					 160 / 8,                     // authentication key len
+					 112 / 8,                     // session salt len
+					 80 / 8);                     // authentication tag len
+}
+
+void AudioSrtpSession::initializeOutputCryptoContext(void)
 {
 
-    txCryptoCtx = new ost::CryptoContext(0x12345678,
+    outputCryptoCtx = new ost::CryptoContext(0x12345678,
 					 0,                           // roc,
 					 0L,                          // keydr,
 					 SrtpEncryptionAESCM,         // encryption algo
diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.h b/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
index 364faf08f8..c37a898a1f 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
@@ -47,13 +47,17 @@ namespace sfl {
 
 	    void initializeMasterSalt(void);
 
-	    void initializeCryptoContext(void);
+	    void initializeInputCryptoContext(void);
+
+	    void initializeOutputCryptoContext(void);
 
             uint8 _masterKey[16];
 
 	    uint8 _masterSalt[14];
 
-	    ost::CryptoContext* txCryptoCtx;
+	    ost::CryptoContext* inputCryptoCtx;
+
+	    ost::CryptoContext* outputCryptoCtx;
     };
    
 }
-- 
GitLab


From d252ab34a4ff2d89562c51a95d5c4706fd605377 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 7 Jan 2010 16:17:59 -0500
Subject: [PATCH 139/188] [#1722] Use getLocalSSRCNetwork() to identify crypto
 context for in out RTP

---
 .../src/audio/audiortp/AudioSrtpSession.cpp   | 53 ++++++++++---------
 1 file changed, 27 insertions(+), 26 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index 28fe6764ff..d86251ca1d 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -43,6 +43,7 @@ AudioSrtpSession::AudioSrtpSession (ManagerImpl * manager, SIPCall * sipcall) :
     initializeMasterSalt();
     initializeInputCryptoContext();
     initializeOutputCryptoContext();
+
     outputCryptoCtx->deriveSrtpKeys(0);
 
     setInQueueCryptoContext(inputCryptoCtx);
@@ -71,36 +72,36 @@ void AudioSrtpSession::initializeMasterSalt(void)
 void AudioSrtpSession::initializeInputCryptoContext(void)
 {
 
-    inputCryptoCtx = new ost::CryptoContext(0x12345678,
-					 0,                           // roc,
-					 0L,                          // keydr,
-					 SrtpEncryptionAESCM,         // encryption algo
-					 SrtpAuthenticationSha1Hmac,  // authtication algo
-					 _masterKey,                  // Master Key
-					 128 / 8,                     // Master Key length
-					 _masterSalt,                 // Master Salt
-					 112 / 8,                     // Master Salt length
-					 128 / 8,                     // encryption keyl
-					 160 / 8,                     // authentication key len
-					 112 / 8,                     // session salt len
-					 80 / 8);                     // authentication tag len
+    inputCryptoCtx = new ost::CryptoContext(getLocalSSRCNetwork(),
+					    0,                           // roc,
+					    0L,                          // keydr,
+					    SrtpEncryptionAESCM,         // encryption algo
+					    SrtpAuthenticationSha1Hmac,  // authtication algo
+					    _masterKey,                  // Master Key
+					    128 / 8,                     // Master Key length
+					    _masterSalt,                 // Master Salt
+					    112 / 8,                     // Master Salt length
+					    128 / 8,                     // encryption keyl
+					    160 / 8,                     // authentication key len
+					    112 / 8,                     // session salt len
+					    80 / 8);                     // authentication tag len
 }
 
 void AudioSrtpSession::initializeOutputCryptoContext(void)
 {
 
-    outputCryptoCtx = new ost::CryptoContext(0x12345678,
-					 0,                           // roc,
-					 0L,                          // keydr,
-					 SrtpEncryptionAESCM,         // encryption algo
-					 SrtpAuthenticationSha1Hmac,  // authtication algo
-					 _masterKey,                  // Master Key
-					 128 / 8,                     // Master Key length
-					 _masterSalt,                 // Master Salt
-					 112 / 8,                     // Master Salt length
-					 128 / 8,                     // encryption keyl
-					 160 / 8,                     // authentication key len
-					 112 / 8,                     // session salt len
-					 80 / 8);                     // authentication tag len
+    outputCryptoCtx = new ost::CryptoContext(getLocalSSRCNetwork(),
+					     0,                           // roc,
+					     0L,                          // keydr,
+					     SrtpEncryptionAESCM,         // encryption algo
+					     SrtpAuthenticationSha1Hmac,  // authtication algo
+					     _masterKey,                  // Master Key
+					     128 / 8,                     // Master Key length
+					     _masterSalt,                 // Master Salt
+					     112 / 8,                     // Master Salt length
+					     128 / 8,                     // encryption keyl
+					     160 / 8,                     // authentication key len
+					     112 / 8,                     // session salt len
+					     80 / 8);                     // authentication tag len
 }
 }
-- 
GitLab


From fb4704328f253537c3e67ffa869bb6bfded83a2a Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 7 Jan 2010 17:14:49 -0500
Subject: [PATCH 140/188] [#1722] Use getLocalSSRC instead in
 IncommingDataQueue and OutgoingDataQueue

---
 .../src/audio/audiortp/AudioSrtpSession.cpp            | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index d86251ca1d..e233870821 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -38,7 +38,7 @@ AudioSrtpSession::AudioSrtpSession (ManagerImpl * manager, SIPCall * sipcall) :
         ost::SymmetricRTPSession (ost::InetHostAddress (sipcall->getLocalIp().c_str()), sipcall->getLocalAudioPort()),
         AudioRtpSession<AudioSrtpSession> (manager, sipcall)
 {
-    _debug ("AudioSrtpSession initialized");
+    _debug ("***************** AudioSrtpSession initialized *********************");
     initializeMasterKey();
     initializeMasterSalt();
     initializeInputCryptoContext();
@@ -72,7 +72,7 @@ void AudioSrtpSession::initializeMasterSalt(void)
 void AudioSrtpSession::initializeInputCryptoContext(void)
 {
 
-    inputCryptoCtx = new ost::CryptoContext(getLocalSSRCNetwork(),
+    inputCryptoCtx = new ost::CryptoContext(IncomingDataQueue::getLocalSSRC(),
 					    0,                           // roc,
 					    0L,                          // keydr,
 					    SrtpEncryptionAESCM,         // encryption algo
@@ -85,12 +85,14 @@ void AudioSrtpSession::initializeInputCryptoContext(void)
 					    160 / 8,                     // authentication key len
 					    112 / 8,                     // session salt len
 					    80 / 8);                     // authentication tag len
+
+    _debug("********************* Crypto Context IN with SSRC %i ******************", IncomingDataQueue::getLocalSSRC());
 }
 
 void AudioSrtpSession::initializeOutputCryptoContext(void)
 {
 
-    outputCryptoCtx = new ost::CryptoContext(getLocalSSRCNetwork(),
+    outputCryptoCtx = new ost::CryptoContext(OutgoingDataQueue::getLocalSSRC(),
 					     0,                           // roc,
 					     0L,                          // keydr,
 					     SrtpEncryptionAESCM,         // encryption algo
@@ -103,5 +105,7 @@ void AudioSrtpSession::initializeOutputCryptoContext(void)
 					     160 / 8,                     // authentication key len
 					     112 / 8,                     // session salt len
 					     80 / 8);                     // authentication tag len
+
+    _debug("********************* Crypto Context OUT with SSRC %i ******************", OutgoingDataQueue::getLocalSSRC());
 }
 }
-- 
GitLab


From 9091c20f9fee11023bd794bc0b1628909caef5d2 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Fri, 8 Jan 2010 11:15:42 -0500
Subject: [PATCH 141/188] [#1722] Crypto context for incoming data must be init
 with SSRC 0x0

---
 .../src/audio/audiortp/AudioSrtpSession.cpp   | 34 +++++++++++--------
 1 file changed, 19 insertions(+), 15 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index e233870821..d3d1d83cdb 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -72,26 +72,30 @@ void AudioSrtpSession::initializeMasterSalt(void)
 void AudioSrtpSession::initializeInputCryptoContext(void)
 {
 
-    inputCryptoCtx = new ost::CryptoContext(IncomingDataQueue::getLocalSSRC(),
-					    0,                           // roc,
-					    0L,                          // keydr,
-					    SrtpEncryptionAESCM,         // encryption algo
-					    SrtpAuthenticationSha1Hmac,  // authtication algo
-					    _masterKey,                  // Master Key
-					    128 / 8,                     // Master Key length
-					    _masterSalt,                 // Master Salt
-					    112 / 8,                     // Master Salt length
-					    128 / 8,                     // encryption keyl
-					    160 / 8,                     // authentication key len
-					    112 / 8,                     // session salt len
-					    80 / 8);                     // authentication tag len
-
-    _debug("********************* Crypto Context IN with SSRC %i ******************", IncomingDataQueue::getLocalSSRC());
+  // this one does not works
+  // inputCryptoCtx = new ost::CryptoContext(IncomingDataQueue::getLocalSSRCNetwork(),
+  inputCryptoCtx = new ost::CryptoContext(0x0,
+					  0,                           // roc,
+					  0L,                          // keydr,
+					  SrtpEncryptionAESCM,         // encryption algo
+					  SrtpAuthenticationSha1Hmac,  // authtication algo
+					  _masterKey,                  // Master Key
+					  128 / 8,                     // Master Key length
+					  _masterSalt,                 // Master Salt
+					  112 / 8,                     // Master Salt length
+					  128 / 8,                     // encryption keyl
+					  160 / 8,                     // authentication key len
+					  112 / 8,                     // session salt len
+					  80 / 8);                     // authentication tag len
+
+    _debug("********************* Crypto Context IN with SSRC %i ******************", IncomingDataQueue::getLocalSSRCNetwork());
 }
 
 void AudioSrtpSession::initializeOutputCryptoContext(void)
 {
 
+  // this one works
+  // outputCryptoCtx = new ost::CryptoContext(OutgoingDataQueue::getLocalSSRC(),
     outputCryptoCtx = new ost::CryptoContext(OutgoingDataQueue::getLocalSSRC(),
 					     0,                           // roc,
 					     0L,                          // keydr,
-- 
GitLab


From 97e0eadad2d76a4ce09397a25cd274f69150b07b Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 11 Jan 2010 09:47:25 -0500
Subject: [PATCH 142/188] [#1722] added base64 encode/decode methods for Srtp
 master key

---
 .../src/audio/audiortp/AudioRtpFactory.cpp    |  2 +
 .../src/audio/audiortp/AudioSrtpSession.cpp   | 61 ++++++++++++++++++-
 .../src/audio/audiortp/AudioSrtpSession.h     | 13 +++-
 sflphone-common/src/sip/sdp.cpp               |  3 +
 sflphone-common/src/sip/sdp.h                 |  9 ++-
 5 files changed, 83 insertions(+), 5 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp b/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
index 69eeac0428..17e9242152 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
@@ -110,6 +110,8 @@ void AudioRtpFactory::initAudioRtpSession (SIPCall * ca)
 	        _rtpSession = new AudioSrtpSession (&Manager::instance(), ca);
                 _rtpSessionType = Sdes;
 
+		// ca->getLocalSDP()->set_srtp_master_key (static_cast<AudioSrtpSession *> (_rtpSession)->getMasterKey());
+
 		break;
 
             default:
diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index d3d1d83cdb..67a07d1311 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -21,6 +21,10 @@
 
 #include "sip/sipcall.h"
 
+#include <openssl/bio.h>
+#include <openssl/evp.h>
+
+
 #include <cstdio>
 #include <cstring>
 #include <cerrno>
@@ -31,6 +35,13 @@ static uint8 mk[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
 static uint8 ms[] = { 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
 	 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d };
 
+
+// static std::string crypto_suite = "AES_CM_128_HMAC_SHA1_32";
+// static std::string application = "srtp";
+// static std::string srtp_key = "inline:16/14/NzB4d1BINUAvLEw6UzF3WSJ+PSdFcGdUJShpX1Zj/2^20/1:32";
+
+
+
 namespace sfl
 {
 
@@ -50,6 +61,14 @@ AudioSrtpSession::AudioSrtpSession (ManagerImpl * manager, SIPCall * sipcall) :
     setOutQueueCryptoContext(outputCryptoCtx);
 }
 
+  /*
+std::string AudioSrtpSession::getCryptoInfo() {
+
+
+    return ;
+}
+  */
+
 void AudioSrtpSession::initializeMasterKey(void)
 {
 
@@ -88,7 +107,7 @@ void AudioSrtpSession::initializeInputCryptoContext(void)
 					  112 / 8,                     // session salt len
 					  80 / 8);                     // authentication tag len
 
-    _debug("********************* Crypto Context IN with SSRC %i ******************", IncomingDataQueue::getLocalSSRCNetwork());
+    
 }
 
 void AudioSrtpSession::initializeOutputCryptoContext(void)
@@ -110,6 +129,44 @@ void AudioSrtpSession::initializeOutputCryptoContext(void)
 					     112 / 8,                     // session salt len
 					     80 / 8);                     // authentication tag len
 
-    _debug("********************* Crypto Context OUT with SSRC %i ******************", OutgoingDataQueue::getLocalSSRC());
+
+}
+
+
+char* AudioSrtpSession::encodeBase64(unsigned char *input, int length)
+{
+    BIO *b64, *bmem;
+
+    char *buffer = (char *)malloc(length);
+    memset(buffer, 0, length);
+
+    b64 = BIO_new(BIO_f_base64());
+    bmem = BIO_new_mem_buf(input, length);
+    bmem = BIO_push(bmem, b64);
+
+    BIO_read(bmem, buffer, length);
+
+    BIO_free_all(bmem);
+
+    return buffer;
+}
+
+char* AudioSrtpSession::decodeBase64(unsigned char *input, int length)
+{
+    BIO *b64, *bmem;
+
+    char *buffer = (char *)malloc(length);
+    memset(buffer, 0, length);
+  
+    b64 = BIO_new(BIO_f_base64());
+    bmem = BIO_new_mem_buf(input, length);
+    bmem = BIO_push(b64, bmem);
+
+    BIO_read(bmem, buffer, length);
+
+    BIO_free_all(bmem);
+
+    return buffer;
 }
+
 }
diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.h b/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
index c37a898a1f..89bc2450ed 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
@@ -39,8 +39,13 @@ namespace sfl {
     class AudioSrtpSession : public ost::SymmetricRTPSession, public AudioRtpSession<AudioSrtpSession> 
     {
         public:
-        AudioSrtpSession(ManagerImpl * manager, SIPCall * sipcall);          
-            
+
+            AudioSrtpSession(ManagerImpl * manager, SIPCall * sipcall);
+
+	    // std::string getCryptoInfo(void);
+
+	    uint8* getMasterKey(void){ return _masterKey; }
+
         private:
 
             void initializeMasterKey(void);
@@ -51,6 +56,10 @@ namespace sfl {
 
 	    void initializeOutputCryptoContext(void);
 
+	    char* encodeBase64(unsigned char *input, int length);
+
+	    char* decodeBase64(unsigned char *input, int length);
+
             uint8 _masterKey[16];
 
 	    uint8 _masterSalt[14];
diff --git a/sflphone-common/src/sip/sdp.cpp b/sflphone-common/src/sip/sdp.cpp
index 545601e96e..524d6f9fc1 100644
--- a/sflphone-common/src/sip/sdp.cpp
+++ b/sflphone-common/src/sip/sdp.cpp
@@ -158,7 +158,10 @@ int Sdp::create_local_offer ()
     //sdp_addAttributes( _pool );
     sdp_add_media_description();
 
+    // if(!_srtp_master_key.empty()) {
+
     sdp_add_sdes_attribute();
+    // }
 
     //toString ();
 
diff --git a/sflphone-common/src/sip/sdp.h b/sflphone-common/src/sip/sdp.h
index 68eaa771d8..9f5fc9ea44 100644
--- a/sflphone-common/src/sip/sdp.h
+++ b/sflphone-common/src/sip/sdp.h
@@ -101,6 +101,11 @@ class Sdp {
          * @param hash The hello hash of a rtp session. (Only audio at the moment)
          */
         inline void set_zrtp_hash(const std::string& hash) { _zrtp_hello_hash = hash; _debug("Zrtp hash set with %s\n", hash.c_str()); }
+
+	/* Set the srtp _master_key
+         * @param mk The Master Key of a srtp session.
+         */
+        inline void set_srtp_master_key(const std::string& mk) { _srtp_master_key = mk; }
         
         /*
          * On building an invite outside a dialog, build the local offer and create the
@@ -246,7 +251,9 @@ class Sdp {
         /** Remote's audio port */
         unsigned int _remote_audio_port;
 
-        std::string _zrtp_hello_hash; 
+        std::string _zrtp_hello_hash;
+
+	std::string _srtp_master_key;
         
         Sdp(const Sdp&); //No Copy Constructor
         Sdp& operator=(const Sdp&); //No Assignment Operator
-- 
GitLab


From 9f4c4b181fdf7ab9fccf3c38e821170101c14f4d Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 11 Jan 2010 09:50:43 -0500
Subject: [PATCH 143/188] [#1722] Forgot Sdes case for Stop rtp session method

---
 sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp b/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
index 17e9242152..a081f88dce 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
@@ -171,6 +171,8 @@ void AudioRtpFactory::stop (void)
         switch (_rtpSessionType) {
 
             case Sdes:
+	        delete static_cast<AudioSrtpSession *> (_rtpSession);
+		break;
 
             case Symmetric:
                 delete static_cast<AudioSymmetricRtpSession *> (_rtpSession);
-- 
GitLab


From 096978e60217e19b219b8c7359e7da0e43e0f7a5 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 11 Jan 2010 11:19:49 -0500
Subject: [PATCH 144/188] [#1722] Generate crypto info in AudioSrtpSession and
 pass it to sdp

---
 .../src/audio/audiortp/AudioRtpFactory.cpp    |  3 +--
 .../src/audio/audiortp/AudioSrtpSession.cpp   | 27 ++++++++++++-------
 .../src/audio/audiortp/AudioSrtpSession.h     |  4 +--
 sflphone-common/src/sip/sdp.cpp               | 16 ++++++-----
 sflphone-common/src/sip/sdp.h                 |  8 +++---
 sflphone-common/src/sip/sipvoiplink.cpp       | 12 +++++----
 6 files changed, 40 insertions(+), 30 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp b/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
index a081f88dce..e5fdf99b8c 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
@@ -110,8 +110,7 @@ void AudioRtpFactory::initAudioRtpSession (SIPCall * ca)
 	        _rtpSession = new AudioSrtpSession (&Manager::instance(), ca);
                 _rtpSessionType = Sdes;
 
-		// ca->getLocalSDP()->set_srtp_master_key (static_cast<AudioSrtpSession *> (_rtpSession)->getMasterKey());
-
+		ca->getLocalSDP()->set_srtp_crypto(static_cast<AudioSrtpSession *> (_rtpSession)->getCryptoSdpInfo());
 		break;
 
             default:
diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index 67a07d1311..d6fd2b273c 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -36,12 +36,6 @@ static uint8 ms[] = { 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
 	 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d };
 
 
-// static std::string crypto_suite = "AES_CM_128_HMAC_SHA1_32";
-// static std::string application = "srtp";
-// static std::string srtp_key = "inline:16/14/NzB4d1BINUAvLEw6UzF3WSJ+PSdFcGdUJShpX1Zj/2^20/1:32";
-
-
-
 namespace sfl
 {
 
@@ -61,13 +55,26 @@ AudioSrtpSession::AudioSrtpSession (ManagerImpl * manager, SIPCall * sipcall) :
     setOutQueueCryptoContext(outputCryptoCtx);
 }
 
-  /*
-std::string AudioSrtpSession::getCryptoInfo() {
+ 
+std::string AudioSrtpSession::getCryptoSdpInfo() {
 
+    std::string tag = "1";
+    std::string crypto_suite = "AES_CM_128_HMAC_SHA1_32";
+    std::string application = "srtp";
+    std::string srtp_key = "inline:16/14/NzB4d1BINUAvLEw6UzF3WSJ+PSdFcGdUJShpX1Zj/2^20/1:32";
 
-    return ;
+    std::string crypto = tag;
+
+    crypto.append(" ");
+    crypto.append(crypto_suite);
+    crypto.append(" ");
+    crypto.append(application);
+    crypto.append(" ");
+    crypto.append(srtp_key);
+
+    return crypto;
 }
-  */
+
 
 void AudioSrtpSession::initializeMasterKey(void)
 {
diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.h b/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
index 89bc2450ed..34adb9d505 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
@@ -42,9 +42,7 @@ namespace sfl {
 
             AudioSrtpSession(ManagerImpl * manager, SIPCall * sipcall);
 
-	    // std::string getCryptoInfo(void);
-
-	    uint8* getMasterKey(void){ return _masterKey; }
+	    std::string getCryptoSdpInfo(void);
 
         private:
 
diff --git a/sflphone-common/src/sip/sdp.cpp b/sflphone-common/src/sip/sdp.cpp
index 524d6f9fc1..e069369c61 100644
--- a/sflphone-common/src/sip/sdp.cpp
+++ b/sflphone-common/src/sip/sdp.cpp
@@ -158,10 +158,9 @@ int Sdp::create_local_offer ()
     //sdp_addAttributes( _pool );
     sdp_add_media_description();
 
-    // if(!_srtp_master_key.empty()) {
-
-    sdp_add_sdes_attribute();
-    // }
+    if(!_srtp_crypto.empty()) { 
+        sdp_add_sdes_attribute(_srtp_crypto);
+    }
 
     //toString ();
 
@@ -368,7 +367,7 @@ void Sdp::sdp_add_media_description()
 }
 
 
-void Sdp::sdp_add_sdes_attribute ()
+void Sdp::sdp_add_sdes_attribute (std::string crypto)
 {
 
     char tempbuf[256];
@@ -382,12 +381,17 @@ void Sdp::sdp_add_sdes_attribute ()
 
     attribute->name = pj_strdup3(_pool, "crypto");
 
+    /*
     int len = pj_ansi_snprintf(tempbuf, sizeof(tempbuf),
 			       "%.*s %.*s %.*s",
 			       (int)tag.size(), tag.c_str(),
 			       (int)crypto_suite.size(), crypto_suite.c_str(),
 			       (int)key.size(), key.c_str());
-    
+    */
+
+    int len = pj_ansi_snprintf(tempbuf, sizeof(tempbuf),
+			       "%.*s",(int)crypto.size(), crypto.c_str());
+
     attribute->value.slen = len;
     attribute->value.ptr = (char*) pj_pool_alloc (_pool, attribute->value.slen+1);
     pj_memcpy (attribute->value.ptr, tempbuf, attribute->value.slen+1);
diff --git a/sflphone-common/src/sip/sdp.h b/sflphone-common/src/sip/sdp.h
index 9f5fc9ea44..72ef3f434c 100644
--- a/sflphone-common/src/sip/sdp.h
+++ b/sflphone-common/src/sip/sdp.h
@@ -105,7 +105,7 @@ class Sdp {
 	/* Set the srtp _master_key
          * @param mk The Master Key of a srtp session.
          */
-        inline void set_srtp_master_key(const std::string& mk) { _srtp_master_key = mk; }
+        inline void set_srtp_crypto(const std::string& mk) { _srtp_crypto = mk; }
         
         /*
          * On building an invite outside a dialog, build the local offer and create the
@@ -253,7 +253,8 @@ class Sdp {
 
         std::string _zrtp_hello_hash;
 
-	std::string _srtp_master_key;
+	/** "a=crypto" sdes attribute obtained from AudioSrtpSession */
+	std::string _srtp_crypto;
         
         Sdp(const Sdp&); //No Copy Constructor
         Sdp& operator=(const Sdp&); //No Assignment Operator
@@ -344,14 +345,13 @@ class Sdp {
         void get_remote_sdp_media_from_offer (const pjmedia_sdp_session* r_sdp, pjmedia_sdp_media** r_media);
 
 	void get_remote_sdp_crypto_from_offer (const pjmedia_sdp_session* remote_sdp, pjmedia_sdp_attr** r_crypto);
-
 	
 	/* 
          * Adds a sdes attribute to the given media section.
          *
          * @param media The media to add the srtp attribute to 
 	 */
-	void sdp_add_sdes_attribute();
+	void sdp_add_sdes_attribute(std::string crypto);
 
         /* 
          * Adds a zrtp-hash  attribute to 
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index bed479fc16..4c04313827 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -1559,20 +1559,22 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
         setCallAudioLocal (call, localAddress);
 
         _debug ("toUri received in new_ip_to_ip call %s", to.c_str());
-
         std::string toUri = account->getToUri (to);
         call->setPeerNumber (toUri);
         _debug ("toUri in new_ip_to_ip call %s", toUri.c_str());
-        // Building the local SDP offer
-        call->getLocalSDP()->set_ip_address (addrSdp);
-        call->getLocalSDP()->create_initial_offer();
 
-        try {
+	// Audio Rtp Session must be initialized before creating initial offer in SDP session
+	// since SDES require crypto attribute.
+	try {
             call->getAudioRtp()->initAudioRtpSession (call);
         } catch (...) {
             _debug ("! SIP Failure: Unable to create RTP Session  in SIPVoIPLink::new_ip_to_ip_call (%s:%d)", __FILE__, __LINE__);
         }
 
+        // Building the local SDP offer
+        call->getLocalSDP()->set_ip_address (addrSdp);
+        call->getLocalSDP()->create_initial_offer();
+
         // If no account already set, use the default one created at pjsip initialization
         if (account->getAccountTransport() == NULL) {
             _debug ("No transport for this account, using the default one");
-- 
GitLab


From acdb04e51613b2eb21c7b3a56b321bd5431ae986 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 11 Jan 2010 14:23:39 -0500
Subject: [PATCH 145/188] [#1722] Fix base64 decoding

---
 .../src/audio/audiortp/AudioSrtpSession.cpp   | 63 +++++++++++++++----
 .../src/audio/audiortp/AudioSrtpSession.h     |  6 ++
 2 files changed, 57 insertions(+), 12 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index d6fd2b273c..1b2a0b61f6 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -21,8 +21,11 @@
 
 #include "sip/sipcall.h"
 
-#include <openssl/bio.h>
+#include <openssl/sha.h>
+#include <openssl/hmac.h>
 #include <openssl/evp.h>
+#include <openssl/bio.h>
+#include <openssl/buffer.h>
 
 
 #include <cstdio>
@@ -30,10 +33,10 @@
 #include <cerrno>
 
 static uint8 mk[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
-	 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f };
+		      0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f };
 
 static uint8 ms[] = { 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
-	 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d };
+		      0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d };
 
 
 namespace sfl
@@ -78,6 +81,7 @@ std::string AudioSrtpSession::getCryptoSdpInfo() {
 
 void AudioSrtpSession::initializeMasterKey(void)
 {
+    _masterKeyLength = 16;
 
     for(int i = 0; i < 16; i++)
         _masterKey[i] = mk[i];
@@ -88,13 +92,33 @@ void AudioSrtpSession::initializeMasterKey(void)
 
 void AudioSrtpSession::initializeMasterSalt(void)
 {
-    for(int i = 0; i < 16; i++)
+    _masterSaltLength = 14;
+
+    for(int i = 0; i < 14; i++)
         _masterSalt[i] = ms[i];
 
     return;
 
 }
 
+
+std::string AudioSrtpSession::getBase64ConcatenatedKeys()
+{
+
+    uint8 concatenated[30];
+    memcpy((void*)concatenated, (void*)_masterKey, 16);
+    memcpy((void*)(concatenated+16), (void*)_masterSalt, 14);
+
+    char *output = encodeBase64((unsigned char*)concatenated, 30);
+
+    std::string keys(output);
+
+    free(output);
+
+    return keys;
+}
+
+
 void AudioSrtpSession::initializeInputCryptoContext(void)
 {
 
@@ -143,19 +167,30 @@ void AudioSrtpSession::initializeOutputCryptoContext(void)
 char* AudioSrtpSession::encodeBase64(unsigned char *input, int length)
 {
     BIO *b64, *bmem;
+    BUF_MEM *bptr ;
 
-    char *buffer = (char *)malloc(length);
-    memset(buffer, 0, length);
+    char *buffer = (char *)malloc(2*length);
+    memset(buffer, 0, 2*length);
 
+    // init decoder and buffer
     b64 = BIO_new(BIO_f_base64());
-    bmem = BIO_new_mem_buf(input, length);
-    bmem = BIO_push(bmem, b64);
+    bmem = BIO_new(BIO_s_mem());
 
-    BIO_read(bmem, buffer, length);
+    // create decoder chain
+    b64 = BIO_push(b64, bmem);
+
+    BIO_write(b64, input, length);
+    BIO_flush(b64);
+
+    // get pointer to data
+    BIO_get_mem_ptr(b64, &bptr);
+
+    // copy result in output buffer
+    strncpy(buffer, (char*)(bptr->data), bptr->length);
 
     BIO_free_all(bmem);
 
-    return buffer;
+    return buffer;    
 }
 
 char* AudioSrtpSession::decodeBase64(unsigned char *input, int length)
@@ -164,16 +199,20 @@ char* AudioSrtpSession::decodeBase64(unsigned char *input, int length)
 
     char *buffer = (char *)malloc(length);
     memset(buffer, 0, length);
-  
+
+    // init decoder and read-only BIO buffer
     b64 = BIO_new(BIO_f_base64());
     bmem = BIO_new_mem_buf(input, length);
-    bmem = BIO_push(b64, bmem);
+
+    // create encoder chain
+    bmem = BIO_push(bmem, b64);
 
     BIO_read(bmem, buffer, length);
 
     BIO_free_all(bmem);
 
     return buffer;
+
 }
 
 }
diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.h b/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
index 34adb9d505..cf932f257d 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
@@ -54,14 +54,20 @@ namespace sfl {
 
 	    void initializeOutputCryptoContext(void);
 
+	    std::string getBase64ConcatenatedKeys();
+
 	    char* encodeBase64(unsigned char *input, int length);
 
 	    char* decodeBase64(unsigned char *input, int length);
 
             uint8 _masterKey[16];
 
+	    int _masterKeyLength;
+
 	    uint8 _masterSalt[14];
 
+	    int _masterSaltLength;
+
 	    ost::CryptoContext* inputCryptoCtx;
 
 	    ost::CryptoContext* outputCryptoCtx;
-- 
GitLab


From a012e378f8a06176d7b37e36701ef08ed5f44111 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 11 Jan 2010 14:53:11 -0500
Subject: [PATCH 146/188] [#1722] Encode concatenated srtp keys

---
 .../src/audio/audiortp/AudioSrtpSession.cpp   | 29 ++++++++++++-------
 1 file changed, 19 insertions(+), 10 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index 1b2a0b61f6..5471e4dd67 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -61,19 +61,26 @@ AudioSrtpSession::AudioSrtpSession (ManagerImpl * manager, SIPCall * sipcall) :
  
 std::string AudioSrtpSession::getCryptoSdpInfo() {
 
+    _debug("Get Cryptographic info from this rtp session");
+
     std::string tag = "1";
     std::string crypto_suite = "AES_CM_128_HMAC_SHA1_32";
     std::string application = "srtp";
-    std::string srtp_key = "inline:16/14/NzB4d1BINUAvLEw6UzF3WSJ+PSdFcGdUJShpX1Zj/2^20/1:32";
+    // std::string srtp_keys = "inline:16/14/NzB4d1BINUAvLEw6UzF3WSJ+PSdFcGdUJShpX1Zj/2^20/1:32";
+
+    // format srtp keys as the following
+    // inline:16/14/NzB4d1BINUAvLEw6UzF3WSJ+PSdFcGdUJShpX1Zj/2^20/1:32
+    std::string srtp_keys = "inline:";
+    srtp_keys.append("16/14/");
+    srtp_keys += getBase64ConcatenatedKeys();
+    srtp_keys.append("/2^20/1:32");
 
-    std::string crypto = tag;
+    std::string crypto = tag.append(" ");
+    crypto += crypto_suite.append(" ");
+    crypto += application.append(" ");
+    crypto += srtp_keys;
 
-    crypto.append(" ");
-    crypto.append(crypto_suite);
-    crypto.append(" ");
-    crypto.append(application);
-    crypto.append(" ");
-    crypto.append(srtp_key);
+    _debug("%s", crypto.c_str());
 
     return crypto;
 }
@@ -105,10 +112,12 @@ void AudioSrtpSession::initializeMasterSalt(void)
 std::string AudioSrtpSession::getBase64ConcatenatedKeys()
 {
 
+    // concatenate master and salt
     uint8 concatenated[30];
     memcpy((void*)concatenated, (void*)_masterKey, 16);
     memcpy((void*)(concatenated+16), (void*)_masterSalt, 14);
 
+    // encode concatenated keys in base64
     char *output = encodeBase64((unsigned char*)concatenated, 30);
 
     std::string keys(output);
@@ -185,8 +194,8 @@ char* AudioSrtpSession::encodeBase64(unsigned char *input, int length)
     // get pointer to data
     BIO_get_mem_ptr(b64, &bptr);
 
-    // copy result in output buffer
-    strncpy(buffer, (char*)(bptr->data), bptr->length);
+    // copy result in output buffer (-1 since we do not want the EOF character)
+    strncpy(buffer, (char*)(bptr->data), bptr->length-1);
 
     BIO_free_all(bmem);
 
-- 
GitLab


From 4f6803bb70bec7c6aece25312f3ce8ce1a496d64 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 11 Jan 2010 15:22:51 -0500
Subject: [PATCH 147/188] [#1722] Get remote crypto attribute in
 call_on_media_update

---
 sflphone-common/src/sip/sdp.cpp         | 5 +----
 sflphone-common/src/sip/sdp.h           | 3 ++-
 sflphone-common/src/sip/sipvoiplink.cpp | 4 ++++
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/sflphone-common/src/sip/sdp.cpp b/sflphone-common/src/sip/sdp.cpp
index e069369c61..d17e3cf788 100644
--- a/sflphone-common/src/sip/sdp.cpp
+++ b/sflphone-common/src/sip/sdp.cpp
@@ -648,12 +648,8 @@ void Sdp::set_media_transport_info_from_remote_sdp (const pjmedia_sdp_session *r
 
     pjmedia_sdp_media *r_media;
 
-    pjmedia_sdp_attr *attribute;
-
     this->get_remote_sdp_media_from_offer (remote_sdp, &r_media);
 
-    this->get_remote_sdp_crypto_from_offer(remote_sdp, &attribute);
-
     if (r_media==NULL) {
         _debug ("SDP Failure: no remote sdp media found in the remote offer");
         return;
@@ -662,6 +658,7 @@ void Sdp::set_media_transport_info_from_remote_sdp (const pjmedia_sdp_session *r
     this->set_remote_audio_port_from_sdp (r_media);
 
     this->set_remote_ip_from_sdp (remote_sdp);
+
 }
 
 void Sdp::get_remote_sdp_media_from_offer (const pjmedia_sdp_session* remote_sdp, pjmedia_sdp_media** r_media)
diff --git a/sflphone-common/src/sip/sdp.h b/sflphone-common/src/sip/sdp.h
index 72ef3f434c..fcea8997f2 100644
--- a/sflphone-common/src/sip/sdp.h
+++ b/sflphone-common/src/sip/sdp.h
@@ -218,6 +218,8 @@ class Sdp {
 
         std::vector<sdpMedia*> get_session_media_list (void) { return _session_media; }
 
+	void get_remote_sdp_crypto_from_offer (const pjmedia_sdp_session* remote_sdp, pjmedia_sdp_attr** r_crypto);
+
     private:
         /** Codec Map */
         std::vector<sdpMedia*> _local_media_cap;
@@ -344,7 +346,6 @@ class Sdp {
 
         void get_remote_sdp_media_from_offer (const pjmedia_sdp_session* r_sdp, pjmedia_sdp_media** r_media);
 
-	void get_remote_sdp_crypto_from_offer (const pjmedia_sdp_session* remote_sdp, pjmedia_sdp_attr** r_crypto);
 	
 	/* 
          * Adds a sdes attribute to the given media section.
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 4c04313827..45876d7ab8 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -3212,6 +3212,10 @@ void call_on_media_update (pjsip_inv_session *inv, pj_status_t status)
     // Set remote ip / port
     call->getLocalSDP()->set_media_transport_info_from_remote_sdp (remote_sdp);
 
+    // Get the crypto attribute containing srtp's cryptographic context (keys, cipher)
+    pjmedia_sdp_attr *attribute;
+    call->getLocalSDP()->get_remote_sdp_crypto_from_offer(remote_sdp, &attribute);
+
     try {
         call->setAudioStart (true);
         call->getAudioRtp()->start();
-- 
GitLab


From d6fe22d82b45dcc5d3f20503949793f52238a6ec Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 11 Jan 2010 17:27:01 -0500
Subject: [PATCH 148/188] [#1722] Add SdesNegociator in sipvoiplink

---
 sflphone-common/src/Makefile.am               |   2 +-
 sflphone-common/src/sip/Makefile.am           |   9 +-
 sflphone-common/src/{util => sip}/Pattern.cpp |   8 +-
 sflphone-common/src/sip/Pattern.h             | 339 ++++++++++++++++++
 sflphone-common/src/sip/SdesNegotiator.cpp    |  36 +-
 sflphone-common/src/sip/sipvoiplink.cpp       |  10 +
 sflphone-common/src/util/Pattern.h            | 339 ------------------
 7 files changed, 377 insertions(+), 366 deletions(-)
 rename sflphone-common/src/{util => sip}/Pattern.cpp (97%)
 create mode 100644 sflphone-common/src/sip/Pattern.h
 delete mode 100644 sflphone-common/src/util/Pattern.h

diff --git a/sflphone-common/src/Makefile.am b/sflphone-common/src/Makefile.am
index 0d2b2da9cc..10d240d25e 100644
--- a/sflphone-common/src/Makefile.am
+++ b/sflphone-common/src/Makefile.am
@@ -62,7 +62,7 @@ noinst_LTLIBRARIES = libsflphone.la
 
 noinst_HEADERS = \
 		conference.h \
-        	voiplink.h \
+		voiplink.h \
 		managerimpl.h \
 		manager.h \
 		global.h \
diff --git a/sflphone-common/src/sip/Makefile.am b/sflphone-common/src/sip/Makefile.am
index 778494b0b6..da91f89950 100644
--- a/sflphone-common/src/sip/Makefile.am
+++ b/sflphone-common/src/sip/Makefile.am
@@ -3,17 +3,20 @@ include $(top_srcdir)/globals.mak
 noinst_LTLIBRARIES = libsiplink.la
 
 libsiplink_la_SOURCES = \
+		Pattern.cpp \
+		SdesNegotiator.cpp \
 		sdp.cpp \
 		sdpmedia.cpp \
 		sipaccount.cpp \
 		sipcall.cpp \
-		sipvoiplink.cpp 
+		sipvoiplink.cpp
 
 
 noinst_HEADERS = \
+		Pattern.h \
+		SdesNegotiator.h \
 		sdp.h \
 		sdpmedia.h \
 		sipaccount.h \
 		sipcall.h \
-		sipvoiplink.h
-
+		sipvoiplink.h
\ No newline at end of file
diff --git a/sflphone-common/src/util/Pattern.cpp b/sflphone-common/src/sip/Pattern.cpp
similarity index 97%
rename from sflphone-common/src/util/Pattern.cpp
rename to sflphone-common/src/sip/Pattern.cpp
index 95186c5d68..cc62a6871e 100644
--- a/sflphone-common/src/util/Pattern.cpp
+++ b/sflphone-common/src/sip/Pattern.cpp
@@ -23,8 +23,7 @@
 namespace sfl
 {
 
-namespace util {
-Pattern::Pattern (const std::string& pattern, const std::string& options = "") :
+Pattern::Pattern (const std::string& pattern, const std::string& options) :
         _pattern (pattern),
         _ovector (NULL),
         _ovectorSize (0),
@@ -304,11 +303,10 @@ std::vector<std::string> Pattern::split (void)
         tokenEnd = end();
     }
 
-    substringSplitted.push_back (_subject.substr (tokenEnd + 1,
+    substringSplitted.push_back (_subject.substr (tokenEnd + 1, tokenStart - tokenEnd - 1));
 
-                                 tokenStart - tokenEnd - 1));
     return substringSplitted;
 }
 }
-}
+
 
diff --git a/sflphone-common/src/sip/Pattern.h b/sflphone-common/src/sip/Pattern.h
new file mode 100644
index 0000000000..b07c92acdd
--- /dev/null
+++ b/sflphone-common/src/sip/Pattern.h
@@ -0,0 +1,339 @@
+/*
+ *  Copyright (C) 2009 Savoir-Faire Linux inc.
+ *  Author: Pierre-Luc Bacon <pierre-luc.bacon@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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+#ifndef __SFL_PATTERN_H__
+#define __SFL_PATTERN_H__
+
+#include <stdexcept>
+#include <string>
+#include <vector>
+#include <pcre.h>
+
+namespace sfl  {
+
+    /** 
+     * Exception object that is thrown when
+     * an error occured while compiling the
+     * regular expression.
+     */
+    class compile_error : public std::invalid_argument 
+    {
+        public:     
+        explicit compile_error(const std::string& error) :  
+        std::invalid_argument(error) {}
+    };
+    
+    /** 
+     * Exception object that is thrown when
+     * an error occured while mathing a
+     * pattern to an expression.
+     */
+    class match_error : public std::invalid_argument      
+    {
+        public:     
+        match_error(const std::string& error) :
+        std::invalid_argument(error) {}
+    };
+	
+	 /**
+     * This class implements in its way
+     * some of the libpcre library.
+     */
+    
+    class Pattern {
+    
+        public:
+        
+        /**
+	 * Constructor for a regular expression
+	 * pattern evaluator/matcher. 
+	 *
+	 * @param pattern 
+	 *      The regular expression to 
+	 *      be used for this instance.
+	 */
+             
+         Pattern(const std::string& pattern, 
+		 const std::string& options = "");
+            
+	 /**
+	  * Destructor. Pcre pattern gets freed
+	  * here.
+	  */
+	 ~Pattern();
+            
+	 /**
+	  * Assignment operator overloading.
+	  * Set the regular expression 
+	  * to be used on subject strings
+	  * and compile the regular expression 
+	  * from that string. 
+	  * 
+	  * @param pattern The new pattern
+	  */
+	 void operator=(const std::string& pattern) {
+	     _pattern = pattern; 
+	     compile();            
+	 }
+            
+	 void operator=(const char * pattern) {
+	     _pattern = pattern; 
+	     compile();            
+	 }            
+              
+	 /**
+	  * Compile the regular expression
+	  * from the pattern that was set for 
+	  * this object.
+	  */
+	 void compile(void);
+             
+	 /**
+	  * Get the currently set regular expression 
+	  * that is used on subject strings
+	  * 
+	  * @return The currently set pattern
+	  */ 
+	 inline std::string getPattern(void) { return _pattern; }
+             
+	 /**
+	  * << operator overload. Sets the the subject
+	  * for latter use on the >> operator. 
+	  * 
+	  * @param subject 
+	  *      The expression to be evaluated
+	  *      by the pattern.
+	  *
+	  */
+	 void operator<<(const std::string& subject) {
+	     _subject = subject;
+	 }
+			
+	 /**
+	  * Get the start position of the overall match.
+	  * 
+	  * @return the start position of the overall match.  
+	  */
+	 size_t start(void) const;
+			
+	 /**
+	  * Get the start position of the specified match.
+	  * 
+	  * @param groupNumber The capturing group number.
+	  * 
+	  * @return the start position of the specified match.  
+	  */
+	 size_t start(unsigned int groupNumber) const;
+			
+	 /**
+	  * Get the start position of the specified match.
+	  * 
+	  * @param groupName The capturing group name.
+	  * 
+	  * @return the start position of the specified match.  
+	  */
+	 size_t start(const std::string& groupName) const;
+			
+	 /**
+	  * Get the end position of the overall match.
+	  * 
+	  * @return the end position of the overall match.  
+	  */			
+	 size_t end(void) const;
+			
+	 /**
+	  * Get the end position of the specified match.
+	  * 
+	  * @param groupNumber The capturing group number.
+	  * 
+	  * @return the end position of the specified match.  
+	  */			
+	 size_t end(unsigned int groupNumber) const;
+			
+	 /**
+	  * Get the end position of the specified match.
+	  * 
+	  * @param groupName The capturing group name.
+	  * 
+	  * @return the end position of the specified match.  
+	  */			
+	 size_t end(const std::string& groupName) const;
+			
+	 /**
+	  * Get the number of capturing groups in the 
+	  * compiled regex. 
+	  * 
+	  * @return The number of capture groups.
+	  * 
+	  * @pre The regular expression should have been 
+	  * 	    compiled prior to the execution of this method.
+	  */
+	 unsigned int getCaptureGroupCount(void);
+			
+	 /**
+	  * Get the substring matched in a capturing 
+	  * group (named or unnamed).
+	  *  
+	  * This methods only performs a basic lookup
+	  * inside its internal substring table. Thus,
+	  * matches() should have been called prior to 
+	  * this method in order to obtain the desired 
+	  * output. 
+	  *
+	  * @param groupName The name of the group  
+	  * 
+	  * @return the substring matched by the 
+	  *         regular expression designated
+	  *         the group name.
+	  */
+	 std::string group(const std::string& groupName);
+         
+	 /**
+	  * Get the substring matched in a named group.
+	  * 
+	  * This methods only performs a basic lookup
+	  * inside its internal substring table. Thus,
+	  * matches() should have been called prior to 
+	  * this method in order to obtain the desired 
+	  * output. 
+	  * 
+	  * @param groupNumber The number of the group. 
+	  * 
+	  * @return the substring matched by the 
+	  *         regular expression designated
+	  *         the group number.
+	  */
+	 std::string group(int groupNumber);
+	 
+	 /**
+	  * Similar to python's MatchObject.groups. Get all 
+	  * the substrings matched by the capture groups defined
+	  * in the pattern. The complete (implicit) capture group
+	  * is not returned : ie only groups from 1 up to the number
+	  * of groups in the pattern are returned.
+	  * 
+	  * @return A vector of stings that were matched by some
+	  * 		   capturing group in the pattern.
+	  * 
+	  * @pre The regular expression should have been 
+	  * 	    compiled prior to the execution of this method.
+	  */
+	 std::vector<std::string> groups(void);
+	 
+	 /**
+	  * Try to match the compiled pattern with a 
+	  * subject. 
+	  * 
+	  * @param subject Subject to be matched
+	  * 		          by the pattern. 
+	  * 
+	  * @return true If the subject matches the pattern, 
+	  *         false otherwise. 
+	  * 
+	  * @pre The regular expression should have been 
+	  * 	    compiled prior to the execution of this method.
+	  * 
+	  * @post The internal substring table will be updated
+	  *       with the new matches. Therefore, subsequent
+	  * 		 calls to group may return different results.
+	  */
+	 bool matches(const std::string& subject) throw(match_error);
+	 
+	 /**
+	  * Try to match the compiled pattern with the implicit 
+	  * subject. 
+	  * 
+	  * @return true If the subject matches the pattern, 
+	  *         false otherwise. 
+	  * 
+	  * @pre The regular expression should have been 
+	  * 	    compiled prior to the execution of this method.
+	  * 
+	  * @post The internal substring table will be updated
+	  *       with the new matches. Therefore, subsequent
+	  * 		 calls to group may return different results.
+	  */
+	 bool matches(void) throw(match_error); 	
+	 
+	 /**
+	  *  Split the subject into a list of substrings.
+	  * 
+	  * @return A vector of substrings. 
+	  * 
+	  * @pre The regular expression should have been 
+	  * 	    compiled prior to the execution of this method.
+	  * 
+	  * @post The internal subject won't be affected by this 
+	  * 	     by this operation. In other words: subject_before =
+	  * 		 subject_after.
+	  */
+	 std::vector<std::string> split(void); // throw(match_error);		
+
+    private:  
+	 /**
+	  * The regular expression that represents that pattern.
+	  */
+	 std::string _pattern;
+	 
+	 /** 
+	  * The optional subject string.
+	  */
+	 std::string _subject;
+	 
+	 /**
+	  * PCRE struct that
+	  * contains the compiled regular
+	  * expression
+            */
+	 pcre * _re;
+	 
+	 /**
+	  * The internal output vector used by PCRE. 
+	  */
+	 int * _ovector;
+	 
+	 /**
+	  * The size of the _ovector
+	  */
+	 int _ovectorSize;
+			
+	 /**
+	  * Current offset in the _ovector;
+	  */
+	 
+	 int _offset[2];
+	 
+	 /**
+	  * The number of substrings matched after calling
+	  * pcre_exec.
+	  */ 
+	 int _count;
+	 
+	 /**
+	  * PCRE options for this pattern.
+	  */
+	 int _options;
+	 
+	 /**
+	  * String representation of the options.
+	  */
+	 std::string _optionsDescription;
+    };
+}
+
+
+#endif
diff --git a/sflphone-common/src/sip/SdesNegotiator.cpp b/sflphone-common/src/sip/SdesNegotiator.cpp
index 74442abafe..f0b837a453 100644
--- a/sflphone-common/src/sip/SdesNegotiator.cpp
+++ b/sflphone-common/src/sip/SdesNegotiator.cpp
@@ -18,14 +18,14 @@
 
 #include "SdesNegotiator.h"
 
-#include "util/Pattern.h"
+#include "Pattern.h"
 
 #include <iostream>
 #include <sstream>
 #include <algorithm>
 #include <stdexcept>
 
-using namespace sfl::util;
+using namespace sfl;
 
 struct CryptoAttribute {
     std::string tag;
@@ -81,7 +81,7 @@ void SdesNegotiator::parse (void)
             "UNENCRYPTED_SRTCP|" \
             "UNAUTHENTICATED_SRTP|" \
             "FEC_ORDER=(?P<fecOrder>FEC_SRTP|SRTP_FEC)|" \
-            "FEC_KEY=(?P<fecKey>" + keyParamsPattern.getPattern() + ")|" \
+            "FEC_KEY=(?P<fecKey>" + keyParamsPattern->getPattern() + ")|" \
             "WSH=(?P<wsh>[0-9]{1,2})|" \
             "(?<!\\-)[[:graph:]]+))*", "g"); // srtp-session-extension
 
@@ -102,11 +102,11 @@ void SdesNegotiator::parse (void)
         // Split the line into its component
         // that we will analyze further down.
 
-        generalSyntaxPattern << (*iter);
+        *generalSyntaxPattern << (*iter);
         std::vector<std::string> sdesLine;
 
         try {
-            sdesLine = generalSyntaxPattern.split();
+            sdesLine = generalSyntaxPattern->split();
 
             if (sdesLine.size() < 3) {
                 throw parse_error ("Missing components in SDES line");
@@ -117,10 +117,10 @@ void SdesNegotiator::parse (void)
 
         // Check if the attribute starts with a=crypto
         // and get the tag for this line
-        tagPattern << sdesLine.at (0);
+        *tagPattern << sdesLine.at (0);
 
         try {
-            std::string tag = tagPattern.group ("tag");
+            std::string tag = tagPattern->group ("tag");
             std::cout << "tag = " << tag << std::endl;
         } catch (match_error& exception) {
             throw parse_error ("Error while parsing the tag field");
@@ -128,39 +128,39 @@ void SdesNegotiator::parse (void)
 
         // Check if the crypto suite is valid and retreive
         // its value.
-        cryptoSuitePattern << sdesLine.at (1);
+        *cryptoSuitePattern << sdesLine.at (1);
 
         try {
-            std::string cryptoSuite
-            cryptoSuite = cryptoSuitePattern.group ("cryptoSuite");
+	    std::string cryptoSuite;
+            cryptoSuite = cryptoSuitePattern->group ("cryptoSuite");
             std::cout << "crypto-suite = " << cryptoSuite << std::endl;
         } catch (match_error& exception) {
             throw parse_error ("Error while parsing the crypto-suite field");
         }
 
         // Parse one or more key-params field.
-        keyParamsPattern << sdesLine.at (2);
+        *keyParamsPattern << sdesLine.at (2);
 
         try {
-            while (keyParamsPattern.matches()) {
+            while (keyParamsPattern->matches()) {
                 std::string srtpKeyMethod;
-                srtpKeyMethod = keyParamsMatched.group ("srtpKeyMethod");
+                srtpKeyMethod = keyParamsPattern->group ("srtpKeyMethod");
                 std::cout << "srtp-key-method = " << srtpKeyMethod << std::endl;
 
                 std::string srtpKeyInfo;
-                srtpKeyInfo = keyParamsPattern.group ("srtpKeyInfo");
+                srtpKeyInfo = keyParamsPattern->group ("srtpKeyInfo");
                 std::cout << "srtp-key-info = " << srtpKeyInfo << std::endl;
 
                 std::string lifetime;
-                lifetime = keyParamsPattern.group ("lifetime");
+                lifetime = keyParamsPattern->group ("lifetime");
                 std::cout << "lifetime = " << lifetime << std::endl;
 
-                std::string mkiValue
-                mkiValue = keyParamsPattern.group ("mkiValue");
+                std::string mkiValue;
+                mkiValue = keyParamsPattern->group ("mkiValue");
                 std::cout << "mkiValue = " << mkiValue << std::endl;
 
                 std::string mkiLength;
-                mkiLength = keyParamsPattern.group ("mkiLength");
+                mkiLength = keyParamsPattern->group ("mkiLength");
                 std::cout << "mkiLength = " << mkiLength << std::endl;
             }
         } catch (match_error& exception) {
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 45876d7ab8..d4003365bc 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -28,6 +28,7 @@
 #include "sipcall.h"
 #include "sipaccount.h"
 #include "eventthread.h"
+#include "SdesNegotiator.h"
 
 #include "dbus/dbusmanager.h"
 #include "dbus/callmanager.h"
@@ -3216,6 +3217,15 @@ void call_on_media_update (pjsip_inv_session *inv, pj_status_t status)
     pjmedia_sdp_attr *attribute;
     call->getLocalSDP()->get_remote_sdp_crypto_from_offer(remote_sdp, &attribute);
 
+    // create remote cryptografic offer
+    std::vector<std::string> remoteOffer;
+
+    std::string attr(attribute->value.ptr, attribute->value.slen);
+
+    remoteOffer.push_back(attr);
+
+    // sfl::SdesNegotiator sdesnego(sfl::CryptoSuites, remoteOffer);
+
     try {
         call->setAudioStart (true);
         call->getAudioRtp()->start();
diff --git a/sflphone-common/src/util/Pattern.h b/sflphone-common/src/util/Pattern.h
deleted file mode 100644
index 676ecbd85e..0000000000
--- a/sflphone-common/src/util/Pattern.h
+++ /dev/null
@@ -1,339 +0,0 @@
-/*
- *  Copyright (C) 2009 Savoir-Faire Linux inc.
- *  Author: Pierre-Luc Bacon <pierre-luc.bacon@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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-#ifndef __SFL_PATTERN_H__
-#define __SFL_PATTERN_H__
-
-#include <stdexcept>
-#include <string>
-#include <vector>
-#include <pcre.h>
-
-namespace sfl  {
-namespace util {
-	/** 
-     * Exception object that is thrown when
-     * an error occured while compiling the
-     * regular expression.
-     */
-    class compile_error : public std::invalid_argument 
-    {
-        public:     
-        explicit compile_error(const std::string& error) :  
-        std::invalid_argument(error) {}
-    };
-    
-    /** 
-     * Exception object that is thrown when
-     * an error occured while mathing a
-     * pattern to an expression.
-     */
-    class match_error : public std::invalid_argument      
-    {
-        public:     
-        match_error(const std::string& error) :
-        std::invalid_argument(error) {}
-    };
-	
-	 /**
-     * This class implements in its way
-     * some of the libpcre library.
-     */
-    
-    class Pattern {
-    
-        public:
-        
-            /**
-             * Constructor for a regular expression
-             * pattern evaluator/matcher. 
-             *
-             * @param pattern 
-             *      The regular expression to 
-             *      be used for this instance.
-             */
-             
-            Pattern(const std::string& pattern, 
-			        const std::string& options);
-            
-			/**
-			 * Destructor. Pcre pattern gets freed
-			 * here.
-			 */
-            ~Pattern();
-            
-            /**
-             * Assignment operator overloading.
-             * Set the regular expression 
-             * to be used on subject strings
-             * and compile the regular expression 
-             * from that string. 
-             * 
-             * @param pattern The new pattern
-             */
-            void operator=(const std::string& pattern) {
-                _pattern = pattern; 
-                compile();            
-            }
-            
-            void operator=(const char * pattern) {
-                _pattern = pattern; 
-                compile();            
-            }            
-              
-            /**
-             * Compile the regular expression
-             * from the pattern that was set for 
-             * this object.
-             */
-            void compile(void);
-             
-            /**
-             * Get the currently set regular expression 
-             * that is used on subject strings
-             * 
-             * @return The currently set pattern
-             */ 
-            inline std::string getPattern(void) { return _pattern; }
-             
-            /**
-             * << operator overload. Sets the the subject
-             * for latter use on the >> operator. 
-             * 
-             * @param subject 
-             *      The expression to be evaluated
-             *      by the pattern.
-             *
-             */
-            void operator<<(const std::string& subject) {
-                _subject = subject;
-            }
-			
-			/**
-			 * Get the start position of the overall match.
-			 * 
-			 * @return the start position of the overall match.  
-			 */
-			size_t start(void) const;
-			
-			/**
-			 * Get the start position of the specified match.
-			 * 
-			 * @param groupNumber The capturing group number.
-			 * 
-			 * @return the start position of the specified match.  
-			 */
-			size_t start(unsigned int groupNumber) const;
-			
-			/**
-			 * Get the start position of the specified match.
-			 * 
-			 * @param groupName The capturing group name.
-			 * 
-			 * @return the start position of the specified match.  
-			 */
-			size_t start(const std::string& groupName) const;
-			
-			/**
-			 * Get the end position of the overall match.
-			 * 
-			 * @return the end position of the overall match.  
-			 */			
-			size_t end(void) const;
-			
-			/**
-			 * Get the end position of the specified match.
-			 * 
-			 * @param groupNumber The capturing group number.
-			 * 
-			 * @return the end position of the specified match.  
-			 */			
-			size_t end(unsigned int groupNumber) const;
-			
-			/**
-			 * Get the end position of the specified match.
-			 * 
-			 * @param groupName The capturing group name.
-			 * 
-			 * @return the end position of the specified match.  
-			 */			
-			size_t end(const std::string& groupName) const;
-			
-			/**
-			 * Get the number of capturing groups in the 
-			 * compiled regex. 
-			 * 
-			 * @return The number of capture groups.
-			 * 
-			 * @pre The regular expression should have been 
-			 * 	    compiled prior to the execution of this method.
-			 */
-			unsigned int getCaptureGroupCount(void);
-			
-            /**
-             * Get the substring matched in a capturing 
-			 * group (named or unnamed).
-			 *  
-			 * This methods only performs a basic lookup
-			 * inside its internal substring table. Thus,
-			 * matches() should have been called prior to 
-			 * this method in order to obtain the desired 
-			 * output. 
-             *
-             * @param groupName The name of the group  
-			 * 
-             * @return the substring matched by the 
-             *         regular expression designated
-             *         the group name.
-             */
-            std::string group(const std::string& groupName);
-            
-			/**
-             * Get the substring matched in a named group.
-			 * 
-			 * This methods only performs a basic lookup
-			 * inside its internal substring table. Thus,
-			 * matches() should have been called prior to 
-			 * this method in order to obtain the desired 
-			 * output. 
-			 * 
-             * @param groupNumber The number of the group. 
-			 * 
-             * @return the substring matched by the 
-             *         regular expression designated
-             *         the group number.
-             */
-            std::string group(int groupNumber);
-			
-			/**
-			 * Similar to python's MatchObject.groups. Get all 
-			 * the substrings matched by the capture groups defined
-			 * in the pattern. The complete (implicit) capture group
-			 * is not returned : ie only groups from 1 up to the number
-			 * of groups in the pattern are returned.
-			 * 
-			 * @return A vector of stings that were matched by some
-			 * 		   capturing group in the pattern.
-			 * 
-			 * @pre The regular expression should have been 
-			 * 	    compiled prior to the execution of this method.
-			 */
-			std::vector<std::string> groups(void);
-			
-			/**
-			 * Try to match the compiled pattern with a 
-			 * subject. 
-			 * 
-			 * @param subject Subject to be matched
-			 * 		          by the pattern. 
-			 * 
-			 * @return true If the subject matches the pattern, 
-			 *         false otherwise. 
-			 * 
-			 * @pre The regular expression should have been 
-			 * 	    compiled prior to the execution of this method.
-			 * 
-			 * @post The internal substring table will be updated
-			 *       with the new matches. Therefore, subsequent
-			 * 		 calls to group may return different results.
-			 */
-			bool matches(const std::string& subject) throw(match_error);
-			
-			/**
-			 * Try to match the compiled pattern with the implicit 
-			 * subject. 
-			 * 
-			 * @return true If the subject matches the pattern, 
-			 *         false otherwise. 
-			 * 
-			 * @pre The regular expression should have been 
-			 * 	    compiled prior to the execution of this method.
-			 * 
-			 * @post The internal substring table will be updated
-			 *       with the new matches. Therefore, subsequent
-			 * 		 calls to group may return different results.
-			 */
-			bool matches(void) throw(match_error); 	
-			
-			/**
-			 *  Split the subject into a list of substrings.
-			 * 
-			 * @return A vector of substrings. 
-			 * 
-			 * @pre The regular expression should have been 
-			 * 	    compiled prior to the execution of this method.
-			 * 
-			 * @post The internal subject won't be affected by this 
-			 * 	     by this operation. In other words: subject_before =
-			 * 		 subject_after.
-			 */
-			std::vector<std::string> split(void) throw(match_error);		
-
-        private:  
-			/**
-             * The regular expression that represents that pattern.
-             */
-            std::string _pattern;
-
-            /** 
-            * The optional subject string.
-            */
-            std::string _subject;
-
-            /**
-            * PCRE struct that
-            * contains the compiled regular
-            * expression
-            */
-            pcre * _re;
-
-			/**
-			 * The internal output vector used by PCRE. 
-			 */
-			int * _ovector;
-			
-			/**
-			 * The size of the _ovector
-			 */
-			int _ovectorSize;
-			
-			/**
-			 * Current offset in the _ovector;
-			 */
-			
-			int _offset[2];
-			
-			/**
-			 * The number of substrings matched after calling
-			 * pcre_exec.
-			 */ 
-			int _count;
-			
-			/**
-			 * PCRE options for this pattern.
-			 */
-			int _options;
-			
-			/**
-			 * String representation of the options.
-			 */
-			std::string _optionsDescription;
-    };
-}
-}
-
-#endif
-- 
GitLab


From b0fcdcbf552460595a3f0a3123639c0bea30ae8c Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 11 Jan 2010 18:22:08 -0500
Subject: [PATCH 149/188] [#1722] Make sure pcre is available

---
 sflphone-common/configure.ac | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/sflphone-common/configure.ac b/sflphone-common/configure.ac
index 41bfe9221b..aacfcc7d68 100644
--- a/sflphone-common/configure.ac
+++ b/sflphone-common/configure.ac
@@ -214,6 +214,12 @@ AC_SUBST(libssl_LIBS)
 	AC_SUBST(ZRTPCPP_LIBS)
 AC_SUBST(ZRTPCPP_CFLAGS)
 
+	dnl Check for libpcre
+#	LIBPCRE_MIN_VERSION=0.0.0
+#	PKG_CHECK_MODULES(PCRE, libpcre >= ${LIBPCRE_MIN_VERSION})
+#	AC_SUBST(PCRE_LIBS)
+#AC_SUBST(PCRE_CFLAGS)
+
 
 dnl DBus-C++ detection (used to be in library own build system)
 	DBUS_REQUIRED_VERSION=0.60
@@ -295,6 +301,15 @@ AC_CHECK_LIB([pthread], pthread_create,
 AC_MSG_ERROR([You need the POSIX Thread library (pthreads)])	
 	fi
 
+AC_CHECK_LIB([pcre], pcre_free,
+		[AC_CHECK_HEADERS(pcre.h, have_pcre=true, have_pcre=false)],
+		have_pcre=false)
+
+	if test "$have_pcre" = "false"; then
+AC_MSG_ERROR([You need the Perl-Compatible Regular Expressions library (pcre)])	
+	fi
+
+
 # For the tools/, we need libdbus-c++ for the "build" architecture as well
 
 	AM_CONDITIONAL(CROSS_COMPILING, test "$cross_compiling" = "yes")
-- 
GitLab


From d22fa079f226bd5336b6fba1cfb8e97191789036 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Tue, 12 Jan 2010 10:29:08 -0500
Subject: [PATCH 150/188] [#1722] Link to libpcre

---
 sflphone-common/configure.ac            | 15 ++++++++-------
 sflphone-common/src/sip/Makefile.am     |  5 ++++-
 sflphone-common/src/sip/sipvoiplink.cpp |  8 +++++++-
 3 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/sflphone-common/configure.ac b/sflphone-common/configure.ac
index aacfcc7d68..fe7cdfcc92 100644
--- a/sflphone-common/configure.ac
+++ b/sflphone-common/configure.ac
@@ -214,12 +214,6 @@ AC_SUBST(libssl_LIBS)
 	AC_SUBST(ZRTPCPP_LIBS)
 AC_SUBST(ZRTPCPP_CFLAGS)
 
-	dnl Check for libpcre
-#	LIBPCRE_MIN_VERSION=0.0.0
-#	PKG_CHECK_MODULES(PCRE, libpcre >= ${LIBPCRE_MIN_VERSION})
-#	AC_SUBST(PCRE_LIBS)
-#AC_SUBST(PCRE_CFLAGS)
-
 
 dnl DBus-C++ detection (used to be in library own build system)
 	DBUS_REQUIRED_VERSION=0.60
@@ -290,7 +284,7 @@ fi
 xml_CFLAGS=
 xml_LIBS=-lexpat
 
-	AC_SUBST(xml_CFLAGS)
+AC_SUBST(xml_CFLAGS)
 AC_SUBST(xml_LIBS)
 
 AC_CHECK_LIB([pthread], pthread_create,
@@ -301,6 +295,7 @@ AC_CHECK_LIB([pthread], pthread_create,
 AC_MSG_ERROR([You need the POSIX Thread library (pthreads)])	
 	fi
 
+
 AC_CHECK_LIB([pcre], pcre_free,
 		[AC_CHECK_HEADERS(pcre.h, have_pcre=true, have_pcre=false)],
 		have_pcre=false)
@@ -309,6 +304,12 @@ AC_CHECK_LIB([pcre], pcre_free,
 AC_MSG_ERROR([You need the Perl-Compatible Regular Expressions library (pcre)])	
 	fi
 
+PCRE_LIBS=-lpcre
+PCRE_CFLAGS=
+AC_SUBST(PCRE_LIBS)
+AC_SUBST(PCRE_CFLAGS)
+
+
 
 # For the tools/, we need libdbus-c++ for the "build" architecture as well
 
diff --git a/sflphone-common/src/sip/Makefile.am b/sflphone-common/src/sip/Makefile.am
index da91f89950..8cb4829edc 100644
--- a/sflphone-common/src/sip/Makefile.am
+++ b/sflphone-common/src/sip/Makefile.am
@@ -19,4 +19,7 @@ noinst_HEADERS = \
 		sdpmedia.h \
 		sipaccount.h \
 		sipcall.h \
-		sipvoiplink.h
\ No newline at end of file
+		sipvoiplink.h
+
+libsiplink_la_CXXFLAGS = \
+		@PCRE_LIBS@
\ No newline at end of file
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index d4003365bc..b28606f29d 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -3224,7 +3224,13 @@ void call_on_media_update (pjsip_inv_session *inv, pj_status_t status)
 
     remoteOffer.push_back(attr);
 
-    // sfl::SdesNegotiator sdesnego(sfl::CryptoSuites, remoteOffer);
+    std::vector<sfl::CryptoSuiteDefinition>localCapabilities;
+    for(int i = 0; i < 3; i++) {
+      localCapabilities.push_back(sfl::CryptoSuites[i]);
+    }
+
+    sfl::SdesNegotiator sdesnego(localCapabilities, remoteOffer);
+
 
     try {
         call->setAudioStart (true);
-- 
GitLab


From 57926096eff030454cefc0b40b6ce37c62a9259d Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Tue, 12 Jan 2010 11:41:59 -0500
Subject: [PATCH 151/188] [#2555] Fix test folder compilation, changed file
 object names

---
 sflphone-common/test/Makefile.am | 25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/sflphone-common/test/Makefile.am b/sflphone-common/test/Makefile.am
index 87264309aa..3139145a4a 100644
--- a/sflphone-common/test/Makefile.am
+++ b/sflphone-common/test/Makefile.am
@@ -4,25 +4,28 @@ include ../globals.mak
 noinst_PROGRAMS = numbercleanerTester pluginmanagerTester hookmanagerTester audiolayerTester historyTester mainbufferTester #rtpTester
 
 OBJECT_FILES= \
+	../src/sflphoned-logger.o \
 	../src/sflphoned-managerimpl.o \
+	../src/sflphoned-account.o\
 	../src/sflphoned-accountcreator.o \
 	../src/sflphoned-call.o \
-	../src/sip/sipcall.o \
-	../src/iax/libiaxlink_la-iaxcall.o \
+	../src/sflphoned-conference.o \
+	../src/sflphoned-eventthread.o \
+	../src/sflphoned-managerimpl_registration.o \
+	../src/sflphoned-numbercleaner.o \
+	../src/sflphoned-observer.o \
 	../src/sflphoned-voiplink.o \
-	../src/sip/sipvoiplink.o \
+	../src/sip/libsiplink_la-sipcall.o \
+	../src/iax/libiaxlink_la-iaxcall.o \
+	../src/sip/libsiplink_la-sipvoiplink.o \
 	../src/iax/libiaxlink_la-iaxvoiplink.o \
-	../src/sflphoned-account.o \
-	../src/sip/sipaccount.o \
+	../src/sip/libsiplink_la-sipaccount.o \
 	../src/iax/libiaxlink_la-iaxaccount.o \
-	../src/sflphoned-eventthread.o \
-	../src/sflphoned-conference.o \
+	../src/sip/libsiplink_la-sdp.o \
+	../src/sip/libsiplink_la-sdpmedia.o \
 	../src/plug-in/pluginmanager.o \
 	../src/plug-in/audiorecorder/audiorecord.o \
 	../src/audio/samplerateconverter.o \
-	../src/sip/sdp.o \
-	../src/sip/sdpmedia.o \
-	../src/sflphoned-numbercleaner.o \
         ../src/history/historymanager.o
 	../
 
@@ -65,7 +68,7 @@ pluginmanagerTester_LDADD = \
 		@SAMPLERATE_LIBS@ \
 		$(PJSIP_LIBS) \
 		$(OBJECT_FILES)
-						
+
 hookmanagerTester_SOURCES = \
 		hookmanagerTest.cpp \
 		TestMain.cpp
-- 
GitLab


From 671aae9d2fea28ad6fee2ec0f75eae6e9b069c34 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Tue, 12 Jan 2010 12:02:51 -0500
Subject: [PATCH 152/188] [#1722] Add SdesNegotiator unit test in test/

---
 sflphone-common/test/Makefile.am            | 22 ++++-
 sflphone-common/test/sdesnegotiatorTest.cpp | 59 +++++++++++++
 sflphone-common/test/sdesnegotiatorTest.h   | 92 +++++++++++++++++++++
 3 files changed, 172 insertions(+), 1 deletion(-)
 create mode 100644 sflphone-common/test/sdesnegotiatorTest.cpp
 create mode 100644 sflphone-common/test/sdesnegotiatorTest.h

diff --git a/sflphone-common/test/Makefile.am b/sflphone-common/test/Makefile.am
index 3139145a4a..e3679eb678 100644
--- a/sflphone-common/test/Makefile.am
+++ b/sflphone-common/test/Makefile.am
@@ -1,7 +1,7 @@
 include ../globals.mak
 
 
-noinst_PROGRAMS = numbercleanerTester pluginmanagerTester hookmanagerTester audiolayerTester historyTester mainbufferTester #rtpTester
+noinst_PROGRAMS = numbercleanerTester pluginmanagerTester hookmanagerTester audiolayerTester historyTester mainbufferTester sdesnegotiatorTester #rtpTester
 
 OBJECT_FILES= \
 	../src/sflphoned-logger.o \
@@ -148,3 +148,23 @@ mainbufferTester_LDADD = \
 		@SAMPLERATE_LIBS@ \
 		$(PJSIP_LIBS) \
 		$(OBJECT_FILES)
+
+sdesnegotiatorTester_SOURCES = \
+		sdesnegotiatorTest.h \
+		sdesnegotiatorTest.cpp \
+		TestMain.cpp
+
+sdesnegotiatorTester_LDADD = \
+		../src/libsflphone.la  \
+		$(SFLPHONE_LIBS) $(ZEROCONFLIB) $(LIB_DNSSD) \
+		@ALSA_LIBS@ \
+		@PULSEAUDIO_LIBS@ \
+		@CPPUNIT_LIBS@ \
+		@CCEXT2_LIBS@ \
+		@CCGNU2_LIBS@ \
+		@CCRTP_LIBS@ \
+		@ZRTPCPP_LIBS@ \
+		@libssl_LIBS@ \
+		@SAMPLERATE_LIBS@ \
+		$(PJSIP_LIBS) \
+		$(OBJECT_FILES)
diff --git a/sflphone-common/test/sdesnegotiatorTest.cpp b/sflphone-common/test/sdesnegotiatorTest.cpp
new file mode 100644
index 0000000000..cf21580649
--- /dev/null
+++ b/sflphone-common/test/sdesnegotiatorTest.cpp
@@ -0,0 +1,59 @@
+/*
+ *  Copyright (C) 2009 Savoir-Faire Linux inc.
+ *  Author: Alexandre Savard <alexandre.savard@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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <stdio.h>
+#include <sstream>
+#include <ccrtp/rtp.h>
+#include <assert.h>
+#include <string>
+#include <cstring>
+#include <math.h>
+#include <dlfcn.h>
+#include <iostream>
+#include <sstream>
+
+
+#include "sdesnegotiatorTest.h"
+
+#include <unistd.h>
+
+
+using std::cout;
+using std::endl;
+
+
+void SdesNegotiatorTest::setUp()
+{
+
+
+}
+
+
+void SdesNegotiatorTest::tearDown()
+{
+
+}
+
+void SdesNegotiatorTest::testNegotiation()
+{
+
+
+}
+
+
diff --git a/sflphone-common/test/sdesnegotiatorTest.h b/sflphone-common/test/sdesnegotiatorTest.h
new file mode 100644
index 0000000000..16c2dfb7f8
--- /dev/null
+++ b/sflphone-common/test/sdesnegotiatorTest.h
@@ -0,0 +1,92 @@
+/*
+ *  Copyright (C) 2009 Savoir-Faire Linux inc.
+ *  Author: Alexandre Savard <alexandre.savard@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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+// Cppunit import
+#include <cppunit/extensions/HelperMacros.h>
+#include <cppunit/TestCaller.h>
+#include <cppunit/TestCase.h>
+#include <cppunit/TestSuite.h>
+
+#include <assert.h>
+
+#include <stdio.h>
+#include <sstream>
+#include <ccrtp/rtp.h>
+
+
+// pjsip import
+#include <pjsip.h>
+#include <pjlib.h>
+#include <pjsip_ua.h>
+#include <pjlib-util.h>
+#include <pjnath/stun_config.h>
+
+// Application import
+#include "sip/SdesNegotiator.h"
+
+// #include "config/config.h"
+// #include "user_cfg.h"
+
+
+
+/*
+ * @file sdesnegotiationTest.cpp  
+ * @brief       Regroups unitary tests related to the plugin manager.
+ */
+
+#ifndef _SDESNEGOTIATOR_TEST_
+#define _SDESNEGOTIATOR_TEST_
+
+
+
+class SdesNegotiatorTest : public CppUnit::TestCase {
+
+    /*
+     * Use cppunit library macros to add unit test the factory
+     */
+    CPPUNIT_TEST_SUITE( SdesNegotiatorTest );
+        CPPUNIT_TEST( testNegotiation );
+    CPPUNIT_TEST_SUITE_END();
+
+    public:
+
+        SdesNegotiatorTest() : CppUnit::TestCase("Sdes Tests") {}
+        
+        /*
+         * Code factoring - Common resources can be initialized here.
+         * This method is called by unitcpp before each test
+         */
+        void setUp();
+
+        /*
+         * Code factoring - Common resources can be released here.
+         * This method is called by unitcpp after each test
+         */
+        inline void tearDown();
+
+       	void testNegotiation();
+
+    private:
+
+};
+
+/* Register our test module */
+CPPUNIT_TEST_SUITE_REGISTRATION( SdesNegotiatorTest );
+
+#endif
-- 
GitLab


From 4c06ec3507bfc53051391e8c569aa49b4f5ad507 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Tue, 12 Jan 2010 15:40:27 -0500
Subject: [PATCH 153/188] [#1722] Not working SdesNegociator unit test

---
 sflphone-common/src/sip/Pattern.cpp         | 25 ++++++++++++++++-----
 sflphone-common/src/sip/SdesNegotiator.cpp  | 11 ++++++---
 sflphone-common/test/sdesnegotiatorTest.cpp | 25 +++++++++++++++++++--
 sflphone-common/test/sdesnegotiatorTest.h   |  7 ++++++
 4 files changed, 58 insertions(+), 10 deletions(-)

diff --git a/sflphone-common/src/sip/Pattern.cpp b/sflphone-common/src/sip/Pattern.cpp
index cc62a6871e..2e7619fd76 100644
--- a/sflphone-common/src/sip/Pattern.cpp
+++ b/sflphone-common/src/sip/Pattern.cpp
@@ -31,6 +31,8 @@ Pattern::Pattern (const std::string& pattern, const std::string& options) :
         _count (0),
         _options (0)
 {
+
+    printf("Pattern constructor called for %s!\n", pattern.c_str());
     // Set offsets
     _offset[0] = _offset[1] = 0;
 
@@ -137,6 +139,8 @@ std::string Pattern::group (int groupNumber)
 {
     const char * stringPtr;
 
+    printf("_subject.substr : %s\n", _subject.substr (_offset[0]).c_str());
+
     int rc = pcre_get_substring (
                  _subject.substr (_offset[0]).c_str(),
                  _ovector,
@@ -169,6 +173,10 @@ std::string Pattern::group (const std::string& groupName)
 {
     const char * stringPtr = NULL;
 
+    printf("Pattern::group %s\n", groupName.c_str());
+    printf("_subject.substr : %s\n", _subject.substr (_offset[0]).c_str());
+    printf("_count : %i\n", _count);
+
     int rc = pcre_get_named_substring (
                  _re,
                  _subject.substr (_offset[0]).c_str(),
@@ -177,10 +185,13 @@ std::string Pattern::group (const std::string& groupName)
                  groupName.c_str(),
                  &stringPtr);
 
+    printf("stringPtr : %s\n", stringPtr);
+    
     if (rc < 0) {
         switch (rc) {
 
             case PCRE_ERROR_NOSUBSTRING:
+	        printf("Pattern::PCRE_ERROR_NOSUBSTRING\n");
                 throw std::out_of_range ("Invalid group reference.");
 
             case PCRE_ERROR_NOMEMORY:
@@ -245,8 +256,9 @@ bool Pattern::matches (void) throw (match_error)
 
 bool Pattern::matches (const std::string& subject) throw (match_error)
 {
-    //printf("Current offset: %d, old offset: %d", _offset[1], _offset[0]);
-    //printf("Trying <start>%s<end>", subject.substr(_offset[1]).c_str());
+    printf("Pattern::matches\n");
+    printf("  Current offset: %d, old offset: %d", _offset[1], _offset[0]);
+    printf("  Trying <start>%s<end>\n", subject.substr(_offset[1]).c_str());
 
     // Try to find a match for this pattern
     int rc = pcre_exec (
@@ -263,7 +275,7 @@ bool Pattern::matches (const std::string& subject) throw (match_error)
 
     if (rc < 0) {
         _offset[0] = _offset[1] = 0;
-        //printf("Matching failed with %d", rc);
+        printf("  Matching failed with %d\n", rc);
         return false;
     }
 
@@ -274,7 +286,7 @@ bool Pattern::matches (const std::string& subject) throw (match_error)
         _offset[1] =  _ovector[1] + _offset[0];
     }
 
-    //printf("Matching succeeded with %d to %d", (int) start(), (int) end());
+    printf("  Matching succeeded with %d to %d\n", (int) start(), (int) end());
 
     // Matching succeded but not enough space.
     if (rc == 0) {
@@ -284,7 +296,8 @@ bool Pattern::matches (const std::string& subject) throw (match_error)
 
     // Matching succeeded. Keep the number of substrings for
     // subsequent calls to group().
-    _count = rc;
+    printf("_count: %i = %i\n", _count, rc);
+      _count = rc;
 
     return true;
 }
@@ -300,6 +313,8 @@ std::vector<std::string> Pattern::split (void)
         tokenStart = start();
         substringSplitted.push_back (_subject.substr (tokenEnd + 1,
                                      tokenStart - tokenEnd - 1));
+	printf("split: %s\n", _subject.substr (tokenEnd + 1,
+						 tokenStart - tokenEnd - 1).c_str());
         tokenEnd = end();
     }
 
diff --git a/sflphone-common/src/sip/SdesNegotiator.cpp b/sflphone-common/src/sip/SdesNegotiator.cpp
index f0b837a453..8e95937832 100644
--- a/sflphone-common/src/sip/SdesNegotiator.cpp
+++ b/sflphone-common/src/sip/SdesNegotiator.cpp
@@ -20,6 +20,7 @@
 
 #include "Pattern.h"
 
+#include <cstdio>
 #include <iostream>
 #include <sstream>
 #include <algorithm>
@@ -101,10 +102,11 @@ void SdesNegotiator::parse (void)
 
         // Split the line into its component
         // that we will analyze further down.
-
+	std::vector<std::string> sdesLine;
+	
         *generalSyntaxPattern << (*iter);
-        std::vector<std::string> sdesLine;
-
+        
+	
         try {
             sdesLine = generalSyntaxPattern->split();
 
@@ -114,11 +116,14 @@ void SdesNegotiator::parse (void)
         } catch (match_error& exception) {
             throw parse_error ("Error while analyzing the SDES line.");
         }
+	
 
         // Check if the attribute starts with a=crypto
         // and get the tag for this line
         *tagPattern << sdesLine.at (0);
 
+	printf("sdesLine.at (0).c_str() : %s\n", sdesLine.at (0).c_str());
+
         try {
             std::string tag = tagPattern->group ("tag");
             std::cout << "tag = " << tag << std::endl;
diff --git a/sflphone-common/test/sdesnegotiatorTest.cpp b/sflphone-common/test/sdesnegotiatorTest.cpp
index cf21580649..749ef1b0a6 100644
--- a/sflphone-common/test/sdesnegotiatorTest.cpp
+++ b/sflphone-common/test/sdesnegotiatorTest.cpp
@@ -41,6 +41,19 @@ using std::endl;
 void SdesNegotiatorTest::setUp()
 {
 
+    // std::string attr("1 AES_CM_128_HMAC_SHA1_32 srtp inline:16/14/AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwd/2^20/1:32");
+
+    std::string attr("a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:d0RmdmcmVCspeEc3QGZiNWpVLFJhQX1cfHAwJSoj|2^20|1:32");
+
+    remoteOffer = new std::vector<std::string>();
+    remoteOffer->push_back(attr);
+
+    localCapabilities = new std::vector<sfl::CryptoSuiteDefinition>();
+    for(int i = 0; i < 3; i++) {
+        localCapabilities->push_back(sfl::CryptoSuites[i]);
+    }
+
+    sdesnego = new sfl::SdesNegotiator(*localCapabilities, *remoteOffer);
 
 }
 
@@ -48,12 +61,20 @@ void SdesNegotiatorTest::setUp()
 void SdesNegotiatorTest::tearDown()
 {
 
+    delete remoteOffer;
+    remoteOffer = NULL;
+
+    delete localCapabilities;
+    localCapabilities = NULL;
+
+    delete sdesnego;
+    sdesnego = NULL;
+
 }
 
 void SdesNegotiatorTest::testNegotiation()
 {
-
-
+    CPPUNIT_ASSERT(sdesnego->negotiate());
 }
 
 
diff --git a/sflphone-common/test/sdesnegotiatorTest.h b/sflphone-common/test/sdesnegotiatorTest.h
index 16c2dfb7f8..119ba9a2c7 100644
--- a/sflphone-common/test/sdesnegotiatorTest.h
+++ b/sflphone-common/test/sdesnegotiatorTest.h
@@ -29,6 +29,7 @@
 #include <sstream>
 #include <ccrtp/rtp.h>
 
+#include <vector>
 
 // pjsip import
 #include <pjsip.h>
@@ -84,6 +85,12 @@ class SdesNegotiatorTest : public CppUnit::TestCase {
 
     private:
 
+	sfl::SdesNegotiator *sdesnego;
+
+	std::vector<std::string> *remoteOffer;
+
+	std::vector<sfl::CryptoSuiteDefinition> *localCapabilities;
+
 };
 
 /* Register our test module */
-- 
GitLab


From fbaf32a5e0be715bb670368aa6a87784352e0029 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Wed, 13 Jan 2010 10:58:57 -0500
Subject: [PATCH 154/188] [#1722] Working test suite for SdesNegociator

---
 sflphone-common/src/sip/Pattern.cpp         | 35 +++++++------
 sflphone-common/src/sip/SdesNegotiator.cpp  | 13 ++++-
 sflphone-common/test/sdesnegotiatorTest.cpp | 56 +++++++++++++++++++++
 sflphone-common/test/sdesnegotiatorTest.h   | 15 +++++-
 4 files changed, 97 insertions(+), 22 deletions(-)

diff --git a/sflphone-common/src/sip/Pattern.cpp b/sflphone-common/src/sip/Pattern.cpp
index 2e7619fd76..71e093d13c 100644
--- a/sflphone-common/src/sip/Pattern.cpp
+++ b/sflphone-common/src/sip/Pattern.cpp
@@ -32,7 +32,7 @@ Pattern::Pattern (const std::string& pattern, const std::string& options) :
         _options (0)
 {
 
-    printf("Pattern constructor called for %s!\n", pattern.c_str());
+    // printf("Pattern constructor called for %s!\n", pattern.c_str());
     // Set offsets
     _offset[0] = _offset[1] = 0;
 
@@ -126,7 +126,7 @@ std::vector<std::string> Pattern::groups (void)
 
     while (stringList[i] != NULL) {
         matchedSubstrings.push_back (stringList[i]);
-        printf ("Substr: <start>%s<end>", stringList[i]);
+        // printf ("Substr: <start>%s<end>", stringList[i]);
         i++;
     }
 
@@ -139,7 +139,7 @@ std::string Pattern::group (int groupNumber)
 {
     const char * stringPtr;
 
-    printf("_subject.substr : %s\n", _subject.substr (_offset[0]).c_str());
+    // printf("_subject.substr : %s\n", _subject.substr (_offset[0]).c_str());
 
     int rc = pcre_get_substring (
                  _subject.substr (_offset[0]).c_str(),
@@ -173,10 +173,6 @@ std::string Pattern::group (const std::string& groupName)
 {
     const char * stringPtr = NULL;
 
-    printf("Pattern::group %s\n", groupName.c_str());
-    printf("_subject.substr : %s\n", _subject.substr (_offset[0]).c_str());
-    printf("_count : %i\n", _count);
-
     int rc = pcre_get_named_substring (
                  _re,
                  _subject.substr (_offset[0]).c_str(),
@@ -185,19 +181,22 @@ std::string Pattern::group (const std::string& groupName)
                  groupName.c_str(),
                  &stringPtr);
 
-    printf("stringPtr : %s\n", stringPtr);
+    // printf("  _count : %i\n", _count);
+    // printf("stringPtr : %s\n", stringPtr);
     
     if (rc < 0) {
         switch (rc) {
 
             case PCRE_ERROR_NOSUBSTRING:
-	        printf("Pattern::PCRE_ERROR_NOSUBSTRING\n");
+	        // printf("Pattern::PCRE_ERROR_NOSUBSTRING\n");
                 throw std::out_of_range ("Invalid group reference.");
 
             case PCRE_ERROR_NOMEMORY:
+	        // printf("Pattern::PCRE_ERROR_NOMEMORY\n");
                 throw match_error ("Memory exhausted.");
 
             default:
+	        // printf("Pattern::default match error\n");
                 throw match_error ("Failed to get named substring.");
         }
     }
@@ -251,14 +250,14 @@ size_t Pattern::end (void) const
 
 bool Pattern::matches (void) throw (match_error)
 {
-    matches (_subject);
+    return matches (_subject);
 }
 
 bool Pattern::matches (const std::string& subject) throw (match_error)
 {
-    printf("Pattern::matches\n");
-    printf("  Current offset: %d, old offset: %d", _offset[1], _offset[0]);
-    printf("  Trying <start>%s<end>\n", subject.substr(_offset[1]).c_str());
+    // printf("Pattern::matches\n");
+    // printf("  Current offset: %d, old offset: %d", _offset[1], _offset[0]);
+    // printf("  Trying <start>%s<end>\n", subject.substr(_offset[1]).c_str());
 
     // Try to find a match for this pattern
     int rc = pcre_exec (
@@ -275,7 +274,7 @@ bool Pattern::matches (const std::string& subject) throw (match_error)
 
     if (rc < 0) {
         _offset[0] = _offset[1] = 0;
-        printf("  Matching failed with %d\n", rc);
+        // printf("  Matching failed with %d\n", rc);
         return false;
     }
 
@@ -286,7 +285,7 @@ bool Pattern::matches (const std::string& subject) throw (match_error)
         _offset[1] =  _ovector[1] + _offset[0];
     }
 
-    printf("  Matching succeeded with %d to %d\n", (int) start(), (int) end());
+    // printf("  Matching succeeded with %d to %d\n", (int) start(), (int) end());
 
     // Matching succeded but not enough space.
     if (rc == 0) {
@@ -296,7 +295,7 @@ bool Pattern::matches (const std::string& subject) throw (match_error)
 
     // Matching succeeded. Keep the number of substrings for
     // subsequent calls to group().
-    printf("_count: %i = %i\n", _count, rc);
+    // printf("_count: %i = %i\n", _count, rc);
       _count = rc;
 
     return true;
@@ -313,8 +312,8 @@ std::vector<std::string> Pattern::split (void)
         tokenStart = start();
         substringSplitted.push_back (_subject.substr (tokenEnd + 1,
                                      tokenStart - tokenEnd - 1));
-	printf("split: %s\n", _subject.substr (tokenEnd + 1,
-						 tokenStart - tokenEnd - 1).c_str());
+	// printf("split: %s\n", _subject.substr (tokenEnd + 1,
+	// 					 tokenStart - tokenEnd - 1).c_str());
         tokenEnd = end();
     }
 
diff --git a/sflphone-common/src/sip/SdesNegotiator.cpp b/sflphone-common/src/sip/SdesNegotiator.cpp
index 8e95937832..40a736eeb2 100644
--- a/sflphone-common/src/sip/SdesNegotiator.cpp
+++ b/sflphone-common/src/sip/SdesNegotiator.cpp
@@ -59,9 +59,12 @@ void SdesNegotiator::parse (void)
     * sessionParamPattern;
 
     try {
+
+        // used to match white space (which are used as separator) 
         generalSyntaxPattern = new Pattern ("[\x20\x09]+", "g");
 
-        tagPattern = new Pattern ("^a=crypto:(?P<tag>[0-9]{1,9})");
+        tagPattern = new Pattern ("^a=crypto:(?P<tag>[0-9]{1,9})", "g");
+	// tagPattern = new Pattern ("[0-9]");
 
         cryptoSuitePattern = new Pattern (
             "(?P<cryptoSuite>AES_CM_128_HMAC_SHA1_80|" \
@@ -90,10 +93,12 @@ void SdesNegotiator::parse (void)
         throw parse_error ("A compile exception occured on a pattern.");
 
     }
+      
 
     // Take each line from the vector
     // and parse its content
 
+    
     std::vector<std::string>::iterator iter;
 
     for (iter = _remoteAttribute.begin(); iter != _remoteAttribute.end(); iter++) {
@@ -122,7 +127,7 @@ void SdesNegotiator::parse (void)
         // and get the tag for this line
         *tagPattern << sdesLine.at (0);
 
-	printf("sdesLine.at (0).c_str() : %s\n", sdesLine.at (0).c_str());
+	tagPattern->matches();
 
         try {
             std::string tag = tagPattern->group ("tag");
@@ -135,6 +140,8 @@ void SdesNegotiator::parse (void)
         // its value.
         *cryptoSuitePattern << sdesLine.at (1);
 
+	cryptoSuitePattern->matches();
+
         try {
 	    std::string cryptoSuite;
             cryptoSuite = cryptoSuitePattern->group ("cryptoSuite");
@@ -197,4 +204,6 @@ void SdesNegotiator::parse (void)
 bool SdesNegotiator::negotiate (void)
 {
     parse();
+
+    return true;
 }
diff --git a/sflphone-common/test/sdesnegotiatorTest.cpp b/sflphone-common/test/sdesnegotiatorTest.cpp
index 749ef1b0a6..bf5f442aa3 100644
--- a/sflphone-common/test/sdesnegotiatorTest.cpp
+++ b/sflphone-common/test/sdesnegotiatorTest.cpp
@@ -72,6 +72,62 @@ void SdesNegotiatorTest::tearDown()
 
 }
 
+void SdesNegotiatorTest::testTagPattern()
+{
+    std::string subject = "a=crypto:4"; 
+
+    pattern = new sfl::Pattern("^a=crypto:(?P<tag>[0-9]{1,9})");
+    *pattern << subject;
+
+    CPPUNIT_ASSERT(pattern->matches());
+    CPPUNIT_ASSERT(pattern->group("tag").compare("4") == 0);
+
+    delete pattern;
+    pattern = NULL;
+}
+
+
+void SdesNegotiatorTest::testCryptoSuitePattern()
+{
+    std::string subject = "AES_CM_128_HMAC_SHA1_80"; 
+
+    pattern = new sfl::Pattern("(?P<cryptoSuite>AES_CM_128_HMAC_SHA1_80|" \
+			       "AES_CM_128_HMAC_SHA1_32|"		\
+			       "F8_128_HMAC_SHA1_80|"			\
+			       "[A-Za-z0-9_]+)");
+    *pattern << subject;
+
+    CPPUNIT_ASSERT(pattern->matches());
+    CPPUNIT_ASSERT(pattern->group("cryptoSuite").compare("AES_CM_128_HMAC_SHA1_80") == 0);
+
+    delete pattern;
+    pattern = NULL;
+}
+
+
+void SdesNegotiatorTest::testKeyParamsPattern()
+{
+
+    std::string subject = "inline:d0RmdmcmVCspeEc3QGZiNWpVLFJhQX1cfHAwJSoj|2^20|1:32";
+
+    pattern = new sfl::Pattern("(?P<srtpKeyMethod>inline|[A-Za-z0-9_]+)\\:" \
+			       "(?P<srtpKeyInfo>[A-Za-z0-9\x2B\x2F\x3D]+)\\|" \
+			       "2\\^(?P<lifetime>[0-9]+)\\|"		\
+			       "(?P<mkiValue>[0-9]+)\\:"		\
+			       "(?P<mkiLength>[0-9]{1,3})\\;?");
+
+    *pattern << subject;
+
+    CPPUNIT_ASSERT(pattern->matches());
+    CPPUNIT_ASSERT(pattern->group("srtpKeyMethod").compare("inline:"));
+    // printf("srtpKeyInfo %s\n", pattern->group("srtpKeyInfo").c_str());
+    // CPPUNIT_ASSERT(pattern->group("srtpKeyInfo").compare("d0RmdmcmVCspeEc3QGZiNWpVLFJhQX1cfHAwJSoj"));
+
+    delete pattern;
+    pattern = NULL;
+}
+
+
 void SdesNegotiatorTest::testNegotiation()
 {
     CPPUNIT_ASSERT(sdesnego->negotiate());
diff --git a/sflphone-common/test/sdesnegotiatorTest.h b/sflphone-common/test/sdesnegotiatorTest.h
index 119ba9a2c7..4e97a9d6da 100644
--- a/sflphone-common/test/sdesnegotiatorTest.h
+++ b/sflphone-common/test/sdesnegotiatorTest.h
@@ -40,7 +40,7 @@
 
 // Application import
 #include "sip/SdesNegotiator.h"
-
+#include "sip/Pattern.h"
 // #include "config/config.h"
 // #include "user_cfg.h"
 
@@ -62,7 +62,10 @@ class SdesNegotiatorTest : public CppUnit::TestCase {
      * Use cppunit library macros to add unit test the factory
      */
     CPPUNIT_TEST_SUITE( SdesNegotiatorTest );
-        CPPUNIT_TEST( testNegotiation );
+    CPPUNIT_TEST( testTagPattern );
+    CPPUNIT_TEST( testCryptoSuitePattern );
+    CPPUNIT_TEST( testKeyParamsPattern );
+    CPPUNIT_TEST( testNegotiation );
     CPPUNIT_TEST_SUITE_END();
 
     public:
@@ -81,10 +84,18 @@ class SdesNegotiatorTest : public CppUnit::TestCase {
          */
         inline void tearDown();
 
+	void testTagPattern();
+
+	void testCryptoSuitePattern();
+
+	void testKeyParamsPattern();
+
        	void testNegotiation();
 
     private:
 
+	sfl::Pattern *pattern;
+
 	sfl::SdesNegotiator *sdesnego;
 
 	std::vector<std::string> *remoteOffer;
-- 
GitLab


From 01b091924b1651be697e231a33275068d061e43f Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Wed, 13 Jan 2010 11:27:23 -0500
Subject: [PATCH 155/188] [#1722] Add accessors in SdesNegotiator to get srtp
 info after negotiation

---
 sflphone-common/src/sip/SdesNegotiator.cpp  | 31 +++++-----
 sflphone-common/src/sip/SdesNegotiator.h    | 64 ++++++++++++++++++++-
 sflphone-common/test/sdesnegotiatorTest.cpp | 30 ++++++++--
 3 files changed, 100 insertions(+), 25 deletions(-)

diff --git a/sflphone-common/src/sip/SdesNegotiator.cpp b/sflphone-common/src/sip/SdesNegotiator.cpp
index 40a736eeb2..e8618e3ab8 100644
--- a/sflphone-common/src/sip/SdesNegotiator.cpp
+++ b/sflphone-common/src/sip/SdesNegotiator.cpp
@@ -143,9 +143,8 @@ void SdesNegotiator::parse (void)
 	cryptoSuitePattern->matches();
 
         try {
-	    std::string cryptoSuite;
-            cryptoSuite = cryptoSuitePattern->group ("cryptoSuite");
-            std::cout << "crypto-suite = " << cryptoSuite << std::endl;
+            _cryptoSuite = cryptoSuitePattern->group ("cryptoSuite");
+            std::cout << "crypto-suite = " << _cryptoSuite << std::endl;
         } catch (match_error& exception) {
             throw parse_error ("Error while parsing the crypto-suite field");
         }
@@ -155,25 +154,21 @@ void SdesNegotiator::parse (void)
 
         try {
             while (keyParamsPattern->matches()) {
-                std::string srtpKeyMethod;
-                srtpKeyMethod = keyParamsPattern->group ("srtpKeyMethod");
-                std::cout << "srtp-key-method = " << srtpKeyMethod << std::endl;
+                
+                _srtpKeyMethod = keyParamsPattern->group ("srtpKeyMethod");
+                std::cout << "srtp-key-method = " << _srtpKeyMethod << std::endl;
 
-                std::string srtpKeyInfo;
-                srtpKeyInfo = keyParamsPattern->group ("srtpKeyInfo");
-                std::cout << "srtp-key-info = " << srtpKeyInfo << std::endl;
+                _srtpKeyInfo = keyParamsPattern->group ("srtpKeyInfo");
+                std::cout << "srtp-key-info = " << _srtpKeyInfo << std::endl;
 
-                std::string lifetime;
-                lifetime = keyParamsPattern->group ("lifetime");
-                std::cout << "lifetime = " << lifetime << std::endl;
+                _lifetime = keyParamsPattern->group ("lifetime");
+                std::cout << "lifetime = " << _lifetime << std::endl;
 
-                std::string mkiValue;
-                mkiValue = keyParamsPattern->group ("mkiValue");
-                std::cout << "mkiValue = " << mkiValue << std::endl;
+                _mkiValue = keyParamsPattern->group ("mkiValue");
+                std::cout << "mkiValue = " << _mkiValue << std::endl;
 
-                std::string mkiLength;
-                mkiLength = keyParamsPattern->group ("mkiLength");
-                std::cout << "mkiLength = " << mkiLength << std::endl;
+                _mkiLength = keyParamsPattern->group ("mkiLength");
+                std::cout << "mkiLength = " << _mkiLength << std::endl;
             }
         } catch (match_error& exception) {
             throw parse_error ("Error while parsing the key-params field");
diff --git a/sflphone-common/src/sip/SdesNegotiator.h b/sflphone-common/src/sip/SdesNegotiator.h
index 2dded5b1a7..08e32090ef 100644
--- a/sflphone-common/src/sip/SdesNegotiator.h
+++ b/sflphone-common/src/sip/SdesNegotiator.h
@@ -97,9 +97,38 @@ namespace sfl {
             SdesNegotiator(const std::vector<CryptoSuiteDefinition>& localCapabilites, const std::vector<std::string>& remoteAttribute);
             ~SdesNegotiator() { };
             
-        public:
             bool negotiate(void);
 
+	    /**
+	     * Return crypto suite after negotiation
+	     */
+	    std::string getCryptoSuite(void) { return _cryptoSuite; }
+
+	    /**
+	     * Return key method after negotiation (most likely inline:)
+	     */
+	    std::string getKeyMethod(void) { return _srtpKeyMethod; }
+
+	    /**
+	     * Return crypto suite after negotiation
+	     */
+	    std::string getKeyInfo(void) { return _srtpKeyInfo; }
+
+	    /**
+	     * Return key lifetime after negotiation
+	     */
+	    std::string getLifeTime(void) { return _lifetime; }
+
+	    /**
+	     * Return mki value after negotiation
+	     */
+	    std::string getMkiValue(void) { return _mkiValue; }
+
+	    /**
+	     * Return mki length after negotiation
+	     */
+	    std::string getMkiLength(void) { return _mkiLength; }
+
         private:
             /**
              * A vector list containing the remote attributes.
@@ -107,12 +136,41 @@ namespace sfl {
              * prefered method is then chosen from that list.
              */
             std::vector<std::string> _remoteAttribute;
+
             std::vector<CryptoSuiteDefinition> _localCapabilities;
-            
 
+	    /**
+	     * Selected crypto suite after negotiation
+	     */
+	    std::string _cryptoSuite;
 
-        private:
+	    /**
+	     * Selected key method after negotiation (most likely inline:)
+	     */
+	    std::string _srtpKeyMethod;
+
+	    /**
+	     * Selected crypto suite after negotiation
+	     */
+	    std::string _srtpKeyInfo;
+
+	    /**
+	     * Selected key lifetime after negotiation
+	     */
+	    std::string _lifetime;
+
+	    /**
+	     * Selected mki value after negotiation
+	     */
+	    std::string _mkiValue;
+
+	    /**
+	     * Selected mki length after negotiation
+	     */
+	    std::string _mkiLength;
+            
             void parse(void);
+
             CryptoAttribute * tokenize(const std::string& attributeLine);
     };
 }
diff --git a/sflphone-common/test/sdesnegotiatorTest.cpp b/sflphone-common/test/sdesnegotiatorTest.cpp
index bf5f442aa3..ec20866452 100644
--- a/sflphone-common/test/sdesnegotiatorTest.cpp
+++ b/sflphone-common/test/sdesnegotiatorTest.cpp
@@ -114,14 +114,30 @@ void SdesNegotiatorTest::testKeyParamsPattern()
 			       "(?P<srtpKeyInfo>[A-Za-z0-9\x2B\x2F\x3D]+)\\|" \
 			       "2\\^(?P<lifetime>[0-9]+)\\|"		\
 			       "(?P<mkiValue>[0-9]+)\\:"		\
-			       "(?P<mkiLength>[0-9]{1,3})\\;?");
+			       "(?P<mkiLength>[0-9]{1,3})\\;?", "g");
 
     *pattern << subject;
 
-    CPPUNIT_ASSERT(pattern->matches());
+    pattern->matches();
+    CPPUNIT_ASSERT(pattern->group("srtpKeyMethod").compare("inline:"));
+
+    /*
+    while (pattern->matches()) {
+                
+        std::string _srtpKeyMethod = pattern->group ("srtpKeyMethod");
+	std::string _srtpKeyInfo = pattern->group ("srtpKeyInfo");
+	std::string _lifetime = pattern->group ("lifetime");
+	std::string _mkiValue = pattern->group ("mkiValue");
+	std::string _mkiLength = pattern->group ("mkiLength");
+    }
+
+
     CPPUNIT_ASSERT(pattern->group("srtpKeyMethod").compare("inline:"));
-    // printf("srtpKeyInfo %s\n", pattern->group("srtpKeyInfo").c_str());
-    // CPPUNIT_ASSERT(pattern->group("srtpKeyInfo").compare("d0RmdmcmVCspeEc3QGZiNWpVLFJhQX1cfHAwJSoj"));
+    CPPUNIT_ASSERT(pattern->group("srtpKeyInfo").compare("d0RmdmcmVCspeEc3QGZiNWpVLFJhQX1cfHAwJSoj"));
+    CPPUNIT_ASSERT(pattern->group("lifetime").compare("20"));
+    CPPUNIT_ASSERT(pattern->group("mkivalue").compare("1"));
+    CPPUNIT_ASSERT(pattern->group("mkilength").compare("32"));
+    */
 
     delete pattern;
     pattern = NULL;
@@ -131,6 +147,12 @@ void SdesNegotiatorTest::testKeyParamsPattern()
 void SdesNegotiatorTest::testNegotiation()
 {
     CPPUNIT_ASSERT(sdesnego->negotiate());
+    CPPUNIT_ASSERT(sdesnego->getCryptoSuite().compare("AES_CM_128_HMAC_SHA1_80") == 0);
+    CPPUNIT_ASSERT(sdesnego->getKeyMethod().compare("inline") == 0);
+    CPPUNIT_ASSERT(sdesnego->getKeyInfo().compare("d0RmdmcmVCspeEc3QGZiNWpVLFJhQX1cfHAwJSoj") == 0);
+    CPPUNIT_ASSERT(sdesnego->getLifeTime().compare("20") == 0);
+    CPPUNIT_ASSERT(sdesnego->getMkiValue().compare("1") == 0);
+    CPPUNIT_ASSERT(sdesnego->getMkiLength().compare("32") == 0);
 }
 
 
-- 
GitLab


From fe4619f206a4b285320199b2473f90a8e37506ba Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Wed, 13 Jan 2010 12:02:40 -0500
Subject: [PATCH 156/188] [#1722] Added setRemoteCryptoInfo function in
 AudioSrtpSession/AudioRtpFactory

---
 .../src/audio/audiortp/AudioRtpFactory.cpp    | 14 +++-
 .../src/audio/audiortp/AudioRtpFactory.h      |  8 ++-
 .../src/audio/audiortp/AudioSrtpSession.cpp   | 65 ++++++++++---------
 .../src/audio/audiortp/AudioSrtpSession.h     |  8 ++-
 sflphone-common/src/sip/sipvoiplink.cpp       | 10 +++
 5 files changed, 71 insertions(+), 34 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp b/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
index e5fdf99b8c..921e4a908b 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
@@ -110,7 +110,7 @@ void AudioRtpFactory::initAudioRtpSession (SIPCall * ca)
 	        _rtpSession = new AudioSrtpSession (&Manager::instance(), ca);
                 _rtpSessionType = Sdes;
 
-		ca->getLocalSDP()->set_srtp_crypto(static_cast<AudioSrtpSession *> (_rtpSession)->getCryptoSdpInfo());
+		ca->getLocalSDP()->set_srtp_crypto(static_cast<AudioSrtpSession *> (_rtpSession)->getLocalCryptoInfo());
 		break;
 
             default:
@@ -197,4 +197,16 @@ sfl::AudioZrtpSession * AudioRtpFactory::getAudioZrtpSession()
         throw AudioRtpFactoryException();
     }
 }
+
+void AudioRtpFactory::setRemoteCryptoInfo()
+{
+    if ( (_rtpSessionType != NULL) && (_rtpSessionType != Sdes)) {
+        static_cast<AudioSrtpSession *> (_rtpSession)->setRemoteCryptoInfo();
+    }
+    else {
+        throw AudioRtpFactoryException();
+    }
+}
 }
+
+
diff --git a/sflphone-common/src/audio/audiortp/AudioRtpFactory.h b/sflphone-common/src/audio/audiortp/AudioRtpFactory.h
index 9d827a5d87..4214980106 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpFactory.h
+++ b/sflphone-common/src/audio/audiortp/AudioRtpFactory.h
@@ -91,7 +91,13 @@ namespace sfl {
          * if the current rtp thread is null, or if it's not of the correct type.
          * @return The current AudioZrtpSession thread.
          */
-        sfl::AudioZrtpSession * getAudioZrtpSession();       
+        sfl::AudioZrtpSession * getAudioZrtpSession();  
+
+	/**
+         * Set remote cryptographic info. Should be called after negotiation in SDP
+	 * offer/answer session.
+         */
+        void setRemoteCryptoInfo();   
         
         private:
            void * _rtpSession;
diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index 5471e4dd67..44e23dd9b2 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -52,14 +52,14 @@ AudioSrtpSession::AudioSrtpSession (ManagerImpl * manager, SIPCall * sipcall) :
     initializeInputCryptoContext();
     initializeOutputCryptoContext();
 
-    outputCryptoCtx->deriveSrtpKeys(0);
+    _outputCryptoCtx->deriveSrtpKeys(0);
 
-    setInQueueCryptoContext(inputCryptoCtx);
-    setOutQueueCryptoContext(outputCryptoCtx);
+    setInQueueCryptoContext(_inputCryptoCtx);
+    setOutQueueCryptoContext(_outputCryptoCtx);
 }
 
  
-std::string AudioSrtpSession::getCryptoSdpInfo() {
+std::string AudioSrtpSession::getLocalCryptoInfo() {
 
     _debug("Get Cryptographic info from this rtp session");
 
@@ -86,6 +86,13 @@ std::string AudioSrtpSession::getCryptoSdpInfo() {
 }
 
 
+void AudioSrtpSession::setRemoteCryptoInfo() {
+
+    _debug("Set remote Cryptographic info for this rtp session");
+
+}
+
+
 void AudioSrtpSession::initializeMasterKey(void)
 {
     _masterKeyLength = 16;
@@ -131,31 +138,9 @@ std::string AudioSrtpSession::getBase64ConcatenatedKeys()
 void AudioSrtpSession::initializeInputCryptoContext(void)
 {
 
-  // this one does not works
-  // inputCryptoCtx = new ost::CryptoContext(IncomingDataQueue::getLocalSSRCNetwork(),
-  inputCryptoCtx = new ost::CryptoContext(0x0,
-					  0,                           // roc,
-					  0L,                          // keydr,
-					  SrtpEncryptionAESCM,         // encryption algo
-					  SrtpAuthenticationSha1Hmac,  // authtication algo
-					  _masterKey,                  // Master Key
-					  128 / 8,                     // Master Key length
-					  _masterSalt,                 // Master Salt
-					  112 / 8,                     // Master Salt length
-					  128 / 8,                     // encryption keyl
-					  160 / 8,                     // authentication key len
-					  112 / 8,                     // session salt len
-					  80 / 8);                     // authentication tag len
-
-    
-}
-
-void AudioSrtpSession::initializeOutputCryptoContext(void)
-{
-
-  // this one works
-  // outputCryptoCtx = new ost::CryptoContext(OutgoingDataQueue::getLocalSSRC(),
-    outputCryptoCtx = new ost::CryptoContext(OutgoingDataQueue::getLocalSSRC(),
+    // this one does not works
+    // inputCryptoCtx = new ost::CryptoContext(IncomingDataQueue::getLocalSSRCNetwork(),
+    _inputCryptoCtx = new ost::CryptoContext(0x0,
 					     0,                           // roc,
 					     0L,                          // keydr,
 					     SrtpEncryptionAESCM,         // encryption algo
@@ -169,6 +154,28 @@ void AudioSrtpSession::initializeOutputCryptoContext(void)
 					     112 / 8,                     // session salt len
 					     80 / 8);                     // authentication tag len
 
+    
+}
+
+void AudioSrtpSession::initializeOutputCryptoContext(void)
+{
+
+    // this one works
+    // outputCryptoCtx = new ost::CryptoContext(OutgoingDataQueue::getLocalSSRC(),
+    _outputCryptoCtx = new ost::CryptoContext(OutgoingDataQueue::getLocalSSRC(),
+					      0,                           // roc,
+					      0L,                          // keydr,
+					      SrtpEncryptionAESCM,         // encryption algo
+					      SrtpAuthenticationSha1Hmac,  // authtication algo
+					      _masterKey,                  // Master Key
+					      128 / 8,                     // Master Key length
+					      _masterSalt,                 // Master Salt
+					      112 / 8,                     // Master Salt length
+					      128 / 8,                     // encryption keyl
+					      160 / 8,                     // authentication key len
+					      112 / 8,                     // session salt len
+					      80 / 8);                     // authentication tag len
+
 
 }
 
diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.h b/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
index cf932f257d..a41a90361b 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
@@ -42,7 +42,9 @@ namespace sfl {
 
             AudioSrtpSession(ManagerImpl * manager, SIPCall * sipcall);
 
-	    std::string getCryptoSdpInfo(void);
+	    std::string getLocalCryptoInfo(void);
+
+	    void setRemoteCryptoInfo(void);
 
         private:
 
@@ -68,9 +70,9 @@ namespace sfl {
 
 	    int _masterSaltLength;
 
-	    ost::CryptoContext* inputCryptoCtx;
+	    ost::CryptoContext* _inputCryptoCtx;
 
-	    ost::CryptoContext* outputCryptoCtx;
+	    ost::CryptoContext* _outputCryptoCtx;
     };
    
 }
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index b28606f29d..9c0fba7f7d 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -3217,6 +3217,8 @@ void call_on_media_update (pjsip_inv_session *inv, pj_status_t status)
     pjmedia_sdp_attr *attribute;
     call->getLocalSDP()->get_remote_sdp_crypto_from_offer(remote_sdp, &attribute);
 
+    
+    
     // create remote cryptografic offer
     std::vector<std::string> remoteOffer;
 
@@ -3231,6 +3233,14 @@ void call_on_media_update (pjsip_inv_session *inv, pj_status_t status)
 
     sfl::SdesNegotiator sdesnego(localCapabilities, remoteOffer);
 
+    sdesnego.negotiate();
+
+    if(sdesnego.negotiate()) {
+        _debug("******************** Negociation Is Successfull *********************\n");
+
+	call->getAudioRtp()->setRemoteCryptoInfo();
+    }
+
 
     try {
         call->setAudioStart (true);
-- 
GitLab


From 11814fe48b293dd4e83708243f4845aa8458b4cb Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Wed, 13 Jan 2010 13:08:55 -0500
Subject: [PATCH 157/188] [#1722] Acquire remote keys from sdes session

---
 .../src/audio/audiortp/AudioRtpFactory.cpp    |  7 +-
 .../src/audio/audiortp/AudioRtpFactory.h      |  6 +-
 .../src/audio/audiortp/AudioSrtpSession.cpp   | 76 +++++++++++++------
 .../src/audio/audiortp/AudioSrtpSession.h     | 34 ++++++---
 sflphone-common/src/sip/sipvoiplink.cpp       | 38 +++++-----
 5 files changed, 104 insertions(+), 57 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp b/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
index 921e4a908b..1a2c14ff79 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
@@ -26,6 +26,7 @@
 #include "manager.h"
 #include "account.h"
 #include "sip/sipcall.h"
+#include "sip/SdesNegotiator.h"
 
 #include <assert.h>
 
@@ -198,10 +199,10 @@ sfl::AudioZrtpSession * AudioRtpFactory::getAudioZrtpSession()
     }
 }
 
-void AudioRtpFactory::setRemoteCryptoInfo()
+  void AudioRtpFactory::setRemoteCryptoInfo(sfl::SdesNegotiator& nego)
 {
-    if ( (_rtpSessionType != NULL) && (_rtpSessionType != Sdes)) {
-        static_cast<AudioSrtpSession *> (_rtpSession)->setRemoteCryptoInfo();
+    if ( (_rtpSessionType != NULL) && (_rtpSessionType == Sdes)) {
+        static_cast<AudioSrtpSession *> (_rtpSession)->setRemoteCryptoInfo(nego);
     }
     else {
         throw AudioRtpFactoryException();
diff --git a/sflphone-common/src/audio/audiortp/AudioRtpFactory.h b/sflphone-common/src/audio/audiortp/AudioRtpFactory.h
index 4214980106..5165cbffc1 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpFactory.h
+++ b/sflphone-common/src/audio/audiortp/AudioRtpFactory.h
@@ -22,7 +22,11 @@
 #include <stdexcept>
 #include <cc++/thread.h>
 
+#include "sip/SdesNegotiator.h"
+
+class SdesNegotiator;
 class SIPCall;
+
 namespace sfl {
     class AudioZrtpSession;
     class AudioSrtpSession;
@@ -97,7 +101,7 @@ namespace sfl {
          * Set remote cryptographic info. Should be called after negotiation in SDP
 	 * offer/answer session.
          */
-        void setRemoteCryptoInfo();   
+        void setRemoteCryptoInfo(sfl::SdesNegotiator& nego);   
         
         private:
            void * _rtpSession;
diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index 44e23dd9b2..0c62c1a9d1 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -47,15 +47,15 @@ AudioSrtpSession::AudioSrtpSession (ManagerImpl * manager, SIPCall * sipcall) :
         AudioRtpSession<AudioSrtpSession> (manager, sipcall)
 {
     _debug ("***************** AudioSrtpSession initialized *********************");
-    initializeMasterKey();
-    initializeMasterSalt();
-    initializeInputCryptoContext();
-    initializeOutputCryptoContext();
+    initializeLocalMasterKey();
+    initializeLocalMasterSalt();
+    // initializeRemoteCryptoContext();
+    initializeLocalCryptoContext();
 
-    _outputCryptoCtx->deriveSrtpKeys(0);
+    _localCryptoCtx->deriveSrtpKeys(0);
 
-    setInQueueCryptoContext(_inputCryptoCtx);
-    setOutQueueCryptoContext(_outputCryptoCtx);
+    // setInQueueCryptoContext(_remoteCryptoCtx);
+    setOutQueueCryptoContext(_localCryptoCtx);
 }
 
  
@@ -71,7 +71,7 @@ std::string AudioSrtpSession::getLocalCryptoInfo() {
     // format srtp keys as the following
     // inline:16/14/NzB4d1BINUAvLEw6UzF3WSJ+PSdFcGdUJShpX1Zj/2^20/1:32
     std::string srtp_keys = "inline:";
-    srtp_keys.append("16/14/");
+    // srtp_keys.append("16/14/");
     srtp_keys += getBase64ConcatenatedKeys();
     srtp_keys.append("/2^20/1:32");
 
@@ -86,30 +86,33 @@ std::string AudioSrtpSession::getLocalCryptoInfo() {
 }
 
 
-void AudioSrtpSession::setRemoteCryptoInfo() {
+void AudioSrtpSession::setRemoteCryptoInfo(sfl::SdesNegotiator& nego) {
 
     _debug("Set remote Cryptographic info for this rtp session");
 
+    unBase64ConcatenatedKeys(nego.getKeyInfo());
+    
+    initializeRemoteCryptoContext();
 }
 
 
-void AudioSrtpSession::initializeMasterKey(void)
+void AudioSrtpSession::initializeLocalMasterKey(void)
 {
-    _masterKeyLength = 16;
+    _localMasterKeyLength = 16;
 
     for(int i = 0; i < 16; i++)
-        _masterKey[i] = mk[i];
+        _localMasterKey[i] = mk[i];
 
     return;
 }
 
 
-void AudioSrtpSession::initializeMasterSalt(void)
+void AudioSrtpSession::initializeLocalMasterSalt(void)
 {
-    _masterSaltLength = 14;
+    _localMasterSaltLength = 14;
 
     for(int i = 0; i < 14; i++)
-        _masterSalt[i] = ms[i];
+        _localMasterSalt[i] = ms[i];
 
     return;
 
@@ -121,8 +124,8 @@ std::string AudioSrtpSession::getBase64ConcatenatedKeys()
 
     // concatenate master and salt
     uint8 concatenated[30];
-    memcpy((void*)concatenated, (void*)_masterKey, 16);
-    memcpy((void*)(concatenated+16), (void*)_masterSalt, 14);
+    memcpy((void*)concatenated, (void*)_localMasterKey, 16);
+    memcpy((void*)(concatenated+16), (void*)_localMasterSalt, 14);
 
     // encode concatenated keys in base64
     char *output = encodeBase64((unsigned char*)concatenated, 30);
@@ -135,19 +138,42 @@ std::string AudioSrtpSession::getBase64ConcatenatedKeys()
 }
 
 
-void AudioSrtpSession::initializeInputCryptoContext(void)
+  void AudioSrtpSession::unBase64ConcatenatedKeys(std::string base64keys)
+{
+
+    char *output = decodeBase64((unsigned char*)base64keys.c_str(), base64keys.size());
+
+    uint8 finally[30];
+    memcpy((void*)finally, (void*)output, 30);
+
+     printf("Master: ");
+     for(int i = 0; i < 16; i++) {
+       printf("%i", finally[i]);
+     }
+     printf("\n");
+     printf("Salt: ");
+     for(int i = 16; i < 30; i++) {
+       printf("%i", finally[i]);
+     }
+     printf("\n");
+
+    free(output);
+}
+
+
+void AudioSrtpSession::initializeRemoteCryptoContext(void)
 {
 
     // this one does not works
     // inputCryptoCtx = new ost::CryptoContext(IncomingDataQueue::getLocalSSRCNetwork(),
-    _inputCryptoCtx = new ost::CryptoContext(0x0,
+    _remoteCryptoCtx = new ost::CryptoContext(0x0,
 					     0,                           // roc,
 					     0L,                          // keydr,
 					     SrtpEncryptionAESCM,         // encryption algo
 					     SrtpAuthenticationSha1Hmac,  // authtication algo
-					     _masterKey,                  // Master Key
+					     _remoteMasterKey,            // Master Key
 					     128 / 8,                     // Master Key length
-					     _masterSalt,                 // Master Salt
+					     _remoteMasterSalt,           // Master Salt
 					     112 / 8,                     // Master Salt length
 					     128 / 8,                     // encryption keyl
 					     160 / 8,                     // authentication key len
@@ -157,19 +183,19 @@ void AudioSrtpSession::initializeInputCryptoContext(void)
     
 }
 
-void AudioSrtpSession::initializeOutputCryptoContext(void)
+void AudioSrtpSession::initializeLocalCryptoContext(void)
 {
 
     // this one works
     // outputCryptoCtx = new ost::CryptoContext(OutgoingDataQueue::getLocalSSRC(),
-    _outputCryptoCtx = new ost::CryptoContext(OutgoingDataQueue::getLocalSSRC(),
+    _localCryptoCtx = new ost::CryptoContext(OutgoingDataQueue::getLocalSSRC(),
 					      0,                           // roc,
 					      0L,                          // keydr,
 					      SrtpEncryptionAESCM,         // encryption algo
 					      SrtpAuthenticationSha1Hmac,  // authtication algo
-					      _masterKey,                  // Master Key
+					      _localMasterKey,             // Master Key
 					      128 / 8,                     // Master Key length
-					      _masterSalt,                 // Master Salt
+					      _localMasterSalt,            // Master Salt
 					      112 / 8,                     // Master Salt length
 					      128 / 8,                     // encryption keyl
 					      160 / 8,                     // authentication key len
diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.h b/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
index a41a90361b..9055d07c31 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
@@ -20,9 +20,11 @@
 #define __SFL_AUDIO_SRTP_SESSION_H__
 
 #include "AudioRtpSession.h"
+#include "sip/SdesNegotiator.h"
 
 #include <ccrtp/CryptoContext.h>
 
+class SdesNegotiator;
 class ManagerImpl;
 class SIPCall;
 
@@ -44,35 +46,45 @@ namespace sfl {
 
 	    std::string getLocalCryptoInfo(void);
 
-	    void setRemoteCryptoInfo(void);
+	    void setRemoteCryptoInfo(sfl::SdesNegotiator& nego);
 
         private:
 
-            void initializeMasterKey(void);
+            void initializeLocalMasterKey(void);
 
-	    void initializeMasterSalt(void);
+	    void initializeLocalMasterSalt(void);
 
-	    void initializeInputCryptoContext(void);
+	    void initializeRemoteCryptoContext(void);
 
-	    void initializeOutputCryptoContext(void);
+	    void initializeLocalCryptoContext(void);
 
 	    std::string getBase64ConcatenatedKeys();
 
+	    void unBase64ConcatenatedKeys(std::string base64keys);
+
 	    char* encodeBase64(unsigned char *input, int length);
 
 	    char* decodeBase64(unsigned char *input, int length);
 
-            uint8 _masterKey[16];
+            uint8 _localMasterKey[16];
+
+	    int _localMasterKeyLength;
+
+	    uint8 _localMasterSalt[14];
+
+	    int _localMasterSaltLength;
+
+	    uint8 _remoteMasterKey[16];
 
-	    int _masterKeyLength;
+	    int _remoteMasterKeyLength;
 
-	    uint8 _masterSalt[14];
+	    uint8 _remoteMasterSalt[14];
 
-	    int _masterSaltLength;
+	    int _remoteMasterSaltLength;
 
-	    ost::CryptoContext* _inputCryptoCtx;
+	    ost::CryptoContext* _remoteCryptoCtx;
 
-	    ost::CryptoContext* _outputCryptoCtx;
+	    ost::CryptoContext* _localCryptoCtx;
     };
    
 }
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 9c0fba7f7d..e173e0bd18 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -3214,34 +3214,38 @@ void call_on_media_update (pjsip_inv_session *inv, pj_status_t status)
     call->getLocalSDP()->set_media_transport_info_from_remote_sdp (remote_sdp);
 
     // Get the crypto attribute containing srtp's cryptographic context (keys, cipher)
-    pjmedia_sdp_attr *attribute;
+    pjmedia_sdp_attr *attribute = NULL;
     call->getLocalSDP()->get_remote_sdp_crypto_from_offer(remote_sdp, &attribute);
 
-    
-    
-    // create remote cryptografic offer
-    std::vector<std::string> remoteOffer;
+    if(attribute) {
 
-    std::string attr(attribute->value.ptr, attribute->value.slen);
+        _debug("Crypto attribute in SDP: init Srtp session");
 
-    remoteOffer.push_back(attr);
+        // create remote cryptografic offer
+        std::vector<std::string> remoteOffer;
 
-    std::vector<sfl::CryptoSuiteDefinition>localCapabilities;
-    for(int i = 0; i < 3; i++) {
-      localCapabilities.push_back(sfl::CryptoSuites[i]);
-    }
+	// @TODO parser expects attribute names to be present, should not 
+	std::string attr(attribute->value.ptr, attribute->value.slen);
+	std::string full_attr = "a=crypto:";
+	full_attr += attr;
+
+	remoteOffer.push_back(full_attr);
 
-    sfl::SdesNegotiator sdesnego(localCapabilities, remoteOffer);
+	std::vector<sfl::CryptoSuiteDefinition>localCapabilities;
+	for(int i = 0; i < 3; i++) {
+	    localCapabilities.push_back(sfl::CryptoSuites[i]);
+	}
 
-    sdesnego.negotiate();
+	sfl::SdesNegotiator sdesnego(localCapabilities, remoteOffer);
+	
+	if(sdesnego.negotiate()) {
+	    _debug("******************** Negociation Is Successfull *********************\n");
 
-    if(sdesnego.negotiate()) {
-        _debug("******************** Negociation Is Successfull *********************\n");
+	    call->getAudioRtp()->setRemoteCryptoInfo(sdesnego);
+	}
 
-	call->getAudioRtp()->setRemoteCryptoInfo();
     }
 
-
     try {
         call->setAudioStart (true);
         call->getAudioRtp()->start();
-- 
GitLab


From 724a0e6b70c3ba3bf0f17099beac93232a11cc9a Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Wed, 13 Jan 2010 14:27:13 -0500
Subject: [PATCH 158/188] [#1722] Remove application from crypto attribute

---
 .../src/audio/audiortp/AudioSrtpSession.cpp   | 40 ++++++++++++++-----
 sflphone-common/src/sip/sipvoiplink.cpp       |  1 +
 2 files changed, 30 insertions(+), 11 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index 0c62c1a9d1..e60546ee23 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -46,7 +46,7 @@ AudioSrtpSession::AudioSrtpSession (ManagerImpl * manager, SIPCall * sipcall) :
         ost::SymmetricRTPSession (ost::InetHostAddress (sipcall->getLocalIp().c_str()), sipcall->getLocalAudioPort()),
         AudioRtpSession<AudioSrtpSession> (manager, sipcall)
 {
-    _debug ("***************** AudioSrtpSession initialized *********************");
+    _debug ("***************** Initialize AudioSrtpSession *********************");
     initializeLocalMasterKey();
     initializeLocalMasterSalt();
     // initializeRemoteCryptoContext();
@@ -77,7 +77,7 @@ std::string AudioSrtpSession::getLocalCryptoInfo() {
 
     std::string crypto = tag.append(" ");
     crypto += crypto_suite.append(" ");
-    crypto += application.append(" ");
+    // crypto += application.append(" ");
     crypto += srtp_keys;
 
     _debug("%s", crypto.c_str());
@@ -90,18 +90,28 @@ void AudioSrtpSession::setRemoteCryptoInfo(sfl::SdesNegotiator& nego) {
 
     _debug("Set remote Cryptographic info for this rtp session");
 
+    _debug("nego.getKeyInfo() : %s", nego.getKeyInfo().c_str());
+
     unBase64ConcatenatedKeys(nego.getKeyInfo());
     
     initializeRemoteCryptoContext();
+    setInQueueCryptoContext(_remoteCryptoCtx);
 }
 
 
 void AudioSrtpSession::initializeLocalMasterKey(void)
 {
+    _debug("initializeLocalMasterKey");
+
     _localMasterKeyLength = 16;
 
-    for(int i = 0; i < 16; i++)
+    printf("Local Master: ");
+    for(int i = 0; i < 16; i++) {
         _localMasterKey[i] = mk[i];
+	printf("%i", _localMasterKey[i]);
+    }
+    printf("\n");
+    
 
     return;
 }
@@ -111,8 +121,12 @@ void AudioSrtpSession::initializeLocalMasterSalt(void)
 {
     _localMasterSaltLength = 14;
 
-    for(int i = 0; i < 14; i++)
+    printf("Remote Salt: ");
+    for(int i = 0; i < 14; i++) {
         _localMasterSalt[i] = ms[i];
+	printf("%i", _localMasterSalt[i]);
+    }
+    printf("\n");
 
     return;
 
@@ -141,19 +155,23 @@ std::string AudioSrtpSession::getBase64ConcatenatedKeys()
   void AudioSrtpSession::unBase64ConcatenatedKeys(std::string base64keys)
 {
 
+    printf("unBase64ConcatenatedKeys : base64keys %s\n", base64keys.c_str());
+    printf("unBase64ConcatenatedKeys : size %i\n", (int)base64keys.size());
     char *output = decodeBase64((unsigned char*)base64keys.c_str(), base64keys.size());
 
-    uint8 finally[30];
-    memcpy((void*)finally, (void*)output, 30);
+    uint8 concatenated[30];
+    memcpy((void*)concatenated, (void*)output, 30);
 
-     printf("Master: ");
+     printf("Remote Master: ");
      for(int i = 0; i < 16; i++) {
-       printf("%i", finally[i]);
+       _remoteMasterKey[i] = concatenated[i];
+       printf("%i", concatenated[i]);
      }
      printf("\n");
-     printf("Salt: ");
-     for(int i = 16; i < 30; i++) {
-       printf("%i", finally[i]);
+     printf("Remote Salt: ");
+     for(int i = 14; i < 30; i++) {
+       _remoteMasterSalt[i-14] = concatenated[i];
+       printf("%i", concatenated[i]);
      }
      printf("\n");
 
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index e173e0bd18..5a5885add8 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -3241,6 +3241,7 @@ void call_on_media_update (pjsip_inv_session *inv, pj_status_t status)
 	if(sdesnego.negotiate()) {
 	    _debug("******************** Negociation Is Successfull *********************\n");
 
+	    _debug("keys : %s", sdesnego.getKeyInfo().c_str());
 	    call->getAudioRtp()->setRemoteCryptoInfo(sdesnego);
 	}
 
-- 
GitLab


From 5cf2efbed424989bbebc0a01041ecc59fbf5f509 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Wed, 13 Jan 2010 15:10:28 -0500
Subject: [PATCH 159/188] [#1722] Fix mkiLifetime mkiKeyLength separator

---
 sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp | 2 +-
 sflphone-common/src/sip/SdesNegotiator.cpp              | 2 +-
 sflphone-common/test/sdesnegotiatorTest.cpp             | 6 +++---
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index e60546ee23..b4a7213aac 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -73,7 +73,7 @@ std::string AudioSrtpSession::getLocalCryptoInfo() {
     std::string srtp_keys = "inline:";
     // srtp_keys.append("16/14/");
     srtp_keys += getBase64ConcatenatedKeys();
-    srtp_keys.append("/2^20/1:32");
+    srtp_keys.append("|2^20|1:32");
 
     std::string crypto = tag.append(" ");
     crypto += crypto_suite.append(" ");
diff --git a/sflphone-common/src/sip/SdesNegotiator.cpp b/sflphone-common/src/sip/SdesNegotiator.cpp
index e8618e3ab8..6720df78d9 100644
--- a/sflphone-common/src/sip/SdesNegotiator.cpp
+++ b/sflphone-common/src/sip/SdesNegotiator.cpp
@@ -74,7 +74,7 @@ void SdesNegotiator::parse (void)
 
         keyParamsPattern = new Pattern (
             "(?P<srtpKeyMethod>inline|[A-Za-z0-9_]+)\\:" \
-            "(?P<srtpKeyInfo>[A-Za-z0-9\x2B\x2F\x3D]+)\\|" \
+            "(?P<srtpKeyInfo>[A-Za-z0-9\x2B\x2F\x3D]+|[\w\x2B\x2F\x3D]+)\\|" \
             "2\\^(?P<lifetime>[0-9]+)\\|" \
             "(?P<mkiValue>[0-9]+)\\:" \
             "(?P<mkiLength>[0-9]{1,3})\\;?", "g");
diff --git a/sflphone-common/test/sdesnegotiatorTest.cpp b/sflphone-common/test/sdesnegotiatorTest.cpp
index ec20866452..71b429a5ea 100644
--- a/sflphone-common/test/sdesnegotiatorTest.cpp
+++ b/sflphone-common/test/sdesnegotiatorTest.cpp
@@ -41,9 +41,9 @@ using std::endl;
 void SdesNegotiatorTest::setUp()
 {
 
-    // std::string attr("1 AES_CM_128_HMAC_SHA1_32 srtp inline:16/14/AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwd/2^20/1:32");
+  std::string attr("a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwd|2^20|1:32");
 
-    std::string attr("a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:d0RmdmcmVCspeEc3QGZiNWpVLFJhQX1cfHAwJSoj|2^20|1:32");
+  // std::string attr("a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:d0RmdmcmVCspeEc3QGZiNWpVLFJhQX1cfHAwJSoj|2^20|1:32");
 
     remoteOffer = new std::vector<std::string>();
     remoteOffer->push_back(attr);
@@ -149,7 +149,7 @@ void SdesNegotiatorTest::testNegotiation()
     CPPUNIT_ASSERT(sdesnego->negotiate());
     CPPUNIT_ASSERT(sdesnego->getCryptoSuite().compare("AES_CM_128_HMAC_SHA1_80") == 0);
     CPPUNIT_ASSERT(sdesnego->getKeyMethod().compare("inline") == 0);
-    CPPUNIT_ASSERT(sdesnego->getKeyInfo().compare("d0RmdmcmVCspeEc3QGZiNWpVLFJhQX1cfHAwJSoj") == 0);
+    CPPUNIT_ASSERT(sdesnego->getKeyInfo().compare("AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwd") == 0);
     CPPUNIT_ASSERT(sdesnego->getLifeTime().compare("20") == 0);
     CPPUNIT_ASSERT(sdesnego->getMkiValue().compare("1") == 0);
     CPPUNIT_ASSERT(sdesnego->getMkiLength().compare("32") == 0);
-- 
GitLab


From 7e2e1f35f9bee2697f113887294dd1745b5031c3 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Wed, 13 Jan 2010 15:12:45 -0500
Subject: [PATCH 160/188] [#1722] Fix inline: format

---
 sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp | 2 +-
 sflphone-common/src/sip/SdesNegotiator.cpp              | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index b4a7213aac..e5d7fa4208 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -69,7 +69,7 @@ std::string AudioSrtpSession::getLocalCryptoInfo() {
     // std::string srtp_keys = "inline:16/14/NzB4d1BINUAvLEw6UzF3WSJ+PSdFcGdUJShpX1Zj/2^20/1:32";
 
     // format srtp keys as the following
-    // inline:16/14/NzB4d1BINUAvLEw6UzF3WSJ+PSdFcGdUJShpX1Zj/2^20/1:32
+    // inline:16/14/NzB4d1BINUAvLEw6UzF3WSJ+PSdFcGdUJShpX1Zj|2^20|1:32
     std::string srtp_keys = "inline:";
     // srtp_keys.append("16/14/");
     srtp_keys += getBase64ConcatenatedKeys();
diff --git a/sflphone-common/src/sip/SdesNegotiator.cpp b/sflphone-common/src/sip/SdesNegotiator.cpp
index 6720df78d9..e8618e3ab8 100644
--- a/sflphone-common/src/sip/SdesNegotiator.cpp
+++ b/sflphone-common/src/sip/SdesNegotiator.cpp
@@ -74,7 +74,7 @@ void SdesNegotiator::parse (void)
 
         keyParamsPattern = new Pattern (
             "(?P<srtpKeyMethod>inline|[A-Za-z0-9_]+)\\:" \
-            "(?P<srtpKeyInfo>[A-Za-z0-9\x2B\x2F\x3D]+|[\w\x2B\x2F\x3D]+)\\|" \
+            "(?P<srtpKeyInfo>[A-Za-z0-9\x2B\x2F\x3D]+)\\|" \
             "2\\^(?P<lifetime>[0-9]+)\\|" \
             "(?P<mkiValue>[0-9]+)\\:" \
             "(?P<mkiLength>[0-9]{1,3})\\;?", "g");
-- 
GitLab


From 5143a3406eea3d755229517ca454ba94398e53b5 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 14 Jan 2010 09:49:46 -0500
Subject: [PATCH 161/188] [#1722] Use char* table as an input to decodeBase64

---
 .../src/audio/audiortp/AudioSrtpSession.cpp   | 55 ++++++++++---------
 .../src/audio/audiortp/AudioSrtpSession.h     |  2 +-
 2 files changed, 29 insertions(+), 28 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index e5d7fa4208..d54c38aee7 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -137,43 +137,43 @@ std::string AudioSrtpSession::getBase64ConcatenatedKeys()
 {
 
     // concatenate master and salt
-    uint8 concatenated[30];
-    memcpy((void*)concatenated, (void*)_localMasterKey, 16);
-    memcpy((void*)(concatenated+16), (void*)_localMasterSalt, 14);
+    int concatLength = _localMasterKeyLength + _localMasterSaltLength;
+    uint8 concatKeys[concatLength];
+    memcpy((void*)concatKeys, (void*)_localMasterKey, _localMasterKeyLength);
+    memcpy((void*)(concatKeys + _localMasterKeyLength), (void*)_localMasterSalt, _localMasterSaltLength);
 
     // encode concatenated keys in base64
-    char *output = encodeBase64((unsigned char*)concatenated, 30);
+    char *output = encodeBase64((unsigned char*)concatKeys, concatLength);
 
     std::string keys(output);
 
+    printf("Base64ConcatenatedKeys : base64keys %s\n", keys.c_str());
+    printf("Base64ConcatenatedKeys : size %d\n", (int)keys.size());
+
     free(output);
 
     return keys;
 }
 
 
-  void AudioSrtpSession::unBase64ConcatenatedKeys(std::string base64keys)
+void AudioSrtpSession::unBase64ConcatenatedKeys(std::string base64keys)
 {
 
+  // base64keys.append("\0");
     printf("unBase64ConcatenatedKeys : base64keys %s\n", base64keys.c_str());
-    printf("unBase64ConcatenatedKeys : size %i\n", (int)base64keys.size());
-    char *output = decodeBase64((unsigned char*)base64keys.c_str(), base64keys.size());
-
-    uint8 concatenated[30];
-    memcpy((void*)concatenated, (void*)output, 30);
-
-     printf("Remote Master: ");
-     for(int i = 0; i < 16; i++) {
-       _remoteMasterKey[i] = concatenated[i];
-       printf("%i", concatenated[i]);
-     }
-     printf("\n");
-     printf("Remote Salt: ");
-     for(int i = 14; i < 30; i++) {
-       _remoteMasterSalt[i-14] = concatenated[i];
-       printf("%i", concatenated[i]);
-     }
-     printf("\n");
+    printf("unBase64ConcatenatedKeys : size %d\n", (int)base64keys.size());
+
+    int length;
+
+    char *dataptr = (char*)base64keys.data();
+
+    char *output = decodeBase64((unsigned char*)dataptr, strlen(dataptr), &length);
+
+    printf("Master and Salt: ");
+    for (int i = 0; i<length; i++) {
+        printf("%x ", output[i]);
+    }
+    printf("\n");
 
     free(output);
 }
@@ -246,14 +246,14 @@ char* AudioSrtpSession::encodeBase64(unsigned char *input, int length)
     BIO_get_mem_ptr(b64, &bptr);
 
     // copy result in output buffer (-1 since we do not want the EOF character)
-    strncpy(buffer, (char*)(bptr->data), bptr->length-1);
+    strncpy(buffer, (char*)(bptr->data), bptr->length);
 
     BIO_free_all(bmem);
 
     return buffer;    
 }
 
-char* AudioSrtpSession::decodeBase64(unsigned char *input, int length)
+char* AudioSrtpSession::decodeBase64(unsigned char *input, int length, int *length_out)
 {
     BIO *b64, *bmem;
 
@@ -262,12 +262,13 @@ char* AudioSrtpSession::decodeBase64(unsigned char *input, int length)
 
     // init decoder and read-only BIO buffer
     b64 = BIO_new(BIO_f_base64());
+    // BIO_set_flags(b64, BIO_FLAGS_BASE64_NO_NL);
     bmem = BIO_new_mem_buf(input, length);
 
     // create encoder chain
-    bmem = BIO_push(bmem, b64);
+    bmem = BIO_push(b64, bmem);
 
-    BIO_read(bmem, buffer, length);
+    *length_out = BIO_read(bmem, buffer, length);
 
     BIO_free_all(bmem);
 
diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.h b/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
index 9055d07c31..6e90eb9573 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
@@ -64,7 +64,7 @@ namespace sfl {
 
 	    char* encodeBase64(unsigned char *input, int length);
 
-	    char* decodeBase64(unsigned char *input, int length);
+	    char* decodeBase64(unsigned char *input, int length, int *length_out);
 
             uint8 _localMasterKey[16];
 
-- 
GitLab


From 2eec710b0353c09eb82659a49e71fb3ca1ba0fda Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 14 Jan 2010 10:10:18 -0500
Subject: [PATCH 162/188] [#1722] Use BIO_FLAGS_BASE64_NO_NL flag for base64
 encoding/decoding

---
 sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index d54c38aee7..f73a39d2ad 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -234,6 +234,7 @@ char* AudioSrtpSession::encodeBase64(unsigned char *input, int length)
 
     // init decoder and buffer
     b64 = BIO_new(BIO_f_base64());
+    BIO_set_flags(b64, BIO_FLAGS_BASE64_NO_NL);
     bmem = BIO_new(BIO_s_mem());
 
     // create decoder chain
@@ -262,7 +263,7 @@ char* AudioSrtpSession::decodeBase64(unsigned char *input, int length, int *leng
 
     // init decoder and read-only BIO buffer
     b64 = BIO_new(BIO_f_base64());
-    // BIO_set_flags(b64, BIO_FLAGS_BASE64_NO_NL);
+    BIO_set_flags(b64, BIO_FLAGS_BASE64_NO_NL);
     bmem = BIO_new_mem_buf(input, length);
 
     // create encoder chain
-- 
GitLab


From 5ae7d191c639840898ec82538961914fa8032de5 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 14 Jan 2010 10:18:22 -0500
Subject: [PATCH 163/188] [#1722] Init _remoteMasterKey/_remoteMasterSalt

---
 .../src/audio/audiortp/AudioSrtpSession.cpp          | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index f73a39d2ad..74def198f4 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -170,11 +170,21 @@ void AudioSrtpSession::unBase64ConcatenatedKeys(std::string base64keys)
     char *output = decodeBase64((unsigned char*)dataptr, strlen(dataptr), &length);
 
     printf("Master and Salt: ");
-    for (int i = 0; i<length; i++) {
+    for (int i = 0; i < length; i++) {
         printf("%x ", output[i]);
     }
     printf("\n");
 
+    for (int i = 0; i < 16; i++) {
+
+        _remoteMasterKey[i] = output[i];	
+    }
+
+    for (int i = 0; i < 14; i++) {
+
+        _remoteMasterSalt[i] = output[i+16];	
+    }
+
     free(output);
 }
 
-- 
GitLab


From 00b7ee0cb804a3b1b972a4e7db820f9fa542ecf6 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 14 Jan 2010 11:47:15 -0500
Subject: [PATCH 164/188] [#1722] Clean up printf development messages

---
 .../src/audio/audiortp/AudioSrtpSession.cpp   | 68 ++++++++-----------
 sflphone-common/src/sip/sipvoiplink.cpp       |  3 +-
 2 files changed, 28 insertions(+), 43 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index 74def198f4..a6e8d918a8 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -63,21 +63,20 @@ std::string AudioSrtpSession::getLocalCryptoInfo() {
 
     _debug("Get Cryptographic info from this rtp session");
 
+    // @TODO we should return a vector containing supported 
+    // cryptographic context tagged 1, 2, 3...
     std::string tag = "1";
+
     std::string crypto_suite = "AES_CM_128_HMAC_SHA1_32";
-    std::string application = "srtp";
-    // std::string srtp_keys = "inline:16/14/NzB4d1BINUAvLEw6UzF3WSJ+PSdFcGdUJShpX1Zj/2^20/1:32";
 
-    // format srtp keys as the following
-    // inline:16/14/NzB4d1BINUAvLEw6UzF3WSJ+PSdFcGdUJShpX1Zj|2^20|1:32
+    // srtp keys formated as the following  as the following
+    // inline:NzB4d1BINUAvLEw6UzF3WSJ+PSdFcGdUJShpX1Zj|2^20|1:32
     std::string srtp_keys = "inline:";
-    // srtp_keys.append("16/14/");
     srtp_keys += getBase64ConcatenatedKeys();
     srtp_keys.append("|2^20|1:32");
 
     std::string crypto = tag.append(" ");
     crypto += crypto_suite.append(" ");
-    // crypto += application.append(" ");
     crypto += srtp_keys;
 
     _debug("%s", crypto.c_str());
@@ -88,12 +87,12 @@ std::string AudioSrtpSession::getLocalCryptoInfo() {
 
 void AudioSrtpSession::setRemoteCryptoInfo(sfl::SdesNegotiator& nego) {
 
-    _debug("Set remote Cryptographic info for this rtp session");
-
-    _debug("nego.getKeyInfo() : %s", nego.getKeyInfo().c_str());
+    _debug("Set remote Cryptographic info for Srtp session");
 
+    // decode keys
     unBase64ConcatenatedKeys(nego.getKeyInfo());
-    
+
+    // init crypto content int Srtp session
     initializeRemoteCryptoContext();
     setInQueueCryptoContext(_remoteCryptoCtx);
 }
@@ -101,14 +100,14 @@ void AudioSrtpSession::setRemoteCryptoInfo(sfl::SdesNegotiator& nego) {
 
 void AudioSrtpSession::initializeLocalMasterKey(void)
 {
-    _debug("initializeLocalMasterKey");
 
+    // @TODO key shold be generated randomly
     _localMasterKeyLength = 16;
 
     printf("Local Master: ");
     for(int i = 0; i < 16; i++) {
         _localMasterKey[i] = mk[i];
-	printf("%i", _localMasterKey[i]);
+	printf("%d", _localMasterKey[i]);
     }
     printf("\n");
     
@@ -119,12 +118,14 @@ void AudioSrtpSession::initializeLocalMasterKey(void)
 
 void AudioSrtpSession::initializeLocalMasterSalt(void)
 {
+
+    // @TODO key shold be generated randomly
     _localMasterSaltLength = 14;
 
-    printf("Remote Salt: ");
+    printf("Local Salt: ");
     for(int i = 0; i < 14; i++) {
         _localMasterSalt[i] = ms[i];
-	printf("%i", _localMasterSalt[i]);
+	printf("%d", _localMasterSalt[i]);
     }
     printf("\n");
 
@@ -145,11 +146,9 @@ std::string AudioSrtpSession::getBase64ConcatenatedKeys()
     // encode concatenated keys in base64
     char *output = encodeBase64((unsigned char*)concatKeys, concatLength);
 
+    // init string containing encoded data
     std::string keys(output);
 
-    printf("Base64ConcatenatedKeys : base64keys %s\n", keys.c_str());
-    printf("Base64ConcatenatedKeys : size %d\n", (int)keys.size());
-
     free(output);
 
     return keys;
@@ -159,31 +158,18 @@ std::string AudioSrtpSession::getBase64ConcatenatedKeys()
 void AudioSrtpSession::unBase64ConcatenatedKeys(std::string base64keys)
 {
 
-  // base64keys.append("\0");
-    printf("unBase64ConcatenatedKeys : base64keys %s\n", base64keys.c_str());
-    printf("unBase64ConcatenatedKeys : size %d\n", (int)base64keys.size());
-
+    // length of decoded data data
     int length;
 
+    // pointer to binary data
     char *dataptr = (char*)base64keys.data();
 
+    // decode concatenated binary keys
     char *output = decodeBase64((unsigned char*)dataptr, strlen(dataptr), &length);
 
-    printf("Master and Salt: ");
-    for (int i = 0; i < length; i++) {
-        printf("%x ", output[i]);
-    }
-    printf("\n");
-
-    for (int i = 0; i < 16; i++) {
-
-        _remoteMasterKey[i] = output[i];	
-    }
-
-    for (int i = 0; i < 14; i++) {
-
-        _remoteMasterSalt[i] = output[i+16];	
-    }
+    // copy master and slt respectively
+    memcpy((void*)_remoteMasterKey, (void*)output, 16);
+    memcpy((void*)_remoteMasterSalt, (void*)(output + 16), 16);
 
     free(output);
 }
@@ -192,8 +178,6 @@ void AudioSrtpSession::unBase64ConcatenatedKeys(std::string base64keys)
 void AudioSrtpSession::initializeRemoteCryptoContext(void)
 {
 
-    // this one does not works
-    // inputCryptoCtx = new ost::CryptoContext(IncomingDataQueue::getLocalSSRCNetwork(),
     _remoteCryptoCtx = new ost::CryptoContext(0x0,
 					     0,                           // roc,
 					     0L,                          // keydr,
@@ -214,8 +198,6 @@ void AudioSrtpSession::initializeRemoteCryptoContext(void)
 void AudioSrtpSession::initializeLocalCryptoContext(void)
 {
 
-    // this one works
-    // outputCryptoCtx = new ost::CryptoContext(OutgoingDataQueue::getLocalSSRC(),
     _localCryptoCtx = new ost::CryptoContext(OutgoingDataQueue::getLocalSSRC(),
 					      0,                           // roc,
 					      0L,                          // keydr,
@@ -242,9 +224,11 @@ char* AudioSrtpSession::encodeBase64(unsigned char *input, int length)
     char *buffer = (char *)malloc(2*length);
     memset(buffer, 0, 2*length);
 
-    // init decoder and buffer
+    // init decoder
     b64 = BIO_new(BIO_f_base64());
     BIO_set_flags(b64, BIO_FLAGS_BASE64_NO_NL);
+
+    // init internal buffer
     bmem = BIO_new(BIO_s_mem());
 
     // create decoder chain
@@ -274,6 +258,8 @@ char* AudioSrtpSession::decodeBase64(unsigned char *input, int length, int *leng
     // init decoder and read-only BIO buffer
     b64 = BIO_new(BIO_f_base64());
     BIO_set_flags(b64, BIO_FLAGS_BASE64_NO_NL);
+
+    // init internal buffer
     bmem = BIO_new_mem_buf(input, length);
 
     // create encoder chain
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 5a5885add8..b11eb627c3 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -3239,9 +3239,8 @@ void call_on_media_update (pjsip_inv_session *inv, pj_status_t status)
 	sfl::SdesNegotiator sdesnego(localCapabilities, remoteOffer);
 	
 	if(sdesnego.negotiate()) {
-	    _debug("******************** Negociation Is Successfull *********************\n");
+	    _debug("SDES negociation successfull \n");
 
-	    _debug("keys : %s", sdesnego.getKeyInfo().c_str());
 	    call->getAudioRtp()->setRemoteCryptoInfo(sdesnego);
 	}
 
-- 
GitLab


From 629ca0844c7fa569e49b4fedb8e3b672b9a9a71d Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 14 Jan 2010 13:04:07 -0500
Subject: [PATCH 165/188] [#2662] Call setVoIPLink() manually when adding a new
 SIP account

---
 sflphone-common/src/managerimpl.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index f8d3d551ba..ca8ed41903 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -3979,6 +3979,7 @@ ManagerImpl::addAccount (const std::map< std::string, std::string >& details)
 
     if (accountType == "SIP") {
         newAccount = AccountCreator::createAccount (AccountCreator::SIP_ACCOUNT, newAccountID);
+	newAccount->setVoIPLink();
     } else if (accountType == "IAX") {
         newAccount = AccountCreator::createAccount (AccountCreator::IAX_ACCOUNT, newAccountID);
     } else {
-- 
GitLab


From 308683a7037fed57202cfd594ffa8503b7c7d0c7 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 14 Jan 2010 13:07:24 -0500
Subject: [PATCH 166/188] [#1722] Generate random keys using OpenSSL's
 RAND_bytes function

---
 .../src/audio/audiortp/AudioSrtpSession.cpp   | 32 ++++++++++---------
 1 file changed, 17 insertions(+), 15 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index a6e8d918a8..bf10152a61 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -26,6 +26,7 @@
 #include <openssl/evp.h>
 #include <openssl/bio.h>
 #include <openssl/buffer.h>
+#include <openssl/rand.h>
 
 
 #include <cstdio>
@@ -101,16 +102,16 @@ void AudioSrtpSession::setRemoteCryptoInfo(sfl::SdesNegotiator& nego) {
 void AudioSrtpSession::initializeLocalMasterKey(void)
 {
 
-    // @TODO key shold be generated randomly
+    // @TODO key may have different length depending on cipher suite
     _localMasterKeyLength = 16;
 
-    printf("Local Master: ");
-    for(int i = 0; i < 16; i++) {
-        _localMasterKey[i] = mk[i];
-	printf("%d", _localMasterKey[i]);
-    }
-    printf("\n");
-    
+    unsigned char *random_key = new unsigned char[_localMasterKeyLength];
+
+    int err;
+    if((err = RAND_bytes(random_key, _localMasterKeyLength)) != 1)
+        _debug("Error occured while generating cryptographically strong pseudo-random key");
+
+    memcpy(_localMasterKey, random_key, _localMasterKeyLength);
 
     return;
 }
@@ -119,15 +120,16 @@ void AudioSrtpSession::initializeLocalMasterKey(void)
 void AudioSrtpSession::initializeLocalMasterSalt(void)
 {
 
-    // @TODO key shold be generated randomly
+    // @TODO key may have different length depending on cipher suite 
     _localMasterSaltLength = 14;
 
-    printf("Local Salt: ");
-    for(int i = 0; i < 14; i++) {
-        _localMasterSalt[i] = ms[i];
-	printf("%d", _localMasterSalt[i]);
-    }
-    printf("\n");
+    unsigned char *random_key = new unsigned char[_localMasterSaltLength];
+
+    int err;
+    if((err = RAND_bytes(random_key, _localMasterSaltLength)) != 1)
+        _debug("Error occured while generating cryptographically strong pseudo-random key");
+
+    memcpy(_localMasterSalt, random_key, _localMasterSaltLength);
 
     return;
 
-- 
GitLab


From 050b0b1c37558ecc615f18c42ad56b6bf796e708 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 14 Jan 2010 13:34:58 -0500
Subject: [PATCH 167/188] [#1722] Test with static key

---
 sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index bf10152a61..e7c740abc1 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -111,7 +111,7 @@ void AudioSrtpSession::initializeLocalMasterKey(void)
     if((err = RAND_bytes(random_key, _localMasterKeyLength)) != 1)
         _debug("Error occured while generating cryptographically strong pseudo-random key");
 
-    memcpy(_localMasterKey, random_key, _localMasterKeyLength);
+    memcpy(_localMasterKey, mk, _localMasterKeyLength);
 
     return;
 }
@@ -129,7 +129,7 @@ void AudioSrtpSession::initializeLocalMasterSalt(void)
     if((err = RAND_bytes(random_key, _localMasterSaltLength)) != 1)
         _debug("Error occured while generating cryptographically strong pseudo-random key");
 
-    memcpy(_localMasterSalt, random_key, _localMasterSaltLength);
+    memcpy(_localMasterSalt, ms, _localMasterSaltLength);
 
     return;
 
-- 
GitLab


From 91b6a76dcb3b0a666c1d0d560ffd27695a9d8982 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 14 Jan 2010 13:43:12 -0500
Subject: [PATCH 168/188] [#1722] Use memcopy instead to copy PRN in keys

---
 .../src/audio/audiortp/AudioSrtpSession.cpp          | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index e7c740abc1..1efa1ab586 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -111,7 +111,11 @@ void AudioSrtpSession::initializeLocalMasterKey(void)
     if((err = RAND_bytes(random_key, _localMasterKeyLength)) != 1)
         _debug("Error occured while generating cryptographically strong pseudo-random key");
 
-    memcpy(_localMasterKey, mk, _localMasterKeyLength);
+    // memcpy(_localMasterKey, mk, _localMasterKeyLength);
+
+    for(int i = 0; i < _localMasterKeyLength; i++){
+      _localMasterKey[i] = mk[i];
+    }
 
     return;
 }
@@ -129,7 +133,11 @@ void AudioSrtpSession::initializeLocalMasterSalt(void)
     if((err = RAND_bytes(random_key, _localMasterSaltLength)) != 1)
         _debug("Error occured while generating cryptographically strong pseudo-random key");
 
-    memcpy(_localMasterSalt, ms, _localMasterSaltLength);
+    // memcpy(_localMasterSalt, ms, _localMasterSaltLength);
+
+    for(int i = 0; i < _localMasterSaltLength; i++){
+      _localMasterSalt[i] = ms[i];
+    }
 
     return;
 
-- 
GitLab


From a1cb7546bc8ae1f329c8a01d2a6a76110205a592 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 14 Jan 2010 13:56:20 -0500
Subject: [PATCH 169/188] [#1722] Test static keys

---
 .../src/audio/audiortp/AudioSrtpSession.cpp   | 31 +++++++++++++++----
 1 file changed, 25 insertions(+), 6 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index 1efa1ab586..85a077ab33 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -111,11 +111,13 @@ void AudioSrtpSession::initializeLocalMasterKey(void)
     if((err = RAND_bytes(random_key, _localMasterKeyLength)) != 1)
         _debug("Error occured while generating cryptographically strong pseudo-random key");
 
-    // memcpy(_localMasterKey, mk, _localMasterKeyLength);
+    memcpy(_localMasterKey, mk, _localMasterKeyLength);
 
+    printf("Local Master: ");
     for(int i = 0; i < _localMasterKeyLength; i++){
-      _localMasterKey[i] = mk[i];
+        printf("%d", _localMasterKey[i]);
     }
+    printf("\n");
 
     return;
 }
@@ -133,11 +135,13 @@ void AudioSrtpSession::initializeLocalMasterSalt(void)
     if((err = RAND_bytes(random_key, _localMasterSaltLength)) != 1)
         _debug("Error occured while generating cryptographically strong pseudo-random key");
 
-    // memcpy(_localMasterSalt, ms, _localMasterSaltLength);
+    memcpy(_localMasterSalt, ms, _localMasterSaltLength);
 
+    printf("Local Salt: ");
     for(int i = 0; i < _localMasterSaltLength; i++){
-      _localMasterSalt[i] = ms[i];
+      printf("%d", _localMasterSalt[i]);
     }
+    printf("\n");
 
     return;
 
@@ -168,6 +172,9 @@ std::string AudioSrtpSession::getBase64ConcatenatedKeys()
 void AudioSrtpSession::unBase64ConcatenatedKeys(std::string base64keys)
 {
 
+    _remoteMasterKeyLength = 16;
+    _remoteMasterSaltLength = 14;
+
     // length of decoded data data
     int length;
 
@@ -178,8 +185,20 @@ void AudioSrtpSession::unBase64ConcatenatedKeys(std::string base64keys)
     char *output = decodeBase64((unsigned char*)dataptr, strlen(dataptr), &length);
 
     // copy master and slt respectively
-    memcpy((void*)_remoteMasterKey, (void*)output, 16);
-    memcpy((void*)_remoteMasterSalt, (void*)(output + 16), 16);
+    memcpy((void*)_remoteMasterKey, (void*)output, _remoteMasterKeyLength);
+    memcpy((void*)_remoteMasterSalt, (void*)(output + _remoteMasterKeyLength), _remoteMasterSaltLength);
+
+    printf("Remote Master: ");
+    for(int i = 0; i < _remoteMasterKeyLength; i++){
+        printf("%d", _remoteMasterKey[i]);
+    }
+    printf("\n");
+
+    printf("Remote Salt: ");
+    for(int i = 0; i < _remoteMasterSaltLength; i++){
+        printf("%d", _remoteMasterSalt[i]);
+    }
+    printf("\n");
 
     free(output);
 }
-- 
GitLab


From 238fdb78feefde39776830a93646b186a53bde91 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 14 Jan 2010 14:16:52 -0500
Subject: [PATCH 170/188] [#1722] Use randomly generated keys

---
 sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index 85a077ab33..6411b39531 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -111,7 +111,7 @@ void AudioSrtpSession::initializeLocalMasterKey(void)
     if((err = RAND_bytes(random_key, _localMasterKeyLength)) != 1)
         _debug("Error occured while generating cryptographically strong pseudo-random key");
 
-    memcpy(_localMasterKey, mk, _localMasterKeyLength);
+    memcpy(_localMasterKey, random_key, _localMasterKeyLength);
 
     printf("Local Master: ");
     for(int i = 0; i < _localMasterKeyLength; i++){
@@ -135,7 +135,7 @@ void AudioSrtpSession::initializeLocalMasterSalt(void)
     if((err = RAND_bytes(random_key, _localMasterSaltLength)) != 1)
         _debug("Error occured while generating cryptographically strong pseudo-random key");
 
-    memcpy(_localMasterSalt, ms, _localMasterSaltLength);
+    memcpy(_localMasterSalt, random_key, _localMasterSaltLength);
 
     printf("Local Salt: ");
     for(int i = 0; i < _localMasterSaltLength; i++){
-- 
GitLab


From 121f15db1b8f02e2ef0c5617a9c2bf5e049b4b84 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Thu, 14 Jan 2010 15:07:16 -0500
Subject: [PATCH 171/188] [#1722] Chage AudioRtpInit from answer to
 mod_on_rx_request

---
 sflphone-common/src/audio/audiortp/AudioRtpFactory.h | 9 +++++++++
 sflphone-common/src/sip/sipvoiplink.cpp              | 8 ++++++++
 2 files changed, 17 insertions(+)

diff --git a/sflphone-common/src/audio/audiortp/AudioRtpFactory.h b/sflphone-common/src/audio/audiortp/AudioRtpFactory.h
index 5165cbffc1..401087fbfb 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpFactory.h
+++ b/sflphone-common/src/audio/audiortp/AudioRtpFactory.h
@@ -89,6 +89,15 @@ namespace sfl {
         * file. initAudioRtpSession must have been called prior to that. 
         */  
         inline void * getAudioRtpSession(void) { return _rtpSession; }
+
+	/** 
+        * @param None
+        * @return The internal audio rtp session type 
+	*         Symmetric = 0
+        *         Zrtp = 1
+        *         Sdes = 2 
+        */  
+        inline RtpMethod getAudioRtpType(void) { return _rtpSessionType; }
  
         /**
          * Get the current AudioZrtpSession. Throws an AudioRtpFactoryException
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index b11eb627c3..30a67bca8e 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -809,11 +809,13 @@ SIPVoIPLink::answer (const CallID& id)
 
     local_sdp = call->getLocalSDP();
 
+    /*
     try {
         call->getAudioRtp()->initAudioRtpSession (call);
     } catch (...) {
         _debug ("Failed to create rtp thread from answer");
     }
+    */
 
     inv_session = call->getInvSession();
 
@@ -3628,6 +3630,12 @@ mod_on_rx_request (pjsip_rx_data *rdata)
     // We retrieve the remote sdp offer in the rdata struct to begin the negociation
     call->getLocalSDP()->set_ip_address (addrSdp);
 
+    try {
+        call->getAudioRtp()->initAudioRtpSession (call);
+    } catch (...) {
+        _debug ("Failed to create rtp thread from answer");
+    }
+
     get_remote_sdp_from_offer (rdata, &r_sdp);
 
     status = call->getLocalSDP()->receiving_initial_offer (r_sdp);
-- 
GitLab


From 56ff740f701f7c676ba7a3eb438e20a83986ee1b Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Fri, 15 Jan 2010 10:58:53 -0500
Subject: [PATCH 172/188] [#1722] Add updateDestinationIpAddress in
 AudioRtpSession

---
 .../src/audio/audiortp/AudioRtpFactory.cpp    | 23 +++++++++++
 .../src/audio/audiortp/AudioRtpFactory.h      |  6 +++
 .../src/audio/audiortp/AudioRtpSession.h      | 41 ++++++++++++++++---
 .../src/audio/audiortp/AudioSrtpSession.cpp   | 34 ++++++---------
 4 files changed, 77 insertions(+), 27 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp b/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
index 1a2c14ff79..d9f88f1b55 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
@@ -190,6 +190,29 @@ void AudioRtpFactory::stop (void)
     }
 }
 
+void AudioRtpFactory::updateDestinationIpAddress (void)
+{
+    _debug ("Updating IP address");
+    if (_rtpSession == NULL) {
+        throw AudioRtpFactoryException ("_rtpSession was null when trying to update IP address");
+    }
+
+    switch (_rtpSessionType) {
+
+        case Sdes:
+	    static_cast<AudioSrtpSession *> (_rtpSession)->updateDestinationIpAddress();
+	    break;
+
+        case Symmetric:
+            static_cast<AudioSymmetricRtpSession *> (_rtpSession)->updateDestinationIpAddress();
+            break;
+
+        case Zrtp:
+	    static_cast<AudioZrtpSession *> (_rtpSession)->updateDestinationIpAddress();
+            break;
+    }
+}
+
 sfl::AudioZrtpSession * AudioRtpFactory::getAudioZrtpSession()
 {
     if ( (_rtpSessionType == Zrtp) && (_rtpSessionType != NULL)) {
diff --git a/sflphone-common/src/audio/audiortp/AudioRtpFactory.h b/sflphone-common/src/audio/audiortp/AudioRtpFactory.h
index 401087fbfb..664bf3ae2c 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpFactory.h
+++ b/sflphone-common/src/audio/audiortp/AudioRtpFactory.h
@@ -82,6 +82,12 @@ namespace sfl {
          * @param None
          */
         void stop();
+
+	/**
+         * Update current RTP destination address with one stored in call 
+         * @param None
+         */
+	void updateDestinationIpAddress (void);
           
         /** 
         * @param None
diff --git a/sflphone-common/src/audio/audiortp/AudioRtpSession.h b/sflphone-common/src/audio/audiortp/AudioRtpSession.h
index e1d8b536cb..d168cb8d75 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpSession.h
+++ b/sflphone-common/src/audio/audiortp/AudioRtpSession.h
@@ -66,7 +66,12 @@ namespace sfl {
             virtual void run ();
             
             int startRtpThread();
-    
+
+	    /**
+	     * Used mostly when receiving a reinvite
+	     */
+	    void updateDestinationIpAddress(void);
+
         private:
         
             void initBuffers(void);
@@ -98,6 +103,16 @@ namespace sfl {
             // it amounts to the same as doing
             // start() with no semaphore at all. 
             ost::Semaphore * _mainloopSemaphore;
+
+	    // Main destination address for this rtp session.
+	    // Stored in case or reINVITE, which may require to forget 
+	    // this destination and update a new one.
+	    ost::InetHostAddress _remote_ip;
+
+	    // Main destination port for this rtp session.
+	    // Stored in case reINVITE, which may require to forget
+	    // this destination and update a new one
+	    unsigned short _remote_port;
                      
             AudioCodec * _audiocodec;
             
@@ -292,20 +307,36 @@ namespace sfl {
         }
         
         _debug ("Setting IP address for the RTP session\n");
-        
-        ost::InetHostAddress remote_ip (_ca->getLocalSDP()->get_remote_ip().c_str());
+
+	// Store remote ip in case we would need to forget current destination
+        _remote_ip = ost::InetHostAddress(_ca->getLocalSDP()->get_remote_ip().c_str());
         _debug ("Init audio RTP session: remote ip %s\n", _ca->getLocalSDP()->get_remote_ip().data());
 
-        if (!remote_ip) {
+        if (!_remote_ip) {
             _debug ("Target IP address [%s] is not correct!\n", _ca->getLocalSDP()->get_remote_ip().data());
             return;
         }
 
-        if (! static_cast<D*>(this)->addDestination (remote_ip, (unsigned short) _ca->getLocalSDP()->get_remote_audio_port())) {
+	// Store remote port in case we would need to forget current destination
+	_remote_port = (unsigned short) _ca->getLocalSDP()->get_remote_audio_port();
+
+        if (! static_cast<D*>(this)->addDestination (_remote_ip, _remote_port)) {
             _debug ("Can't add destination to session!\n");
             return;
         }
     }
+
+    template <typename D>
+    void AudioRtpSession<D>::updateDestinationIpAddress(void)
+    {
+        // Destination address are stored in a list in ccrtp
+        // This method clear off this entry
+        static_cast<D*>(this)->forgetDestination(_remote_ip, _remote_port);
+
+	// new destination is stored in call
+	// we just need to recall this method
+        setDestinationIpAddress();
+    }
     
     template <typename D>
     int AudioRtpSession<D>::processDataEncode(void)
diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index 6411b39531..e1579e7f31 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -47,15 +47,15 @@ AudioSrtpSession::AudioSrtpSession (ManagerImpl * manager, SIPCall * sipcall) :
         ost::SymmetricRTPSession (ost::InetHostAddress (sipcall->getLocalIp().c_str()), sipcall->getLocalAudioPort()),
         AudioRtpSession<AudioSrtpSession> (manager, sipcall)
 {
-    _debug ("***************** Initialize AudioSrtpSession *********************");
+
+    // Initialize local Crypto context
     initializeLocalMasterKey();
     initializeLocalMasterSalt();
-    // initializeRemoteCryptoContext();
     initializeLocalCryptoContext();
 
+    // Set local crypto context in ccrtp
     _localCryptoCtx->deriveSrtpKeys(0);
 
-    // setInQueueCryptoContext(_remoteCryptoCtx);
     setOutQueueCryptoContext(_localCryptoCtx);
 }
 
@@ -76,6 +76,7 @@ std::string AudioSrtpSession::getLocalCryptoInfo() {
     srtp_keys += getBase64ConcatenatedKeys();
     srtp_keys.append("|2^20|1:32");
 
+    // generate crypto attribute
     std::string crypto = tag.append(" ");
     crypto += crypto_suite.append(" ");
     crypto += srtp_keys;
@@ -105,8 +106,10 @@ void AudioSrtpSession::initializeLocalMasterKey(void)
     // @TODO key may have different length depending on cipher suite
     _localMasterKeyLength = 16;
 
+    // Allocate memory for key
     unsigned char *random_key = new unsigned char[_localMasterKeyLength];
 
+    // Generate ryptographically strong pseudo-random bytes
     int err;
     if((err = RAND_bytes(random_key, _localMasterKeyLength)) != 1)
         _debug("Error occured while generating cryptographically strong pseudo-random key");
@@ -129,20 +132,16 @@ void AudioSrtpSession::initializeLocalMasterSalt(void)
     // @TODO key may have different length depending on cipher suite 
     _localMasterSaltLength = 14;
 
+    // Allocate memory for key
     unsigned char *random_key = new unsigned char[_localMasterSaltLength];
 
+    // Generate ryptographically strong pseudo-random bytes
     int err;
     if((err = RAND_bytes(random_key, _localMasterSaltLength)) != 1)
         _debug("Error occured while generating cryptographically strong pseudo-random key");
 
     memcpy(_localMasterSalt, random_key, _localMasterSaltLength);
 
-    printf("Local Salt: ");
-    for(int i = 0; i < _localMasterSaltLength; i++){
-      printf("%d", _localMasterSalt[i]);
-    }
-    printf("\n");
-
     return;
 
 }
@@ -151,9 +150,12 @@ void AudioSrtpSession::initializeLocalMasterSalt(void)
 std::string AudioSrtpSession::getBase64ConcatenatedKeys()
 {
 
-    // concatenate master and salt
+    // compute concatenated master and salt length
     int concatLength = _localMasterKeyLength + _localMasterSaltLength;
+
     uint8 concatKeys[concatLength];
+
+    // concatenate keys
     memcpy((void*)concatKeys, (void*)_localMasterKey, _localMasterKeyLength);
     memcpy((void*)(concatKeys + _localMasterKeyLength), (void*)_localMasterSalt, _localMasterSaltLength);
 
@@ -188,18 +190,6 @@ void AudioSrtpSession::unBase64ConcatenatedKeys(std::string base64keys)
     memcpy((void*)_remoteMasterKey, (void*)output, _remoteMasterKeyLength);
     memcpy((void*)_remoteMasterSalt, (void*)(output + _remoteMasterKeyLength), _remoteMasterSaltLength);
 
-    printf("Remote Master: ");
-    for(int i = 0; i < _remoteMasterKeyLength; i++){
-        printf("%d", _remoteMasterKey[i]);
-    }
-    printf("\n");
-
-    printf("Remote Salt: ");
-    for(int i = 0; i < _remoteMasterSaltLength; i++){
-        printf("%d", _remoteMasterSalt[i]);
-    }
-    printf("\n");
-
     free(output);
 }
 
-- 
GitLab


From 32e42d0ad59c13631178070541f10bc13c8bf9e2 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Fri, 15 Jan 2010 10:59:57 -0500
Subject: [PATCH 173/188] [#1722] update destination address in handle reINVITE
 (no RTP session stop)

---
 sflphone-common/src/sip/sipvoiplink.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 30a67bca8e..e739611316 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -2953,6 +2953,7 @@ void set_voicemail_info (AccountID account, pjsip_msg_body *body)
 
 void SIPVoIPLink::handle_reinvite (SIPCall *call)
 {
+    /*
     // Close the previous RTP session
     call->getAudioRtp()->stop ();
     call->setAudioStart (false);
@@ -2964,6 +2965,12 @@ void SIPVoIPLink::handle_reinvite (SIPCall *call)
     } catch (...) {
         _debug ("! SIP Failure: Unable to create RTP Session (%s:%d)", __FILE__, __LINE__);
     }
+    */
+    _debug("******************************************");
+    _debug("*             handle_reinvite            *");
+    _debug("******************************************");
+
+    call->getAudioRtp()->updateDestinationIpAddress();
 }
 
 // This callback is called when the invite session state has changed
-- 
GitLab


From 66e9c374ebc14a770cf481ddd38be09531fd77e1 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Fri, 15 Jan 2010 11:37:49 -0500
Subject: [PATCH 174/188] [#1722] Make possible to acquire several crypto
 attribute from SDP session

---
 sflphone-common/src/sip/sdp.cpp         | 45 +++++++++++++------------
 sflphone-common/src/sip/sdp.h           |  5 ++-
 sflphone-common/src/sip/sipvoiplink.cpp | 19 +++--------
 3 files changed, 33 insertions(+), 36 deletions(-)

diff --git a/sflphone-common/src/sip/sdp.cpp b/sflphone-common/src/sip/sdp.cpp
index d17e3cf788..3d0d25e56b 100644
--- a/sflphone-common/src/sip/sdp.cpp
+++ b/sflphone-common/src/sip/sdp.cpp
@@ -158,7 +158,7 @@ int Sdp::create_local_offer ()
     //sdp_addAttributes( _pool );
     sdp_add_media_description();
 
-    if(!_srtp_crypto.empty()) { 
+    if(!_srtp_crypto.empty()) {
         sdp_add_sdes_attribute(_srtp_crypto);
     }
 
@@ -211,8 +211,6 @@ int Sdp::receiving_initial_offer (pjmedia_sdp_session* remote)
 
     pj_status_t status;
 
-    _debug ("Receiving initial offer");
-
     // Create the SDP negociator instance by calling
     // pjmedia_sdp_neg_create_w_remote_offer with the remote offer, and by providing the local offer ( optional )
 
@@ -370,32 +368,25 @@ void Sdp::sdp_add_media_description()
 void Sdp::sdp_add_sdes_attribute (std::string crypto)
 {
 
+    // temporary buffer used to store crypto attribute
     char tempbuf[256];
 
-    std::string tag = "1";
-    std::string crypto_suite = "AES_CM_128_HMAC_SHA1_32";
-    std::string application = "srtp";
-    std::string key = "inline:16/14/NzB4d1BINUAvLEw6UzF3WSJ+PSdFcGdUJShpX1Zj/2^20/1:32";
-
+    // the attribute to add to sdp
     pjmedia_sdp_attr *attribute = (pjmedia_sdp_attr*) pj_pool_zalloc(_pool, sizeof(pjmedia_sdp_attr));
 
     attribute->name = pj_strdup3(_pool, "crypto");
 
-    /*
-    int len = pj_ansi_snprintf(tempbuf, sizeof(tempbuf),
-			       "%.*s %.*s %.*s",
-			       (int)tag.size(), tag.c_str(),
-			       (int)crypto_suite.size(), crypto_suite.c_str(),
-			       (int)key.size(), key.c_str());
-    */
+    // _debug("crypto from sdp: %s", crypto.c_str());
 
+    
     int len = pj_ansi_snprintf(tempbuf, sizeof(tempbuf),
 			       "%.*s",(int)crypto.size(), crypto.c_str());
-
+ 
     attribute->value.slen = len;
     attribute->value.ptr = (char*) pj_pool_alloc (_pool, attribute->value.slen+1);
     pj_memcpy (attribute->value.ptr, tempbuf, attribute->value.slen+1);
 
+    // add crypto attribute to sdp session
     if(pjmedia_sdp_attr_add(&(_local_offer->attr_count), _local_offer->attr, attribute) != PJ_SUCCESS){
         throw sdpException();
     }
@@ -676,28 +667,40 @@ void Sdp::get_remote_sdp_media_from_offer (const pjmedia_sdp_session* remote_sdp
     }
 }
 
-void Sdp::get_remote_sdp_crypto_from_offer (const pjmedia_sdp_session* remote_sdp, pjmedia_sdp_attr** r_crypto)
+void Sdp::get_remote_sdp_crypto_from_offer (const pjmedia_sdp_session* remote_sdp, CryptoOffer& crypto_offer)
 {
 
     int i;
     int attr_count;
-    pjmedia_sdp_attr * attribute;
-    *r_crypto =  NULL;
+    pjmedia_sdp_attr *attribute;
 
+    // get the number of attribute for this sdp session
     attr_count = remote_sdp->attr_count;
 
     // *r_crypto= pjmedia_sdp_media_find_attr(attribute, &STR_CRYPTO, NULL);
 
     _debug("****************** Parse for Crypto %i ********************", attr_count);
 
+    CryptoOffer remoteOffer;
+
+    // iterate over all atribute
     for (i = 0; i < attr_count; ++i) {
 
         _debug("%.*s", (int)remote_sdp->attr[i]->name.slen, remote_sdp->attr[i]->name.ptr);
 	_debug("%.*s", (int)remote_sdp->attr[i]->value.slen, remote_sdp->attr[i]->value.ptr);
+
+	// test if this attribute is a crypto
         if (pj_stricmp2 (&remote_sdp->attr[i]->name, "crypto") == 0) {
+
+	    attribute = remote_sdp->attr[i];
+
 	    _debug("****************** Found a Crypto ********************");
-            *r_crypto = remote_sdp->attr[i];
-            return;
+	    std::string attr(attribute->value.ptr, attribute->value.slen);
+	    // @TODO our parser require the "acrypto:" to be present
+	    std::string full_attr = "a=crypto:";
+	    full_attr += attr;
+
+	    crypto_offer.push_back(full_attr);
         }
     }
 
diff --git a/sflphone-common/src/sip/sdp.h b/sflphone-common/src/sip/sdp.h
index fcea8997f2..d32ceeaa90 100644
--- a/sflphone-common/src/sip/sdp.h
+++ b/sflphone-common/src/sip/sdp.h
@@ -29,6 +29,7 @@
 #include <pjmedia/errno.h>
 #include <pj/pool.h>
 #include <pj/assert.h>
+#include <vector>
 
 #include "audio/codecs/codecDescriptor.h"
 #include "sdpmedia.h"
@@ -43,6 +44,8 @@ class sdpException: public std::exception
   }
 };
 
+typedef std::vector<std::string> CryptoOffer;
+
 class Sdp {
 
     public:
@@ -218,7 +221,7 @@ class Sdp {
 
         std::vector<sdpMedia*> get_session_media_list (void) { return _session_media; }
 
-	void get_remote_sdp_crypto_from_offer (const pjmedia_sdp_session* remote_sdp, pjmedia_sdp_attr** r_crypto);
+	void get_remote_sdp_crypto_from_offer (const pjmedia_sdp_session* remote_sdp, CryptoOffer& crypto_offer);
 
     private:
         /** Codec Map */
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index e739611316..8bbd1a64db 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -3223,29 +3223,20 @@ void call_on_media_update (pjsip_inv_session *inv, pj_status_t status)
     call->getLocalSDP()->set_media_transport_info_from_remote_sdp (remote_sdp);
 
     // Get the crypto attribute containing srtp's cryptographic context (keys, cipher)
-    pjmedia_sdp_attr *attribute = NULL;
-    call->getLocalSDP()->get_remote_sdp_crypto_from_offer(remote_sdp, &attribute);
+    CryptoOffer crypto_offer;
+    call->getLocalSDP()->get_remote_sdp_crypto_from_offer(remote_sdp, crypto_offer);
 
-    if(attribute) {
+    if(!crypto_offer.empty()) {
 
         _debug("Crypto attribute in SDP: init Srtp session");
 
-        // create remote cryptografic offer
-        std::vector<std::string> remoteOffer;
-
-	// @TODO parser expects attribute names to be present, should not 
-	std::string attr(attribute->value.ptr, attribute->value.slen);
-	std::string full_attr = "a=crypto:";
-	full_attr += attr;
-
-	remoteOffer.push_back(full_attr);
-
+	// init local cryptografic capabilities for negotiation
 	std::vector<sfl::CryptoSuiteDefinition>localCapabilities;
 	for(int i = 0; i < 3; i++) {
 	    localCapabilities.push_back(sfl::CryptoSuites[i]);
 	}
 
-	sfl::SdesNegotiator sdesnego(localCapabilities, remoteOffer);
+	sfl::SdesNegotiator sdesnego(localCapabilities, crypto_offer);
 	
 	if(sdesnego.negotiate()) {
 	    _debug("SDES negociation successfull \n");
-- 
GitLab


From dba4b4a0687a347a8ddb48042a17f289e2329769 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Fri, 15 Jan 2010 12:55:27 -0500
Subject: [PATCH 175/188] [#1722] use sfl::CryptoSuites to init crypto context

---
 .../src/audio/audiortp/AudioSrtpSession.cpp   | 21 +++++++-----
 .../src/audio/audiortp/AudioSrtpSession.h     | 34 +++++++++++++++++++
 2 files changed, 46 insertions(+), 9 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index e1579e7f31..4715587ff0 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -45,6 +45,8 @@ namespace sfl
 
 AudioSrtpSession::AudioSrtpSession (ManagerImpl * manager, SIPCall * sipcall) :
         ost::SymmetricRTPSession (ost::InetHostAddress (sipcall->getLocalIp().c_str()), sipcall->getLocalAudioPort()),
+	_localCryptoSuite(0),
+	_remoteCryptoSuite(0),
         AudioRtpSession<AudioSrtpSession> (manager, sipcall)
 {
 
@@ -68,7 +70,7 @@ std::string AudioSrtpSession::getLocalCryptoInfo() {
     // cryptographic context tagged 1, 2, 3...
     std::string tag = "1";
 
-    std::string crypto_suite = "AES_CM_128_HMAC_SHA1_32";
+    std::string crypto_suite = sfl::CryptoSuites[_localCryptoSuite].name;
 
     // srtp keys formated as the following  as the following
     // inline:NzB4d1BINUAvLEw6UzF3WSJ+PSdFcGdUJShpX1Zj|2^20|1:32
@@ -104,7 +106,7 @@ void AudioSrtpSession::initializeLocalMasterKey(void)
 {
 
     // @TODO key may have different length depending on cipher suite
-    _localMasterKeyLength = 16;
+    _localMasterKeyLength = sfl::CryptoSuites[_localCryptoSuite].masterKeyLength / 8;
 
     // Allocate memory for key
     unsigned char *random_key = new unsigned char[_localMasterKeyLength];
@@ -130,7 +132,7 @@ void AudioSrtpSession::initializeLocalMasterSalt(void)
 {
 
     // @TODO key may have different length depending on cipher suite 
-    _localMasterSaltLength = 14;
+  _localMasterSaltLength = sfl::CryptoSuites[_localCryptoSuite].masterSaltLength / 8;
 
     // Allocate memory for key
     unsigned char *random_key = new unsigned char[_localMasterSaltLength];
@@ -174,8 +176,9 @@ std::string AudioSrtpSession::getBase64ConcatenatedKeys()
 void AudioSrtpSession::unBase64ConcatenatedKeys(std::string base64keys)
 {
 
-    _remoteMasterKeyLength = 16;
-    _remoteMasterSaltLength = 14;
+    
+    _remoteMasterKeyLength = sfl::CryptoSuites[1].masterKeyLength / 8;
+    _remoteMasterSaltLength = sfl::CryptoSuites[1].masterSaltLength / 8;
 
     // length of decoded data data
     int length;
@@ -203,9 +206,9 @@ void AudioSrtpSession::initializeRemoteCryptoContext(void)
 					     SrtpEncryptionAESCM,         // encryption algo
 					     SrtpAuthenticationSha1Hmac,  // authtication algo
 					     _remoteMasterKey,            // Master Key
-					     128 / 8,                     // Master Key length
+					     _remoteMasterKeyLength,      // Master Key length
 					     _remoteMasterSalt,           // Master Salt
-					     112 / 8,                     // Master Salt length
+					     _remoteMasterSaltLength,     // Master Salt length
 					     128 / 8,                     // encryption keyl
 					     160 / 8,                     // authentication key len
 					     112 / 8,                     // session salt len
@@ -223,9 +226,9 @@ void AudioSrtpSession::initializeLocalCryptoContext(void)
 					      SrtpEncryptionAESCM,         // encryption algo
 					      SrtpAuthenticationSha1Hmac,  // authtication algo
 					      _localMasterKey,             // Master Key
-					      128 / 8,                     // Master Key length
+					      _localMasterKeyLength,       // Master Key length
 					      _localMasterSalt,            // Master Salt
-					      112 / 8,                     // Master Salt length
+					      _localMasterSaltLength,      // Master Salt length
 					      128 / 8,                     // encryption keyl
 					      160 / 8,                     // authentication key len
 					      112 / 8,                     // session salt len
diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.h b/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
index 6e90eb9573..7e94a62bae 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
@@ -28,6 +28,30 @@ class SdesNegotiator;
 class ManagerImpl;
 class SIPCall;
 
+/* 
+   Table from RFC 4568 6.2. Crypto-Suites, which define key parameters for supported 
+   cipher suite
+
+   +---------------------+-------------+--------------+---------------+
+   |                     |AES_CM_128_  | AES_CM_128_  | F8_128_       |
+   |                     |HMAC_SHA1_80 | HMAC_SHA1_32 |  HMAC_SHA1_80 |
+   +---------------------+-------------+--------------+---------------+
+   | Master key length   |   128 bits  |   128 bits   |   128 bits    |
+   | Master salt length  |   112 bits  |   112 bits   |   112 bits    |
+   | SRTP lifetime       | 2^48 packets| 2^48 packets | 2^48 packets  |
+   | SRTCP lifetime      | 2^31 packets| 2^31 packets | 2^31 packets  |
+   | Cipher              | AES Counter | AES Counter  | AES F8 Mode   |
+   |                     | Mode        | Mode         |               |
+   | Encryption key      |   128 bits  |   128 bits   |   128 bits    |
+   | MAC                 |  HMAC-SHA1  |  HMAC-SHA1   |  HMAC-SHA1    |
+   | SRTP auth. tag      |    80 bits  |    32 bits   |    80 bits    |
+   | SRTCP auth. tag     |    80 bits  |    80 bits   |    80 bits    |
+   | SRTP auth. key len. |   160 bits  |   160 bits   |   160 bits    |
+   | SRTCP auth. key len.|   160 bits  |   160 bits   |   160 bits    |
+   +---------------------+-------------+--------------+---------------+
+*/
+
+
 namespace sfl {
 
     class SrtpException: public std::exception
@@ -66,20 +90,30 @@ namespace sfl {
 
 	    char* decodeBase64(unsigned char *input, int length, int *length_out);
 
+	    /** Default local crypto suite is AES_CM_128_HMAC_SHA1_80*/
+	    int _localCryptoSuite;
+
+	    /** Remote crypto suite is initialized at AES_CM_128_HMAC_SHA1_80*/
+	    int _remoteCryptoSuite;
+
             uint8 _localMasterKey[16];
 
+	    /** local master key length in byte */
 	    int _localMasterKeyLength;
 
 	    uint8 _localMasterSalt[14];
 
+	    /** local master salt length in byte */
 	    int _localMasterSaltLength;
 
 	    uint8 _remoteMasterKey[16];
 
+	    /** remote master key length in byte */
 	    int _remoteMasterKeyLength;
 
 	    uint8 _remoteMasterSalt[14];
 
+	    /** remote master salt length in byte */
 	    int _remoteMasterSaltLength;
 
 	    ost::CryptoContext* _remoteCryptoCtx;
-- 
GitLab


From 44e98d2e3b3510e3adaddedefff6bb0f279db6de Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Fri, 15 Jan 2010 13:51:56 -0500
Subject: [PATCH 176/188] [#1722] Forgot one file to commit

---
 sflphone-common/src/sip/sdp.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sflphone-common/src/sip/sdp.cpp b/sflphone-common/src/sip/sdp.cpp
index 3d0d25e56b..e81b598978 100644
--- a/sflphone-common/src/sip/sdp.cpp
+++ b/sflphone-common/src/sip/sdp.cpp
@@ -696,6 +696,7 @@ void Sdp::get_remote_sdp_crypto_from_offer (const pjmedia_sdp_session* remote_sd
 
 	    _debug("****************** Found a Crypto ********************");
 	    std::string attr(attribute->value.ptr, attribute->value.slen);
+
 	    // @TODO our parser require the "acrypto:" to be present
 	    std::string full_attr = "a=crypto:";
 	    full_attr += attr;
-- 
GitLab


From 631833fe7ef9308ea6375d86f1ad5caed499d1b6 Mon Sep 17 00:00:00 2001
From: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
Date: Fri, 15 Jan 2010 15:40:53 -0500
Subject: [PATCH 177/188] [#2659] Make URL hook handle multiple $_GET arguments

---
 sflphone-common/src/hooks/urlhook.cpp    | 27 +++++++++++++++++++++++-
 sflphone-common/test/hookmanagerTest.cpp |  2 +-
 2 files changed, 27 insertions(+), 2 deletions(-)

diff --git a/sflphone-common/src/hooks/urlhook.cpp b/sflphone-common/src/hooks/urlhook.cpp
index b50aa1febb..3538602fb7 100644
--- a/sflphone-common/src/hooks/urlhook.cpp
+++ b/sflphone-common/src/hooks/urlhook.cpp
@@ -19,6 +19,7 @@
 
 #include "urlhook.h"
 #include <iostream>
+#include <vector>
 
 UrlHook::UrlHook () { }
 
@@ -28,9 +29,33 @@ int UrlHook::addAction (std::string field_value, std::string command)
 {
 
     std::string command_bg;
+	std::string temp;
+	std::vector <std::string> args;
+	size_t pos;
+	unsigned int i;
+
+	/* Escape the '&' char to not discard $_GET parameters in the URL - #2659 */ 
+	while ( (pos = field_value.find ("&", 0)) != std::string::npos) {
+        temp = field_value.substr (0, pos);
+        field_value.erase (0, pos + 1);
+		args.push_back (temp);
+		std::cout << temp << " " << std::endl;	
+	}
+
+    command_bg = command + " ";
+
+	pos = args.size ();
+	for (i=0; i<pos; i++) {
+		// Escape the "&"
+		command_bg += args[i] + "\\&";
+	}
+
+	// Retrieve the last argument
+	command_bg +=  field_value;
 
     /* Execute the command in the background to not block the application */
-    command_bg = command + " " + field_value + "&" ;
+	command_bg += "&";
+
     /* Execute a system call */
     return RUN_COMMAND (command_bg.c_str());
 
diff --git a/sflphone-common/test/hookmanagerTest.cpp b/sflphone-common/test/hookmanagerTest.cpp
index d5b8cb6a80..817533a927 100644
--- a/sflphone-common/test/hookmanagerTest.cpp
+++ b/sflphone-common/test/hookmanagerTest.cpp
@@ -38,7 +38,7 @@ void HookManagerTest::testAddAction ()
 
     int status;
 
-    status = urlhook->addAction ("www.google.ca", "x-www-browser");
+    status = urlhook->addAction ("http://www.google.ca/?arg1=arg1&arg2=nvls&x=2&y=45&z=1", "x-www-browser");
     CPPUNIT_ASSERT (status == 0);
 }
 
-- 
GitLab


From 8c718173266eca322377769f9c156b8ec46f65de Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Fri, 15 Jan 2010 16:22:41 -0500
Subject: [PATCH 178/188] [#1722] Add RTP fallback for SRTP

---
 .../src/audio/audiortp/AudioRtpFactory.h      |  5 ++++
 sflphone-common/src/sip/sipvoiplink.cpp       | 30 ++++++++++++++++++-
 2 files changed, 34 insertions(+), 1 deletion(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioRtpFactory.h b/sflphone-common/src/audio/audiortp/AudioRtpFactory.h
index 664bf3ae2c..dab313e1a9 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpFactory.h
+++ b/sflphone-common/src/audio/audiortp/AudioRtpFactory.h
@@ -104,6 +104,11 @@ namespace sfl {
         *         Sdes = 2 
         */  
         inline RtpMethod getAudioRtpType(void) { return _rtpSessionType; }
+	
+        /** 
+        * @param Set internal audio rtp session type (Symmetric, Zrtp, Sdes) 
+        */  
+        inline RtpMethod getAudioRtpType(RtpMethod type) { return _rtpSessionType = type; }
  
         /**
          * Get the current AudioZrtpSession. Throws an AudioRtpFactoryException
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 8bbd1a64db..e6f77b2f2c 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -3226,6 +3226,7 @@ void call_on_media_update (pjsip_inv_session *inv, pj_status_t status)
     CryptoOffer crypto_offer;
     call->getLocalSDP()->get_remote_sdp_crypto_from_offer(remote_sdp, crypto_offer);
 
+    bool nego_success = false;
     if(!crypto_offer.empty()) {
 
         _debug("Crypto attribute in SDP: init Srtp session");
@@ -3240,10 +3241,37 @@ void call_on_media_update (pjsip_inv_session *inv, pj_status_t status)
 	
 	if(sdesnego.negotiate()) {
 	    _debug("SDES negociation successfull \n");
-
+	    nego_success = true;
 	    call->getAudioRtp()->setRemoteCryptoInfo(sdesnego);
 	}
+	else {
+
+	    //@TODO Handle fallback mechanism here
+	    // - Call may Failed if SrtpOnly
+	    // - Call fallback to RTP (make sure PBX support it, if not ...)
+	    // - Ask (display a pop-up message)
+
+	    call->getAudioRtp()->getAudioRtpType();
+
+	}
+    }
+
+    // We did not found any crypto context for this media
+    if(!nego_success && call->getAudioRtp()->getAudioRtpType() == sfl::Sdes) {
+       
+        // We did not found any crypto context for this media
+        // @TODO if SRTPONLY, CallFail
+
+        // if RTPFALLBACK, change RTP session 
+        call->getAudioRtp()->stop();
+        call->getAudioRtp()->getAudioRtpType(sfl::Symmetric);
+	call->getAudioRtp()->initAudioRtpSession(call);
+    }
 
+    if(nego_success && call->getAudioRtp()->getAudioRtpType() != sfl::Sdes) {
+       
+        // We found a crypto context for this media bt Sdes is not 
+        // enabled for this call, make a try using RTP only
     }
 
     try {
-- 
GitLab


From a08a3acba4d35dd977cc6a62d14ceaf718045793 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Fri, 15 Jan 2010 17:05:22 -0500
Subject: [PATCH 179/188] [#1722] Fix Receiving crypto when not enabling SDES

---
 sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp |  7 ++++---
 sflphone-common/src/sip/sipvoiplink.cpp                | 10 +++++++---
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp b/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
index d9f88f1b55..48b3c3abfd 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
@@ -115,6 +115,7 @@ void AudioRtpFactory::initAudioRtpSession (SIPCall * ca)
 		break;
 
             default:
+	        _debug("Unsupported Rtp Session Exception Type!");
                 throw UnsupportedRtpSessionType();
         }
     } else {
@@ -186,7 +187,7 @@ void AudioRtpFactory::stop (void)
         _rtpSession = NULL;
     } catch (...) {
         _debugException ("Exception caught when stopping the audio rtp session");
-        throw AudioRtpFactoryException();
+        throw AudioRtpFactoryException("caught exception in AudioRtpFactory::stop");
     }
 }
 
@@ -218,7 +219,7 @@ sfl::AudioZrtpSession * AudioRtpFactory::getAudioZrtpSession()
     if ( (_rtpSessionType == Zrtp) && (_rtpSessionType != NULL)) {
         return static_cast<AudioZrtpSession *> (_rtpSession);
     } else {
-        throw AudioRtpFactoryException();
+        throw AudioRtpFactoryException("_rtpSession is NULL in getAudioZrtpSession");
     }
 }
 
@@ -228,7 +229,7 @@ sfl::AudioZrtpSession * AudioRtpFactory::getAudioZrtpSession()
         static_cast<AudioSrtpSession *> (_rtpSession)->setRemoteCryptoInfo(nego);
     }
     else {
-        throw AudioRtpFactoryException();
+        throw AudioRtpFactoryException("_rtpSession is NULL in setRemoteCryptoInfo");
     }
 }
 }
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index e6f77b2f2c..e6fc242312 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -3226,6 +3226,7 @@ void call_on_media_update (pjsip_inv_session *inv, pj_status_t status)
     CryptoOffer crypto_offer;
     call->getLocalSDP()->get_remote_sdp_crypto_from_offer(remote_sdp, crypto_offer);
 
+
     bool nego_success = false;
     if(!crypto_offer.empty()) {
 
@@ -3242,7 +3243,9 @@ void call_on_media_update (pjsip_inv_session *inv, pj_status_t status)
 	if(sdesnego.negotiate()) {
 	    _debug("SDES negociation successfull \n");
 	    nego_success = true;
-	    call->getAudioRtp()->setRemoteCryptoInfo(sdesnego);
+
+	    if(call->getAudioRtp()->getAudioRtpType() == sfl::Sdes)
+	        call->getAudioRtp()->setRemoteCryptoInfo(sdesnego);
 	}
 	else {
 
@@ -3270,8 +3273,9 @@ void call_on_media_update (pjsip_inv_session *inv, pj_status_t status)
 
     if(nego_success && call->getAudioRtp()->getAudioRtpType() != sfl::Sdes) {
        
-        // We found a crypto context for this media bt Sdes is not 
-        // enabled for this call, make a try using RTP only
+        // We found a crypto context for this media but Sdes is not 
+        // enabled for this call, make a try using RTP only...
+        _debug("Sdes not initialized for this call\n");
     }
 
     try {
-- 
GitLab


From 9c574cc3235e350e35292d3ed3dec5c4eaaaed72 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Fri, 15 Jan 2010 17:11:51 -0500
Subject: [PATCH 180/188] [#1722] Fix Switch to Srtp to Rtp in call_on_media
 update

---
 sflphone-common/src/audio/audiortp/AudioRtpFactory.h | 2 +-
 sflphone-common/src/sip/sipvoiplink.cpp              | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioRtpFactory.h b/sflphone-common/src/audio/audiortp/AudioRtpFactory.h
index dab313e1a9..d965e53f47 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpFactory.h
+++ b/sflphone-common/src/audio/audiortp/AudioRtpFactory.h
@@ -108,7 +108,7 @@ namespace sfl {
         /** 
         * @param Set internal audio rtp session type (Symmetric, Zrtp, Sdes) 
         */  
-        inline RtpMethod getAudioRtpType(RtpMethod type) { return _rtpSessionType = type; }
+        inline RtpMethod setAudioRtpType(RtpMethod type) { _rtpSessionType = type; }
  
         /**
          * Get the current AudioZrtpSession. Throws an AudioRtpFactoryException
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index e6fc242312..2fac4d186e 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -3267,7 +3267,7 @@ void call_on_media_update (pjsip_inv_session *inv, pj_status_t status)
 
         // if RTPFALLBACK, change RTP session 
         call->getAudioRtp()->stop();
-        call->getAudioRtp()->getAudioRtpType(sfl::Symmetric);
+        call->getAudioRtp()->setAudioRtpType(sfl::Symmetric);
 	call->getAudioRtp()->initAudioRtpSession(call);
     }
 
-- 
GitLab


From 359944665b28a70c0e547ffe93f47dd9b6443f64 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Fri, 15 Jan 2010 18:06:48 -0500
Subject: [PATCH 181/188] [#1722] Uncoupled initAudioRtpConfig from
 initAudioRtpSession

---
 .../src/audio/audiortp/AudioRtpFactory.cpp    | 37 +++++++++----------
 .../src/audio/audiortp/AudioRtpFactory.h      | 31 +++++++++++++++-
 sflphone-common/src/sip/sipvoiplink.cpp       |  9 ++++-
 3 files changed, 54 insertions(+), 23 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp b/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
index 48b3c3abfd..3cf0fd3583 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioRtpFactory.cpp
@@ -54,10 +54,8 @@ AudioRtpFactory::~AudioRtpFactory()
     stop();
 }
 
-void AudioRtpFactory::initAudioRtpSession (SIPCall * ca)
+void AudioRtpFactory::initAudioRtpConfig(SIPCall *ca)
 {
-    ost::MutexLock m (_audioRtpThreadMutex);
-
     assert (ca);
 
     if (_rtpSession != NULL) {
@@ -68,36 +66,35 @@ void AudioRtpFactory::initAudioRtpSession (SIPCall * ca)
 
     AccountID accountId = Manager::instance().getAccountFromCall (ca->getCallId());
 
-    bool srtpEnabled = false;
-    int keyExchangeProtocol = 1;
-    bool helloHashEnabled = true;
-
     // Check if it is an IP-to-IP call
-
     if (accountId == AccountNULL) {
-        srtpEnabled = Manager::instance().getConfigBool (IP2IP_PROFILE, SRTP_ENABLE);
-        keyExchangeProtocol = Manager::instance().getConfigInt (IP2IP_PROFILE, SRTP_KEY_EXCHANGE);
-        _debug ("Ip-to-ip profile selected with key exchange protocol number %d", keyExchangeProtocol);
-        helloHashEnabled = Manager::instance().getConfigBool (IP2IP_PROFILE, ZRTP_HELLO_HASH);
+        _srtpEnabled = Manager::instance().getConfigBool (IP2IP_PROFILE, SRTP_ENABLE);
+        _keyExchangeProtocol = Manager::instance().getConfigInt (IP2IP_PROFILE, SRTP_KEY_EXCHANGE);
+        _debug ("Ip-to-ip profile selected with key exchange protocol number %d", _keyExchangeProtocol);
+        _helloHashEnabled = Manager::instance().getConfigBool (IP2IP_PROFILE, ZRTP_HELLO_HASH);
     } else {
-        srtpEnabled = Manager::instance().getConfigBool (accountId, SRTP_ENABLE);
-        keyExchangeProtocol = Manager::instance().getConfigInt (accountId, SRTP_KEY_EXCHANGE);
-        _debug ("Registered account %s profile selected with key exchange protocol number %d", accountId.c_str(), keyExchangeProtocol);
-        helloHashEnabled = Manager::instance().getConfigBool (accountId, ZRTP_HELLO_HASH);
+        _srtpEnabled = Manager::instance().getConfigBool (accountId, SRTP_ENABLE);
+        _keyExchangeProtocol = Manager::instance().getConfigInt (accountId, SRTP_KEY_EXCHANGE);
+        _debug ("Registered account %s profile selected with key exchange protocol number %d", accountId.c_str(), _keyExchangeProtocol);
+        _helloHashEnabled = Manager::instance().getConfigBool (accountId, ZRTP_HELLO_HASH);
     }
+}
 
-    _debug ("Srtp enable: %d ", srtpEnabled);
+void AudioRtpFactory::initAudioRtpSession (SIPCall * ca)
+{
+    ost::MutexLock m (_audioRtpThreadMutex);
 
-    if (srtpEnabled) {
+    _debug ("Srtp enable: %d ", _srtpEnabled);
+    if (_srtpEnabled) {
         std::string zidFilename (Manager::instance().getConfigString (SIGNALISATION, ZRTP_ZIDFILE));
 
-        switch (keyExchangeProtocol) {
+        switch (_keyExchangeProtocol) {
 
             case Zrtp:
                 _rtpSession = new AudioZrtpSession (&Manager::instance(), ca, zidFilename);
                 _rtpSessionType = Zrtp;
 
-                if (helloHashEnabled) {
+                if (_helloHashEnabled) {
                     // TODO: be careful with that. The hello hash is computed asynchronously. Maybe it's
                     // not even available at that point.
                     ca->getLocalSDP()->set_zrtp_hash (static_cast<AudioZrtpSession *> (_rtpSession)->getHelloHash());
diff --git a/sflphone-common/src/audio/audiortp/AudioRtpFactory.h b/sflphone-common/src/audio/audiortp/AudioRtpFactory.h
index d965e53f47..cfa14165f1 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpFactory.h
+++ b/sflphone-common/src/audio/audiortp/AudioRtpFactory.h
@@ -61,6 +61,8 @@ namespace sfl {
         AudioRtpFactory(SIPCall * ca);
         ~AudioRtpFactory();
 
+	void initAudioRtpConfig(SIPCall *ca);
+
         /**
          * Lazy instantiation method. Create a new RTP session of a given 
          * type according to the content of the configuration file. 
@@ -108,7 +110,22 @@ namespace sfl {
         /** 
         * @param Set internal audio rtp session type (Symmetric, Zrtp, Sdes) 
         */  
-        inline RtpMethod setAudioRtpType(RtpMethod type) { _rtpSessionType = type; }
+        inline void setAudioRtpType(RtpMethod type) { _rtpSessionType = type; }
+
+	/**
+	 * Manually set the srtpEnable option (usefull for RTP fallback)
+	 */
+	void setSrtpEnabled(bool enable){ _srtpEnabled = enable; }
+
+	/**
+	 * Manually set the keyExchangeProtocol parameter (usefull for RTP fallback)
+	 */
+	void setKeyExchangeProtocol(int proto){ _keyExchangeProtocol = proto; }
+
+	/**
+	 * Manually set the setHelloHashEnabled parameter (usefull for RTP fallback)
+	 */
+	void setHelloHashEnabled(bool enable){ _helloHashEnabled = enable; }
  
         /**
          * Get the current AudioZrtpSession. Throws an AudioRtpFactoryException
@@ -127,6 +144,18 @@ namespace sfl {
            void * _rtpSession;
            RtpMethod _rtpSessionType;
            ost::Mutex _audioRtpThreadMutex;
+
+	   // Field used when initializinga udio rtp session
+	   // May be set manually or from config using initAudioRtpConfig
+	   bool _srtpEnabled;
+
+	   // Field used when initializinga udio rtp session
+	   // May be set manually or from config using initAudioRtpConfig
+	   int _keyExchangeProtocol;
+
+	   // Field used when initializinga udio rtp session
+	   // May be set manually or from config using initAudioRtpConfig
+	   bool _helloHashEnabled;
     };
 }
 #endif // __AUDIO_RTP_FACTORY_H__
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 2fac4d186e..ed81c182f9 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -757,6 +757,7 @@ SIPVoIPLink::newOutgoingCall (const CallID& id, const std::string& toUrl)
 
         try {
             _debug ("Creating new rtp session in newOutgoingCall");
+	    call->getAudioRtp()->initAudioRtpConfig (call);
             call->getAudioRtp()->initAudioRtpSession (call);
         } catch (...) {
             _debug ("Failed to create rtp thread from newOutGoingCall");
@@ -1060,6 +1061,7 @@ SIPVoIPLink::offhold (const CallID& id)
     }
 
     try {
+        call->getAudioRtp()->initAudioRtpConfig (call);
         call->getAudioRtp()->initAudioRtpSession (call);
     } catch (...) {
         _debug ("! SIP Failure: Unable to create RTP Session (%s:%d)", __FILE__, __LINE__);
@@ -1569,6 +1571,7 @@ bool SIPVoIPLink::new_ip_to_ip_call (const CallID& id, const std::string& to)
 	// Audio Rtp Session must be initialized before creating initial offer in SDP session
 	// since SDES require crypto attribute.
 	try {
+	    call->getAudioRtp()->initAudioRtpConfig (call);
             call->getAudioRtp()->initAudioRtpSession (call);
         } catch (...) {
             _debug ("! SIP Failure: Unable to create RTP Session  in SIPVoIPLink::new_ip_to_ip_call (%s:%d)", __FILE__, __LINE__);
@@ -3265,9 +3268,10 @@ void call_on_media_update (pjsip_inv_session *inv, pj_status_t status)
         // We did not found any crypto context for this media
         // @TODO if SRTPONLY, CallFail
 
-        // if RTPFALLBACK, change RTP session 
+        // if RTPFALLBACK, change RTP session
+        _debug("Did not found any crypto or negociation failed but Sdes enabled");
         call->getAudioRtp()->stop();
-        call->getAudioRtp()->setAudioRtpType(sfl::Symmetric);
+	call->getAudioRtp()->setSrtpEnabled(false);
 	call->getAudioRtp()->initAudioRtpSession(call);
     }
 
@@ -3661,6 +3665,7 @@ mod_on_rx_request (pjsip_rx_data *rdata)
     call->getLocalSDP()->set_ip_address (addrSdp);
 
     try {
+        call->getAudioRtp()->initAudioRtpConfig (call);
         call->getAudioRtp()->initAudioRtpSession (call);
     } catch (...) {
         _debug ("Failed to create rtp thread from answer");
-- 
GitLab


From fa296d6d48f063ae36e6215fbd6e244c7db28b18 Mon Sep 17 00:00:00 2001
From: pierre-luc <pierre-luc.bacon@savoirfairelinux.com>
Date: Fri, 15 Jan 2010 20:10:54 -0500
Subject: [PATCH 182/188] [#1722] Fixed problem where multiple crypto lines
 could not be processed sequentially.

---
 sflphone-common/src/sip/Pattern.cpp         |  14 --
 sflphone-common/src/sip/SdesNegotiator.cpp  | 122 +++++++++-------
 sflphone-common/src/sip/SdesNegotiator.h    | 154 ++++++++++++--------
 sflphone-common/test/sdesnegotiatorTest.cpp |  65 ++++-----
 sflphone-common/test/sdesnegotiatorTest.h   |  18 ++-
 5 files changed, 202 insertions(+), 171 deletions(-)

diff --git a/sflphone-common/src/sip/Pattern.cpp b/sflphone-common/src/sip/Pattern.cpp
index 71e093d13c..290c9f7a79 100644
--- a/sflphone-common/src/sip/Pattern.cpp
+++ b/sflphone-common/src/sip/Pattern.cpp
@@ -180,23 +180,17 @@ std::string Pattern::group (const std::string& groupName)
                  _count,
                  groupName.c_str(),
                  &stringPtr);
-
-    // printf("  _count : %i\n", _count);
-    // printf("stringPtr : %s\n", stringPtr);
     
     if (rc < 0) {
         switch (rc) {
 
             case PCRE_ERROR_NOSUBSTRING:
-	        // printf("Pattern::PCRE_ERROR_NOSUBSTRING\n");
                 throw std::out_of_range ("Invalid group reference.");
 
             case PCRE_ERROR_NOMEMORY:
-	        // printf("Pattern::PCRE_ERROR_NOMEMORY\n");
                 throw match_error ("Memory exhausted.");
 
             default:
-	        // printf("Pattern::default match error\n");
                 throw match_error ("Failed to get named substring.");
         }
     }
@@ -255,10 +249,6 @@ bool Pattern::matches (void) throw (match_error)
 
 bool Pattern::matches (const std::string& subject) throw (match_error)
 {
-    // printf("Pattern::matches\n");
-    // printf("  Current offset: %d, old offset: %d", _offset[1], _offset[0]);
-    // printf("  Trying <start>%s<end>\n", subject.substr(_offset[1]).c_str());
-
     // Try to find a match for this pattern
     int rc = pcre_exec (
                  _re,
@@ -271,7 +261,6 @@ bool Pattern::matches (const std::string& subject) throw (match_error)
                  _ovectorSize);
 
     // Matching failed.
-
     if (rc < 0) {
         _offset[0] = _offset[1] = 0;
         // printf("  Matching failed with %d\n", rc);
@@ -285,8 +274,6 @@ bool Pattern::matches (const std::string& subject) throw (match_error)
         _offset[1] =  _ovector[1] + _offset[0];
     }
 
-    // printf("  Matching succeeded with %d to %d\n", (int) start(), (int) end());
-
     // Matching succeded but not enough space.
     if (rc == 0) {
         throw match_error ("No space to store all substrings.");
@@ -295,7 +282,6 @@ bool Pattern::matches (const std::string& subject) throw (match_error)
 
     // Matching succeeded. Keep the number of substrings for
     // subsequent calls to group().
-    // printf("_count: %i = %i\n", _count, rc);
       _count = rc;
 
     return true;
diff --git a/sflphone-common/src/sip/SdesNegotiator.cpp b/sflphone-common/src/sip/SdesNegotiator.cpp
index e8618e3ab8..f9411df3d9 100644
--- a/sflphone-common/src/sip/SdesNegotiator.cpp
+++ b/sflphone-common/src/sip/SdesNegotiator.cpp
@@ -28,13 +28,6 @@
 
 using namespace sfl;
 
-struct CryptoAttribute {
-    std::string tag;
-    std::string cryptoSuite;
-    std::string keyParams;
-    std::string sessionParams;
-};
-
 SdesNegotiator::SdesNegotiator (const std::vector<CryptoSuiteDefinition>& localCapabilites,
                                 const std::vector<std::string>& remoteAttribute) :
         _remoteAttribute (remoteAttribute),
@@ -43,7 +36,7 @@ SdesNegotiator::SdesNegotiator (const std::vector<CryptoSuiteDefinition>& localC
 
 }
 
-void SdesNegotiator::parse (void)
+std::vector<CryptoAttribute *> SdesNegotiator::parse (void)
 {
     // The patterns below try to follow
     // the ABNF grammar rules described in
@@ -63,8 +56,7 @@ void SdesNegotiator::parse (void)
         // used to match white space (which are used as separator) 
         generalSyntaxPattern = new Pattern ("[\x20\x09]+", "g");
 
-        tagPattern = new Pattern ("^a=crypto:(?P<tag>[0-9]{1,9})", "g");
-	// tagPattern = new Pattern ("[0-9]");
+        tagPattern = new Pattern ("^a=crypto:(?P<tag>[0-9]{1,9})");
 
         cryptoSuitePattern = new Pattern (
             "(?P<cryptoSuite>AES_CM_128_HMAC_SHA1_80|" \
@@ -91,7 +83,6 @@ void SdesNegotiator::parse (void)
 
     } catch (compile_error& exception) {
         throw parse_error ("A compile exception occured on a pattern.");
-
     }
       
 
@@ -100,18 +91,15 @@ void SdesNegotiator::parse (void)
 
     
     std::vector<std::string>::iterator iter;
-
+	std::vector<CryptoAttribute *> cryptoAttributeVector;
+	
     for (iter = _remoteAttribute.begin(); iter != _remoteAttribute.end(); iter++) {
-
-        std::cout << (*iter) << std::endl;
-
         // Split the line into its component
         // that we will analyze further down.
-	std::vector<std::string> sdesLine;
+		std::vector<std::string> sdesLine;
 	
         *generalSyntaxPattern << (*iter);
         
-	
         try {
             sdesLine = generalSyntaxPattern->split();
 
@@ -126,49 +114,50 @@ void SdesNegotiator::parse (void)
         // Check if the attribute starts with a=crypto
         // and get the tag for this line
         *tagPattern << sdesLine.at (0);
-
-	tagPattern->matches();
-
-        try {
-            std::string tag = tagPattern->group ("tag");
-            std::cout << "tag = " << tag << std::endl;
-        } catch (match_error& exception) {
-            throw parse_error ("Error while parsing the tag field");
-        }
+				
+		std::string tag; 
+		if (tagPattern->matches()) {
+			try {
+				tag = tagPattern->group ("tag");
+			} catch (match_error& exception) {
+				throw parse_error ("Error while parsing the tag field");
+			}
+		} else {
+			return cryptoAttributeVector;
+		}
 
         // Check if the crypto suite is valid and retreive
         // its value.
         *cryptoSuitePattern << sdesLine.at (1);
 
-	cryptoSuitePattern->matches();
-
-        try {
-            _cryptoSuite = cryptoSuitePattern->group ("cryptoSuite");
-            std::cout << "crypto-suite = " << _cryptoSuite << std::endl;
-        } catch (match_error& exception) {
-            throw parse_error ("Error while parsing the crypto-suite field");
-        }
-
+		std::string cryptoSuite;
+		
+		if (cryptoSuitePattern->matches()) {
+			try {
+				cryptoSuite  = cryptoSuitePattern->group ("cryptoSuite");
+			} catch (match_error& exception) {
+				throw parse_error ("Error while parsing the crypto-suite field");
+			}
+		} else {
+			return cryptoAttributeVector;
+		}
+	
         // Parse one or more key-params field.
         *keyParamsPattern << sdesLine.at (2);
 
+		std::string srtpKeyInfo;
+		std::string srtpKeyMethod;
+		std::string lifetime;
+		std::string mkiLength;
+		std::string mkiValue;
+		
         try {
             while (keyParamsPattern->matches()) {
-                
-                _srtpKeyMethod = keyParamsPattern->group ("srtpKeyMethod");
-                std::cout << "srtp-key-method = " << _srtpKeyMethod << std::endl;
-
-                _srtpKeyInfo = keyParamsPattern->group ("srtpKeyInfo");
-                std::cout << "srtp-key-info = " << _srtpKeyInfo << std::endl;
-
-                _lifetime = keyParamsPattern->group ("lifetime");
-                std::cout << "lifetime = " << _lifetime << std::endl;
-
-                _mkiValue = keyParamsPattern->group ("mkiValue");
-                std::cout << "mkiValue = " << _mkiValue << std::endl;
-
-                _mkiLength = keyParamsPattern->group ("mkiLength");
-                std::cout << "mkiLength = " << _mkiLength << std::endl;
+                srtpKeyMethod = keyParamsPattern->group ("srtpKeyMethod");
+                srtpKeyInfo = keyParamsPattern->group ("srtpKeyInfo");
+                lifetime = keyParamsPattern->group ("lifetime");
+                mkiValue = keyParamsPattern->group ("mkiValue");
+                mkiLength = keyParamsPattern->group ("mkiLength");
             }
         } catch (match_error& exception) {
             throw parse_error ("Error while parsing the key-params field");
@@ -176,7 +165,7 @@ void SdesNegotiator::parse (void)
 
         /**
          *  Parse the optional session-param fields
-         * @todo Implement this !
+         * @TODO Implement this !
          */
         /*
         if (sdesLine.size() == 3) continue;
@@ -191,14 +180,39 @@ void SdesNegotiator::parse (void)
         		}
         	}
         } */
+		
+		// Add the new CryptoAttribute to the vector
+		std::cout << (*iter) << std::endl;
+		CryptoAttribute * cryptoAttribute = new CryptoAttribute(tag, cryptoSuite, srtpKeyMethod, srtpKeyInfo, lifetime, mkiValue, mkiLength);
+		cryptoAttributeVector.push_back(cryptoAttribute);
     }
 
-
+	return cryptoAttributeVector;
 }
 
 bool SdesNegotiator::negotiate (void)
 {
-    parse();
-
+	try {
+		std::vector<CryptoAttribute *> cryptoAttributeVector = parse();
+		
+		std::vector<CryptoAttribute *>::iterator iter;
+		for (iter = cryptoAttributeVector.begin(); iter != cryptoAttributeVector.end(); iter++) {
+			std::cout << "Negotiate tag: " + (*iter)->getTag() << std::endl;
+			std::cout << "Crypto Suite: " + (*iter)->getCryptoSuite() << std::endl;
+			std::cout << "SRTP Key Method: " + (*iter)->getSrtpKeyMethod() << std::endl;
+			std::cout << "SRTP Key Info: " + (*iter)->getSrtpKeyInfo() << std::endl;
+			std::cout << "Lifetime: " + (*iter)->getLifetime() << std::endl;
+			std::cout << "MKI Value: " + (*iter)->getMkiValue() << std::endl;			
+			std::cout << "MKI Length: " + (*iter)->getMkiLength() << std::endl;			
+			
+			delete (*iter);
+		}
+		
+	} catch (parse_error& exception) {
+		return false;
+	} catch (match_error& exception) {
+		return false;
+	}
+	
     return true;
 }
diff --git a/sflphone-common/src/sip/SdesNegotiator.h b/sflphone-common/src/sip/SdesNegotiator.h
index 08e32090ef..d8a568421e 100644
--- a/sflphone-common/src/sip/SdesNegotiator.h
+++ b/sflphone-common/src/sip/SdesNegotiator.h
@@ -74,11 +74,43 @@ namespace sfl {
           {"AES_CM_128_HMAC_SHA1_32", 128, 112, 48, 31, AESCounterMode, 128, HMACSHA1, 32, 80, 160, 160 },
           {"F8_128_HMAC_SHA1_80", 128, 112, 48, 31, AESF8Mode, 128, HMACSHA1, 80, 80, 160, 160 } };   
         
-    /** 
-     * Internal structure 
-     * used during parsing.
-     */  
-    struct CryptoAttribute;                    
+
+	class CryptoAttribute {
+	
+		public:
+			CryptoAttribute(std::string tag, 
+							std::string cryptoSuite, 
+							std::string srtpKeyMethod, 
+							std::string srtpKeyInfo, 
+							std::string lifetime, 
+							std::string mkiValue, 
+							std::string mkiLength) :
+			tag(tag),
+			cryptoSuite(cryptoSuite),
+			srtpKeyMethod(srtpKeyMethod),
+			srtpKeyInfo(srtpKeyInfo),
+			lifetime(lifetime),
+			mkiValue(mkiValue),
+			mkiLength(mkiLength) {};
+				
+			
+			inline std::string getTag() { return tag; };
+			inline std::string getCryptoSuite() { return cryptoSuite; };
+			inline std::string getSrtpKeyMethod() { return srtpKeyMethod; };
+			inline std::string getSrtpKeyInfo() { return srtpKeyInfo; };
+			inline std::string getLifetime() { return lifetime; };
+			inline std::string getMkiValue() { return mkiValue; };
+			inline std::string getMkiLength() { return mkiLength; };
+
+		private:
+			std::string tag;
+			std::string cryptoSuite;
+			std::string srtpKeyMethod;
+			std::string srtpKeyInfo;
+			std::string lifetime;
+			std::string mkiValue;
+			std::string mkiLength;
+	};         
 
     class SdesNegotiator 
     {
@@ -99,35 +131,35 @@ namespace sfl {
             
             bool negotiate(void);
 
-	    /**
-	     * Return crypto suite after negotiation
-	     */
-	    std::string getCryptoSuite(void) { return _cryptoSuite; }
+			/**
+			 * Return crypto suite after negotiation
+			 */
+			std::string getCryptoSuite(void) { return _cryptoSuite; }
 
-	    /**
-	     * Return key method after negotiation (most likely inline:)
-	     */
-	    std::string getKeyMethod(void) { return _srtpKeyMethod; }
+			/**
+			 * Return key method after negotiation (most likely inline:)
+			 */
+			std::string getKeyMethod(void) { return _srtpKeyMethod; }
 
-	    /**
-	     * Return crypto suite after negotiation
-	     */
-	    std::string getKeyInfo(void) { return _srtpKeyInfo; }
+			/**
+			 * Return crypto suite after negotiation
+			 */
+			std::string getKeyInfo(void) { return _srtpKeyInfo; }
 
-	    /**
-	     * Return key lifetime after negotiation
-	     */
-	    std::string getLifeTime(void) { return _lifetime; }
+			/**
+			 * Return key lifetime after negotiation
+			 */
+			std::string getLifeTime(void) { return _lifetime; }
 
-	    /**
-	     * Return mki value after negotiation
-	     */
-	    std::string getMkiValue(void) { return _mkiValue; }
+			/**
+			 * Return mki value after negotiation
+			 */
+			std::string getMkiValue(void) { return _mkiValue; }
 
-	    /**
-	     * Return mki length after negotiation
-	     */
-	    std::string getMkiLength(void) { return _mkiLength; }
+			/**
+			 * Return mki length after negotiation
+			 */
+			std::string getMkiLength(void) { return _mkiLength; }
 
         private:
             /**
@@ -139,39 +171,37 @@ namespace sfl {
 
             std::vector<CryptoSuiteDefinition> _localCapabilities;
 
-	    /**
-	     * Selected crypto suite after negotiation
-	     */
-	    std::string _cryptoSuite;
-
-	    /**
-	     * Selected key method after negotiation (most likely inline:)
-	     */
-	    std::string _srtpKeyMethod;
-
-	    /**
-	     * Selected crypto suite after negotiation
-	     */
-	    std::string _srtpKeyInfo;
-
-	    /**
-	     * Selected key lifetime after negotiation
-	     */
-	    std::string _lifetime;
-
-	    /**
-	     * Selected mki value after negotiation
-	     */
-	    std::string _mkiValue;
-
-	    /**
-	     * Selected mki length after negotiation
-	     */
-	    std::string _mkiLength;
-            
-            void parse(void);
-
-            CryptoAttribute * tokenize(const std::string& attributeLine);
+			/**
+			* Selected crypto suite after negotiation
+			*/
+			std::string _cryptoSuite;
+
+			/**
+			* Selected key method after negotiation (most likely inline:)
+			*/
+			std::string _srtpKeyMethod;
+
+			/**
+			* Selected crypto suite after negotiation
+			*/
+			std::string _srtpKeyInfo;
+
+			/**
+			* Selected key lifetime after negotiation
+			*/
+			std::string _lifetime;
+
+			/**
+			* Selected mki value after negotiation
+			*/
+			std::string _mkiValue;
+
+			/**
+			* Selected mki length after negotiation
+			*/
+			std::string _mkiLength;
+
+			std::vector<CryptoAttribute *> parse(void);
     };
 }
 #endif
diff --git a/sflphone-common/test/sdesnegotiatorTest.cpp b/sflphone-common/test/sdesnegotiatorTest.cpp
index 71b429a5ea..ebe70c8bac 100644
--- a/sflphone-common/test/sdesnegotiatorTest.cpp
+++ b/sflphone-common/test/sdesnegotiatorTest.cpp
@@ -40,21 +40,18 @@ using std::endl;
 
 void SdesNegotiatorTest::setUp()
 {
-
-  std::string attr("a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwd|2^20|1:32");
-
-  // std::string attr("a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:d0RmdmcmVCspeEc3QGZiNWpVLFJhQX1cfHAwJSoj|2^20|1:32");
-
+	// Add a new SDES crypto line to be processed. 
     remoteOffer = new std::vector<std::string>();
-    remoteOffer->push_back(attr);
-
+    remoteOffer->push_back(std::string("a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwd|2^20|1:32"));
+	remoteOffer->push_back(std::string("a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:NzB4d1BINUAvLEw6UzF3WSJ+PSdFcGdUJShpX1Zj|2^20|1:32"));
+	
+	// Register the local capabilities.
     localCapabilities = new std::vector<sfl::CryptoSuiteDefinition>();
     for(int i = 0; i < 3; i++) {
         localCapabilities->push_back(sfl::CryptoSuites[i]);
     }
 
     sdesnego = new sfl::SdesNegotiator(*localCapabilities, *remoteOffer);
-
 }
 
 
@@ -121,38 +118,40 @@ void SdesNegotiatorTest::testKeyParamsPattern()
     pattern->matches();
     CPPUNIT_ASSERT(pattern->group("srtpKeyMethod").compare("inline:"));
 
-    /*
-    while (pattern->matches()) {
-                
-        std::string _srtpKeyMethod = pattern->group ("srtpKeyMethod");
-	std::string _srtpKeyInfo = pattern->group ("srtpKeyInfo");
-	std::string _lifetime = pattern->group ("lifetime");
-	std::string _mkiValue = pattern->group ("mkiValue");
-	std::string _mkiLength = pattern->group ("mkiLength");
-    }
-
-
-    CPPUNIT_ASSERT(pattern->group("srtpKeyMethod").compare("inline:"));
-    CPPUNIT_ASSERT(pattern->group("srtpKeyInfo").compare("d0RmdmcmVCspeEc3QGZiNWpVLFJhQX1cfHAwJSoj"));
-    CPPUNIT_ASSERT(pattern->group("lifetime").compare("20"));
-    CPPUNIT_ASSERT(pattern->group("mkivalue").compare("1"));
-    CPPUNIT_ASSERT(pattern->group("mkilength").compare("32"));
-    */
-
     delete pattern;
     pattern = NULL;
 }
 
-
+/**
+ * Make sure that all the fields can be extracted
+ * properly from the syntax. 
+ */
 void SdesNegotiatorTest::testNegotiation()
 {
     CPPUNIT_ASSERT(sdesnego->negotiate());
-    CPPUNIT_ASSERT(sdesnego->getCryptoSuite().compare("AES_CM_128_HMAC_SHA1_80") == 0);
-    CPPUNIT_ASSERT(sdesnego->getKeyMethod().compare("inline") == 0);
-    CPPUNIT_ASSERT(sdesnego->getKeyInfo().compare("AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwd") == 0);
-    CPPUNIT_ASSERT(sdesnego->getLifeTime().compare("20") == 0);
-    CPPUNIT_ASSERT(sdesnego->getMkiValue().compare("1") == 0);
-    CPPUNIT_ASSERT(sdesnego->getMkiLength().compare("32") == 0);
+}
+
+/**
+ * Make sure that unproperly formatted crypto lines are rejected.
+ */
+void SdesNegotiatorTest::testComponent()
+{
+	// Register the local capabilities.
+    std::vector<sfl::CryptoSuiteDefinition> * capabilities = new std::vector<sfl::CryptoSuiteDefinition>();
+	
+	//Support all the CryptoSuites
+    for(int i = 0; i < 3; i++) {
+        capabilities->push_back(sfl::CryptoSuites[i]);
+    }
+	
+	// Make sure that if a component is missing, negotiate will fail
+	std::string cryptoLine("a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:|2^20|1:32");
+	std::vector<std::string> * cryptoOffer = new std::vector<std::string>();
+    cryptoOffer->push_back(cryptoLine);	
+
+    sfl::SdesNegotiator * negotiator = new sfl::SdesNegotiator(*capabilities, *cryptoOffer);
+
+	CPPUNIT_ASSERT(negotiator->negotiate() == false);
 }
 
 
diff --git a/sflphone-common/test/sdesnegotiatorTest.h b/sflphone-common/test/sdesnegotiatorTest.h
index 4e97a9d6da..2a7b552222 100644
--- a/sflphone-common/test/sdesnegotiatorTest.h
+++ b/sflphone-common/test/sdesnegotiatorTest.h
@@ -66,6 +66,7 @@ class SdesNegotiatorTest : public CppUnit::TestCase {
     CPPUNIT_TEST( testCryptoSuitePattern );
     CPPUNIT_TEST( testKeyParamsPattern );
     CPPUNIT_TEST( testNegotiation );
+	// CPPUNIT_TEST( testComponent );
     CPPUNIT_TEST_SUITE_END();
 
     public:
@@ -84,24 +85,25 @@ class SdesNegotiatorTest : public CppUnit::TestCase {
          */
         inline void tearDown();
 
-	void testTagPattern();
+		void testTagPattern();
 
-	void testCryptoSuitePattern();
+		void testCryptoSuitePattern();
 
-	void testKeyParamsPattern();
+		void testKeyParamsPattern();
 
        	void testNegotiation();
+		
+		void testComponent();
 
     private:
 
-	sfl::Pattern *pattern;
+		sfl::Pattern *pattern;
 
-	sfl::SdesNegotiator *sdesnego;
+		sfl::SdesNegotiator *sdesnego;
 
-	std::vector<std::string> *remoteOffer;
-
-	std::vector<sfl::CryptoSuiteDefinition> *localCapabilities;
+		std::vector<std::string> *remoteOffer;
 
+		std::vector<sfl::CryptoSuiteDefinition> *localCapabilities;
 };
 
 /* Register our test module */
-- 
GitLab


From f0f7027a309fc4a48cd75325af744d348a45eac4 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 18 Jan 2010 12:30:10 -0500
Subject: [PATCH 183/188] [#1722] Put crypto attribute in media field

---
 sflphone-common/src/sip/sdp.cpp             | 65 +++++++++++++--------
 sflphone-common/test/sdesnegotiatorTest.cpp | 18 +++---
 2 files changed, 50 insertions(+), 33 deletions(-)

diff --git a/sflphone-common/src/sip/sdp.cpp b/sflphone-common/src/sip/sdp.cpp
index e81b598978..06c3540a88 100644
--- a/sflphone-common/src/sip/sdp.cpp
+++ b/sflphone-common/src/sip/sdp.cpp
@@ -364,7 +364,7 @@ void Sdp::sdp_add_media_description()
     }
 }
 
-
+// @TODO should be a vector
 void Sdp::sdp_add_sdes_attribute (std::string crypto)
 {
 
@@ -386,9 +386,16 @@ void Sdp::sdp_add_sdes_attribute (std::string crypto)
     attribute->value.ptr = (char*) pj_pool_alloc (_pool, attribute->value.slen+1);
     pj_memcpy (attribute->value.ptr, tempbuf, attribute->value.slen+1);
 
-    // add crypto attribute to sdp session
-    if(pjmedia_sdp_attr_add(&(_local_offer->attr_count), _local_offer->attr, attribute) != PJ_SUCCESS){
-        throw sdpException();
+    // get number of media for this SDP
+    int media_count = _local_offer->media_count;
+
+    // add crypto attribute to media
+    for(int i = 0; i < media_count; i++) {
+
+        if(pjmedia_sdp_media_add_attr(_local_offer->media[i], attribute) != PJ_SUCCESS) {
+        // if(pjmedia_sdp_attr_add(&(_local_offer->attr_count), _local_offer->attr, attribute) != PJ_SUCCESS){
+	    throw sdpException();
+	}
     }
 
 }
@@ -670,42 +677,52 @@ void Sdp::get_remote_sdp_media_from_offer (const pjmedia_sdp_session* remote_sdp
 void Sdp::get_remote_sdp_crypto_from_offer (const pjmedia_sdp_session* remote_sdp, CryptoOffer& crypto_offer)
 {
 
-    int i;
-    int attr_count;
+    int i, j;
+    int attr_count, media_count;
     pjmedia_sdp_attr *attribute;
+    pjmedia_sdp_media *media;
 
-    // get the number of attribute for this sdp session
-    attr_count = remote_sdp->attr_count;
+    // get the number of media for this sdp session
+    media_count = remote_sdp->media_count;
 
-    // *r_crypto= pjmedia_sdp_media_find_attr(attribute, &STR_CRYPTO, NULL);
+    // *r_crypto = pjmedia_sdp_media_find_attr(attribute, &STR_CRYPTO, NULL);
 
-    _debug("****************** Parse for Crypto %i ********************", attr_count);
+    _debug("****************** Parse for Crypto ********************");
 
     CryptoOffer remoteOffer;
 
-    // iterate over all atribute
-    for (i = 0; i < attr_count; ++i) {
+    // iterate over all media
+    for (i = 0; i < media_count; ++i) {
 
         _debug("%.*s", (int)remote_sdp->attr[i]->name.slen, remote_sdp->attr[i]->name.ptr);
 	_debug("%.*s", (int)remote_sdp->attr[i]->value.slen, remote_sdp->attr[i]->value.ptr);
 
-	// test if this attribute is a crypto
-        if (pj_stricmp2 (&remote_sdp->attr[i]->name, "crypto") == 0) {
+	// get media
+	media = remote_sdp->media[i];
 
-	    attribute = remote_sdp->attr[i];
+	// get number of attribute for this memdia
+	attr_count = media->attr_count;
 
-	    _debug("****************** Found a Crypto ********************");
-	    std::string attr(attribute->value.ptr, attribute->value.slen);
+	// iterate over all attribute for this media
+        for(j = 0; j < attr_count; j++) {
 
-	    // @TODO our parser require the "acrypto:" to be present
-	    std::string full_attr = "a=crypto:";
-	    full_attr += attr;
+	    attribute = media->attr[i];
 
-	    crypto_offer.push_back(full_attr);
-        }
-    }
+	    // test if this attribute is a crypto
+	    if (pj_stricmp2 (&attribute->name, "crypto") == 0) {
+
+		_debug("****************** Found a Crypto ********************");
+		std::string attr(attribute->value.ptr, attribute->value.slen);
+
+		// @TODO our parser require the "a=crypto:" to be present
+		std::string full_attr = "a=crypto:";
+		full_attr += attr;
 
-    _debug("****************** Did not Found any Crypto ********************");
+		crypto_offer.push_back(full_attr);
+	    }
+
+	}
+    }
     
 }
 
diff --git a/sflphone-common/test/sdesnegotiatorTest.cpp b/sflphone-common/test/sdesnegotiatorTest.cpp
index ebe70c8bac..2db3fdff7b 100644
--- a/sflphone-common/test/sdesnegotiatorTest.cpp
+++ b/sflphone-common/test/sdesnegotiatorTest.cpp
@@ -40,12 +40,12 @@ using std::endl;
 
 void SdesNegotiatorTest::setUp()
 {
-	// Add a new SDES crypto line to be processed. 
+    // Add a new SDES crypto line to be processed. 
     remoteOffer = new std::vector<std::string>();
     remoteOffer->push_back(std::string("a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwd|2^20|1:32"));
-	remoteOffer->push_back(std::string("a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:NzB4d1BINUAvLEw6UzF3WSJ+PSdFcGdUJShpX1Zj|2^20|1:32"));
+    remoteOffer->push_back(std::string("a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:NzB4d1BINUAvLEw6UzF3WSJ+PSdFcGdUJShpX1Zj|2^20|1:32"));
 	
-	// Register the local capabilities.
+    // Register the local capabilities.
     localCapabilities = new std::vector<sfl::CryptoSuiteDefinition>();
     for(int i = 0; i < 3; i++) {
         localCapabilities->push_back(sfl::CryptoSuites[i]);
@@ -136,22 +136,22 @@ void SdesNegotiatorTest::testNegotiation()
  */
 void SdesNegotiatorTest::testComponent()
 {
-	// Register the local capabilities.
+    // Register the local capabilities.
     std::vector<sfl::CryptoSuiteDefinition> * capabilities = new std::vector<sfl::CryptoSuiteDefinition>();
 	
-	//Support all the CryptoSuites
+    //Support all the CryptoSuites
     for(int i = 0; i < 3; i++) {
         capabilities->push_back(sfl::CryptoSuites[i]);
     }
 	
-	// Make sure that if a component is missing, negotiate will fail
-	std::string cryptoLine("a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:|2^20|1:32");
-	std::vector<std::string> * cryptoOffer = new std::vector<std::string>();
+    // Make sure that if a component is missing, negotiate will fail
+    std::string cryptoLine("a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:|2^20|1:32");
+    std::vector<std::string> * cryptoOffer = new std::vector<std::string>();
     cryptoOffer->push_back(cryptoLine);	
 
     sfl::SdesNegotiator * negotiator = new sfl::SdesNegotiator(*capabilities, *cryptoOffer);
 
-	CPPUNIT_ASSERT(negotiator->negotiate() == false);
+    CPPUNIT_ASSERT(negotiator->negotiate() == false);
 }
 
 
-- 
GitLab


From 386cb23a7fe80d9e9d87c8b7eef095ee79853a75 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 18 Jan 2010 12:36:05 -0500
Subject: [PATCH 184/188] [#1722] Fix segfault in debugs

---
 sflphone-common/src/sip/sdp.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/sflphone-common/src/sip/sdp.cpp b/sflphone-common/src/sip/sdp.cpp
index 06c3540a88..cf7749a523 100644
--- a/sflphone-common/src/sip/sdp.cpp
+++ b/sflphone-common/src/sip/sdp.cpp
@@ -364,7 +364,7 @@ void Sdp::sdp_add_media_description()
     }
 }
 
-// @TODO should be a vector
+// @TODO crypto should be a vector of string
 void Sdp::sdp_add_sdes_attribute (std::string crypto)
 {
 
@@ -694,8 +694,8 @@ void Sdp::get_remote_sdp_crypto_from_offer (const pjmedia_sdp_session* remote_sd
     // iterate over all media
     for (i = 0; i < media_count; ++i) {
 
-        _debug("%.*s", (int)remote_sdp->attr[i]->name.slen, remote_sdp->attr[i]->name.ptr);
-	_debug("%.*s", (int)remote_sdp->attr[i]->value.slen, remote_sdp->attr[i]->value.ptr);
+      // _debug("%.*s", (int)remote_sdp->attr[i]->name.slen, remote_sdp->attr[i]->name.ptr);
+      // _debug("%.*s", (int)remote_sdp->attr[i]->value.slen, remote_sdp->attr[i]->value.ptr);
 
 	// get media
 	media = remote_sdp->media[i];
-- 
GitLab


From 30f31c937dbf2aa535ecf7262348dad95cd0daa9 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 18 Jan 2010 12:44:18 -0500
Subject: [PATCH 185/188] [#1722] Fix iteration over all attribute field for
 media

---
 sflphone-common/src/sip/sdp.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sflphone-common/src/sip/sdp.cpp b/sflphone-common/src/sip/sdp.cpp
index cf7749a523..9e9aed149c 100644
--- a/sflphone-common/src/sip/sdp.cpp
+++ b/sflphone-common/src/sip/sdp.cpp
@@ -706,7 +706,7 @@ void Sdp::get_remote_sdp_crypto_from_offer (const pjmedia_sdp_session* remote_sd
 	// iterate over all attribute for this media
         for(j = 0; j < attr_count; j++) {
 
-	    attribute = media->attr[i];
+	    attribute = media->attr[j];
 
 	    // test if this attribute is a crypto
 	    if (pj_stricmp2 (&attribute->name, "crypto") == 0) {
-- 
GitLab


From 26131ec2d59e130d7a681738f3fd9d8b92f9c3cd Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 18 Jan 2010 13:10:21 -0500
Subject: [PATCH 186/188] [#1722] Use a vector<string> instead of a simgle
 string when init crypto attribute

---
 .../src/audio/audiortp/AudioSrtpSession.cpp   | 16 ++++---
 .../src/audio/audiortp/AudioSrtpSession.h     |  3 +-
 sflphone-common/src/sip/sdp.cpp               | 43 +++++++++++--------
 sflphone-common/src/sip/sdp.h                 |  8 ++--
 4 files changed, 41 insertions(+), 29 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index 4715587ff0..7099b807bd 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -62,10 +62,12 @@ AudioSrtpSession::AudioSrtpSession (ManagerImpl * manager, SIPCall * sipcall) :
 }
 
  
-std::string AudioSrtpSession::getLocalCryptoInfo() {
+std::vector<std::string> AudioSrtpSession::getLocalCryptoInfo() {
 
     _debug("Get Cryptographic info from this rtp session");
 
+    std::vector<std::string> crypto_vector;
+
     // @TODO we should return a vector containing supported 
     // cryptographic context tagged 1, 2, 3...
     std::string tag = "1";
@@ -79,13 +81,15 @@ std::string AudioSrtpSession::getLocalCryptoInfo() {
     srtp_keys.append("|2^20|1:32");
 
     // generate crypto attribute
-    std::string crypto = tag.append(" ");
-    crypto += crypto_suite.append(" ");
-    crypto += srtp_keys;
+    std::string crypto_attr = tag.append(" ");
+    crypto_attr += crypto_suite.append(" ");
+    crypto_attr += srtp_keys;
+
+    _debug("%s", crypto_attr.c_str());
 
-    _debug("%s", crypto.c_str());
+    crypto_vector.push_back(crypto_attr);
 
-    return crypto;
+    return crypto_vector;
 }
 
 
diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.h b/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
index 7e94a62bae..d3b8c3dbfd 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.h
@@ -23,6 +23,7 @@
 #include "sip/SdesNegotiator.h"
 
 #include <ccrtp/CryptoContext.h>
+#include <vector>
 
 class SdesNegotiator;
 class ManagerImpl;
@@ -68,7 +69,7 @@ namespace sfl {
 
             AudioSrtpSession(ManagerImpl * manager, SIPCall * sipcall);
 
-	    std::string getLocalCryptoInfo(void);
+	    std::vector<std::string> getLocalCryptoInfo(void);
 
 	    void setRemoteCryptoInfo(sfl::SdesNegotiator& nego);
 
diff --git a/sflphone-common/src/sip/sdp.cpp b/sflphone-common/src/sip/sdp.cpp
index 9e9aed149c..69ab580cc4 100644
--- a/sflphone-common/src/sip/sdp.cpp
+++ b/sflphone-common/src/sip/sdp.cpp
@@ -365,39 +365,46 @@ void Sdp::sdp_add_media_description()
 }
 
 // @TODO crypto should be a vector of string
-void Sdp::sdp_add_sdes_attribute (std::string crypto)
+void Sdp::sdp_add_sdes_attribute (std::vector<std::string>& crypto)
 {
 
     // temporary buffer used to store crypto attribute
     char tempbuf[256];
 
-    // the attribute to add to sdp
-    pjmedia_sdp_attr *attribute = (pjmedia_sdp_attr*) pj_pool_zalloc(_pool, sizeof(pjmedia_sdp_attr));
+    std::vector<std::string>::iterator iter = crypto.begin();
 
-    attribute->name = pj_strdup3(_pool, "crypto");
+    while(iter != crypto.end()) {
 
-    // _debug("crypto from sdp: %s", crypto.c_str());
+        // the attribute to add to sdp
+        pjmedia_sdp_attr *attribute = (pjmedia_sdp_attr*) pj_pool_zalloc(_pool, sizeof(pjmedia_sdp_attr));
+
+	attribute->name = pj_strdup3(_pool, "crypto");
+
+	// _debug("crypto from sdp: %s", crypto.c_str());
 
     
-    int len = pj_ansi_snprintf(tempbuf, sizeof(tempbuf),
-			       "%.*s",(int)crypto.size(), crypto.c_str());
+	int len = pj_ansi_snprintf(tempbuf, sizeof(tempbuf),
+				   "%.*s",(int)(*iter).size(), (*iter).c_str());
  
-    attribute->value.slen = len;
-    attribute->value.ptr = (char*) pj_pool_alloc (_pool, attribute->value.slen+1);
-    pj_memcpy (attribute->value.ptr, tempbuf, attribute->value.slen+1);
+	attribute->value.slen = len;
+	attribute->value.ptr = (char*) pj_pool_alloc (_pool, attribute->value.slen+1);
+	pj_memcpy (attribute->value.ptr, tempbuf, attribute->value.slen+1);
 
-    // get number of media for this SDP
-    int media_count = _local_offer->media_count;
+	// get number of media for this SDP
+	int media_count = _local_offer->media_count;
 
-    // add crypto attribute to media
-    for(int i = 0; i < media_count; i++) {
+	// add crypto attribute to media
+	for(int i = 0; i < media_count; i++) {
 
-        if(pjmedia_sdp_media_add_attr(_local_offer->media[i], attribute) != PJ_SUCCESS) {
-        // if(pjmedia_sdp_attr_add(&(_local_offer->attr_count), _local_offer->attr, attribute) != PJ_SUCCESS){
-	    throw sdpException();
+	    if(pjmedia_sdp_media_add_attr(_local_offer->media[i], attribute) != PJ_SUCCESS) {
+	      // if(pjmedia_sdp_attr_add(&(_local_offer->attr_count), _local_offer->attr, attribute) != PJ_SUCCESS){
+	        throw sdpException();
+	    }
 	}
-    }
 
+
+	iter++;
+    }
 }
 
 
diff --git a/sflphone-common/src/sip/sdp.h b/sflphone-common/src/sip/sdp.h
index d32ceeaa90..afba2e67d4 100644
--- a/sflphone-common/src/sip/sdp.h
+++ b/sflphone-common/src/sip/sdp.h
@@ -108,7 +108,7 @@ class Sdp {
 	/* Set the srtp _master_key
          * @param mk The Master Key of a srtp session.
          */
-        inline void set_srtp_crypto(const std::string& mk) { _srtp_crypto = mk; }
+        inline void set_srtp_crypto(const std::vector<std::string> lc) { _srtp_crypto = lc; }
         
         /*
          * On building an invite outside a dialog, build the local offer and create the
@@ -258,8 +258,8 @@ class Sdp {
 
         std::string _zrtp_hello_hash;
 
-	/** "a=crypto" sdes attribute obtained from AudioSrtpSession */
-	std::string _srtp_crypto;
+	/** "a=crypto" sdes local attributes obtained from AudioSrtpSession */
+	std::vector<std::string> _srtp_crypto;
         
         Sdp(const Sdp&); //No Copy Constructor
         Sdp& operator=(const Sdp&); //No Assignment Operator
@@ -355,7 +355,7 @@ class Sdp {
          *
          * @param media The media to add the srtp attribute to 
 	 */
-	void sdp_add_sdes_attribute(std::string crypto);
+	void sdp_add_sdes_attribute(std::vector<std::string>& crypto);
 
         /* 
          * Adds a zrtp-hash  attribute to 
-- 
GitLab


From 80204bfdf7c9d330788937e24400b56d6f21e01e Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 18 Jan 2010 15:14:51 -0500
Subject: [PATCH 187/188] [#1722] Add negociation to SdesNegotiator

---
 sflphone-common/src/sip/SdesNegotiator.cpp | 137 +++++++++------
 sflphone-common/src/sip/SdesNegotiator.h   | 185 +++++++++++----------
 sflphone-common/src/sip/sdp.cpp            |   1 +
 sflphone-common/src/sip/sipvoiplink.cpp    |   5 +-
 sflphone-common/src/sip/sipvoiplink.h      |   1 +
 5 files changed, 183 insertions(+), 146 deletions(-)

diff --git a/sflphone-common/src/sip/SdesNegotiator.cpp b/sflphone-common/src/sip/SdesNegotiator.cpp
index f9411df3d9..b2d1aafd3e 100644
--- a/sflphone-common/src/sip/SdesNegotiator.cpp
+++ b/sflphone-common/src/sip/SdesNegotiator.cpp
@@ -1,6 +1,7 @@
 /*
  *  Copyright (C) 2009 Savoir-Faire Linux inc.
  *  Author: Pierre-Luc Bacon <pierre-luc.bacon@savoirfairelinux.com>
+ *  Author: Alexandre Savard <alexandre.savard@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
@@ -91,14 +92,15 @@ std::vector<CryptoAttribute *> SdesNegotiator::parse (void)
 
     
     std::vector<std::string>::iterator iter;
-	std::vector<CryptoAttribute *> cryptoAttributeVector;
+    std::vector<CryptoAttribute *> cryptoAttributeVector;
 	
     for (iter = _remoteAttribute.begin(); iter != _remoteAttribute.end(); iter++) {
+
         // Split the line into its component
         // that we will analyze further down.
-		std::vector<std::string> sdesLine;
+        std::vector<std::string> sdesLine;
 	
-        *generalSyntaxPattern << (*iter);
+	*generalSyntaxPattern << (*iter);
         
         try {
             sdesLine = generalSyntaxPattern->split();
@@ -115,42 +117,42 @@ std::vector<CryptoAttribute *> SdesNegotiator::parse (void)
         // and get the tag for this line
         *tagPattern << sdesLine.at (0);
 				
-		std::string tag; 
-		if (tagPattern->matches()) {
-			try {
-				tag = tagPattern->group ("tag");
-			} catch (match_error& exception) {
-				throw parse_error ("Error while parsing the tag field");
-			}
-		} else {
-			return cryptoAttributeVector;
-		}
+	std::string tag; 
+	if (tagPattern->matches()) {
+	try {
+	    tag = tagPattern->group ("tag");
+	} catch (match_error& exception) {
+	    throw parse_error ("Error while parsing the tag field");
+	}
+	} else {
+	    return cryptoAttributeVector;
+	}
 
         // Check if the crypto suite is valid and retreive
         // its value.
         *cryptoSuitePattern << sdesLine.at (1);
 
-		std::string cryptoSuite;
+	std::string cryptoSuite;
 		
-		if (cryptoSuitePattern->matches()) {
-			try {
-				cryptoSuite  = cryptoSuitePattern->group ("cryptoSuite");
-			} catch (match_error& exception) {
-				throw parse_error ("Error while parsing the crypto-suite field");
-			}
-		} else {
-			return cryptoAttributeVector;
-		}
+	if (cryptoSuitePattern->matches()) {
+	    try {
+	        cryptoSuite  = cryptoSuitePattern->group ("cryptoSuite");
+	    } catch (match_error& exception) {
+	        throw parse_error ("Error while parsing the crypto-suite field");
+	    }
+	} else {
+	    return cryptoAttributeVector;
+	}
 	
         // Parse one or more key-params field.
         *keyParamsPattern << sdesLine.at (2);
 
-		std::string srtpKeyInfo;
-		std::string srtpKeyMethod;
-		std::string lifetime;
-		std::string mkiLength;
-		std::string mkiValue;
-		
+	std::string srtpKeyInfo;
+	std::string srtpKeyMethod;
+	std::string lifetime;
+	std::string mkiLength;
+	std::string mkiValue;
+	
         try {
             while (keyParamsPattern->matches()) {
                 srtpKeyMethod = keyParamsPattern->group ("srtpKeyMethod");
@@ -181,38 +183,67 @@ std::vector<CryptoAttribute *> SdesNegotiator::parse (void)
         	}
         } */
 		
-		// Add the new CryptoAttribute to the vector
-		std::cout << (*iter) << std::endl;
-		CryptoAttribute * cryptoAttribute = new CryptoAttribute(tag, cryptoSuite, srtpKeyMethod, srtpKeyInfo, lifetime, mkiValue, mkiLength);
-		cryptoAttributeVector.push_back(cryptoAttribute);
+	// Add the new CryptoAttribute to the vector
+	std::cout << (*iter) << std::endl;
+	CryptoAttribute * cryptoAttribute = new CryptoAttribute(tag, cryptoSuite, srtpKeyMethod, srtpKeyInfo, lifetime, mkiValue, mkiLength);
+	cryptoAttributeVector.push_back(cryptoAttribute);
     }
 
-	return cryptoAttributeVector;
+    return cryptoAttributeVector;
 }
 
 bool SdesNegotiator::negotiate (void)
 {
-	try {
-		std::vector<CryptoAttribute *> cryptoAttributeVector = parse();
+    std::vector<CryptoAttribute *> cryptoAttributeVector = parse();
+    std::vector<CryptoAttribute *>::iterator iter_offer = cryptoAttributeVector.begin();
+
+    std::vector<CryptoSuiteDefinition>::iterator iter_local = _localCapabilities.begin();
+
+    bool negotiationSuccess = false;
+
+    try {
 		
-		std::vector<CryptoAttribute *>::iterator iter;
-		for (iter = cryptoAttributeVector.begin(); iter != cryptoAttributeVector.end(); iter++) {
-			std::cout << "Negotiate tag: " + (*iter)->getTag() << std::endl;
-			std::cout << "Crypto Suite: " + (*iter)->getCryptoSuite() << std::endl;
-			std::cout << "SRTP Key Method: " + (*iter)->getSrtpKeyMethod() << std::endl;
-			std::cout << "SRTP Key Info: " + (*iter)->getSrtpKeyInfo() << std::endl;
-			std::cout << "Lifetime: " + (*iter)->getLifetime() << std::endl;
-			std::cout << "MKI Value: " + (*iter)->getMkiValue() << std::endl;			
-			std::cout << "MKI Length: " + (*iter)->getMkiLength() << std::endl;			
-			
-			delete (*iter);
+        while (!negotiationSuccess && (iter_offer != cryptoAttributeVector.end())) {
+
+	    /*
+	    std::cout << "Negotiate tag: " + (*iter_offer)->getTag() << std::endl;
+	    std::cout << "Crypto Suite: " + (*iter_offer)->getCryptoSuite() << std::endl;
+	    std::cout << "SRTP Key Method: " + (*iter_offer)->getSrtpKeyMethod() << std::endl;
+	    std::cout << "SRTP Key Info: " + (*iter_offer)->getSrtpKeyInfo() << std::endl;
+	    std::cout << "Lifetime: " + (*iter_offer)->getLifetime() << std::endl;
+	    std::cout << "MKI Value: " + (*iter_offer)->getMkiValue() << std::endl;			
+	    std::cout << "MKI Length: " + (*iter_offer)->getMkiLength() << std::endl;			
+	    */
+
+	    iter_local = _localCapabilities.begin();
+
+	    while(!negotiationSuccess && (iter_local != _localCapabilities.end())) {  
+
+	        if((*iter_offer)->getCryptoSuite().compare((*iter_local).name)){
+
+		    negotiationSuccess = true;
+
+		    _cryptoSuite = (*iter_offer)->getCryptoSuite();
+		    _srtpKeyMethod = (*iter_offer)->getSrtpKeyMethod();
+		    _srtpKeyInfo = (*iter_offer)->getSrtpKeyInfo();
+		    _lifetime = (*iter_offer)->getLifetime();
+		    _mkiValue = (*iter_offer)->getMkiValue();
+		    _mkiLength = (*iter_offer)->getMkiLength();
 		}
-		
-	} catch (parse_error& exception) {
-		return false;
-	} catch (match_error& exception) {
-		return false;
+
+		iter_local++;
+	    }
+
+	    delete (*iter_offer);
+	    
+	    iter_offer++;
 	}
 	
-    return true;
+    } catch (parse_error& exception) {
+        return false;
+    } catch (match_error& exception) {
+        return false;
+    }
+	
+    return negotiationSuccess;
 }
diff --git a/sflphone-common/src/sip/SdesNegotiator.h b/sflphone-common/src/sip/SdesNegotiator.h
index d8a568421e..f038d012ba 100644
--- a/sflphone-common/src/sip/SdesNegotiator.h
+++ b/sflphone-common/src/sip/SdesNegotiator.h
@@ -1,6 +1,7 @@
 /*
  *  Copyright (C) 2009 Savoir-Faire Linux inc.
  *  Author: Pierre-Luc Bacon <pierre-luc.bacon@savoirfairelinux.com>
+ *  Author: Alexandre Savard <alexandre.savard@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
@@ -75,42 +76,42 @@ namespace sfl {
           {"F8_128_HMAC_SHA1_80", 128, 112, 48, 31, AESF8Mode, 128, HMACSHA1, 80, 80, 160, 160 } };   
         
 
-	class CryptoAttribute {
+    class CryptoAttribute {
 	
-		public:
-			CryptoAttribute(std::string tag, 
-							std::string cryptoSuite, 
-							std::string srtpKeyMethod, 
-							std::string srtpKeyInfo, 
-							std::string lifetime, 
-							std::string mkiValue, 
-							std::string mkiLength) :
-			tag(tag),
-			cryptoSuite(cryptoSuite),
-			srtpKeyMethod(srtpKeyMethod),
-			srtpKeyInfo(srtpKeyInfo),
-			lifetime(lifetime),
-			mkiValue(mkiValue),
-			mkiLength(mkiLength) {};
-				
+    public:
+    CryptoAttribute(std::string tag, 
+		    std::string cryptoSuite, 
+		    std::string srtpKeyMethod, 
+		    std::string srtpKeyInfo, 
+		    std::string lifetime, 
+		    std::string mkiValue, 
+		    std::string mkiLength) :
+                      tag(tag),
+		      cryptoSuite(cryptoSuite),
+		      srtpKeyMethod(srtpKeyMethod),
+		      srtpKeyInfo(srtpKeyInfo),
+		      lifetime(lifetime),
+		      mkiValue(mkiValue),
+		      mkiLength(mkiLength) {};
+		    
 			
-			inline std::string getTag() { return tag; };
-			inline std::string getCryptoSuite() { return cryptoSuite; };
-			inline std::string getSrtpKeyMethod() { return srtpKeyMethod; };
-			inline std::string getSrtpKeyInfo() { return srtpKeyInfo; };
-			inline std::string getLifetime() { return lifetime; };
-			inline std::string getMkiValue() { return mkiValue; };
-			inline std::string getMkiLength() { return mkiLength; };
+		      inline std::string getTag() { return tag; };
+		      inline std::string getCryptoSuite() { return cryptoSuite; };
+		      inline std::string getSrtpKeyMethod() { return srtpKeyMethod; };
+		      inline std::string getSrtpKeyInfo() { return srtpKeyInfo; };
+		      inline std::string getLifetime() { return lifetime; };
+		      inline std::string getMkiValue() { return mkiValue; };
+		      inline std::string getMkiLength() { return mkiLength; };
 
 		private:
-			std::string tag;
-			std::string cryptoSuite;
-			std::string srtpKeyMethod;
-			std::string srtpKeyInfo;
-			std::string lifetime;
-			std::string mkiValue;
-			std::string mkiLength;
-	};         
+		      std::string tag;
+		      std::string cryptoSuite;
+		      std::string srtpKeyMethod;
+		      std::string srtpKeyInfo;
+		      std::string lifetime;
+		      std::string mkiValue;
+		      std::string mkiLength;
+    };         
 
     class SdesNegotiator 
     {
@@ -131,35 +132,35 @@ namespace sfl {
             
             bool negotiate(void);
 
-			/**
-			 * Return crypto suite after negotiation
-			 */
-			std::string getCryptoSuite(void) { return _cryptoSuite; }
-
-			/**
-			 * Return key method after negotiation (most likely inline:)
-			 */
-			std::string getKeyMethod(void) { return _srtpKeyMethod; }
-
-			/**
-			 * Return crypto suite after negotiation
-			 */
-			std::string getKeyInfo(void) { return _srtpKeyInfo; }
-
-			/**
-			 * Return key lifetime after negotiation
-			 */
-			std::string getLifeTime(void) { return _lifetime; }
-
-			/**
-			 * Return mki value after negotiation
-			 */
-			std::string getMkiValue(void) { return _mkiValue; }
-
-			/**
-			 * Return mki length after negotiation
-			 */
-			std::string getMkiLength(void) { return _mkiLength; }
+	    /**
+	     * Return crypto suite after negotiation
+	     */
+	    std::string getCryptoSuite(void) { return _cryptoSuite; }
+
+	    /**
+	     * Return key method after negotiation (most likely inline:)
+	     */
+	    std::string getKeyMethod(void) { return _srtpKeyMethod; }
+	    
+	    /**
+	     * Return crypto suite after negotiation
+	     */
+	    std::string getKeyInfo(void) { return _srtpKeyInfo; }
+	    
+	    /**
+	     * Return key lifetime after negotiation
+	     */
+	    std::string getLifeTime(void) { return _lifetime; }
+	    
+	    /**
+	     * Return mki value after negotiation
+	     */
+	    std::string getMkiValue(void) { return _mkiValue; }
+	    
+	    /**
+	     * Return mki length after negotiation
+	     */
+	    std::string getMkiLength(void) { return _mkiLength; }
 
         private:
             /**
@@ -171,37 +172,37 @@ namespace sfl {
 
             std::vector<CryptoSuiteDefinition> _localCapabilities;
 
-			/**
-			* Selected crypto suite after negotiation
-			*/
-			std::string _cryptoSuite;
-
-			/**
-			* Selected key method after negotiation (most likely inline:)
-			*/
-			std::string _srtpKeyMethod;
-
-			/**
-			* Selected crypto suite after negotiation
-			*/
-			std::string _srtpKeyInfo;
-
-			/**
-			* Selected key lifetime after negotiation
-			*/
-			std::string _lifetime;
-
-			/**
-			* Selected mki value after negotiation
-			*/
-			std::string _mkiValue;
-
-			/**
-			* Selected mki length after negotiation
-			*/
-			std::string _mkiLength;
-
-			std::vector<CryptoAttribute *> parse(void);
+	    /**
+	     * Selected crypto suite after negotiation
+	     */
+	    std::string _cryptoSuite;
+	    
+	    /**
+	     * Selected key method after negotiation (most likely inline:)
+	     */
+	    std::string _srtpKeyMethod;
+	    
+	    /**
+	     * Selected crypto suite after negotiation
+	     */
+	    std::string _srtpKeyInfo;
+	    
+	    /**
+	     * Selected key lifetime after negotiation
+	     */
+	    std::string _lifetime;
+	    
+	    /**
+	     * Selected mki value after negotiation
+	     */
+	    std::string _mkiValue;
+	    
+	    /**
+	     * Selected mki length after negotiation
+	     */
+	    std::string _mkiLength;
+	    
+	    std::vector<CryptoAttribute *> parse(void);
     };
 }
 #endif
diff --git a/sflphone-common/src/sip/sdp.cpp b/sflphone-common/src/sip/sdp.cpp
index 69ab580cc4..45efccf15b 100644
--- a/sflphone-common/src/sip/sdp.cpp
+++ b/sflphone-common/src/sip/sdp.cpp
@@ -2,6 +2,7 @@
  *  Copyright (C) 2009 Savoir-Faire Linux inc.
  *
  *  Author: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
+ *  Author: Alexandre Savard <alexandre.savard@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
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index ed81c182f9..8d597bc252 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -4,6 +4,7 @@
  *  Author: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
  *  Author: Yun Liu <yun.liu@savoirfairelinux.com>
  *  Author: Pierre-Luc Bacon <pierre-luc.bacon@savoirfairelinux.com>
+ *  Author: Alexandre Savard <alexandre.savard@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
@@ -3247,8 +3248,10 @@ void call_on_media_update (pjsip_inv_session *inv, pj_status_t status)
 	    _debug("SDES negociation successfull \n");
 	    nego_success = true;
 
-	    if(call->getAudioRtp()->getAudioRtpType() == sfl::Sdes)
+	    if(call->getAudioRtp()->getAudioRtpType() == sfl::Sdes) {
+	        _debug("Set remote cryptographic context\n");
 	        call->getAudioRtp()->setRemoteCryptoInfo(sdesnego);
+	    }
 	}
 	else {
 
diff --git a/sflphone-common/src/sip/sipvoiplink.h b/sflphone-common/src/sip/sipvoiplink.h
index 620dc9919e..94b08bdc89 100644
--- a/sflphone-common/src/sip/sipvoiplink.h
+++ b/sflphone-common/src/sip/sipvoiplink.h
@@ -4,6 +4,7 @@
  *  Author: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
  *  Author: Yun Liu <yun.liu@savoirfairelinux.com>
  *  Author: Pierre-Luc Bacon <pierre-luc.bacon@savoirfairelinux.com>
+ *  Author: Alexandre Savard <alexandre.savard@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
-- 
GitLab


From c8e739f1e2574fd69b3c50beca9a8d12719d9917 Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Thu, 21 Jan 2010 09:29:34 -0500
Subject: [PATCH 188/188] [#1722] Added pcre lib to debian control files

---
 .../launchpad/sflphone-common/debian/control.jaunty           | 4 ++--
 .../launchpad/sflphone-common/debian/control.karmic           | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/tools/build-system/launchpad/sflphone-common/debian/control.jaunty b/tools/build-system/launchpad/sflphone-common/debian/control.jaunty
index ba94b329a2..8700719c00 100644
--- a/tools/build-system/launchpad/sflphone-common/debian/control.jaunty
+++ b/tools/build-system/launchpad/sflphone-common/debian/control.jaunty
@@ -2,13 +2,13 @@ Source: sflphone-common
 Maintainer: SavoirFaireLinux Inc <julien.bonjean@savoirfairelinux.com>
 Section: gnome
 Priority: optional
-Build-Depends: debhelper, libgcc1 , autoconf, automake, libpulse-dev, libsamplerate0-dev, libcommoncpp2-dev, libccrtp-dev, libgsm1-dev, libspeex-dev, libtool, libdbus-1-dev, libasound2-dev, libspeexdsp-dev, uuid-dev, libexpat1-dev, libzrtpcpp-dev, libssl-dev
+Build-Depends: debhelper, libgcc1 , autoconf, automake, libpulse-dev, libsamplerate0-dev, libcommoncpp2-dev, libccrtp-dev, libgsm1-dev, libspeex-dev, libtool, libdbus-1-dev, libasound2-dev, libspeexdsp-dev, uuid-dev, libexpat1-dev, libzrtpcpp-dev, libssl-dev, libpcre3-dev
 Standards-Version: 3.7.3
 
 Package: sflphone-common
 Priority: optional
 Architecture: any
-Depends: libsamplerate0, libexpat1 , libc6, libcommoncpp2-1.6-0, libgsm1, libspeex1, libdbus-1-3, libasound2, libpulse0, libccrtp1-1.6-1, libspeexdsp1, libzrtpcpp-1.3-0, libssl0.9.8
+Depends: libsamplerate0, libexpat1 , libc6, libcommoncpp2-1.6-0, libgsm1, libspeex1, libdbus-1-3, libasound2, libpulse0, libccrtp1-1.6-1, libspeexdsp1, libzrtpcpp-1.3-0, libssl0.9.8, libpcre3
 Replaces: sflphone
 Conflicts: sflphone
 Homepage: http://www.sflphone.org
diff --git a/tools/build-system/launchpad/sflphone-common/debian/control.karmic b/tools/build-system/launchpad/sflphone-common/debian/control.karmic
index 47e571b4f2..177306ed35 100644
--- a/tools/build-system/launchpad/sflphone-common/debian/control.karmic
+++ b/tools/build-system/launchpad/sflphone-common/debian/control.karmic
@@ -2,13 +2,13 @@ Source: sflphone-common
 Maintainer: SavoirFaireLinux Inc <julien.bonjean@savoirfairelinux.com>
 Section: gnome
 Priority: optional
-Build-Depends: debhelper, libgcc1 , autoconf, automake, libpulse-dev, libsamplerate0-dev, libcommoncpp2-dev, libccrtp-dev, libgsm1-dev, libspeex-dev, libtool, libdbus-1-dev, libasound2-dev, libspeexdsp-dev, uuid-dev, libexpat1-dev, libzrtpcpp-dev, libssl-dev
+Build-Depends: debhelper, libgcc1 , autoconf, automake, libpulse-dev, libsamplerate0-dev, libcommoncpp2-dev, libccrtp-dev, libgsm1-dev, libspeex-dev, libtool, libdbus-1-dev, libasound2-dev, libspeexdsp-dev, uuid-dev, libexpat1-dev, libzrtpcpp-dev, libssl-dev, libpcre3-dev
 Standards-Version: 3.7.3
 
 Package: sflphone-common
 Priority: optional
 Architecture: any
-Depends: libsamplerate0, libexpat1 , libc6, libccgnu2-1.7-0, libgsm1, libspeex1, libdbus-1-3, libasound2, libpulse0, libccrtp1-1.7-0, libspeexdsp1, libzrtpcpp-1.4-0, libssl0.9.8
+Depends: libsamplerate0, libexpat1 , libc6, libccgnu2-1.7-0, libgsm1, libspeex1, libdbus-1-3, libasound2, libpulse0, libccrtp1-1.7-0, libspeexdsp1, libzrtpcpp-1.4-0, libssl0.9.8, libpcre3
 Replaces: sflphone
 Conflicts: sflphone
 Homepage: http://www.sflphone.org
-- 
GitLab