diff --git a/CMakeLists.txt b/CMakeLists.txt
index d4d620c84..3b8f861b6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -46,7 +46,6 @@ option(ENABLE_DAEMON "Enable the linphone daemon interface." YES)
option(ENABLE_DATE "Use build date in internal version number." NO)
option(ENABLE_DEBUG_LOGS "Turn on or off debug level logs." NO)
option(ENABLE_DOC "Enable documentation generation with Doxygen." YES)
-option(ENABLE_GTK_UI "Turn on or off compilation of gtk interface." NO)
option(ENABLE_JAVADOC "Add a target to generate documentation for Java API" NO)
option(ENABLE_LDAP "Enable LDAP support." NO)
option(ENABLE_NLS "Build with internationalisation support" YES)
@@ -160,25 +159,6 @@ if(ENABLE_NOTIFY)
set(ENABLE_NOTIFY OFF CACHE BOOL "Enable libnotify support." FORCE)
endif()
endif()
-if(ENABLE_GTK_UI)
- if(WIN32)
- set(GTK2_ADDITIONAL_SUFFIXES "../lib/glib-2.0/include" "../lib/gtk-2.0/include")
- endif()
- find_package(GTK2 2.18 REQUIRED gtk)
- if(ENABLE_ASSISTANT AND GTK2_VERSION VERSION_LESS 2.22)
- message(WARNING "You need at least GTK 2.22 to enable the assistant")
- set(ENABLE_ASSISTANT OFF CACHE BOOL "Turn on assistant compiling." FORCE)
- endif()
- if(APPLE)
- find_package(GtkMacIntegration)
- if(GTKMACINTEGRATION_FOUND)
- set(HAVE_GTK_OSX 1)
- add_definitions("${GTKMACINTEGRATION_CPPFLAGS}")
- else()
- message(WARNING "gtk-mac-integration not found. Please install gtk-osx-application package.")
- endif()
- endif()
-endif()
if(ENABLE_ASSISTANT)
set(BUILD_WIZARD 1)
endif()
@@ -368,11 +348,6 @@ endif()
if(ENABLE_DAEMON)
add_subdirectory(daemon)
endif()
-if(ENABLE_GTK_UI)
- add_subdirectory(gtk)
- add_subdirectory(pixmaps)
- add_subdirectory(po)
-endif()
if(ENABLE_TOOLS)
add_subdirectory(tools)
endif()
diff --git a/cmake/FindGtkMacIntegration.cmake b/cmake/FindGtkMacIntegration.cmake
deleted file mode 100644
index 17c8efc8c..000000000
--- a/cmake/FindGtkMacIntegration.cmake
+++ /dev/null
@@ -1,54 +0,0 @@
-############################################################################
-# FindGtkMacIntegration.txt
-# Copyright (C) 2015 Belledonne Communications, Grenoble France
-#
-############################################################################
-#
-# 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 2
-# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-############################################################################
-#
-# - Find the libgtkmacintegration include file and library
-#
-# GTKMACINTEGRATION_FOUND - system has libgtkmacintegration
-# GTKMACINTEGRATION_INCLUDE_DIRS - the libgtkmacintegration include directory
-# GTKMACINTEGRATION_LIBRARIES - The libraries needed to use libgtkmacintegration
-# GTKMACINTEGRATION_CPPFLAGS - The cflags needed to use libgtkmacintegration
-
-set(_GTKMACINTEGRATION_ROOT_PATHS
- ${CMAKE_INSTALL_PREFIX}
-)
-
-find_path(GTKMACINTEGRATION_INCLUDE_DIRS
- NAMES gtkosxapplication.h
- HINTS _GTKMACINTEGRATION_ROOT_PATHS
- PATH_SUFFIXES include/gtkmacintegration-gtk2 include/gtkmacintegration
-)
-
-find_library(GTKMACINTEGRATION_LIBRARIES
- NAMES gtkmacintegration-gtk2 gtkmacintegration
- HINTS ${_GTKMACINTEGRATION_ROOT_PATHS}
- PATH_SUFFIXES bin lib
-)
-
-set(GTKMACINTEGRATION_CPPFLAGS "-DMAC_INTEGRATION")
-
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(GTKMACINTEGRATION
- DEFAULT_MSG
- GTKMACINTEGRATION_INCLUDE_DIRS GTKMACINTEGRATION_LIBRARIES GTKMACINTEGRATION_CPPFLAGS
-)
-
-mark_as_advanced(GTKMACINTEGRATION_INCLUDE_DIRS GTKMACINTEGRATION_LIBRARIES GTKMACINTEGRATION_CPPFLAGS)
diff --git a/gtk/.gitignore b/gtk/.gitignore
deleted file mode 100644
index b1b1529c6..000000000
--- a/gtk/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-linphone
-.libs
-.deps
-linphone.res
-
diff --git a/gtk/CMakeLists.txt b/gtk/CMakeLists.txt
deleted file mode 100644
index a30704778..000000000
--- a/gtk/CMakeLists.txt
+++ /dev/null
@@ -1,133 +0,0 @@
-############################################################################
-# CMakeLists.txt
-# Copyright (C) 2014 Belledonne Communications, Grenoble France
-#
-############################################################################
-#
-# 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 2
-# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-############################################################################
-
-set(UI_FILES
- about.ui
- audio_assistant.ui
- buddylookup.ui
- callee_frame.ui
- call_logs.ui
- call_statistics.ui
- chatroom_frame.ui
- conf_frame.ui
- config-uri.ui
- contact.ui
- dscp_settings.ui
- in_call_frame.ui
- keypad.ui
- ldap.ui
- login_frame.ui
- log.ui
- main.ui
- parameters.ui
- password.ui
- provisioning-fetch.ui
- setup_wizard.ui
- sip_account.ui
- tunnel_config.ui
- waiting.ui
-)
-
-set(PIXMAPS stock_people.png)
-set(LICENSE ../COPYING)
-
-set(SOURCE_FILES
- audio_assistant.c
- buddylookup.c
- calllogs.c
- chat.c
- conference.c
- config-fetching.c
- friendlist.c
- incall_view.c
- logging.c
- loginframe.c
- main.c
- propertybox.c
- singleinstance.c
- status_icon.c
- status_notifier.c
- support.c
- update.c
- utils.c
- videowindow.c
-)
-
-if(ENABLE_ASSISTANT)
- list(APPEND SOURCE_FILES setupwizard.c)
-endif()
-if(WIN32)
- list(APPEND SOURCE_FILES linphone.rc)
-endif()
-
-set(OBJC_FILES)
-if (APPLE)
- list(APPEND OBJC_FILES mac.m)
-endif()
-
-bc_apply_compile_flags(OBJC_FILES STRICT_OPTIONS_CPP STRICT_OPTIONS_OBJC)
-bc_apply_compile_flags(SOURCE_FILES STRICT_OPTIONS_CPP STRICT_OPTIONS_C)
-
-if(WIN32)
- add_executable(linphone-gtk WIN32 ${SOURCE_FILES})
-else()
- add_executable(linphone-gtk ${SOURCE_FILES} ${OBJC_FILES})
-endif()
-set_target_properties(linphone-gtk PROPERTIES OUTPUT_NAME linphone LINKER_LANGUAGE CXX)
-target_include_directories(linphone-gtk PUBLIC ${GTK2_INCLUDE_DIRS} ${INTL_INCLUDE_DIRS})
-target_link_libraries(linphone-gtk ${LINPHONE_LIBS_FOR_TOOLS} ${GTK2_LIBRARIES} ${BCTOOLBOX_CORE_LIBRARIES} ${ORTP_LIBRARIES} ${MEDIASTREAMER2_LIBRARIES})
-set_target_properties(linphone-gtk PROPERTIES LINK_FLAGS "${LINPHONE_LDFLAGS}")
-if(INTL_FOUND)
- target_link_libraries(linphone-gtk ${INTL_LIBRARIES})
-endif()
-if(WIN32)
- target_link_libraries(linphone-gtk Wininet)
-endif()
-if(ENABLE_NOTIFY)
- target_include_directories(linphone-gtk PUBLIC ${NOTIFY_INCLUDE_DIRS})
- target_link_libraries(linphone-gtk ${NOTIFY_LIBRARIES})
-endif()
-if(HAVE_LIBUDEV_H)
- target_link_libraries(linphone-gtk udev)
-endif()
-if(GTKMACINTEGRATION_FOUND)
- target_include_directories(linphone-gtk PUBLIC ${GTKMACINTEGRATION_INCLUDE_DIRS})
- target_link_libraries(linphone-gtk ${GTKMACINTEGRATION_LIBRARIES})
-endif()
-if(APPLE)
- target_link_libraries(linphone-gtk "-framework Cocoa")
-endif()
-
-set_target_properties(linphone-gtk PROPERTIES XCODE_ATTRIBUTE_WARNING_CFLAGS "")
-
-
-install(TARGETS linphone-gtk
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
- PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
-)
-
-install(FILES ${UI_FILES} ${PIXMAPS} ${LICENSE}
- DESTINATION ${PACKAGE_DATA_DIR}/linphone
- PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
-)
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
deleted file mode 100644
index 82439e3ab..000000000
--- a/gtk/Makefile.am
+++ /dev/null
@@ -1,118 +0,0 @@
-UI_FILES= about.ui \
- main.ui \
- password.ui \
- contact.ui \
- parameters.ui \
- sip_account.ui \
- call_logs.ui \
- keypad.ui \
- log.ui \
- buddylookup.ui \
- tunnel_config.ui \
- waiting.ui \
- dscp_settings.ui \
- call_statistics.ui \
- ldap.ui \
- config-uri.ui \
- provisioning-fetch.ui \
- audio_assistant.ui \
- chatroom_frame.ui \
- in_call_frame.ui \
- conf_frame.ui \
- callee_frame.ui \
- login_frame.ui \
- setup_wizard.ui
-
-PIXMAPS= \
- stock_people.png
-
-LINPHONE_ICO_RC_FILE=linphone.rc
-LINPHONE_ICO_FILE=linphone.ico
-
-EXTRA_DIST= \
- linphone.iss \
- $(LINPHONE_ICO_RC_FILE) \
- $(LINPHONE_ICO_FILE)
- gtkrc \
- gtkrc.mac
-
-if BUILD_GTK_UI
-
-BUILT_SOURCES=version_date.h
-
-bin_PROGRAMS=linphone
-
-linphone_SOURCES= \
- main.c \
- propertybox.c \
- friendlist.c \
- support.c \
- chat.c \
- calllogs.c \
- logging.c \
- update.c \
- buddylookup.c \
- utils.c \
- incall_view.c \
- loginframe.c \
- singleinstance.c \
- conference.c \
- config-fetching.c \
- audio_assistant.c \
- videowindow.c \
- status_icon.c status_icon.h \
- linphone.h regex.h
-
-if BUILD_WIZARD
-linphone_SOURCES+= \
- setupwizard.c setupwizard.h
-endif
-
-if BUILD_STATUS_NOTIFIER
-linphone_SOURCES+= \
- status_notifier.c \
- status_notifier.h
-endif
-
-
-linphone_LDADD= $(top_builddir)/coreapi/liblinphone.la \
- $(LIBGTK_LIBS) $(NOTIFY1_LIBS) $(NOTIFY4_LIBS) $(LIBGTKMAC_LIBS) $(INTLLIBS) $(SQLITE3_LIBS) $(BELLESIP_LIBS) $(BCTOOLBOX_LIBS)
-
-
-if BUILD_WIN32
-
-linphone.res: $(LINPHONE_ICO_RC_FILE) $(LINPHONE_ICO_FILE)
- $(WINDRES) $(srcdir)/$(LINPHONE_ICO_RC_FILE) -O coff -o linphone.res
-
-linphone_LDADD+=linphone.res -lwininet
-linphone_LDFLAGS=-Wl,--export-all-symbols -mwindows
-else
-linphone_LDFLAGS=-export-dynamic
-endif
-
-uidir=$(datadir)/linphone
-dist_ui_DATA=$(UI_FILES) $(PIXMAPS) $(top_srcdir)/COPYING
-
-if BUILD_MACOS
-linphone_SOURCES+=mac.m
-linphone_LDFLAGS+=-framework Cocoa
-endif
-endif
-
-
-AM_CPPFLAGS= -I$(top_srcdir)/include/ -I$(top_builddir)/coreapi/ -I$(top_srcdir)/coreapi/ \
- $(MEDIASTREAMER_CFLAGS) \
- $(ORTP_CFLAGS) $(BELLESIP_CFLAGS) \
- $(STRICT_OPTIONS) $(STRICT_OPTIONS_CC) $(LIBGTK_CFLAGS) $(LIBGTKMAC_CFLAGS) $(IPV6_CFLAGS) \
- $(TUNNEL_CFLAGS) \
- $(SQLITE3_CFLAGS) \
- $(BCTOOLBOX_CFLAGS)
-
-version_date.h: $(top_srcdir)/configure.ac
- echo "#define LINPHONE_VERSION_DATE \"$(VERSION)-`date +%y%m%d`\"" > $@
-
-newdate:
- rm -f version_date.h
-
-CLEANFILES=version_date.h linphone.res
-
diff --git a/gtk/about.ui b/gtk/about.ui
deleted file mode 100644
index d647724b2..000000000
--- a/gtk/about.ui
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
-
-
-
-
diff --git a/gtk/audio_assistant.c b/gtk/audio_assistant.c
deleted file mode 100644
index b9f6d7241..000000000
--- a/gtk/audio_assistant.c
+++ /dev/null
@@ -1,551 +0,0 @@
-/*
-linphone, gtk-glade interface.
-Copyright (C) 2008 Simon MORLAT (simon.morlat@linphone.org)
-
-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 2
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include
-
-#include "linphone.h"
-#include "linphone/core_utils.h"
-#include "mediastreamer2/mediastream.h"
-#include "mediastreamer2/msvolume.h"
-
-static GtkWidget *audio_assistant=NULL;
-static void prepare(GtkAssistant *w);
-
-GtkWidget *get_widget_from_assistant(const char *name){
- return (GtkWidget *)g_object_get_data(G_OBJECT(audio_assistant),name);
-}
-
-static void set_widget_to_assistant(const char *name,GtkWidget *w){
- g_object_set_data(G_OBJECT(audio_assistant),name,w);
-}
-
-static void update_record_button(gboolean is_visible){
- GtkWidget *rec_button = get_widget_from_assistant("rec_button");
- gtk_widget_set_sensitive(rec_button,is_visible);
-}
-
-#if 0
-static void activate_record_button(gboolean is_active){
- GtkWidget *rec_button = get_widget_from_assistant("rec_button");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rec_button),is_active);
-}
-#endif
-
-static void update_play_button(gboolean is_visible){
- GtkWidget *play_button = get_widget_from_assistant("play_button");
- gtk_widget_set_sensitive(play_button,is_visible);
-}
-
-static void activate_play_button(gboolean is_active){
- GtkWidget *play_button = get_widget_from_assistant("play_button");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(play_button),is_active);
-}
-
-static gboolean deactivate_play_button(void){
- activate_play_button(FALSE);
- return FALSE;
-}
-
-static gchar *get_record_file(void){
- char filename[256]={0};
- char date[64]={0};
- time_t curtime=time(NULL);
- struct tm loctime;
-
- #ifdef _WIN32
- loctime=*localtime(&curtime);
- #else
- localtime_r(&curtime,&loctime);
- #endif
- snprintf(date,sizeof(date)-1,"%i%02i%02i-%02i%02i%2i",loctime.tm_year+1900,loctime.tm_mon+1,loctime.tm_mday, loctime.tm_hour, loctime.tm_min, loctime.tm_sec);
-
- snprintf(filename,sizeof(filename)-1,"record-%s.wav",date);
- return g_build_path(G_DIR_SEPARATOR_S,g_get_tmp_dir(),filename,NULL);;
-}
-
-static float audio_stream_get_record_volume(AudioStream *st){
- if (st && st->volsend){
- float vol=0;
- ms_filter_call_method(st->volsend,MS_VOLUME_GET,&vol);
- return vol;
- }
- return LINPHONE_VOLUME_DB_LOWEST;
-}
-
-static float audio_stream_get_max_volume(AudioStream *st){
- if (st && st->volsend){
- float vol=0;
- ms_filter_call_method(st->volsend,MS_VOLUME_GET_MAX,&vol);
- return vol;
- }
- return LINPHONE_VOLUME_DB_LOWEST;
-}
-
-static gboolean update_audio_label(volume_ctx_t *ctx){
- float volume_db=ctx->get_volume(ctx->data);
- gchar *result;
- if (volume_db < -20) result = _("No voice detected");
- else if (volume_db <= -10) result = _("Too low");
- else if (volume_db < -6) result = _("Good");
- else result = _("Too loud");
- g_message("volume_max_db=%f, text=%s",volume_db,result);
- gtk_label_set_text(GTK_LABEL(ctx->widget),result);
- return TRUE;
-}
-
-static void on_audio_label_destroy(guint task_id){
- g_source_remove(task_id);
-}
-
-void linphone_gtk_init_audio_label(GtkWidget *w, get_volume_t get_volume, void *data){
- guint task_id=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w),"task_id_t"));
- if (task_id==0){
- volume_ctx_t *ctx=g_new(volume_ctx_t,1);
- ctx->widget=w;
- ctx->get_volume=get_volume;
- ctx->data=data;
- ctx->last_value=0;
- g_object_set_data_full(G_OBJECT(w),"ctx_t",ctx,g_free);
- task_id=g_timeout_add(200,(GSourceFunc)update_audio_label,ctx);
- g_object_set_data_full(G_OBJECT(w),"task_id_t",GINT_TO_POINTER(task_id),(GDestroyNotify)on_audio_label_destroy);
- }
-}
-
-void linphone_gtk_uninit_audio_label(GtkWidget *w){
- guint task_id=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w),"task_id_t"));
- if (task_id!=0){
- g_object_set_data(G_OBJECT(w),"ctx_t",NULL);
- g_object_set_data(G_OBJECT(w),"task_id_t",NULL);
- }
-}
-
-static void playback_device_changed(GtkWidget *w){
- gchar *sel=gtk_combo_box_get_active_text(GTK_COMBO_BOX(w));
- linphone_core_set_playback_device(linphone_gtk_get_core(),sel);
- g_free(sel);
-}
-
-static void capture_device_changed(GtkWidget *capture_device){
- gchar *sel;
- GtkWidget *mic_audiolevel;
- GtkWidget *label_audiolevel;
- GtkWidget *assistant=gtk_widget_get_toplevel(capture_device);
- AudioStream *audio_stream;
-
- mic_audiolevel = get_widget_from_assistant("mic_audiolevel");
- label_audiolevel = get_widget_from_assistant("label_audiolevel");
- audio_stream = (AudioStream *) g_object_get_data(G_OBJECT(assistant),"stream");
- sel = gtk_combo_box_get_active_text(GTK_COMBO_BOX(capture_device));
- linphone_core_set_capture_device(linphone_gtk_get_core(),sel);
- linphone_gtk_uninit_audio_meter(mic_audiolevel);
- linphone_gtk_uninit_audio_label(label_audiolevel);
- audio_stream_stop(audio_stream);
- g_free(sel);
- /*now restart the audio stream*/
- prepare(GTK_ASSISTANT(assistant));
-}
-
-static void dialog_click(GtkWidget *dialog, guint response_id, GtkWidget *page){
- switch(response_id){
- case GTK_RESPONSE_YES:
- gtk_assistant_set_page_complete(GTK_ASSISTANT(audio_assistant),page,TRUE);
- break;
- default:
- break;
- }
- gtk_widget_destroy(dialog);
-}
-
-static void calibration_finished(LinphoneCore *lc, LinphoneEcCalibratorStatus status, int delay, void *data){
- GtkWidget * dialog;
- GtkWidget *speaker_page;
- ms_message("echo calibration finished %s.",status==LinphoneEcCalibratorDone ? "successfully" : "with faillure");
- if (status==LinphoneEcCalibratorDone) ms_message("Measured delay is %i",delay);
-
- speaker_page = get_widget_from_assistant("speaker_page");
-
- dialog = gtk_message_dialog_new (
- GTK_WINDOW(audio_assistant),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_QUESTION,
- GTK_BUTTONS_YES_NO,
- "%s",_("Did you hear three beeps ?"));
-
- g_signal_connect(G_OBJECT (dialog), "response",
- G_CALLBACK (dialog_click),speaker_page);
- gtk_widget_show(dialog);
-}
-
-void linphone_gtk_start_sound(GtkWidget *w){
- LinphoneCore *lc = linphone_gtk_get_core();
- linphone_core_start_echo_calibration(lc,calibration_finished,NULL,NULL,NULL);
-}
-
-static gboolean linphone_gtk_stop_record(gpointer data){
- AudioStream *stream = (AudioStream *)g_object_get_data(G_OBJECT(audio_assistant),"record_stream");
- if(stream != NULL){
- audio_stream_stop(stream);
- g_object_set_data(G_OBJECT(audio_assistant),"record_stream",NULL);
- }
- update_record_button(FALSE);
- update_play_button(TRUE);
- return FALSE;
-}
-
-
-void linphone_gtk_start_record_sound(GtkWidget *w, gpointer data){
- LinphoneCore *lc = linphone_gtk_get_core();
- MSFactory *factory = linphone_core_get_ms_factory(lc);
- AudioStream *stream = NULL;
- MSSndCardManager *manager = ms_factory_get_snd_card_manager(factory);
- gboolean active=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w));
- gint timeout_id;
-
- if(active){
- gchar *path = get_record_file();
- stream=audio_stream_new(factory, 8888, 8889, FALSE);
- if(stream != NULL){
- audio_stream_start_full(stream,&av_profile,"127.0.0.1",8888,"127.0.0.1",8889,0,0,NULL,
- path,NULL,ms_snd_card_manager_get_card(manager,linphone_core_get_capture_device(lc)),FALSE);
- g_object_set_data(G_OBJECT(audio_assistant),"record_stream",stream);
- }
- timeout_id = gtk_timeout_add(6000,(GtkFunction)linphone_gtk_stop_record,NULL);
- g_object_set_data(G_OBJECT(audio_assistant),"timeout_id",GINT_TO_POINTER(timeout_id));
- g_object_set_data(G_OBJECT(audio_assistant),"path",path);
- } else {
- stream = (AudioStream *)g_object_get_data(G_OBJECT(audio_assistant),"record_stream");
- timeout_id = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(audio_assistant),"timeout_id"));
- gtk_timeout_remove(timeout_id);
- if(stream != NULL){
- audio_stream_stop(stream);
- g_object_set_data(G_OBJECT(audio_assistant),"record_stream",NULL);
- }
- update_record_button(FALSE);
- update_play_button(TRUE);
- }
-}
-
-static void endoffile_cb(void *ud, MSFilter *f, unsigned int ev,void * arg){
- switch (ev) {
- case MS_PLAYER_EOF: {
- ms_message("EndOfFile received");
- /*workaround for a mediastreamer2 bug. Don't deactivate the play button, because it will stop the graph from the end of file callback,
- * which is sometimes crashing. On master branch it is fixed in mediastreamer2, the workaround is only valid in 3.8.x branch*/
- g_timeout_add(0, (GSourceFunc)deactivate_play_button, NULL);
- break;
- }
- break;
- }
-}
-
-void linphone_gtk_start_play_record_sound(GtkWidget *w,gpointer data){
- LinphoneCore *lc = linphone_gtk_get_core();
- MSFactory *factory = linphone_core_get_ms_factory(lc);
- gboolean active=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w));
- AudioStream *stream = NULL;
- MSSndCardManager *manager = ms_factory_get_snd_card_manager(factory);
-
- if(active){
- gchar *path = g_object_get_data(G_OBJECT(audio_assistant),"path");
- stream=audio_stream_new(factory, 8888, 8889, FALSE);
- if(path != NULL){
- audio_stream_start_full(stream,&av_profile,"127.0.0.1",8888,"127.0.0.1",8889,0,0,path,
- NULL,ms_snd_card_manager_get_card(manager,linphone_core_get_playback_device(lc)),NULL,FALSE);
- ms_filter_add_notify_callback(stream->soundread,endoffile_cb,stream,FALSE);
- g_object_set_data(G_OBJECT(audio_assistant),"play_stream",stream);
- }
- } else {
- stream = (AudioStream *)g_object_get_data(G_OBJECT(audio_assistant),"play_stream");
- if(stream != NULL){
- audio_stream_stop(stream);
- g_object_set_data(G_OBJECT(audio_assistant),"play_stream",NULL);
- }
- }
-}
-
-void display_popup(GtkMessageType type,const gchar *message){
- GtkWidget *dialog = gtk_message_dialog_new (GTK_WINDOW(audio_assistant),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- type,
- GTK_BUTTONS_CLOSE,
- "%s",
- (const gchar*)message);
- /* Destroy the dialog when the user responds to it (e.g. clicks a button) */
- g_signal_connect_swapped (G_OBJECT (dialog), "response",
- G_CALLBACK (gtk_widget_destroy),
- G_OBJECT (dialog));
- gtk_widget_show(dialog);
-}
-
-static void open_mixer(void){
- GError *error = NULL;
-
-#ifdef _WIN32
- if(!g_spawn_command_line_async("control mmsys.cpl",&error)){
- display_popup(GTK_MESSAGE_WARNING,_("Sound preferences not found "));
- g_error_free(error);
- }
-#elif __APPLE__
- if(!g_spawn_command_line_async("open /System/Library/PreferencePanes/Sound.prefPane",&error)){
- display_popup(GTK_MESSAGE_WARNING,_("Sound preferences not found "));
- g_error_free(error);
- }
-#else
- if(!g_spawn_command_line_async("gnome-volume-control",&error)){
- if(!g_spawn_command_line_async("gnome-control-center sound",&error)){
- if(!g_spawn_command_line_async("kmix",&error)){
- if(!g_spawn_command_line_async("mate-volume-control",&error)){
- if(!g_spawn_command_line_async("xterm alsamixer",&error)){
- display_popup(GTK_MESSAGE_WARNING,_("Cannot launch system sound control "));
- g_error_free(error);
- }
- }
- }
- }
- }
-#endif
-}
-
-static GtkWidget *create_intro(void){
- GtkWidget *vbox=gtk_vbox_new(FALSE,2);
- GtkWidget *label=gtk_label_new(_("Welcome!\nThis assistant will help you to configure audio settings for Linphone"));
- gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, TRUE, 2);
- gtk_widget_show_all(vbox);
- return vbox;
-}
-
-static GtkWidget *create_mic_page(void){
- GtkWidget *vbox=gtk_table_new(3,2,FALSE);
- LinphoneCore *lc=linphone_gtk_get_core();
- const char **sound_devices;
- GtkWidget *labelMicChoice=gtk_label_new(_("Capture device"));
- GtkWidget *labelMicLevel=gtk_label_new(_("Recorded volume"));
- GtkWidget *mic_audiolevel=gtk_progress_bar_new();
- GtkWidget *capture_device=gtk_combo_box_new();
- GtkWidget *box = gtk_vbox_new(FALSE,0);
- GtkWidget *label_audiolevel=gtk_label_new(_("No voice"));
- GtkWidget *mixer_button=gtk_button_new_with_label(_("System sound preferences"));
- GtkWidget *image;
-
- image=gtk_image_new_from_stock(GTK_STOCK_PREFERENCES,GTK_ICON_SIZE_MENU);
- gtk_button_set_image(GTK_BUTTON(mixer_button),image);
-
- gtk_box_pack_start(GTK_BOX(box),mic_audiolevel,TRUE,TRUE,1);
- gtk_box_pack_start(GTK_BOX(box),label_audiolevel,FALSE,FALSE,1);
-
- gtk_table_attach_defaults(GTK_TABLE(vbox), labelMicChoice, 0, 1, 0, 1);
- gtk_table_attach_defaults(GTK_TABLE(vbox), capture_device, 1, 2, 0, 1);
- gtk_table_attach_defaults(GTK_TABLE(vbox), labelMicLevel, 0, 1, 1, 2);
- gtk_table_attach_defaults(GTK_TABLE(vbox), box, 1, 2, 1, 2);
- gtk_table_attach(GTK_TABLE(vbox), mixer_button, 0, 2, 2, 3, GTK_SHRINK, GTK_SHRINK, 0,0);
-
- gtk_table_set_row_spacings(GTK_TABLE(vbox),10);
-
- set_widget_to_assistant("mic_audiolevel",mic_audiolevel);
- set_widget_to_assistant("label_audiolevel",label_audiolevel);
-
- sound_devices=linphone_core_get_sound_devices(lc);
- linphone_gtk_fill_combo_box(capture_device, sound_devices,
- linphone_core_get_capture_device(lc), CAP_CAPTURE);
- gtk_widget_show_all(vbox);
-
- g_signal_connect(G_OBJECT(capture_device),"changed",(GCallback)capture_device_changed,capture_device);
- g_signal_connect(G_OBJECT(mixer_button),"clicked",(GCallback)open_mixer,vbox);
-
- return vbox;
-}
-
-static GtkWidget *create_speaker_page(void){
- GtkWidget *vbox=gtk_table_new(3,2,FALSE);
- LinphoneCore *lc=linphone_gtk_get_core();
-
- GtkWidget *labelSpeakerChoice=gtk_label_new(_("Playback device"));
- GtkWidget *labelSpeakerLevel=gtk_label_new(_("Play three beeps"));
- GtkWidget *spk_button=gtk_button_new_from_stock(GTK_STOCK_MEDIA_PLAY);
- GtkWidget *playback_device=gtk_combo_box_new();
- GtkWidget *mixer_button=gtk_button_new_with_label(_("System sound preferences"));
- GtkWidget *image;
- const char **sound_devices;
-
- image=gtk_image_new_from_stock(GTK_STOCK_PREFERENCES,GTK_ICON_SIZE_MENU);
- gtk_button_set_image(GTK_BUTTON(mixer_button),image);
-
- gtk_table_attach_defaults(GTK_TABLE(vbox), labelSpeakerChoice, 0, 1, 0, 1);
- gtk_table_attach(GTK_TABLE(vbox), playback_device, 1, 2, 0, 1, GTK_SHRINK, GTK_SHRINK, 0,0);
- gtk_table_attach_defaults(GTK_TABLE(vbox), labelSpeakerLevel, 0, 1, 1, 2);
- gtk_table_attach(GTK_TABLE(vbox), spk_button, 1, 2, 1, 2, GTK_SHRINK, GTK_SHRINK, 0,0);
- gtk_table_attach(GTK_TABLE(vbox), mixer_button, 0, 2, 2, 3, GTK_SHRINK, GTK_SHRINK, 0,0);
-
- gtk_table_set_row_spacings(GTK_TABLE(vbox),10);
-
- sound_devices=linphone_core_get_sound_devices(lc);
- linphone_gtk_fill_combo_box(playback_device, sound_devices,
- linphone_core_get_playback_device(lc),CAP_PLAYBACK);
- gtk_widget_show_all(vbox);
-
- set_widget_to_assistant("speaker_page",vbox);
- g_signal_connect(G_OBJECT(playback_device),"changed",(GCallback)playback_device_changed,playback_device);
- g_signal_connect(G_OBJECT(spk_button),"clicked",(GCallback)linphone_gtk_start_sound,vbox);
- g_signal_connect(G_OBJECT(mixer_button),"clicked",(GCallback)open_mixer,vbox);
-
- return vbox;
-}
-
-static GtkWidget *create_play_record_page(void){
- GtkWidget *vbox=gtk_table_new(2,2,FALSE);
- GtkWidget *labelRecord=gtk_label_new(_("Press the record button and say some words"));
- GtkWidget *labelPlay=gtk_label_new(_("Listen to your record voice"));
- GtkWidget *rec_button=gtk_toggle_button_new_with_label(_("Record"));
- GtkWidget *play_button=gtk_toggle_button_new_with_label(_("Play"));
- GtkWidget *image;
-
- image=gtk_image_new_from_stock(GTK_STOCK_MEDIA_RECORD,GTK_ICON_SIZE_MENU);
- gtk_button_set_image(GTK_BUTTON(rec_button),image);
-
- image=gtk_image_new_from_stock(GTK_STOCK_MEDIA_PLAY,GTK_ICON_SIZE_MENU);
- gtk_button_set_image(GTK_BUTTON(play_button),image);
- gtk_widget_set_sensitive(play_button,FALSE);
-
- gtk_table_attach_defaults(GTK_TABLE(vbox), labelRecord, 0, 1, 0, 1);
- gtk_table_attach(GTK_TABLE(vbox), rec_button, 1, 2, 0, 1, GTK_SHRINK, GTK_SHRINK, 0,0);
- gtk_table_attach_defaults(GTK_TABLE(vbox), labelPlay, 0, 1, 1, 2);
- gtk_table_attach(GTK_TABLE(vbox), play_button, 1, 2, 1, 2, GTK_SHRINK, GTK_SHRINK, 0,0);
-
- gtk_widget_show_all(vbox);
-
- set_widget_to_assistant("rec_button",rec_button);
- set_widget_to_assistant("play_button",play_button);
- g_signal_connect(G_OBJECT(rec_button),"toggled",(GCallback)linphone_gtk_start_record_sound,vbox);
- g_signal_connect(G_OBJECT(play_button),"toggled",(GCallback)linphone_gtk_start_play_record_sound,vbox);
-
- return vbox;
-}
-
-static GtkWidget *create_end_page(void){
- GtkWidget *vbox=gtk_vbox_new(FALSE,2);
- GtkWidget *label=gtk_label_new(_("Let's start Linphone now"));
- gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, TRUE, 2);
- gtk_widget_show_all(vbox);
- return vbox;
-}
-
-static void prepare(GtkAssistant *w){
- AudioStream *audio_stream = NULL;
- LinphoneCore *lc=linphone_gtk_get_core();
- MSFactory *factory = linphone_core_get_ms_factory(lc);
- int page = gtk_assistant_get_current_page(w);
- GtkWidget *mic_audiolevel = get_widget_from_assistant("mic_audiolevel");
- GtkWidget *label_audiolevel = get_widget_from_assistant("label_audiolevel");
-
- //Speaker page
- if(page == 1){
- MSSndCardManager *manager = ms_factory_get_snd_card_manager(factory);
- audio_stream = audio_stream_start_with_sndcards(factory, &av_profile,9898,"127.0.0.1",19898,0,0,ms_snd_card_manager_get_card(manager,linphone_core_get_playback_device(lc)),ms_snd_card_manager_get_card(manager,linphone_core_get_capture_device(lc)),FALSE);
- if (mic_audiolevel != NULL && audio_stream != NULL){
- g_object_set_data(G_OBJECT(audio_assistant),"stream",audio_stream);
- linphone_gtk_init_audio_meter(mic_audiolevel,(get_volume_t)audio_stream_get_record_volume,audio_stream);
- linphone_gtk_init_audio_label(label_audiolevel,(get_volume_t)audio_stream_get_max_volume,audio_stream);
- }
- } else if(page == 2 || page == 0){
- if(mic_audiolevel != NULL && label_audiolevel != NULL){
- audio_stream = (AudioStream *)g_object_get_data(G_OBJECT(audio_assistant),"stream");
- if(audio_stream != NULL){
- linphone_gtk_uninit_audio_meter(mic_audiolevel);
- linphone_gtk_uninit_audio_label(label_audiolevel);
- audio_stream_stop(audio_stream);
- g_object_set_data(G_OBJECT(audio_assistant),"stream",NULL);
- }
- }
- }
-}
-
-void linphone_gtk_close_audio_assistant(GtkWidget *w){
- gchar *path;
- AudioStream *stream;
-
- path = g_object_get_data(G_OBJECT(audio_assistant),"path");
- if(path != NULL){
- g_unlink(path);
- }
- stream = (AudioStream *)g_object_get_data(G_OBJECT(audio_assistant), "stream");
- if(stream) {
- audio_stream_stop(stream);
- }
- gtk_widget_destroy(w);
- if(linphone_gtk_get_audio_assistant_option()){
- gtk_main_quit();
- }
- audio_assistant = NULL;
-}
-
-void linphone_gtk_audio_assistant_apply(GtkWidget *w){
- linphone_gtk_close_audio_assistant(w);
-}
-
-void linphone_gtk_show_audio_assistant(void){
- GtkWidget *w;
- GtkWidget *welcome;
- GtkWidget *mic_page;
- GtkWidget *speaker_page;
- GtkWidget *play_record_page;
- GtkWidget *end_page;
- if(audio_assistant!=NULL)
- return;
- w=audio_assistant=linphone_gtk_create_window("audio_assistant", linphone_gtk_get_main_window());
-
- gtk_window_set_resizable (GTK_WINDOW(w), FALSE);
- gtk_window_set_title(GTK_WINDOW(w),_("Audio Assistant"));
-
- welcome=create_intro();
- mic_page=create_mic_page();
- speaker_page=create_speaker_page();
- play_record_page=create_play_record_page();
- end_page=create_end_page();
-
- gtk_assistant_append_page(GTK_ASSISTANT(w),welcome);
- gtk_assistant_set_page_type(GTK_ASSISTANT(w),welcome,GTK_ASSISTANT_PAGE_INTRO);
- gtk_assistant_set_page_title(GTK_ASSISTANT(w),welcome,_("Audio assistant"));
- gtk_assistant_set_page_complete(GTK_ASSISTANT(w),welcome,TRUE);
-
- gtk_assistant_append_page(GTK_ASSISTANT(w),mic_page);
- gtk_assistant_set_page_type(GTK_ASSISTANT(w),mic_page,GTK_ASSISTANT_PAGE_CONTENT);
- gtk_assistant_set_page_title(GTK_ASSISTANT(w),mic_page,_("Mic Gain calibration"));
- gtk_assistant_set_page_complete(GTK_ASSISTANT(w),mic_page,TRUE);
-
- gtk_assistant_append_page(GTK_ASSISTANT(w),speaker_page);
- gtk_assistant_set_page_type(GTK_ASSISTANT(w),speaker_page,GTK_ASSISTANT_PAGE_CONTENT);
- gtk_assistant_set_page_complete(GTK_ASSISTANT(w),speaker_page,FALSE);
- gtk_assistant_set_page_title(GTK_ASSISTANT(w),speaker_page,_("Speaker volume calibration"));
-
- gtk_assistant_append_page(GTK_ASSISTANT(w),play_record_page);
- gtk_assistant_set_page_type(GTK_ASSISTANT(w),play_record_page,GTK_ASSISTANT_PAGE_CONTENT);
- gtk_assistant_set_page_complete(GTK_ASSISTANT(w),play_record_page,TRUE);
- gtk_assistant_set_page_title(GTK_ASSISTANT(w),play_record_page,_("Record and Play"));
-
- gtk_assistant_append_page(GTK_ASSISTANT(w),end_page);
- gtk_assistant_set_page_type(GTK_ASSISTANT(w),end_page,GTK_ASSISTANT_PAGE_SUMMARY);
- gtk_assistant_set_page_complete(GTK_ASSISTANT(w),end_page,TRUE);
- gtk_assistant_set_page_title(GTK_ASSISTANT(w),end_page,_("Terminating"));
-
- g_signal_connect(G_OBJECT(w),"close",(GCallback)linphone_gtk_close_audio_assistant,w);
- g_signal_connect(G_OBJECT(w),"cancel",(GCallback)linphone_gtk_close_audio_assistant,w);
- g_signal_connect(G_OBJECT(w),"prepare",(GCallback)prepare,NULL);
-
- gtk_widget_show(w);
-}
diff --git a/gtk/audio_assistant.ui b/gtk/audio_assistant.ui
deleted file mode 100644
index b8390f5d8..000000000
--- a/gtk/audio_assistant.ui
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
- False
- 12
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/gtk/buddylookup.c b/gtk/buddylookup.c
deleted file mode 100644
index 73d8780db..000000000
--- a/gtk/buddylookup.c
+++ /dev/null
@@ -1,305 +0,0 @@
-/*
-linphone, gtk-glade interface.
-Copyright (C) 2008 Simon MORLAT (simon.morlat@linphone.org)
-
-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 2
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include "linphone.h"
-#include "linphone/sipsetup.h"
-
-static void linphone_gtk_display_lookup_results(GtkWidget *w, const bctbx_list_t *results);
-
-enum {
- LOOKUP_RESULT_NAME,
- LOOKUP_RESULT_SIP_URI,
- LOOKUP_RESULT_ADDRESS,
- LOOKUP_RESULT_ICON,
- LOOKUP_RESULT_NCOL
-};
-
-void linphone_gtk_buddy_lookup_window_destroyed(GtkWidget *w){
- guint tid=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w),"typing_timeout"));
- if (tid!=0){
- g_source_remove(tid);
- }
- tid=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w),"buddylookup_processing"));
- if (tid!=0){
- g_source_remove(tid);
- }
-}
-
-static void enable_add_buddy_button(GtkWidget *w){
- gtk_widget_set_sensitive(linphone_gtk_get_widget(w,"add_buddy"),TRUE);
-}
-
-static void disable_add_buddy_button(GtkWidget *w){
- gtk_widget_set_sensitive(linphone_gtk_get_widget(w,"add_buddy"),FALSE);
-}
-
-static void buddy_selection_changed(GtkWidget *w){
- GtkWidget *results=linphone_gtk_get_widget(w,"search_results");
- GtkTreeSelection *select;
- GtkTreeIter iter;
- GtkTreeModel *model;
- enable_add_buddy_button(w);
-
- select = gtk_tree_view_get_selection(GTK_TREE_VIEW(results));
- if (gtk_tree_selection_get_selected (select, &model, &iter))
- {
- GtkTreePath *path=gtk_tree_model_get_path(model,&iter);
- gtk_tree_view_collapse_all(GTK_TREE_VIEW(results));
- gtk_tree_view_expand_row(GTK_TREE_VIEW(results),path,FALSE);
- gtk_tree_path_free(path);
- }
-}
-
-GtkWidget * linphone_gtk_show_buddy_lookup_window(SipSetupContext *ctx){
- GtkTreeStore *store;
- GtkCellRenderer *renderer,*pbuf_renderer;
- GtkTreeViewColumn *column;
- GtkTreeSelection *select;
- GtkWidget *w=linphone_gtk_create_window("buddylookup", NULL);
- GtkWidget *results=linphone_gtk_get_widget(w,"search_results");
- GtkProgressBar *pb=GTK_PROGRESS_BAR(linphone_gtk_get_widget(w,"progressbar"));
-
- store = gtk_tree_store_new(LOOKUP_RESULT_NCOL, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, GDK_TYPE_PIXBUF);
-
- /*gtk_tree_view_set_hover_expand(GTK_TREE_VIEW(results),TRUE);*/
- gtk_tree_view_set_model(GTK_TREE_VIEW(results),GTK_TREE_MODEL(store));
- g_object_unref(G_OBJECT(store));
-
- renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes (_("Firstname, Lastname"),
- renderer,
- "markup", LOOKUP_RESULT_NAME,
- NULL);
- g_object_set (G_OBJECT(column), "resizable", TRUE, NULL);
-
-
- pbuf_renderer=gtk_cell_renderer_pixbuf_new();
- g_object_set(G_OBJECT(renderer),"is-expander",TRUE,NULL);
- gtk_tree_view_column_pack_start(column,pbuf_renderer,FALSE);
- gtk_tree_view_column_add_attribute (column,pbuf_renderer,
- "pixbuf",
- LOOKUP_RESULT_ICON);
- gtk_tree_view_append_column (GTK_TREE_VIEW (results), column);
-
-/*
- column = gtk_tree_view_column_new_with_attributes (_("SIP address"),
- renderer,
- "text", LOOKUP_RESULT_SIP_URI,
- NULL);
- g_object_set (G_OBJECT(column), "resizable", TRUE, NULL);
- gtk_tree_view_append_column (GTK_TREE_VIEW (results), column);
-*/
-
- select = gtk_tree_view_get_selection (GTK_TREE_VIEW (results));
- gtk_tree_selection_set_mode (select, GTK_SELECTION_SINGLE);
- g_signal_connect_swapped(G_OBJECT(select),"changed",(GCallback)buddy_selection_changed,w);
-/*
-#if GTK_CHECK_VERSION(2,12,0)
- gtk_tree_view_set_tooltip_column(GTK_TREE_VIEW(results),LOOKUP_RESULT_ADDRESS);
-#endif
-*/
- g_object_set_data(G_OBJECT(w),"SipSetupContext",ctx);
- g_object_weak_ref(G_OBJECT(w),(GWeakNotify)linphone_gtk_buddy_lookup_window_destroyed,w);
- //g_signal_connect_swapped(G_OBJECT(w),"destroy",(GCallback)linphone_gtk_buddy_lookup_window_destroyed,w);
- gtk_progress_bar_set_fraction(pb,0);
- gtk_progress_bar_set_text(pb,NULL);
- gtk_dialog_add_button(GTK_DIALOG(w),GTK_STOCK_CLOSE,GTK_RESPONSE_CLOSE);
- g_object_set_data(G_OBJECT(w),"last_state",GINT_TO_POINTER(-1));
-
- gtk_widget_show(w);
- return w;
-}
-
-
-void linphone_gtk_buddy_lookup_set_keyword(GtkWidget *w, const char *kw){
- gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(w,"keyword")),kw);
-}
-
-static gboolean linphone_gtk_process_buddy_lookup(GtkWidget *w){
- BuddyLookupStatus bls;
- SipSetupContext *ctx;
- int last_state;
- gchar *tmp;
- bctbx_list_t *results=NULL;
- GtkProgressBar *pb=GTK_PROGRESS_BAR(linphone_gtk_get_widget(w,"progressbar"));
- BuddyLookupRequest *req=(BuddyLookupRequest*)g_object_get_data(G_OBJECT(w),"buddylookup_request");
-
- ctx=(SipSetupContext*)g_object_get_data(G_OBJECT(w),"SipSetupContext");
- last_state=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w),"last_state"));
-
- if (req==NULL) {
- g_object_set_data(G_OBJECT(w),"buddylookup_processing",GINT_TO_POINTER(0));
- return FALSE;
- }
- bls=req->status;
- if (last_state==(int)bls) return TRUE;
-
- switch(bls){
- case BuddyLookupNone:
- gtk_progress_bar_set_fraction(pb,0);
- gtk_progress_bar_set_text(pb,NULL);
- break;
- case BuddyLookupFailure:
- gtk_progress_bar_set_fraction(pb,0);
- gtk_progress_bar_set_text(pb,_("Error communicating with server."));
- break;
- case BuddyLookupConnecting:
- gtk_progress_bar_set_fraction(pb,0.2);
- gtk_progress_bar_set_text(pb,_("Connecting..."));
- break;
- case BuddyLookupConnected:
- gtk_progress_bar_set_fraction(pb,0.4);
- gtk_progress_bar_set_text(pb,_("Connected"));
- break;
- case BuddyLookupReceivingResponse:
- gtk_progress_bar_set_fraction(pb,0.8);
- gtk_progress_bar_set_text(pb,_("Receiving data..."));
- break;
- case BuddyLookupDone:
- results=req->results;
- linphone_gtk_display_lookup_results(
- linphone_gtk_get_widget(w,"search_results"),
- results);
- gtk_progress_bar_set_fraction(pb,1);
- tmp=g_strdup_printf(ngettext("Found %u contact", "Found %u contacts",
- (unsigned int)bctbx_list_size(results)), (unsigned int)bctbx_list_size(results));
- gtk_progress_bar_set_text(pb,tmp);
- g_free(tmp);
- sip_setup_context_buddy_lookup_free(ctx,req);
- g_object_set_data(G_OBJECT(w),"buddylookup_request",NULL);
- break;
- }
- g_object_set_data(G_OBJECT(w),"last_state",GINT_TO_POINTER(bls));
- return TRUE;
-}
-
-static gboolean keyword_typing_finished(GtkWidget *w){
- guint tid=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w),"typing_timeout"));
- const char *keyword;
- SipSetupContext *ctx;
- if (tid!=0){
- g_source_remove(tid);
- }
- keyword=gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(w,"keyword")));
- if (strlen(keyword)>=1){
- BuddyLookupRequest *req;
- guint tid2;
- ctx=(SipSetupContext*)g_object_get_data(G_OBJECT(w),"SipSetupContext");
- req=(BuddyLookupRequest*)g_object_get_data(G_OBJECT(w),"buddylookup_request");
- if (req!=NULL){
- sip_setup_context_buddy_lookup_free(ctx,req);
- }
- req=sip_setup_context_create_buddy_lookup_request(ctx);
- buddy_lookup_request_set_key(req,keyword);
- sip_setup_context_buddy_lookup_submit(ctx,req);
- g_object_set_data(G_OBJECT(w),"buddylookup_request",req);
- if (g_object_get_data(G_OBJECT(w),"buddylookup_processing")==NULL){
- tid2=g_timeout_add(20,(GSourceFunc)linphone_gtk_process_buddy_lookup,w);
- g_object_set_data(G_OBJECT(w),"buddylookup_processing",GINT_TO_POINTER(tid2));
- }
- }
- return FALSE;
-}
-
-void linphone_gtk_keyword_changed(GtkEditable *e){
- GtkWidget *w=gtk_widget_get_toplevel(GTK_WIDGET(e));
- guint tid=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w),"typing_timeout"));
- if (tid!=0){
- g_source_remove(tid);
- }
- tid=g_timeout_add(2000,(GSourceFunc)keyword_typing_finished,w);
- g_object_set_data(G_OBJECT(w),"typing_timeout",GINT_TO_POINTER(tid));
-}
-
-static void linphone_gtk_display_lookup_results(GtkWidget *w, const bctbx_list_t *results){
- GtkTreeStore *store;
- GtkTreeIter iter;
- gchar *tmp;
- const bctbx_list_t *elem;
- store=GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(w)));
- gtk_tree_store_clear(store);
- disable_add_buddy_button(gtk_widget_get_toplevel(w));
- for(elem=results;elem!=NULL;elem=elem->next){
- BuddyInfo *bi=(BuddyInfo*)elem->data;
- GdkPixbuf *pbuf;
- GtkTreeIter depth1;
- gtk_tree_store_append(store,&iter,NULL);
- tmp=g_strdup_printf("%s, %s (%s)",bi->firstname,bi->lastname,bi->displayname);
- gtk_tree_store_set(store,&iter,LOOKUP_RESULT_NAME, tmp,-1);
- g_free(tmp);
- gtk_tree_store_set(store,&iter,LOOKUP_RESULT_SIP_URI, bi->sip_uri,-1);
- tmp=g_strdup_printf("%s, %s %s\n%s",bi->address.street, bi->address.zip, bi->address.town, bi->address.country);
- gtk_tree_store_set(store,&iter,LOOKUP_RESULT_ADDRESS, tmp,-1);
- g_free(tmp);
- if (bi->image_data!=NULL){
- pbuf=_gdk_pixbuf_new_from_memory_at_scale(bi->image_data,bi->image_length,-1,40,TRUE);
- if (pbuf) {
- gtk_tree_store_set(store,&iter,LOOKUP_RESULT_ICON,pbuf,-1);
- g_object_unref(G_OBJECT(pbuf));
- }
- }
- gtk_tree_store_append(store,&depth1,&iter);
- tmp=g_strdup_printf("%s, %s (%s)\n%s, %s %s\n%s\n%s",
- bi->firstname,bi->lastname,bi->displayname,bi->address.street,
- bi->address.zip, bi->address.town, bi->address.country,bi->sip_uri);
- gtk_tree_store_set(store,&depth1,LOOKUP_RESULT_NAME,tmp,-1);
- g_free(tmp);
- if (bi->image_data!=NULL){
- pbuf=_gdk_pixbuf_new_from_memory_at_scale(bi->image_data,bi->image_length,-1,-1,TRUE);
- if (pbuf) {
- gtk_tree_store_set(store,&depth1,LOOKUP_RESULT_ICON,pbuf,-1);
- g_object_unref(G_OBJECT(pbuf));
- }
- }
- }
-}
-
-void linphone_gtk_add_buddy_from_database(GtkWidget *button){
- GtkWidget *w=gtk_widget_get_toplevel(button);
- GtkTreeSelection *select;
- GtkTreeIter iter;
- GtkTreeModel *model;
- select = gtk_tree_view_get_selection(GTK_TREE_VIEW(linphone_gtk_get_widget(w,"search_results")));
- if (gtk_tree_selection_get_selected (select, &model, &iter))
- {
- char *uri;
- char *name;
- char *addr;
- LinphoneFriend *lf;
- LinphoneCore *lc = linphone_gtk_get_core();
- int presence=linphone_gtk_get_ui_config_int("use_subscribe_notify",1);
- gtk_tree_model_get (model, &iter,LOOKUP_RESULT_SIP_URI , &uri,LOOKUP_RESULT_NAME, &name, -1);
- addr=g_strdup_printf("%s <%s>",name,uri);
-
- lf=linphone_core_create_friend_with_address(lc, addr);
- linphone_friend_set_inc_subscribe_policy(lf,presence ? LinphoneSPAccept : LinphoneSPDeny);
- linphone_friend_send_subscribe(lf,presence);
- linphone_core_add_friend(lc, lf);
- linphone_gtk_show_friends();
- g_free(addr);
- g_free(uri);
- g_free(name);
- }
-}
-
-/*called when double clicking on a contact */
-void linphone_gtk_buddy_lookup_contact_activated(GtkWidget *treeview){
- linphone_gtk_add_buddy_from_database(treeview);
- gtk_widget_destroy(gtk_widget_get_toplevel(treeview));
-}
diff --git a/gtk/buddylookup.ui b/gtk/buddylookup.ui
deleted file mode 100644
index c32727b05..000000000
--- a/gtk/buddylookup.ui
+++ /dev/null
@@ -1,159 +0,0 @@
-
-
-
-
-
- 5
- Search contacts in directory
- center-on-parent
- dialog
- False
-
-
-
- True
- 2
-
-
- True
- 5
- 0
-
-
- True
- 12
-
-
- True
-
-
- True
- True
- True
-
-
-
- False
- 0
-
-
-
-
- True
- True
- automatic
- automatic
- etched-in
-
-
- 512
- 140
- True
- True
-
-
-
-
-
- 6
- 1
-
-
-
-
- True
- True
- True
-
-
- False
- 2
-
-
-
-
- True
-
-
- True
- False
- True
- True
-
-
-
- True
-
-
- True
- gtk-add
-
-
- False
- False
- 0
-
-
-
-
- True
- Add to my list
-
-
- 1
-
-
-
-
-
-
- False
- False
- 5
- 0
-
-
-
-
- False
- False
- 3
-
-
-
-
-
-
-
-
- True
- <b>Search somebody</b>
- True
-
-
-
-
- 1
-
-
-
-
- True
- end
-
-
-
-
-
-
-
-
- False
- end
- 0
-
-
-
-
-
-
diff --git a/gtk/call_logs.ui b/gtk/call_logs.ui
deleted file mode 100644
index 23184841a..000000000
--- a/gtk/call_logs.ui
+++ /dev/null
@@ -1,119 +0,0 @@
-
-
-
-
-
- 500
- 370
- False
- 5
- Call history
- center-on-parent
- dialog
-
-
- True
- False
- 2
-
-
- True
- False
- end
-
-
- Clear all
- True
- True
- True
- False
- image1
-
-
- False
- False
- 0
-
-
-
-
- Call back
- True
- True
- True
- False
-
-
- False
- False
- 1
-
-
-
-
- gtk-close
- True
- True
- True
- False
- True
-
-
- False
- False
- 2
-
-
-
-
- False
- True
- end
- 0
-
-
-
-
- True
- True
- never
- automatic
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- False
-
-
-
-
-
-
- True
- True
- 1
-
-
-
-
-
- button1
- call_back_button
- call_logs_close
-
-
-
-
-
-
-
-
-
-
-
- True
- False
- gtk-clear
-
-
diff --git a/gtk/call_statistics.ui b/gtk/call_statistics.ui
deleted file mode 100644
index d53c93a1f..000000000
--- a/gtk/call_statistics.ui
+++ /dev/null
@@ -1,293 +0,0 @@
-
-
-
-
-
- 5
- Call statistics
- dialog
-
-
-
- True
- 2
-
-
- True
- 0
- none
-
-
- True
- 12
-
-
- True
- 10
- 2
- True
-
-
- True
- Audio codec
-
-
- 1
- 2
-
-
-
-
-
- True
- Video codec
-
-
- 2
- 3
-
-
-
-
-
- True
- Audio IP bandwidth usage
-
-
- 3
- 4
-
-
-
-
-
- True
-
-
- 1
- 2
- 1
- 2
-
-
-
-
- True
-
-
- 1
- 2
- 2
- 3
-
-
-
-
- True
-
-
- 1
- 2
- 3
- 4
-
-
-
-
- True
- Audio Media connectivity
-
-
- 5
- 6
-
-
-
-
-
- True
-
-
- 1
- 2
- 5
- 6
-
-
-
-
- True
- Video IP bandwidth usage
-
-
- 4
- 5
-
-
-
-
-
- True
-
-
- 1
- 2
- 4
- 5
-
-
-
-
- True
- Video Media connectivity
-
-
- 6
- 7
-
-
-
-
- True
-
-
- 1
- 2
- 6
- 7
-
-
-
-
- True
- Round trip time
-
-
- 7
- 8
-
-
-
-
- True
-
-
- 1
- 2
- 7
- 8
-
-
-
-
- True
- Video resolution received
-
-
- 8
- 9
-
-
-
-
- True
-
-
- 1
- 2
- 8
- 9
-
-
-
-
- True
- Video resolution sent
-
-
- 9
- 10
-
-
-
-
- True
-
-
- 1
- 2
- 9
- 10
-
-
-
-
- True
- RTP profile
-
-
-
-
-
-
-
- True
-
-
- 1
- 2
-
-
-
-
-
-
-
-
- True
- <b>Call statistics and information</b>
- True
-
-
-
-
- False
- False
- 1
-
-
-
-
- True
- end
-
-
-
-
-
- gtk-close
- True
- True
- True
- True
-
-
- False
- False
- 1
-
-
-
-
- False
- end
- 0
-
-
-
-
-
- button1
-
-
-
diff --git a/gtk/callee_frame.ui b/gtk/callee_frame.ui
deleted file mode 100644
index 4ae4d90ef..000000000
--- a/gtk/callee_frame.ui
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
-
-
-
- True
- False
- 0
- none
-
-
- True
- False
- 12
-
-
- True
- False
- 12
-
-
- True
- False
-
-
- True
- False
-
-
- True
- True
-
-
- False
- False
- 0
-
-
-
-
- False
- True
- 0
-
-
-
-
- True
- False
- <b>Callee name</b>
- True
- right
- end
-
-
- True
- True
- 1
-
-
-
-
- 90
- 30
- True
- False
-
-
- False
- True
- 2
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/gtk/calllogs.c b/gtk/calllogs.c
deleted file mode 100644
index 9ee24eba8..000000000
--- a/gtk/calllogs.c
+++ /dev/null
@@ -1,424 +0,0 @@
-/*
-linphone, gtk-glade interface.
-Copyright (C) 2008 Simon MORLAT (simon.morlat@linphone.org)
-
-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 2
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include "linphone.h"
-#include
-
-#define CONFIG_FILE ".linphone-call-history.db"
-
-char *linphone_gtk_call_logs_storage_get_db_file(const char *filename){
- const int path_max=1024;
- char *db_file=NULL;
-
- db_file=(char *)g_malloc(path_max*sizeof(char));
- if (filename==NULL) filename=CONFIG_FILE;
- /*try accessing a local file first if exists*/
- if (bctbx_file_exist(CONFIG_FILE)==0){
- snprintf(db_file,path_max,"%s",filename);
- }else{
-#ifdef _WIN32
- const char *appdata=getenv("APPDATA");
- if (appdata){
- snprintf(db_file,path_max,"%s\\%s",appdata,LINPHONE_CONFIG_DIR);
- CreateDirectory(db_file,NULL);
- snprintf(db_file,path_max,"%s\\%s\\%s",appdata,LINPHONE_CONFIG_DIR,filename);
- }
-#else
- const char *home=getenv("HOME");
- if (home==NULL) home=".";
- snprintf(db_file,path_max,"%s/%s",home,filename);
-#endif
- }
- return db_file;
-}
-
-static void fill_renderers(GtkTreeView *v){
- GtkTreeViewColumn *c;
- GtkCellRenderer *r;
-
- r=gtk_cell_renderer_pixbuf_new();
- c=gtk_tree_view_column_new_with_attributes("icon",r,"icon-name",0,NULL);
- gtk_tree_view_append_column (v,c);
-
- r=gtk_cell_renderer_text_new ();
- c=gtk_tree_view_column_new_with_attributes("sipaddress",r,"markup",1,NULL);
- gtk_tree_view_append_column (v,c);
-}
-
-void call_log_selection_changed(GtkTreeView *v){
- GtkTreeSelection *select;
- GtkTreeIter iter;
- GtkTreeModel *model=NULL;
-
- select = gtk_tree_view_get_selection(v);
- if (select!=NULL){
- if (gtk_tree_selection_get_selected (select, &model, &iter)){
- GtkTreePath *path=gtk_tree_model_get_path(model,&iter);
- gtk_tree_view_collapse_all(v);
- gtk_tree_view_expand_row(v,path,TRUE);
- gtk_tree_path_free(path);
- }
- }
-}
-
-void linphone_gtk_call_log_chat_selected(GtkWidget *w){
- GtkTreeSelection *select;
- GtkTreeIter iter;
-
- select=gtk_tree_view_get_selection(GTK_TREE_VIEW(w));
- if (select!=NULL){
- GtkTreeModel *model=NULL;
- if (gtk_tree_selection_get_selected (select,&model,&iter)){
- gpointer pcl;
- LinphoneAddress *la;
- LinphoneCallLog *cl;
- gtk_tree_model_get(model,&iter,2,&pcl,-1);
- cl = (LinphoneCallLog *)pcl;
- la = linphone_call_log_get_dir(cl)==LinphoneCallIncoming ? linphone_call_log_get_from(cl) : linphone_call_log_get_to(cl);
- if (la != NULL){
- linphone_gtk_friend_list_set_chat_conversation(la);
- }
- }
- }
-}
-
-void linphone_gtk_call_log_add_contact(GtkWidget *w){
- GtkWidget *main_window = gtk_widget_get_toplevel(w);
- GtkTreeSelection *select;
- GtkTreeIter iter;
-
- select=gtk_tree_view_get_selection(GTK_TREE_VIEW(w));
- if (select!=NULL){
- GtkTreeModel *model=NULL;
- if (gtk_tree_selection_get_selected (select,&model,&iter)){
- gpointer pcl;
- LinphoneAddress *la;
- LinphoneCallLog *cl;
- LinphoneFriend *lf;
- gtk_tree_model_get(model,&iter,2,&pcl,-1);
- cl = (LinphoneCallLog *)pcl;
- la = linphone_call_log_get_dir(cl)==LinphoneCallIncoming ? linphone_call_log_get_from(cl) : linphone_call_log_get_to(cl);
- if (la != NULL){
- char *uri=linphone_address_as_string(la);
- lf=linphone_core_create_friend_with_address(linphone_gtk_get_core(), uri);
- linphone_gtk_show_contact(lf, main_window);
- ms_free(uri);
- }
- }
- }
-}
-
-static bool_t put_selection_to_uribar(GtkWidget *treeview){
- GtkTreeSelection *sel;
- sel=gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
- if (sel!=NULL){
- GtkTreeModel *model=NULL;
- GtkTreeIter iter;
- if (gtk_tree_selection_get_selected (sel,&model,&iter)){
- char *tmp;
- gpointer pcl;
- LinphoneAddress *la;
- LinphoneCallLog *cl;
- gtk_tree_model_get(model,&iter,2,&pcl,-1);
- cl = (LinphoneCallLog *)pcl;
- la = linphone_call_log_get_dir(cl)==LinphoneCallIncoming ? linphone_call_log_get_from(cl) : linphone_call_log_get_to(cl);
- tmp = linphone_address_as_string(la);
- if(tmp!=NULL)
- gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(linphone_gtk_get_main_window(),"uribar")),tmp);
- ms_free(tmp);
- return TRUE;
- }
- }
- return FALSE;
-}
-
-static void linphone_gtk_call_selected(GtkTreeView *treeview){
- put_selection_to_uribar(GTK_WIDGET(treeview));
- linphone_gtk_start_call(linphone_gtk_get_widget(gtk_widget_get_toplevel(GTK_WIDGET(treeview)),
- "start_call"));
-}
-
-static GtkWidget *linphone_gtk_create_call_log_menu(GtkWidget *call_log){
- GtkWidget *menu=NULL;
- GtkWidget *menu_item;
- gchar *call_label=NULL;
- gchar *text_label=NULL;
- gchar *add_contact_label=NULL;
- gchar *name=NULL;
- GtkWidget *image;
- GtkTreeSelection *select;
- GtkTreeIter iter;
-
- select=gtk_tree_view_get_selection(GTK_TREE_VIEW(call_log));
- if (select!=NULL){
- GtkTreeModel *model=NULL;
- if (gtk_tree_selection_get_selected (select,&model,&iter)){
- gpointer pcl;
- LinphoneAddress *la;
- LinphoneCallLog *cl;
- gtk_tree_model_get(model,&iter,2,&pcl,-1);
- cl = (LinphoneCallLog *)pcl;
- la = linphone_call_log_get_dir(cl)==LinphoneCallIncoming ? linphone_call_log_get_from(cl) : linphone_call_log_get_to(cl);
- name=linphone_address_as_string(la);
- call_label=g_strdup_printf(_("Call %s"),name);
- text_label=g_strdup_printf(_("Send text to %s"),name);
- if (!linphone_gtk_is_friend(linphone_gtk_get_core(), name)) {
- add_contact_label=g_strdup_printf(_("Add %s to your contact list"),name);
- }
- ms_free(name);
- menu=gtk_menu_new();
- }
- }
- if (menu && call_label){
- menu_item=gtk_image_menu_item_new_with_label(call_label);
- image=gtk_image_new_from_icon_name("linphone-start-call",GTK_ICON_SIZE_MENU);
- gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item),image);
- gtk_widget_show(image);
- gtk_widget_show(menu_item);
- gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
- g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_call_selected,call_log);
- }
- if (menu && text_label){
- menu_item=gtk_image_menu_item_new_with_label(text_label);
- image=gtk_image_new_from_icon_name("linphone-start-chat",GTK_ICON_SIZE_MENU);
- gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item),image);
- gtk_widget_show(image);
- gtk_widget_show(menu_item);
- gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
- g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_call_log_chat_selected,call_log);
- }
- if (menu && add_contact_label){
- menu_item=gtk_image_menu_item_new_with_label(add_contact_label);
- image=gtk_image_new_from_icon_name("linphone-contact-add",GTK_ICON_SIZE_MENU);
- gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item),image);
- gtk_widget_show(image);
- gtk_widget_show(menu_item);
- gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
- g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_call_log_add_contact,call_log);
- }
- if (menu) {
- gtk_widget_show(menu);
- gtk_menu_attach_to_widget(GTK_MENU(menu),call_log, NULL);
- }
-
- if (add_contact_label) g_free(add_contact_label);
- if (call_label) g_free(call_label);
- if (text_label) g_free(text_label);
- return menu;
-}
-
-gboolean linphone_gtk_call_log_popup_contact(GtkWidget *list, GdkEventButton *event){
- GtkWidget *m=linphone_gtk_create_call_log_menu(list);
- if (m) {
- gtk_menu_popup (GTK_MENU (m), NULL, NULL, NULL, NULL,
- event ? event->button : 0, event ? event->time : gtk_get_current_event_time());
- return TRUE;
- }
- return FALSE;
-}
-
-gboolean linphone_gtk_call_log_button_pressed(GtkWidget *widget, GdkEventButton *event){
- if (event->button == 3 && event->type == GDK_BUTTON_PRESS){
- return linphone_gtk_call_log_popup_contact(widget, event);
- }
- return FALSE;
-}
-
-void linphone_gtk_call_log_clear_missed_call(void){
- GtkWidget *mw = linphone_gtk_get_main_window();
- GtkWidget *label = linphone_gtk_get_widget(mw, "history_tab_label");
- gtk_label_set_text(GTK_LABEL(label), _("Recent calls"));
-}
-
-gboolean linphone_gtk_call_log_reset_missed_call(GtkWidget *w, GdkEvent *event,gpointer user_data){
- GtkWidget *mw=linphone_gtk_get_main_window();
- GtkNotebook *notebook=GTK_NOTEBOOK(linphone_gtk_get_widget(mw,"viewswitch"));
- gtk_notebook_set_current_page(notebook,0);
- linphone_core_reset_missed_calls_count(linphone_gtk_get_core());
- linphone_gtk_call_log_clear_missed_call();
- return TRUE;
-}
-
-void linphone_gtk_call_log_display_missed_call(int nb){
- GtkWidget *mw = linphone_gtk_get_main_window();
- GtkWidget *label = linphone_gtk_get_widget(mw, "history_tab_label");
- gchar *buf = g_markup_printf_escaped(_("Recent calls (%i)"), nb);
- gtk_label_set_markup(GTK_LABEL(label), buf);
-}
-
-void linphone_gtk_call_log_update(GtkWidget *w){
- GtkTreeView *v=GTK_TREE_VIEW(linphone_gtk_get_widget(w,"logs_view"));
- GtkTreeStore *store;
- const MSList *logs;
- GtkTreeSelection *select;
- GtkWidget *notebook=linphone_gtk_get_widget(w,"viewswitch");
- gint nb;
-
- store=(GtkTreeStore*)gtk_tree_view_get_model(v);
- if (store==NULL){
- store=gtk_tree_store_new(3,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_POINTER,G_TYPE_STRING);
- gtk_tree_view_set_model(v,GTK_TREE_MODEL(store));
- g_object_unref(G_OBJECT(store));
- fill_renderers(GTK_TREE_VIEW(linphone_gtk_get_widget(w,"logs_view")));
- select=gtk_tree_view_get_selection(v);
- gtk_tree_selection_set_mode(select, GTK_SELECTION_SINGLE);
- g_signal_connect_swapped(G_OBJECT(select),"changed",(GCallback)call_log_selection_changed,v);
- g_signal_connect(G_OBJECT(notebook),"focus-tab",(GCallback)linphone_gtk_call_log_reset_missed_call,NULL);
- g_signal_connect(G_OBJECT(v),"button-press-event",(GCallback)linphone_gtk_call_log_button_pressed,NULL);
- }
- nb=linphone_core_get_missed_calls_count(linphone_gtk_get_core());
- if(nb > 0)
- linphone_gtk_call_log_display_missed_call(nb);
- gtk_tree_store_clear (store);
-
- for (logs=linphone_core_get_call_logs(linphone_gtk_get_core());logs!=NULL;logs=logs->next){
- LinphoneCallLog *cl=(LinphoneCallLog*)logs->data;
- GtkTreeIter iter, iter2;
- LinphoneAddress *la=linphone_call_log_get_dir(cl)==LinphoneCallIncoming ? linphone_call_log_get_from(cl) : linphone_call_log_get_to(cl);
- char *addr= linphone_address_as_string(la);
- const char *display;
- gchar *logtxt, *headtxt, *minutes, *seconds;
- gchar quality[20];
- const char *status=NULL;
- gchar *start_date=NULL;
- LinphoneFriend *lf=NULL;
- int duration=linphone_call_log_get_duration(cl);
- time_t start_date_time=linphone_call_log_get_start_date(cl);
- const gchar *call_status_icon_name;
-
-#if GLIB_CHECK_VERSION(2,30,0) // The g_date_time_format function exists since 2.26.0 but the '%c' format is only supported since 2.30.0
- if (start_date_time){
- GDateTime *dt=g_date_time_new_from_unix_local(start_date_time);
- start_date=g_date_time_format(dt,"%c");
- g_date_time_unref(dt);
- }
-#else
- start_date=g_strdup(ctime(&start_date_time));
- if (start_date[strlen(start_date) - 1] == '\n') {
- start_date[strlen(start_date) - 1] = '\0';
- }
-#endif
- lf=linphone_core_find_friend(linphone_gtk_get_core(),la);
- if(lf != NULL){
- /*update display name from friend*/
- display = linphone_friend_get_name(lf);
- if (display != NULL) linphone_address_set_display_name(la, display);
- } else {
- display=linphone_address_get_display_name(la);
- }
- if (display==NULL){
- display=linphone_address_get_username (la);
- if (display==NULL){
- display=linphone_address_get_domain (la);
- }
- }
-
- if (linphone_call_log_get_quality(cl)!=-1){
- snprintf(quality,sizeof(quality),"%.1f",linphone_call_log_get_quality(cl));
- }else snprintf(quality,sizeof(quality)-1,"%s",_("n/a"));
- switch(linphone_call_log_get_status(cl)){
- case LinphoneCallAborted:
- status=_("Aborted");
- break;
- case LinphoneCallMissed:
- status=_("Missed");
- break;
- case LinphoneCallDeclined:
- status=_("Declined");
- break;
- case LinphoneCallAnsweredElsewhere:
- status=_("Answered elsewhere");
- break;
- case LinphoneCallDeclinedElsewhere:
- status=_("Declined elsewhere");
- break;
- default:
- break;
- }
- minutes=g_markup_printf_escaped(
- ngettext("%i minute", "%i minutes", duration/60),
- duration/60);
- seconds=g_markup_printf_escaped(
- ngettext("%i second", "%i seconds", duration%60),
- duration%60);
- if (status==NULL) {
- headtxt=g_markup_printf_escaped("%s\t%s",display,start_date ? start_date : "");
- logtxt=g_markup_printf_escaped(
- _("%s\t"
- "Quality: %s\n%s\t%s\t"),
- addr, quality, minutes, seconds);
- } else {
- headtxt=g_markup_printf_escaped(_("%s\t%s"),display,start_date ? start_date : "");
- logtxt=g_markup_printf_escaped(
- "%s\t"
- "\n%s",addr, status);
- }
- g_free(minutes);
- g_free(seconds);
- if (start_date) g_free(start_date);
- gtk_tree_store_append (store,&iter,NULL);
- call_status_icon_name = linphone_call_log_get_dir(cl) == LinphoneCallOutgoing ?
- "linphone-call-status-outgoing" : "linphone-call-status-incoming";
- gtk_tree_store_set (store,&iter,
- 0, call_status_icon_name,
- 1, headtxt,2,cl,-1);
- gtk_tree_store_append (store,&iter2,&iter);
- gtk_tree_store_set (store,&iter2,1,logtxt,-1);
- ms_free(addr);
- g_free(logtxt);
- g_free(headtxt);
- }
-}
-
-void linphone_gtk_history_row_activated(GtkWidget *treeview){
- if (put_selection_to_uribar(treeview)){
- GtkWidget *mw=linphone_gtk_get_main_window();
- linphone_gtk_start_call(linphone_gtk_get_widget(mw,"start_call"));
- }
-}
-
-void linphone_gtk_history_row_selected(GtkWidget *treeview){
- put_selection_to_uribar(treeview);
-}
-
-void linphone_gtk_clear_call_logs(GtkWidget *button){
- linphone_core_clear_call_logs (linphone_gtk_get_core());
- linphone_gtk_call_log_clear_missed_call();
- linphone_gtk_call_log_update(gtk_widget_get_toplevel(button));
-}
-
-void linphone_gtk_call_log_callback(GtkWidget *button){
- GtkWidget *mw=linphone_gtk_get_main_window();
- if (put_selection_to_uribar(linphone_gtk_get_widget(mw,"logs_view")))
- linphone_gtk_start_call(linphone_gtk_get_widget(mw,"start_call"));
-}
-
-void linphone_gtk_call_log_response(GtkWidget *w, guint response_id){
- GtkWidget *mw=linphone_gtk_get_main_window();
- if (response_id==1){
- if (put_selection_to_uribar(linphone_gtk_get_widget(w,"logs_view")))
- linphone_gtk_start_call(linphone_gtk_get_widget(mw,"start_call"));
- }else if (response_id==2){
- linphone_core_clear_call_logs (linphone_gtk_get_core());
- linphone_gtk_call_log_update(w);
- return;
- }
- g_object_set_data(G_OBJECT(mw),"call_logs",NULL);
- gtk_widget_destroy(w);
-}
diff --git a/gtk/chat.c b/gtk/chat.c
deleted file mode 100644
index 9a15c8236..000000000
--- a/gtk/chat.c
+++ /dev/null
@@ -1,683 +0,0 @@
-/*
-linphone, gtk-glade interface.
-Copyright (C) 2008 Simon MORLAT (simon.morlat@linphone.org)
-
-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 2
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include "linphone.h"
-#include
-
-#ifdef HAVE_GTK_OSX
-#include
-#endif
-
-#if defined(_WIN32) && !defined(F_OK)
-#define F_OK 00 /*visual studio does not define F_OK*/
-#endif
-
-#define NB_MSG_HIST 250000
-
-#define CONFIG_FILE ".linphone-history.db"
-
-#include "regex.h"
-
-GRegex *uri_regex = NULL;
-
-static void free_uri_regex(void) {
- if(uri_regex) g_regex_unref(uri_regex);
-}
-
-static const GRegex *get_uri_regex(void) {
- const gchar *pattern = BC_REGEX_URI;
- GError *error = NULL;
- if(uri_regex == NULL) {
- uri_regex = g_regex_new(pattern, G_REGEX_OPTIMIZE, 0, &error);
- if(error) {
- g_warning("Could not parse regex pattern for URIs: %s", error->message);
- g_error_free(error);
- uri_regex = NULL;
- return NULL;
- }
- atexit(free_uri_regex);
- }
- return uri_regex;
-}
-
-char *linphone_gtk_message_storage_get_db_file(const char *filename){
- const int path_max=1024;
- char *db_file=NULL;
-
- db_file=(char *)g_malloc(path_max*sizeof(char));
- if (filename==NULL) filename=CONFIG_FILE;
- /*try accessing a local file first if exists*/
- if (bctbx_file_exist(CONFIG_FILE)==0){
- snprintf(db_file,path_max,"%s",filename);
- }else{
-#ifdef _WIN32
- const char *appdata=getenv("APPDATA");
- if (appdata){
- snprintf(db_file,path_max,"%s\\%s",appdata,LINPHONE_CONFIG_DIR);
- CreateDirectory(db_file,NULL);
- snprintf(db_file,path_max,"%s\\%s\\%s",appdata,LINPHONE_CONFIG_DIR,filename);
- }
-#else
- const char *home=getenv("HOME");
- if (home==NULL) home=".";
- snprintf(db_file,path_max,"%s/%s",home,filename);
-#endif
- }
- return db_file;
-}
-
-void linphone_gtk_mark_chat_read(LinphoneChatRoom *cr) {
- linphone_chat_room_mark_as_read(cr);
-#ifdef __APPLE__
- linphone_gtk_update_badge_count();
-#endif
-}
-
-void linphone_gtk_quit_chatroom(LinphoneChatRoom *cr) {
- GtkWidget *main_window=linphone_gtk_get_main_window ();
- GtkWidget *nb=linphone_gtk_get_widget(main_window,"viewswitch");
- GtkWidget *friendlist=linphone_gtk_get_widget(main_window,"contact_list");
- GtkWidget *w=g_object_get_data(G_OBJECT(friendlist),"chatview");
- gchar *from;
-
- g_return_if_fail(w!=NULL);
- gtk_notebook_remove_page(GTK_NOTEBOOK(nb),gtk_notebook_page_num(GTK_NOTEBOOK(nb),w));
- linphone_gtk_mark_chat_read(cr);
- g_object_set_data(G_OBJECT(friendlist),"chatview",NULL);
- from=g_object_get_data(G_OBJECT(w),"from_message");
- if (from){
- g_object_set_data(G_OBJECT(w),"from_message",NULL);
- g_free(from);
- }
- g_object_set_data(G_OBJECT(w),"cr",NULL);
- linphone_gtk_friend_list_set_active_address(NULL);
- gtk_widget_destroy(w);
-}
-
-const char* get_display_name(const LinphoneAddress *from){
- const char *display;
- display=linphone_address_get_display_name(from);
- if (display==NULL || display[0]=='\0') {
- display=linphone_address_get_username(from);
- }
- return display;
-}
-
-GtkWidget *create_tab_chat_header(LinphoneChatRoom *cr, const LinphoneAddress *uri){
- GtkWidget *tab_header = linphone_gtk_make_tab_header(get_display_name(uri), "linphone-start-chat", TRUE, G_CALLBACK(linphone_gtk_quit_chatroom), cr);
- gtk_widget_show_all(tab_header);
- return tab_header;
-}
-
-void update_chat_header(GtkNotebook *notebook, GtkWidget *chat_view, LinphoneChatRoom *cr, const LinphoneAddress *uri) {
- GtkWidget *header = linphone_gtk_make_tab_header(get_display_name(uri), "linphone-start-chat", TRUE, G_CALLBACK(linphone_gtk_quit_chatroom), cr);
- gtk_widget_show_all(header);
- gtk_notebook_set_tab_label(notebook, chat_view, header);
-}
-
-static gboolean scroll_to_end(GtkTextView *w){
- GtkTextBuffer *buffer=gtk_text_view_get_buffer(w);
- GtkTextIter iter;
- gtk_text_buffer_get_end_iter(buffer,&iter);
- gtk_text_view_scroll_to_iter (GTK_TEXT_VIEW (w), &iter, 0.0, FALSE, 0, 0);
- return FALSE;
-}
-
-static void write_body(GtkTextBuffer *buffer, GtkTextIter *iter, const gchar *text, gint len, gboolean is_me, gboolean is_link) {
- const char *me_tag_name = is_me ? "me" : NULL;
- const char *link_tag_name = is_link ? "link" : NULL;
- if(me_tag_name) {
- gtk_text_buffer_insert_with_tags_by_name(buffer, iter, text, len, "body", me_tag_name, link_tag_name, NULL);
- } else {
- gtk_text_buffer_insert_with_tags_by_name(buffer, iter, text, len, "body", link_tag_name, NULL);
- }
-}
-
-void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from,
- gboolean me,LinphoneChatRoom *cr,LinphoneChatMessage *msg, gboolean hist){
- GtkTextView *text=GTK_TEXT_VIEW(linphone_gtk_get_widget(w,"textview"));
- GtkTextBuffer *buffer=gtk_text_view_get_buffer(text);
- GtkTextIter iter;
- char *from_str=linphone_address_as_string_uri_only(from);
- gchar *from_message=(gchar *)g_object_get_data(G_OBJECT(w),"from_message");
- GHashTable *table=(GHashTable*)g_object_get_data(G_OBJECT(w),"table");
- const GRegex *uri_regex = get_uri_regex();
- GMatchInfo *match_info = NULL;
- const char *message = linphone_chat_message_get_text(msg);
- const char *external_body_url = linphone_chat_message_get_external_body_url(msg);
- time_t t;
- char buf[80];
- time_t tnow;
- struct tm *tm;
- int tnow_day;
- int tnow_year;
- int pos = 0, start, end;
-
- gtk_text_buffer_get_end_iter(buffer, &iter);
- if (g_strcmp0(from_message,from_str)!=0){
- gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, get_display_name(from), -1,
- "from", me ? "me" : NULL, NULL);
- gtk_text_buffer_insert_with_tags_by_name(buffer,&iter, " : ", -1,
- "from", me ? "me" : NULL, NULL);
- gtk_text_buffer_insert(buffer,&iter,"\n",-1);
- g_free(from_message);
- g_object_set_data(G_OBJECT(w),"from_message",g_strdup(from_str));
- }
- ms_free(from_str);
-
- if (external_body_url) message = external_body_url;
-
- // Inserts message body and tags URIs as hypertext links
- if(message) {
- g_regex_match(uri_regex, message, 0, &match_info);
- while(g_match_info_matches(match_info)) {
- g_match_info_fetch_pos(match_info, 0, &start, &end);
- if(pos < start) write_body(buffer, &iter, &message[pos], start-pos, me, FALSE);
- write_body(buffer, &iter, &message[start], end-start, me, TRUE);
- pos = end;
- g_match_info_next(match_info, NULL);
- }
- if((size_t)pos < strlen(message)) write_body(buffer, &iter, &message[pos], -1, me, FALSE);
- gtk_text_buffer_insert(buffer,&iter,"\n",-1);
- g_match_info_free(match_info);
- }
-
- g_hash_table_insert(table,GUINT_TO_POINTER(linphone_chat_message_get_storage_id(msg)),GINT_TO_POINTER(gtk_text_iter_get_line(&iter)));
- switch (linphone_chat_message_get_state (msg)){
- case LinphoneChatMessageStateInProgress:
- gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,_("Sending..."),-1,"status", me ? "me" : NULL, NULL);
- break;
- case LinphoneChatMessageStateDelivered:
- t=linphone_chat_message_get_time(msg);
- tnow=time(NULL);
- tm=localtime(&tnow);
- tnow_day=tm->tm_yday;
- tnow_year=tm->tm_year;
- tm=localtime(&t);
- if(tnow_day != tm->tm_yday || (tnow_day == tm->tm_yday && tnow_year != tm->tm_year)) {
- strftime(buf,80,"%a %x, %H:%M",tm);
- } else {
- strftime(buf,80,"%H:%M:%S",tm);
- }
- gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,buf,-1,"status", me ? "me" : NULL, NULL);
- break;
- case LinphoneChatMessageStateNotDelivered:
- gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,_("Message not sent"),-1,"status", me ? "me" : NULL, NULL);
- break;
- default:
- break;
- }
- gtk_text_buffer_insert(buffer,&iter,"\n",-1);
- g_idle_add((GSourceFunc)scroll_to_end,text);
-}
-
-void update_chat_state_message(LinphoneChatMessageState state,LinphoneChatMessage *msg){
- GtkWidget *main_window=linphone_gtk_get_main_window();
- GtkWidget *friendlist=linphone_gtk_get_widget(main_window,"contact_list");
- GtkWidget *page=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview");
- GHashTable *table=(GHashTable*)g_object_get_data(G_OBJECT(page),"table");
-
- if (page!=NULL) {
- char buf[80];
- time_t t;
- struct tm *tm;
- GtkTextView *text=GTK_TEXT_VIEW(linphone_gtk_get_widget(page,"textview"));
- GtkTextBuffer *b=gtk_text_view_get_buffer(text);
- GtkTextIter iter;
- GtkTextIter end;
- GtkTextIter start;
- gint line;
- gpointer hash_table_ptr = g_hash_table_lookup(table,GUINT_TO_POINTER(linphone_chat_message_get_storage_id(msg)));
- if (hash_table_ptr != NULL) {
- line = GPOINTER_TO_INT(hash_table_ptr);
- gtk_text_buffer_get_iter_at_line(b,&iter,line);
- if(gtk_text_iter_get_chars_in_line(&iter) >0) {
- gtk_text_buffer_get_iter_at_line_offset(b,&start,line,
- gtk_text_iter_get_chars_in_line(&iter)-1);
- }else{
- gtk_text_buffer_get_iter_at_line_offset(b,&start,line,0);
- }
- gtk_text_buffer_get_iter_at_line_offset(b,&end,line,0);
- gtk_text_buffer_delete(b,&start,&end);
- gtk_text_buffer_get_iter_at_line(b,&iter,line);
-
- switch (state) {
- case LinphoneChatMessageStateInProgress:
- gtk_text_buffer_insert_with_tags_by_name(b,&iter,_("Sending..."),-1,"status", "me", NULL);
- break;
- case LinphoneChatMessageStateDelivered:
- t=time(NULL);
- tm=localtime(&t);
- strftime(buf,80,"%H:%M:%S",tm);
- gtk_text_buffer_insert_with_tags_by_name(b,&iter,(gchar*)buf,-1,"status", "me", NULL);
- break;
- case LinphoneChatMessageStateNotDelivered:
- gtk_text_buffer_insert_with_tags_by_name(b,&iter,_("Message not sent"),-1,"status", "me", NULL);
- break;
- default:
- break;
- }
- }
- }
-}
-
-static void on_chat_state_changed(LinphoneChatMessage *msg, LinphoneChatMessageState state){
- update_chat_state_message(state,msg);
-}
-
-void linphone_gtk_compose_text(void) {
- GtkWidget *main_window=linphone_gtk_get_main_window();
- GtkWidget *friendlist=linphone_gtk_get_widget(main_window,"contact_list");
- GtkWidget *w=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview");
- LinphoneChatRoom *cr=g_object_get_data(G_OBJECT(w),"cr");
- if (cr) {
- linphone_chat_room_compose(cr);
- linphone_gtk_mark_chat_read(cr);
- linphone_gtk_friend_list_update_button_display(GTK_TREE_VIEW(friendlist));
- }
-}
-
-void linphone_gtk_send_text(void){
- GtkWidget *main_window=linphone_gtk_get_main_window();
- GtkWidget *friendlist=linphone_gtk_get_widget(main_window,"contact_list");
- GtkWidget *w=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview");
- GtkWidget *entry=linphone_gtk_get_widget(w,"text_entry");
- const gchar *entered;
- LinphoneChatRoom *cr=g_object_get_data(G_OBJECT(w),"cr");
- entered=gtk_entry_get_text(GTK_ENTRY(entry));
- if (strlen(entered)>0) {
- LinphoneChatMessage *msg;
- LinphoneChatMessageCbs *cbs;
- msg=linphone_chat_message_ref(linphone_chat_room_create_message(cr,entered));
- cbs=linphone_chat_message_get_callbacks(msg);
- linphone_chat_message_cbs_set_msg_state_changed(cbs,on_chat_state_changed);
- linphone_chat_room_send_chat_message(cr,msg);
- linphone_gtk_push_text(w,linphone_chat_message_get_from(msg),
- TRUE,cr,msg,FALSE);
-
- // Disconnect and reconnect the "changed" signal to prevent triggering it when clearing the text entry.
- g_signal_handlers_disconnect_by_func(G_OBJECT(entry),(GCallback)linphone_gtk_compose_text,NULL);
- gtk_entry_set_text(GTK_ENTRY(entry),"");
- g_signal_connect_swapped(G_OBJECT(entry),"changed",(GCallback)linphone_gtk_compose_text,NULL);
-
- linphone_chat_message_unref(msg);
- }
-}
-
-static void linphone_gtk_chat_message_destroy(LinphoneChatMessage *msg){
- linphone_chat_message_destroy(msg);
-}
-
-void linphone_gtk_free_list(bctbx_list_t *messages){
- bctbx_list_for_each(messages,(void (*)(void*))linphone_gtk_chat_message_destroy);
- bctbx_list_free(messages);
-}
-
-void display_history_message(GtkWidget *chat_view,bctbx_list_t *messages,const LinphoneAddress *with){
- if (messages != NULL){
- bctbx_list_t *it;
- char *from_str;
- char *with_str;
- gchar *tmp;
- for(it=messages;it!=NULL;it=it->next){
- LinphoneChatMessage *msg=(LinphoneChatMessage *)it->data;
- from_str=linphone_address_as_string_uri_only(linphone_chat_message_get_from(msg));
- with_str=linphone_address_as_string_uri_only(with);
- linphone_gtk_push_text(chat_view,strcmp(from_str,with_str)==0? with :
- linphone_chat_message_get_from(msg),
- strcmp(from_str,with_str)==0? FALSE : TRUE,
- linphone_chat_message_get_chat_room(msg),msg,TRUE);
- ms_free(from_str);
- ms_free(with_str);
- }
- tmp=g_object_get_data(G_OBJECT(chat_view),"from_message");
- if (tmp){
- g_object_set_data(G_OBJECT(chat_view),"from_message",NULL);
- g_free(tmp);
- }
-
- linphone_gtk_free_list(messages);
- }
-}
-
-static void linphone_gtk_chat_add_contact(const LinphoneAddress *addr){
- LinphoneFriend *lf=NULL;
- LinphoneCore *lc = linphone_gtk_get_core();
- gboolean show_presence=FALSE;
- char *uri=linphone_address_as_string(addr);
-
- lf=linphone_core_create_friend_with_address(lc, uri);
- ms_free(uri);
-
- linphone_friend_set_inc_subscribe_policy(lf,LinphoneSPWait);
- linphone_friend_send_subscribe(lf,show_presence);
-
- linphone_friend_set_address(lf,addr);
- linphone_core_add_friend(lc, lf);
- linphone_gtk_show_friends();
-}
-
-static GdkColor *_linphone_gtk_chatroom_get_link_color(GtkWidget *chatview) {
- GValue color_value = {0};
- g_value_init(&color_value, GDK_TYPE_COLOR);
- gtk_style_get_style_property(
- gtk_widget_get_style(chatview),
- G_OBJECT_TYPE(chatview),
- "link-color", &color_value);
-
- return (GdkColor *)g_value_get_boxed(&color_value);
-}
-
-static gboolean link_event_handler(GtkTextTag *tag, GObject *text_view,GdkEvent *event, GtkTextIter *iter, GtkWidget *chat_view) {
- if(event->type == GDK_BUTTON_PRESS) {
- GtkTextIter uri_begin = *iter;
- GtkTextIter uri_end = *iter;
- gchar *uri = NULL;
- LinphoneChatRoom *chat_room = (LinphoneChatRoom *)g_object_get_data(G_OBJECT(chat_view), "cr");
- GtkWidget *main_window = linphone_gtk_get_main_window();
- GtkWidget *friendlist = linphone_gtk_get_widget(main_window, "contact_list");
-
- gtk_text_iter_backward_to_tag_toggle(&uri_begin, tag);
- gtk_text_iter_forward_to_tag_toggle(&uri_end, tag);
- uri = gtk_text_iter_get_slice(&uri_begin, &uri_end);
- if(((GdkEventButton *)event)->button == 1) {
- linphone_gtk_open_browser(uri);
- } else if(((GdkEventButton *)event)->button == 3) {
- GtkMenu *menu = GTK_MENU(g_object_get_data(text_view, "link_ctx_menu"));
- g_object_set_data_full(G_OBJECT(menu), "uri", g_strdup(uri), g_free);
- gtk_menu_popup(menu, NULL, NULL, NULL, NULL, 3, gdk_event_get_time(event));
- }
- g_free(uri);
-
- linphone_gtk_mark_chat_read(chat_room);
- linphone_gtk_friend_list_update_button_display(GTK_TREE_VIEW(friendlist));
-
- return TRUE;
- }
- return FALSE;
-}
-
-static void chatroom_enable_hand_cursor(GdkWindow *window, gboolean hand_cursor_enabled) {
-#if GTK_CHECK_VERSION(2,22,0)
- GdkCursor *cursor = gdk_window_get_cursor(window);
- GdkCursor *new_cursor = NULL;
- if(!hand_cursor_enabled && gdk_cursor_get_cursor_type(cursor) != GDK_XTERM) {
- new_cursor = gdk_cursor_new(GDK_XTERM);
- } else if(hand_cursor_enabled && gdk_cursor_get_cursor_type(cursor) != GDK_HAND1) {
- new_cursor = gdk_cursor_new(GDK_HAND1);
- }
- if(new_cursor) {
- gdk_window_set_cursor(window, new_cursor);
- gdk_cursor_unref(new_cursor);
- }
-#endif
-}
-
-static gboolean chatroom_event(GtkWidget *widget, GdkEvent *event, gpointer user_data) {
- gint wx, wy, bx, by;
- GtkTextView *chatroom = GTK_TEXT_VIEW(widget);
- GtkTextBuffer *buffer = gtk_text_view_get_buffer(chatroom);
- GtkTextTag *link_tag = gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table(buffer), "link");
- GdkWindow *window = gtk_text_view_get_window(chatroom, GTK_TEXT_WINDOW_TEXT);
- GtkTextIter iter;
- if(event->type == GDK_MOTION_NOTIFY) {
- GdkEventMotion *motion_ev = (GdkEventMotion *)event;
- wx = (gint)motion_ev->x;
- wy = (gint)motion_ev->y;
- gtk_text_view_window_to_buffer_coords(chatroom, GTK_TEXT_WINDOW_TEXT, wx, wy, &bx, &by);
- gtk_text_view_get_iter_at_location(chatroom, &iter, bx, by);
- if(gtk_text_iter_has_tag(&iter, link_tag)) {
- chatroom_enable_hand_cursor(window, TRUE);
- } else {
- chatroom_enable_hand_cursor(window, FALSE);
- }
- }
- return FALSE;
-}
-
-static gboolean copy_uri_into_clipboard_handler(GtkMenuItem *menuitem, gpointer user_data) {
- GtkWidget *menu = gtk_widget_get_parent(GTK_WIDGET(menuitem));
- const gchar *uri = (const gchar *)g_object_get_data(G_OBJECT(menu), "uri");
- GtkClipboard *clipboard = NULL;
- GdkAtom clipboard_atom = gdk_atom_intern("CLIPBOARD", TRUE);
- if(clipboard_atom == GDK_NONE) {
- g_warning("Could not find CLIPBOARD atom");
- return FALSE;
- }
- clipboard = gtk_clipboard_get(clipboard_atom);
- if(uri) gtk_clipboard_set_text(clipboard, uri, -1);
- return FALSE;
-}
-
-static void refresh_lime_icon(GtkWidget* chat_view, LinphoneChatRoom*cr) {
- GtkWidget *lime_icon = linphone_gtk_get_widget(chat_view, "lime_icon");
- if (linphone_chat_room_lime_available(cr)) {
- gtk_widget_show(lime_icon);
- } else {
- gtk_widget_hide(lime_icon);
- }
-}
-
-static gint linphone_gtk_window_focused(GtkWidget* widget, GdkEvent *event, gpointer user_data) {
- // if we are in a chat, mark it as read
- GtkWidget *main_window=linphone_gtk_get_main_window();
- GtkWidget *friendlist=linphone_gtk_get_widget(main_window,"contact_list");
- GtkWidget *w=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview");
- LinphoneChatRoom *cr=w?g_object_get_data(G_OBJECT(w),"cr"):NULL;
- if (cr) {
- linphone_gtk_mark_chat_read(cr);
- }
- refresh_lime_icon(w, cr);
- return FALSE;
-}
-
-GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddress *with){
- GtkWidget *chat_view=linphone_gtk_create_widget("chatroom_frame");
- GtkWidget *main_window=linphone_gtk_get_main_window();
- GtkNotebook *notebook=(GtkNotebook *)linphone_gtk_get_widget(main_window,"viewswitch");
- GtkWidget *text=linphone_gtk_get_widget(chat_view,"textview");
- GdkColor color_grey = {0, 32512, 32512, 32512};
- GdkColor color_light_grey = {0, 56832, 60928, 61952};
- GdkColor color_black = {0};
- int idx;
- GtkWidget *button;
- GtkWidget *entry = linphone_gtk_get_widget(chat_view,"text_entry");
- bctbx_list_t *messages;
- GHashTable *table;
- GtkTextTag *tmp_tag;
- GtkWidget *link_ctx_menu = gtk_menu_new();
- GtkWidget *link_ctx_menu_copy_item = gtk_menu_item_new_with_label(_("Copy"));
-
- gtk_notebook_append_page(notebook,chat_view,create_tab_chat_header(cr,with));
- idx = gtk_notebook_page_num(notebook, chat_view);
- gtk_notebook_set_current_page(notebook, idx);
- gtk_widget_show(chat_view);
- table=g_hash_table_new_full(g_direct_hash,g_direct_equal,NULL,NULL);
- g_object_set_data(G_OBJECT(chat_view),"cr",cr);
- g_object_set_data(G_OBJECT(chat_view),"from_message",NULL);
- g_object_set_data_full(G_OBJECT(chat_view),"table",table,(GDestroyNotify)g_hash_table_destroy);
-
- gtk_text_buffer_create_tag(
- gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)),
- "me",
- "foreground_gdk", &color_black,
- "paragraph-background-gdk", &color_light_grey,
- NULL);
-
- gtk_text_buffer_create_tag(
- gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)),
- "from",
- "weight", PANGO_WEIGHT_BOLD,
- NULL);
-
- gtk_text_buffer_create_tag(
- gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)),
- "body",
- "indent", 10,
- NULL);
-
- gtk_text_buffer_create_tag(
- gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)),
- "status",
- "size-points", 9.0,
- "foreground_gdk", &color_grey,
- "style", PANGO_STYLE_ITALIC,
- "justification", GTK_JUSTIFY_RIGHT,
- NULL);
-
- tmp_tag = gtk_text_buffer_create_tag(
- gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)),
- "link",
- "underline", PANGO_UNDERLINE_SINGLE,
- "foreground_gdk", _linphone_gtk_chatroom_get_link_color(chat_view),
- NULL);
- g_signal_connect(G_OBJECT(tmp_tag), "event", G_CALLBACK(link_event_handler), chat_view);
- g_signal_connect(G_OBJECT(text), "event", G_CALLBACK(chatroom_event), NULL);
- gtk_menu_shell_append(GTK_MENU_SHELL(link_ctx_menu), link_ctx_menu_copy_item);
- g_signal_connect(G_OBJECT(link_ctx_menu_copy_item), "activate", G_CALLBACK(copy_uri_into_clipboard_handler), NULL);
- gtk_widget_show_all(link_ctx_menu);
- g_object_set_data_full(G_OBJECT(text), "link_ctx_menu", link_ctx_menu, g_object_unref);
- g_object_ref_sink(G_OBJECT(link_ctx_menu));
-
- messages = linphone_chat_room_get_history(cr,NB_MSG_HIST);
- display_history_message(chat_view,messages,with);
- button = linphone_gtk_get_widget(chat_view,"send");
- g_signal_connect_swapped(G_OBJECT(button),"clicked",(GCallback)linphone_gtk_send_text,NULL);
-
- g_signal_connect_swapped(G_OBJECT(entry),"activate",(GCallback)linphone_gtk_send_text,NULL);
- g_signal_connect_swapped(G_OBJECT(entry),"changed",(GCallback)linphone_gtk_compose_text,NULL);
- g_signal_connect(G_OBJECT(notebook),"switch_page",(GCallback)linphone_gtk_notebook_tab_select,NULL);
-
- gtk_signal_connect(GTK_OBJECT(main_window), "focus-in-event", GTK_SIGNAL_FUNC(linphone_gtk_window_focused), NULL);
-
- refresh_lime_icon(chat_view, cr);
-
- return chat_view;
-}
-
-LinphoneChatRoom * linphone_gtk_create_chatroom(const LinphoneAddress *with){
- LinphoneChatRoom *cr=linphone_core_get_chat_room(linphone_gtk_get_core(), with);
- return cr;
-}
-
-void linphone_gtk_load_chatroom(LinphoneChatRoom *cr,const LinphoneAddress *uri,GtkWidget *chat_view){
- GtkWidget *main_window=linphone_gtk_get_main_window ();
- GtkWidget *notebook = linphone_gtk_get_widget(main_window, "viewswitch");
- LinphoneChatRoom *cr2=(LinphoneChatRoom *)g_object_get_data(G_OBJECT(chat_view),"cr");
- const LinphoneAddress *from=linphone_chat_room_get_peer_address(cr2);
- char *from_str=linphone_address_as_string_uri_only(from);
- char *uri_str=linphone_address_as_string(uri);
- char *uri_only=linphone_address_as_string_uri_only(uri);
- bctbx_list_t *messages=NULL;
-
- if(g_strcmp0(from_str,uri_only)!=0){
- GtkTextView *text_view=GTK_TEXT_VIEW(linphone_gtk_get_widget(chat_view,"textview"));
- GtkTextIter start;
- GtkTextIter end;
- GtkTextBuffer *text_buffer;
-
- text_buffer=gtk_text_view_get_buffer(text_view);
- gtk_text_buffer_get_bounds(text_buffer, &start, &end);
- gtk_text_buffer_delete (text_buffer, &start, &end);
- update_chat_header(GTK_NOTEBOOK(notebook), chat_view, cr, uri);
- g_object_set_data(G_OBJECT(chat_view),"cr",cr);
- g_object_set_data(G_OBJECT(linphone_gtk_get_widget(main_window,"contact_list")),"chatview",(gpointer)chat_view);
- messages=linphone_chat_room_get_history(cr,NB_MSG_HIST);
- g_object_set_data(G_OBJECT(chat_view),"from_message",g_strdup(uri_str));
- display_history_message(chat_view,messages,uri);
- gtk_text_buffer_get_end_iter(text_buffer,&end);
- gtk_text_view_scroll_to_iter(text_view,&end,0,FALSE,1.0,0);
- }
- refresh_lime_icon(chat_view, cr);
-
- ms_free(from_str);
- ms_free(uri_str);
- ms_free(uri_only);
-}
-
-void linphone_gtk_chat_destroyed(GtkWidget *w){
- /*
- LinphoneChatRoom *cr=(LinphoneChatRoom*)g_object_get_data(G_OBJECT(w),"cr");
- */
-}
-
-
-void linphone_gtk_text_received ( LinphoneCore *lc, LinphoneChatRoom *room,
- LinphoneChatMessage *msg ) {
- GtkWidget *main_window=linphone_gtk_get_main_window();
- GtkWidget *friendlist=linphone_gtk_get_widget ( main_window,"contact_list" );
- GtkWidget *w;
- gboolean send=TRUE;
- /*GtkNotebook *notebook= ( GtkNotebook * ) linphone_gtk_get_widget ( main_window,"viewswitch" );*/
- const LinphoneAddress *from= linphone_chat_message_get_from ( msg );
-
- w= ( GtkWidget* ) g_object_get_data ( G_OBJECT ( friendlist ),"chatview" );
- if ( w!=NULL ) {
- /* Chat window opened */
- const LinphoneAddress *from_chatview=linphone_gtk_friend_list_get_active_address();
- if (linphone_address_weak_equal(from,from_chatview)) {
- send=TRUE;
- } else {
- if ( !linphone_gtk_friend_list_is_contact ( linphone_chat_message_get_from ( msg ) ) ) {
- linphone_gtk_chat_add_contact ( linphone_chat_message_get_from ( msg ) );
- }
- send=FALSE;
- }
- } else {
- /* Chat window closed */
-#ifdef SQLITE_STORAGE_ENABLED
- send=FALSE;
-#else
- send=TRUE;
-#endif
- if ( !linphone_gtk_friend_list_is_contact ( linphone_chat_message_get_from ( msg ) ) ) {
- linphone_gtk_chat_add_contact ( linphone_chat_message_get_from ( msg ) );
- }
- w=linphone_gtk_init_chatroom ( room,linphone_chat_message_get_from ( msg ) );
- g_object_set_data ( G_OBJECT ( friendlist ),"chatview", ( gpointer ) w );
- linphone_gtk_friend_list_set_active_address(from);
- }
-
-#ifdef HAVE_GTK_OSX
- /* Notified when a new message is sent */
- linphone_gtk_status_icon_set_blinking ( TRUE );
-#else
- if ( !gtk_window_is_active ( GTK_WINDOW ( main_window ) ) ) {
- if ( !GPOINTER_TO_INT ( g_object_get_data ( G_OBJECT ( w ),"is_notified" ) ) ) {
- linphone_gtk_notify ( NULL, msg, NULL );
- g_object_set_data ( G_OBJECT ( w ),"is_notified",GINT_TO_POINTER ( TRUE ) );
- } else {
- g_object_set_data ( G_OBJECT ( w ),"is_notified",GINT_TO_POINTER ( FALSE ) );
- }
- }
-#endif
- if ( send ) {
- linphone_gtk_push_text ( w,linphone_chat_message_get_from ( msg ),
- FALSE,room,msg,FALSE );
- }
- linphone_core_play_local(lc,linphone_gtk_get_sound_path("incoming_chat.wav"));
- linphone_gtk_show_friends();
-
-}
-
-void linphone_gtk_is_composing_received(LinphoneCore *lc, LinphoneChatRoom *room) {
- GtkWidget *main_window = linphone_gtk_get_main_window();
- GtkWidget *friendlist = linphone_gtk_get_widget(main_window, "contact_list");
- linphone_gtk_friend_list_update_button_display(GTK_TREE_VIEW(friendlist));
-}
diff --git a/gtk/chatroom_frame.ui b/gtk/chatroom_frame.ui
deleted file mode 100644
index d7b8137a3..000000000
--- a/gtk/chatroom_frame.ui
+++ /dev/null
@@ -1,127 +0,0 @@
-
-
-
-
-
- True
- False
- 0
- none
-
-
- True
- False
-
-
- True
- True
- never
-
-
- True
- True
- 4
- False
- word-char
- False
-
-
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- 10
-
-
- True
- False
- 16
- linphone-security-ok
-
-
- False
- False
- 0
-
-
-
-
- True
- True
- •
- True
- False
- False
- True
- True
-
-
- True
- True
- 1
-
-
-
-
- True
- True
- True
-
-
- True
- False
-
-
- True
- False
- linphone-chat-send
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- Send
-
-
- True
- True
- 7
- 1
-
-
-
-
-
-
- False
- False
- 2
-
-
-
-
- False
- False
- 1
-
-
-
-
-
-
-
-
-
diff --git a/gtk/conf_frame.ui b/gtk/conf_frame.ui
deleted file mode 100644
index c9503e7f6..000000000
--- a/gtk/conf_frame.ui
+++ /dev/null
@@ -1,85 +0,0 @@
-
-
-
-
-
- True
- False
- 0
- none
-
-
- True
- False
-
-
- True
- False
-
-
- End conference
- True
- True
- True
-
-
- False
- False
- end
- 0
-
-
-
-
- True
- True
- end
- 0
-
-
-
-
- True
- False
-
-
- Record
- True
- True
- True
-
-
-
- False
- False
- 0
-
-
-
-
- True
- False
- True
- char
-
-
- True
- True
- 1
-
-
-
-
- False
- False
- end
- 1
-
-
-
-
-
-
-
-
-
diff --git a/gtk/conference.c b/gtk/conference.c
deleted file mode 100644
index 9073d629e..000000000
--- a/gtk/conference.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/***************************************************************************
- * gtk/conference.c
- *
- * Mon Sep 12, 2011
- * Copyright 2011 Belledonne Communications
- * Author: Simon Morlat
- * Email simon dot morlat at linphone dot org
- ****************************************************************************/
-
-/*
- * 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 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "linphone.h"
-
-#define PADDING_PIXELS 4
-
-/*
- * conferencee_box = a vbox where participants are added or removed
- * conf_frame = the conference tab
- */
-
-static GtkWidget *create_conference_label(void){
- GtkWidget *box=gtk_hbox_new(FALSE,0);
- gtk_box_pack_start(GTK_BOX(box),gtk_image_new_from_icon_name("linphone-conference-start",GTK_ICON_SIZE_MENU),FALSE,FALSE,0);
- gtk_box_pack_end(GTK_BOX(box),gtk_label_new(_("Conference")),TRUE,FALSE,0);
- gtk_widget_show_all(box);
- return box;
-}
-
-static void init_local_participant(GtkWidget *participant){
- GtkWidget *sound_meter;
- GtkWidget *button=linphone_gtk_get_widget(participant,"conference_control");
- gtk_label_set_markup(GTK_LABEL(linphone_gtk_get_widget(participant,"callee_name_label")),_("Me"));
- sound_meter=linphone_gtk_get_widget(participant,"sound_indicator");
- linphone_gtk_enable_mute_button(GTK_BUTTON(button),TRUE);
- g_signal_connect(G_OBJECT(button),"clicked",(GCallback)linphone_gtk_mute_clicked,NULL);
- gtk_widget_show(button);
- linphone_gtk_init_audio_meter(sound_meter, (get_volume_t) linphone_core_get_conference_local_input_volume, linphone_gtk_get_core());
-}
-
-static GtkWidget *get_conferencee_box(GtkWidget *mw){
- GtkWidget *box=(GtkWidget*)g_object_get_data(G_OBJECT(mw),"conferencee_box");
- return box;
-}
-
-static GtkWidget *find_conferencee_from_call(LinphoneCall *call){
- GtkWidget *mw=linphone_gtk_get_main_window();
- GtkWidget *conferencee_box=get_conferencee_box(mw);
- GList *elem;
- GtkWidget *ret=NULL;
-
- if (conferencee_box==NULL) return NULL;
-
- if (call!=NULL){
- GList *l=gtk_container_get_children(GTK_CONTAINER(conferencee_box));
- for(elem=l;elem!=NULL;elem=elem->next){
- GtkWidget *frame=(GtkWidget*)elem->data;
- if (call==g_object_get_data(G_OBJECT(frame),"call")){
- ret=frame;
- break;
- }
- }
- g_list_free(l);
- }
- //g_message("find_conferencee_from_call(): found widget %p for call %p",ret,call);
- return ret;
-}
-
-static GtkWidget * create_conference_panel(void){
- GtkWidget *mw=linphone_gtk_get_main_window();
- GtkWidget *conf_frame=linphone_gtk_create_widget("conf_frame");
- GtkWidget *conf_box=linphone_gtk_get_widget(conf_frame,"conf_box");
- GtkWidget *button_conf=linphone_gtk_get_widget(conf_frame,"terminate_conf");
- GtkWidget *image=gtk_image_new_from_icon_name("linphone-stop-call", GTK_ICON_SIZE_BUTTON);
- GtkWidget *box;
- GtkWidget *viewswitch=linphone_gtk_get_widget(mw,"viewswitch");
- GtkWidget *participant;
- GtkWidget *record = linphone_gtk_get_widget(conf_frame, "conf_record_button");
-
- gtk_button_set_image(GTK_BUTTON(record), gtk_image_new_from_icon_name("linphone-record", GTK_ICON_SIZE_BUTTON));
- gtk_button_set_image(GTK_BUTTON(button_conf),image);
- g_signal_connect_swapped(G_OBJECT(button_conf),"clicked",(GCallback)linphone_gtk_terminate_call,NULL);
- g_object_set_data(G_OBJECT(mw),"conf_frame",(gpointer)conf_frame);
-
- box=gtk_vbox_new(FALSE,0);
- participant=linphone_gtk_create_widget("callee_frame");
- gtk_widget_show(participant);
- gtk_box_set_homogeneous(GTK_BOX(box),TRUE);
- init_local_participant(participant);
- gtk_box_pack_start(GTK_BOX(box),participant,FALSE,FALSE,PADDING_PIXELS);
- gtk_widget_show(box);
- g_object_set_data(G_OBJECT(mw),"conferencee_box",box);
- gtk_box_pack_start(GTK_BOX(conf_box),box,FALSE,FALSE,PADDING_PIXELS);
-
- gtk_notebook_append_page(GTK_NOTEBOOK(viewswitch),conf_frame,
- create_conference_label());
- return conf_frame;
-}
-
-void linphone_gtk_set_in_conference(LinphoneCall *call){
- GtkWidget *mw=linphone_gtk_get_main_window();
- GtkWidget *conf_frame=(GtkWidget *)g_object_get_data(G_OBJECT(mw),"conf_frame");
- GtkWidget *viewswitch=linphone_gtk_get_widget(mw,"viewswitch");
- GtkWidget *participant;
-
- if(conf_frame==NULL){
- conf_frame=create_conference_panel();
- }
- participant=find_conferencee_from_call(call);
-
- if (participant==NULL){
- /*create and add it */
- GtkWidget *conferencee_box=get_conferencee_box(mw);
- GtkWidget *sound_meter;
- const LinphoneAddress *addr=linphone_call_get_remote_address(call);
- gchar *markup;
-
- participant=linphone_gtk_create_widget("callee_frame");
- gtk_widget_show(participant);
- if (linphone_address_get_display_name(addr)!=NULL){
- markup=g_strdup_printf("%s",linphone_address_get_display_name(addr));
- }else{
- char *tmp=linphone_address_as_string_uri_only(addr);
- markup=g_strdup_printf("%s",tmp);
- ms_free(tmp);
- }
- gtk_label_set_markup(GTK_LABEL(linphone_gtk_get_widget(participant,"callee_name_label")),markup);
- g_free(markup);
- sound_meter=linphone_gtk_get_widget(participant,"sound_indicator");
- linphone_gtk_init_audio_meter(sound_meter, (get_volume_t) linphone_call_get_play_volume, call);
- gtk_box_pack_start(GTK_BOX(conferencee_box),participant,FALSE,FALSE,PADDING_PIXELS);
- g_object_set_data_full(G_OBJECT(participant),"call",linphone_call_ref(call),(GDestroyNotify)linphone_call_unref);
- gtk_notebook_set_current_page(GTK_NOTEBOOK(viewswitch),
- gtk_notebook_page_num(GTK_NOTEBOOK(viewswitch),conf_frame));
- }
-}
-
-void linphone_gtk_terminate_conference_participant(LinphoneCall *call){
- GtkWidget *frame=find_conferencee_from_call(call);
- if (frame){
- gtk_widget_set_sensitive(frame,FALSE);
- }
-}
-
-void linphone_gtk_unset_from_conference(LinphoneCall *call){
- GtkWidget *frame=find_conferencee_from_call(call);
-
- if (frame){
- GtkWidget *mw=linphone_gtk_get_main_window();
- GtkWidget *conf_frame=(GtkWidget *)g_object_get_data(G_OBJECT(mw),"conf_frame");
- GtkWidget *conferencee_box=g_object_get_data(G_OBJECT(mw),"conferencee_box");
- GList *children;
-
- g_message("Removing a participant from conference");
- gtk_widget_destroy(frame);
- children=gtk_container_get_children(GTK_CONTAINER(conferencee_box));
- if (g_list_length(children)==1){ /* only local participant */
- /*the conference is terminated */
- g_message("The conference is terminated");
- g_object_set_data(G_OBJECT(mw),"conferencee_box",NULL);
- gtk_widget_destroy(conf_frame);
- g_object_set_data(G_OBJECT(mw),"conf_frame",NULL);
- }
- g_list_free(children);
- }
-}
-
-bool_t linphone_gtk_call_is_in_conference_view(LinphoneCall *call) {
- return (find_conferencee_from_call(call) != NULL);
-}
diff --git a/gtk/config-fetching.c b/gtk/config-fetching.c
deleted file mode 100644
index 59a40a0ca..000000000
--- a/gtk/config-fetching.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
-linphone, gtk-glade interface.
-Copyright (C) 2008 Simon MORLAT (simon.morlat@linphone.org)
-
-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 2
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include "linphone.h"
-#include "linphone/lpconfig.h"
-
-
-void linphone_gtk_set_configuration_uri(void){
- GtkWidget *w=linphone_gtk_create_window("config-uri", linphone_gtk_get_main_window());
- GtkWidget *entry=linphone_gtk_get_widget(w,"uri_entry");
- const char *uri=linphone_core_get_provisioning_uri(linphone_gtk_get_core());
- if (uri) gtk_entry_set_text(GTK_ENTRY(entry),uri);
- gtk_widget_show(w);
-}
-
-void linphone_gtk_config_uri_changed(GtkWidget *button){
- GtkWidget *w=gtk_widget_get_toplevel(button);
- GtkWidget *entry=linphone_gtk_get_widget(w,"uri_entry");
- const char *uri=gtk_entry_get_text(GTK_ENTRY(entry));
-
- if (uri && (strlen(uri)==0 || strcmp(uri,"https://")==0)) uri=NULL;
-
- if(linphone_core_set_provisioning_uri(linphone_gtk_get_core(),uri) == 0) {
- gtk_widget_destroy(w);
- if (uri){
-#ifndef _WIN32
- linphone_gtk_schedule_restart();
- gtk_main_quit();
-#else
- GtkWidget *dialog = gtk_message_dialog_new(GTK_WINDOW(linphone_gtk_get_main_window()),
- GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_INFO,
- GTK_BUTTONS_OK,
- _("Remote provisioning URI successfully set. Please restart Linphone in order to load the new remote settings"));
- g_signal_connect_swapped(G_OBJECT(dialog), "response", G_CALLBACK(gtk_widget_destroy), dialog);
- gtk_widget_show(dialog);
-#endif
- }
- } else {
- GtkWidget *dialog = gtk_message_dialog_new(GTK_WINDOW(w),
- GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_OK,
- _("Invalid remote provisioning URI"));
- g_signal_connect_swapped(G_OBJECT(dialog), "response", G_CALLBACK(gtk_widget_destroy), dialog);
- gtk_widget_show(dialog);
- }
-}
-
-void linphone_gtk_config_uri_cancel(GtkWidget *button){
- GtkWidget *w=gtk_widget_get_toplevel(button);
- gtk_widget_destroy(w);
-}
-
-GtkWidget * linphone_gtk_show_config_fetching(void){
- LinphoneCore *lc=linphone_gtk_get_core();
- GtkWidget *w=linphone_gtk_create_window("provisioning-fetch", linphone_gtk_get_main_window());
- g_message("Fetching started");
- gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(w),_("fetching from %s"),linphone_core_get_provisioning_uri(lc));
-#if GTK_CHECK_VERSION(2,20,0)
- {
- GtkWidget *spinner=gtk_spinner_new();
- gtk_message_dialog_set_image(GTK_MESSAGE_DIALOG(w),spinner);
- }
-#endif
- gtk_widget_show(w);
- return w;
-}
-
-void linphone_gtk_close_config_fetching(GtkWidget *w, LinphoneConfiguringState state){
- LinphoneCore *lc=linphone_gtk_get_core();
- gtk_widget_destroy(w);
- g_message("Fetching finished");
- if (state==LinphoneConfiguringFailed){
- GtkWidget *msg=gtk_message_dialog_new(NULL,0,GTK_MESSAGE_ERROR,GTK_BUTTONS_CLOSE,_("Downloading of remote configuration from %s failed."),
- linphone_core_get_provisioning_uri(lc));
- g_signal_connect(G_OBJECT(msg),"response",(GCallback)gtk_widget_destroy,NULL);
- gtk_widget_show(msg);
- }
-}
-
diff --git a/gtk/config-uri.ui b/gtk/config-uri.ui
deleted file mode 100644
index 26c1fef0e..000000000
--- a/gtk/config-uri.ui
+++ /dev/null
@@ -1,97 +0,0 @@
-
-
-
-
-
- False
- 5
- Specifying a remote configuration URI
- dialog
-
-
- True
- False
- 2
-
-
- True
- False
- end
-
-
- gtk-cancel
- True
- True
- True
- True
-
-
-
- False
- False
- 0
-
-
-
-
- gtk-ok
- True
- True
- True
- True
-
-
-
- False
- False
- 1
-
-
-
-
- False
- True
- end
- 0
-
-
-
-
- True
- False
- This dialog allows to set an http or https address when configuration is to be fetched at startup.
-Please enter or modify the configuration URI below. After clicking OK, Linphone will restart automatically in order to fetch and take into account the new configuration.
- True
- 80
-
-
- True
- True
- 1
-
-
-
-
- True
- True
- •
- https://
- False
- False
- True
- True
-
-
- True
- True
- 2
-
-
-
-
-
- button2
- button1
-
-
-
diff --git a/gtk/contact.ui b/gtk/contact.ui
deleted file mode 100644
index db22d9310..000000000
--- a/gtk/contact.ui
+++ /dev/null
@@ -1,216 +0,0 @@
-
-
-
-
-
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 5
- center-on-parent
- dialog
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 2
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- end
-
-
- gtk-cancel
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- False
- True
-
-
-
- False
- False
- 0
-
-
-
-
- gtk-ok
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- False
- True
-
-
-
- False
- False
- 1
-
-
-
-
- False
- True
- end
- 0
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0
- none
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 12
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 2
- 2
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Name
-
-
- GTK_FILL
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- SIP Address
-
-
- 1
- 2
- GTK_FILL
-
-
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- False
- False
- True
- True
-
-
- 1
- 2
- GTK_FILL
-
-
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- False
- False
- True
- True
-
-
- 1
- 2
- 1
- 2
- GTK_FILL
-
-
-
-
- True
- False
- 0
-
-
-
-
- Show this contact presence status
- True
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- False
- True
- True
-
-
- True
- True
- 1
-
-
-
-
- Allow this contact to see my presence status
- True
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- False
- True
- True
-
-
- True
- True
- 2
-
-
-
-
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- <b>Contact information</b>
- True
-
-
-
-
- True
- True
- 1
-
-
-
-
-
- cancel_button
- ok_button
-
-
-
diff --git a/gtk/dscp_settings.ui b/gtk/dscp_settings.ui
deleted file mode 100644
index 7f5061f72..000000000
--- a/gtk/dscp_settings.ui
+++ /dev/null
@@ -1,178 +0,0 @@
-
-
-
-
-
- False
- 5
- DSCP settings
- True
- dialog
-
-
-
- True
- False
- 2
-
-
- True
- False
- end
-
-
- gtk-close
- True
- True
- True
- False
- True
-
-
- False
- False
- 0
-
-
-
-
- gtk-ok
- True
- True
- True
- False
- True
-
-
- False
- False
- 1
-
-
-
-
- False
- True
- end
- 0
-
-
-
-
- True
- False
- 0
- none
-
-
- True
- False
- 3
- 2
- True
-
-
- True
- True
- •
- True
- False
- False
- True
- True
-
-
- 1
- 2
-
-
-
-
- True
- True
- •
- True
- False
- False
- True
- True
-
-
- 1
- 2
- 1
- 2
-
-
-
-
- True
- True
- •
- True
- False
- False
- True
- True
-
-
- 1
- 2
- 2
- 3
-
-
-
-
- True
- False
- SIP
-
-
-
-
- True
- False
- Audio RTP stream
-
-
- 1
- 2
-
-
-
-
- True
- False
- Video RTP stream
-
-
- 2
- 3
-
-
-
-
-
-
- True
- False
- <b>Set DSCP values (in hexadecimal)</b>
- True
-
-
-
-
- False
- False
- 1
-
-
-
-
-
- button2
- button1
-
-
-
diff --git a/gtk/fonis.c b/gtk/fonis.c
deleted file mode 100644
index ebd3e4d94..000000000
--- a/gtk/fonis.c
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
-linphone, gtk-glade interface.
-Copyright (C) 2008 Simon MORLAT (simon.morlat@linphone.org)
-
-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 2
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-
-#include "linphone.h"
-
diff --git a/gtk/friendlist.c b/gtk/friendlist.c
deleted file mode 100644
index 239ba9477..000000000
--- a/gtk/friendlist.c
+++ /dev/null
@@ -1,1104 +0,0 @@
-/*
-linphone, gtk-glade interface.
-Copyright (C) 2008 Simon MORLAT (simon.morlat@linphone.org)
-
-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 2
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include "linphone.h"
-#include
-#include
-
-static GtkWidget *linphone_gtk_create_contact_menu(GtkWidget *contact_list);
-
-enum{
- FRIEND_PRESENCE_IMG,
- FRIEND_NAME,
- FRIEND_ID,
- FRIEND_CHATROOM,
- FRIEND_SIP_ADDRESS,
- FRIEND_CHAT,
- FRIEND_CALL_BUTTON_VISIBLE,
- FRIEND_CHAT_BUTTON_VISIBLE,
- FRIEND_LIST_NCOL
-};
-
-typedef struct _status_picture_tab_t{
- LinphoneOnlineStatus status;
- const char *img;
-} status_picture_tab_t;
-
-status_picture_tab_t status_picture_tab[]={
- { LinphoneStatusOnline , "linphone-status-online" },
- { LinphoneStatusBusy , "linphone-status-away" },
- { LinphoneStatusBeRightBack , "linphone-status-away" },
- { LinphoneStatusAway , "linphone-status-away" },
- { LinphoneStatusOnThePhone , "linphone-status-away" },
- { LinphoneStatusOutToLunch , "linphone-status-away" },
- { LinphoneStatusDoNotDisturb , "linphone-status-donotdisturb" },
- { LinphoneStatusMoved , "linphone-status-away" },
- { LinphoneStatusAltService , "linphone-status-away" },
- { LinphoneStatusOffline , "linphone-status-offline" },
- { LinphoneStatusPending , "linphone-status-offline" },
- { LinphoneStatusEnd , NULL }
-};
-
-static const char *status_to_icon_name(LinphoneOnlineStatus ss) {
- status_picture_tab_t *t=status_picture_tab;
- while(t->img!=NULL){
- if (ss==t->status) {
- return t->img;
- }
- ++t;
- }
- g_error("No icon name defined for status %i",ss);
- return NULL;
-}
-
-static GtkWidget *create_status_picture(LinphoneOnlineStatus ss, GtkIconSize icon_size){
- const char *icon_name = status_to_icon_name(ss);
- if(icon_name) return gtk_image_new_from_icon_name(icon_name, icon_size);
- else return NULL;
-}
-
-gboolean linphone_gtk_friend_list_is_contact(const LinphoneAddress *addr){
- LinphoneFriend *lf;
- char *addr_str=linphone_address_as_string(addr);
- lf=linphone_core_get_friend_by_address(linphone_gtk_get_core(),addr_str);
- if(lf == NULL){
- return FALSE;
- } return TRUE;
-}
-
-static void linphone_gtk_set_selection_to_uri_bar(GtkTreeView *treeview){
- GtkTreeSelection *select;
- GtkTreeIter iter;
- GtkTreeModel *model;
- LinphoneFriend *lf=NULL;
- gchar* friend;
- select = gtk_tree_view_get_selection (treeview);
- if (gtk_tree_selection_get_selected (select, &model, &iter)) {
- const LinphoneAddress *addr;
- gtk_tree_model_get (model, &iter,FRIEND_ID , &lf, -1);
- addr = linphone_friend_get_address(lf);
- if (addr) {
- friend=linphone_address_as_string(addr);
- gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(linphone_gtk_get_main_window(),"uribar")),friend);
- ms_free(friend);
- }
- }
-}
-
-void linphone_gtk_add_contact(void){
- GtkWidget *w=linphone_gtk_create_window("contact", linphone_gtk_get_main_window());
- int presence_enabled=linphone_gtk_get_ui_config_int("use_subscribe_notify",1);
-
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(w,"show_presence")),presence_enabled);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(w,"allow_presence")),
- presence_enabled);
- gtk_widget_show(w);
-}
-
-void linphone_gtk_edit_contact(GtkWidget *button){
- GtkWidget *w=gtk_widget_get_toplevel(button);
- GtkTreeSelection *select;
- GtkTreeIter iter;
- GtkTreeModel *model;
- LinphoneFriend *lf=NULL;
- select = gtk_tree_view_get_selection(GTK_TREE_VIEW(linphone_gtk_get_widget(w,"contact_list")));
- if (gtk_tree_selection_get_selected (select, &model, &iter))
- {
- gtk_tree_model_get (model, &iter,FRIEND_ID , &lf, -1);
- linphone_gtk_show_contact(lf, w);
- }
-}
-
-void linphone_gtk_remove_contact(GtkWidget *button){
- GtkWidget *w=gtk_widget_get_toplevel(button);
- GtkTreeSelection *select;
- GtkTreeIter iter;
- GtkTreeModel *model;
- LinphoneFriend *lf=NULL;
- LinphoneChatRoom *cr=NULL;
- select = gtk_tree_view_get_selection(GTK_TREE_VIEW(linphone_gtk_get_widget(w,"contact_list")));
- if (gtk_tree_selection_get_selected (select, &model, &iter))
- {
- gtk_tree_model_get (model, &iter,FRIEND_ID , &lf, -1);
- linphone_core_remove_friend(linphone_gtk_get_core(),lf);
- gtk_tree_model_get (model, &iter,FRIEND_CHATROOM , &cr, -1);
- linphone_chat_room_delete_history(cr);
- linphone_gtk_show_friends();
- }
-}
-
-gboolean linphone_gtk_on_key_press(GtkWidget *widget, GdkEvent *event, gpointer user_data) {
-
- if (event->type == GDK_KEY_PRESS && ((GdkEventKey*)event)->state & GDK_CONTROL_MASK) {
- int cpt;
- int key = -1;
- static int key_map[9] = {0};
- if (key_map[0] == 0) {
- GdkKeymapKey *keys = NULL;
- gint n_keys = 0;
- for (cpt = 0; cpt < 9; cpt++) {
- if (gdk_keymap_get_entries_for_keyval(gdk_keymap_get_default(),
- GDK_KEY_1+cpt, &keys, &n_keys))
- key_map[cpt] = keys->keycode;
- }
- }
-
- for(cpt = 0; cpt < 9 ; cpt++) {
- if (key_map[cpt] == (((GdkEventKey*)event)->hardware_keycode)) {
- key = cpt;
- break;
- }
- }
-
- if (key != -1) {
- GtkWidget *main_window = linphone_gtk_get_main_window();
- GtkWidget *friendlist = linphone_gtk_get_widget(main_window,"contact_list");
- GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(friendlist));
- GtkTreeIter iter;
-
- if (gtk_tree_model_get_iter_first(model, &iter)) {
- int index = 0;
- LinphoneFriend *lf = NULL;
- LinphoneChatRoom *cr;
- do{
- if (index == key) {
- const LinphoneAddress *addr;
- gtk_tree_model_get (model, &iter,FRIEND_CHATROOM , &cr, -1);
- gtk_tree_model_get (model, &iter,FRIEND_ID , &lf, -1);
- if (lf != NULL) {
- addr = linphone_friend_get_address(lf);
- if (addr != NULL) {
- linphone_gtk_friend_list_set_chat_conversation(addr);
- }
- }
- if (cr != NULL){
- linphone_gtk_mark_chat_read(cr);
- linphone_gtk_friend_list_update_button_display(GTK_TREE_VIEW(friendlist));
- }
- return TRUE;
- }
- index++;
- }while(gtk_tree_model_iter_next(model,&iter) && index <= 9);
- }
- }
- }
- return FALSE;
-}
-
-void linphone_gtk_delete_history(GtkWidget *button){
- GtkWidget *w=linphone_gtk_get_main_window();
- GtkTreeSelection *select;
- GtkTreeIter iter;
- GtkTreeModel *model;
- GtkWidget *chat_view;
- LinphoneFriend *lf=NULL;
- GtkWidget *friendlist;
-
- friendlist=linphone_gtk_get_widget(w,"contact_list");
- chat_view=(GtkWidget *)g_object_get_data(G_OBJECT(friendlist),"chatview");
- select = gtk_tree_view_get_selection(GTK_TREE_VIEW(friendlist));
- if (gtk_tree_selection_get_selected (select, &model, &iter))
- {
- LinphoneChatRoom *cr;
- gtk_tree_model_get (model, &iter,FRIEND_ID , &lf, -1);
- gtk_tree_model_get (model, &iter,FRIEND_CHATROOM , &cr, -1);
- linphone_chat_room_delete_history(cr);
- if(chat_view!=NULL){
- const LinphoneAddress *from=linphone_gtk_friend_list_get_active_address();
- const LinphoneAddress *addr=linphone_friend_get_address(lf);
- if (addr != NULL) {
- if(linphone_address_weak_equal(from,addr)){
- GtkTextView *text_view=GTK_TEXT_VIEW(linphone_gtk_get_widget(chat_view,"textview"));
- GtkTextIter start;
- GtkTextIter end;
- GtkTextBuffer *text_buffer;
-
- text_buffer=gtk_text_view_get_buffer(text_view);
- gtk_text_buffer_get_bounds(text_buffer, &start, &end);
- gtk_text_buffer_delete (text_buffer, &start, &end);
- g_object_set_data(G_OBJECT(chat_view),"from_message",NULL);
- }
- }
- }
- linphone_gtk_show_friends();
- }
-}
-
-static void linphone_gtk_call_selected(GtkTreeView *treeview){
- linphone_gtk_set_selection_to_uri_bar(treeview);
- linphone_gtk_start_call(linphone_gtk_get_widget(gtk_widget_get_toplevel(GTK_WIDGET(treeview)),
- "start_call"));
-}
-
-void linphone_gtk_friend_list_update_button_display(GtkTreeView *friendlist){
- GtkTreeIter iter, selected_iter;
- GtkTreeModel *model=gtk_tree_view_get_model(friendlist);
- GtkTreeSelection *select=gtk_tree_view_get_selection(friendlist);
- LinphoneChatRoom *cr=NULL;
- gboolean is_composing;
- int nbmsg=0;
- GtkTreePath *selected_path = NULL;
- GtkTreePath *hovered_row = (GtkTreePath *)g_object_get_data(G_OBJECT(friendlist), "hovered_row");
-
- if (gtk_tree_selection_get_selected(select, &model, &selected_iter)){
- selected_path = gtk_tree_model_get_path(model, &selected_iter);
- }
-
- if (gtk_tree_model_get_iter_first(model,&iter)) {
- do{
- const char *icon_name = NULL;
- gboolean show_chat_button = FALSE;
- gboolean show_call_button = FALSE;
- GtkTreePath *path = gtk_tree_model_get_path(model, &iter);
-
- gtk_tree_model_get (model, &iter,FRIEND_CHATROOM , &cr, -1);
- nbmsg=linphone_chat_room_get_unread_messages_count(cr);
- is_composing=linphone_chat_room_is_remote_composing(cr);
- if(nbmsg != 0){
- if (is_composing) icon_name = "linphone-chat-new-message-and-writing";
- else icon_name = "linphone-chat-new-message";
- show_chat_button = TRUE;
- } else {
- if (is_composing) {
- icon_name = "linphone-chat-writing";
- show_chat_button = TRUE;
- } else {
- icon_name = "linphone-chat-nothing";
- }
- }
-
- if ((selected_path && gtk_tree_path_compare(path, selected_path) == 0)
- || (hovered_row && gtk_tree_path_compare(path, hovered_row) == 0)){
- show_chat_button = TRUE;
- show_call_button = TRUE;
- }
-
- gtk_list_store_set(GTK_LIST_STORE(model),&iter,FRIEND_CHAT,icon_name,
- FRIEND_CHAT_BUTTON_VISIBLE, show_chat_button, -1);
- gtk_list_store_set(GTK_LIST_STORE(model), &iter, FRIEND_CALL_BUTTON_VISIBLE, show_call_button, -1);
-
- gtk_tree_path_free(path);
- }while(gtk_tree_model_iter_next(model,&iter));
- }
- if (selected_path) gtk_tree_path_free(selected_path);
-}
-
-static gboolean grab_focus(GtkWidget *w){
- gtk_widget_grab_focus(w);
- return FALSE;
-}
-
-void linphone_gtk_friend_list_set_active_address(const LinphoneAddress *addr){
- GtkWidget *w=linphone_gtk_get_main_window();
- GtkWidget *friendlist=linphone_gtk_get_widget(w,"contact_list");
- g_object_set_data_full(G_OBJECT(friendlist),"from", addr ? linphone_address_clone(addr) : NULL, (GDestroyNotify)linphone_address_unref);
-}
-
-const LinphoneAddress *linphone_gtk_friend_list_get_active_address(void){
- GtkWidget *w=linphone_gtk_get_main_window();
- GtkWidget *friendlist=linphone_gtk_get_widget(w,"contact_list");
- return (const LinphoneAddress*)g_object_get_data(G_OBJECT(friendlist),"from");
-}
-
-void linphone_gtk_friend_list_set_chat_conversation(const LinphoneAddress *la){
- GtkTreeIter iter;
- GtkListStore *store=NULL;
- GtkWidget *w = linphone_gtk_get_main_window();
- GtkWidget *friendlist=linphone_gtk_get_widget(w,"contact_list");
- GtkTreeModel *model=gtk_tree_view_get_model(GTK_TREE_VIEW(friendlist));
- GtkWidget *chat_view=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview");
- LinphoneFriend *lf=NULL;
- LinphoneChatRoom *cr=NULL;
- GtkNotebook *notebook=(GtkNotebook *)linphone_gtk_get_widget(w,"viewswitch");
- GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(friendlist));
-
- lf=linphone_core_find_friend(linphone_gtk_get_core(),la);
- if(lf==NULL){
- cr=linphone_gtk_create_chatroom(la);
- linphone_gtk_friend_list_set_active_address(la);
- } else {
- store=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(friendlist)));
- if (gtk_tree_model_get_iter_first(model,&iter)) {
- do{
- const LinphoneAddress *addr;
- gtk_tree_model_get(model, &iter,FRIEND_ID , &lf, -1);
- addr=linphone_friend_get_address(lf);
- if (addr != NULL) {
- if (linphone_address_weak_equal(addr,la)){
- gtk_tree_model_get (model, &iter,FRIEND_CHATROOM , &cr, -1);
- if(cr==NULL){
- cr=linphone_gtk_create_chatroom(addr);
- gtk_list_store_set(store,&iter,FRIEND_CHATROOM,cr,-1);
- }
- linphone_gtk_friend_list_set_active_address(addr);
- gtk_tree_selection_select_iter(selection, &iter);
- break;
- }
- }
- }while(gtk_tree_model_iter_next(model,&iter));
- }
- }
- if(cr) {
- if(chat_view == NULL){
- chat_view=linphone_gtk_init_chatroom(cr,la);
- g_object_set_data(G_OBJECT(friendlist),"chatview",(gpointer)chat_view);
- } else {
- linphone_gtk_load_chatroom(cr,la,chat_view);
- }
- gtk_notebook_set_current_page(notebook,gtk_notebook_page_num(notebook,chat_view));
- g_idle_add((GSourceFunc)grab_focus,linphone_gtk_get_widget(chat_view,"text_entry"));
- }
-}
-
-void linphone_gtk_notebook_tab_select(GtkNotebook *notebook,GtkWidget *page,guint page_num, gpointer data){
- GtkWidget *w=linphone_gtk_get_main_window();
- GtkWidget *friendlist=linphone_gtk_get_widget(w,"contact_list");
- GtkWidget *chat_view;
- LinphoneChatRoom *cr=NULL;
- chat_view=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview");
- if(page != NULL){
- notebook=(GtkNotebook *)linphone_gtk_get_widget(w,"viewswitch");
- if(gtk_notebook_page_num(notebook,page)==gtk_notebook_page_num(notebook,chat_view)){
- cr=g_object_get_data(G_OBJECT(chat_view),"cr");
- if(cr!=NULL){
- linphone_gtk_mark_chat_read(cr);
- linphone_gtk_show_friends();
- }
- }
- }
-}
-
-void linphone_gtk_chat_selected(GtkWidget *item){
- GtkWidget *w=gtk_widget_get_toplevel(item);
- GtkTreeSelection *select;
- GtkListStore *store=NULL;
- GtkTreeIter iter;
- GtkTreeModel *model;
- LinphoneFriend *lf=NULL;
- LinphoneChatRoom *cr=NULL;
- GtkWidget *friendlist=linphone_gtk_get_widget(w,"contact_list");
- GtkWidget *page;
-
- select=gtk_tree_view_get_selection(GTK_TREE_VIEW(friendlist));
- store=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(item)));
- if (gtk_tree_selection_get_selected (select, &model, &iter)){
- GtkNotebook *notebook=(GtkNotebook *)linphone_gtk_get_widget(w,"viewswitch");
- const LinphoneAddress *addr;
- gtk_tree_model_get (model, &iter,FRIEND_ID , &lf, -1);
- gtk_tree_model_get (model, &iter,FRIEND_CHATROOM , &cr, -1);
- addr=linphone_friend_get_address(lf);
- if (addr != NULL) {
- if(cr==NULL){
- cr=linphone_gtk_create_chatroom(addr);
- gtk_list_store_set(store,&iter,FRIEND_CHATROOM,cr,-1);
- }
- page=GTK_WIDGET(g_object_get_data(G_OBJECT(friendlist),"chatview"));
- linphone_gtk_friend_list_set_active_address(addr);
- if(page==NULL){
- page=linphone_gtk_init_chatroom(cr,addr);
- g_object_set_data(G_OBJECT(friendlist),"chatview",(gpointer)page);
- } else {
- linphone_gtk_load_chatroom(cr,addr,page);
- }
- linphone_gtk_mark_chat_read(cr);
- gtk_notebook_set_current_page(notebook,gtk_notebook_page_num(notebook,page));
- g_idle_add((GSourceFunc)grab_focus,linphone_gtk_get_widget(page,"text_entry"));
- }
- }
-}
-
-void linphone_gtk_contact_clicked(GtkTreeSelection *selection){
- GtkTreeView *friendlist = gtk_tree_selection_get_tree_view(selection);
- GtkWidget *mw = linphone_gtk_get_main_window();
- GtkWidget *edit_button = linphone_gtk_get_widget(mw, "edit_button");
- GtkWidget *remove_button = linphone_gtk_get_widget(mw, "remove_button");
-
- linphone_gtk_set_selection_to_uri_bar(friendlist);
- linphone_gtk_friend_list_update_button_display(friendlist);
- if(gtk_tree_selection_get_selected(selection, NULL, NULL)) {
- gtk_widget_set_sensitive(edit_button, TRUE);
- gtk_widget_set_sensitive(remove_button, TRUE);
- } else {
- gtk_widget_set_sensitive(edit_button, FALSE);
- gtk_widget_set_sensitive(remove_button, FALSE);
- }
-}
-
-
-void linphone_gtk_add_button_clicked(void){
- linphone_gtk_add_contact();
-}
-
-void linphone_gtk_edit_button_clicked(GtkWidget *button){
- linphone_gtk_edit_contact(button);
-}
-
-void linphone_gtk_remove_button_clicked(GtkWidget *button){
- linphone_gtk_remove_contact(button);
-}
-
-static GtkWidget * create_presence_menu(void){
- GtkWidget *menu=gtk_menu_new();
- GtkWidget *menu_item;
- status_picture_tab_t *t;
- for(t=status_picture_tab;t->img!=NULL;++t){
- if (t->status==LinphoneStatusPending){
- continue;
- }
- menu_item=gtk_image_menu_item_new_with_label(linphone_online_status_to_string(t->status));
- gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item),
- gtk_image_new_from_icon_name(t->img, GTK_ICON_SIZE_LARGE_TOOLBAR));
- gtk_widget_show(menu_item);
- gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
- g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_set_my_presence,GINT_TO_POINTER(t->status));
- }
- return menu;
-}
-
-void linphone_gtk_set_my_presence(LinphoneOnlineStatus ss){
- GtkWidget *button=linphone_gtk_get_widget(linphone_gtk_get_main_window(),"presence_button");
- GtkWidget *image=create_status_picture(ss, GTK_ICON_SIZE_LARGE_TOOLBAR);
- GtkWidget *menu;
-
- gtk_widget_set_tooltip_text(button,linphone_online_status_to_string(ss));
- gtk_button_set_image(GTK_BUTTON(button),image);
- /*prepare menu*/
- menu=(GtkWidget*)g_object_get_data(G_OBJECT(button),"presence_menu");
- if (menu==NULL){
- menu=create_presence_menu();
- /*the menu is destroyed when the button is destroyed*/
- g_object_weak_ref(G_OBJECT(button),(GWeakNotify)gtk_widget_destroy,menu);
- g_object_set_data(G_OBJECT(button),"presence_menu",menu);
- }
- linphone_core_set_presence_info(linphone_gtk_get_core(),0,NULL,ss);
-}
-
-void linphone_gtk_my_presence_clicked(GtkWidget *button){
- GtkWidget *menu=(GtkWidget*)g_object_get_data(G_OBJECT(button),"presence_menu");
- gtk_menu_popup(GTK_MENU(menu),NULL,NULL,NULL,NULL,0,
- gtk_get_current_event_time());
- gtk_widget_show(menu);
-}
-
-static void icon_press_handler(GtkEntry *entry){
- GtkWidget *w = gtk_widget_get_toplevel(GTK_WIDGET(entry));
- const char *text=gtk_entry_get_text(entry);
- if (text && strlen(text)>0){
- LinphoneAddress *addr;
- LinphoneFriend *lf;
- char *uri;
- addr=linphone_core_interpret_url(linphone_gtk_get_core(),text);
- if (addr==NULL){
- return ;
- }
- uri=linphone_address_as_string_uri_only(addr);
- lf=linphone_core_get_friend_by_address(linphone_gtk_get_core(),uri);
- ms_free(uri);
- if (lf==NULL)
- lf=linphone_core_create_friend(linphone_gtk_get_core());
- if (lf!=NULL){
- linphone_friend_set_address(lf,addr);
- linphone_gtk_show_contact(lf, w);
- }
- linphone_address_unref(addr);
- }
-}
-
-static void update_star(GtkEntry *entry, gboolean is_known){
- if (is_known){
- gtk_entry_set_icon_from_icon_name(entry,GTK_ENTRY_ICON_SECONDARY,NULL);
- gtk_entry_set_icon_sensitive(GTK_ENTRY(entry),GTK_ENTRY_ICON_SECONDARY,FALSE);
- gtk_entry_set_icon_tooltip_text(GTK_ENTRY(entry),GTK_ENTRY_ICON_SECONDARY,NULL);
- }else{
- gtk_entry_set_icon_from_icon_name(entry,GTK_ENTRY_ICON_SECONDARY,"linphone-contact-add");
- gtk_entry_set_icon_sensitive(GTK_ENTRY(entry),GTK_ENTRY_ICON_SECONDARY,TRUE);
- gtk_entry_set_icon_tooltip_text(GTK_ENTRY(entry),GTK_ENTRY_ICON_SECONDARY,_("Add to addressbook"));
- }
-}
-
-static void check_contact(GtkEditable *editable, LinphoneCore *lc){
- bool_t known = TRUE;
- char *tmp = gtk_editable_get_chars(editable, 0, -1);
- if (tmp != NULL) {
- if (strlen(tmp) > 0) {
- known = linphone_gtk_is_friend(lc, tmp);
- }
- g_free(tmp);
- }
- update_star(GTK_ENTRY(editable), known);
-}
-
-static void linphone_gtk_init_bookmark_icon(void){
- GtkWidget *entry = linphone_gtk_get_widget(linphone_gtk_get_main_window(), "uribar");
- g_signal_connect(G_OBJECT(entry),"icon-release",(GCallback)icon_press_handler,NULL);
- g_signal_connect(G_OBJECT(GTK_EDITABLE(entry)),"changed",(GCallback)check_contact,linphone_gtk_get_core());
-}
-
-static gboolean friend_search_func(GtkTreeModel *model, gint column,
- const gchar *key,
- GtkTreeIter *iter,
- gpointer search_data){
- char *name=NULL;
- gboolean ret=TRUE;
- gtk_tree_model_get(model,iter,FRIEND_NAME,&name,-1);
- if (name!=NULL){
- gchar *uname=g_utf8_casefold(name,-1); /* need that to perform case-insensitive search in utf8 */
- gchar *ukey=g_utf8_casefold(key,-1);
- ret=strstr(uname,ukey)==NULL;
- g_free(uname);
- g_free(ukey);
- g_free(name);
- }
- return ret;
-}
-
-static gint friend_sort(GtkTreeModel *model, GtkTreeIter *a,GtkTreeIter *b,gpointer user_data){
- char *n1=NULL,*n2=NULL;
- int ret;
- gtk_tree_model_get(model,a,FRIEND_NAME,&n1,-1);
- gtk_tree_model_get(model,b,FRIEND_NAME,&n2,-1);
- if (n1 && n2) {
- ret=strcmp(n1,n2);
- g_free(n1);
- g_free(n2);
- }else if (n1){
- g_free(n1);
- ret=-1;
- }else if (n2){
- g_free(n2);
- ret=1;
- }else ret=0;
- return ret;
-}
-
-void linphone_gtk_friend_list_on_name_column_clicked(GtkTreeModel *model){
- GtkSortType st;
- gint column;
-
- gtk_tree_sortable_get_sort_column_id(GTK_TREE_SORTABLE(model),&column,&st);
- if (column==FRIEND_NAME){
- if (st==GTK_SORT_ASCENDING) st=GTK_SORT_DESCENDING;
- else st=GTK_SORT_ASCENDING;
- }else st=GTK_SORT_ASCENDING;
- gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model),FRIEND_NAME,st);
-}
-
-static int get_friend_weight(const LinphoneFriend *lf){
- int w=0;
- LinphoneCore *lc=linphone_gtk_get_core();
- const LinphoneAddress *addr = linphone_friend_get_address(lf);
- LinphoneChatRoom *cr = NULL;
-
- if (addr != NULL) {
- cr = linphone_core_get_chat_room(lc, addr);
- }
- if (cr && linphone_chat_room_get_unread_messages_count(cr)>0){
- w+=2000;
- }
-
- switch(linphone_friend_get_status(lf)){
- case LinphoneStatusOnline:
- w+=1000;
- break;
- case LinphoneStatusOffline:
- if (linphone_friend_get_send_subscribe(lf))
- w+=100;
- break;
- default:
- w+=500;
- break;
- }
- return w;
-}
-
-static int friend_compare_func(const LinphoneFriend *lf1, const LinphoneFriend *lf2){
- int w1,w2,ret;
- w1=get_friend_weight(lf1);
- w2=get_friend_weight(lf2);
- if (w1==w2){
- const char *u1,*u2;
- const LinphoneAddress *addr1,*addr2;
- addr1=linphone_friend_get_address(lf1);
- addr2=linphone_friend_get_address(lf2);
- if ((addr1 == NULL) && (addr2 == NULL)) return 0;
- if ((addr1 == NULL) && (addr2 != NULL)) return -1;
- if ((addr1 != NULL) && (addr2 == NULL)) return 1;
- u1=linphone_friend_get_name(lf1) ? linphone_friend_get_name(lf1) : linphone_address_get_display_name(addr1) ? linphone_address_get_display_name(addr1) : linphone_address_get_username(addr1);
- u2=linphone_friend_get_name(lf2) ? linphone_friend_get_name(lf2) :linphone_address_get_display_name(addr2) ? linphone_address_get_display_name(addr2) : linphone_address_get_username(addr2);
- if (u1 && u2) {
- ret = strcasecmp(u1,u2);
- } else if (u1) {
- ret = 1;
- } else {
- ret = -1;
- }
- } else {
- ret = w2-w1;
- }
- return ret;
-}
-
-static bctbx_list_t *sort_friend_list(const bctbx_list_t *friends){
- bctbx_list_t *ret=NULL;
- const bctbx_list_t *elem;
- LinphoneFriend *lf;
-
- for(elem=friends;elem!=NULL;elem=elem->next){
- lf=(LinphoneFriend*)elem->data;
- ret=bctbx_list_insert_sorted(ret,lf,(bctbx_compare_func)friend_compare_func);
- }
- return ret;
-}
-
-#if 0
-void linphone_gtk_friend_list_on_presence_column_clicked(GtkTreeModel *model){
- GtkSortType st;
- gint column;
-
- gtk_tree_sortable_get_sort_column_id(GTK_TREE_SORTABLE(model),&column,&st);
- if (column==FRIEND_ID){
- if (st==GTK_SORT_ASCENDING) st=GTK_SORT_DESCENDING;
- else st=GTK_SORT_ASCENDING;
- }else st=GTK_SORT_ASCENDING;
- gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model),FRIEND_ID,st);
-}
-#endif
-
-static void linphone_gtk_friend_list_init(GtkWidget *friendlist){
- GtkTreeModel *store = gtk_tree_view_get_model(GTK_TREE_VIEW(friendlist));
- GtkTreeSelection *select = gtk_tree_view_get_selection (GTK_TREE_VIEW (friendlist));
-
- linphone_gtk_init_bookmark_icon();
- gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(friendlist),friend_search_func,NULL,NULL);
- gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store),FRIEND_NAME,friend_sort,NULL,NULL);
- gtk_tree_selection_set_mode (select, GTK_SELECTION_SINGLE);
- g_signal_connect(G_OBJECT(select), "changed", G_CALLBACK(linphone_gtk_contact_clicked), NULL);
-
- g_object_set_data(G_OBJECT(friendlist), "friendlist_initialized", (gpointer)TRUE);
-}
-
-void linphone_gtk_show_directory_search(void){
- LinphoneProxyConfig *cfg=NULL;
- SipSetupContext * ssc=NULL;
- GtkWidget *mw=linphone_gtk_get_main_window();
- GtkWidget *search_box=linphone_gtk_get_widget(mw,"directory_search_box");
-
- cfg = linphone_core_get_default_proxy_config(linphone_gtk_get_core());
- if (cfg){
- ssc=linphone_proxy_config_get_sip_setup_context(cfg);
- if (ssc!=NULL && sip_setup_context_get_capabilities(ssc) & SIP_SETUP_CAP_BUDDY_LOOKUP){
- GtkWidget *entry=linphone_gtk_get_widget(mw,"directory_search_entry");
- gchar *tooltip;
- GdkColor grey={0,40000,40000,40000};
- gtk_widget_show(search_box);
- tooltip=g_strdup_printf(_("Search in %s directory"),linphone_proxy_config_get_domain(cfg));
- gtk_widget_modify_text(entry,GTK_STATE_NORMAL,&grey);
- gtk_entry_set_text(GTK_ENTRY(entry),tooltip);
- g_object_set_data(G_OBJECT(entry),"active",GINT_TO_POINTER(0));
- g_free(tooltip);
- return;
- }
- }
- gtk_widget_hide(search_box);
-}
-
-gboolean linphone_gtk_directory_search_focus_out(GtkWidget *entry){
- if (gtk_entry_get_text_length(GTK_ENTRY(entry))==0)
- linphone_gtk_show_directory_search();
- return FALSE;
-}
-
-gboolean linphone_gtk_directory_search_focus_in(GtkWidget *entry){
- if (GPOINTER_TO_INT(g_object_get_data(G_OBJECT(entry),"active"))==0){
- gtk_entry_set_text(GTK_ENTRY(entry),"");
- gtk_widget_modify_text(entry,GTK_STATE_NORMAL,NULL);
- g_object_set_data(G_OBJECT(entry),"active",GINT_TO_POINTER(1));
- }
- return FALSE;
-}
-
-void linphone_gtk_directory_search_activate(GtkWidget *entry){
- LinphoneProxyConfig *cfg;
- GtkWidget *w;
- cfg = linphone_core_get_default_proxy_config(linphone_gtk_get_core());
- w=linphone_gtk_show_buddy_lookup_window(linphone_proxy_config_get_sip_setup_context(cfg));
- if (GPOINTER_TO_INT(g_object_get_data(G_OBJECT(entry),"active"))==1)
- linphone_gtk_buddy_lookup_set_keyword(w,gtk_entry_get_text(GTK_ENTRY(entry)));
-}
-
-void linphone_gtk_directory_search_button_clicked(GtkWidget *button){
- linphone_gtk_directory_search_activate(
- linphone_gtk_get_widget(gtk_widget_get_toplevel(button),"directory_search_entry"));
-}
-
-void linphone_gtk_show_friends(void){
- GtkWidget *mw=linphone_gtk_get_main_window();
- GtkWidget *friendlist=linphone_gtk_get_widget(mw,"contact_list");
- GtkListStore *store=NULL;
- GtkTreeIter iter;
- const bctbx_list_t *itf;
- LinphoneCore *core=linphone_gtk_get_core();
- bctbx_list_t *sorted;
- LinphoneChatRoom *cr=NULL;
-
- linphone_gtk_show_directory_search();
- if (!g_object_get_data(G_OBJECT(friendlist), "friendlist_initialized")) {
- linphone_gtk_friend_list_init(friendlist);
- }
-
- store=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(friendlist)));
- gtk_list_store_clear(store);
-
- sorted=sort_friend_list(linphone_core_get_friend_list(core));
-
- for(itf=sorted;itf!=NULL;itf=bctbx_list_next(itf)){
- LinphoneFriend *lf=(LinphoneFriend*)itf->data;
- const LinphoneAddress *f_addr=linphone_friend_get_address(lf);
- const char *name=linphone_friend_get_name(lf);
- char *uri = NULL;
- const char *display=name;
- char *escaped=NULL;
- int nbmsg=0;
-
- //BuddyInfo *bi;
- gboolean send_subscribe=linphone_friend_get_send_subscribe(lf);
- if (f_addr != NULL) uri = linphone_address_as_string(f_addr);
- if ((display==NULL || display[0]=='\0') && (f_addr != NULL)) {
- display=linphone_address_get_username(f_addr);
- }
- gtk_list_store_append(store,&iter);
- gtk_list_store_set(store,&iter,FRIEND_NAME, display,FRIEND_ID,lf,
- FRIEND_PRESENCE_IMG, send_subscribe ? status_to_icon_name(linphone_friend_get_status(lf)) : NULL,
- FRIEND_CHAT,"linphone-chat-nothing", -1);
-
- if (f_addr != NULL) {
- cr=linphone_gtk_create_chatroom(f_addr);
- gtk_list_store_set(store,&iter,FRIEND_CHATROOM,cr,-1);
- nbmsg=linphone_chat_room_get_unread_messages_count(cr);
- if(nbmsg != 0){
- gtk_list_store_set(store,&iter,FRIEND_CHAT,"linphone-chat-new-message",
- FRIEND_CHAT_BUTTON_VISIBLE, TRUE, -1);
- }
- escaped=g_markup_escape_text(uri,-1);
- gtk_list_store_set(store,&iter,FRIEND_SIP_ADDRESS,escaped,-1);
- g_free(escaped);
- ms_free(uri);
- }
- }
- bctbx_list_free(sorted);
-}
-
-void linphone_gtk_show_contact(LinphoneFriend *lf, GtkWidget *parent){
- GtkWidget *w = linphone_gtk_create_window("contact", parent);
- char *uri;
- const char *name = linphone_friend_get_name(lf);
- const LinphoneAddress *f_addr = linphone_friend_get_address(lf);
-
- if (f_addr != NULL) {
- uri=linphone_address_as_string_uri_only(f_addr);
- if (uri) {
- gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(w,"sip_address")),uri);
- ms_free(uri);
- }
- }
-
- if (name){
- gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(w,"name")),name);
- }
-
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(w,"show_presence")),
- linphone_friend_get_send_subscribe(lf));
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(w,"allow_presence")),
- linphone_friend_get_inc_subscribe_policy(lf)==LinphoneSPAccept);
- g_object_set_data(G_OBJECT(w),"friend_ref",(gpointer)lf);
-
- gtk_widget_show(w);
-}
-
-void linphone_gtk_contact_cancel(GtkWidget *button){
- gtk_widget_destroy(gtk_widget_get_toplevel(button));
-}
-
-void linphone_gtk_contact_ok(GtkWidget *button){
- GtkWidget *w=gtk_widget_get_toplevel(button);
- LinphoneFriend *lf=(LinphoneFriend*)g_object_get_data(G_OBJECT(w),"friend_ref");
- LinphoneFriend *lf2;
- gboolean show_presence=FALSE,allow_presence=FALSE;
- const gchar *name,*uri;
- LinphoneAddress* friend_address;
- if (lf==NULL){
- lf=linphone_core_create_friend(linphone_gtk_get_core());
- if (linphone_gtk_get_ui_config_int("use_subscribe_notify",1)==1){
- show_presence=FALSE;
- allow_presence=FALSE;
- }
- linphone_friend_set_inc_subscribe_policy(lf,allow_presence ? LinphoneSPAccept : LinphoneSPDeny);
- linphone_friend_send_subscribe(lf,show_presence);
- }
-
- name = NULL;
- if(gtk_entry_get_text_length(GTK_ENTRY(linphone_gtk_get_widget(w,"name"))) != 0){
- name=gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(w,"name")));
- }
- uri=gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(w,"sip_address")));
- show_presence=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(w,"show_presence")));
- allow_presence=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(w,"allow_presence")));
- friend_address=linphone_core_interpret_url(linphone_gtk_get_core(),uri);
- if (friend_address==NULL){
- linphone_gtk_display_something(GTK_MESSAGE_WARNING,_("Invalid sip contact !"));
- return ;
- }
-
- linphone_friend_set_address(lf,friend_address);
- linphone_friend_set_name(lf,name);
- linphone_friend_send_subscribe(lf,show_presence);
- linphone_friend_set_inc_subscribe_policy(lf,allow_presence==TRUE ? LinphoneSPAccept : LinphoneSPDeny);
- if (linphone_friend_in_list(lf)) {
- linphone_friend_done(lf);
- } else {
- char *uri=linphone_address_as_string_uri_only(friend_address);
- lf2=linphone_core_get_friend_by_address(linphone_gtk_get_core(),uri);
- ms_free(uri);
- if(lf2==NULL){
- linphone_core_add_friend(linphone_gtk_get_core(),lf);
- }
- }
- linphone_address_unref(friend_address);
- linphone_gtk_show_friends();
- gtk_widget_destroy(w);
-}
-
-static GtkWidget *linphone_gtk_create_contact_menu(GtkWidget *contact_list){
- GtkWidget *menu=gtk_menu_new();
- GtkWidget *menu_item;
- gchar *edit_label=NULL;
- gchar *delete_label=NULL;
- gchar *delete_hist_label=NULL;
- gchar *add_contact_label=NULL;
- gchar *name=NULL;
- GtkTreeSelection *select;
- GtkTreeIter iter;
- GtkTreeModel *model;
- GtkWidget *image;
- LinphoneCore *lc=linphone_gtk_get_core();
- LinphoneProxyConfig *cfg=NULL;
- SipSetupContext * ssc=NULL;
- bool_t show_menu_separator=FALSE;
-
- cfg = linphone_core_get_default_proxy_config(lc);
- if (cfg){
- ssc=linphone_proxy_config_get_sip_setup_context(cfg);
- }
-
- g_signal_connect(G_OBJECT(menu), "selection-done", G_CALLBACK (gtk_widget_destroy), NULL);
- select = gtk_tree_view_get_selection(GTK_TREE_VIEW(contact_list));
- add_contact_label=g_strdup_printf(_("Add a new contact"));
- if (gtk_tree_selection_get_selected (select, &model, &iter)){
- gtk_tree_model_get(model, &iter,FRIEND_NAME , &name, -1);
- edit_label=g_strdup_printf(_("Edit contact '%s'"),name);
- delete_label=g_strdup_printf(_("Delete contact '%s'"),name);
- delete_hist_label=g_strdup_printf(_("Delete chat history of '%s'"),name);
- g_free(name);
- show_menu_separator=TRUE;
- }
- if (edit_label){
- menu_item=gtk_image_menu_item_new_with_label(edit_label);
- image=gtk_image_new_from_icon_name("linphone-edit",GTK_ICON_SIZE_MENU);
- gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item),image);
- gtk_widget_show(image);
- gtk_widget_show(menu_item);
- gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
- g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_edit_contact,contact_list);
- }
- if (delete_label){
- menu_item=gtk_image_menu_item_new_with_label(delete_label);
- image=gtk_image_new_from_icon_name("linphone-delete",GTK_ICON_SIZE_MENU);
- gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item),image);
- gtk_widget_show(image);
- gtk_widget_show(menu_item);
- gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
- g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_remove_contact,contact_list);
- }
-
- if (delete_hist_label){
- GtkWidget *menu_item_separator=gtk_separator_menu_item_new();
- gtk_widget_show(menu_item_separator);
- gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item_separator);
- menu_item=gtk_image_menu_item_new_with_label(delete_hist_label);
- image=gtk_image_new_from_icon_name("linphone-delete",GTK_ICON_SIZE_MENU);
- gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item),image);
- gtk_widget_show(image);
- gtk_widget_show(menu_item);
- gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
- g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_delete_history,contact_list);
- }
-
- if (ssc && (sip_setup_context_get_capabilities(ssc) & SIP_SETUP_CAP_BUDDY_LOOKUP)) {
- gchar *tmp=g_strdup_printf(_("Add new contact from %s directory"),linphone_proxy_config_get_domain(cfg));
- menu_item=gtk_image_menu_item_new_with_label(tmp);
- g_free(tmp);
- image=gtk_image_new_from_icon_name("linphone-contact-add",GTK_ICON_SIZE_MENU);
- gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item),image);
- gtk_widget_show(image);
- gtk_widget_show(menu_item);
- gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
- g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_show_buddy_lookup_window,ssc);
- }
-
- if (show_menu_separator) {
- GtkWidget *menu_item_separator=gtk_separator_menu_item_new();
- gtk_widget_show(menu_item_separator);
- gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item_separator);
- }
-
- menu_item=gtk_image_menu_item_new_with_label(add_contact_label);
- image=gtk_image_new_from_icon_name("linphone-contact-add",GTK_ICON_SIZE_MENU);
- gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item),image);
- gtk_widget_show(image);
- gtk_widget_show(menu_item);
- gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
- g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_add_contact,contact_list);
- gtk_widget_show(menu);
- gtk_menu_attach_to_widget (GTK_MENU (menu), contact_list, NULL);
-
- g_free(add_contact_label);
- if (edit_label) g_free(edit_label);
- if (delete_label) g_free(delete_label);
- return menu;
-}
-
-gboolean linphone_gtk_popup_contact_menu(GtkWidget *list, GdkEventButton *event){
- GtkWidget *m=linphone_gtk_create_contact_menu(list);
- gtk_menu_popup (GTK_MENU (m), NULL, NULL, NULL, NULL,
- event ? event->button : 0, event ? event->time : gtk_get_current_event_time());
- return TRUE;
-}
-
-static int get_column_index(GtkTreeView *friendlist, const GtkTreeViewColumn *column) {
- GList *columns = gtk_tree_view_get_columns(friendlist);
- int i = g_list_index(columns, column);
- g_list_free(columns);
- return i;
-}
-
-static void select_row(GtkTreeView *treeview, GtkTreePath *path) {
- GtkTreeSelection *selection = gtk_tree_view_get_selection(treeview);
- gtk_tree_selection_select_path(selection, path);
-}
-
-gboolean linphone_gtk_contact_list_button_pressed(GtkTreeView *friendlist, GdkEventButton *event){
- /* Ignore double-clicks and triple-clicks */
- gboolean ret = FALSE;
- int x_bin, y_bin;
- GtkTreePath *path;
- GtkTreeViewColumn *column;
- GtkTreeSelection *selection = gtk_tree_view_get_selection(friendlist);
-
- gtk_tree_view_convert_widget_to_bin_window_coords(friendlist, (gint)event->x, (gint)event->y, &x_bin, &y_bin);
- gtk_tree_view_get_path_at_pos(friendlist, x_bin, y_bin, &path, &column, NULL, NULL);
-
- if (event->button == 3 && event->type == GDK_BUTTON_PRESS) {
- if(path) gtk_tree_selection_select_path(selection, path);
- ret = linphone_gtk_popup_contact_menu(GTK_WIDGET(friendlist), event);
- } else if(event->button == 1 && event->type == GDK_BUTTON_PRESS){
- if(path && column) {
- int numcol = get_column_index(friendlist, column);
- if(numcol == 2) {
- select_row(friendlist, path);
- linphone_gtk_call_selected(friendlist);
- ret = TRUE;
- } else if(numcol == 3) {
- select_row(friendlist, path);
- linphone_gtk_chat_selected(GTK_WIDGET(friendlist));
- ret = TRUE;
- }
- }
- }
- if(path) gtk_tree_path_free(path);
- return ret;
-}
-
-void linphone_gtk_buddy_info_updated(LinphoneCore *lc, LinphoneFriend *lf){
- /*refresh the entire list*/
- linphone_gtk_show_friends();
-}
-
-static gboolean update_hovered_row_path(GtkTreeView *friendlist, int x_window, int y_window) {
- int x_bin, y_bin;
- GtkTreePath *new_path;
- GtkTreePath *old_path = (GtkTreePath *)g_object_get_data(G_OBJECT(friendlist), "hovered_row");
- gtk_tree_view_convert_widget_to_bin_window_coords(friendlist, x_window, y_window, &x_bin, &y_bin);
- gtk_tree_view_get_path_at_pos(friendlist, x_bin, y_bin, &new_path, NULL, NULL, NULL);
- if((new_path == NULL && old_path == NULL) || (new_path && old_path && gtk_tree_path_compare(new_path, old_path) == 0)) {
- if(new_path) gtk_tree_path_free(new_path);
- return FALSE;
- } else {
- g_object_set_data_full(G_OBJECT(friendlist), "hovered_row", new_path, (GDestroyNotify)gtk_tree_path_free);
- return TRUE;
- }
-}
-
-gboolean linphone_gtk_friend_list_enter_event_handler(GtkTreeView *friendlist, GdkEventCrossing *event) {
- gboolean path_has_changed = update_hovered_row_path(friendlist, (int)event->x, (int)event->y);
- if(path_has_changed) linphone_gtk_friend_list_update_button_display(friendlist);
- return FALSE;
-}
-
-gboolean linphone_gtk_friend_list_leave_event_handler(GtkTreeView *friendlist, GdkEventCrossing *event) {
- GtkTreePath *hovered_row = (GtkTreePath *)g_object_get_data(G_OBJECT(friendlist), "hovered_row");
- if(hovered_row) {
- g_object_set_data(G_OBJECT(friendlist), "hovered_row", NULL);
- linphone_gtk_friend_list_update_button_display(friendlist);
- }
- return FALSE;
-}
-
-gboolean linphone_gtk_friend_list_motion_event_handler(GtkTreeView *friendlist, GdkEventMotion *event) {
- gboolean path_has_changed = update_hovered_row_path(friendlist, (int)event->x, (int)event->y);
- if(path_has_changed) linphone_gtk_friend_list_update_button_display(friendlist);
- return FALSE;
-}
-
-#define CONFIG_FILE ".linphone-friends.db"
-
-char *linphone_gtk_friends_storage_get_db_file(const char *filename){
- const int path_max=1024;
- char *db_file=NULL;
-
- db_file=(char *)g_malloc(path_max*sizeof(char));
- if (filename==NULL) filename=CONFIG_FILE;
- /*try accessing a local file first if exists*/
- if (bctbx_file_exist(CONFIG_FILE)==0){
- snprintf(db_file,path_max,"%s",filename);
- }else{
-#ifdef _WIN32
- const char *appdata=getenv("APPDATA");
- if (appdata){
- snprintf(db_file,path_max,"%s\\%s",appdata,LINPHONE_CONFIG_DIR);
- CreateDirectory(db_file,NULL);
- snprintf(db_file,path_max,"%s\\%s\\%s",appdata,LINPHONE_CONFIG_DIR,filename);
- }
-#else
- const char *home=getenv("HOME");
- if (home==NULL) home=".";
- snprintf(db_file,path_max,"%s/%s",home,filename);
-#endif
- }
- return db_file;
-}
diff --git a/gtk/gtkrc b/gtk/gtkrc
deleted file mode 100644
index 73d21744f..000000000
--- a/gtk/gtkrc
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "share/themes/XLiquid_GTK-1.0.3/gtk-2.0/gtkrc"
-#include "share/themes/Aero-ion3.1/gtk-2.0/gtkrc"
-include "share/themes/Outcrop/gtk-2.0/gtkrc"
-
diff --git a/gtk/gtkrc.mac b/gtk/gtkrc.mac
deleted file mode 100644
index da38efafc..000000000
--- a/gtk/gtkrc.mac
+++ /dev/null
@@ -1 +0,0 @@
-include "../../share/themes/Quartz/gtk-2.0/gtkrc"
diff --git a/gtk/in_call_frame.ui b/gtk/in_call_frame.ui
deleted file mode 100644
index 1e713d19c..000000000
--- a/gtk/in_call_frame.ui
+++ /dev/null
@@ -1,433 +0,0 @@
-
-
-
-
-
- True
- False
- 16
- linphone-security-pending
-
-
- False
- cursor
- 0.5
- none
-
-
- True
- False
- 12
- 12
-
-
- True
- False
-
-
- True
- False
- center
-
-
- True
- True
- 0
-
-
-
-
- True
- False
-
-
-
-
-
- False
- False
- 1
-
-
-
-
- False
-
-
- True
- True
- True
- zrtp_button_icon
- none
-
-
-
- True
- False
- 0
-
-
-
-
- False
- False
- 2
-
-
-
-
- False
- 4
-
-
- True
- False
- 1
- 16
- linphone-security-ok
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- 0
- Encryption status
-
-
- True
- True
- 1
-
-
-
-
- True
- True
- 3
-
-
-
-
- True
- False
-
-
- True
- False
-
-
- True
- True
- True
- True
- none
- False
- vertical
- linphone-micro-enabled
-
-
- False
- False
- 5
- 0
-
-
-
-
- True
- False
-
-
- False
- False
- 5
- 1
-
-
-
-
- True
- False
- 10
- 0
-
-
-
-
- True
- False
-
-
- True
- True
- True
- True
- Click here to set the speakers volume
- none
- False
- vertical
- linphone-speaker-enabled
-
-
- False
- False
- 5
- 0
-
-
-
-
- True
- False
-
-
- False
- False
- 5
- 1
-
-
-
-
- True
- False
- 10
- 1
-
-
-
-
- False
- False
- 5
- 4
-
-
-
-
- False
- spread
-
-
- Answer
- True
- True
- True
-
-
-
- False
- False
- 0
-
-
-
-
- Decline
- True
- True
- True
-
-
-
- False
- False
- 1
-
-
-
-
- False
- False
- 5
-
-
-
-
- False
-
-
- Record
- True
- True
- True
- Record this call to an audio file
-
-
-
- False
- False
- 0
-
-
-
-
- True
- False
- True
- char
-
-
- True
- True
- 1
-
-
-
-
- False
- False
- 6
-
-
-
-
- True
- False
- 2
- 3
- True
-
-
- Video
- True
- True
- True
-
-
-
-
- Pause
- True
- True
- True
-
-
-
- 1
- 2
-
-
-
-
- Mute
- True
- True
- True
-
-
-
- 2
- 3
-
-
-
-
- Transfer
- True
- True
- True
-
-
- 1
- 2
-
-
-
-
- Hang up
- True
- True
- True
-
-
-
- 1
- 2
- 1
- 2
-
-
-
-
- Conference
- True
- True
- True
-
-
- 2
- 3
- 1
- 2
-
-
-
-
- False
- False
- 7
- 7
-
-
-
-
-
-
-
-
- True
- False
- True
-
-
- True
- False
- In call
- True
- center
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- Duration
- center
-
-
- True
- True
- 1
-
-
-
-
- 90
- 10
- True
- False
- GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK
- Call quality rating
-
-
- False
- False
- 2
-
-
-
-
-
-
diff --git a/gtk/incall_view.c b/gtk/incall_view.c
deleted file mode 100644
index 174e39d69..000000000
--- a/gtk/incall_view.c
+++ /dev/null
@@ -1,1027 +0,0 @@
-/*
-linphone, gtk-glade interface.
-Copyright (C) 2009 Simon MORLAT (simon.morlat@linphone.org)
-
-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 2
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-/*
-* C Implementation: incall_frame
-*
-* Description:
-*
-*
-* Author: Simon Morlat , (C) 2009
-*
-*
-*/
-
-#include "linphone.h"
-
-gboolean linphone_gtk_use_in_call_view(void){
- static int val=-1;
- if (val==-1) val=linphone_gtk_get_ui_config_int("use_incall_view",1);
- return val;
-}
-
-LinphoneCall *linphone_gtk_get_currently_displayed_call(gboolean *is_conf){
- LinphoneCore *lc=linphone_gtk_get_core();
- GtkWidget *main_window=linphone_gtk_get_main_window ();
- GtkNotebook *notebook=(GtkNotebook *)linphone_gtk_get_widget(main_window,"viewswitch");
- const bctbx_list_t *calls=linphone_core_get_calls(lc);
- if (is_conf) *is_conf=FALSE;
- if (!linphone_gtk_use_in_call_view() || bctbx_list_size(calls)==1){
- if (calls) return (LinphoneCall*)calls->data;
- }else{
- int idx=gtk_notebook_get_current_page (notebook);
- GtkWidget *page=gtk_notebook_get_nth_page(notebook,idx);
- if (page!=NULL){
- LinphoneCall *call=(LinphoneCall*)g_object_get_data(G_OBJECT(page),"call");
- if (call==NULL){
- GtkWidget *conf_frame=(GtkWidget *)g_object_get_data(G_OBJECT(main_window),"conf_frame");
- if (conf_frame==page){
- if (is_conf)
- *is_conf=TRUE;
- return NULL;
- }
- }
- return call;
- }
- }
- return NULL;
-}
-
-static GtkWidget *make_tab_header(int number){
- gchar text[20];
- g_snprintf(text, sizeof(text), _("Call #%i"), number);
- return linphone_gtk_make_tab_header(text, "linphone-start-call", FALSE, NULL, NULL);
-}
-
-void linphone_gtk_call_update_tab_header(LinphoneCall *call,gboolean pause){
- GtkWidget *w=(GtkWidget*)linphone_call_get_user_pointer(call);
- GtkWidget *main_window=linphone_gtk_get_main_window();
- GtkNotebook *notebook=GTK_NOTEBOOK(linphone_gtk_get_widget(main_window,"viewswitch"));
- gint call_index=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w),"call_index"));
- GtkWidget *new_label=gtk_hbox_new (FALSE,0);
- GtkWidget *i=NULL;
- GtkWidget *l;
- gchar *text;
-
- if(pause){
- i=gtk_image_new_from_icon_name("linphone-hold-off",GTK_ICON_SIZE_BUTTON);
- } else {
- i=gtk_image_new_from_icon_name("linphone-start-call", GTK_ICON_SIZE_BUTTON);
- }
-
- text=g_strdup_printf(_("Call #%i"),call_index);
- l=gtk_label_new (text);
- gtk_box_pack_start (GTK_BOX(new_label),i,FALSE,FALSE,0);
- gtk_box_pack_end(GTK_BOX(new_label),l,TRUE,TRUE,0);
-
- gtk_notebook_set_tab_label(notebook,w,new_label);
- gtk_widget_show_all(new_label);
- g_free(text);
-}
-
-static void linphone_gtk_in_call_set_animation_image(GtkWidget *callview, const char *image_name){
- GtkWidget *container=linphone_gtk_get_widget(callview,"in_call_animation");
- GList *elem=gtk_container_get_children(GTK_CONTAINER(container));
- GtkWidget *image;
-
- if (image_name==NULL){
- gtk_widget_hide(container);
- }
- image=gtk_image_new_from_icon_name(image_name,GTK_ICON_SIZE_DIALOG);
- if (elem)
- gtk_widget_destroy((GtkWidget*)elem->data);
- gtk_widget_show(image);
- gtk_container_add(GTK_CONTAINER(container),image);
- gtk_widget_show_all(container);
-}
-
-static void linphone_gtk_in_call_set_animation_spinner(GtkWidget *callview){
-#if GTK_CHECK_VERSION(2,20,0)
- GtkWidget *container=linphone_gtk_get_widget(callview,"in_call_animation");
- GList *elem=gtk_container_get_children(GTK_CONTAINER(container));
- GtkWidget *spinner=gtk_spinner_new();
- if (elem)
- gtk_widget_destroy((GtkWidget*)elem->data);
- gtk_widget_show(spinner);
- gtk_container_add(GTK_CONTAINER(container),spinner);
- gtk_widget_set_size_request(spinner, 20,20);
- gtk_spinner_start(GTK_SPINNER(spinner));
-#endif
-}
-
-static void linphone_gtk_transfer_call(LinphoneCall *dest_call){
- LinphoneCall *call=linphone_gtk_get_currently_displayed_call(NULL);
- if (call) linphone_call_transfer_to_another(call,dest_call);
-}
-
-void transfer_button_clicked(GtkWidget *button, gpointer call_ref){
- GtkWidget *menu_item;
- GtkWidget *menu=gtk_menu_new();
- LinphoneCall *call=(LinphoneCall*)call_ref;
- LinphoneCore *lc=linphone_gtk_get_core();
- const bctbx_list_t *elem=linphone_core_get_calls(lc);
-
- for(;elem!=NULL;elem=elem->next){
- LinphoneCall *other_call=(LinphoneCall*)elem->data;
- GtkWidget *call_view=(GtkWidget*)linphone_call_get_user_pointer(other_call);
- if (other_call!=call){
- int call_index=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(call_view),"call_index"));
- char *remote_uri=linphone_call_get_remote_address_as_string (other_call);
- char *text=g_strdup_printf(_("Transfer to call #%i with %s"),call_index,remote_uri);
- GtkWidget *image = gtk_image_new_from_icon_name("linphone-start-call", GTK_ICON_SIZE_MENU);
- menu_item=gtk_image_menu_item_new_with_label(text);
- ms_free(remote_uri);
- g_free(text);
- gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item), image);
- gtk_widget_show(menu_item);
- gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
- g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_transfer_call,other_call);
- }
- }
- gtk_menu_popup(GTK_MENU(menu),NULL,NULL,NULL,NULL,0,gtk_get_current_event_time());
- gtk_widget_show(menu);
-}
-
-void linphone_gtk_enable_transfer_button(LinphoneCore *lc, gboolean value){
- const bctbx_list_t *elem=linphone_core_get_calls(lc);
- for(;elem!=NULL;elem=elem->next){
- LinphoneCall *call=(LinphoneCall*)elem->data;
- GtkWidget *call_view=(GtkWidget*)linphone_call_get_user_pointer(call);
- GtkWidget *button=linphone_gtk_get_widget (call_view,"transfer_button");
- if(button != NULL){
- gtk_widget_set_sensitive(button,value);
- }
- }
-}
-
-static void conference_button_clicked(GtkWidget *button, gpointer call_ref){
- gtk_widget_set_sensitive(button,FALSE);
- linphone_core_add_all_to_conference(linphone_gtk_get_core());
-
-}
-
-void linphone_gtk_enable_conference_button(LinphoneCore *lc, gboolean value){
- const bctbx_list_t *elem=linphone_core_get_calls(lc);
- for(;elem!=NULL;elem=elem->next){
- LinphoneCall *call=(LinphoneCall*)elem->data;
- GtkWidget *call_view=(GtkWidget*)linphone_call_get_user_pointer(call);
- GtkWidget *button=linphone_gtk_get_widget (call_view,"conference_button");
- if (button != NULL){
- gtk_widget_set_sensitive(button,value);
- }
- }
-}
-
-static void show_used_codecs(GtkWidget *callstats, LinphoneCall *call){
- const LinphoneCallParams *params=linphone_call_get_current_params(call);
- if (params){
- const PayloadType *acodec=linphone_call_params_get_used_audio_codec(params);
- const PayloadType *vcodec=linphone_call_params_get_used_video_codec(params);
- GtkWidget *acodec_ui=linphone_gtk_get_widget(callstats,"audio_codec");
- GtkWidget *vcodec_ui=linphone_gtk_get_widget(callstats,"video_codec");
- if (acodec){
- char tmp[64]={0};
- snprintf(tmp,sizeof(tmp)-1,"%s/%i/%i",acodec->mime_type,acodec->clock_rate,acodec->channels);
- gtk_label_set_label(GTK_LABEL(acodec_ui),tmp);
- }else gtk_label_set_label(GTK_LABEL(acodec_ui),_("Not used"));
- if (vcodec){
- gtk_label_set_label(GTK_LABEL(vcodec_ui),vcodec->mime_type);
- }else gtk_label_set_label(GTK_LABEL(vcodec_ui),_("Not used"));
- }
-}
-
-static const char *ice_state_to_string(LinphoneIceState ice_state){
- switch(ice_state){
- case LinphoneIceStateNotActivated:
- return _("ICE not activated");
- case LinphoneIceStateFailed:
- return _("ICE failed");
- case LinphoneIceStateInProgress:
- return _("ICE in progress");
- case LinphoneIceStateReflexiveConnection:
- return _("Going through one or more NATs");
- case LinphoneIceStateHostConnection:
- return _("Direct");
- case LinphoneIceStateRelayConnection:
- return _("Through a relay server");
- }
- return "invalid";
-}
-
-static const char *upnp_state_to_string(LinphoneUpnpState ice_state){
- switch(ice_state){
- case LinphoneUpnpStateIdle:
- return _("uPnP not activated");
- case LinphoneUpnpStatePending:
- return _("uPnP in progress");
- case LinphoneUpnpStateNotAvailable:
- return _("uPnp not available");
- case LinphoneUpnpStateOk:
- return _("uPnP is running");
- case LinphoneUpnpStateKo:
- return _("uPnP failed");
- default:
- break;
- }
- return "invalid";
-}
-
-static void _refresh_call_stats(GtkWidget *callstats, LinphoneCall *call){
- LinphoneUpnpState upnp_state;
- LinphoneIceState ice_state;
- LinphoneCallStats *as=linphone_call_get_audio_stats(call);
- LinphoneCallStats *vs=linphone_call_get_video_stats(call);
- const char *audio_media_connectivity = _("Direct or through server");
- const char *video_media_connectivity = _("Direct or through server");
- const LinphoneCallParams *curparams=linphone_call_get_current_params(call);
- gboolean has_video=linphone_call_params_video_enabled(curparams);
- MSVideoSize size_received = linphone_call_params_get_received_video_size(curparams);
- MSVideoSize size_sent = linphone_call_params_get_sent_video_size(curparams);
- const char *rtp_profile = linphone_call_params_get_rtp_profile(curparams);
- gchar *tmp = g_strdup_printf("%s", rtp_profile);
- gtk_label_set_markup(GTK_LABEL(linphone_gtk_get_widget(callstats,"rtp_profile")),tmp);
- g_free(tmp);
- tmp=g_strdup_printf(_("download: %f\nupload: %f (kbit/s)"),
- linphone_call_stats_get_download_bandwidth(as),linphone_call_stats_get_upload_bandwidth(as));
- gtk_label_set_markup(GTK_LABEL(linphone_gtk_get_widget(callstats,"audio_bandwidth_usage")),tmp);
- g_free(tmp);
- if (has_video){
- gchar *size_r=g_strdup_printf(_("%ix%i @ %f fps"),size_received.width,size_received.height,
- linphone_call_params_get_received_framerate(curparams));
- gchar *size_s=g_strdup_printf(_("%ix%i @ %f fps"),size_sent.width,size_sent.height,
- linphone_call_params_get_sent_framerate(curparams));
- gtk_label_set_markup(GTK_LABEL(linphone_gtk_get_widget(callstats,"video_size_recv")),size_r);
- gtk_label_set_markup(GTK_LABEL(linphone_gtk_get_widget(callstats,"video_size_sent")),size_s);
-
- tmp=g_strdup_printf(_("download: %f\nupload: %f (kbit/s)"),linphone_call_stats_get_download_bandwidth(vs),linphone_call_stats_get_upload_bandwidth(vs));
- g_free(size_r);
- g_free(size_s);
- } else {
- tmp=NULL;
- }
- gtk_label_set_markup(GTK_LABEL(linphone_gtk_get_widget(callstats,"video_bandwidth_usage")),tmp);
- if (tmp) g_free(tmp);
- upnp_state = linphone_call_stats_get_upnp_state(as);
- ice_state = linphone_call_stats_get_ice_state(as);
- if(upnp_state != LinphoneUpnpStateNotAvailable && upnp_state != LinphoneUpnpStateIdle) {
- audio_media_connectivity = upnp_state_to_string(upnp_state);
- } else if(ice_state != LinphoneIceStateNotActivated) {
- audio_media_connectivity = ice_state_to_string(ice_state);
- }
- gtk_label_set_text(GTK_LABEL(linphone_gtk_get_widget(callstats,"audio_media_connectivity")),audio_media_connectivity);
-
- if (has_video){
- upnp_state = linphone_call_stats_get_upnp_state(vs);
- ice_state = linphone_call_stats_get_ice_state(vs);
- if(upnp_state != LinphoneUpnpStateNotAvailable && upnp_state != LinphoneUpnpStateIdle) {
- video_media_connectivity = upnp_state_to_string(upnp_state);
- } else if(ice_state != LinphoneIceStateNotActivated) {
- video_media_connectivity = ice_state_to_string(ice_state);
- }
- }else video_media_connectivity=NULL;
- gtk_label_set_text(GTK_LABEL(linphone_gtk_get_widget(callstats,"video_media_connectivity")),video_media_connectivity);
-
- if (linphone_call_stats_get_round_trip_delay(as)>0){
- tmp=g_strdup_printf(_("%.3f seconds"),linphone_call_stats_get_round_trip_delay(as));
- gtk_label_set_text(GTK_LABEL(linphone_gtk_get_widget(callstats,"round_trip_time")),tmp);
- g_free(tmp);
- }
- linphone_call_stats_unref(as);
- linphone_call_stats_unref(vs);
-}
-
-static gboolean refresh_call_stats(GtkWidget *callstats){
- LinphoneCall *call=(LinphoneCall*)g_object_get_data(G_OBJECT(callstats),"call");
- switch (linphone_call_get_state(call)){
- case LinphoneCallError:
- case LinphoneCallEnd:
- case LinphoneCallReleased:
- gtk_widget_destroy(callstats);
- return FALSE;
- break;
- case LinphoneCallStreamsRunning:
- _refresh_call_stats(callstats,call);
- break;
- default:
- break;
- }
- return TRUE;
-}
-
-static void on_call_stats_destroyed(GtkWidget *call_view){
- GtkWidget *call_stats=(GtkWidget*)g_object_get_data(G_OBJECT(call_view),"call_stats");
- LinphoneCall *call=(LinphoneCall*)g_object_get_data(G_OBJECT(call_stats),"call");
- g_source_remove(GPOINTER_TO_INT(g_object_get_data(G_OBJECT(call_stats),"tid")));
- g_object_set_data(G_OBJECT(call_view),"call_stats",NULL);
- linphone_call_unref(call);
-}
-
-static void linphone_gtk_show_call_stats(LinphoneCall *call){
- GtkWidget *w=(GtkWidget*)linphone_call_get_user_pointer(call);
- GtkWidget *call_stats=(GtkWidget*)g_object_get_data(G_OBJECT(w),"call_stats");
- if (call_stats==NULL){
- guint tid;
- call_stats=linphone_gtk_create_window("call_statistics", NULL);
- g_object_set_data(G_OBJECT(w),"call_stats",call_stats);
- g_object_set_data(G_OBJECT(call_stats),"call",linphone_call_ref(call));
- tid=g_timeout_add(1000,(GSourceFunc)refresh_call_stats,call_stats);
- g_object_set_data(G_OBJECT(call_stats),"tid",GINT_TO_POINTER(tid));
- g_signal_connect_swapped(G_OBJECT(call_stats),"destroy",(GCallback)on_call_stats_destroyed,(gpointer)w);
- show_used_codecs(call_stats,call);
- refresh_call_stats(call_stats);
- gtk_widget_show(call_stats);
- }
-
-}
-
-void linphone_gtk_enable_video_button(LinphoneCall *call, gboolean sensitive, gboolean holdon){
- GtkWidget *callview=(GtkWidget*)linphone_call_get_user_pointer (call);
- GtkWidget *button;
- g_return_if_fail(callview!=NULL);
- button=linphone_gtk_get_widget(callview,"video_button");
- gtk_widget_set_sensitive(GTK_WIDGET(button),sensitive);
- gtk_widget_set_visible(GTK_WIDGET(button),sensitive);
-}
-
-
-typedef enum { VOLUME_CTRL_PLAYBACK, VOLUME_CTRL_RECORD } VolumeControlType;
-
-static void volume_control_value_changed(GtkScaleButton *button, gdouble value, gpointer user_data) {
- LinphoneCall *call = (LinphoneCall *)g_object_get_data(G_OBJECT(button), "call");
- VolumeControlType type = (VolumeControlType)GPOINTER_TO_INT(g_object_get_data(G_OBJECT(button), "type"));
-
- if(type == VOLUME_CTRL_PLAYBACK) {
- linphone_call_set_speaker_volume_gain(call, (float)value);
- } else if(type == VOLUME_CTRL_RECORD) {
- linphone_call_set_microphone_volume_gain(call, (float)value);
- }
-}
-
-static gboolean volume_control_button_update_value(GtkWidget *widget) {
- LinphoneCall *call = (LinphoneCall *)g_object_get_data(G_OBJECT(widget), "call");
- VolumeControlType type = (VolumeControlType)GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "type"));
- float gain = -1;
-
- if(type == VOLUME_CTRL_PLAYBACK) {
- gain = linphone_call_get_speaker_volume_gain(call);
- } else if(type == VOLUME_CTRL_RECORD) {
- gain = linphone_call_get_microphone_volume_gain(call);
- }
- if(gain >= 0.0f) {
- gtk_scale_button_set_value(GTK_SCALE_BUTTON(widget), gain);
- return TRUE;
- } else {
- return FALSE;
- }
-}
-
-static gboolean volume_control_button_enter_event_handler(GtkWidget *widget) {
- volume_control_button_update_value(widget);
- return FALSE;
-}
-
-static void volume_control_init(GtkWidget *vol_ctrl, VolumeControlType type, LinphoneCall *call) {
- g_object_set_data(G_OBJECT(vol_ctrl), "call", call);
- g_object_set_data(G_OBJECT(vol_ctrl), "type", GINT_TO_POINTER(type));
- if(!volume_control_button_update_value(vol_ctrl)) {
- gtk_widget_set_sensitive(vol_ctrl, FALSE);
- } else {
- gtk_widget_set_sensitive(vol_ctrl, TRUE);
- g_signal_connect(G_OBJECT(vol_ctrl), "enter-notify-event", G_CALLBACK(volume_control_button_enter_event_handler), NULL);
- g_signal_connect(G_OBJECT(vol_ctrl), "value-changed", G_CALLBACK(volume_control_value_changed), NULL);
- }
-}
-
-void linphone_gtk_create_in_call_view(LinphoneCall *call){
- GtkWidget *call_view=linphone_gtk_create_widget("in_call_frame");
- GtkWidget *main_window=linphone_gtk_get_main_window ();
- GtkNotebook *notebook=(GtkNotebook *)linphone_gtk_get_widget(main_window,"viewswitch");
- GtkWidget *audio_bar = linphone_gtk_get_widget(call_view, "incall_audioview");
- static int call_index=1;
- int idx;
- GtkWidget *record;
- GtkWidget *transfer;
- GtkWidget *conf;
- GtkWidget *button;
- GtkWidget *image;
-
- if (bctbx_list_size(linphone_core_get_calls(linphone_gtk_get_core()))==1){
- /*this is the only call at this time */
- call_index=1;
- }
- g_object_set_data(G_OBJECT(call_view),"call",call);
- g_object_set_data(G_OBJECT(call_view),"call_index",GINT_TO_POINTER(call_index));
-
- linphone_call_set_user_pointer (call,call_view);
- linphone_call_ref(call);
- gtk_notebook_append_page (notebook,call_view,make_tab_header(call_index));
- gtk_widget_show(call_view);
- idx = gtk_notebook_page_num(notebook, call_view);
- gtk_notebook_set_current_page(notebook, idx);
- call_index++;
- linphone_gtk_enable_hold_button (call,FALSE,TRUE);
- linphone_gtk_enable_video_button (call,FALSE,TRUE);
- linphone_gtk_enable_mute_button(
- GTK_BUTTON(linphone_gtk_get_widget(call_view,"incall_mute")),FALSE);
-
- record = linphone_gtk_get_widget(call_view, "record_button");
- gtk_button_set_image(GTK_BUTTON(record), gtk_image_new_from_icon_name("linphone-record", GTK_ICON_SIZE_BUTTON));
- gtk_widget_hide(record);
- transfer = linphone_gtk_get_widget(call_view,"transfer_button");
- gtk_button_set_image(GTK_BUTTON(transfer),gtk_image_new_from_icon_name("linphone-call-transfer",GTK_ICON_SIZE_BUTTON));
- g_signal_connect(G_OBJECT(transfer),"clicked",(GCallback)transfer_button_clicked,call);
- gtk_widget_hide(transfer);
-
- conf = linphone_gtk_get_widget(call_view,"conference_button");
- gtk_button_set_image(GTK_BUTTON(conf),gtk_image_new_from_icon_name("linphone-conference-start",GTK_ICON_SIZE_BUTTON));
- g_signal_connect(G_OBJECT(conf),"clicked",(GCallback)conference_button_clicked,call);
- gtk_widget_hide(conf);
-
- button=linphone_gtk_get_widget(call_view,"terminate_call");
- image=gtk_image_new_from_icon_name(
- linphone_gtk_get_ui_config("stop_call_icon_name","linphone-stop-call"),
- GTK_ICON_SIZE_BUTTON
- );
- gtk_button_set_label(GTK_BUTTON(button),_("Hang up"));
- gtk_button_set_image(GTK_BUTTON(button),image);
- gtk_widget_show(image);
- g_signal_connect_swapped(G_OBJECT(linphone_gtk_get_widget(call_view,"quality_indicator")),"button-press-event",(GCallback)linphone_gtk_show_call_stats,call);
-
- gtk_widget_hide(audio_bar);
-}
-
-static void video_button_clicked(GtkWidget *button, LinphoneCall *call){
- gboolean adding=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(button),"adding_video"));
- LinphoneCore *lc=linphone_call_get_core(call);
- LinphoneCallParams *params = linphone_core_create_call_params(lc, call);
- gtk_widget_set_sensitive(button,FALSE);
- linphone_call_params_enable_video(params, adding);
- linphone_call_update(call,params);
- linphone_call_params_unref(params);
-}
-
-void linphone_gtk_update_video_button(LinphoneCall *call){
- GtkWidget *call_view=(GtkWidget*)linphone_call_get_user_pointer(call);
- GtkWidget *button;
- GtkWidget *conf_frame;
- const LinphoneCallParams *params=linphone_call_get_current_params(call);
- gboolean has_video=linphone_call_params_video_enabled(params);
- gboolean button_sensitive=FALSE;
- if (call_view==NULL) return;
-
- button=linphone_gtk_get_widget(call_view,"video_button");
-
- gtk_button_set_image(GTK_BUTTON(button),
- gtk_image_new_from_icon_name(has_video ? "linphone-camera-disabled" : "linphone-camera-enabled",GTK_ICON_SIZE_BUTTON));
- g_object_set_data(G_OBJECT(button),"adding_video",GINT_TO_POINTER(!has_video));
- if (!linphone_core_video_supported(linphone_call_get_core(call))){
- gtk_widget_set_sensitive(button,FALSE);
- return;
- }
- switch(linphone_call_get_state(call)){
- case LinphoneCallStreamsRunning:
- button_sensitive=!linphone_call_media_in_progress(call);
- break;
- default:
- button_sensitive=FALSE;
- break;
- }
- gtk_widget_set_sensitive(button,button_sensitive);
- if (GPOINTER_TO_INT(g_object_get_data(G_OBJECT(button),"signal_connected"))==0){
- g_signal_connect(G_OBJECT(button),"clicked",(GCallback)video_button_clicked,call);
- g_object_set_data(G_OBJECT(button),"signal_connected",GINT_TO_POINTER(1));
- }
- conf_frame=(GtkWidget *)g_object_get_data(G_OBJECT(linphone_gtk_get_main_window()),"conf_frame");
- if(conf_frame!=NULL){
- gtk_widget_set_sensitive(button,FALSE);
- }
-}
-
-void linphone_gtk_remove_in_call_view(LinphoneCall *call){
- GtkWidget *w=(GtkWidget*)linphone_call_get_user_pointer (call);
- GtkWidget *main_window=linphone_gtk_get_main_window ();
- GtkWidget *nb=linphone_gtk_get_widget(main_window,"viewswitch");
- int idx,id_current_page;
- g_return_if_fail(w!=NULL);
- idx=gtk_notebook_page_num(GTK_NOTEBOOK(nb),w);
- if (linphone_gtk_call_is_in_conference_view(call)){
- linphone_gtk_unset_from_conference(call);
- }
- linphone_call_set_user_pointer (call,NULL);
- linphone_call_unref(call);
- call=linphone_core_get_current_call(linphone_gtk_get_core());
- id_current_page = gtk_notebook_get_current_page(GTK_NOTEBOOK(nb));
- if (id_current_page == idx) {
- if (call==NULL){
- if (linphone_core_is_in_conference(linphone_gtk_get_core())){
- /*show the conference*/
- gtk_notebook_set_current_page(GTK_NOTEBOOK(nb),gtk_notebook_page_num(GTK_NOTEBOOK(nb),
- g_object_get_data(G_OBJECT(main_window),"conf_frame")));
- } else {
- gtk_notebook_set_current_page(GTK_NOTEBOOK(nb),0);
- }
- }else{
- /*show the active call*/
- gtk_notebook_set_current_page(GTK_NOTEBOOK(nb),gtk_notebook_page_num(GTK_NOTEBOOK(nb),
- linphone_call_get_user_pointer(call)));
- }
- }
- gtk_notebook_remove_page (GTK_NOTEBOOK(nb),idx);
- gtk_widget_destroy(w);
-}
-
-static void display_peer_name_in_label(GtkWidget *label, const LinphoneAddress *from){
- const char *displayname=NULL;
- char *id;
- char *uri_label;
- displayname=linphone_address_get_display_name(from);
- id=linphone_address_as_string_uri_only(from);
-
- if (displayname!=NULL){
- uri_label=g_markup_printf_escaped("%s\n%s",
- displayname,id);
- }else
- uri_label=g_markup_printf_escaped("%s\n",id);
- gtk_label_set_markup(GTK_LABEL(label),uri_label);
- g_free(uri_label);
- ms_free(id);
-}
-
-void linphone_gtk_in_call_view_set_calling(LinphoneCall *call){
- GtkWidget *callview=(GtkWidget*)linphone_call_get_user_pointer(call);
- GtkWidget *status=linphone_gtk_get_widget(callview,"in_call_status");
- GtkWidget *callee=linphone_gtk_get_widget(callview,"in_call_uri");
- GtkWidget *duration=linphone_gtk_get_widget(callview,"in_call_duration");
-
- gtk_label_set_markup(GTK_LABEL(status),_("Calling..."));
- display_peer_name_in_label(callee,linphone_call_get_remote_address (call));
-
- gtk_label_set_text(GTK_LABEL(duration),_("00:00:00"));
- linphone_gtk_in_call_set_animation_spinner(callview);
-}
-
-void linphone_gtk_in_call_view_set_incoming(LinphoneCall *call){
- GtkWidget *callview=(GtkWidget*)linphone_call_get_user_pointer(call);
- GtkWidget *status=linphone_gtk_get_widget(callview,"in_call_status");
- GtkWidget *callee=linphone_gtk_get_widget(callview,"in_call_uri");
- GtkWidget *answer_button;
- GtkWidget *image;
-
- gtk_label_set_markup(GTK_LABEL(status),_("Incoming call"));
- gtk_widget_show_all(linphone_gtk_get_widget(callview,"answer_decline_panel"));
- gtk_widget_hide(linphone_gtk_get_widget(callview,"buttons_panel"));
- display_peer_name_in_label(callee,linphone_call_get_remote_address (call));
-
- answer_button=linphone_gtk_get_widget(callview,"accept_call");
- image=gtk_image_new_from_icon_name("linphone-start-call", GTK_ICON_SIZE_BUTTON);
- gtk_button_set_label(GTK_BUTTON(answer_button),_("Answer"));
- gtk_button_set_image(GTK_BUTTON(answer_button),image);
- gtk_widget_show(image);
-
- image=gtk_image_new_from_icon_name("linphone-stop-call", GTK_ICON_SIZE_BUTTON);
- gtk_button_set_image(GTK_BUTTON(linphone_gtk_get_widget(callview,"decline_call")),image);
- gtk_widget_show(image);
-
- linphone_gtk_in_call_set_animation_image(callview,"linphone-call-status-incoming");
-}
-
-static void rating_to_color(float rating, GdkColor *color){
- const char *colorname="grey";
- if (rating>=4.0)
- colorname="green";
- else if (rating>=3.0)
- colorname="white";
- else if (rating>=2.0)
- colorname="yellow";
- else if (rating>=1.0)
- colorname="orange";
- else if (rating>=0)
- colorname="red";
- if (!gdk_color_parse(colorname,color)){
- g_warning("Fail to parse color %s",colorname);
- }
-}
-
-static const char *rating_to_text(float rating){
- if (rating>=4.0)
- return _("good");
- if (rating>=3.0)
- return _("average");
- if (rating>=2.0)
- return _("poor");
- if (rating>=1.0)
- return _("very poor");
- if (rating>=0)
- return _("too bad");
- return _("unavailable");
-}
-
-static gboolean linphone_gtk_in_call_view_refresh(LinphoneCall *call){
- GtkWidget *callview=(GtkWidget*)linphone_call_get_user_pointer(call);
- GtkWidget *qi=linphone_gtk_get_widget(callview,"quality_indicator");
- float rating=linphone_call_get_current_quality(call);
- GdkColor color;
- gchar tmp[50];
- linphone_gtk_in_call_view_update_duration(call);
- if (rating>=0){
- gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(qi),rating/5.0);
- snprintf(tmp,sizeof(tmp),"%.1f (%s)",rating,rating_to_text(rating));
- gtk_progress_bar_set_text(GTK_PROGRESS_BAR(qi),tmp);
- }else{
- gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(qi),0);
- gtk_progress_bar_set_text(GTK_PROGRESS_BAR(qi),_("unavailable"));
- }
- rating_to_color(rating,&color);
- gtk_widget_modify_bg(qi,GTK_STATE_NORMAL,&color);
-
- linphone_gtk_update_video_button(call); /*in case of no ice re-invite, video button status shall be checked by polling*/
- return TRUE;
-}
-
-#define UNSIGNIFICANT_VOLUME (-23)
-#define SMOOTH 0.15f
-
-static gboolean update_audio_meter(volume_ctx_t *ctx){
- float volume_db=ctx->get_volume(ctx->data);
- float frac=(volume_db-UNSIGNIFICANT_VOLUME)/(float)(-UNSIGNIFICANT_VOLUME-3.0);
- if (frac<0) frac=0;
- if (frac>1.0) frac=1.0;
- if (fraclast_value){
- frac=(frac*SMOOTH)+(ctx->last_value*(1-SMOOTH));
- }
- ctx->last_value=frac;
- //g_message("volume_db=%f, frac=%f",volume_db,frac);
- gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(ctx->widget),frac);
- return TRUE;
-}
-
-static void on_audio_meter_destroy(GtkWidget *w, gpointer data){
- guint task_id = GPOINTER_TO_INT(data);
- g_source_remove(task_id);
-}
-
-
-void linphone_gtk_init_audio_meter(GtkWidget *w, get_volume_t get_volume, void *data){
- guint task_id=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w),"task_id"));
- if (task_id==0){
- volume_ctx_t *ctx=g_new(volume_ctx_t,1);
- ctx->widget=w;
- ctx->get_volume=get_volume;
- ctx->data=data;
- ctx->last_value=0;
- g_object_set_data_full(G_OBJECT(w),"ctx",ctx,g_free);
- task_id=g_timeout_add(50,(GSourceFunc)update_audio_meter,ctx);
- g_object_set_data(G_OBJECT(w), "task_id", GINT_TO_POINTER(task_id));
- g_signal_connect(G_OBJECT(w), "destroy", (GCallback)on_audio_meter_destroy, GINT_TO_POINTER(task_id));
- }
-}
-
-void linphone_gtk_uninit_audio_meter(GtkWidget *w){
- guint task_id=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w),"task_id"));
- if (task_id!=0){
- g_object_set_data(G_OBJECT(w),"ctx",NULL);
- g_object_set_data(G_OBJECT(w),"task_id",NULL);
- g_source_remove(task_id);
- }
-}
-
-void linphone_gtk_in_call_view_enable_audio_view(LinphoneCall *call, gboolean val){
- GtkWidget *callview=(GtkWidget*)linphone_call_get_user_pointer(call);
- GtkWidget *audio_view=linphone_gtk_get_widget(callview,"incall_audioview");
- GtkWidget *mic_level=linphone_gtk_get_widget(callview,"mic_audiolevel");
- GtkWidget *spk_level=linphone_gtk_get_widget(callview,"spk_audiolevel");
- GtkWidget *mic_ctrl = linphone_gtk_get_widget(callview, "incall_mic_vol_ctrl_button");
- GtkWidget *spk_ctrl = linphone_gtk_get_widget(callview, "incall_spk_vol_ctrl_button");
-
- if (val){
- linphone_gtk_init_audio_meter(mic_level,(get_volume_t)linphone_call_get_record_volume,call);
- linphone_gtk_init_audio_meter(spk_level,(get_volume_t)linphone_call_get_play_volume,call);
- volume_control_init(mic_ctrl, VOLUME_CTRL_RECORD, call);
- volume_control_init(spk_ctrl, VOLUME_CTRL_PLAYBACK, call);
- gtk_widget_show_all(audio_view);
- }else{
- linphone_gtk_uninit_audio_meter(mic_level);
- linphone_gtk_uninit_audio_meter(spk_level);
- gtk_widget_hide(audio_view);
- }
-}
-
-void linphone_gtk_auth_token_verified_clicked(GtkButton *button){
- LinphoneCall *call=linphone_gtk_get_currently_displayed_call(NULL);
- if (call){
- linphone_call_set_authentication_token_verified(call,!linphone_call_get_authentication_token_verified(call));
- }
-}
-
-void linphone_gtk_in_call_view_show_encryption(LinphoneCall *call){
- GtkWidget *callview = (GtkWidget*)linphone_call_get_user_pointer(call);
- GtkWidget *encryption_status_box = linphone_gtk_get_widget(callview, "encryption_status_box");
- GtkWidget *encryption_status_label = linphone_gtk_get_widget(callview, "encryption_status_label");
- GtkWidget *encryption_status_icon = linphone_gtk_get_widget(callview, "encryption_status_icon");
- GtkWidget *zrtp_box = linphone_gtk_get_widget(callview, "zrtp_box");
- GtkWidget *zrtp_button = linphone_gtk_get_widget(callview, "zrtp_button");
- GtkWidget *zrtp_status_icon = gtk_button_get_image(GTK_BUTTON(zrtp_button));
- LinphoneMediaEncryption me = linphone_call_params_get_media_encryption(linphone_call_get_current_params(call));
-
- switch (me) {
- case LinphoneMediaEncryptionSRTP:
- gtk_widget_hide_all(zrtp_box);
- gtk_widget_show_all(encryption_status_box);
- gtk_label_set_markup(GTK_LABEL(encryption_status_label), _("Secured by SRTP"));
- gtk_image_set_from_icon_name(GTK_IMAGE(encryption_status_icon), "linphone-security-ok", GTK_ICON_SIZE_MENU);
- break;
- case LinphoneMediaEncryptionDTLS:
- gtk_widget_hide_all(zrtp_box);
- gtk_widget_show_all(encryption_status_box);
- gtk_label_set_markup(GTK_LABEL(encryption_status_label), _("Secured by DTLS"));
- gtk_image_set_from_icon_name(GTK_IMAGE(encryption_status_icon), "linphone-security-ok", GTK_ICON_SIZE_MENU);
- break;
- case LinphoneMediaEncryptionZRTP:
- {
- bool_t verified = linphone_call_get_authentication_token_verified(call);
- gchar *text = g_strdup_printf(_("Secured by ZRTP - [auth token: %s]"), linphone_call_get_authentication_token(call));
- gtk_button_set_label(GTK_BUTTON(zrtp_button), text);
- g_free(text);
- gtk_image_set_from_icon_name(GTK_IMAGE(zrtp_status_icon), verified ? "linphone-security-ok" : "linphone-security-pending", GTK_ICON_SIZE_MENU);
- gtk_widget_set_tooltip_text(zrtp_button, verified ? _("Set unverified") : _("Set verified"));
- gtk_widget_hide_all(encryption_status_box);
- gtk_widget_show_all(zrtp_box);
- }
- break;
- default:
- gtk_widget_hide_all(encryption_status_box);
- gtk_widget_hide_all(zrtp_box);
- break;
- }
-}
-
-void linphone_gtk_in_call_view_hide_encryption(LinphoneCall *call) {
- GtkWidget *callview = (GtkWidget*)linphone_call_get_user_pointer(call);
- GtkWidget *encryption_status_box = linphone_gtk_get_widget(callview, "encryption_status_box");
- GtkWidget *zrtp_box = linphone_gtk_get_widget(callview, "zrtp_box");
- gtk_widget_hide_all(encryption_status_box);
- gtk_widget_hide_all(zrtp_box);
-}
-
-char *linphone_gtk_address(const LinphoneAddress *addr){
- const char *displayname=linphone_address_get_display_name(addr);
- if (!displayname) return linphone_address_as_string_uri_only(addr);
- return ms_strdup(displayname);
-}
-
-void linphone_gtk_in_call_view_set_in_call(LinphoneCall *call){
- GtkWidget *callview=(GtkWidget*)linphone_call_get_user_pointer(call);
- GtkWidget *status=linphone_gtk_get_widget(callview,"in_call_status");
- GtkWidget *callee=linphone_gtk_get_widget(callview,"in_call_uri");
- GtkWidget *duration=linphone_gtk_get_widget(callview,"in_call_duration");
- guint taskid=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(callview),"taskid"));
- gboolean in_conf=(linphone_call_get_conference(call) != NULL);
- GtkWidget *call_stats=(GtkWidget*)g_object_get_data(G_OBJECT(callview),"call_stats");
-
- linphone_gtk_in_call_show_video(call);
-
- display_peer_name_in_label(callee,linphone_call_get_remote_address (call));
-
- gtk_widget_hide(linphone_gtk_get_widget(callview,"answer_decline_panel"));
- gtk_label_set_markup(GTK_LABEL(status),in_conf ? _("In conference") : _("In call"));
-
- gtk_widget_set_sensitive(linphone_gtk_get_widget(callview,"conference_button"),!in_conf);
- gtk_widget_set_sensitive(linphone_gtk_get_widget(callview,"transfer_button"),!in_conf);
-
- gtk_label_set_text(GTK_LABEL(duration),_("00:00:00"));
- linphone_gtk_in_call_set_animation_image(callview,"linphone-media-play");
- linphone_gtk_call_update_tab_header(call,FALSE);
- linphone_gtk_enable_mute_button(
- GTK_BUTTON(linphone_gtk_get_widget(callview,"incall_mute")),TRUE);
-
- if (taskid==0){
- taskid=g_timeout_add(250,(GSourceFunc)linphone_gtk_in_call_view_refresh,call);
- g_object_set_data(G_OBJECT(callview),"taskid",GINT_TO_POINTER(taskid));
- }
- linphone_gtk_in_call_view_enable_audio_view(call, !in_conf);
- linphone_gtk_in_call_view_show_encryption(call);
- if (in_conf){
- linphone_gtk_set_in_conference(call);
- gtk_widget_set_sensitive(linphone_gtk_get_widget(callview,"incall_mute"),FALSE);
- gtk_widget_set_sensitive(linphone_gtk_get_widget(callview,"hold_call"),FALSE);
- }else{
- linphone_gtk_unset_from_conference(call); /*in case it was previously*/
- gtk_widget_set_sensitive(linphone_gtk_get_widget(callview,"incall_mute"),TRUE);
- gtk_widget_set_sensitive(linphone_gtk_get_widget(callview,"hold_call"),TRUE);
- }
- gtk_widget_show_all(linphone_gtk_get_widget(callview,"buttons_panel"));
- if (!in_conf) gtk_widget_show_all(linphone_gtk_get_widget(callview,"record_hbox"));
- else gtk_widget_hide(linphone_gtk_get_widget(callview,"record_hbox"));
- if (call_stats) show_used_codecs(call_stats,call);
-}
-
-void linphone_gtk_in_call_view_set_paused(LinphoneCall *call){
- GtkWidget *callview=(GtkWidget*)linphone_call_get_user_pointer(call);
- GtkWidget *status=linphone_gtk_get_widget(callview,"in_call_status");
- GtkWidget *record_bar = linphone_gtk_get_widget(callview, "record_hbox");
- gtk_widget_hide(linphone_gtk_get_widget(callview,"answer_decline_panel"));
- gtk_label_set_markup(GTK_LABEL(status),_("Paused call"));
- linphone_gtk_in_call_show_video(call);
- linphone_gtk_in_call_set_animation_image(callview,"linphone-media-pause");
- gtk_widget_show_all(record_bar);
-}
-
-void linphone_gtk_in_call_view_update_duration(LinphoneCall *call){
- GtkWidget *callview=(GtkWidget*)linphone_call_get_user_pointer(call);
- GtkWidget *duration_label=linphone_gtk_get_widget(callview,"in_call_duration");
- int duration=linphone_call_get_duration(call);
- char tmp[256]={0};
- int seconds=duration%60;
- int minutes=(duration/60)%60;
- int hours=duration/3600;
- snprintf(tmp,sizeof(tmp)-1,"%02i:%02i:%02i",hours,minutes,seconds);
- gtk_label_set_text(GTK_LABEL(duration_label),tmp);
-}
-
-static gboolean in_call_view_terminated(LinphoneCall *call){
- linphone_gtk_remove_in_call_view(call);
- return FALSE;
-}
-
-void linphone_gtk_in_call_view_terminate(LinphoneCall *call, const char *error_msg){
- GtkWidget *callview=(GtkWidget*)linphone_call_get_user_pointer(call);
- GtkWidget *status;
- GtkWidget *video_window;
- gboolean in_conf;
- guint taskid;
- if(callview==NULL) return;
- video_window=(GtkWidget*)g_object_get_data(G_OBJECT(callview),"video_window");
- status=linphone_gtk_get_widget(callview,"in_call_status");
- taskid=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(callview),"taskid"));
- in_conf=(linphone_call_get_conference(call) != NULL);
- if (video_window) gtk_widget_destroy(video_window);
- if (status==NULL) return;
- if (error_msg==NULL)
- gtk_label_set_markup(GTK_LABEL(status),_("Call ended."));
- else{
- char *msg=g_markup_printf_escaped("%s",error_msg);
- gtk_label_set_markup(GTK_LABEL(status),msg);
- g_free(msg);
- }
-
- linphone_gtk_in_call_set_animation_image(callview, linphone_gtk_get_ui_config("stop_call_icon_name","linphone-stop-call"));
- linphone_gtk_in_call_view_hide_encryption(call);
-
- gtk_widget_hide(linphone_gtk_get_widget(callview,"answer_decline_panel"));
- gtk_widget_hide(linphone_gtk_get_widget(callview,"record_hbox"));
- gtk_widget_hide(linphone_gtk_get_widget(callview,"buttons_panel"));
- gtk_widget_hide(linphone_gtk_get_widget(callview,"incall_audioview"));
- gtk_widget_hide(linphone_gtk_get_widget(callview,"quality_indicator"));
- linphone_gtk_enable_mute_button(
- GTK_BUTTON(linphone_gtk_get_widget(callview,"incall_mute")),FALSE);
- linphone_gtk_enable_hold_button(call,FALSE,TRUE);
-
- if (taskid!=0) g_source_remove(taskid);
- g_timeout_add_seconds(2,(GSourceFunc)in_call_view_terminated,call);
- if (in_conf)
- linphone_gtk_terminate_conference_participant(call);
-}
-
-void linphone_gtk_in_call_view_set_transfer_status(LinphoneCall *call,LinphoneCallState cstate){
- GtkWidget *callview=(GtkWidget*)linphone_call_get_user_pointer(call);
- if (callview){
- GtkWidget *duration=linphone_gtk_get_widget(callview,"in_call_duration");
- const char *transfer_status="unknown";
- switch(cstate){
- case LinphoneCallOutgoingProgress:
- transfer_status=_("Transfer in progress");
- break;
- case LinphoneCallConnected:
- transfer_status=_("Transfer done.");
- break;
- case LinphoneCallError:
- transfer_status=_("Transfer failed.");
- break;
- default:
- break;
- }
- gtk_label_set_text(GTK_LABEL(duration),transfer_status);
- }
-}
-
-void linphone_gtk_draw_mute_button(GtkButton *button, gboolean active){
- const char *icon_name = active ? "linphone-micro-muted" : "linphone-micro-enabled";
- GtkWidget *image = gtk_image_new_from_icon_name(icon_name, GTK_ICON_SIZE_BUTTON);
- gtk_button_set_image(button, image);
- gtk_widget_show(image);
- g_object_set_data(G_OBJECT(button),"active",GINT_TO_POINTER(active));
-}
-
-void linphone_gtk_mute_clicked(GtkButton *button){
- int active=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(button),"active"));
- linphone_core_enable_mic(linphone_gtk_get_core(),active);
- linphone_gtk_draw_mute_button(button,!active);
-}
-
-void linphone_gtk_enable_mute_button(GtkButton *button, gboolean sensitive){
- /*gtk_widget_set_sensitive(GTK_WIDGET(button),sensitive);*/
- gtk_widget_set_visible(GTK_WIDGET(button),sensitive);
- linphone_gtk_draw_mute_button(button,FALSE);
-}
-
-void linphone_gtk_draw_hold_button(GtkButton *button, gboolean active){
- const gchar *icon_name = active ? "linphone-hold-on" : "linphone-hold-off";
- const gchar *label = active ? _("Resume") : _("Pause");
- GtkWidget *image = gtk_image_new_from_icon_name(icon_name, GTK_ICON_SIZE_BUTTON);
- g_object_set_data(G_OBJECT(button),"active",GINT_TO_POINTER(active));
- gtk_button_set_label(GTK_BUTTON(button),label);
- gtk_button_set_image(GTK_BUTTON(button),image);
- gtk_widget_show(image);
-}
-
-void linphone_gtk_hold_clicked(GtkButton *button){
- int active=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(button),"active"));
- LinphoneCall *call=linphone_gtk_get_currently_displayed_call(NULL);
- linphone_gtk_call_update_tab_header(call,active);
- if (!call) return;
- if(!active)
- {
- linphone_call_pause(call);
- }
- else
- {
- linphone_call_resume(call);
- }
-}
-
-void linphone_gtk_enable_hold_button(LinphoneCall *call, gboolean sensitive, gboolean holdon){
- GtkWidget *callview=(GtkWidget*)linphone_call_get_user_pointer (call);
- GtkWidget *button;
- g_return_if_fail(callview!=NULL);
- linphone_gtk_call_update_tab_header(call,!holdon);
- button=linphone_gtk_get_widget(callview,"hold_call");
- gtk_widget_set_sensitive(GTK_WIDGET(button),sensitive);
- gtk_widget_set_visible(GTK_WIDGET(button),sensitive);
- linphone_gtk_draw_hold_button(GTK_BUTTON(button),!holdon);
-}
-
-void linphone_gtk_call_statistics_closed(GtkWidget *call_stats){
- gtk_widget_destroy(call_stats);
-}
-
-void linphone_gtk_record_call_toggled(GtkWidget *button){
- gboolean active=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button));
- gboolean is_conf=FALSE;
- const char *filepath;
- gchar *message;
- LinphoneCore *lc=linphone_gtk_get_core();
- LinphoneCall *call=linphone_gtk_get_currently_displayed_call(&is_conf);
- GtkWidget *callview;
- GtkWidget *label;
- if (call){
- const LinphoneCallParams *params;
- callview=(GtkWidget*)linphone_call_get_user_pointer (call);
- params=linphone_call_get_current_params(call);
- filepath=linphone_call_params_get_record_file(params);
- label=linphone_gtk_get_widget(callview,"record_status");
- }else if (is_conf){
- GtkWidget *mw=linphone_gtk_get_main_window();
- callview=(GtkWidget *)g_object_get_data(G_OBJECT(linphone_gtk_get_main_window()),"conf_frame");
- label=linphone_gtk_get_widget(callview,"conf_record_status");
- filepath=(const char*)g_object_get_data(G_OBJECT(mw),"conf_record_path");
- if (filepath==NULL){
- filepath=linphone_gtk_get_record_path(NULL,TRUE);
- g_object_set_data_full(G_OBJECT(mw),"conf_record_path",(char*)filepath,g_free);
- }
- }else{
- g_warning("linphone_gtk_record_call_toggled(): bug.");
- return;
- }
- message=g_strdup_printf(_("Recording into\n%s %s"),filepath,active ? "" : _("(Paused)"));
-
- if (active){
- if (call)
- linphone_call_start_recording(call);
- else
- linphone_core_start_conference_recording(lc,filepath);
- }else {
- if (call)
- linphone_call_stop_recording(call);
- else
- linphone_core_stop_conference_recording(lc);
-
- }
- gtk_label_set_markup(GTK_LABEL(label),g_locale_to_utf8(message, -1, NULL, NULL, NULL));
- g_free(message);
-}
-
diff --git a/gtk/keypad.ui b/gtk/keypad.ui
deleted file mode 100644
index 020204f2b..000000000
--- a/gtk/keypad.ui
+++ /dev/null
@@ -1,265 +0,0 @@
-
-
-
-
-
- False
-
-
-
- True
- False
- GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK
- 0.5
- none
-
-
-
-
- True
- False
- 0
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 4
- 4
- 4
- True
-
-
- D
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- 3
- 4
- 3
- 4
-
-
-
-
- #
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- 2
- 3
- 3
- 4
-
-
-
-
- 0
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- 1
- 2
- 3
- 4
-
-
-
-
- *
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- 3
- 4
-
-
-
-
- C
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- 3
- 4
- 2
- 3
-
-
-
-
- 9
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- 2
- 3
- 2
- 3
-
-
-
-
- 8
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- 1
- 2
- 2
- 3
-
-
-
-
- 7
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- 2
- 3
-
-
-
-
- B
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- 3
- 4
- 1
- 2
-
-
-
-
- 6
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- 2
- 3
- 1
- 2
-
-
-
-
- 5
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- 1
- 2
- 1
- 2
-
-
-
-
- 4
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- 1
- 2
-
-
-
-
- A
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- 3
- 4
-
-
-
-
- 3
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- 2
- 3
-
-
-
-
- 2
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- 1
- 2
-
-
-
-
- 1
- 40
- 40
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/gtk/ldap.ui b/gtk/ldap.ui
deleted file mode 100644
index a5df241d1..000000000
--- a/gtk/ldap.ui
+++ /dev/null
@@ -1,669 +0,0 @@
-
-
-
-
-
- False
- LDAP Settings
-
-
- True
- False
-
-
- True
- False
- 0
- none
-
-
- True
- False
- 12
-
-
- True
- False
- 5
- 2
-
-
- True
- False
- 1
- Server address:
-
-
-
-
- True
- False
- Authentication method:
-
-
- 1
- 2
-
-
-
-
- True
- False
- Username:
-
-
- 2
- 3
-
-
-
-
- True
- False
- Password:
-
-
- 3
- 4
-
-
-
-
- Use TLS Connection
- True
- False
- True
- False
- Not yet available
- False
- True
-
-
- 1
- 2
- 4
- 5
-
-
-
-
- True
- True
- •
- True
- False
- False
- True
- True
-
-
- 1
- 2
-
-
-
-
- True
- True
- •
- True
- False
- False
- True
- True
-
-
- 1
- 2
- 2
- 3
-
-
-
-
- True
- True
- False
- False
- False
- True
- True
-
-
- 1
- 2
- 3
- 4
-
-
-
-
- True
- False
- liststore2
- 0
-
-
-
- 0
-
-
-
-
- 1
- 2
- 1
- 2
-
-
-
-
-
-
-
-
-
-
-
- True
- False
- <b>Connection</b>
- True
-
-
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- 0
- none
-
-
- True
- False
- 12
-
-
- True
- False
- 3
- 2
-
-
- True
- False
- Bind DN
-
-
-
-
- True
- False
- Authname
-
-
- 1
- 2
-
-
-
-
- True
- False
- Realm
-
-
- 2
- 3
-
-
-
-
- True
- True
- •
- False
- False
- True
- True
-
-
- 1
- 2
-
-
-
-
- True
- True
- •
- True
- False
- False
- True
- True
-
-
- 1
- 2
- 1
- 2
-
-
-
-
- True
- True
- •
- True
- False
- False
- True
- True
-
-
- 1
- 2
- 2
- 3
-
-
-
-
-
-
-
-
- True
- False
- <b>SASL</b>
- True
-
-
-
-
- True
- True
- 1
-
-
-
-
- True
- False
- 0
- none
-
-
- True
- False
- 12
-
-
- True
- False
- 5
- 2
-
-
- True
- False
- Base object:
-
-
-
-
- True
- False
- Filter (%s for name):
-
-
- 1
- 2
-
-
-
-
- True
- False
- Name Attribute:
-
-
- 2
- 3
-
-
-
-
- True
- False
- SIP address attribute:
-
-
- 3
- 4
-
-
-
-
- True
- False
- Attributes to query:
-
-
- 4
- 5
-
-
-
-
- True
- True
- •
- True
- False
- False
- True
- True
-
-
- 1
- 2
-
-
-
-
- True
- True
- •
- True
- False
- False
- True
- True
-
-
- 1
- 2
- 1
- 2
-
-
-
-
- True
- True
- •
- True
- False
- False
- True
- True
-
-
- 1
- 2
- 2
- 3
-
-
-
-
- True
- True
- •
- True
- False
- False
- True
- True
-
-
- 1
- 2
- 3
- 4
-
-
-
-
- True
- True
- •
- True
- False
- False
- True
- True
-
-
- 1
- 2
- 4
- 5
-
-
-
-
-
-
-
-
- True
- False
- <b>Search</b>
- True
-
-
-
-
- True
- True
- 2
-
-
-
-
- True
- False
- 0
- none
-
-
- True
- False
- 12
-
-
- True
- False
- 3
- 2
-
-
- True
- False
- Timeout for search:
-
-
-
-
- True
- False
- Max results:
-
-
- 1
- 2
-
-
-
-
- True
- True
- •
- True
- False
- False
- True
- True
- timeout_adjustment
-
-
- 1
- 2
-
-
-
-
- True
- True
- 3
- •
- True
- False
- False
- True
- True
- result_adjustment
- True
-
-
- 1
- 2
- 1
- 2
-
-
-
-
- Follow Aliases
- True
- True
- False
- False
- True
-
-
- 1
- 2
- 2
- 3
-
-
-
-
-
-
-
-
-
-
-
- True
- False
- <b>Miscellaneous</b>
- True
-
-
-
-
- True
- True
- 3
-
-
-
-
- True
- False
- 2
-
-
-
-
-
- gtk-apply
- True
- True
- True
- False
- True
-
-
-
- False
- False
- end
- 1
-
-
-
-
- gtk-cancel
- True
- True
- True
- False
- True
-
-
-
- False
- False
- end
- 2
-
-
-
-
- False
- True
- 4
-
-
-
-
-
-
-
-
-
-
-
-
- ANONYMOUS
-
-
- SIMPLE
-
-
- DIGEST-MD5
-
-
- NTLM
-
-
-
-
- 1
- 100
- 50
- 1
- 10
-
-
- 1
- 100
- 10
- 1
- 10
-
-
diff --git a/gtk/linphone.h b/gtk/linphone.h
deleted file mode 100644
index 796ee8fb2..000000000
--- a/gtk/linphone.h
+++ /dev/null
@@ -1,379 +0,0 @@
-/*
-linphone, gtk-glade interface.
-Copyright (C) 2008 Simon MORLAT (simon.morlat@linphone.org)
-
-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 2
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#if __clang__ || ((__GNUC__ == 4 && __GNUC_MINOR__ >= 6) || __GNUC__ > 4)
-#pragma GCC diagnostic push
-#endif
-#ifndef _MSC_VER
-#pragma GCC diagnostic ignored "-Wstrict-prototypes"
-#endif
-
-#include
-
-#if __clang__ || ((__GNUC__ == 4 && __GNUC_MINOR__ >= 6) || __GNUC__ > 4)
-#pragma GCC diagnostic pop
-#endif
-
-#ifdef _WIN32
-// alloca is already defined by gtk
-#undef alloca
-#endif
-#include "linphone/core.h"
-
-#include "linphone/ldapprovider.h"
-
-#ifdef ENABLE_NLS
-
-#ifdef _MSC_VER
-// prevent libintl.h from re-defining fprintf and vfprintf
-#ifndef fprintf
-#define fprintf fprintf
-#endif
-#ifndef vfprintf
-#define vfprintf vfprintf
-#endif
-#define _GL_STDIO_H
-#endif
-
-# include
-# undef _
-# define _(String) dgettext (GETTEXT_PACKAGE,String)
-#else
-# define _(String) (String)
-# define ngettext(singular,plural,number) ((number>1) ? (plural) : (singular) )
-#endif // ENABLE_NLS
-
-#undef N_
-#define N_(str) (str)
-
-#ifdef USE_BUILDDATE_VERSION
-#include "version_date.h"
-#undef LINPHONE_VERSION
-#define LINPHONE_VERSION LINPHONE_VERSION_DATE
-#endif
-
-#include "setupwizard.h"
-
-#define LINPHONE_ICON "linphone.png"
-#define LINPHONE_ICON_NAME "linphone"
-
-enum {
- COMPLETION_HISTORY,
- COMPLETION_LDAP
-};
-
-typedef float (*get_volume_t)(void *data);
-
-typedef struct _volume_ctx{
- GtkWidget *widget;
- get_volume_t get_volume;
- void *data;
- float last_value;
-}volume_ctx_t;
-
-typedef enum {
- CAP_IGNORE,
- CAP_PLAYBACK,
- CAP_CAPTURE
-}DeviceCap;
-
-enum {
- START_LINPHONE,
- START_AUDIO_ASSISTANT,
- START_LINPHONE_WITH_CALL
-};
-
-GdkPixbuf * create_pixbuf(const gchar *filename);
-GdkPixbufAnimation *create_pixbuf_animation(const gchar *filename);
-void add_pixmap_directory(const gchar *directory);
-GtkWidget*create_pixmap(const gchar *filename);
-GtkWidget *_gtk_image_new_from_memory_at_scale(const void *data, gint len, gint w, gint h, gboolean preserve_ratio);
-GdkPixbuf *_gdk_pixbuf_new_from_memory_at_scale(const void *data, gint len, gint w, gint h, gboolean preserve_ratio);
-
-LINPHONE_PUBLIC void linphone_gtk_destroy_window(GtkWidget *window);
-LINPHONE_PUBLIC GtkWidget *linphone_gtk_create_window(const char *window_name, GtkWidget *parent);
-LINPHONE_PUBLIC GtkWidget *linphone_gtk_get_widget(GtkWidget *window, const char *name);
-LINPHONE_PUBLIC GtkWidget *linphone_gtk_create_widget(const char* widget_name);
-LINPHONE_PUBLIC GtkWidget *linphone_gtk_make_tab_header(const gchar *label, const gchar *icon_name, gboolean show_quit_button, GCallback cb, gpointer user_data);
-
-char *linphone_gtk_message_storage_get_db_file(const char *filename);
-char *linphone_gtk_call_logs_storage_get_db_file(const char *filename);
-char *linphone_gtk_friends_storage_get_db_file(const char* filename);
-LINPHONE_PUBLIC void linphone_gtk_close_assistant(void);
-
-LINPHONE_PUBLIC LinphoneCore *linphone_gtk_get_core(void);
-LINPHONE_PUBLIC GtkWidget *linphone_gtk_get_main_window(void);
-LINPHONE_PUBLIC void linphone_gtk_display_something(GtkMessageType type, const gchar *message);
-LINPHONE_PUBLIC void linphone_gtk_call_terminated(LinphoneCall *call, const char *error);
-LINPHONE_PUBLIC void linphone_gtk_set_my_presence(LinphoneOnlineStatus ss);
-LINPHONE_PUBLIC void linphone_gtk_show_parameters(void);
-LINPHONE_PUBLIC void linphone_gtk_fill_soundcards(GtkWidget *pb);
-LINPHONE_PUBLIC void linphone_gtk_fill_webcams(GtkWidget *pb);
-LINPHONE_PUBLIC void linphone_gtk_load_identities(void);
-LINPHONE_PUBLIC void linphone_gtk_call_log_update(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_create_log_window(void);
-LINPHONE_PUBLIC void linphone_gtk_log_show(void);
-LINPHONE_PUBLIC void linphone_gtk_show_main_window(void);
-LINPHONE_PUBLIC void linphone_gtk_log_push(OrtpLogLevel lev, const char *fmt, va_list args);
-LINPHONE_PUBLIC void linphone_gtk_destroy_log_window(void);
-LINPHONE_PUBLIC void linphone_gtk_refer_received(LinphoneCore *lc, const char *refer_to);
-LINPHONE_PUBLIC gboolean linphone_gtk_check_logs(void);
-LINPHONE_PUBLIC const gchar *linphone_gtk_get_ui_config(const char *key, const char *def);
-LINPHONE_PUBLIC int linphone_gtk_get_ui_config_int(const char *key, int def);
-LINPHONE_PUBLIC void linphone_gtk_set_ui_config_int(const char *key, int val);
-LINPHONE_PUBLIC void linphone_gtk_visibility_set(const char *hiddens, const char *window_name, GtkWidget *w, gboolean show);
-
-LINPHONE_PUBLIC LinphoneLDAPContactProvider* linphone_gtk_get_ldap(void);
-LINPHONE_PUBLIC void linphone_gtk_set_ldap(LinphoneLDAPContactProvider* ldap);
-LINPHONE_PUBLIC int linphone_gtk_is_ldap_supported(void);
-
-LINPHONE_PUBLIC void linphone_gtk_open_browser(const char *url);
-LINPHONE_PUBLIC void linphone_gtk_check_for_new_version(void);
-LINPHONE_PUBLIC const char *linphone_gtk_get_lang(const char *config_file);
-LINPHONE_PUBLIC void linphone_gtk_set_lang(const char *code);
-LINPHONE_PUBLIC SipSetupContext* linphone_gtk_get_default_sip_setup_context(void);
-LINPHONE_PUBLIC GtkWidget * linphone_gtk_show_buddy_lookup_window(SipSetupContext *ctx);
-LINPHONE_PUBLIC void linphone_gtk_buddy_lookup_set_keyword(GtkWidget *w, const char *kw);
-LINPHONE_PUBLIC void * linphone_gtk_wait(LinphoneCore *lc, void *ctx, LinphoneWaitingState ws, const char *purpose, float progress);
-LINPHONE_PUBLIC void linphone_gtk_terminate_call(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_call_update_tab_header(LinphoneCall *call, gboolean pause);
-LINPHONE_PUBLIC void linphone_gtk_show_directory_search(void);
-LINPHONE_PUBLIC void linphone_gtk_status_icon_set_blinking(gboolean val);
-LINPHONE_PUBLIC void linphone_gtk_notify(LinphoneCall *call, LinphoneChatMessage *chat_message, const char *msg);
-
-LINPHONE_PUBLIC void linphone_gtk_load_chatroom(LinphoneChatRoom *cr, const LinphoneAddress *uri, GtkWidget *chat_view);
-LINPHONE_PUBLIC void linphone_gtk_send_text(void);
-LINPHONE_PUBLIC GtkWidget * linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddress *with);
-LINPHONE_PUBLIC LinphoneChatRoom * linphone_gtk_create_chatroom(const LinphoneAddress *with);
-LINPHONE_PUBLIC void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room, LinphoneChatMessage *msg);
-LINPHONE_PUBLIC void linphone_gtk_is_composing_received(LinphoneCore *lc, LinphoneChatRoom *room);
-
-LINPHONE_PUBLIC void linphone_gtk_friend_list_update_button_display(GtkTreeView *friendlist);
-LINPHONE_PUBLIC void linphone_gtk_friend_list_set_chat_conversation(const LinphoneAddress *la);
-LINPHONE_PUBLIC gboolean linphone_gtk_friend_list_is_contact(const LinphoneAddress *addr);
-LINPHONE_PUBLIC void linphone_gtk_friend_list_set_active_address(const LinphoneAddress *addr);
-LINPHONE_PUBLIC const LinphoneAddress *linphone_gtk_friend_list_get_active_address(void);
-LINPHONE_PUBLIC gboolean linphone_gtk_friend_list_enter_event_handler(GtkTreeView *friendlist, GdkEventCrossing *event);
-LINPHONE_PUBLIC gboolean linphone_gtk_friend_list_leave_event_handler(GtkTreeView *friendlist, GdkEventCrossing *event);
-LINPHONE_PUBLIC gboolean linphone_gtk_friend_list_motion_event_handler(GtkTreeView *friendlist, GdkEventMotion *event);
-LINPHONE_PUBLIC void linphone_gtk_friend_list_on_name_column_clicked(GtkTreeModel *model);
-LINPHONE_PUBLIC void linphone_gtk_notebook_tab_select(GtkNotebook *notebook, GtkWidget *page, guint page_num, gpointer data);
-LINPHONE_PUBLIC void linphone_gtk_show_friends(void);
-LINPHONE_PUBLIC void linphone_gtk_show_contact(LinphoneFriend *lf, GtkWidget *parent);
-LINPHONE_PUBLIC void linphone_gtk_buddy_info_updated(LinphoneCore *lc, LinphoneFriend *lf);
-
-/*functions controlling the different views*/
-LINPHONE_PUBLIC gboolean linphone_gtk_use_in_call_view(void);
-LINPHONE_PUBLIC LinphoneCall *linphone_gtk_get_currently_displayed_call(gboolean *is_conf);
-LINPHONE_PUBLIC void linphone_gtk_create_in_call_view(LinphoneCall *call);
-LINPHONE_PUBLIC void linphone_gtk_in_call_view_set_calling(LinphoneCall *call);
-LINPHONE_PUBLIC void linphone_gtk_in_call_view_set_in_call(LinphoneCall *call);
-LINPHONE_PUBLIC void linphone_gtk_in_call_view_update_duration(LinphoneCall *call);
-LINPHONE_PUBLIC void linphone_gtk_in_call_view_terminate(LinphoneCall *call, const char *error_msg);
-LINPHONE_PUBLIC void linphone_gtk_in_call_view_set_incoming(LinphoneCall *call);
-LINPHONE_PUBLIC void linphone_gtk_in_call_view_set_paused(LinphoneCall *call);
-LINPHONE_PUBLIC void linphone_gtk_in_call_view_set_transfer_status(LinphoneCall *call, LinphoneCallState cstate);
-LINPHONE_PUBLIC void linphone_gtk_mute_clicked(GtkButton *button);
-LINPHONE_PUBLIC void transfer_button_clicked(GtkWidget *button, gpointer call_ref);
-LINPHONE_PUBLIC void linphone_gtk_enable_mute_button(GtkButton *button, gboolean sensitive);
-LINPHONE_PUBLIC void linphone_gtk_enable_hold_button(LinphoneCall *call, gboolean sensitive, gboolean holdon);
-LINPHONE_PUBLIC void linphone_gtk_enable_transfer_button(LinphoneCore *lc, gboolean value);
-LINPHONE_PUBLIC void linphone_gtk_enable_conference_button(LinphoneCore *lc, gboolean value);
-LINPHONE_PUBLIC void linphone_gtk_set_in_conference(LinphoneCall *call);
-LINPHONE_PUBLIC void linphone_gtk_unset_from_conference(LinphoneCall *call);
-LINPHONE_PUBLIC bool_t linphone_gtk_call_is_in_conference_view(LinphoneCall *call);
-LINPHONE_PUBLIC void linphone_gtk_terminate_conference_participant(LinphoneCall *call);
-LINPHONE_PUBLIC void linphone_gtk_in_call_view_show_encryption(LinphoneCall *call);
-LINPHONE_PUBLIC void linphone_gtk_in_call_view_hide_encryption(LinphoneCall *call);
-LINPHONE_PUBLIC void linphone_gtk_update_video_button(LinphoneCall *call);
-LINPHONE_PUBLIC void linphone_gtk_init_audio_meter(GtkWidget *w, get_volume_t get_volume, void *data);
-LINPHONE_PUBLIC void linphone_gtk_uninit_audio_meter(GtkWidget *w);
-
-LINPHONE_PUBLIC void linphone_gtk_show_login_frame(LinphoneProxyConfig *cfg, gboolean disable_auto_login);
-LINPHONE_PUBLIC void linphone_gtk_exit_login_frame(void);
-LINPHONE_PUBLIC void linphone_gtk_set_ui_config(const char *key, const char *value);
-
-LINPHONE_PUBLIC void linphone_gtk_log_uninit(void);
-
-LINPHONE_PUBLIC bool_t linphone_gtk_init_instance(const char *app_name, int option, const char *addr_to_call);
-LINPHONE_PUBLIC void linphone_gtk_uninit_instance(void);
-LINPHONE_PUBLIC void linphone_gtk_monitor_usb(void);
-LINPHONE_PUBLIC void linphone_gtk_unmonitor_usb(void);
-
-LINPHONE_PUBLIC void linphone_gtk_fill_combo_box(GtkWidget *combo, const char **devices, const char *selected, DeviceCap cap);
-LINPHONE_PUBLIC gchar *linphone_gtk_get_record_path(const LinphoneAddress *address, gboolean is_conference);
-LINPHONE_PUBLIC gchar *linphone_gtk_get_snapshot_path(void);
-LINPHONE_PUBLIC void linphone_gtk_schedule_restart(void);
-
-LINPHONE_PUBLIC void linphone_gtk_show_audio_assistant(void);
-LINPHONE_PUBLIC gboolean linphone_gtk_get_audio_assistant_option(void);
-
-LINPHONE_PUBLIC void linphone_gtk_set_configuration_uri(void);
-LINPHONE_PUBLIC GtkWidget * linphone_gtk_show_config_fetching(void);
-LINPHONE_PUBLIC void linphone_gtk_close_config_fetching(GtkWidget *w, LinphoneConfiguringState state);
-LINPHONE_PUBLIC const char *linphone_gtk_get_sound_path(const char *file);
-LINPHONE_PUBLIC void linphone_gtk_in_call_show_video(LinphoneCall *call);
-LINPHONE_PUBLIC char *linphone_gtk_address(const LinphoneAddress *addr);/*return human readable identifier for a LinphoneAddress */
-LINPHONE_PUBLIC GtkWidget *linphone_gtk_get_camera_preview_window(void);
-
-LINPHONE_PUBLIC void linphone_gtk_login_frame_connect_clicked(GtkWidget *button, GtkWidget *login_frame);
-
-LINPHONE_PUBLIC gboolean linphone_gtk_call_log_reset_missed_call(GtkWidget *w, GdkEvent *event, gpointer user_data);
-LINPHONE_PUBLIC void linphone_gtk_history_row_activated(GtkWidget *treeview);
-LINPHONE_PUBLIC void linphone_gtk_history_row_selected(GtkWidget *treeview);
-LINPHONE_PUBLIC void linphone_gtk_clear_call_logs(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_add_contact(void);
-LINPHONE_PUBLIC void linphone_gtk_contact_clicked(GtkTreeSelection *selection);
-LINPHONE_PUBLIC void linphone_gtk_add_button_clicked(void);
-LINPHONE_PUBLIC void linphone_gtk_edit_button_clicked(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_remove_button_clicked(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_my_presence_clicked(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_directory_search_button_clicked(GtkWidget *button);
-LINPHONE_PUBLIC gboolean linphone_gtk_popup_contact_menu(GtkWidget *list, GdkEventButton *event);
-LINPHONE_PUBLIC gboolean linphone_gtk_contact_list_button_pressed(GtkTreeView* firendlist, GdkEventButton* event);
-LINPHONE_PUBLIC void linphone_gtk_auth_token_verified_clicked(GtkButton *button);
-LINPHONE_PUBLIC void linphone_gtk_hold_clicked(GtkButton *button);
-LINPHONE_PUBLIC void linphone_gtk_record_call_toggled(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_log_hide(void);
-LINPHONE_PUBLIC void linphone_gtk_log_scroll_to_end(GtkToggleButton *button);
-LINPHONE_PUBLIC void linphone_gtk_log_clear(void);
-LINPHONE_PUBLIC void linphone_gtk_logout_clicked(void);
-
-LINPHONE_PUBLIC void linphone_gtk_about_response(GtkDialog *dialog, gint id);
-LINPHONE_PUBLIC void linphone_gtk_show_about(void);
-LINPHONE_PUBLIC void linphone_gtk_start_call(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_start_chat(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_uri_bar_activate(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_terminate_call(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_decline_clicked(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_answer_clicked(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_enable_video(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_enable_self_view(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_used_identity_changed(GtkWidget *w);
-LINPHONE_PUBLIC void on_proxy_refresh_button_clicked(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_link_to_website(GtkWidget *item);
-LINPHONE_PUBLIC void linphone_gtk_options_activate(GtkWidget *item);
-LINPHONE_PUBLIC void linphone_gtk_show_keypad_checked(GtkCheckMenuItem *check_menu_item);
-LINPHONE_PUBLIC gboolean linphone_gtk_keypad_destroyed_handler(void);
-
-LINPHONE_PUBLIC void linphone_gtk_keyword_changed(GtkEditable *e);
-LINPHONE_PUBLIC void linphone_gtk_buddy_lookup_contact_activated(GtkWidget *treeview);
-LINPHONE_PUBLIC void linphone_gtk_add_buddy_from_database(GtkWidget *button);
-LINPHONE_PUBLIC gboolean linphone_gtk_call_log_button_pressed(GtkWidget *widget, GdkEventButton *event);
-LINPHONE_PUBLIC void linphone_gtk_call_statistics_closed(GtkWidget *call_stats);
-LINPHONE_PUBLIC void linphone_gtk_config_uri_cancel(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_config_uri_changed(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_contact_cancel(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_contact_ok(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_dscp_edit(void);
-LINPHONE_PUBLIC void linphone_gtk_dscp_edit_response(GtkWidget *dialog, guint response_id);
-LINPHONE_PUBLIC void linphone_gtk_keypad_key_released(GtkWidget *w, GdkEvent *event, gpointer userdata);
-LINPHONE_PUBLIC void linphone_gtk_keypad_key_pressed(GtkWidget *w, GdkEvent *event, gpointer userdata);
-LINPHONE_PUBLIC void linphone_gtk_ldap_save(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_ldap_reset(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_parameters_destroyed(GtkWidget *pb);
-LINPHONE_PUBLIC void linphone_gtk_mtu_set(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_mtu_changed(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_use_sip_info_dtmf_toggled(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_ipv6_toggled(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_lime_changed(GtkComboBoxText *comboext);
-LINPHONE_PUBLIC void linphone_gtk_disabled_udp_port_toggle(GtkCheckButton *button);
-LINPHONE_PUBLIC void linphone_gtk_random_udp_port_toggle(GtkCheckButton *button);
-LINPHONE_PUBLIC void linphone_gtk_udp_port_value_changed(GtkSpinButton *button);
-LINPHONE_PUBLIC void linphone_gtk_disabled_tcp_port_toggle(GtkCheckButton *button);
-LINPHONE_PUBLIC void linphone_gtk_random_tcp_port_toggle(GtkCheckButton *button);
-LINPHONE_PUBLIC void linphone_gtk_tcp_port_value_changed(GtkSpinButton *button);
-LINPHONE_PUBLIC void linphone_gtk_min_audio_port_changed(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_max_audio_port_changed(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_fixed_audio_port_toggle(void);
-LINPHONE_PUBLIC void linphone_gtk_min_video_port_changed(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_max_video_port_changed(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_fixed_video_port_toggle(void);
-LINPHONE_PUBLIC void linphone_gtk_set_media_encryption_mandatory(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_edit_tunnel(GtkButton *button);
-LINPHONE_PUBLIC void linphone_gtk_no_firewall_toggled(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_use_nat_address_toggled(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_use_stun_toggled(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_use_ice_toggled(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_use_upnp_toggled(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_nat_address_changed(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_stun_server_changed(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_ring_file_set(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_play_ring_file(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_alsa_special_device_changed(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_capture_device_changed(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_ring_device_changed(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_playback_device_changed(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_echo_cancelation_toggled(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_cam_changed(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_video_size_changed(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_video_renderer_changed(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_video_preset_changed(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_show_camera_preview_clicked(GtkButton *button);
-LINPHONE_PUBLIC void linphone_gtk_update_my_contact(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_add_proxy(GtkButton *button);
-LINPHONE_PUBLIC void linphone_gtk_show_sip_accounts(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_edit_proxy(GtkButton *button);
-LINPHONE_PUBLIC void linphone_gtk_remove_proxy(GtkButton *button);
-LINPHONE_PUBLIC void linphone_gtk_clear_passwords(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_audio_codec_up(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_audio_codec_down(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_audio_codec_enable(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_audio_codec_disable(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_video_codec_up(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_video_codec_down(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_video_codec_enable(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_video_codec_disable(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_video_framerate_changed(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_upload_bw_changed(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_download_bw_changed(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_adaptive_rate_control_toggled(GtkToggleButton *button);
-LINPHONE_PUBLIC void linphone_gtk_lang_changed(GtkComboBox *combo);
-LINPHONE_PUBLIC void linphone_gtk_ui_level_toggled(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_show_ldap_config(GtkWidget* button);
-LINPHONE_PUBLIC void linphone_gtk_parameters_closed(GtkWidget *button);
-LINPHONE_PUBLIC void linphone_gtk_password_ok(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_password_cancel(GtkWidget *w);
-LINPHONE_PUBLIC void linphone_gtk_proxy_ok(GtkButton *button);
-LINPHONE_PUBLIC void linphone_gtk_proxy_cancel(GtkButton *button);
-LINPHONE_PUBLIC void linphone_gtk_proxy_address_changed(GtkEditable *editable);
-LINPHONE_PUBLIC void linphone_gtk_proxy_transport_changed(GtkWidget *combo);
-LINPHONE_PUBLIC void linphone_gtk_tunnel_ok(GtkButton *button);
-LINPHONE_PUBLIC void linphone_gtk_notebook_current_page_changed(GtkNotebook *notebook, GtkWidget *page, guint page_num, gpointer user_data);
-LINPHONE_PUBLIC void linphone_gtk_reload_sound_devices(void);
-LINPHONE_PUBLIC void linphone_gtk_reload_video_devices(void);
-LINPHONE_PUBLIC bool_t linphone_gtk_is_friend(LinphoneCore *lc, const char *contact);
-LINPHONE_PUBLIC gboolean linphone_gtk_auto_answer_enabled(void);
-LINPHONE_PUBLIC void linphone_gtk_auto_answer_delay_changed(GtkSpinButton *spinbutton, gpointer user_data);
-LINPHONE_PUBLIC void linphone_gtk_update_status_bar_icons(void);
-LINPHONE_PUBLIC void linphone_gtk_enable_auto_answer(GtkToggleButton *checkbox, gpointer user_data);
-
-LINPHONE_PUBLIC void linphone_gtk_import_contacts(void);
-LINPHONE_PUBLIC void linphone_gtk_export_contacts(void);
-
-LINPHONE_PUBLIC void linphone_gtk_mark_chat_read(LinphoneChatRoom *cr);
-#ifdef __APPLE__
-LINPHONE_PUBLIC void linphone_gtk_update_badge_count();
-#endif
-
-LINPHONE_PUBLIC gboolean linphone_gtk_on_key_press(GtkWidget *widget, GdkEvent *event, gpointer user_data);
diff --git a/gtk/linphone.ico b/gtk/linphone.ico
deleted file mode 100755
index 2633d58f3..000000000
Binary files a/gtk/linphone.ico and /dev/null differ
diff --git a/gtk/linphone.iss b/gtk/linphone.iss
deleted file mode 100755
index f69104659..000000000
--- a/gtk/linphone.iss
+++ /dev/null
@@ -1,90 +0,0 @@
-; Script generated by the Inno Setup Script Wizard.
-; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
-
-[Setup]
-AppName=Linphone
-AppVerName=Linphone version 3.1.2
-AppPublisher=linphone.org
-AppPublisherURL=http://www.linphone.org
-AppSupportURL=http://www.linphone.org
-AppUpdatesURL=http://www.linphone.org
-DefaultDirName={pf}\Linphone
-DefaultGroupName=Linphone
-LicenseFile=..\COPYING
-;InfoBeforeFile=..\README
-OutputBaseFilename=setup
-Compression=lzma
-SolidCompression=yes
-
-[Languages]
-Name: "english"; MessagesFile: "compiler:Default.isl"
-
-[Tasks]
-Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
-
-[Files]
-Source: "linphone.exe"; DestDir: "{app}"; Flags: ignoreversion
-Source: "..\mediastreamer2\build\win32native\mediastream.exe"; DestDir: "{app}"; Flags: ignoreversion
-Source: "..\console\linphonec.exe"; DestDir: "{app}"; Flags: ignoreversion
-Source: "..\console\linphonecsh.exe"; DestDir: "{app}"; Flags: ignoreversion
-Source: "*.glade"; DestDir: "{app}/linphone"; Flags: ignoreversion
-Source: "..\pixmaps\*.png"; DestDir: "{app}/linphone"; Flags: ignoreversion
-Source: "*.png"; DestDir: "{app}/linphone"; Flags: ignoreversion
-Source: "..\mediastreamer2\src\nowebcamCIF.jpg"; DestDir: "{app}\images"; Flags: ignoreversion
-;;internal linphone dlls:
-Source: "..\..\linphone-deps\bin\osipparser2.dll"; DestDir: "{app}"; Flags: ignoreversion
-Source: "..\..\linphone-deps\bin\osip2.dll"; DestDir: "{app}"; Flags: ignoreversion
-Source: "..\..\linphone-deps\bin\exosip2.dll"; DestDir: "{app}"; Flags: ignoreversion
-Source: "..\..\linphone-deps\bin\libogg.dll"; DestDir: "{app}"; Flags: ignoreversion
-;;Source: "..\..\linphone-deps\bin\speex.dll"; DestDir: "{app}"; Flags: ignoreversion
-Source: "..\..\linphone-deps\bin\avcodec.dll"; DestDir: "{app}"; Flags: ignoreversion
-Source: "..\..\linphone-deps\bin\avutil-49.dll"; DestDir: "{app}"; Flags: ignoreversion
-Source: "..\..\linphone-deps\bin\swscale.dll"; DestDir: "{app}"; Flags: ignoreversion
-;;Source: "..\..\linphone-deps\bin\libspeex-1.dll"; DestDir: "{app}"; Flags: ignoreversion
-;;Source: "..\..\linphone-deps\bin\libspeexdsp-1.dll"; DestDir: "{app}"; Flags: ignoreversion
-Source: "..\coreapi\linphone.dll"; DestDir: "{app}"; Flags: ignoreversion
-Source: "..\mediastreamer2\build\win32native\mediastreamer2.dll"; DestDir: "{app}"; Flags: ignoreversion
-Source: "..\oRTP\build\win32native\ortp.dll"; DestDir: "{app}"; Flags: ignoreversion
-;;Sound files:
-Source: "..\COPYING"; DestDir: "{app}"; Flags: ignoreversion
-Source: "..\share\ringback.wav"; DestDir: "{app}"; Flags: ignoreversion
-Source: "..\share\rings\orig.wav"; DestDir: "{app}\rings"; Flags: ignoreversion
-Source: "..\share\rings\bigben.wav"; DestDir: "{app}\rings"; Flags: ignoreversion
-Source: "..\share\rings\toy.wav"; DestDir: "{app}\rings"; Flags: ignoreversion
-Source: "..\share\rings\tapping.wav"; DestDir: "{app}\rings"; Flags: ignoreversion
-Source: "..\share\rings\oldphone.wav"; DestDir: "{app}\rings"; Flags: ignoreversion
-;;Default my preferred gtk theme on windows:
-Source: "..\gtk-glade\gtkrc"; DestDir: "{app}"; Flags: ignoreversion
-;;Locales for linphone:
-Source: "..\po\fr.gmo"; DestDir: "{app}\share\locale\fr\LC_MESSAGES"; DestName: "linphone.mo"; Flags: ignoreversion
-Source: "..\po\sv.gmo"; DestDir: "{app}\share\locale\sv\LC_MESSAGES"; DestName: "linphone.mo"; Flags: ignoreversion
-
-;;GTK stuff:
-Source: "..\..\gtk+-2.14.7\bin\*.dll"; DestDir: "{app}"; Flags: ignoreversion
-Source: "..\..\libglade-2.6.3\bin\*.dll"; DestDir: "{app}"; Flags: ignoreversion
-Source: "..\..\gtk+-2.14.7\etc\gtk-2.0\*"; DestDir: "{app}\etc\gtk-2.0\"; Flags: ignoreversion
-Source: "..\..\linphone-deps\bin\libxml2.dll"; DestDir: "{app}"; Flags: ignoreversion
-Source: "..\..\iconv-1.9.2.win32\bin\*.dll"; DestDir: "{app}"; Flags: ignoreversion
-Source: "..\..\gtk+-2.14.7\lib\gtk-2.0\2.10.0\engines\*"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion
-Source: "..\..\gtk+-2.14.7\lib\gtk-2.0\2.10.0\loaders\*"; DestDir: "{app}\lib\gtk-2.0\2.10.0\loaders"; Flags: ignoreversion
-;;Source: "..\..\gtk+-2.14.7\lib\gtk-2.0\2.10.0\immodules\*"; DestDir: "{app}\lib\gtk-2.0\2.10.0\immodules"; Flags: ignoreversion
-Source: "..\..\gtk+-2.14.7\share\locale\fr\LC_MESSAGES\*"; DestDir: "{app}\share\locale\fr\LC_MESSAGES"; Flags: ignoreversion
-Source: "..\..\gtk+-2.14.7\share\locale\sv\LC_MESSAGES\*"; DestDir: "{app}\share\locale\sv\LC_MESSAGES"; Flags: ignoreversion
-Source: "..\..\XLiquid_GTK-1.0.3\gtk-2.0\*"; DestDir: "{app}\share\themes\XLiquid_GTK-1.0.3\gtk-2.0"; Flags: ignoreversion
-; NOTE: Don't use "Flags: ignoreversion" on any shared system files
-
-;; BuddyLookup plugin
-Source: "..\coreapi\plugins\buddylookup\libbuddylookup.dll"; DestDir: "{app}\liblinphone\plugins"; Flags: ignoreversion
-Source: "..\..\libsoup\bin\libsoup-2.4-1.dll"; DestDir: "{app}"; Flags: ignoreversion
-Source: "..\..\gnutls-2.6.4\bin\*.dll"; DestDir: "{app}"; Flags: ignoreversion
-
-;;Directshow capture plugin
-Source: "..\mediastreamer2\plugins\msdscap\libmsdscap.dll"; DestDir: "{app}\plugins" ; Flags: ignoreversion
-
-[Icons]
-Name: "{group}\Linphone"; Filename: "{app}\linphone.exe" ; WorkingDir: "{app}"
-Name: "{userdesktop}\Linphone"; Filename: "{app}\linphone.exe"; WorkingDir: "{app}" ; Tasks: desktopicon
-
-[Run]
-Filename: "{app}\linphone.exe"; Description: "{cm:LaunchProgram,Linphone}"; WorkingDir: "{app}" ; Flags: nowait postinstall skipifsilent
-
diff --git a/gtk/linphone.rc b/gtk/linphone.rc
deleted file mode 100755
index 9455ab6b3..000000000
--- a/gtk/linphone.rc
+++ /dev/null
@@ -1,5 +0,0 @@
-// This file is automatically generated by wxDev-C++.
-// All changes to this file will be lost when the project is recompiled.
-
-A ICON MOVEABLE PURE LOADONCALL DISCARDABLE "linphone.ico"
-
diff --git a/gtk/log.ui b/gtk/log.ui
deleted file mode 100644
index 40658b7db..000000000
--- a/gtk/log.ui
+++ /dev/null
@@ -1,113 +0,0 @@
-
-
-
-
- 540
- 290
- False
- 5
- Linphone debug window
- center-on-parent
- normal
- False
-
-
- True
- False
- vertical
- 2
-
-
- True
- False
- True
- spread
-
-
- Scroll to end
- True
- True
- False
- False
- 0
- False
- True
-
-
-
- False
- True
- 0
-
-
-
-
- gtk-clear
- True
- True
- True
- False
- True
-
-
-
- False
- True
- 1
-
-
-
-
- gtk-close
- True
- True
- True
- False
- True
-
-
-
- False
- True
- 2
-
-
-
-
- False
- True
- 0
-
-
-
-
- True
- True
- never
- bottom-left
- True
- in
-
-
- True
- True
- False
- word
-
-
-
-
- True
- True
- 1
-
-
-
-
-
- scroll_to_end
- button2
- button1
-
-
-
diff --git a/gtk/logging.c b/gtk/logging.c
deleted file mode 100644
index 068428564..000000000
--- a/gtk/logging.c
+++ /dev/null
@@ -1,373 +0,0 @@
-/*
-linphone, gtk-glade interface.
-Copyright (C) 2008 Simon MORLAT (simon.morlat@linphone.org)
-
-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 2
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include "linphone.h"
-
-#ifdef _WIN32
-#include
-#define mkdir _mkdir
-#else
-#include
-#include
-#endif
-
-#ifdef _MSC_VER
-#pragma warning(disable : 4996)
-#else
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
-
-extern gchar *linphone_logfile;
-
-static GtkWidget *log_window=NULL;
-static GStaticMutex log_mutex=G_STATIC_MUTEX_INIT;
-static GList *log_queue=NULL;
-static const char *dateformat="%Y%m%d-%H:%M:%S";
-
-#define LOG_MAX_CHARS 1000000 /*1 mega bytes of traces*/
-
-typedef struct _LinphoneGtkLog{
- OrtpLogLevel lev;
- gchar *msg;
-}LinphoneGtkLog;
-
-
-/******
- * Module to log to a file
- ******/
-
-/* Marker to insert as a line at the start of every log file */
-#define LOGFILE_MARKER_START "--------"
-/* Marker to insert as a line at the end of every log file */
-#define LOGFILE_MARKER_STOP "--------"
-/* Number of files to keep in history, log file rotation will be
- performed. */
-#define LOGFILE_ROTATION 4
-/* Pointer to opened log file */
-static FILE *_logfile = NULL;
-
-
-/* Called on exit, print out the marker, close the file and avoid to
- continue logging. */
-void linphone_gtk_log_uninit(void)
-{
- if (_logfile != NULL) {
- fprintf(_logfile, "%s\n", LOGFILE_MARKER_STOP);
- fclose(_logfile);
- _logfile = NULL;
- }
-}
-
-/* Called when we start logging, find a good place for the log files,
- perform rotation, insert the start marker and return the pointer to
- the file that should be used for logging, or NULL on errors or if
- disabled. */
-static FILE *linphone_gtk_log_init(void)
-{
- static char _logdir[1024];
- static char _logfname[1024];
- static gboolean _log_init = FALSE;
- const char *dst_fname=NULL;
-
- if (!_log_init) {
- if (linphone_gtk_get_core()!=NULL){
- dst_fname = linphone_gtk_get_ui_config("logfile",NULL);
- dateformat=linphone_gtk_get_ui_config("logfile_date_format",dateformat);
- }
- /* For anything to happen, we need a logfile configuration variable,
- this is our trigger */
- if (dst_fname) {
- /* arrange for _logdir to contain a
- directory that has been created and _logfname to contain the
- path to a file to which we will log */
-#ifdef _WIN32
- const char *appdata=getenv("LOCALAPPDATA");
- if (appdata) {
- snprintf(_logdir, sizeof(_logdir),"%s\\Linphone", appdata);
- mkdir(_logdir);
- } else {
- _logdir[0] = '\0';
- }
-#define PATH_SEPARATOR '\\'
-#else
- const char *home=getenv("HOME");
- if (home) {
- snprintf(_logdir, sizeof(_logdir),"%s/.linphone", home);
- mkdir(_logdir,S_IRUSR | S_IWUSR | S_IRGRP);
- } else {
- _logdir[0] = '\0';
- }
-#define PATH_SEPARATOR '/'
-#endif
- if (_logdir[0] != '\0') {
- /* We have a directory, fix the path to the log file in it and
- open the file so that we will be appending to it. */
- snprintf(_logfname, sizeof(_logfname), "%s%c%s",_logdir, PATH_SEPARATOR, dst_fname);
- }
- }else if (linphone_logfile!=NULL){
- snprintf(_logfname,sizeof(_logfname),"%s",linphone_logfile);
- }
-
- if (_logfname[0]!='\0'){
- /* If the constant LOGFILE_ROTATION is greater than zero, then
- we kick away a simple rotation that will ensure that there
- are never more than LOGFILE_ROTATION+1 old copies of the
- log file on the disk. The oldest file is always rotated
- "away" as expected. Rotated files have the same name as
- the main log file, though with a number 0..LOGFILE_ROTATION
- at the end, where the greater the number is, the older the
- file is. */
- if (ortp_file_exist(_logfname)==0 && LOGFILE_ROTATION > 0) {
- int i;
- char old_fname[1024];
- char new_fname[1024];
-
- /* Rotate away existing files. We make sure to remove the
- old files otherwise rename() would not work properly. We
- have to loop in reverse here. */
- for (i=LOGFILE_ROTATION-1;i>=0;i--) {
- snprintf(old_fname, sizeof(old_fname), "%s%c%s.%d",
- _logdir, PATH_SEPARATOR, dst_fname, i);
- snprintf(new_fname, sizeof(new_fname), "%s%c%s.%d",
- _logdir, PATH_SEPARATOR, dst_fname, i+1);
- if (ortp_file_exist(old_fname)==0) {
- if (ortp_file_exist(new_fname)==0)
- unlink(new_fname);
- rename(old_fname, new_fname);
- }
- }
- /* Move current log file as the first of the rotation. Make
- sure to remove the old .0 also, since otherwise rename()
- would not work as expected. */
- snprintf(new_fname, sizeof(new_fname), "%s%c%s.%d",
- _logdir, PATH_SEPARATOR, dst_fname, 0);
- if (ortp_file_exist(new_fname)==0)
- unlink(new_fname);
- rename(_logfname, new_fname);
- }
- /* Start a new log file and mark that we have now initialised */
- _logfile = fopen(_logfname, "w");
- fprintf(_logfile, "%s\n", LOGFILE_MARKER_START);
- }
- _log_init = TRUE;
- }
- return _logfile;
-}
-
-static void linphone_gtk_log_file(OrtpLogLevel lev, const char *msg)
-{
- FILE *outlog;
-
- outlog = linphone_gtk_log_init();
- if (outlog != NULL) {
- /* We have an opened file and we have initialised properly, it's
- time to write all these log messages. We convert the log level
- from oRTP into something readable and timestamp each log
- message. The format of the time stamp can be controlled by
- logfile_date_format in the GtkUi section of the config file,
- but it defaults to something compact, but yet readable. */
- const char *lname="undef";
-
- /* Convert level constant to text */
- switch(lev){
- case ORTP_DEBUG:
- lname="debug ";
- break;
- case ORTP_MESSAGE:
- lname="message";
- break;
- case ORTP_WARNING:
- lname="warning";
- break;
- case ORTP_ERROR:
- lname="error ";
- break;
- case ORTP_FATAL:
- lname="fatal ";
- break;
- default:
- lname="undef ";
- break;
- }
- fprintf(outlog, "[%s] %s\n", lname, msg);
- fflush(outlog);
- }
-}
-
-void linphone_gtk_log_hide(void){
- if (log_window)
- gtk_widget_hide(log_window);
-}
-
-void linphone_gtk_create_log_window(void){
- GtkTextBuffer *b;
- log_window=linphone_gtk_create_window("log", NULL);
- b=gtk_text_view_get_buffer(GTK_TEXT_VIEW(linphone_gtk_get_widget(log_window,"textview")));
- gtk_text_buffer_create_tag(b,"red","foreground","red",NULL);
- gtk_text_buffer_create_tag(b,"orange","foreground","orange",NULL);
- /*prevent the log window from being destroyed*/
- g_signal_connect (G_OBJECT (log_window), "delete-event",
- G_CALLBACK (gtk_widget_hide_on_delete), log_window);
-}
-
-void linphone_gtk_destroy_log_window(void){
- GtkWidget *w=log_window;
- g_static_mutex_lock(&log_mutex);
- log_window=NULL;
- gtk_widget_destroy(w);
- g_static_mutex_unlock(&log_mutex);
-}
-
-void linphone_gtk_log_show(void){
- gtk_widget_show(log_window);
- gtk_window_present(GTK_WINDOW(log_window));
-}
-
-static void linphone_gtk_display_log(GtkTextView *v, OrtpLogLevel lev, const char *msg){
- GtkTextIter iter,begin;
- int off;
- GtkTextBuffer *b;
- const char *lname="undef";
-
- b=gtk_text_view_get_buffer(v);
- switch(lev){
- case ORTP_DEBUG:
- lname="debug";
- break;
- case ORTP_MESSAGE:
- lname="message";
- break;
- case ORTP_WARNING:
- lname="warning";
- break;
- case ORTP_ERROR:
- lname="error";
- break;
- case ORTP_FATAL:
- lname="fatal";
- break;
- default:
- g_error("Bad level !");
- }
-
- gtk_text_buffer_get_end_iter(b,&iter);
- off=gtk_text_iter_get_offset(&iter);
- gtk_text_buffer_insert(b,&iter,lname,-1);
- gtk_text_buffer_get_end_iter(b,&iter);
- gtk_text_buffer_insert(b,&iter,": ",-1);
- gtk_text_buffer_get_end_iter(b,&iter);
- gtk_text_buffer_insert(b,&iter,msg,-1);
- gtk_text_buffer_get_end_iter(b,&iter);
- gtk_text_buffer_insert(b,&iter,"\n",-1);
- gtk_text_buffer_get_end_iter(b,&iter);
- gtk_text_buffer_get_iter_at_offset(b,&begin,off);
- if (lev==ORTP_ERROR || lev==ORTP_FATAL) gtk_text_buffer_apply_tag_by_name(b,"red",&begin,&iter);
- else if (lev==ORTP_WARNING) gtk_text_buffer_apply_tag_by_name(b,"orange",&begin,&iter);
-
- while(gtk_text_buffer_get_char_count(b)>LOG_MAX_CHARS){
- GtkTextIter iter_line_after;
- gtk_text_buffer_get_start_iter(b,&iter);
- iter_line_after=iter;
- if (gtk_text_iter_forward_line(&iter_line_after)){
- gtk_text_buffer_delete(b,&iter,&iter_line_after);
- }
- }
-
-}
-
-static void stick_to_end(GtkTextView *v){
- GtkTextBuffer *b;
- GtkTextIter iter;
- b=gtk_text_view_get_buffer(v);
- gtk_text_buffer_get_end_iter(b,&iter);
- gtk_text_view_scroll_to_iter(v,&iter,0,FALSE,1.0,0);
-}
-
-void linphone_gtk_log_scroll_to_end(GtkToggleButton *button) {
- if (gtk_toggle_button_get_active(button)){
- GtkTextView *v=GTK_TEXT_VIEW(linphone_gtk_get_widget(log_window,"textview"));
- stick_to_end(v);
- }
- lp_config_set_int(linphone_core_get_config(linphone_gtk_get_core()), "GtkUi", "logs_scroll_to_end", gtk_toggle_button_get_active(button) ? 1 : 0);
-}
-
-/*
- * called from Gtk main loop.
-**/
-gboolean linphone_gtk_check_logs(void){
- GList *elem;
- GtkTextView *v=NULL;
- if (log_window) v=GTK_TEXT_VIEW(linphone_gtk_get_widget(log_window,"textview"));
- g_static_mutex_lock(&log_mutex);
- for(elem=log_queue;elem!=NULL;elem=elem->next){
- LinphoneGtkLog *lgl=(LinphoneGtkLog*)elem->data;
- if (v) linphone_gtk_display_log(v,lgl->lev,lgl->msg);
- g_free(lgl->msg);
- g_free(lgl);
- }
- if (log_queue) g_list_free(log_queue);
- log_queue=NULL;
- g_static_mutex_unlock(&log_mutex);
- if (v) {
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(log_window,"scroll_to_end")), lp_config_get_int(linphone_core_get_config(linphone_gtk_get_core()), "GtkUi", "logs_scroll_to_end", 0) == 1);
- linphone_gtk_log_scroll_to_end(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(log_window,"scroll_to_end")));
- }
- return TRUE;
-}
-
-
-/*
- * Called from any linphone thread.
- */
-void linphone_gtk_log_push(OrtpLogLevel lev, const char *fmt, va_list args){
- LinphoneGtkLog *lgl=g_new(LinphoneGtkLog,1);
- gchar *msg=g_strdup_vprintf(fmt,args);
- gchar *dated_msg;
- struct timeval tp;
- struct tm *lt;
- time_t tt;
-
- ortp_gettimeofday(&tp, NULL);
- tt = (time_t)tp.tv_sec;
- lt = localtime((const time_t*)&tt);
- dated_msg=g_strdup_printf("%i-%.2i-%.2i %.2i:%.2i:%.2i:%.3i %s",
- 1900 + lt->tm_year, lt->tm_mon + 1, lt->tm_mday, lt->tm_hour, lt->tm_min, lt->tm_sec, (int)(tp.tv_usec / 1000), msg);
- g_free(msg);
- lgl->lev=lev;
- lgl->msg=dated_msg;
- linphone_gtk_log_file(lev, dated_msg);
- g_static_mutex_lock(&log_mutex);
- log_queue=g_list_append(log_queue,lgl);
- g_static_mutex_unlock(&log_mutex);
-}
-
-void linphone_gtk_log_clear(void){
- if (log_window){
- GtkTextIter end,begin;
- GtkTextView *v;
- GtkTextBuffer *b;
- v=GTK_TEXT_VIEW(linphone_gtk_get_widget(log_window,"textview"));
- b=gtk_text_view_get_buffer(v);
- gtk_text_buffer_get_start_iter(b,&begin);
- gtk_text_buffer_get_end_iter(b,&end);
- gtk_text_buffer_delete(b,&begin,&end);
- }
-}
-
-
diff --git a/gtk/login_frame.ui b/gtk/login_frame.ui
deleted file mode 100644
index f65229f14..000000000
--- a/gtk/login_frame.ui
+++ /dev/null
@@ -1,250 +0,0 @@
-
-
-
-
-
- False
- 0
- etched-out
-
-
- True
- False
- 12
-
-
- True
- False
-
-
- True
- False
- gtk-missing-image
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- 0
- none
-
-
- True
- False
- 12
- 12
-
-
- True
- False
- 5
- 2
-
-
-
-
-
- True
- False
- Username
-
-
-
-
- True
- False
- Password
-
-
- 1
- 2
-
-
-
-
- False
- Internet connection:
-
-
- 3
- 4
-
-
-
-
- True
- True
- ●
- True
- False
- False
- True
- True
-
-
- 1
- 2
-
-
-
-
- True
- True
- False
- ●
- True
- False
- False
- True
- True
-
-
- 1
- 2
- 1
- 2
-
-
-
-
- False
- 0
-
-
-
- 0
-
-
-
-
- 1
- 2
- 3
- 4
-
-
-
-
- Automatically log me in
- True
- True
- False
- True
-
-
- 1
- 2
- 4
- 5
-
-
-
-
- False
- UserID
-
-
- 2
- 3
-
-
-
-
- True
- •
- True
- False
- False
- True
- True
-
-
- 1
- 2
- 2
- 3
-
-
-
-
-
-
-
-
- True
- False
- Login information
- True
-
-
-
-
- True
- True
- 10
- 1
-
-
-
-
- True
- False
-
-
- gtk-connect
- True
- True
- True
- True
-
-
-
- False
- False
- 0
-
-
-
-
-
-
-
- True
- True
- 2
-
-
-
-
-
-
-
-
- True
- False
- <b>Welcome!</b>
- True
-
-
-
-
-
-
-
-
-
-
- ADSL
-
-
- Fiber Channel
-
-
-
-
diff --git a/gtk/loginframe.c b/gtk/loginframe.c
deleted file mode 100644
index 85174a18b..000000000
--- a/gtk/loginframe.c
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
-linphone, gtk-glade interface.
-Copyright (C) 2009 Simon MORLAT (simon.morlat@linphone.org)
-
-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 2
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include "linphone.h"
-
-void test_button_clicked_cb(GtkWidget *button);
-void linphone_gtk_exit_login_frame(void);
-
-
-static void do_login(SipSetupContext *ssctx, const char *identity, const char * passwd, const char *userid){
- if (sip_setup_context_login_account(ssctx,identity,passwd,userid)==0){
- }
-}
-
-static gboolean do_login_noprompt(LinphoneProxyConfig *cfg){
- SipSetupContext *ssctx=linphone_proxy_config_get_sip_setup_context(cfg);
- LinphoneAddress *addr;
- const char *username;
- char *tmp;
- if (ssctx==NULL) return TRUE;/*not ready ?*/
- username=linphone_gtk_get_ui_config ("login_username",NULL);
- if (username==NULL) {
- linphone_gtk_show_login_frame(cfg,TRUE);
- return FALSE;
- }
- addr=linphone_address_clone(linphone_proxy_config_get_identity_address(cfg));
- linphone_address_set_username(addr,username);
- tmp=linphone_address_as_string (addr);
- do_login(ssctx,tmp,NULL,NULL);
- linphone_address_unref(addr);
- linphone_gtk_load_identities();
- return FALSE;
-}
-
-static void linphone_gtk_init_login_frame(GtkWidget *login_frame, LinphoneProxyConfig *cfg) {
- gboolean auto_login=linphone_gtk_get_ui_config_int("automatic_login",0);
- const char *login_image=linphone_gtk_get_ui_config("login_image","linphone-banner.png");
- GtkWidget *label=linphone_gtk_get_widget(login_frame,"login_label");
- LinphoneCore *lc=linphone_gtk_get_core();
- gchar *str;
- LinphoneAddress *from;
- const LinphoneAuthInfo *ai;
- const char *passwd=NULL;
- const char *userid=NULL;
-
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(login_frame, "automatic_login")),auto_login);
-
- if (login_image){
- GdkPixbuf *pbuf=create_pixbuf (login_image);
- gtk_image_set_from_pixbuf (GTK_IMAGE(linphone_gtk_get_widget(login_frame, "login_image")), pbuf);
- g_object_unref(G_OBJECT(pbuf));
- }
-
- if (linphone_gtk_get_ui_config_int("login_needs_userid",FALSE)){
- gtk_widget_show(linphone_gtk_get_widget(login_frame,"userid"));
- gtk_widget_show(linphone_gtk_get_widget(login_frame,"login_userid"));
- }
-
- str=g_strdup_printf(_("Please enter login information for %s"),linphone_proxy_config_get_domain(cfg));
- gtk_label_set_text(GTK_LABEL(label),str);
- g_object_set_data(G_OBJECT(login_frame),"login_proxy_config",cfg);
- g_free(str);
-
- from=linphone_address_new(linphone_proxy_config_get_identity(cfg));
- if (linphone_address_get_username(from)[0]=='?'){
- const char *username=linphone_gtk_get_ui_config ("login_username",NULL);
- if (username)
- linphone_address_set_username(from,username);
- }
-
- ai=linphone_core_find_auth_info(lc,linphone_proxy_config_get_domain(cfg),linphone_address_get_username(from),NULL);
- /*display the last entered username, if not '?????'*/
- if (linphone_address_get_username(from)[0]!='?')
- gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(login_frame,"login_username")),
- linphone_address_get_username(from));
- if (ai) {
- passwd=linphone_auth_info_get_passwd(ai);
- userid=linphone_auth_info_get_userid(ai);
- }
- gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(login_frame,"login_password")),
- passwd!=NULL ? passwd : "");
- gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(login_frame,"login_userid")),
- userid ? userid : "");
-
- linphone_address_unref(from);
-}
-
-void linphone_gtk_show_login_frame(LinphoneProxyConfig *cfg, gboolean disable_auto_login){
- GtkWidget *mw=linphone_gtk_get_main_window();
- gboolean auto_login=linphone_gtk_get_ui_config_int("automatic_login",0);
- GtkWidget *main_frame = linphone_gtk_get_widget(mw, "main_frame");
- GtkWidget *main_layout = linphone_gtk_get_widget(mw, "main_layout");
- GtkWidget *login_frame;
-
- if (auto_login && !disable_auto_login){
- g_timeout_add(250,(GSourceFunc)do_login_noprompt,cfg);
- return;
- }
-
- login_frame = linphone_gtk_create_widget("login_frame");
- linphone_gtk_init_login_frame(login_frame, cfg);
- g_object_set_data_full(G_OBJECT(mw), "main_frame", g_object_ref(main_frame), g_object_unref);
- g_object_set_data(G_OBJECT(mw), "login_frame", login_frame);
- gtk_container_remove(GTK_CONTAINER(main_layout), main_frame);
- gtk_box_pack_start(GTK_BOX(main_layout), login_frame, TRUE, TRUE, 0);
- gtk_widget_show(login_frame);
-
- gtk_widget_hide(linphone_gtk_get_widget(mw,"disconnect_item"));
- gtk_widget_set_sensitive(linphone_gtk_get_widget(mw,"options_menu"),FALSE);
-}
-
-void linphone_gtk_exit_login_frame(void){
- GtkWidget *mw=linphone_gtk_get_main_window();
- GtkWidget *main_layout = linphone_gtk_get_widget(mw, "main_layout");
- GtkWidget *main_frame = GTK_WIDGET(g_object_get_data(G_OBJECT(mw), "main_frame"));
- GtkWidget *login_frame = GTK_WIDGET(g_object_get_data(G_OBJECT(mw), "login_frame"));
-
- gtk_container_remove(GTK_CONTAINER(main_layout), login_frame);
- gtk_box_pack_start(GTK_BOX(main_layout), main_frame, TRUE, TRUE, 0);
- g_object_set_data(G_OBJECT(mw), "login_frame", NULL);
- g_object_set_data(G_OBJECT(mw), "main_frame", NULL);
-
- gtk_widget_set_sensitive(linphone_gtk_get_widget(mw,"options_menu"),TRUE);
- gtk_widget_show(linphone_gtk_get_widget(mw,"disconnect_item"));
-}
-
-void linphone_gtk_logout_clicked(void){
- LinphoneCore *lc=linphone_gtk_get_core();
- LinphoneProxyConfig *cfg=NULL;
- cfg = linphone_core_get_default_proxy_config(lc);
- if (cfg){
- SipSetupContext *ss=linphone_proxy_config_get_sip_setup_context(cfg);
- if (ss){
- sip_setup_context_logout(ss);
- linphone_gtk_show_login_frame(cfg,TRUE);
- }
- }
-}
-
-
-
-void linphone_gtk_login_frame_connect_clicked(GtkWidget *button, GtkWidget *login_frame){
- const char *username;
- const char *password;
- const char *userid;
- char *identity;
- gboolean autologin;
- LinphoneProxyConfig *cfg=(LinphoneProxyConfig*)g_object_get_data(G_OBJECT(login_frame),"login_proxy_config");
- LinphoneAddress *from;
- SipSetupContext *ssctx=linphone_proxy_config_get_sip_setup_context(cfg);
-
- username=gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(login_frame,"login_username")));
- password=gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(login_frame,"login_password")));
- userid=gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(login_frame,"login_userid")));
-
- if (username==NULL || username[0]=='\0')
- return;
-
- autologin=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(login_frame,"automatic_login")));
- linphone_gtk_set_ui_config_int("automatic_login",autologin);
- linphone_gtk_set_ui_config("login_username",username);
-
- from=linphone_address_new(linphone_proxy_config_get_identity(cfg));
- linphone_address_set_username(from,username);
- identity=linphone_address_as_string(from);
- do_login(ssctx,identity,password,userid);
- /*we need to refresh the identities since the proxy config may have changed.*/
- linphone_gtk_load_identities();
-}
diff --git a/gtk/mac.m b/gtk/mac.m
deleted file mode 100644
index 7a45d0d48..000000000
--- a/gtk/mac.m
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
-linphone, gtk-glade interface.
-Copyright (C) 2008 Simon MORLAT (simon.morlat@linphone.org)
-
-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 2
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#ifdef __APPLE__
-
-#import
-#import "linphone.h"
-
-
-static int unread_messages_count() {
- LinphoneCore* lc = linphone_gtk_get_core();
- int count = 0;
- const MSList *rooms = linphone_core_get_chat_rooms(lc);
- const MSList *item = rooms;
- while (item) {
- LinphoneChatRoom *room = (LinphoneChatRoom *)item->data;
- if (room) {
- count += linphone_chat_room_get_unread_messages_count(room);
- }
- item = item->next;
- }
- return count;
-}
-
-void linphone_gtk_update_badge_count() {
- int count = unread_messages_count();
- NSString* badgeStr = (count > 0) ? [NSString stringWithFormat:@"%d", count] : @"";
- [[NSApp dockTile] setBadgeLabel:badgeStr];
-}
-
-#endif
diff --git a/gtk/main.c b/gtk/main.c
deleted file mode 100644
index 579fc8296..000000000
--- a/gtk/main.c
+++ /dev/null
@@ -1,2383 +0,0 @@
-/*
-linphone, gtk-glade interface.
-Copyright (C) 2008 Simon MORLAT (simon.morlat@linphone.org)
-
-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 2
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-
-#define VIDEOSELFVIEW_DEFAULT 0
-
-#include "linphone.h"
-#include "linphone/lpconfig.h"
-#include "liblinphone_gitversion.h"
-#include
-#include
-
-#include
-#include
-#ifndef _WIN32
-#include
-#endif
-
-#ifdef HAVE_GTK_OSX
-#include
-#endif
-
-#ifdef _WIN32
-#include "direct.h"
-#define chdir _chdir
-#ifndef F_OK
-#define F_OK 00 /*visual studio does not define F_OK*/
-#endif
-#endif
-
-#if defined(HAVE_NOTIFY1) || defined(HAVE_NOTIFY4)
-#define HAVE_NOTIFY
-#endif
-
-#ifdef HAVE_NOTIFY
-#include
-#endif
-
-#ifdef ENABLE_NLS
-#include
-#endif
-
-#include "status_icon.h"
-
-
-const char *this_program_ident_string="linphone_ident_string=" LINPHONE_VERSION;
-
-static LinphoneCore *the_core=NULL;
-static GtkWidget *the_ui=NULL;
-static LinphoneLDAPContactProvider* ldap_provider = NULL;
-
-static void linphone_gtk_global_state_changed(LinphoneCore *lc, LinphoneGlobalState state, const char*str);
-static void linphone_gtk_registration_state_changed(LinphoneCore *lc, LinphoneProxyConfig *cfg, LinphoneRegistrationState rs, const char *msg);
-static void linphone_gtk_notify_recv(LinphoneCore *lc, LinphoneFriend * fid);
-static void linphone_gtk_new_unknown_subscriber(LinphoneCore *lc, LinphoneFriend *lf, const char *url);
-static void linphone_gtk_auth_info_requested(LinphoneCore *lc, const char *realm, const char *username, const char *domain);
-static void linphone_gtk_configuring_status(LinphoneCore *lc, LinphoneConfiguringState status, const char *message);
-static void linphone_gtk_call_log_updated(LinphoneCore *lc, LinphoneCallLog *cl);
-static void linphone_gtk_call_state_changed(LinphoneCore *lc, LinphoneCall *call, LinphoneCallState cs, const char *msg);
-static void linphone_gtk_call_encryption_changed(LinphoneCore *lc, LinphoneCall *call, bool_t enabled, const char *token);
-static void linphone_gtk_transfer_state_changed(LinphoneCore *lc, LinphoneCall *call, LinphoneCallState cstate);
-static void linphone_gtk_dtmf_received(LinphoneCore *lc, LinphoneCall *call, int dtmf);
-void linphone_gtk_save_main_window_position(GtkWindow* mw, GdkEvent *event, gpointer data);
-static gboolean linphone_gtk_auto_answer(LinphoneCall *call);
-void linphone_gtk_status_icon_set_blinking(gboolean val);
-void _linphone_gtk_enable_video(gboolean val);
-void linphone_gtk_on_uribar_changed(GtkEditable *uribar, gpointer user_data);
-static void linphone_gtk_init_ui(void);
-static void linphone_gtk_quit(void);
-
-#ifndef HAVE_GTK_OSX
-static gint main_window_x=0;
-static gint main_window_y=0;
-#endif
-static gboolean verbose=0;
-static gboolean quit_done=FALSE;
-static gchar * addr_to_call = NULL;
-static int start_option = START_LINPHONE;
-static gboolean no_video=FALSE;
-static gboolean iconified=FALSE;
-static gboolean run_audio_assistant=FALSE;
-static gboolean version=FALSE;
-static gboolean selftest=FALSE;
-static gchar *workingdir=NULL;
-static char *progpath=NULL;
-gchar *linphone_logfile=NULL;
-static gboolean workaround_gtk_entry_chinese_bug=FALSE;
-static gchar *custom_config_file=NULL;
-static gboolean restart=FALSE;
-static GtkWidget *config_fetching_dialog=NULL;
-
-#if _MSC_VER
-
-#define LINPHONE_OPTION(optlname, optsname, optarg, optargdata, optdesc) \
-{ \
- optlname, \
- optsname, \
- 0, \
- optarg, \
- optargdata, \
- optdesc, \
- NULL \
-}
-
-#else
-
-#define LINPHONE_OPTION(optlname, optsname, optarg, optargdata, optdesc) \
-{ \
- .long_name = optlname, \
- .short_name = optsname, \
- .arg = optarg, \
- .arg_data = optargdata, \
- .description = optdesc, \
-}
-
-#endif
-
-static GOptionEntry linphone_options[]={
- LINPHONE_OPTION("verbose", '\0', G_OPTION_ARG_NONE, (gpointer)&verbose, N_("log to stdout some debug information while running.")),
- LINPHONE_OPTION("version", '\0', G_OPTION_ARG_NONE, (gpointer)&version, N_("display version and exit.")),
- LINPHONE_OPTION("logfile", 'l', G_OPTION_ARG_STRING, &linphone_logfile, N_("path to a file to write logs into.")),
- LINPHONE_OPTION("no-video", '\0', G_OPTION_ARG_NONE, (gpointer)&no_video, N_("Start linphone with video disabled.")),
- LINPHONE_OPTION("iconified", '\0', G_OPTION_ARG_NONE, (gpointer)&iconified, N_("Start only in the system tray, do not show the main interface.")),
- LINPHONE_OPTION("call", 'c', G_OPTION_ARG_STRING, &addr_to_call, N_("address to call right now")),
- LINPHONE_OPTION("workdir", '\0', G_OPTION_ARG_STRING, (gpointer) & workingdir, N_("Specifiy a working directory (should be the base of the installation, eg: c:\\Program Files\\Linphone)")),
- LINPHONE_OPTION("config", '\0', G_OPTION_ARG_FILENAME, (gpointer) &custom_config_file, N_("Configuration file")),
- LINPHONE_OPTION("run-audio-assistant", '\0', G_OPTION_ARG_NONE, (gpointer) &run_audio_assistant, N_("Run the audio assistant")),
- LINPHONE_OPTION("selftest", '\0', G_OPTION_ARG_NONE, (gpointer) &selftest, N_("Run self test and exit 0 if succeed")),
- {0}
-};
-
-#define RELATIVE_XML_DIR
-#define BUILD_TREE_XML_DIR "gtk"
-
-#ifndef _WIN32
-#define CONFIG_FILE ".linphonerc"
-#define SECRETS_FILE ".linphone-zidcache"
-#define CERTIFICATES_PATH ".linphone-usr-crt"
-#else
-#define CONFIG_FILE "linphonerc"
-#define SECRETS_FILE "linphone-zidcache"
-#define CERTIFICATES_PATH "linphone-usr-crt"
-#endif
-
-char *linphone_gtk_get_config_file(const char *filename){
- const int path_max=1024;
- char *config_file=g_malloc0(path_max);
- if (filename==NULL) filename=CONFIG_FILE;
- if (g_path_is_absolute(filename)) {
- snprintf(config_file,path_max,"%s",filename);
- } else{
-#ifdef _WIN32
- const char *appdata=getenv("APPDATA");
- if (appdata){
- snprintf(config_file,path_max,"%s\\%s",appdata,LINPHONE_CONFIG_DIR);
- CreateDirectory(config_file,NULL);
- snprintf(config_file,path_max,"%s\\%s\\%s",appdata,LINPHONE_CONFIG_DIR,filename);
- }
-#else
- const char *home=getenv("HOME");
- if (home==NULL) home=".";
- snprintf(config_file,path_max,"%s/%s",home,filename);
-#endif
- }
- return config_file;
-}
-
-#define FACTORY_CONFIG_FILE "linphonerc.factory"
-static char _factory_config_file[1024];
-static const char *linphone_gtk_get_factory_config_file(void){
- char* path = NULL;
- /*try accessing a local file first if exists*/
- if (bctbx_file_exist(FACTORY_CONFIG_FILE)==0){
- path = ms_strdup(FACTORY_CONFIG_FILE);
- } else {
- char *progdir;
-
- if (progpath != NULL) {
- char *basename;
- progdir = strdup(progpath);
-#ifdef _WIN32
- basename = strrchr(progdir, '\\');
- if (basename != NULL) {
- basename ++;
- *basename = '\0';
- path = ms_strdup_printf("%s\\..\\%s", progdir, FACTORY_CONFIG_FILE);
- } else if (workingdir!=NULL) {
- path = ms_strdup_printf("%s\\%s", workingdir, FACTORY_CONFIG_FILE);
- }
-#else
- basename = strrchr(progdir, '/');
- if (basename != NULL) {
- basename ++;
- *basename = '\0';
- path = ms_strdup_printf("%s/../share/linphone/%s", progdir, FACTORY_CONFIG_FILE);
- }
-#endif
- free(progdir);
- }
- }
- if (path) {
- ms_message("Factory config file expected at %s", path);
- //use factory file only if it exists
- if (bctbx_file_exist(path)==0){
- snprintf(_factory_config_file, sizeof(_factory_config_file), "%s", path);
- ms_free(path);
- return _factory_config_file;
- }
- ms_free(path);
- }
- return NULL;
-}
-
-LinphoneLDAPContactProvider* linphone_gtk_get_ldap(void){
- return ldap_provider;
-}
-
-int linphone_gtk_is_ldap_supported(void){
- return linphone_ldap_contact_provider_available();
-}
-
-void linphone_gtk_set_ldap(LinphoneLDAPContactProvider* ldap)
-{
- if( ldap_provider )
- linphone_contact_provider_unref(ldap_provider);
-
- ldap_provider = ldap ? linphone_ldap_contact_provider_ref( ldap )
- : NULL;
-}
-
-void linphone_gtk_schedule_restart(void){
- restart=TRUE;
-}
-
-gboolean linphone_gtk_get_audio_assistant_option(void){
- return run_audio_assistant;
-}
-
-static void linphone_gtk_init_liblinphone(const char *config_file,
- const char *factory_config_file, const char *chat_messages_db_file,
- const char *call_logs_db_file, const char *friends_db_file) {
- LinphoneCoreVTable vtable={0};
- gchar *secrets_file=linphone_gtk_get_config_file(SECRETS_FILE);
- gchar *user_certificates_dir=linphone_gtk_get_config_file(CERTIFICATES_PATH);
- MSFactory *msfactory = NULL;
- MSFilterDesc *ogl_filter_desc;
-
- vtable.global_state_changed=linphone_gtk_global_state_changed;
- vtable.call_state_changed=linphone_gtk_call_state_changed;
- vtable.registration_state_changed=linphone_gtk_registration_state_changed;
- vtable.notify_presence_received=linphone_gtk_notify_recv;
- vtable.new_subscription_requested=linphone_gtk_new_unknown_subscriber;
- vtable.auth_info_requested=linphone_gtk_auth_info_requested;
- vtable.call_log_updated=linphone_gtk_call_log_updated;
- vtable.message_received=linphone_gtk_text_received;
- vtable.is_composing_received=linphone_gtk_is_composing_received;
- vtable.refer_received=linphone_gtk_refer_received;
- vtable.buddy_info_updated=linphone_gtk_buddy_info_updated;
- vtable.call_encryption_changed=linphone_gtk_call_encryption_changed;
- vtable.transfer_state_changed=linphone_gtk_transfer_state_changed;
- vtable.dtmf_received=linphone_gtk_dtmf_received;
- vtable.configuring_status=linphone_gtk_configuring_status;
-
- the_core=linphone_core_new(&vtable,config_file,factory_config_file,NULL);
- linphone_core_migrate_to_multi_transport(the_core);
- //lp_config_set_int(linphone_core_get_config(the_core), "sip", "store_auth_info", 0);
-
-
- if( lp_config_has_section(linphone_core_get_config(the_core),"ldap") ){
- LpConfig* cfg = linphone_core_get_config(the_core);
- LinphoneDictionary* ldap_cfg = lp_config_section_to_dict(cfg, "ldap");
- linphone_gtk_set_ldap( linphone_ldap_contact_provider_create(the_core, ldap_cfg) );
- }
-
- linphone_core_set_user_agent(the_core,"Linphone", LINPHONE_VERSION);
- linphone_core_set_waiting_callback(the_core,linphone_gtk_wait,NULL);
- linphone_core_set_zrtp_secrets_file(the_core,secrets_file); /* XML cache is superseeded by the sqlite one, keep it for migration purpose but it shall be removed in future version */
- g_free(secrets_file);
- linphone_core_set_user_certificates_path(the_core,user_certificates_dir);
- g_free(user_certificates_dir);
- linphone_core_enable_video_capture(the_core, TRUE);
- linphone_core_enable_video_display(the_core, TRUE);
- linphone_core_set_native_video_window_id(the_core,LINPHONE_VIDEO_DISPLAY_NONE);/*don't create the window*/
- if (no_video) {
- _linphone_gtk_enable_video(FALSE);
- linphone_gtk_set_ui_config_int("videoselfview",0);
- }
- if (chat_messages_db_file) linphone_core_set_chat_database_path(the_core,chat_messages_db_file);
- if (call_logs_db_file) linphone_core_set_call_logs_database_path(the_core, call_logs_db_file);
- if (friends_db_file) linphone_core_set_friends_database_path(the_core, friends_db_file);
-
- // Disable the generic OpenGL displaying filter
- msfactory = linphone_core_get_ms_factory(the_core);
- ogl_filter_desc = ms_factory_lookup_filter_by_id(msfactory, MS_OGL_ID);
- if (ogl_filter_desc != NULL) ogl_filter_desc->flags &= ~MS_FILTER_IS_ENABLED;
-}
-
-LinphoneCore *linphone_gtk_get_core(void){
- return the_core;
-}
-
-GtkWidget *linphone_gtk_get_main_window(void){
- return the_ui;
-}
-
-void linphone_gtk_destroy_main_window(void) {
- linphone_gtk_destroy_window(the_ui);
- the_ui = NULL;
-}
-
-static void linphone_gtk_configure_window(GtkWidget *w, const char *window_name){
- static const char *hiddens=NULL;
- static const char *shown=NULL;
- static bool_t config_loaded=FALSE;
- if (linphone_gtk_get_core()==NULL) return;
- if (config_loaded==FALSE){
- hiddens=linphone_gtk_get_ui_config("hidden_widgets",NULL);
- shown=linphone_gtk_get_ui_config("shown_widgets",NULL);
- config_loaded=TRUE;
- }
- if (hiddens) linphone_gtk_visibility_set(hiddens,window_name,w,FALSE);
- if (shown) linphone_gtk_visibility_set(shown,window_name,w,TRUE);
-}
-
-static int get_ui_file(const char *name, char *path, int pathsize){
- snprintf(path,pathsize,"%s/%s.ui",BUILD_TREE_XML_DIR,name);
- if (bctbx_file_exist(path)!=0){
- LinphoneFactory *factory = linphone_factory_get();
- const char *data_dir = linphone_factory_get_data_resources_dir(factory);
- snprintf(path,pathsize,"%s/%s.ui",data_dir,name);
- if (bctbx_file_exist(path)!=0){
- g_error("Could not locate neither %s/%s.ui nor %s/%s.ui",BUILD_TREE_XML_DIR,name,data_dir,name);
- return -1;
- }
- }
- return 0;
-}
-
-void linphone_gtk_destroy_window(GtkWidget *widget) {
- GtkBuilder* builder = g_object_get_data(G_OBJECT(widget), "builder");
- gtk_widget_destroy(widget);
- g_object_unref (G_OBJECT (builder));
-}
-
-GtkWidget *linphone_gtk_create_widget(const char *widget_name) {
- char path[2048];
- GtkBuilder *builder = gtk_builder_new();
- GError *error = NULL;
- GObject *obj;
-
- if(get_ui_file(widget_name, path, sizeof(path)) == -1) goto fail;
-
- gtk_builder_set_translation_domain(builder, GETTEXT_PACKAGE);
-
- if(gtk_builder_add_from_file(builder, path, &error) == 0) {
- g_error("Couldn't load builder file: %s", error->message);
- g_error_free(error);
- goto fail;
- }
-
- obj = gtk_builder_get_object(builder, widget_name);
- if(obj == NULL) {
- g_error("'%s' widget not found", widget_name);
- goto fail;
- }
- g_object_set_data(G_OBJECT(obj), "builder", builder);
- g_signal_connect_data(G_OBJECT(obj),"destroy",(GCallback)g_object_unref,builder, NULL, G_CONNECT_AFTER|G_CONNECT_SWAPPED);
- gtk_builder_connect_signals(builder, obj);
-
- return GTK_WIDGET(obj);
-
-fail:
- g_object_unref(builder);
- return NULL;
-}
-
-GtkWidget *linphone_gtk_create_window(const char *window_name, GtkWidget *parent){
- GtkWidget *w = linphone_gtk_create_widget(window_name);
- if(w) {
- linphone_gtk_configure_window(w,window_name);
- if(parent) {
- gtk_window_set_transient_for(GTK_WINDOW(w), GTK_WINDOW(parent));
- gtk_window_set_position(GTK_WINDOW(w), GTK_WIN_POS_CENTER_ON_PARENT);
- }
- }
- return w;
-}
-
-static void entry_unmapped(GtkWidget *widget){
- ms_message("%s is unmapped, calling unrealize to workaround chinese bug.",G_OBJECT_TYPE_NAME(widget));
- gtk_widget_unrealize(widget);
-}
-
-GtkWidget *linphone_gtk_get_widget(GtkWidget *window, const char *name){
- GtkBuilder *builder;
- GObject *w;
- if (window==NULL) return NULL;
- builder=(GtkBuilder*)g_object_get_data(G_OBJECT(window),"builder");
- if (builder==NULL){
- g_error("Fail to retrieve builder from window !");
- return NULL;
- }
- w=gtk_builder_get_object(builder,name);
- if (w==NULL){
- g_error("No widget named %s found in xml interface.",name);
- }
- if (workaround_gtk_entry_chinese_bug){
- if (strcmp(G_OBJECT_TYPE_NAME(w),"GtkEntry")==0 || strcmp(G_OBJECT_TYPE_NAME(w),"GtkTextView")==0){
- if (g_object_get_data(G_OBJECT(w),"entry_bug_workaround")==NULL){
- g_object_set_data(G_OBJECT(w),"entry_bug_workaround",GINT_TO_POINTER(1));
- ms_message("%s is a %s",name,G_OBJECT_TYPE_NAME(w));
- g_signal_connect(G_OBJECT(w),"unmap",(GCallback)entry_unmapped,NULL);
- }
- }
- }
- return GTK_WIDGET(w);
-}
-
-
-void linphone_gtk_display_something(GtkMessageType type,const gchar *message){
- GtkWidget *dialog;
- GtkWidget *main_window=linphone_gtk_get_main_window();
-
- gtk_widget_show(main_window);
- if (type==GTK_MESSAGE_QUESTION)
- {
- /* draw a question box. link to dialog_click callback */
- dialog = gtk_message_dialog_new (
- GTK_WINDOW(main_window),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_QUESTION,
- GTK_BUTTONS_YES_NO,
- "%s",
- (const gchar*)message);
- /* connect to some callback : REVISIT */
- /*
- g_signal_connect_swapped (G_OBJECT (dialog), "response",
- G_CALLBACK (dialog_click),
- G_OBJECT (dialog));
- */
- /* actually show the box */
- gtk_widget_show(dialog);
- }
- else
- {
- dialog = gtk_message_dialog_new (GTK_WINDOW(main_window),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- type,
- GTK_BUTTONS_CLOSE,
- "%s",
- (const gchar*)message);
- /* Destroy the dialog when the user responds to it (e.g. clicks a button) */
- g_signal_connect_swapped (G_OBJECT (dialog), "response",
- G_CALLBACK (gtk_widget_destroy),
- G_OBJECT (dialog));
- gtk_widget_show(dialog);
- }
-}
-
-void linphone_gtk_about_response(GtkDialog *dialog, gint id){
- if (id==GTK_RESPONSE_CANCEL){
- gtk_widget_destroy(GTK_WIDGET(dialog));
- }
-}
-
-static void about_url_clicked(GtkAboutDialog *dialog, const char *url, gpointer data){
- g_message("About url clicked");
- linphone_gtk_open_browser(url);
-}
-
-void linphone_gtk_show_about(void){
- struct stat filestat;
- const char *data_dir;
- char *license_file;
- GtkWidget *about;
- const char *tmp;
- GdkPixbuf *logo=create_pixbuf(
- linphone_gtk_get_ui_config("logo","linphone-banner.png"));
- static const char *defcfg="defcfg";
- LinphoneFactory *factory = linphone_factory_get();
-
- about=linphone_gtk_create_window("about", the_ui);
-
- gtk_about_dialog_set_url_hook(about_url_clicked,NULL,NULL);
-
- data_dir = linphone_factory_get_data_resources_dir(factory);
- license_file = bctbx_strdup_printf("%s/COPYING", data_dir);
- memset(&filestat,0,sizeof(filestat));
- if (stat(license_file,&filestat)!=0){
- license_file="COPYING";
- stat(license_file,&filestat);
- }
- if (filestat.st_size>0){
- char *license=g_malloc(filestat.st_size+1);
- FILE *f=fopen(license_file,"r");
- if (f && fread(license,1,filestat.st_size,f)>0){
- license[filestat.st_size]='\0';
- gtk_about_dialog_set_license(GTK_ABOUT_DIALOG(about),license);
- }
- g_free(license);
- }
- bctbx_free(license_file);
- gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(about),linphone_core_get_version());
- gtk_about_dialog_set_program_name(GTK_ABOUT_DIALOG(about),linphone_gtk_get_ui_config("title","Linphone"));
- gtk_about_dialog_set_website(GTK_ABOUT_DIALOG(about),linphone_gtk_get_ui_config("home","http://www.linphone.org"));
- if (logo) {
- gtk_about_dialog_set_logo(GTK_ABOUT_DIALOG(about), logo);
- g_object_unref(logo);
- }
- tmp=linphone_gtk_get_ui_config("artists",defcfg);
- if (tmp!=defcfg){
- const char *tmp2[2];
- tmp2[0]=tmp;
- tmp2[1]=NULL;
- gtk_about_dialog_set_artists(GTK_ABOUT_DIALOG(about),tmp2);
- }
- tmp=linphone_gtk_get_ui_config("translators",defcfg);
- if (tmp!=defcfg)
- gtk_about_dialog_set_translator_credits (GTK_ABOUT_DIALOG(about),tmp);
- tmp=linphone_gtk_get_ui_config("comments",defcfg);
- if (tmp!=defcfg)
- gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(about),tmp);
- gtk_widget_show(about);
-}
-
-
-static gboolean linphone_gtk_iterate(LinphoneCore *lc){
- static gboolean first_time=TRUE;
- static gboolean in_iterate=FALSE;
-
- /*avoid reentrancy*/
- if (in_iterate) return TRUE;
- in_iterate=TRUE;
- linphone_core_iterate(lc);
- if (first_time){
- /*after the first call to iterate, SipSetupContexts should be ready, so take actions:*/
- linphone_gtk_show_directory_search();
- first_time=FALSE;
- }
-
- if (addr_to_call!=NULL){
- /*make sure we are not showing the login screen*/
- GtkWidget *mw=linphone_gtk_get_main_window();
- if (g_object_get_data(G_OBJECT(mw), "login_frame") == NULL){
- GtkWidget *uri_bar=linphone_gtk_get_widget(mw,"uribar");
- gtk_entry_set_text(GTK_ENTRY(uri_bar),addr_to_call);
- addr_to_call=NULL;
- linphone_gtk_start_call(uri_bar);
- }
- }
- in_iterate=FALSE;
- return TRUE;
-}
-
-static gboolean uribar_completion_matchfunc(GtkEntryCompletion *completion, const gchar *key, GtkTreeIter *iter, gpointer user_data){
- char* address = NULL;
- gboolean ret = FALSE;
- gtk_tree_model_get(gtk_entry_completion_get_model(completion),iter,0,&address,-1);
-
- if(address) {
- gchar *tmp = g_utf8_casefold(address,-1);
- if (strstr(tmp,key)) ret=TRUE;
- g_free(tmp);
- g_free(address);
- }
-
- return ret;
-}
-
-static void load_uri_history(void){
- GtkEntry *uribar=GTK_ENTRY(linphone_gtk_get_widget(linphone_gtk_get_main_window(),"uribar"));
- char key[20];
- int i;
- GtkEntryCompletion *gep=gtk_entry_completion_new();
- GtkListStore *model=gtk_list_store_new(2,G_TYPE_STRING,G_TYPE_INT);
- for (i=0;;i++){
- const char *uri;
- snprintf(key,sizeof(key),"uri%i",i);
- uri=linphone_gtk_get_ui_config(key,NULL);
- if (uri!=NULL) {
- GtkTreeIter iter;
- gtk_list_store_append(model,&iter);
- gtk_list_store_set(model,&iter,0,uri,1,COMPLETION_HISTORY,-1);
- if (i==0) gtk_entry_set_text(uribar,uri);
- }
- else break;
- }
- gtk_entry_completion_set_model(gep,GTK_TREE_MODEL(model));
- gtk_entry_completion_set_text_column(gep,0);
- gtk_entry_completion_set_popup_completion(gep, TRUE);
- gtk_entry_completion_set_match_func(gep,uribar_completion_matchfunc, NULL, NULL);
- gtk_entry_completion_set_minimum_key_length(gep,3);
- gtk_entry_set_completion(uribar,gep);
- g_signal_connect (G_OBJECT (uribar), "changed", G_CALLBACK(linphone_gtk_on_uribar_changed), NULL);
-}
-
-static void save_uri_history(void){
- LinphoneCore *lc=linphone_gtk_get_core();
- LpConfig *cfg=linphone_core_get_config(lc);
- GtkEntry *uribar=GTK_ENTRY(linphone_gtk_get_widget(linphone_gtk_get_main_window(),"uribar"));
- char key[20];
- int i=0;
- char *uri=NULL;
- GtkTreeIter iter;
- GtkTreeModel *model=gtk_entry_completion_get_model(gtk_entry_get_completion(uribar));
-
- if (!gtk_tree_model_get_iter_first(model,&iter)) return;
- do {
- gtk_tree_model_get(model,&iter,0,&uri,-1);
- if (uri) {
- snprintf(key,sizeof(key),"uri%i",i);
- lp_config_set_string(cfg,"GtkUi",key,uri);
- g_free(uri);
- }else break;
- i++;
- if (i>5) break;
- }while(gtk_tree_model_iter_next(model,&iter));
- lp_config_sync(cfg);
-}
-
-static void completion_add_text(GtkEntry *entry, const char *text){
- GtkTreeIter iter;
- GtkTreeModel *model=gtk_entry_completion_get_model(gtk_entry_get_completion(entry));
-
- if (gtk_tree_model_get_iter_first(model,&iter)){
- do {
- gchar *uri=NULL;
- gtk_tree_model_get(model,&iter,0,&uri,-1);
- if (uri!=NULL){
- if (strcmp(uri,text)==0) {
- /*remove text */
- gtk_list_store_remove(GTK_LIST_STORE(model),&iter);
- g_free(uri);
- break;
- }
- g_free(uri);
- }
- }while (gtk_tree_model_iter_next(model,&iter));
- }
- /* and prepend it on top of the list */
- gtk_list_store_prepend(GTK_LIST_STORE(model),&iter);
- gtk_list_store_set(GTK_LIST_STORE(model),&iter,0,text,1,COMPLETION_HISTORY,-1);
- save_uri_history();
-}
-
-void on_contact_provider_search_results( LinphoneContactSearch* req, bctbx_list_t* friends, void* data )
-{
- GtkTreeIter iter;
- GtkEntry* uribar = GTK_ENTRY(data);
- GtkEntryCompletion* compl = gtk_entry_get_completion(uribar);
- GtkTreeModel* model = gtk_entry_completion_get_model(compl);
- GtkListStore* list = GTK_LIST_STORE(model);
- LinphoneLDAPContactSearch* search = linphone_ldap_contact_search_cast(req);
- gboolean valid;
-
- // clear completion list from previous non-history entries
- valid = gtk_tree_model_get_iter_first(model,&iter);
- while(valid)
- {
- char* url;
- int type;
- gtk_tree_model_get(model,&iter, 0,&url, 1,&type, -1);
-
- if (type != COMPLETION_HISTORY) {
- valid = gtk_list_store_remove(list, &iter);
- } else {
- valid = gtk_tree_model_iter_next(model,&iter);
- }
-
- if( url ) g_free(url);
- if( !valid ) break;
- }
-
- // add new non-history related matches
- while( friends ){
- LinphoneFriend* lf = friends->data;
- if( lf ) {
- const LinphoneAddress* la = linphone_friend_get_address(lf);
- if( la ){
- char *addr = linphone_address_as_string(la);
-
- if( addr ){
- ms_message("[LDAP]Insert match: %s", addr);
- gtk_list_store_insert_with_values(list, &iter, -1,
- 0, addr,
- 1, COMPLETION_LDAP, -1);
- ms_free(addr);
- }
- }
- }
- friends = friends->next;
- }
- gtk_entry_completion_complete(compl);
- // save the number of LDAP results to better decide if new results should be fetched when search predicate gets bigger
- gtk_object_set_data(GTK_OBJECT(uribar), "ldap_res_cout",
- GINT_TO_POINTER(
- linphone_ldap_contact_search_result_count(search)
- )
- );
-
- // Gtk bug? we need to emit a "changed" signal so that the completion appears if
- // the list of results was previously empty
- g_signal_handlers_block_by_func(uribar, linphone_gtk_on_uribar_changed, NULL);
- g_signal_emit_by_name(uribar, "changed");
- g_signal_handlers_unblock_by_func(uribar, linphone_gtk_on_uribar_changed, NULL);
-}
-
-struct CompletionTimeout {
- guint timeout_id;
-};
-
-static gboolean launch_contact_provider_search(void *userdata)
-{
- LinphoneLDAPContactProvider* ldap = linphone_gtk_get_ldap();
- GtkWidget* uribar = GTK_WIDGET(userdata);
- const gchar* predicate = gtk_entry_get_text(GTK_ENTRY(uribar));
- gchar* previous_search = gtk_object_get_data(GTK_OBJECT(uribar), "previous_search");
- unsigned int prev_res_count = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(uribar), "ldap_res_cout"));
-
- if( ldap && strlen(predicate) >= 3 ){ // don't search too small predicates
- unsigned int max_res_count = linphone_ldap_contact_provider_get_max_result(ldap);
- LinphoneContactSearch* search;
- if( previous_search &&
- (strstr(predicate, previous_search) == predicate) && // last search contained results from this one
- (prev_res_count != max_res_count) ){ // and we didn't reach the max result limit
-
- ms_message("Don't launch search on already searched data (current: %s, old search: %s), (%d/%d results)",
- predicate, previous_search, prev_res_count, max_res_count);
- return FALSE;
- }
-
- // save current search
- if( previous_search ) ms_free(previous_search);
- gtk_object_set_data(GTK_OBJECT(uribar), "previous_search", ms_strdup(predicate));
-
- ms_message("launch_contact_provider_search");
- search =linphone_contact_provider_begin_search(
- linphone_contact_provider_cast(ldap_provider),
- predicate, on_contact_provider_search_results, uribar
- );
-
- if(search)
- linphone_contact_search_ref(search);
- }
- return FALSE;
-}
-
-void linphone_gtk_on_uribar_changed(GtkEditable *uribar, gpointer user_data)
-{
- if( linphone_gtk_get_ldap() ) {
- gchar* text = gtk_editable_get_chars(uribar, 0,-1);
- gint timeout = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(uribar), "complete_timeout"));
- if( text ) g_free(text);
-
- if( timeout != 0 ) {
- g_source_remove(timeout);
- }
-
- timeout = g_timeout_add_seconds(1,(GSourceFunc)launch_contact_provider_search, uribar);
-
- gtk_object_set_data(GTK_OBJECT(uribar),"complete_timeout", GINT_TO_POINTER(timeout) );
- }
-}
-
-bool_t linphone_gtk_video_enabled(void){
- const LinphoneVideoPolicy *vpol=linphone_core_get_video_policy(linphone_gtk_get_core());
- return vpol->automatically_accept && vpol->automatically_initiate;
-}
-
-void linphone_gtk_show_main_window(){
- GtkWidget *w=linphone_gtk_get_main_window();
-#ifdef HAVE_GTK_OSX
- GtkWidget *icon = linphone_gtk_get_widget(w, "history_tab_icon");
- GtkWidget *label = linphone_gtk_get_widget(w, "history_tab_label");
- gtk_misc_set_alignment(GTK_MISC(icon), 0.5f, 0.25f);
- gtk_misc_set_alignment(GTK_MISC(label), 0.5f, 0.f);
-#endif
- gtk_widget_show(w);
- gtk_window_present(GTK_WINDOW(w));
-}
-
-void linphone_gtk_call_terminated(LinphoneCall *call, const char *error){
- GtkWidget *mw=linphone_gtk_get_main_window();
- if (linphone_core_get_calls(linphone_gtk_get_core())==NULL){
- gtk_widget_set_sensitive(linphone_gtk_get_widget(mw,"start_call"),TRUE);
- }
- if (linphone_gtk_use_in_call_view() && call)
- linphone_gtk_in_call_view_terminate(call,error);
-}
-
-static void linphone_gtk_update_call_buttons(LinphoneCall *call){
- LinphoneCore *lc=linphone_gtk_get_core();
- GtkWidget *mw=linphone_gtk_get_main_window();
- const bctbx_list_t *calls=linphone_core_get_calls(lc);
- GtkWidget *button;
- bool_t add_call=(calls!=NULL);
- int call_list_size=bctbx_list_size(calls);
- GtkWidget *conf_frame;
-
- button=linphone_gtk_get_widget(mw,"start_call");
- gtk_widget_set_sensitive(button,TRUE);
- gtk_widget_set_visible(button,!add_call);
-
- button=linphone_gtk_get_widget(mw,"add_call");
-
- if (linphone_core_sound_resources_locked(lc) || (call && linphone_call_get_state(call)==LinphoneCallIncomingReceived)) {
- gtk_widget_set_sensitive(button,FALSE);
- } else {
- gtk_widget_set_sensitive(button,TRUE);
- }
- gtk_widget_set_visible(button,add_call);
-
- //gtk_widget_set_sensitive(linphone_gtk_get_widget(mw,"terminate_call"),stop_active);
- conf_frame=(GtkWidget *)g_object_get_data(G_OBJECT(mw),"conf_frame");
- if(conf_frame==NULL){
- linphone_gtk_enable_transfer_button(lc,call_list_size>1);
- } else {
- linphone_gtk_enable_transfer_button(lc,FALSE);
- }
- if (call) {
- bool_t enable_conference = call_list_size>1 && linphone_call_params_get_local_conference_mode(linphone_call_get_current_params(call)) == FALSE;
- linphone_gtk_enable_conference_button(lc,enable_conference);
- linphone_gtk_update_video_button(call);
- }
-}
-
-gchar *linphone_gtk_get_record_path(const LinphoneAddress *address, gboolean is_conference){
- const char *dir=g_get_user_special_dir(G_USER_DIRECTORY_MUSIC);
- const char *id="unknown";
- char filename[256]={0};
- char date[64]={0};
- time_t curtime=time(NULL);
- struct tm loctime;
- const char **fmts=linphone_core_get_supported_file_formats(linphone_gtk_get_core());
- int i;
- const char *ext="wav";
- char *record_path_utf8, *record_path;
-
-#ifdef _WIN32
- loctime=*localtime(&curtime);
-#else
- localtime_r(&curtime,&loctime);
-#endif
- snprintf(date,sizeof(date)-1,"%i%02i%02i-%02i%02i",loctime.tm_year+1900,loctime.tm_mon+1,loctime.tm_mday, loctime.tm_hour, loctime.tm_min);
-
- for (i=0;fmts[i]!=NULL;++i){
- if (strcmp(fmts[i],"mkv")==0){
- ext="mkv";
- break;
- }
- }
-
- if (address){
- id=linphone_address_get_username(address);
- if (id==NULL) id=linphone_address_get_domain(address);
- }
- if (is_conference){
- snprintf(filename,sizeof(filename)-1,"%s-conference-%s.%s",
- linphone_gtk_get_ui_config("title","Linphone"),
- date,ext);
- }else{
- snprintf(filename,sizeof(filename)-1,"%s-call-%s-%s.%s",
- linphone_gtk_get_ui_config("title","Linphone"),
- date,
- id,ext);
- }
- if (!dir) {
- ms_message ("No directory for music, using [%s] instead",dir=getenv("HOME"));
- }
- record_path_utf8 = g_build_filename(dir,filename,NULL);
- record_path = g_locale_from_utf8(record_path_utf8, -1, NULL, NULL, NULL);
- g_free(record_path_utf8);
- return record_path;
-}
-
-gchar *linphone_gtk_get_snapshot_path(void) {
- const char *dir=g_get_user_special_dir(G_USER_DIRECTORY_PICTURES);
- char filename[256]={0};
- char date[64]={0};
- time_t curtime=time(NULL);
- struct tm loctime;
- const char *ext="jpg";
- char *snapshot_path_utf8, *snapshot_path;
-
-#ifdef _WIN32
- loctime=*localtime(&curtime);
-#else
- localtime_r(&curtime,&loctime);
-#endif
- snprintf(date,sizeof(date)-1,"%i%02i%02i-%02i%02i%02i",loctime.tm_year+1900,loctime.tm_mon+1,loctime.tm_mday, loctime.tm_hour, loctime.tm_min, loctime.tm_sec);
- snprintf(filename,sizeof(filename)-1,"%s-snapshot-%s.%s",
- linphone_gtk_get_ui_config("title","Linphone"),
- date, ext);
- if (!dir) {
- ms_message ("No directory for pictures, using [%s] instead",dir=getenv("HOME"));
- }
- snapshot_path_utf8 = g_build_filename(dir,filename,NULL);
- snapshot_path = g_locale_from_utf8(snapshot_path_utf8, -1, NULL, NULL, NULL);
- g_free(snapshot_path_utf8);
- return snapshot_path;
-}
-
-static gboolean linphone_gtk_start_call_do(GtkWidget *uri_bar){
- const char *entered=gtk_entry_get_text(GTK_ENTRY(uri_bar));
- LinphoneCore *lc=linphone_gtk_get_core();
- LinphoneAddress *addr=linphone_core_interpret_url(lc,entered);
-
- if (addr!=NULL){
- LinphoneCallParams *params=linphone_core_create_call_params(lc, NULL);
- gchar *record_file=linphone_gtk_get_record_path(addr,FALSE);
- linphone_call_params_set_record_file(params,record_file);
- linphone_core_invite_address_with_params(lc,addr,params);
- completion_add_text(GTK_ENTRY(uri_bar),entered);
- linphone_address_unref(addr);
- linphone_call_params_unref(params);
- g_free(record_file);
- }else{
- linphone_gtk_call_terminated(NULL,NULL);
- }
- return FALSE;
-}
-
-static void accept_incoming_call(LinphoneCall *call){
- LinphoneCore *lc=linphone_gtk_get_core();
- LinphoneCallParams *params = linphone_core_create_call_params(lc, call);
- gchar *record_file=linphone_gtk_get_record_path(linphone_call_get_remote_address(call),FALSE);
- linphone_call_params_set_record_file(params,record_file);
- linphone_call_accept_with_params(call,params);
- linphone_call_params_unref(params);
-}
-
-static gboolean linphone_gtk_auto_answer(LinphoneCall *call){
- LinphoneCallState state=linphone_call_get_state(call);
- if (state==LinphoneCallIncomingReceived || state==LinphoneCallIncomingEarlyMedia){
- accept_incoming_call(call);
- }
- return FALSE;
-}
-
-void linphone_gtk_start_call(GtkWidget *w){
- LinphoneCall *call=linphone_gtk_get_currently_displayed_call(NULL);
- /*change into in-call mode, then do the work later as it might block a bit */
- GtkWidget *mw=gtk_widget_get_toplevel(w);
- GtkWidget *uri_bar=linphone_gtk_get_widget(mw,"uribar");
- LinphoneCallState state= call ? linphone_call_get_state(call) : LinphoneCallIdle;
-
- if (state == LinphoneCallIncomingReceived || state == LinphoneCallIncomingEarlyMedia){
- accept_incoming_call(call);
- }else{
- /*immediately disable the button and delay a bit the execution the linphone_core_invite()
- so that we don't freeze the button. linphone_core_invite() might block for some hundreds of milliseconds*/
- gtk_widget_set_sensitive(linphone_gtk_get_widget(mw,"start_call"),FALSE);
- g_timeout_add(100,(GSourceFunc)linphone_gtk_start_call_do,uri_bar);
- }
-
-}
-
-void linphone_gtk_start_chat(GtkWidget *w){
- GtkWidget *mw=gtk_widget_get_toplevel(w);
- GtkWidget *uri_bar=linphone_gtk_get_widget(mw,"uribar");
- const char *entered=gtk_entry_get_text(GTK_ENTRY(uri_bar));
- LinphoneCore *lc=linphone_gtk_get_core();
- LinphoneAddress *addr=linphone_core_interpret_url(lc,entered);
- if (addr) {
- linphone_gtk_friend_list_set_chat_conversation(addr);
- linphone_address_unref(addr);
- }
-}
-
-void linphone_gtk_uri_bar_activate(GtkWidget *w){
- linphone_gtk_start_call(w);
-}
-
-void linphone_gtk_terminate_call(GtkWidget *button){
- gboolean is_conf;
- LinphoneCall *call=linphone_gtk_get_currently_displayed_call(&is_conf);
- if (call){
- linphone_call_terminate(call);
- }else if (is_conf){
- linphone_core_terminate_conference(linphone_gtk_get_core());
- }
-}
-
-void linphone_gtk_decline_clicked(GtkWidget *button){
- LinphoneCall *call=linphone_gtk_get_currently_displayed_call(NULL);
- if (call)
- linphone_call_terminate(call);
-}
-
-void linphone_gtk_answer_clicked(GtkWidget *button){
- LinphoneCall *call=linphone_gtk_get_currently_displayed_call(NULL);
- if (call){
- accept_incoming_call(call);
- linphone_gtk_show_main_window(); /* useful when the button is clicked on a notification */
- }
-}
-
-void _linphone_gtk_enable_video(gboolean val){
- LinphoneVideoPolicy policy={0};
- policy.automatically_initiate=policy.automatically_accept=val;
- linphone_core_enable_video_capture(linphone_gtk_get_core(), TRUE);
- linphone_core_enable_video_display(linphone_gtk_get_core(), TRUE);
- linphone_core_set_video_policy(linphone_gtk_get_core(),&policy);
-}
-
-void linphone_gtk_enable_video(GtkWidget *w){
- gboolean val=gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(w));
- //GtkWidget *selfview_item=linphone_gtk_get_widget(linphone_gtk_get_main_window(),"selfview_item");
- _linphone_gtk_enable_video(val);
-}
-
-void linphone_gtk_enable_self_view(GtkWidget *w){
- gboolean val=gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(w));
- LinphoneCore *lc=linphone_gtk_get_core();
- linphone_core_enable_self_view(lc,val);
- linphone_gtk_set_ui_config_int("videoselfview",val);
-}
-
-void linphone_gtk_used_identity_changed(GtkWidget *w){
- int active=gtk_combo_box_get_active(GTK_COMBO_BOX(w));
- char *sel=gtk_combo_box_get_active_text(GTK_COMBO_BOX(w));
- if (sel && strlen(sel)>0){ //avoid a dummy "changed" at gui startup
- linphone_core_set_default_proxy_index(linphone_gtk_get_core(),(active==0) ? -1 : (active-1));
- linphone_gtk_show_directory_search();
- }
- if (sel) g_free(sel);
-}
-
-void on_proxy_refresh_button_clicked(GtkWidget *w){
- LinphoneCore *lc=linphone_gtk_get_core();
- linphone_core_refresh_registers(lc);
-}
-
-static gboolean grab_focus(GtkWidget *w){
- gtk_widget_grab_focus(w);
- return FALSE;
-}
-
-void linphone_gtk_viewswitch_changed(GtkNotebook *notebook, GtkWidget *page, gint page_num, gpointer user_data){
- GtkWidget *main_window = linphone_gtk_get_main_window();
- GtkWidget *friendlist = linphone_gtk_get_widget(main_window,"contact_list");
- GtkWidget *w = (GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview");
-
- if (page_num == gtk_notebook_page_num(GTK_NOTEBOOK(notebook),w)) {
- g_idle_add((GSourceFunc)grab_focus,linphone_gtk_get_widget(page,"text_entry"));
- }
-}
-
-static void linphone_gtk_notify_recv(LinphoneCore *lc, LinphoneFriend * fid){
- linphone_gtk_show_friends();
-}
-
-static void linphone_gtk_new_subscriber_response(GtkWidget *dialog, guint response_id, LinphoneFriend *lf){
- switch(response_id){
- case GTK_RESPONSE_YES:
- linphone_gtk_show_contact(lf, the_ui);
- break;
- default:
- linphone_core_reject_subscriber(linphone_gtk_get_core(),lf);
- }
- gtk_widget_destroy(dialog);
-}
-
-static void linphone_gtk_new_unknown_subscriber(LinphoneCore *lc, LinphoneFriend *lf, const char *url){
- GtkWidget *dialog;
- gchar *message;
-
- if (linphone_gtk_get_ui_config_int("subscribe_deny_all",0)){
- linphone_core_reject_subscriber(linphone_gtk_get_core(),lf);
- return;
- }
-
- message=g_strdup_printf(_("%s would like to add you to his/her contact list.\nWould you add him/her to your contact list and allow him/her to see your presence status?\nIf you answer no, this person will be temporarily blacklisted."),url);
- dialog = gtk_message_dialog_new (
- GTK_WINDOW(linphone_gtk_get_main_window()),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_QUESTION,
- GTK_BUTTONS_YES_NO,
- "%s",
- message);
- g_free(message);
- g_signal_connect(G_OBJECT (dialog), "response",
- G_CALLBACK (linphone_gtk_new_subscriber_response),lf);
- /* actually show the box */
- gtk_widget_show(dialog);
-}
-
-typedef struct _AuthTimeout{
- GtkWidget *w;
-} AuthTimeout;
-
-static void auth_timeout_clean(AuthTimeout *tout){
- tout->w=NULL;
-}
-
-static gboolean auth_timeout_destroy(AuthTimeout *tout){
- if (tout->w) {
- g_object_weak_unref(G_OBJECT(tout->w),(GWeakNotify)auth_timeout_clean,tout);
- gtk_widget_destroy(tout->w);
- }
- g_free(tout);
- return FALSE;
-}
-
-static AuthTimeout * auth_timeout_new(GtkWidget *w){
- AuthTimeout *tout=g_new(AuthTimeout,1);
- tout->w=w;
- /*so that the timeout no more references the widget when it is destroyed:*/
- g_object_weak_ref(G_OBJECT(w),(GWeakNotify)auth_timeout_clean,tout);
- /*so that the widget is automatically destroyed after some time */
- g_timeout_add(30000,(GtkFunction)auth_timeout_destroy,tout);
- return tout;
-}
-
-void linphone_gtk_password_cancel(GtkWidget *w){
- LinphoneAuthInfo *info;
- GtkWidget *window=gtk_widget_get_toplevel(w);
- info=(LinphoneAuthInfo*)g_object_get_data(G_OBJECT(window),"auth_info");
- linphone_core_abort_authentication(linphone_gtk_get_core(),info);
- gtk_widget_destroy(window);
-}
-
-void linphone_gtk_password_ok(GtkWidget *w){
- GtkWidget *entry;
- GtkWidget *window=gtk_widget_get_toplevel(w);
- LinphoneAuthInfo *info;
- info=(LinphoneAuthInfo*)g_object_get_data(G_OBJECT(window),"auth_info");
- g_object_weak_unref(G_OBJECT(window),(GWeakNotify)linphone_auth_info_destroy,info);
- entry=linphone_gtk_get_widget(window,"password_entry");
- linphone_auth_info_set_passwd(info,gtk_entry_get_text(GTK_ENTRY(entry)));
- linphone_auth_info_set_userid(info,
- gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(window,"userid_entry"))));
- linphone_core_add_auth_info(linphone_gtk_get_core(),info);
- gtk_widget_destroy(window);
-}
-
-static void linphone_gtk_auth_info_requested(LinphoneCore *lc, const char *realm, const char *username, const char *domain){
- GtkWidget *w=linphone_gtk_create_window("password", the_ui);
- GtkWidget *label=linphone_gtk_get_widget(w,"message");
- LinphoneAuthInfo *info;
- gchar *msg;
- GtkWidget *mw=linphone_gtk_get_main_window();
-
- if (mw && g_object_get_data(G_OBJECT(mw), "login_frame") != NULL){
- /*don't prompt for authentication when login frame is visible*/
- linphone_core_abort_authentication(lc,NULL);
- return;
- }
-
- msg=g_strdup_printf(_("Please enter your password for username %s\n at realm %s:"),
- username,realm);
- gtk_label_set_markup(GTK_LABEL(label),msg);
- g_free(msg);
- gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(w,"userid_entry")),username);
- info=linphone_auth_info_new(username, NULL, NULL, NULL,realm,domain);
- g_object_set_data(G_OBJECT(w),"auth_info",info);
- g_object_weak_ref(G_OBJECT(w),(GWeakNotify)linphone_auth_info_destroy,info);
- gtk_widget_show(w);
- auth_timeout_new(w);
-}
-
-static void linphone_gtk_dtmf_received(LinphoneCore *lc, LinphoneCall *call, int dtmf){
- ms_message("Dtmf %c received.",dtmf);
-}
-
-
-static void linphone_gtk_configuring_status(LinphoneCore *lc, LinphoneConfiguringState status, const char *message) {
- if (config_fetching_dialog) linphone_gtk_close_config_fetching(config_fetching_dialog, status);
- config_fetching_dialog=NULL;
-}
-
-static void linphone_gtk_call_log_updated(LinphoneCore *lc, LinphoneCallLog *cl){
- GtkWidget *w=(GtkWidget*)g_object_get_data(G_OBJECT(linphone_gtk_get_main_window()),"call_logs");
- if (w) linphone_gtk_call_log_update(w);
- linphone_gtk_call_log_update(linphone_gtk_get_main_window());
-}
-
-#ifdef HAVE_NOTIFY
-static bool_t notify_actions_supported(void) {
- bool_t accepts_actions = FALSE;
- GList *capabilities = notify_get_server_caps();
- GList *c;
- if(capabilities != NULL) {
- for(c = capabilities; c != NULL; c = c->next) {
- if(strcmp((char*)c->data, "actions") == 0 ) {
- accepts_actions = TRUE;
- break;
- }
- }
- g_list_foreach(capabilities, (GFunc)g_free, NULL);
- g_list_free(capabilities);
- }
- return accepts_actions;
-}
-
-static NotifyNotification* build_notification(const char *title, const char *body) {
- NotifyNotification *n = notify_notification_new(title, body, NULL
-#ifdef HAVE_NOTIFY1
- ,NULL
-#endif
- );
-#ifndef HAVE_NOTIFY1
- {
- GError *error = NULL;
- const char *icon_name = linphone_gtk_get_ui_config("icon_name", LINPHONE_ICON_NAME);
- GdkPixbuf *pbuf = gtk_icon_theme_load_icon(gtk_icon_theme_get_default(), icon_name, 48, 0, &error);
- if(error) {
- g_warning("Could not load '%s' icon: %s", icon_name, error->message);
- g_error_free(error);
- }
- notify_notification_set_image_from_pixbuf(n, pbuf);
- }
-#endif
- return n;
-}
-
-static void show_notification(NotifyNotification* n){
- if (n && !notify_notification_show(n,NULL))
- ms_error("Failed to send notification.");
-}
-
-static void make_notification(const char *title, const char *body){
- show_notification(build_notification(title,body));
-}
-
-#endif
-
-void linphone_gtk_notify(LinphoneCall *call, LinphoneChatMessage *chat_message, const char *msg){
-#ifdef HAVE_NOTIFY
- if (!notify_is_initted())
- if (!notify_init ("Linphone")) ms_error("Libnotify failed to init.");
-#endif
- if (!call) {
-#ifdef HAVE_NOTIFY
- if (chat_message) {
- const LinphoneAddress *address = linphone_chat_message_get_peer_address(chat_message);
- char *remote = linphone_address_as_string(address);
- make_notification(remote, linphone_chat_message_get_text(chat_message));
- } else {
- if (!notify_notification_show(notify_notification_new("Linphone",msg,NULL
-#ifdef HAVE_NOTIFY1
- ,NULL
-#endif
- ),NULL)) {
- ms_error("Failed to send notification.");
- }
- }
-#else
- linphone_gtk_show_main_window();
-#endif
- } else if (!gtk_window_is_active((GtkWindow*)linphone_gtk_get_main_window())) {
- gboolean show_main_window = FALSE;
-#ifdef HAVE_NOTIFY
- char *body=NULL;
- char *remote=call!=NULL ? linphone_call_get_remote_address_as_string(call) : NULL;
- NotifyNotification *n;
- switch(linphone_call_get_state(call)){
- case LinphoneCallError:
- make_notification(_("Call error"),body=g_markup_printf_escaped("%s\n%s",msg,remote));
- break;
- case LinphoneCallEnd:
- make_notification(_("Call ended"),body=g_markup_printf_escaped("%s",remote));
- break;
- case LinphoneCallIncomingReceived:
- n=build_notification(_("Incoming call"),body=g_markup_printf_escaped("%s",remote));
- if (n){
- if (notify_actions_supported()) {
- notify_notification_add_action (n,"answer", _("Answer"),
- NOTIFY_ACTION_CALLBACK(linphone_gtk_answer_clicked),NULL,NULL);
- notify_notification_add_action (n,"decline",_("Decline"),
- NOTIFY_ACTION_CALLBACK(linphone_gtk_decline_clicked),NULL,NULL);
- }
- show_notification(n);
- }else show_main_window = TRUE;
- break;
- case LinphoneCallPausedByRemote:
- make_notification(_("Call paused"),body=g_markup_printf_escaped(_("by %s"),remote));
- break;
- default:
- break;
- }
- if (body) g_free(body);
- if (remote) g_free(remote);
-#else
- if (linphone_call_get_state(call) == LinphoneCallIncomingReceived)
- show_main_window = TRUE;
-#endif
- if (show_main_window) linphone_gtk_show_main_window();
- }
-}
-
-static void linphone_gtk_global_state_changed(LinphoneCore *lc, LinphoneGlobalState state, const char*str){
- switch(state){
- case LinphoneGlobalStartup:
- the_core=lc;
- break;
- case LinphoneGlobalConfiguring:
- if (linphone_core_get_provisioning_uri(lc)){
- config_fetching_dialog=linphone_gtk_show_config_fetching();
- }
- break;
- case LinphoneGlobalOn:
- linphone_gtk_init_ui();
- if (selftest) {
- gtk_timeout_add(300,(GtkFunction)gtk_main_quit,NULL);
- }
- break;
- default:
- break;
- }
-}
-
-static void on_call_updated_response(GtkWidget *dialog, gint responseid, gpointer user_data){
- LinphoneCall *call = (LinphoneCall *)g_object_get_data(G_OBJECT(dialog), "call");
- if (linphone_call_get_state(call)==LinphoneCallUpdatedByRemote){
- LinphoneCore *lc=linphone_call_get_core(call);
- LinphoneCallParams *params = linphone_core_create_call_params(lc, call);
- linphone_call_params_enable_video(params,responseid==GTK_RESPONSE_YES);
- linphone_call_accept_update(call,params);
- linphone_call_params_unref(params);
- }
- g_source_remove_by_user_data(dialog);
- gtk_widget_destroy(dialog);
-}
-
-static void on_call_updated_timeout(GtkWidget *dialog){
- on_call_updated_response(dialog, GTK_RESPONSE_NO, NULL);
-}
-
-static void linphone_gtk_call_updated_by_remote(LinphoneCall *call){
- LinphoneCore *lc=linphone_call_get_core(call);
- const LinphoneVideoPolicy *pol=linphone_core_get_video_policy(lc);
- const LinphoneCallParams *rparams=linphone_call_get_remote_params(call);
- const LinphoneCallParams *current_params=linphone_call_get_current_params(call);
- gboolean video_requested=linphone_call_params_video_enabled(rparams);
- gboolean video_used=linphone_call_params_video_enabled(current_params);
- g_message("Video used=%i, video requested=%i, automatically_accept=%i",
- video_used,video_requested,pol->automatically_accept);
- if (!video_used && video_requested && !pol->automatically_accept){
- linphone_call_defer_update(call);
- {
- const LinphoneAddress *addr=linphone_call_get_remote_address(call);
- GtkWidget *dialog;
- const char *dname=linphone_address_get_display_name(addr);
- if (dname==NULL) dname=linphone_address_get_username(addr);
- if (dname==NULL) dname=linphone_address_get_domain(addr);
- dialog=gtk_message_dialog_new(GTK_WINDOW(linphone_gtk_get_main_window()),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_WARNING,
- GTK_BUTTONS_YES_NO,
- _("%s proposed to start video. Do you accept ?"),dname);
- g_object_set_data_full(G_OBJECT(dialog), "call", linphone_call_ref(call), (GDestroyNotify)linphone_call_unref);
- g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(on_call_updated_response), NULL);
- g_timeout_add(20000,(GSourceFunc)on_call_updated_timeout,dialog);
- gtk_widget_show(dialog);
- }
- }
-}
-
-static void linphone_gtk_call_state_changed(LinphoneCore *lc, LinphoneCall *call, LinphoneCallState cs, const char *msg){
- const LinphoneErrorInfo *ei;
-
- switch(cs){
- case LinphoneCallOutgoingInit:
- linphone_gtk_create_in_call_view (call);
- break;
- case LinphoneCallOutgoingProgress:
- linphone_gtk_in_call_view_set_calling (call);
- break;
- case LinphoneCallStreamsRunning:
- linphone_gtk_in_call_view_set_in_call(call);
- break;
- case LinphoneCallUpdatedByRemote:
- linphone_gtk_call_updated_by_remote(call);
- break;
- case LinphoneCallError:
- linphone_gtk_in_call_view_terminate (call,msg);
- break;
- case LinphoneCallEnd:
- ei = linphone_call_get_error_info(call);
- if (ei && linphone_error_info_get_reason(ei) != LinphoneReasonNone) {
- linphone_gtk_in_call_view_terminate(call, linphone_error_info_get_phrase(ei));
- } else {
- linphone_gtk_in_call_view_terminate(call, NULL);
- }
- linphone_gtk_status_icon_set_blinking(FALSE);
- break;
- case LinphoneCallIncomingReceived:
- linphone_gtk_create_in_call_view(call);
- linphone_gtk_in_call_view_set_incoming(call);
- linphone_gtk_status_icon_set_blinking(TRUE);
- if (linphone_gtk_auto_answer_enabled()) {
- int delay = linphone_gtk_get_ui_config_int("auto_answer_delay", 2000);
- linphone_call_ref(call);
- g_timeout_add(delay, (GSourceFunc)linphone_gtk_auto_answer, call);
- }
- break;
- case LinphoneCallResuming:
- linphone_gtk_enable_hold_button(call,TRUE,TRUE);
- linphone_gtk_in_call_view_set_in_call (call);
- break;
- case LinphoneCallPausing:
- linphone_gtk_enable_hold_button(call,TRUE,FALSE);
- linphone_gtk_call_update_tab_header(call,FALSE);
- BCTBX_NO_BREAK;
- case LinphoneCallPausedByRemote:
- linphone_gtk_in_call_view_set_paused(call);
- linphone_gtk_call_update_tab_header(call,TRUE);
- break;
- case LinphoneCallConnected:
- linphone_gtk_enable_hold_button (call,TRUE,TRUE);
- linphone_gtk_status_icon_set_blinking(FALSE);
- break;
- default:
- break;
- }
- linphone_gtk_notify(call, NULL, msg);
- linphone_gtk_update_call_buttons (call);
-}
-
-static void linphone_gtk_call_encryption_changed(LinphoneCore *lc, LinphoneCall *call, bool_t enabled, const char *token){
- linphone_gtk_in_call_view_show_encryption(call);
-}
-
-static void linphone_gtk_transfer_state_changed(LinphoneCore *lc, LinphoneCall *call, LinphoneCallState cstate){
- linphone_gtk_in_call_view_set_transfer_status(call,cstate);
-}
-
-static void update_registration_status(LinphoneProxyConfig *cfg, LinphoneRegistrationState rs){
- GtkComboBox *box=GTK_COMBO_BOX(linphone_gtk_get_widget(linphone_gtk_get_main_window(),"identities"));
- GtkTreeModel *model=gtk_combo_box_get_model(box);
- GtkTreeIter iter;
- gboolean found=FALSE;
- const char *icon_name=NULL;
-
- if (gtk_tree_model_get_iter_first(model,&iter)){
- gpointer p;
- do{
- gtk_tree_model_get(model,&iter,2,&p,-1);
- if (p==cfg) {
- found=TRUE;
- break;
- }
- }while(gtk_tree_model_iter_next(model,&iter));
- }
- if (!found) {
- /*ignored, this is a notification for a removed proxy config.*/
- return;
- }
- switch (rs){
- case LinphoneRegistrationOk:
- icon_name="linphone-ok";
- break;
- case LinphoneRegistrationProgress:
- icon_name="linphone-inprogress";
- break;
- case LinphoneRegistrationCleared:
- icon_name=NULL;
- break;
- case LinphoneRegistrationFailed:
- icon_name="linphone-failed";
- break;
- default:
- break;
- }
- gtk_list_store_set(GTK_LIST_STORE(model),&iter,1,icon_name,-1);
-}
-
-static void linphone_gtk_registration_state_changed(LinphoneCore *lc, LinphoneProxyConfig *cfg,
- LinphoneRegistrationState rs, const char *msg){
- switch (rs){
- case LinphoneRegistrationOk:
- if (cfg){
- SipSetup *ss=linphone_proxy_config_get_sip_setup(cfg);
- if (ss && (sip_setup_get_capabilities(ss) & SIP_SETUP_CAP_LOGIN)){
- linphone_gtk_exit_login_frame();
- }
- }
- break;
- default:
- break;
- }
- update_registration_status(cfg,rs);
-}
-
-void linphone_gtk_open_browser(const char *uri) {
-#ifdef __APPLE__
- GError *error = NULL;
- char cmd_line[256];
-
- g_snprintf(cmd_line, sizeof(cmd_line), "%s %s", "/usr/bin/open", uri);
- g_spawn_command_line_async(cmd_line, &error);
- if (error) {
- g_warning("Could not open %s: %s", uri, error->message);
- g_error_free(error);
- }
-#elif defined(_WIN32)
- HINSTANCE instance = ShellExecute(NULL, "open", uri, NULL, NULL, SW_SHOWNORMAL);
- if ((int)instance <= 32) {
- g_warning("Could not open %s (error #%i)", uri, (int)instance);
- }
-#else
- GError *error = NULL;
- gtk_show_uri(NULL, uri, GDK_CURRENT_TIME, &error);
- if (error) {
- g_warning("Could not open %s: %s", uri, error->message);
- g_error_free(error);
- }
-#endif
-}
-
-void linphone_gtk_link_to_website(GtkWidget *item){
- const gchar *home=(const gchar*)g_object_get_data(G_OBJECT(item),"home");
- linphone_gtk_open_browser(home);
-}
-
-static GtkWidget *create_icon_menu(void){
- GtkWidget *menu=gtk_menu_new();
- GtkWidget *menu_item;
- GtkWidget *image;
- gchar *tmp;
- const gchar *homesite;
-
- homesite=linphone_gtk_get_ui_config("home","http://www.linphone.org");
- menu_item=gtk_image_menu_item_new_with_label(_("Website link"));
- tmp=g_strdup(homesite);
- g_object_set_data(G_OBJECT(menu_item),"home",tmp);
- g_object_weak_ref(G_OBJECT(menu_item),(GWeakNotify)g_free,tmp);
-
- image=gtk_image_new_from_stock(GTK_STOCK_HELP,GTK_ICON_SIZE_MENU);
- gtk_widget_show(image);
- gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item),image);
- //g_object_unref(G_OBJECT(image));
- gtk_widget_show(menu_item);
- gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
- g_signal_connect(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_link_to_website,NULL);
-
- menu_item=gtk_image_menu_item_new_from_stock(GTK_STOCK_ABOUT,NULL);
- gtk_widget_show(menu_item);
- gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
- g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_show_about,NULL);
- menu_item=gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT,NULL);
- gtk_widget_show(menu_item);
- gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
- g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)gtk_main_quit,NULL);
- gtk_widget_show(menu);
- return menu;
-}
-
-#ifndef HAVE_GTK_OSX
-void linphone_gtk_save_main_window_position(GtkWindow* mw, GdkEvent *event, gpointer data){
- gtk_window_get_position(GTK_WINDOW(mw), &main_window_x, &main_window_y);
-}
-#endif
-
-static void handle_icon_click(LinphoneStatusIcon *si, void *user_data) {
-#ifndef HAVE_GTK_OSX
- GtkWidget *mw=linphone_gtk_get_main_window();
- if (!gtk_window_is_active((GtkWindow*)mw)) {
- if(!gtk_widget_is_drawable(mw)){
- //we only move if window was hidden. If it was simply behind the window stack, ie, drawable, we keep it as it was
- gtk_window_move (GTK_WINDOW(mw), main_window_x, main_window_y);
- }
- linphone_gtk_show_main_window();
- } else {
- linphone_gtk_save_main_window_position((GtkWindow*)mw, NULL, NULL);
- gtk_widget_hide(mw);
- }
-#endif
-}
-
-static void linphone_gtk_status_icon_initialised_cb(LinphoneStatusIconParams *params) {
- LinphoneStatusIcon *icon = linphone_status_icon_get();
- if(icon) {
- linphone_status_icon_start(icon, params);
- }
- linphone_status_icon_params_unref(params);
-}
-
-static void linphone_gtk_init_status_icon(void) {
- GtkWidget *menu = create_icon_menu();
- LinphoneStatusIconParams *params = linphone_status_icon_params_new();
- linphone_status_icon_params_set_menu(params, menu);
- linphone_status_icon_params_set_title(params, _("Linphone"));
- linphone_status_icon_params_set_description(params, _("A video internet phone"));
- linphone_status_icon_params_set_on_click_cb(params, handle_icon_click, NULL);
-
- if(linphone_status_icon_init(
- (LinphoneStatusIconReadyCb)linphone_gtk_status_icon_initialised_cb,
- params)) {
-
- LinphoneStatusIcon *icon = linphone_status_icon_get();
- if(icon) {
- linphone_status_icon_start(icon, params);
- }
- linphone_status_icon_params_unref(params);
- }
-}
-
-void linphone_gtk_status_icon_set_blinking(gboolean val) {
- LinphoneStatusIcon *icon = linphone_status_icon_get();
- if(icon) {
- linphone_status_icon_enable_blinking(icon, val);
- }
-#ifdef __APPLE__
- linphone_gtk_update_badge_count();
-#endif
-}
-
-void linphone_gtk_options_activate(GtkWidget *item){
-#ifndef HAVE_GTK_OSX
- gtk_widget_set_visible(linphone_gtk_get_widget(linphone_gtk_get_main_window(),"quit_item"),
- TRUE);
-#endif
-}
-
-static void init_identity_combo(GtkComboBox *box){
- GtkListStore *store;
- GtkCellRenderer *r1,*r2;
- store=gtk_list_store_new(3,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_POINTER);
- gtk_cell_layout_clear(GTK_CELL_LAYOUT(box));
- gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(box),(r1=gtk_cell_renderer_text_new()),TRUE);
- gtk_cell_layout_pack_end(GTK_CELL_LAYOUT(box),(r2=gtk_cell_renderer_pixbuf_new()),FALSE);
- gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(box),r1,"text",0);
- gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(box),r2,"icon-name",1);
- g_object_set(G_OBJECT(r1),"ellipsize",PANGO_ELLIPSIZE_END,NULL);
- gtk_combo_box_set_model(box,GTK_TREE_MODEL(store));
-}
-
-void linphone_gtk_load_identities(void){
- const bctbx_list_t *elem;
- GtkComboBox *box=GTK_COMBO_BOX(linphone_gtk_get_widget(linphone_gtk_get_main_window(),"identities"));
- char *def_identity;
- LinphoneProxyConfig *def=NULL;
- int def_index=0,i;
- GtkListStore *store;
- GtkTreeIter iter;
-
- store=GTK_LIST_STORE(gtk_combo_box_get_model(box));
- if (gtk_tree_model_get_n_columns(GTK_TREE_MODEL(store))==1){
- /* model is empty, this is the first time we go here */
- init_identity_combo(box);
- store=GTK_LIST_STORE(gtk_combo_box_get_model(box));
- }
- gtk_list_store_clear(store);
- def = linphone_core_get_default_proxy_config(linphone_gtk_get_core());
- def_identity=g_strdup_printf(_("%s (Default)"),linphone_core_get_primary_contact(linphone_gtk_get_core()));
- gtk_list_store_append(store,&iter);
- gtk_list_store_set(store,&iter,0,def_identity,1,NULL,2,NULL,-1);
- g_free(def_identity);
- for(i=1,elem=linphone_core_get_proxy_config_list(linphone_gtk_get_core());
- elem!=NULL;
- elem=bctbx_list_next(elem),i++){
- LinphoneProxyConfig *cfg=(LinphoneProxyConfig*)elem->data;
- gtk_list_store_append(store,&iter);
- gtk_list_store_set(store,&iter,0,linphone_proxy_config_get_identity(cfg),1,
- linphone_proxy_config_is_registered(cfg) ? "linphone-ok" : NULL,
- 2,cfg,-1);
- if (cfg==def) {
- def_index=i;
- }
- }
- gtk_combo_box_set_active(box,def_index);
-}
-
-static void linphone_gtk_dtmf_pressed(GtkButton *button){
- const char *label=(char *)g_object_get_data(G_OBJECT(button),"label");
- GtkWidget *uri_bar=linphone_gtk_get_widget(linphone_gtk_get_main_window(),"uribar");
- int pos=-1;
- gtk_editable_insert_text(GTK_EDITABLE(uri_bar),label,1,&pos);
- linphone_core_play_dtmf (linphone_gtk_get_core(),label[0],-1);
- if (linphone_core_in_call(linphone_gtk_get_core())){
- linphone_call_send_dtmf(linphone_core_get_current_call(linphone_gtk_get_core()),label[0]);
- }
-}
-
-static void linphone_gtk_dtmf_released(GtkButton *button){
- linphone_core_stop_dtmf (linphone_gtk_get_core());
-}
-
-
-static void linphone_gtk_connect_digits(GtkWidget *w){
- GtkContainer *cont=GTK_CONTAINER(linphone_gtk_get_widget(w,"dtmf_table"));
- GList *children=gtk_container_get_children(cont);
- GList *elem;
- for(elem=children;elem!=NULL;elem=elem->next){
- GtkButton *button=GTK_BUTTON(elem->data);
- g_signal_connect(G_OBJECT(button),"pressed",(GCallback)linphone_gtk_dtmf_pressed,NULL);
- g_signal_connect(G_OBJECT(button),"released",(GCallback)linphone_gtk_dtmf_released,NULL);
- }
-}
-
-static void linphone_gtk_check_menu_items(void){
- bool_t video_enabled=linphone_gtk_video_enabled();
- bool_t selfview=linphone_gtk_get_ui_config_int("videoselfview",VIDEOSELFVIEW_DEFAULT);
- GtkWidget *selfview_item=linphone_gtk_get_widget(
- linphone_gtk_get_main_window(),"selfview_item");
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(linphone_gtk_get_widget(
- linphone_gtk_get_main_window(),"enable_video_item")), video_enabled);
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(selfview_item),selfview);
-}
-
-static gboolean linphone_gtk_can_manage_accounts(void){
- LinphoneCore *lc=linphone_gtk_get_core();
- const bctbx_list_t *elem;
- for(elem=linphone_core_get_sip_setups(lc);elem!=NULL;elem=elem->next){
- SipSetup *ss=(SipSetup*)elem->data;
- if (sip_setup_get_capabilities(ss) & SIP_SETUP_CAP_ACCOUNT_MANAGER){
- return TRUE;
- }
- }
- return FALSE;
-}
-
-static void linphone_gtk_configure_main_window(void){
- static gboolean config_loaded=FALSE;
- static const char *title;
- static const char *home;
- static const char *search_icon;
- static gboolean update_check_menu;
- static gboolean show_abcd;
- GtkWidget *w=linphone_gtk_get_main_window();
-
- if (!config_loaded){
- title=linphone_gtk_get_ui_config("title","Linphone");
- home=linphone_gtk_get_ui_config("home","http://www.linphone.org");
- search_icon=linphone_gtk_get_ui_config("directory_search_icon",NULL);
- update_check_menu=linphone_gtk_get_ui_config_int("update_check_menu",0);
- show_abcd=linphone_gtk_get_ui_config_int("show_abcd",1);
- config_loaded=TRUE;
- }
- linphone_gtk_configure_window(w,"main_window");
- if (title) {
- gtk_window_set_title(GTK_WINDOW(w),title);
- }
- if (search_icon){
- GdkPixbuf *pbuf=create_pixbuf(search_icon);
- if(pbuf) {
- gtk_image_set_from_pixbuf(GTK_IMAGE(linphone_gtk_get_widget(w,"directory_search_button_icon")),pbuf);
- g_object_unref(G_OBJECT(pbuf));
- }
- }
- if (home){
- gchar *tmp;
- GtkWidget *menu_item=linphone_gtk_get_widget(w,"home_item");
- tmp=g_strdup(home);
- g_object_set_data_full(G_OBJECT(menu_item),"home",tmp, (GDestroyNotify)g_free);
- }
- if (linphone_gtk_can_manage_accounts()) {
- gtk_widget_show(linphone_gtk_get_widget(w,"assistant_item"));
- }
- if (update_check_menu){
- gtk_widget_show(linphone_gtk_get_widget(w,"versioncheck_item"));
- }
- g_object_set_data(G_OBJECT(w),"show_abcd",GINT_TO_POINTER(show_abcd));
-}
-
-void linphone_gtk_manage_login(void){
- LinphoneCore *lc=linphone_gtk_get_core();
- LinphoneProxyConfig *cfg=linphone_core_get_default_proxy_config(lc);
- if (cfg){
- SipSetup *ss=linphone_proxy_config_get_sip_setup(cfg);
- if (ss && (sip_setup_get_capabilities(ss) & SIP_SETUP_CAP_LOGIN)){
- linphone_gtk_show_login_frame(cfg,FALSE);
- }
- }
-}
-
-gboolean linphone_gtk_close(GtkWidget *mw){
- /*shutdown calls if any*/
- LinphoneCore *lc=linphone_gtk_get_core();
- GtkWidget *camera_preview=linphone_gtk_get_camera_preview_window();
- if (linphone_core_in_call(lc)){
- linphone_core_terminate_all_calls(lc);
- }
- if (camera_preview) gtk_widget_destroy(camera_preview);
-#ifdef __APPLE__ /*until with have a better option*/
- gtk_window_iconify(GTK_WINDOW(mw));
-#else
- gtk_widget_hide(mw);
-#endif
- return TRUE;
-}
-
-#ifdef HAVE_GTK_OSX
-static gboolean on_window_state_event(GtkWidget *w, GdkEventWindowState *event){
- return FALSE;
-}
-#endif
-
-void linphone_gtk_init_dtmf_table(GtkWidget *mw){
- GtkWidget *dtmf_table=linphone_gtk_get_widget(mw,"dtmf_table");
- gtk_widget_set_direction(dtmf_table, GTK_TEXT_DIR_LTR);
-
- g_object_set_data(G_OBJECT(linphone_gtk_get_widget(mw,"dtmf_A")),"label","A");
- g_object_set_data(G_OBJECT(linphone_gtk_get_widget(mw,"dtmf_B")),"label","B");
- g_object_set_data(G_OBJECT(linphone_gtk_get_widget(mw,"dtmf_C")),"label","C");
- g_object_set_data(G_OBJECT(linphone_gtk_get_widget(mw,"dtmf_D")),"label","D");
- g_object_set_data(G_OBJECT(linphone_gtk_get_widget(mw,"dtmf_1")),"label","1");
- g_object_set_data(G_OBJECT(linphone_gtk_get_widget(mw,"dtmf_2")),"label","2");
- g_object_set_data(G_OBJECT(linphone_gtk_get_widget(mw,"dtmf_3")),"label","3");
- g_object_set_data(G_OBJECT(linphone_gtk_get_widget(mw,"dtmf_4")),"label","4");
- g_object_set_data(G_OBJECT(linphone_gtk_get_widget(mw,"dtmf_5")),"label","5");
- g_object_set_data(G_OBJECT(linphone_gtk_get_widget(mw,"dtmf_6")),"label","6");
- g_object_set_data(G_OBJECT(linphone_gtk_get_widget(mw,"dtmf_7")),"label","7");
- g_object_set_data(G_OBJECT(linphone_gtk_get_widget(mw,"dtmf_8")),"label","8");
- g_object_set_data(G_OBJECT(linphone_gtk_get_widget(mw,"dtmf_9")),"label","9");
- g_object_set_data(G_OBJECT(linphone_gtk_get_widget(mw,"dtmf_0")),"label","0");
- g_object_set_data(G_OBJECT(linphone_gtk_get_widget(mw,"dtmf_#")),"label","#");
- g_object_set_data(G_OBJECT(linphone_gtk_get_widget(mw,"dtmf_*")),"label","*");
-}
-
-static gboolean key_allowed(guint32 code){
- static const char *allowed="1234567890#*ABCD";
- return code!=0 && strchr(allowed,(char)code)!=NULL;
-}
-
-static GtkButton *get_button_from_key(GtkWidget *w, GdkEvent *event){
- guint keyval=event->key.keyval;
- guint32 code=gdk_keyval_to_unicode(keyval);
- code=g_unichar_toupper(code);
- if (key_allowed(code)){
- char widgetname[16];
- w=gtk_widget_get_toplevel(w);
- snprintf(widgetname,sizeof(widgetname),"dtmf_%c",code);
- return GTK_BUTTON(linphone_gtk_get_widget(w,widgetname));
- }
- return NULL;
-}
-
-void linphone_gtk_keypad_key_pressed(GtkWidget *w, GdkEvent *event, gpointer userdata){
- GtkButton *button=get_button_from_key(w,event);
- if (button) {
- linphone_gtk_dtmf_pressed(button);
- /*g_signal_emit_by_name(button, "button-press-event");*/
- }
-}
-
-void linphone_gtk_keypad_key_released(GtkWidget *w, GdkEvent *event, gpointer userdata){
- GtkButton *button=get_button_from_key(w,event);
- if (button) {
- linphone_gtk_dtmf_released(button);
- /*g_signal_emit_by_name(button, "button-release-event");*/
- }
-}
-
-static void linphone_gtk_show_keypad(void){
- GtkWidget *mw=linphone_gtk_get_main_window();
- GtkWidget *k=(GtkWidget *)g_object_get_data(G_OBJECT(mw),"keypad");
- GtkWidget *keypad;
- if(k!=NULL){
- gtk_widget_destroy(k);
- }
- keypad=linphone_gtk_create_window("keypad", NULL);
- linphone_gtk_connect_digits(keypad);
- linphone_gtk_init_dtmf_table(keypad);
- g_object_set_data(G_OBJECT(mw),"keypad", keypad);
- if(!GPOINTER_TO_INT(g_object_get_data(G_OBJECT(mw),"show_abcd"))){
- gtk_widget_hide(linphone_gtk_get_widget(keypad,"dtmf_A"));
- gtk_widget_hide(linphone_gtk_get_widget(keypad,"dtmf_B"));
- gtk_widget_hide(linphone_gtk_get_widget(keypad,"dtmf_C"));
- gtk_widget_hide(linphone_gtk_get_widget(keypad,"dtmf_D"));
- gtk_table_resize(GTK_TABLE(linphone_gtk_get_widget(keypad,"dtmf_table")),4,3);
- }
- gtk_widget_show(keypad);
-}
-
-static void linphone_gtk_destroy_keypad(void) {
- GtkWidget *mw = linphone_gtk_get_main_window();
- GtkWidget *keypad = GTK_WIDGET(g_object_get_data(G_OBJECT(mw), "keypad"));
- if(keypad) {
- gtk_widget_destroy(keypad);
- g_object_set_data(G_OBJECT(mw), "keypad", NULL);
- }
-}
-
-void linphone_gtk_show_keypad_checked(GtkCheckMenuItem *check_menu_item) {
- if(gtk_check_menu_item_get_active(check_menu_item)) {
- linphone_gtk_show_keypad();
- } else {
- linphone_gtk_destroy_keypad();
- }
-}
-
-void linphone_gtk_import_contacts(void) {
- GtkWidget *mw = linphone_gtk_get_main_window();
- GtkWidget *dialog = gtk_file_chooser_dialog_new("Open vCard file", (GtkWindow *)mw, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL);
-
- if (gtk_dialog_run(GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) {
- LinphoneCore *lc = linphone_gtk_get_core();
- char *filename_utf8 = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
- char *filename = g_locale_from_utf8(filename_utf8, -1, NULL, NULL, NULL);
- LinphoneFriendList *list = linphone_core_get_default_friend_list(lc);
- linphone_friend_list_import_friends_from_vcard4_file(list, filename);
- linphone_gtk_show_friends();
- g_free(filename_utf8);
- g_free(filename);
- }
- gtk_widget_destroy(dialog);
-}
-
-void linphone_gtk_export_contacts(void) {
- GtkWidget *mw = linphone_gtk_get_main_window();
- GtkWidget *dialog = gtk_file_chooser_dialog_new("Save vCards as", (GtkWindow *)mw, GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL);
- gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(dialog), TRUE);
-
- if (gtk_dialog_run(GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) {
- LinphoneCore *lc = linphone_gtk_get_core();
- char *filename_utf8 = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
- char *filename = g_locale_from_utf8(filename_utf8, -1, NULL, NULL, NULL);
- LinphoneFriendList *list = linphone_core_get_default_friend_list(lc);
- linphone_friend_list_export_friends_as_vcard4_file(list, filename);
- g_free(filename_utf8);
- g_free(filename);
- }
- gtk_widget_destroy(dialog);
-}
-
-gboolean linphone_gtk_keypad_destroyed_handler(void) {
- GtkWidget *mw = linphone_gtk_get_main_window();
- GtkWidget *show_keypad_item = linphone_gtk_get_widget(mw, "show_keypad_menu_item");
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(show_keypad_item), FALSE);
- return FALSE;
-}
-
-void linphone_gtk_update_status_bar_icons(void) {
- GtkWidget *mw = linphone_gtk_get_main_window();
- GtkWidget *icon = linphone_gtk_get_widget(mw, "autoanswer_icon");
- gtk_widget_set_visible(icon, linphone_gtk_auto_answer_enabled());
-}
-
-static void linphone_gtk_init_main_window(void){
- GtkWidget *main_window;
- linphone_gtk_configure_main_window();
- linphone_gtk_manage_login();
- linphone_gtk_load_identities();
- linphone_gtk_set_my_presence(linphone_core_get_presence_info(linphone_gtk_get_core()));
- linphone_gtk_show_friends();
- linphone_gtk_update_status_bar_icons();
- load_uri_history();
- linphone_core_reset_missed_calls_count(linphone_gtk_get_core());
- main_window=linphone_gtk_get_main_window();
- linphone_gtk_call_log_update(main_window);
-
- linphone_gtk_update_call_buttons (NULL);
- g_object_set_data(G_OBJECT(main_window),"keypad",NULL);
- g_object_set_data(G_OBJECT(main_window),"is_conf",GINT_TO_POINTER(FALSE));
- /*prevent the main window from being destroyed by a user click on WM controls, instead we hide it*/
- g_signal_connect (G_OBJECT (main_window), "delete-event",
- G_CALLBACK (linphone_gtk_close), main_window);
-#ifdef HAVE_GTK_OSX
- {
- gtk_widget_show(main_window);
- GtkWidget *menubar=linphone_gtk_get_widget(main_window,"menubar1");
- GtkosxApplication *theMacApp = gtkosx_application_get();
- gtkosx_application_set_menu_bar(theMacApp,GTK_MENU_SHELL(menubar));
- gtk_widget_hide(menubar);
- gtkosx_application_ready(theMacApp);
- }
- g_signal_connect(G_OBJECT(main_window), "window-state-event",G_CALLBACK(on_window_state_event), NULL);
-#endif
- linphone_gtk_check_menu_items();
- linphone_core_enable_video_preview(linphone_gtk_get_core(),FALSE);
-#ifdef BUILD_WIZARD
- gtk_widget_set_visible(linphone_gtk_get_widget(main_window, "assistant_item"), TRUE);
-#else
- gtk_widget_set_visible(linphone_gtk_get_widget(main_window, "assistant_item"), FALSE);
-#endif
-}
-
-void linphone_gtk_log_handler(const char*domain, OrtpLogLevel lev, const char *fmt, va_list args){
- if (verbose){
- const char *lname="undef";
- char *msg;
-#if defined(__linux) || defined(__APPLE__)
- va_list cap;/*copy of our argument list: a va_list cannot be re-used (SIGSEGV on linux 64 bits)*/
-#endif
- switch(lev){
- case ORTP_DEBUG:
- lname="debug";
- break;
- case ORTP_MESSAGE:
- lname="message";
- break;
- case ORTP_WARNING:
- lname="warning";
- break;
- case ORTP_ERROR:
- lname="error";
- break;
- case ORTP_FATAL:
- lname="fatal";
- break;
- default:
- g_error("Bad level !");
- }
-#if defined(__linux) || defined(__APPLE__)
- va_copy(cap,args);
- msg=g_strdup_vprintf(fmt,cap);
- va_end(cap);
-#else
- msg=g_strdup_vprintf(fmt,args);
-#endif
- fprintf(stdout,"linphone-%s : %s\n",lname,msg);
- ortp_free(msg);
- }
- linphone_gtk_log_push(lev,fmt,args);
-}
-
-
-void linphone_gtk_refer_received(LinphoneCore *lc, const char *refer_to){
- char method[20] = "";
- LinphoneAddress *addr = linphone_address_new(refer_to);
- if(addr) {
- const char *tmp = linphone_address_get_method_param(addr);
- strncpy(method, tmp, sizeof(20));
- linphone_address_unref(addr);
- }
- if(strlen(method) == 0 || strcmp(method, "INVITE") == 0) {
- GtkEntry * uri_bar =GTK_ENTRY(linphone_gtk_get_widget(
- linphone_gtk_get_main_window(), "uribar"));
- char *text;
- linphone_gtk_notify(NULL,NULL,(text=ms_strdup_printf(_("We are transferred to %s"),refer_to)));
- g_free(text);
- gtk_entry_set_text(uri_bar, refer_to);
- linphone_gtk_start_call(linphone_gtk_get_main_window());
- }
-}
-
-static void linphone_gtk_check_soundcards(void){
- const char **devices=linphone_core_get_sound_devices(linphone_gtk_get_core());
- if (devices==NULL || devices[0]==NULL){
- linphone_gtk_display_something(GTK_MESSAGE_WARNING,
- _("No sound cards have been detected on this computer.\n"
- "You won't be able to send or receive audio calls."));
- }
-}
-
-static void linphone_gtk_quit_core(void){
-#ifdef HAVE_GTK_OSX
- {
- GtkosxApplication *theMacApp = gtkosx_application_get();
- gtkosx_application_set_menu_bar(theMacApp,NULL);
- }
-#endif
- linphone_gtk_unmonitor_usb();
- g_source_remove_by_user_data(linphone_gtk_get_core());
-#ifdef BUILD_WIZARD
- linphone_gtk_close_assistant();
-#endif
- linphone_gtk_set_ldap(NULL);
- linphone_gtk_destroy_log_window();
- linphone_core_destroy(the_core);
- linphone_gtk_log_uninit();
-}
-
-static void linphone_gtk_quit(void){
- if (!quit_done){
- quit_done=TRUE;
- linphone_gtk_quit_core();
- linphone_gtk_uninit_instance();
-#ifdef HAVE_NOTIFY
- notify_uninit();
-#endif
- linphone_status_icon_uninit();
- gtk_widget_destroy(the_ui);
- the_ui=NULL;
- gdk_threads_leave();
- }
-}
-
-#ifdef HAVE_GTK_OSX
-/*
-This is not the correct way to implement block termination.
-The good way would be to call gtk_main_quit(), and return TRUE.
-Unfortunately this does not work, because if we return TRUE the NSApplication sometimes calls the CFRunLoop recursively, which prevents gtk_main() to exit.
-As a result the program cannot exit at all.
-As a workaround we do all the cleanup (unregistration and config save) within the handler.
-*/
-static gboolean on_block_termination(void){
- gtk_main_quit();
- linphone_gtk_quit();
- return FALSE;
-}
-#endif
-
-static void linphone_gtk_init_ui(void){
- linphone_gtk_init_main_window();
-
-#ifdef BUILD_WIZARD
- // Veryfing if at least one sip account is configured. If not, show wizard
- if (linphone_core_get_proxy_config_list(linphone_gtk_get_core()) == NULL) {
- linphone_gtk_show_assistant();
- }
-#endif
-
- if(run_audio_assistant){
- linphone_gtk_show_audio_assistant();
- start_option=START_AUDIO_ASSISTANT;
- iconified = TRUE;
- }
-
- linphone_gtk_init_status_icon();
-
- if (!iconified){
- linphone_gtk_show_main_window();
- linphone_gtk_check_soundcards();
- }
- if (linphone_gtk_get_ui_config_int("update_check_menu",0)==0)
- linphone_gtk_check_for_new_version();
- linphone_gtk_monitor_usb();
-}
-
-static void sigint_handler(int signum){
- gtk_main_quit();
-}
-
-static void populate_xdg_data_dirs_envvar(void) {
-#ifndef _WIN32
- int i;
- gchar *value;
- gchar **paths;
- const char *data_dir;
- LinphoneFactory *factory = linphone_factory_get();
-
- if(g_getenv("XDG_DATA_DIRS") == NULL) {
- value = g_strdup("/usr/share:/usr/local/share:/opt/local/share");
- } else {
- value = g_strdup(g_getenv("XDG_DATA_DIRS"));
- }
- paths = g_strsplit(value, ":", -1);
- data_dir = linphone_factory_get_top_resources_dir(factory);
- for(i=0; paths[i] && strcmp(paths[i], data_dir) != 0; i++);
- if(paths[i] == NULL) {
- gchar *new_value = g_strdup_printf("%s:%s", data_dir, value);
- g_setenv("XDG_DATA_DIRS", new_value, TRUE);
- g_free(new_value);
- }
- g_strfreev(paths);
-#endif
-}
-#define ZRTP_CACHE_CONFIG_FILE ".linphone-zidcache.db"
-
-
-int main(int argc, char *argv[]){
- char *config_file;
- const char *factory_config_file;
- const char *lang;
- GtkSettings *settings;
- const char *icon_name=LINPHONE_ICON_NAME;
- const char *app_name="Linphone";
- LpConfig *factory_config;
- char *chat_messages_db_file, *call_logs_db_file, *friends_db_file;
- GError *error=NULL;
- const char *tmp;
- const char *resources_dir;
- char *pixmaps_dir;
- LinphoneFactory *factory;
-
-#if !GLIB_CHECK_VERSION(2, 31, 0)
- g_thread_init(NULL);
-#endif
- gdk_threads_init();
-
- progpath = strdup(argv[0]);
-
- config_file=linphone_gtk_get_config_file(NULL);
-
- workingdir= (tmp=g_getenv("LINPHONE_WORKDIR")) ? g_strdup(tmp) : NULL;
-
-#ifdef __linux
- /*for pulseaudio:*/
- g_setenv("PULSE_PROP_media.role", "phone", TRUE);
-#endif
-
- populate_xdg_data_dirs_envvar();
-
- lang=linphone_gtk_get_lang(config_file);
- if (lang == NULL || lang[0]=='\0'){
- lang = g_getenv("LANGUAGE");
- if (!lang) lang = g_getenv("LANG");
- }
- if (lang && lang[0]!='\0'){
-#ifdef _WIN32
- if (strncmp(lang,"zh",2)==0){
- workaround_gtk_entry_chinese_bug=TRUE;
- }
-#endif
- g_setenv("LANGUAGE",lang,1);
- }
-
-#ifdef ENABLE_NLS
- setlocale(LC_ALL, "");
- bindtextdomain(GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
- bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
-
- /*do not use textdomain(): this sets a global default domain. On Mac OS bundle, it breaks gtk translations (obscure bug somewhere)*/
- /*textdomain (GETTEXT_PACKAGE);*/
-#else
- g_message("NLS disabled.\n");
-#endif
-#ifdef _WIN32
- gtk_rc_add_default_file("./gtkrc");
-#endif
- gdk_threads_enter();
-
- if (!gtk_init_with_args(&argc,&argv,_("A free SIP video-phone"),
- linphone_options,NULL,&error)){
- gdk_threads_leave();
- g_critical("%s", error->message);
- return -1;
- }
- if(version) {
- g_message("Linphone version %s.", linphone_core_get_version());
- return 0;
- }
-
- if (config_file) g_free(config_file);
- if (custom_config_file && !g_path_is_absolute(custom_config_file)) {
- gchar *res = g_get_current_dir();
- res = g_strjoin(G_DIR_SEPARATOR_S, res, custom_config_file, NULL);
- free(custom_config_file);
- custom_config_file = res;
- }
- config_file=linphone_gtk_get_config_file(custom_config_file);
-
- if(run_audio_assistant) start_option=START_AUDIO_ASSISTANT;
- if(addr_to_call != NULL) start_option=START_LINPHONE_WITH_CALL;
-
- settings=gtk_settings_get_default();
- g_type_class_unref (g_type_class_ref (GTK_TYPE_IMAGE_MENU_ITEM));
- g_type_class_unref (g_type_class_ref (GTK_TYPE_BUTTON));
- g_object_set(settings, "gtk-menu-images", TRUE, NULL);
- g_object_set(settings, "gtk-button-images", TRUE, NULL);
-
- if (workingdir!=NULL){
- if (chdir(workingdir)==-1){
- g_error("Could not change directory to %s : %s",workingdir,strerror(errno));
- }
- }
-
-#if defined(__APPLE__) && defined(ENABLE_NLS)
- /*workaround for bundles. GTK is unable to find translations in the bundle (obscure bug again).
- So we help it:*/
- {
- if (g_file_test(PACKAGE_LOCALE_DIR, G_FILE_TEST_IS_DIR)){
- bindtextdomain("gtk20",PACKAGE_LOCALE_DIR);
- bindtextdomain("gdk-pixbuf",PACKAGE_LOCALE_DIR);
- bindtextdomain("glib20",PACKAGE_LOCALE_DIR);
- }
- }
-#endif
- add_pixmap_directory("pixmaps");
- factory = linphone_factory_get();
- resources_dir = linphone_factory_get_top_resources_dir(factory);
- pixmaps_dir = bctbx_strdup_printf("%s/pixmaps/linphone", resources_dir);
- add_pixmap_directory(pixmaps_dir);
- bctbx_free(pixmaps_dir);
-
- /* Now, look for the factory configuration file, we do it this late
- since we want to have had time to change directory and to parse
- the options, in case we needed to access the working directory */
- factory_config_file = linphone_gtk_get_factory_config_file();
- if (factory_config_file){
- factory_config=lp_config_new(NULL);
- lp_config_read_file(factory_config,factory_config_file);
- app_name=lp_config_get_string(factory_config,"GtkUi","title","Linphone");
- icon_name=lp_config_get_string(factory_config,"GtkUi","icon_name",LINPHONE_ICON_NAME);
- }
- g_set_application_name(app_name);
- gtk_window_set_default_icon_name(icon_name);
-
-#ifdef HAVE_GTK_OSX
- GtkosxApplication *theMacApp = gtkosx_application_get();
- g_signal_connect(G_OBJECT(theMacApp),"NSApplicationDidBecomeActive",(GCallback)linphone_gtk_show_main_window,NULL);
- g_signal_connect(G_OBJECT(theMacApp),"NSApplicationWillTerminate",(GCallback)gtk_main_quit,NULL);
- /*never block termination:*/
- g_signal_connect(G_OBJECT(theMacApp),"NSApplicationBlockTermination",(GCallback)on_block_termination,NULL);
-#endif
-
-core_start:
- if (linphone_gtk_init_instance(app_name, start_option, addr_to_call) == FALSE){
- g_warning("Another running instance of Linphone has been detected. It has been woken-up.");
- g_warning("This instance is going to exit now.");
- gdk_threads_leave();
- return 0;
- }
- the_ui=linphone_gtk_create_window("main", NULL);
-
- g_object_set_data(G_OBJECT(the_ui),"is_created",GINT_TO_POINTER(FALSE));
- g_signal_connect(G_OBJECT (the_ui), "key_press_event", G_CALLBACK (linphone_gtk_on_key_press), NULL);
-
- linphone_gtk_create_log_window();
- linphone_core_enable_logs_with_cb(linphone_gtk_log_handler);
- /*it is possible to filter in or out some logs by configuring per log domain:*/
- /*ortp_set_log_level_mask("belle-sip", ORTP_ERROR);*/
-
- chat_messages_db_file=linphone_gtk_message_storage_get_db_file(NULL);
- call_logs_db_file = linphone_gtk_call_logs_storage_get_db_file(NULL);
- friends_db_file = linphone_gtk_friends_storage_get_db_file(NULL);
- linphone_gtk_init_liblinphone(config_file, factory_config_file, chat_messages_db_file, call_logs_db_file, friends_db_file);
- g_free(chat_messages_db_file);
- g_free(call_logs_db_file);
- g_free(friends_db_file);
-
- linphone_gtk_call_log_update(the_ui);
- linphone_gtk_show_friends();
-
- /* do not lower timeouts under 30 ms because it exhibits a bug on gtk+/win32, with cpu running 20% all the time...*/
- gtk_timeout_add(30,(GtkFunction)linphone_gtk_iterate,(gpointer)linphone_gtk_get_core());
- gtk_timeout_add(30,(GtkFunction)linphone_gtk_check_logs,(gpointer)linphone_gtk_get_core());
-
- signal(SIGINT, sigint_handler);
-
- gtk_main();
- linphone_gtk_quit();
-
- if (restart){
- quit_done=FALSE;
- restart=FALSE;
- goto core_start;
- }
- if (config_file) g_free(config_file);
- free(progpath);
- /*output a translated "hello" string to the terminal, which allows the builder to check that translations are working.*/
- if (selftest){
- printf(_("Hello\n"));
- }
- return 0;
-}
-
-#ifdef _MSC_VER
-int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
- return main(__argc, __argv);
-}
-#endif
-
-GtkWidget *linphone_gtk_make_tab_header(const gchar *label, const gchar *icon_name, gboolean show_quit_button, GCallback cb, gpointer user_data) {
- GtkWidget *tab_header=gtk_hbox_new (FALSE,0);
- GtkWidget *label_widget = gtk_label_new (label);
-
- if(icon_name) {
- GtkWidget *icon=gtk_image_new_from_icon_name(icon_name, GTK_ICON_SIZE_MENU);
-#ifdef HAVE_GTK_OSX
- gtk_misc_set_alignment(GTK_MISC(icon), 0.5f, 0.25f);
-#endif
- gtk_box_pack_start (GTK_BOX(tab_header),icon,FALSE,FALSE,4);
- }
-#ifdef HAVE_GTK_OSX
- gtk_misc_set_alignment(GTK_MISC(label_widget), 0.5f, 0.f);
-#endif
- gtk_box_pack_start (GTK_BOX(tab_header),label_widget,FALSE,FALSE,0);
- if(show_quit_button) {
- GtkWidget *button = gtk_button_new();
- GtkWidget *button_image=gtk_image_new_from_stock(GTK_STOCK_CLOSE,GTK_ICON_SIZE_MENU);
- gtk_button_set_image(GTK_BUTTON(button),button_image);
- gtk_button_set_relief(GTK_BUTTON(button),GTK_RELIEF_NONE);
-#ifdef HAVE_GTK_OSX
- gtk_misc_set_alignment(GTK_MISC(button_image), 0.5f, 0.f);
-#endif
- g_signal_connect_swapped(G_OBJECT(button),"clicked",cb,user_data);
- gtk_box_pack_end(GTK_BOX(tab_header),button,FALSE,FALSE,4);
- g_object_set_data(G_OBJECT(tab_header), "button", button);
- }
- g_object_set_data(G_OBJECT(tab_header), "label", label_widget);
- return tab_header;
-}
diff --git a/gtk/main.ui b/gtk/main.ui
deleted file mode 100644
index e7360e215..000000000
--- a/gtk/main.ui
+++ /dev/null
@@ -1,1056 +0,0 @@
-
-
-
-
-
-
- True
- False
- 2
- 30
- linphone-add-call
-
-
- True
- False
- linphone-contact-add
-
-
- True
- False
- 4
- linphone-delete
-
-
- True
- False
- gtk-connect
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- linphone-status-online
- Toto
- toto@sip.linphone.org
- linphone-chat-nothing
- False
- False
-
-
- linphone-status-offline
- Toto2
- toto2@sip.linphone.org
- linphone-chat-nothing
- False
- False
-
-
- linphone-status-offline
- Toto3
- toto3@sip.linphone.org
- linphone-chat-nothing
- False
- False
-
-
-
-
- True
- False
- linphone-edit
-
-
- True
- False
- gtk-execute
- 1
-
-
- True
- False
- gtk-home
- 1
-
-
- True
- False
- gtk-info
- 1
-
-
-
-
-
-
-
-
- Default
-
-
-
-
- True
- False
- gtk-properties
- 1
-
-
- True
- False
- Delete
- linphone-delete
-
-
- True
- False
- 2
- 30
- linphone-start-call
-
-
- True
- False
- 2
- 30
- linphone-start-chat
-
-
- 640
- 480
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 660
- 450
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
-
- False
- True
- 0
-
-
-
-
- True
- False
- 8
-
-
- True
- False
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0
- none
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 5
- 5
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- True
- ●
- True
- linphone-contact-add
- False
- True
- True
- False
-
-
-
- True
- True
- 0
-
-
-
-
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- SIP address or phone number:
- True
-
-
-
-
- True
- True
- 2
- 0
-
-
-
-
- True
- True
- Initiate a new call
- add_call_image
-
-
-
- False
- False
- 1
-
-
-
-
- True
- True
- True
- start_call_image
-
-
-
- False
- True
- 2
-
-
-
-
- True
- True
- True
- start_chat_image
-
-
-
- False
- True
- end
- 3
-
-
-
-
- False
- True
- 8
- 0
-
-
-
-
- True
- True
- 200
- True
-
-
- True
- False
- 4
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_STRUCTURE_MASK
- 0
- Contacts
- True
-
-
- False
- False
- 3
- 0
-
-
-
-
- True
- True
- automatic
- automatic
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- contact_list_model
- False
- True
- 1
- 4
-
-
-
-
-
-
-
-
-
- 3
-
-
- 0
-
-
-
-
-
-
- 60
- True
-
-
-
- 1
-
-
-
-
-
-
-
-
- linphone-start-call2
- 3
-
-
- 6
-
-
-
-
-
-
-
-
- 3
-
-
- 7
- 5
-
-
-
-
-
-
-
-
- True
- True
- 1
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 2
-
-
- 32
- 32
- True
- True
- True
- immediate
- add_image1
-
-
-
- False
- False
- 0
-
-
-
-
- 32
- 32
- True
- False
- True
- True
- edit_image1
-
-
-
- False
- False
- 1
-
-
-
-
- 32
- 32
- True
- False
- True
- True
- remove_image1
-
-
-
- False
- False
- 2
-
-
-
-
- False
- False
- 4
- 2
-
-
-
-
- True
- True
-
-
-
-
- True
- True
-
-
-
-
-
-
-
-
-
- True
- False
-
-
- True
- False
- 2
-
-
- True
- True
- never
-
-
- 350
- True
- True
- False
- False
-
-
-
-
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- False
- 0
- none
-
-
- False
-
-
- True
- True
- ●
- True
- False
- False
- True
- True
-
-
- True
- True
- 0
-
-
-
-
- True
- True
- True
- none
-
-
-
- True
- False
-
-
- True
- False
- gtk-find
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- Search
-
-
- True
- True
- 1
-
-
-
-
-
-
- False
- True
- 1
-
-
-
-
-
-
- True
- False
- <b>Add contacts from directory</b>
- True
-
-
-
-
- False
- False
- 5
- 0
-
-
-
-
- True
- False
-
-
- Add contact
- True
- True
-
-
-
- False
- False
- 0
-
-
-
-
- False
- False
- 1
-
-
-
-
- False
- False
- 1
-
-
-
-
- True
- False
- end
-
-
- Clear call history
- True
- True
- True
- clear_call_history_image
-
-
-
- False
- False
- 0
-
-
-
-
- False
- True
- 2
-
-
-
-
- True
- True
- 0
-
-
-
-
- 1
-
-
-
-
- True
- False
- GDK_BUTTON_PRESS_MASK | GDK_STRUCTURE_MASK
- False
-
-
-
- True
- False
-
-
- True
- False
- linphone-history
- 1
-
-
- True
- True
- 4
- 0
-
-
-
-
- True
- False
- Recent calls
-
-
- True
- True
- 1
-
-
-
-
-
-
- 1
- False
-
-
-
-
-
-
-
-
-
-
- True
- True
-
-
-
-
- True
- True
- 1
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0
- none
-
-
- True
- False
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- model3
- 0
-
-
-
-
- 0
-
-
-
-
- True
- True
- 0
-
-
-
-
- True
- True
- True
- none
-
-
-
- False
- True
- 5
- 1
-
-
-
-
-
-
- True
- False
- 5
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- My current identity:
- True
-
-
- True
- True
- 0
-
-
-
-
- True
- True
- True
- none
-
-
-
- True
- True
- 1
-
-
-
-
-
-
- False
- False
- 2
-
-
-
-
- True
- True
- 1
-
-
-
-
- True
- False
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- False
-
-
- True
- True
- 0
-
-
-
-
- False
- Autoanswer is enabled
- 16
- linphone-warning
-
-
- False
- True
- 1
-
-
-
-
- False
- True
- 2
-
-
-
-
-
-
diff --git a/gtk/p2pwizard.ui b/gtk/p2pwizard.ui
deleted file mode 100644
index 111f46ff5..000000000
--- a/gtk/p2pwizard.ui
+++ /dev/null
@@ -1,129 +0,0 @@
-
-
-
-
- Creating a FONICS account
-
-
-
-
- True
- Welcome!
-This wizard will help you to setup a SIP account.
-
- True
- GTK_JUSTIFY_CENTER
- True
- True
-
-
- GTK_ASSISTANT_PAGE_INTRO
- Introduction
-
-
-
-
- True
-
-
- True
- Please choose a username:
-
-
-
-
- True
- 0
-
-
- True
- 12
-
-
- True
-
-
- True
-
-
- True
- True
-
-
-
-
- True
- True
- True
-
-
-
- True
-
-
- True
- gtk-apply
-
-
-
-
- True
- Check availability
-
-
- 1
-
-
-
-
-
-
- False
- 1
-
-
-
-
- False
-
-
-
-
- True
-
-
- 1
-
-
-
-
-
-
-
-
- True
- True
-
-
-
-
- 1
-
-
-
-
- Create your account !
-
-
-
-
- True
- Done ! Your account is now created and ready to use.
-
-
- GTK_ASSISTANT_PAGE_CONFIRM
- Finished !
-
-
-
-
diff --git a/gtk/parameters.ui b/gtk/parameters.ui
deleted file mode 100644
index ee93560bb..000000000
--- a/gtk/parameters.ui
+++ /dev/null
@@ -1,3183 +0,0 @@
-
-
-
-
-
- -1
- 100000
- 1
- 10
-
-
- 65535
- 2
- 10
-
-
- 65535
- 2
- 10
-
-
- 65535
- 2
- 10
-
-
- 65535
- 2
- 10
-
-
- 500
- 3001
- 500
- 1
- 10
-
-
- 65535
- 5060
- 1
- 10
-
-
- -1
- 100000
- 1
- 10
-
-
- 30
- 1
- 10
-
-
- 30000
- 2000
- 100
- 500
-
-
-
-
-
-
-
-
-
- anonymous
-
-
- GSSAPI
-
-
- SASL
-
-
-
-
-
-
-
-
-
-
- default soundcard
-
-
-
-
-
-
-
-
-
-
- default soundcard
-
-
-
-
-
-
-
-
-
-
- a sound card
-
-
-
-
-
-
-
-
-
-
- default camera
-
-
-
-
-
-
-
-
-
-
- CIF
-
-
-
-
-
-
-
-
-
-
- Audio codecs
-
-
- Video codecs
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
- SIP (UDP)
-
-
- SIP (TCP)
-
-
- SIP (TLS)
-
-
-
-
- 65535
- 5060
- 1
- 9.9999999995529656
-
-
-
-
-
-
-
-
- default
-
-
- high-fps
-
-
- custom
-
-
-
-
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Settings
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 10
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- This section defines your SIP address when not using a SIP account
- 0
- none
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 12
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 3
- 2
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Your display name (eg: John Doe):
-
-
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- False
- False
- True
- True
-
-
-
- 1
- 2
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Your username:
-
-
- 1
- 2
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Your resulting SIP address:
-
-
- 2
- 3
-
-
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- False
- False
- True
- True
-
-
-
- 1
- 2
- 1
- 2
-
-
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- False
- False
- False
- True
- True
-
-
- 1
- 2
- 2
- 3
-
-
-
-
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- <b>Default identity</b>
- True
-
-
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0
- none
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 12
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- True
- True
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- gtk-add
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Wizard
-
-
- True
- True
- 1
-
-
-
-
-
-
- False
- False
- 0
-
-
-
-
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- gtk-add
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Add
-
-
- True
- True
- 1
-
-
-
-
-
-
- False
- False
- 1
-
-
-
-
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- gtk-edit
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Edit
-
-
- True
- True
- 1
-
-
-
-
-
-
- False
- False
- 2
-
-
-
-
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- gtk-delete
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Remove
-
-
- True
- True
- 1
-
-
-
-
-
-
- False
- False
- 3
-
-
-
-
- False
- False
- 1
-
-
-
-
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- <b>Proxy accounts</b>
- True
-
-
-
-
- True
- True
- 1
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0
- none
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 12
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- gtk-delete
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Erase all passwords
-
-
- True
- True
- 1
-
-
-
-
-
-
- False
- False
- 0
-
-
-
-
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- <b>Privacy</b>
- True
-
-
-
-
- True
- True
- 2
-
-
-
-
- True
- False
- 0
- none
-
-
- True
- False
- 12
-
-
- True
- False
- 2
- 2
-
-
- Automatically answer when a call is received
- True
- True
- False
- True
-
-
-
- 2
-
-
-
-
- True
- False
- Delay before answering (ms)
-
-
- 1
- 2
-
-
-
-
- True
- True
- ●
- False
- False
- True
- True
- ajustment_auto_answer_delay
- True
-
-
-
- 1
- 2
- 1
- 2
-
-
-
-
-
-
-
-
- True
- False
- <b>Auto-answer</b>
- True
-
-
-
-
- True
- True
- 3
-
-
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- stock_people.png
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Manage SIP Accounts
-
-
- True
- True
- 1
-
-
-
-
- 2
- False
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 10
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0
- none
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 12
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 6
- 2
-
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
-
- True
- True
- 0
-
-
-
-
- gtk-media-play
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- True
-
-
-
- True
- True
- 1
-
-
-
-
- 1
- 2
- 4
- 5
- GTK_FILL
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Ring sound:
- right
-
-
- 4
- 5
- GTK_FILL
-
-
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- False
- False
- True
- True
-
-
-
- 1
- 2
- 3
- 4
- GTK_FILL
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- model1
-
-
-
- end
- 80
-
-
- 0
-
-
-
-
- 1
- 2
- 2
- 3
- GTK_FILL
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- model2
-
-
-
- end
- 80
-
-
- 0
-
-
-
-
- 1
- 2
- 1
- 2
- GTK_FILL
-
-
-
-
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- ALSA special device (optional):
- right
-
-
- 3
- 4
- GTK_FILL
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Capture device:
- right
-
-
- 2
- 3
- GTK_FILL
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Ring device:
- right
-
-
- 1
- 2
- GTK_FILL
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Playback device:
- right
-
-
- GTK_FILL
- GTK_FILL
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- model3
-
-
-
- end
- 80
-
-
- 0
-
-
-
-
- 1
- 2
- GTK_FILL
- GTK_FILL
-
-
-
-
- Enable echo cancellation
- True
- True
- False
- True
-
-
-
- 1
- 2
- 5
- 6
-
-
-
-
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- <b>Audio</b>
- True
-
-
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- 0
- none
-
-
- True
- False
- 12
-
-
- True
- False
- 5
- 3
-
-
- True
- False
- Video input device:
- right
-
-
- GTK_EXPAND
-
-
-
-
- True
- False
- model4
-
-
-
-
- 0
-
-
-
-
- 1
- 2
- GTK_EXPAND
-
-
-
-
- True
- False
- Preferred video resolution:
-
-
- 3
- 4
-
-
-
-
- True
- False
- model5
- 0
-
-
-
-
- 0
-
-
-
-
- 1
- 2
- 3
- 4
-
-
-
-
- True
- False
- Video output method:
- right
-
-
- 1
- 2
- GTK_EXPAND
-
-
-
-
- True
- False
-
-
-
-
- 0
-
-
-
-
- 1
- 2
- 1
- 2
- GTK_EXPAND
-
-
-
-
- Show camera preview
- True
- True
- True
-
-
-
- 2
- 3
- 5
-
- GTK_EXPAND
- 10
-
-
-
-
- True
- False
- Video preset:
-
-
- 2
- 3
-
-
-
-
- True
- False
- video_preset_model
- 0
-
-
-
-
- 0
-
-
-
-
- 1
- 2
- 2
- 3
-
-
-
-
- True
- False
- Preferred video framerate:
-
-
- 4
- 5
-
-
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0 stands for "unlimited"
- •
- False
- False
- True
- True
- adjustment_video_framerate
-
-
-
- 1
- 2
- 4
- 5
- GTK_FILL
- GTK_EXPAND
-
-
-
-
-
-
-
-
- True
- False
- <b>Video</b>
- True
-
-
-
-
- True
- False
- 1
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0
- none
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 12
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 3
- 2
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0 stands for "unlimited"
- •
- False
- False
- True
- True
- adjustment_upload_bw
-
-
-
- 1
- 2
- 1
- 2
- GTK_FILL
-
-
-
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0 stands for "unlimited"
- •
- False
- False
- True
- True
- adjustment_download_bw
-
-
-
- 1
- 2
- GTK_FILL
- GTK_EXPAND
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Upload speed limit in Kbit/sec:
- right
-
-
- 1
- 2
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Download speed limit in Kbit/sec:
- right
-
-
-
-
- Enable adaptive rate control
- True
- True
- False
- 0
- True
-
-
-
- 1
- 2
- 2
- 3
- GTK_FILL
-
-
-
-
-
- True
- False
- <i>Adaptive rate control is a technique to dynamically guess the available bandwidth during a call.</i>
- True
- True
-
-
- 2
- 3
- GTK_FILL
-
-
-
-
-
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- <b>Bandwidth control</b>
- True
-
-
-
-
- True
- True
- 2
-
-
-
-
- 1
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- gtk-media-play
- 1
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Multimedia settings
-
-
- True
- True
- 1
-
-
-
-
- 1
- False
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 10
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0
- none
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 12
-
-
- True
- False
-
-
- True
- False
-
-
- Set Maximum Transmission Unit:
- True
- True
- False
- True
-
-
-
- True
- True
- 0
-
-
-
-
- True
- True
- False
- False
- True
- True
- adjustment_mtu
-
-
-
- True
- True
- 1
-
-
-
-
- True
- True
- 0
-
-
-
-
- Send DTMFs as SIP info
- True
- True
- False
- True
-
-
-
- True
- True
- 1
-
-
-
-
- Allow IPv6
- True
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- True
-
-
-
- True
- True
- 2
-
-
-
-
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- <b>Transport</b>
- True
-
-
-
-
- False
- True
- 0
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0
- none
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 12
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 6
- 2
-
-
- True
- False
- SIP/UDP port
-
-
-
-
- True
- False
-
-
- Disabled
- True
- True
- False
- True
-
-
-
- True
- True
- 0
-
-
-
-
- Random
- True
- True
- False
- True
-
-
-
- True
- True
- 1
-
-
-
-
- True
- True
- •
- True
- False
- False
- True
- True
- udp_port_adjustment
-
-
-
- True
- True
- 2
-
-
-
-
- 1
- 2
-
-
-
-
- True
- False
- SIP/TCP port
-
-
- 1
- 2
-
-
-
-
- True
- False
-
-
- Disabled
- True
- True
- False
- True
-
-
-
- True
- True
- 0
-
-
-
-
- Random
- True
- True
- False
- True
-
-
-
- True
- True
- 1
-
-
-
-
- True
- True
- •
- True
- False
- False
- True
- True
- adjustment_tcp_port
-
-
-
- True
- True
- 2
-
-
-
-
- 1
- 2
- 1
- 2
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Audio RTP/UDP:
- right
-
-
- 2
- 3
-
-
-
-
- True
- False
-
-
- True
- True
- •
- False
- False
- True
- True
- adjustment_min_audio_port
- True
-
-
-
- True
- True
- 0
-
-
-
-
- True
- True
- •
- True
- False
- False
- True
- True
- adjustment_max_audio_port
- True
-
-
-
- True
- True
- 1
-
-
-
-
- Fixed
- True
- True
- False
- True
-
-
-
- True
- True
- 2
-
-
-
-
- 1
- 2
- 2
- 3
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Video RTP/UDP:
- right
-
-
- 3
- 4
-
-
-
-
- True
- False
-
-
- True
- True
- •
- False
- False
- True
- True
- adjustment_min_video_port
- True
-
-
-
- True
- True
- 0
-
-
-
-
- True
- True
- •
- True
- False
- False
- True
- True
- adjustment_max_video_port
- True
-
-
-
- True
- True
- 1
-
-
-
-
- Fixed
- True
- True
- False
- True
-
-
-
- True
- True
- 2
-
-
-
-
- 1
- 2
- 3
- 4
-
-
-
-
- False
- Tunnel
-
-
- 5
- 6
-
-
-
-
- gtk-edit
- True
- True
- True
-
-
-
- 1
- 2
- 5
- 6
-
-
-
-
- True
- False
- DSCP fields
-
-
- 4
- 5
-
-
-
-
- gtk-edit
- True
- True
- True
- True
-
-
-
- 1
- 2
- 4
- 5
-
-
-
-
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- <b>Network protocol and ports</b>
- True
-
-
-
-
- False
- True
- 1
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0
- none
-
-
- True
- False
-
-
- True
- False
-
-
- Direct connection to the Internet
- True
- True
- False
- True
- True
-
-
-
- False
- False
- 0
-
-
-
-
- Behind NAT / Firewall (specify gateway IP )
- True
- True
- False
- True
- no_nat
-
-
-
- True
- True
- 1
-
-
-
-
- Behind NAT / Firewall (use STUN to resolve)
- True
- True
- False
- True
- no_nat
-
-
-
- True
- True
- 2
-
-
-
-
- Behind NAT / Firewall (use ICE)
- True
- True
- False
- True
- no_nat
-
-
-
- True
- True
- 3
-
-
-
-
- Behind NAT / Firewall (use uPnP)
- True
- True
- False
- True
- no_nat
-
-
-
- True
- True
- 4
-
-
-
-
- True
- True
- 0
-
-
-
-
- True
- False
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- True
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Public IP address:
- right
-
-
- True
- True
- 0
-
-
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- •
- True
- False
- False
- True
- True
-
-
-
- True
- True
- 1
-
-
-
-
- True
- False
- 0
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- True
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Stun server:
- right
-
-
- True
- True
- 0
-
-
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- ●
- True
- False
- False
- True
- True
-
-
-
- True
- True
- 1
-
-
-
-
- True
- False
- 1
-
-
-
-
- False
- False
- 1
-
-
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- <b>NAT and Firewall</b>
- True
-
-
-
-
- False
- True
- 2
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0
- none
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 12
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 3
- 2
-
-
- True
- False
- Media encryption type
-
-
- 1
- 2
-
-
-
-
- True
- False
- 0
-
-
- 1
- 2
- 1
- 2
-
-
-
-
- True
- False
- 0.51999998092651367
- Use Lime for outgoing chat messages
-
-
-
-
- True
- False
- Media encryption is mandatory
-
-
- 2
- 3
-
-
-
-
- True
- True
- False
- 0.40000000596046448
- True
-
-
-
- 1
- 2
- 2
- 3
-
-
-
-
- True
- False
-
- - Disabled
- - Mandatory
- - Preferred
-
-
-
-
- 1
- 2
-
-
-
-
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- <b>Encryption</b>
- True
-
-
-
-
- False
- True
- 3
-
-
-
-
- 2
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- gtk-network
- 1
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Network settings
-
-
- True
- True
- 1
-
-
-
-
- 2
- False
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 10
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0
- none
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 12
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- out
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- True
-
-
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 10
- center
-
-
- gtk-go-up
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- True
-
-
-
- False
- False
- 0
-
-
-
-
- gtk-go-down
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- True
-
-
-
- False
- False
- 1
-
-
-
-
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- gtk-yes
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Enable
-
-
- True
- True
- 1
-
-
-
-
-
-
- False
- False
- 2
-
-
-
-
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- gtk-no
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Disable
-
-
- True
- True
- 1
-
-
-
-
-
-
- False
- False
- 3
-
-
-
-
- False
- True
- 1
-
-
-
-
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- <b>Audio codecs</b>
- True
-
-
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0
- none
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 12
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- out
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- True
-
-
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 10
- center
-
-
- gtk-go-up
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- True
-
-
-
- False
- False
- 0
-
-
-
-
- gtk-go-down
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- True
-
-
-
- False
- False
- 1
-
-
-
-
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- gtk-yes
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Enable
-
-
- True
- True
- 1
-
-
-
-
-
-
- False
- False
- 2
-
-
-
-
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- gtk-no
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Disable
-
-
- True
- True
- 1
-
-
-
-
-
-
- False
- False
- 3
-
-
-
-
- False
- True
- 1
-
-
-
-
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- <b>Video codecs</b>
- True
-
-
-
-
- False
- True
- 1
-
-
-
-
- 3
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- gtk-execute
- 1
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Codecs
-
-
- True
- True
- 1
-
-
-
-
- 3
- False
-
-
-
-
- True
- False
- 10
-
-
- True
- False
- 0
- none
-
-
- True
- False
- 12
-
-
- True
- False
- model7
-
-
-
-
- 0
-
-
-
-
-
-
-
-
- True
- False
- <b>Language</b>
- True
-
-
-
-
- False
- True
- 0
-
-
-
-
- True
- False
- 0
- none
-
-
- True
- False
- 12
-
-
- Show advanced settings
- True
- True
- False
- True
-
-
-
-
-
-
-
- True
- False
- <b>Level</b>
- True
-
-
-
-
- False
- True
- 1
-
-
-
-
- 4
-
-
-
-
- True
- False
-
-
- True
- False
- gtk-properties
- 1
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- User interface
-
-
- True
- True
- 1
-
-
-
-
- 4
- False
-
-
-
-
- True
- False
- 10
-
-
- True
- False
- 0
- none
-
-
- True
- False
- 0
- 0
-
-
- True
- False
- 4
- 2
- True
-
-
-
-
-
- True
- False
- 1
- Server address:
-
-
- GTK_SHRINK
- GTK_SHRINK
-
-
-
-
- True
- False
- Authentication method:
-
-
- 1
- 2
- GTK_EXPAND | GTK_SHRINK
-
-
-
-
- True
- False
- Username:
-
-
- 2
- 3
- GTK_SHRINK
-
-
-
-
- gtk-edit
- True
- True
- True
- True
-
-
-
- 1
- 2
- 3
- 4
- GTK_SHRINK
- GTK_SHRINK
-
-
-
-
- True
- False
-
-
- 1
- 2
- GTK_SHRINK
-
-
-
-
- True
- False
-
-
- 1
- 2
- 1
- 2
- GTK_SHRINK
-
-
-
-
- True
- False
-
-
- 1
- 2
- 2
- 3
- GTK_SHRINK
-
-
-
-
-
-
-
-
- True
- False
- <b>LDAP Account setup</b>
- True
-
-
-
-
- False
- True
- 0
-
-
-
-
-
-
-
- 5
-
-
-
-
- True
- False
-
-
- True
- False
- gtk-disconnect
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- LDAP
-
-
- True
- True
- 1
-
-
-
-
- 5
- False
-
-
-
-
-
-
-
-
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- end
-
-
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
-
- True
- False
-
-
- True
- False
- gtk-apply
-
-
- True
- True
- 0
-
-
-
-
- True
- False
- Done
-
-
- True
- True
- 1
-
-
-
-
-
-
- False
- False
- 10
- 0
-
-
-
-
- True
- True
- 5
- 1
-
-
-
-
-
-
diff --git a/gtk/password.ui b/gtk/password.ui
deleted file mode 100644
index d9ce720aa..000000000
--- a/gtk/password.ui
+++ /dev/null
@@ -1,139 +0,0 @@
-
-
-
-
-
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 5
- Linphone - Authentication required
- True
- center-on-parent
- dialog
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 2
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Please enter the domain password
- center
- True
-
-
- 0
-
-
-
-
- True
- 2
- 2
-
-
- True
- UserID
-
-
-
-
- True
- True
- ●
-
-
- 1
- 2
-
-
-
-
- True
- Password:
- right
-
-
- 1
- 2
-
-
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- False
- ●
-
-
-
- 1
- 2
- 1
- 2
-
-
-
-
- 1
-
-
-
-
- 1
-
-
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- end
-
-
- gtk-ok
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- True
-
-
-
- False
- False
- 0
-
-
-
-
- gtk-cancel
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- True
-
-
-
- False
- False
- 1
-
-
-
-
- False
- end
- 0
-
-
-
-
-
-
diff --git a/gtk/propertybox.c b/gtk/propertybox.c
deleted file mode 100644
index 9e417f88f..000000000
--- a/gtk/propertybox.c
+++ /dev/null
@@ -1,1966 +0,0 @@
-/*
-linphone, gtk-glade interface.
-Copyright (C) 2008-2009 Simon MORLAT (simon.morlat@linphone.org)
-
-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 2
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include "linphone.h"
-#include "linphone/tunnel.h"
-#include "linphone/lpconfig.h"
-#include "config.h"
-
-void linphone_gtk_fill_combo_box(GtkWidget *combo, const char **devices, const char *selected, DeviceCap cap){
- const char **p=devices;
- int i=0,active=-1;
- GtkTreeModel *model;
-
-
- if ((model=gtk_combo_box_get_model(GTK_COMBO_BOX(combo)))==NULL){
- /*case where combo box is created with no model*/
- GtkCellRenderer *renderer=gtk_cell_renderer_text_new();
- model=GTK_TREE_MODEL(gtk_list_store_new(1,G_TYPE_STRING));
- gtk_combo_box_set_model(GTK_COMBO_BOX(combo),model);
- gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo),renderer,TRUE);
- gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo),renderer,"text",0,NULL);
- }else{
- gtk_list_store_clear(GTK_LIST_STORE(model));
- /* glade creates a combo box without list model and text renderer,
- unless we fill it with a dummy text.
- This dummy text needs to be removed first*/
- }
-
- for(;*p!=NULL;++p){
- if ( cap==CAP_IGNORE
- || (cap==CAP_CAPTURE && linphone_core_sound_device_can_capture(linphone_gtk_get_core(),*p))
- || (cap==CAP_PLAYBACK && linphone_core_sound_device_can_playback(linphone_gtk_get_core(),*p)) ){
- gtk_combo_box_append_text(GTK_COMBO_BOX(combo),*p);
- if (selected && strcmp(selected,*p)==0) active=i;
- i++;
- }
- }
- if (active!=-1)
- gtk_combo_box_set_active(GTK_COMBO_BOX(combo),active);
-}
-
-static void linphone_gtk_ldap_display( GtkWidget* param )
-{
- LpConfig* config = linphone_core_get_config(linphone_gtk_get_core());
- LinphoneDictionary* ldap_conf = lp_config_section_to_dict(config,"ldap");
- GtkLabel* label;
-
- ms_message("linphone_gtk_ldap_display");
- label= GTK_LABEL(linphone_gtk_get_widget(param,"ldap_server"));
- gtk_label_set_text(label, linphone_dictionary_get_string(ldap_conf,"server", "ldap://localhost") );
-
- label = GTK_LABEL(linphone_gtk_get_widget(param,"ldap_auth_method"));
- gtk_label_set_text(label, linphone_dictionary_get_string(ldap_conf,"auth_method", "ANONYMOUS") );
-
- label = GTK_LABEL(linphone_gtk_get_widget(param,"ldap_username"));
- gtk_label_set_text(label, linphone_dictionary_get_string(ldap_conf,"username", "") );
-}
-
-static void linphone_gtk_ldap_set_authcombo( GtkComboBox* box, const char* authmethod )
-{
- GtkTreeModel* model = GTK_TREE_MODEL(gtk_combo_box_get_model(box));
- GtkTreeIter iter;
- g_return_if_fail(gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter) );
-
- do{
- const char* value;
-
- gtk_tree_model_get(model,&iter,0,&value,-1);
- if( value && strcmp(value, authmethod) == 0){
- gtk_combo_box_set_active_iter(box, &iter);
- break;
- }
-
- }while(gtk_tree_model_iter_next(model,&iter));
-}
-
-static void linphone_gtk_ldap_load_settings(GtkWidget* param)
-{
- LpConfig* config = linphone_core_get_config(linphone_gtk_get_core());
- LinphoneDictionary* ldap_conf = lp_config_section_to_dict(config,"ldap");
- GtkEntry* entry;
- GtkToggleButton* toggle;
- GtkSpinButton* spin;
- GtkComboBox* cbox;
-
-
- toggle = GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(param,"ldap_use_tls"));
- gtk_toggle_button_set_active(toggle, linphone_dictionary_get_int(ldap_conf,"use_tls", 0) );
-
- entry = GTK_ENTRY(linphone_gtk_get_widget(param,"ldap_server"));
- gtk_entry_set_text(entry, linphone_dictionary_get_string(ldap_conf,"server", "ldap://localhost") );
-
- entry = GTK_ENTRY(linphone_gtk_get_widget(param,"ldap_username"));
- gtk_entry_set_text(entry, linphone_dictionary_get_string(ldap_conf,"username", "") );
-
- entry = GTK_ENTRY(linphone_gtk_get_widget(param,"ldap_password"));
- gtk_entry_set_text(entry, linphone_dictionary_get_string(ldap_conf,"password", "") );
-
- // SASL
- entry = GTK_ENTRY(linphone_gtk_get_widget(param,"ldap_bind_dn"));
- gtk_entry_set_text(entry, linphone_dictionary_get_string(ldap_conf,"bind_dn", "") );
- entry = GTK_ENTRY(linphone_gtk_get_widget(param,"ldap_sasl_authname"));
- gtk_entry_set_text(entry, linphone_dictionary_get_string(ldap_conf,"sasl_authname", "") );
- entry = GTK_ENTRY(linphone_gtk_get_widget(param,"ldap_sasl_realm"));
- gtk_entry_set_text(entry, linphone_dictionary_get_string(ldap_conf,"sasl_realm", "") );
-
- cbox = GTK_COMBO_BOX(linphone_gtk_get_widget(param,"ldap_auth_method"));
- linphone_gtk_ldap_set_authcombo(cbox, linphone_dictionary_get_string(ldap_conf,"auth_method", "ANONYMOUS"));
-
- entry = GTK_ENTRY(linphone_gtk_get_widget(param,"ldap_base_object"));
- gtk_entry_set_text(entry, linphone_dictionary_get_string(ldap_conf,"base_object", "dc=example,dc=com") );
-
- entry = GTK_ENTRY(linphone_gtk_get_widget(param,"ldap_filter"));
- gtk_entry_set_text(entry, linphone_dictionary_get_string(ldap_conf,"filter", "uid=*%s*") );
-
- entry = GTK_ENTRY(linphone_gtk_get_widget(param,"ldap_name_attribute"));
- gtk_entry_set_text(entry, linphone_dictionary_get_string(ldap_conf,"name_attribute", "cn") );
-
- entry = GTK_ENTRY(linphone_gtk_get_widget(param,"ldap_sip_attribute"));
- gtk_entry_set_text(entry, linphone_dictionary_get_string(ldap_conf,"sip_attribute", "mobile") );
-
- entry = GTK_ENTRY(linphone_gtk_get_widget(param,"ldap_attributes"));
- gtk_entry_set_text(entry, linphone_dictionary_get_string(ldap_conf,"attributes", "cn,givenName,sn,mobile,homePhone") );
-
-
- toggle = GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(param,"ldap_deref_aliases"));
- gtk_toggle_button_set_active(toggle, linphone_dictionary_get_int(ldap_conf,"deref_aliases", 0) );
-
- spin = GTK_SPIN_BUTTON(linphone_gtk_get_widget(param,"ldap_max_results"));
- gtk_spin_button_set_value(spin, linphone_dictionary_get_int(ldap_conf,"max_results", 50) );
-
- spin = GTK_SPIN_BUTTON(linphone_gtk_get_widget(param,"ldap_timeout"));
- gtk_spin_button_set_value(spin, linphone_dictionary_get_int(ldap_conf,"timeout", 10) );
-
-}
-
-
-void linphone_gtk_show_ldap_config(GtkWidget* button)
-{
- GtkWidget* param = gtk_widget_get_toplevel(button);
- GtkWidget* ldap_config = linphone_gtk_create_window("ldap", param);
- linphone_gtk_ldap_load_settings(ldap_config);
-
- // to refresh parameters when the ldap config is destroyed
- g_object_weak_ref(G_OBJECT(ldap_config), (GWeakNotify)linphone_gtk_ldap_display, (gpointer)param);
-
- gtk_widget_show(ldap_config);
-}
-
-void linphone_gtk_ldap_reset(GtkWidget *button)
-{
- GtkWidget *w=gtk_widget_get_toplevel(GTK_WIDGET(button));
- ms_message("RESET LDAP");
- gtk_widget_destroy(w);
-}
-
-void linphone_gtk_ldap_save(GtkWidget *button)
-{
- LinphoneCore *lc = linphone_gtk_get_core();
- LpConfig* conf = linphone_core_get_config(lc);
- LinphoneDictionary* dict = linphone_dictionary_new();
-
- GtkWidget *ldap_widget = gtk_widget_get_toplevel(button);
- GtkEntry* entry;
- GtkToggleButton* toggle;
- GtkSpinButton* spin;
- GtkComboBox* cbox;
-
- ms_message("SAVE LDAP");
-
- toggle = GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(ldap_widget,"ldap_use_tls"));
- linphone_dictionary_set_int(dict, "use_tls", gtk_toggle_button_get_active(toggle));
-
-
- entry = GTK_ENTRY(linphone_gtk_get_widget(ldap_widget,"ldap_server"));
- linphone_dictionary_set_string(dict, "server", gtk_entry_get_text(entry));
-
- entry = GTK_ENTRY(linphone_gtk_get_widget(ldap_widget,"ldap_username"));
- linphone_dictionary_set_string(dict, "username", gtk_entry_get_text(entry));
-
- entry = GTK_ENTRY(linphone_gtk_get_widget(ldap_widget,"ldap_password"));
- linphone_dictionary_set_string(dict, "password", gtk_entry_get_text(entry));
-
- // SASL
- entry = GTK_ENTRY(linphone_gtk_get_widget(ldap_widget,"ldap_bind_dn"));
- linphone_dictionary_set_string(dict, "bind_dn", gtk_entry_get_text(entry));
- entry = GTK_ENTRY(linphone_gtk_get_widget(ldap_widget,"ldap_sasl_authname"));
- linphone_dictionary_set_string(dict, "sasl_authname", gtk_entry_get_text(entry));
- entry = GTK_ENTRY(linphone_gtk_get_widget(ldap_widget,"ldap_sasl_realm"));
- linphone_dictionary_set_string(dict, "sasl_realm", gtk_entry_get_text(entry));
-
-
- cbox = GTK_COMBO_BOX(linphone_gtk_get_widget(ldap_widget,"ldap_auth_method"));
- linphone_dictionary_set_string(dict, "auth_method", gtk_combo_box_get_active_text(cbox));
-
- entry = GTK_ENTRY(linphone_gtk_get_widget(ldap_widget,"ldap_base_object"));
- linphone_dictionary_set_string(dict, "base_object", gtk_entry_get_text(entry));
-
- entry = GTK_ENTRY(linphone_gtk_get_widget(ldap_widget,"ldap_filter"));
- linphone_dictionary_set_string(dict, "filter", gtk_entry_get_text(entry));
-
- entry = GTK_ENTRY(linphone_gtk_get_widget(ldap_widget,"ldap_name_attribute"));
- linphone_dictionary_set_string(dict, "name_attribute", gtk_entry_get_text(entry));
-
- entry = GTK_ENTRY(linphone_gtk_get_widget(ldap_widget,"ldap_sip_attribute"));
- linphone_dictionary_set_string(dict, "sip_attribute", gtk_entry_get_text(entry));
-
- entry = GTK_ENTRY(linphone_gtk_get_widget(ldap_widget,"ldap_attributes"));
- linphone_dictionary_set_string(dict, "attributes", gtk_entry_get_text(entry));
-
- toggle = GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(ldap_widget,"ldap_deref_aliases"));
- linphone_dictionary_set_int(dict, "deref_aliases", gtk_toggle_button_get_active(toggle));
-
- spin = GTK_SPIN_BUTTON(linphone_gtk_get_widget(ldap_widget,"ldap_max_results"));
- linphone_dictionary_set_int(dict, "max_results", (int)gtk_spin_button_get_value(spin) );
-
- spin = GTK_SPIN_BUTTON(linphone_gtk_get_widget(ldap_widget,"ldap_timeout"));
- linphone_dictionary_set_int(dict, "timeout", (int)gtk_spin_button_get_value(spin) );
-
- ms_message("Create LDAP from config");
- // create new LDAP according to the validated config
- linphone_gtk_set_ldap( linphone_ldap_contact_provider_create(lc, dict) );
- // save the config to linphonerc:
- lp_config_load_dict_to_section(conf, "ldap", dict);
-
- linphone_dictionary_unref(dict);
-
- // close widget
- gtk_widget_destroy(ldap_widget);
-
-}
-
-void linphone_gtk_fill_video_sizes(GtkWidget *combo){
- int i;
- int active=0;
- char vsize_def[256];
- MSVideoSize cur=linphone_core_get_preferred_video_size(linphone_gtk_get_core());
- const MSVideoSizeDef *def=linphone_core_get_supported_video_sizes(linphone_gtk_get_core());;
- /* glade creates a combo box without list model and text renderer,
- unless we fill it with a dummy text.
- This dummy text needs to be removed first*/
- gtk_combo_box_remove_text(GTK_COMBO_BOX(combo),0);
- for(i=0;def->name!=NULL;++def,++i){
- snprintf(vsize_def,sizeof(vsize_def),"%s (%ix%i)",def->name,def->vsize.width,def->vsize.height);
- gtk_combo_box_append_text(GTK_COMBO_BOX(combo),vsize_def);
- if (cur.width==def->vsize.width && cur.height==def->vsize.height) active=i;
- }
- gtk_combo_box_set_active(GTK_COMBO_BOX(combo),active);
-}
-
-void linphone_gtk_parameters_closed(GtkWidget *button){
- GtkWidget *pb=gtk_widget_get_toplevel(button);
- gtk_widget_destroy(pb);
- linphone_gtk_update_status_bar_icons();
-}
-
-void linphone_gtk_update_my_contact(GtkWidget *w){
- GtkWidget *pb=gtk_widget_get_toplevel(w);
- const char *username=gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(pb,"username")));
- const char *displayname=gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(pb,"displayname")));
- int port=linphone_core_get_sip_port(linphone_gtk_get_core());
- LinphoneAddress *parsed=linphone_core_get_primary_contact_parsed(linphone_gtk_get_core());
- char *contact;
- g_return_if_fail(parsed!=NULL);
- if (username[0]=='\0') return;
-
- linphone_address_set_display_name(parsed,displayname);
- linphone_address_set_username(parsed,username);
- linphone_address_set_port(parsed,port);
- contact=linphone_address_as_string(parsed);
- gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(pb,"sip_address")),contact);
- linphone_core_set_primary_contact(linphone_gtk_get_core(),contact);
- ms_free(contact);
- linphone_address_unref(parsed);
- linphone_gtk_load_identities();
-}
-
-void linphone_gtk_set_propety_entry(GtkWidget *w, gboolean stunServer, gboolean ip){
- GtkWidget *stun_entry=linphone_gtk_get_widget(gtk_widget_get_toplevel(w),"stun_server");
- GtkWidget *ip_entry=linphone_gtk_get_widget(gtk_widget_get_toplevel(w),"nat_address");
- gtk_widget_set_sensitive(stun_entry,stunServer);
- gtk_widget_set_sensitive(ip_entry,ip);
-}
-
-void linphone_gtk_stun_server_changed(GtkWidget *w){
- const gchar *addr=gtk_entry_get_text(GTK_ENTRY(w));
- linphone_core_set_stun_server(linphone_gtk_get_core(),addr);
-}
-
-void linphone_gtk_nat_address_changed(GtkWidget *w){
- const gchar *addr=gtk_entry_get_text(GTK_ENTRY(w));
- linphone_core_set_nat_address(linphone_gtk_get_core(),addr);
-}
-
-void linphone_gtk_ipv6_toggled(GtkWidget *w){
- linphone_core_enable_ipv6(linphone_gtk_get_core(),
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)));
-}
-
-void linphone_gtk_min_audio_port_changed(GtkWidget *w){
- GtkWidget *mw = linphone_gtk_get_main_window();
- GtkWidget *pb = (GtkWidget *) g_object_get_data(G_OBJECT(mw), "parameters");
- GtkSpinButton *min_button = GTK_SPIN_BUTTON(w);
- GtkSpinButton *max_button = GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb, "audio_max_rtp_port"));
- gboolean fixed = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb, "fixed_audio_port")));
-
- if (fixed) {
- linphone_core_set_audio_port(linphone_gtk_get_core(), (gint) gtk_spin_button_get_value(min_button));
- gtk_spin_button_set_value(max_button, gtk_spin_button_get_value(min_button));
- } else {
- gint min_port = (gint)gtk_spin_button_get_value(min_button);
- gint max_port = (gint)gtk_spin_button_get_value(max_button);
- if (min_port > max_port) {
- gtk_spin_button_set_value(max_button, min_port);
- max_port = min_port;
- }
- linphone_core_set_audio_port_range(linphone_gtk_get_core(), min_port, max_port);
- }
-}
-
-void linphone_gtk_max_audio_port_changed(GtkWidget *w){
- GtkWidget *mw = linphone_gtk_get_main_window();
- GtkWidget *pb = (GtkWidget *) g_object_get_data(G_OBJECT(mw), "parameters");
- GtkSpinButton *min_button = GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb, "audio_min_rtp_port"));
- GtkSpinButton *max_button = GTK_SPIN_BUTTON(w);
- gint min_port = (gint)gtk_spin_button_get_value(min_button);
- gint max_port = (gint)gtk_spin_button_get_value(max_button);
- if (max_port < min_port) {
- gtk_spin_button_set_value(min_button, max_port);
- min_port = max_port;
- }
- linphone_core_set_audio_port_range(linphone_gtk_get_core(), min_port, max_port);
-}
-
-void linphone_gtk_min_video_port_changed(GtkWidget *w){
- GtkWidget *mw = linphone_gtk_get_main_window();
- GtkWidget *pb = (GtkWidget *) g_object_get_data(G_OBJECT(mw), "parameters");
- GtkSpinButton *min_button = GTK_SPIN_BUTTON(w);
- GtkSpinButton *max_button = GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb, "video_max_rtp_port"));
- gboolean fixed = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb, "fixed_video_port")));
-
- if (fixed) {
- linphone_core_set_video_port(linphone_gtk_get_core(), (gint) gtk_spin_button_get_value(min_button));
- gtk_spin_button_set_value(max_button, gtk_spin_button_get_value(min_button));
- } else {
- gint min_port = (gint)gtk_spin_button_get_value(min_button);
- gint max_port = (gint)gtk_spin_button_get_value(max_button);
- if (min_port > max_port) {
- gtk_spin_button_set_value(max_button, min_port);
- max_port = min_port;
- }
- linphone_core_set_video_port_range(linphone_gtk_get_core(), min_port, max_port);
- }
-}
-
-void linphone_gtk_max_video_port_changed(GtkWidget *w){
- GtkWidget *mw = linphone_gtk_get_main_window();
- GtkWidget *pb = (GtkWidget *) g_object_get_data(G_OBJECT(mw), "parameters");
- GtkSpinButton *min_button = GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb, "video_min_rtp_port"));
- GtkSpinButton *max_button = GTK_SPIN_BUTTON(w);
- gint min_port = (gint)gtk_spin_button_get_value(min_button);
- gint max_port = (gint)gtk_spin_button_get_value(max_button);
- if (max_port < min_port) {
- gtk_spin_button_set_value(min_button, max_port);
- min_port = max_port;
- }
- linphone_core_set_video_port_range(linphone_gtk_get_core(), min_port, max_port);
-}
-
-void linphone_gtk_no_firewall_toggled(GtkWidget *w){
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))){
- linphone_gtk_set_propety_entry(w,FALSE,FALSE);
- linphone_core_set_firewall_policy(linphone_gtk_get_core(),LinphonePolicyNoFirewall);
- }
-}
-
-void linphone_gtk_use_nat_address_toggled(GtkWidget *w){
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))){
- linphone_gtk_set_propety_entry(w,FALSE,TRUE);
- linphone_core_set_firewall_policy(linphone_gtk_get_core(),LinphonePolicyUseNatAddress);
- }
-}
-
-void linphone_gtk_use_stun_toggled(GtkWidget *w){
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))){
- linphone_gtk_set_propety_entry(w,TRUE,FALSE);
- linphone_core_set_firewall_policy(linphone_gtk_get_core(),LinphonePolicyUseStun);
- }
-}
-
-void linphone_gtk_use_ice_toggled(GtkWidget *w){
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))){
- linphone_gtk_set_propety_entry(w,TRUE,FALSE);
- linphone_core_set_firewall_policy(linphone_gtk_get_core(),LinphonePolicyUseIce);
- }
-}
-
-void linphone_gtk_use_upnp_toggled(GtkWidget *w){
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))){
- linphone_gtk_set_propety_entry(w,FALSE,FALSE);
- linphone_core_set_firewall_policy(linphone_gtk_get_core(),LinphonePolicyUseUpnp);
- }
-}
-
-void linphone_gtk_mtu_changed(GtkWidget *w){
- if (GTK_WIDGET_SENSITIVE(w))
- linphone_core_set_mtu(linphone_gtk_get_core(),(int)gtk_spin_button_get_value(GTK_SPIN_BUTTON(w)));
-}
-
-void linphone_gtk_use_sip_info_dtmf_toggled(GtkWidget *w){
- linphone_core_set_use_info_for_dtmf(linphone_gtk_get_core(),
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)));
-}
-
-void linphone_gtk_mtu_set(GtkWidget *w){
- GtkWidget *mtu=linphone_gtk_get_widget(gtk_widget_get_toplevel(w),"mtu");
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))){
- gtk_widget_set_sensitive(mtu,TRUE);
- linphone_gtk_mtu_changed(mtu);
- }else{
- gtk_widget_set_sensitive(mtu,FALSE);
- linphone_core_set_mtu(linphone_gtk_get_core(),0);
- }
-}
-
-void linphone_gtk_playback_device_changed(GtkWidget *w){
- gchar *sel=gtk_combo_box_get_active_text(GTK_COMBO_BOX(w));
- linphone_core_set_playback_device(linphone_gtk_get_core(),sel);
- g_free(sel);
-}
-
-void linphone_gtk_capture_device_changed(GtkWidget *w){
- gchar *sel=gtk_combo_box_get_active_text(GTK_COMBO_BOX(w));
- linphone_core_set_capture_device(linphone_gtk_get_core(),sel);
- g_free(sel);
-}
-
-void linphone_gtk_ring_device_changed(GtkWidget *w){
- gchar *sel=gtk_combo_box_get_active_text(GTK_COMBO_BOX(w));
- linphone_core_set_ringer_device(linphone_gtk_get_core(),sel);
- g_free(sel);
-}
-
-void linphone_gtk_alsa_special_device_changed(GtkWidget *w){
- /*
- const gchar *dev=gtk_entry_get_text(GTK_ENTRY(w));
- ...*/
-}
-
-void linphone_gtk_cam_changed(GtkWidget *w){
- LinphoneCall *call;
- LinphoneCore *lc = linphone_gtk_get_core();
- gchar *sel=gtk_combo_box_get_active_text(GTK_COMBO_BOX(w));
- if (sel){
- if (strcmp(sel, linphone_core_get_video_device(lc)) != 0){
- linphone_core_set_video_device(lc,sel);
- if ((call = linphone_core_get_current_call(lc)) != NULL) {
- linphone_call_update(call, NULL);
- }
- }
- }
- g_free(sel);
-}
-
-void linphone_gtk_video_size_changed(GtkWidget *w){
- int sel=gtk_combo_box_get_active(GTK_COMBO_BOX(w));
- const MSVideoSizeDef *defs=linphone_core_get_supported_video_sizes(linphone_gtk_get_core());
- if (sel<0) return;
- linphone_core_set_preferred_video_size(linphone_gtk_get_core(),
- defs[sel].vsize);
-}
-
-void linphone_gtk_video_renderer_changed(GtkWidget *w){
- GtkTreeIter iter;
- if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(w),&iter)){
- GtkTreeModel *model=gtk_combo_box_get_model(GTK_COMBO_BOX(w));
- gchar *name;
- gtk_tree_model_get(model,&iter,0,&name,-1);
- linphone_core_set_video_display_filter(linphone_gtk_get_core(),name);
- }
-}
-
-void linphone_gtk_video_preset_changed(GtkWidget *w) {
- gchar *sel = gtk_combo_box_get_active_text(GTK_COMBO_BOX(w));
- GtkSpinButton *framerate = GTK_SPIN_BUTTON(linphone_gtk_get_widget(gtk_widget_get_toplevel(w), "video_framerate"));
- LinphoneCore *lc = linphone_gtk_get_core();
- if (g_strcmp0(sel, "default") == 0) {
- linphone_core_set_video_preset(lc, NULL);
- gtk_spin_button_set_value(framerate, 0);
- gtk_widget_set_sensitive(GTK_WIDGET(framerate), FALSE);
- } else if (g_strcmp0(sel, "high-fps") == 0) {
- linphone_core_set_video_preset(lc, "high-fps");
- gtk_spin_button_set_value(framerate, 30);
- gtk_widget_set_sensitive(GTK_WIDGET(framerate), FALSE);
- } else if (g_strcmp0(sel, "custom") == 0) {
- linphone_core_set_video_preset(lc, "custom");
- gtk_spin_button_set_value(framerate, 30);
- gtk_widget_set_sensitive(GTK_WIDGET(framerate), TRUE);
- }
- g_free(sel);
-}
-
-void linphone_gtk_ring_file_set(GtkWidget *w){
- gchar *file=gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(w));
- linphone_core_set_ring(linphone_gtk_get_core(),file);
- g_free(file);
-}
-
-static void linphone_gtk_end_of_ring(LinphoneCore *lc, void *user_data){
- gtk_widget_set_sensitive((GtkWidget*)user_data,TRUE);
-}
-
-void linphone_gtk_play_ring_file(GtkWidget *w){
- if (linphone_core_preview_ring(linphone_gtk_get_core(),
- linphone_core_get_ring(linphone_gtk_get_core()),
- linphone_gtk_end_of_ring,
- w)==0){
- gtk_widget_set_sensitive(w,FALSE);
- }
-}
-
-void linphone_gtk_echo_cancelation_toggled(GtkWidget *w){
- linphone_core_enable_echo_cancellation(linphone_gtk_get_core(),
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)));
-}
-
-enum {
- CODEC_NAME,
- CODEC_RATE,
- CODEC_BITRATE,
- CODEC_STATUS,
- CODEC_PARAMS,
- CODEC_PRIVDATA,
- CODEC_COLOR,
- CODEC_INFO,
- CODEC_NCOLUMNS
-};
-
-static void fmtp_edited(GtkCellRendererText *renderer, gchar *path, gchar *new_text, gpointer userdata){
- GtkListStore *store=(GtkListStore*)userdata;
- GtkTreeIter iter;
- if (gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(store),&iter,path)){
- PayloadType *pt;
- gtk_list_store_set(store,&iter,CODEC_PARAMS,new_text,-1);
- gtk_tree_model_get(GTK_TREE_MODEL(store),&iter,CODEC_PRIVDATA,&pt,-1);
- payload_type_set_recv_fmtp(pt,new_text);
- }
-}
-
-static void bitrate_edited(GtkCellRendererText *renderer, gchar *path, gchar *new_text, gpointer userdata){
- GtkListStore *store=(GtkListStore*)userdata;
- GtkTreeIter iter;
- float newbitrate=0;
-
- if (!new_text) return;
-
- if (sscanf(new_text, "%f", &newbitrate)!=1) return;
-
- if (gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(store),&iter,path)){
- PayloadType *pt;
- gtk_list_store_set(store,&iter,CODEC_BITRATE,newbitrate,-1);
- gtk_tree_model_get(GTK_TREE_MODEL(store),&iter,CODEC_PRIVDATA,&pt,-1);
- linphone_core_set_payload_type_bitrate(linphone_gtk_get_core(), pt, (int)newbitrate);
- }
-}
-
-static void linphone_gtk_init_codec_list(GtkTreeView *listview){
- GtkCellRenderer *renderer;
- GtkTreeViewColumn *column;
- GtkTreeSelection *select;
- GValue editable = {0};
-
- GtkListStore *store = gtk_list_store_new (CODEC_NCOLUMNS, G_TYPE_STRING,G_TYPE_INT,
- G_TYPE_FLOAT,
- G_TYPE_STRING,
- G_TYPE_STRING,
- G_TYPE_POINTER,
- G_TYPE_STRING,
- G_TYPE_STRING);
-
- gtk_tree_view_set_model(listview,GTK_TREE_MODEL(store));
- g_object_unref(G_OBJECT(store));
-
- renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes (_("Name"),
- renderer,
- "text", CODEC_NAME,
- "foreground",CODEC_COLOR,
- NULL);
- gtk_tree_view_append_column (listview, column);
- column = gtk_tree_view_column_new_with_attributes (_("Rate (Hz)"),
- renderer,
- "text", CODEC_RATE,
- "foreground",CODEC_COLOR,
- NULL);
- gtk_tree_view_append_column (listview, column);
- column = gtk_tree_view_column_new_with_attributes (_("Status"),
- renderer,
- "text", CODEC_STATUS,
- "foreground",CODEC_COLOR,
- NULL);
- gtk_tree_view_append_column (listview, column);
-
- g_value_init(&editable, G_TYPE_BOOLEAN);
- g_value_set_boolean(&editable, TRUE);
-
- renderer = gtk_cell_renderer_text_new ();
- g_object_set_property(G_OBJECT(renderer), "editable", &editable);
- column = gtk_tree_view_column_new_with_attributes (
- _("IP Bitrate (kbit/s)"),
- renderer,
- "text", CODEC_BITRATE,
- "foreground",CODEC_COLOR,
- NULL);
- g_signal_connect(G_OBJECT(renderer),"edited",G_CALLBACK(bitrate_edited),store);
- gtk_tree_view_append_column (listview, column);
-
- renderer = gtk_cell_renderer_text_new ();
- g_object_set_property(G_OBJECT(renderer), "editable", &editable);
- column = gtk_tree_view_column_new_with_attributes (
- _("Parameters"),
- renderer,
- "text", CODEC_PARAMS,
- "foreground",CODEC_COLOR,
- NULL);
- g_signal_connect(G_OBJECT(renderer),"edited",G_CALLBACK(fmtp_edited),store);
- gtk_tree_view_append_column (listview, column);
- /* Setup the selection handler */
- select = gtk_tree_view_get_selection (listview);
- gtk_tree_selection_set_mode (select, GTK_SELECTION_MULTIPLE);
-}
-
-
-const char *get_codec_color(LinphoneCore *lc, OrtpPayloadType *pt){
- const gchar *color;
- if (linphone_core_check_payload_type_usability(lc,pt)) color="blue";
- else color="red";
- if (!linphone_core_payload_type_enabled(lc,pt)) {
- color="grey";
- }
- return color;
-}
-
-static void linphone_gtk_show_codecs(GtkTreeView *listview, const bctbx_list_t *codeclist)
-{
- const bctbx_list_t *elem;
- GtkTreeIter iter;
- GtkListStore *store=GTK_LIST_STORE(gtk_tree_view_get_model(listview));
-// GtkTreeSelection *selection;
-
- gtk_list_store_clear(store);
-
- for(elem=codeclist; elem!=NULL; elem=elem->next){
- gchar *status;
- gint rate;
- gfloat bitrate;
- const gchar *color;
- const char *params="";
-
- OrtpPayloadType *pt=(OrtpPayloadType *)elem->data;
-
- color=get_codec_color(linphone_gtk_get_core(),pt);
- if (linphone_core_payload_type_enabled(linphone_gtk_get_core(),pt)) status=_("Enabled");
- else {
- status=_("Disabled");
- }
- /* get an iterator */
- gtk_list_store_append(store,&iter);
- bitrate=(gfloat)linphone_core_get_payload_type_bitrate(linphone_gtk_get_core(),pt);
- rate=payload_type_get_rate(pt);
- if (pt->recv_fmtp!=NULL) params=pt->recv_fmtp;
- gtk_list_store_set(store,&iter, CODEC_NAME,payload_type_get_mime(pt),
- CODEC_RATE,rate,
- CODEC_BITRATE,bitrate,
- CODEC_STATUS,status,
- CODEC_PARAMS,params,
- CODEC_PRIVDATA,(gpointer)pt,
- CODEC_COLOR,(gpointer)color,
- CODEC_INFO,(gpointer)linphone_core_get_payload_type_description(linphone_gtk_get_core(),pt),
- -1);
- }
-
-
-
- /* Setup the selection handler */
-// selection = gtk_tree_view_get_selection (listview);
-// gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
- //gtk_tree_view_columns_autosize(GTK_TREE_VIEW (sec->interfaces));
-#if GTK_CHECK_VERSION(2,12,0)
- gtk_tree_view_set_tooltip_column(listview,CODEC_INFO);
-#endif
-}
-
-static void linphone_gtk_check_codec_bandwidth(GtkTreeView *v){
- GtkTreeIter iter;
- GtkTreeModel *model;
- model=gtk_tree_view_get_model(v);
- g_return_if_fail(gtk_tree_model_get_iter_first(model,&iter));
- do{
- PayloadType *pt=NULL;
-
- gfloat bitrate;
- gtk_tree_model_get(model,&iter,CODEC_PRIVDATA,&pt,-1);
-
- bitrate=(gfloat)linphone_core_get_payload_type_bitrate(linphone_gtk_get_core(),pt);
- gtk_list_store_set(GTK_LIST_STORE(model),&iter,CODEC_COLOR, (gpointer)get_codec_color(linphone_gtk_get_core(),pt),
- CODEC_BITRATE, bitrate,-1);
- }while(gtk_tree_model_iter_next(model,&iter));
-}
-
-static void linphone_gtk_select_codec(GtkTreeView *v, PayloadType *ref){
- GtkTreeIter iter;
- GtkTreeModel *model;
- GtkTreeSelection *selection;
- selection=gtk_tree_view_get_selection(v);
- model=gtk_tree_view_get_model(v);
- g_return_if_fail(gtk_tree_model_get_iter_first(model,&iter));
- do{
- PayloadType *pt=NULL;
- gtk_tree_model_get(model,&iter,CODEC_PRIVDATA,&pt,-1);
- if (pt==ref){
- gtk_tree_selection_select_iter(selection,&iter);
- }
-
- }while(gtk_tree_model_iter_next(model,&iter));
-}
-
-static void linphone_gtk_draw_codec_list(GtkTreeView *v, int type){ /* 0=audio, 1=video*/
- const bctbx_list_t *list;
- if (type==0) list=linphone_core_get_audio_codecs(linphone_gtk_get_core());
- else list=linphone_core_get_video_codecs(linphone_gtk_get_core());
- linphone_gtk_show_codecs(v,list);
-}
-
-void linphone_gtk_download_bw_changed(GtkWidget *w){
- GtkTreeView *audiov=GTK_TREE_VIEW(linphone_gtk_get_widget(gtk_widget_get_toplevel(w),"audio_codec_list"));
- GtkTreeView *videov=GTK_TREE_VIEW(linphone_gtk_get_widget(gtk_widget_get_toplevel(w),"video_codec_list"));
- linphone_core_set_download_bandwidth(linphone_gtk_get_core(),
- (int)gtk_spin_button_get_value(GTK_SPIN_BUTTON(w)));
- linphone_gtk_check_codec_bandwidth(audiov);
- linphone_gtk_check_codec_bandwidth(videov);
-}
-
-void linphone_gtk_upload_bw_changed(GtkWidget *w){
- GtkTreeView *audiov=GTK_TREE_VIEW(linphone_gtk_get_widget(gtk_widget_get_toplevel(w),"audio_codec_list"));
- GtkTreeView *videov=GTK_TREE_VIEW(linphone_gtk_get_widget(gtk_widget_get_toplevel(w),"video_codec_list"));
- linphone_core_set_upload_bandwidth(linphone_gtk_get_core(),
- (int)gtk_spin_button_get_value(GTK_SPIN_BUTTON(w)));
- linphone_gtk_check_codec_bandwidth(audiov);
- linphone_gtk_check_codec_bandwidth(videov);
-}
-
-void linphone_gtk_video_framerate_changed(GtkWidget *w) {
- linphone_core_set_preferred_framerate(linphone_gtk_get_core(),
- (float)(int)gtk_spin_button_get_value(GTK_SPIN_BUTTON(w)));
-}
-
-void linphone_gtk_adaptive_rate_control_toggled(GtkToggleButton *button){
- gboolean active=gtk_toggle_button_get_active(button);
- linphone_core_enable_adaptive_rate_control(linphone_gtk_get_core(),active);
-}
-
-static void _g_list_func_destroy_tree_path(gpointer data, gpointer user_data) {
- GtkTreePath *tree_path = (GtkTreePath *)data;
- gtk_tree_path_free(tree_path);
-}
-
-static void linphone_gtk_codec_move(GtkWidget *button, int dir, int type){ /* 0=audio, 1=video*/
- GtkTreeView *v;
- GtkTreeSelection *sel;
- GtkTreeModel *mod;
- GtkTreeIter iter;
- PayloadType *pt=NULL;
- LinphoneCore *lc=linphone_gtk_get_core();
-
- if (type == 0) v=GTK_TREE_VIEW(linphone_gtk_get_widget(gtk_widget_get_toplevel(button),"audio_codec_list"));
- else v=GTK_TREE_VIEW(linphone_gtk_get_widget(gtk_widget_get_toplevel(button),"video_codec_list"));
- sel=gtk_tree_view_get_selection(v);
- if (gtk_tree_selection_count_selected_rows(sel) == 1){
- bctbx_list_t *sel_elem,*before;
- bctbx_list_t *codec_list;
-
- GList *selected_rows = gtk_tree_selection_get_selected_rows(sel, &mod);
- gtk_tree_model_get_iter(mod, &iter, (GtkTreePath *)g_list_nth_data(selected_rows, 0));
- gtk_tree_model_get(mod,&iter,CODEC_PRIVDATA,&pt,-1);
- g_list_foreach(selected_rows, _g_list_func_destroy_tree_path, NULL);
- g_list_free(selected_rows);
-
- if (pt->type==PAYLOAD_VIDEO)
- codec_list=bctbx_list_copy(linphone_core_get_video_codecs(lc));
- else codec_list=bctbx_list_copy(linphone_core_get_audio_codecs(lc));
- sel_elem=bctbx_list_find(codec_list,pt);
- if (dir>0) {
- if (sel_elem->prev) before=sel_elem->prev;
- else before=sel_elem;
- codec_list=bctbx_list_insert(codec_list,before,pt);
- }
- else{
- if (sel_elem->next) before=sel_elem->next->next;
- else before=sel_elem;
- codec_list=bctbx_list_insert(codec_list,before,pt);
- }
- codec_list=bctbx_list_erase_link(codec_list,sel_elem);
- if (pt->type==PAYLOAD_VIDEO)
- linphone_core_set_video_codecs(lc,codec_list);
- else linphone_core_set_audio_codecs(lc,codec_list);
- linphone_gtk_show_codecs(v,codec_list);
- linphone_gtk_select_codec(v,pt);
- }
-}
-
-static void linphone_gtk_codec_set_enable(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) {
- PayloadType *pt=NULL;
- gboolean *enabled = (gboolean *)data;
- gtk_tree_model_get(model, iter, CODEC_PRIVDATA, &pt, -1);
- linphone_core_enable_payload_type(linphone_gtk_get_core(), pt, *enabled);
- gtk_list_store_set(GTK_LIST_STORE(model), iter, CODEC_STATUS, *enabled ? _("Enabled") : _("Disabled"),
- CODEC_COLOR,(gpointer)get_codec_color(linphone_gtk_get_core(),pt), -1);
-}
-
-static void linphone_gtk_codec_set_enable_all_selected(GtkWidget *button, gboolean enabled, int type){ /* 0=audio, 1=video*/
- GtkTreeView *v;
- GtkTreeSelection *sel;
- if (type == 0) v=GTK_TREE_VIEW(linphone_gtk_get_widget(gtk_widget_get_toplevel(button),"audio_codec_list"));
- else v=GTK_TREE_VIEW(linphone_gtk_get_widget(gtk_widget_get_toplevel(button),"video_codec_list"));
- sel=gtk_tree_view_get_selection(v);
- gtk_tree_selection_selected_foreach(sel, linphone_gtk_codec_set_enable, &enabled);
- if (type == 0){
- /*activating audio and video codecs has consequences on video bandwidth*/
- GtkTreeView *videov=GTK_TREE_VIEW(linphone_gtk_get_widget(gtk_widget_get_toplevel(button),"video_codec_list"));
- linphone_gtk_check_codec_bandwidth(videov);
- }
-}
-
-void linphone_gtk_audio_codec_up(GtkWidget *button){
- linphone_gtk_codec_move(button,+1,0);
-}
-
-void linphone_gtk_audio_codec_down(GtkWidget *button){
- linphone_gtk_codec_move(button,-1,0);
-}
-
-void linphone_gtk_audio_codec_enable(GtkWidget *button){
- linphone_gtk_codec_set_enable_all_selected(button,TRUE,0);
-}
-
-void linphone_gtk_audio_codec_disable(GtkWidget *button){
- linphone_gtk_codec_set_enable_all_selected(button,FALSE,0);
-}
-
-void linphone_gtk_video_codec_up(GtkWidget *button){
- linphone_gtk_codec_move(button,+1,1);
-}
-
-void linphone_gtk_video_codec_down(GtkWidget *button){
- linphone_gtk_codec_move(button,-1,1);
-}
-
-void linphone_gtk_video_codec_enable(GtkWidget *button){
- linphone_gtk_codec_set_enable_all_selected(button,TRUE,1);
-}
-
-void linphone_gtk_video_codec_disable(GtkWidget *button){
- linphone_gtk_codec_set_enable_all_selected(button,FALSE,1);
-}
-
-void linphone_gtk_clear_passwords(GtkWidget *button){
- linphone_core_clear_all_auth_info(linphone_gtk_get_core());
-}
-
-enum{
- PROXY_CONFIG_IDENTITY,
- PROXY_CONFIG_REF,
- PROXY_CONFIG_NCOL
-};
-
-void linphone_gtk_show_sip_accounts(GtkWidget *w){
- GtkTreeView *v=GTK_TREE_VIEW(linphone_gtk_get_widget(w,"proxy_list"));
- GtkTreeModel *model=gtk_tree_view_get_model(v);
- GtkListStore *store;
- GtkTreeSelection *select;
- const LinphoneProxyConfig *default_pc = linphone_core_get_default_proxy_config(linphone_gtk_get_core());
- GtkTreePath *default_pc_path = NULL;
-
- const bctbx_list_t *elem;
- if (!model){
- GtkCellRenderer *renderer;
- GtkTreeViewColumn *column;
- /* create the proxy list */
- store = gtk_list_store_new (PROXY_CONFIG_NCOL, G_TYPE_STRING, G_TYPE_POINTER);
-
- gtk_tree_view_set_model(v,GTK_TREE_MODEL(store));
- g_object_unref(G_OBJECT(store));
- renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes (_("Account"),
- renderer,
- "text", PROXY_CONFIG_IDENTITY,
- NULL);
- gtk_tree_view_append_column (v, column);
-
- select = gtk_tree_view_get_selection (v);
- gtk_tree_selection_set_mode (select, GTK_SELECTION_SINGLE);
- model=GTK_TREE_MODEL(store);
- }else {
- store=GTK_LIST_STORE(model);
- }
- gtk_list_store_clear(store);
- for(elem=linphone_core_get_proxy_config_list(linphone_gtk_get_core());elem!=NULL;elem=bctbx_list_next(elem)){
- LinphoneProxyConfig *cfg=(LinphoneProxyConfig*)elem->data;
- GtkTreeIter iter;
- gtk_list_store_append(store,&iter);
- gtk_list_store_set(store,&iter,PROXY_CONFIG_IDENTITY,linphone_proxy_config_get_identity(cfg),
- PROXY_CONFIG_REF,cfg,-1);
- if(cfg == default_pc) default_pc_path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iter);
- }
- if(default_pc_path) {
- gtk_tree_selection_select_path(gtk_tree_view_get_selection(v), default_pc_path);
- gtk_tree_path_free(default_pc_path);
- }
-}
-
-static void linphone_gtk_proxy_closed(GtkWidget *w){
- LinphoneProxyConfig *cfg=(LinphoneProxyConfig*)g_object_get_data(G_OBJECT(w),"config");
- gboolean was_editing=! GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w),"is_new"));
- if (cfg){
- if (was_editing){
- linphone_proxy_config_done(cfg);
- }else linphone_proxy_config_destroy(cfg);
- }
-}
-
-static void fill_transport_combo_box(GtkWidget *combo, LinphoneTransportType choice, gboolean is_sensitive){
- GtkTreeModel *model;
- GtkTreeIter iter;
-
- if (GPOINTER_TO_INT(g_object_get_data(G_OBJECT(combo),"combo-updating"))) return;
-
- if ((model=gtk_combo_box_get_model(GTK_COMBO_BOX(combo)))==NULL){
- /*case where combo box is created with no model*/
- GtkCellRenderer *renderer=gtk_cell_renderer_text_new();
- model=GTK_TREE_MODEL(gtk_list_store_new(1,G_TYPE_STRING));
- gtk_combo_box_set_model(GTK_COMBO_BOX(combo),model);
- gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo),renderer,TRUE);
- gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo),renderer,"markup",0,NULL);
- }
- if (!gtk_tree_model_get_iter_first(model,&iter)){
- gtk_list_store_append(GTK_LIST_STORE(model),&iter);
- gtk_list_store_set(GTK_LIST_STORE(model),&iter,0,"UDP",-1);
- gtk_list_store_append(GTK_LIST_STORE(model),&iter);
- gtk_list_store_set(GTK_LIST_STORE(model),&iter,0,"TCP",-1);
- if (linphone_core_sip_transport_supported(linphone_gtk_get_core(),LinphoneTransportTls)){
- gtk_list_store_append(GTK_LIST_STORE(model),&iter);
- gtk_list_store_set(GTK_LIST_STORE(model),&iter,0,"TLS",-1);
- }
- }
- gtk_combo_box_set_active(GTK_COMBO_BOX(combo),(int)choice);
- gtk_widget_set_sensitive(combo,is_sensitive);
-}
-
-static void update_proxy_transport(GtkWidget *w){
- const char *addr=gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(w,"proxy")));
- LinphoneAddress *laddr=linphone_address_new(addr);
- if (laddr){
- GtkWidget *combo=linphone_gtk_get_widget(w,"transport");
- if (linphone_address_is_secure(laddr)){
- fill_transport_combo_box(combo,LinphoneTransportTls,FALSE);
- }else{
- fill_transport_combo_box(combo,linphone_address_get_transport(laddr),TRUE);
- }
- linphone_address_unref(laddr);
- }
-}
-
-void linphone_gtk_proxy_transport_changed(GtkWidget *combo){
- GtkWidget *w=gtk_widget_get_toplevel(combo);
- int index=gtk_combo_box_get_active(GTK_COMBO_BOX(combo));
- GtkWidget *proxy=linphone_gtk_get_widget(w,"proxy");
- const char *addr=gtk_entry_get_text(GTK_ENTRY(proxy));
- LinphoneAddress *laddr;
- LinphoneTransportType new_transport=(LinphoneTransportType)index;
-
- if (index==-1) return;
-
- g_object_set_data(G_OBJECT(w),"combo-updating",GINT_TO_POINTER(1));
- laddr=linphone_address_new(addr);
- if (laddr){
- if (linphone_address_get_transport(laddr)!=new_transport){
- char *newaddr;
- linphone_address_set_transport(laddr,new_transport);
- newaddr=linphone_address_as_string(laddr);
- gtk_entry_set_text(GTK_ENTRY(proxy),newaddr);
- ms_free(newaddr);
- }
- linphone_address_unref(laddr);
- }
- g_object_set_data(G_OBJECT(w),"combo-updating",GINT_TO_POINTER(0));
-}
-
-void linphone_gtk_proxy_address_changed(GtkEditable *editable){
- update_proxy_transport(gtk_widget_get_toplevel(GTK_WIDGET(editable)));
-}
-
-void linphone_gtk_show_proxy_config(GtkWidget *pb, LinphoneProxyConfig *cfg){
- GtkWidget *w=linphone_gtk_create_window("sip_account", gtk_widget_get_toplevel(pb));
- const char *tmp;
- gboolean is_new=FALSE;
-
- if (!cfg) {
- cfg=linphone_core_create_proxy_config(linphone_gtk_get_core());
- is_new=TRUE;
- g_object_set_data(G_OBJECT(w),"is_new",GINT_TO_POINTER(TRUE));
- }
-
- if (!is_new){
- linphone_proxy_config_edit(cfg);
- gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(w,"identity")),
- linphone_proxy_config_get_identity(cfg));
- gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(w,"proxy")),linphone_proxy_config_get_addr(cfg));
- tmp=linphone_proxy_config_get_route(cfg);
- if (tmp) gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(w,"route")),tmp);
- tmp=linphone_proxy_config_get_contact_parameters(cfg);
- if (tmp) gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(w,"params")),tmp);
- }
-
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(w,"regperiod")),
- linphone_proxy_config_get_expires(cfg));
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(w,"register")),
- linphone_proxy_config_register_enabled(cfg));
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(w,"publish")),
- linphone_proxy_config_publish_enabled(cfg));
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(w,"avpf")),
- linphone_proxy_config_avpf_enabled(cfg));
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(w,"avpf_rr_interval")),
- linphone_proxy_config_get_avpf_rr_interval(cfg));
-
- g_object_set_data(G_OBJECT(w),"config",(gpointer)cfg);
- g_object_set_data(G_OBJECT(w),"parameters",(gpointer)pb);
- g_object_weak_ref(G_OBJECT(w),(GWeakNotify)linphone_gtk_proxy_closed,w);
- gtk_widget_show(w);
-}
-
-void linphone_gtk_proxy_cancel(GtkButton *button){
- GtkWidget *w=gtk_widget_get_toplevel(GTK_WIDGET(button));
- gtk_widget_destroy(w);
-}
-
-void linphone_gtk_proxy_ok(GtkButton *button){
- LinphoneCore *lc=linphone_gtk_get_core();
- GtkWidget *w=gtk_widget_get_toplevel(GTK_WIDGET(button));
- LinphoneProxyConfig *cfg=(LinphoneProxyConfig*)g_object_get_data(G_OBJECT(w),"config");
- int index=gtk_combo_box_get_active(GTK_COMBO_BOX(linphone_gtk_get_widget(w,"transport")));
- LinphoneTransportType tport=(LinphoneTransportType)index;
- gboolean was_editing=! GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w),"is_new"));
-
- linphone_proxy_config_set_identity(cfg,
- gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(w,"identity"))));
- if (linphone_proxy_config_set_server_addr(cfg,
- gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(w,"proxy"))))==0){
- if (index!=-1){
- /*make sure transport was added to proxy address*/
- LinphoneAddress *laddr=linphone_address_new(linphone_proxy_config_get_addr(cfg));
- if (laddr){
- if (linphone_address_get_transport(laddr)!=tport){
- char *tmp;
- linphone_address_set_transport(laddr,tport);
- tmp=linphone_address_as_string(laddr);
- linphone_proxy_config_set_server_addr(cfg,tmp);
- ms_free(tmp);
- }
- linphone_address_unref(laddr);
- }
- }
- }
- linphone_proxy_config_set_route(cfg,
- gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(w,"route"))));
- linphone_proxy_config_set_contact_parameters(cfg,
- gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(w,"params"))));
- linphone_proxy_config_set_expires(cfg,
- (int)gtk_spin_button_get_value(
- GTK_SPIN_BUTTON(linphone_gtk_get_widget(w,"regperiod"))));
- linphone_proxy_config_enable_publish(cfg,
- gtk_toggle_button_get_active(
- GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(w,"publish"))));
- linphone_proxy_config_enable_register(cfg,
- gtk_toggle_button_get_active(
- GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(w,"register"))));
- linphone_proxy_config_enable_avpf(cfg,
- gtk_toggle_button_get_active(
- GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(w,"avpf"))));
- linphone_proxy_config_set_avpf_rr_interval(cfg,
- (int)gtk_spin_button_get_value(
- GTK_SPIN_BUTTON(linphone_gtk_get_widget(w,"avpf_rr_interval"))));
-
- /* check if tls was asked but is not enabled in transport configuration*/
- if (tport==LinphoneTransportTls){
- LCSipTransports tports;
- linphone_core_get_sip_transports(lc,&tports);
- if (tports.tls_port==LC_SIP_TRANSPORT_DISABLED){
- tports.tls_port=LC_SIP_TRANSPORT_RANDOM;
- }
- linphone_core_set_sip_transports(lc,&tports);
- }
-
- if (was_editing){
- if (linphone_proxy_config_done(cfg)==-1)
- return;
- }
- else {
- if (linphone_core_add_proxy_config(linphone_gtk_get_core(),cfg)==-1) return;
- linphone_core_set_default_proxy(linphone_gtk_get_core(),cfg);
- }
- g_object_set_data(G_OBJECT(w),"config",NULL);
- linphone_gtk_show_sip_accounts(GTK_WIDGET(g_object_get_data(G_OBJECT(w),"parameters")));
- gtk_widget_destroy(w);
- /* also update the main window's list of identities*/
- linphone_gtk_load_identities();
-}
-
-static LinphoneProxyConfig *linphone_gtk_get_selected_proxy_config(GtkWidget* pb){
- GtkTreeView *v=GTK_TREE_VIEW(linphone_gtk_get_widget(pb,"proxy_list"));
- GtkTreeSelection *selection=gtk_tree_view_get_selection(v);
- GtkTreeIter iter;
- GtkTreeModel *model;
- if (gtk_tree_selection_get_selected(selection,&model,&iter)){
- LinphoneProxyConfig *cfg=NULL;
- gtk_tree_model_get(model,&iter,PROXY_CONFIG_REF,&cfg,-1);
- return cfg;
- }
- return NULL;
-}
-
-void linphone_gtk_add_proxy(GtkButton *button){
- linphone_gtk_show_proxy_config(gtk_widget_get_toplevel(GTK_WIDGET(button)),NULL);
-}
-
-void linphone_gtk_remove_proxy(GtkButton *button){
- LinphoneProxyConfig *cfg=linphone_gtk_get_selected_proxy_config(
- gtk_widget_get_toplevel(GTK_WIDGET(button)));
- if (cfg){
- linphone_core_remove_proxy_config(linphone_gtk_get_core(),cfg);
- linphone_gtk_show_sip_accounts(gtk_widget_get_toplevel(GTK_WIDGET(button)));
- /* also update the main window's list of identities*/
- linphone_gtk_load_identities();
- }
-}
-
-void linphone_gtk_edit_proxy(GtkButton *button){
- GtkWidget *pb=gtk_widget_get_toplevel(GTK_WIDGET(button));
- LinphoneProxyConfig *cfg=linphone_gtk_get_selected_proxy_config(pb);
- if (cfg){
- linphone_gtk_show_proxy_config(pb,cfg);
- /* also update the main window's list of identities*/
- linphone_gtk_load_identities();
- }
-}
-
-typedef struct _LangCodes{
- const char *code;
- const char *name;
-}LangCodes;
-
-static LangCodes supported_langs[]={
- { "C" , N_("English") },
- { "fr" , N_("French") },
- { "sv" , N_("Swedish") },
- { "it" , N_("Italian") },
- { "es" , N_("Spanish") },
- { "pt_BR" , N_("Brazilian Portugese") },
- { "pl" , N_("Polish") },
- { "de" , N_("German") },
- { "ru" , N_("Russian") },
- { "ja" , N_("Japanese") },
- { "nl" , N_("Dutch") },
- { "hu" , N_("Hungarian") },
- { "cs" , N_("Czech") },
- { "zh_CN" , N_("Chinese") },
- { "zh_TW" , N_("Traditional Chinese") },
- { "nb_NO" , N_("Norwegian") },
- { "he" , N_("Hebrew") },
- { "sr" , N_("Serbian") },
- { "ar" , N_("Arabic") },
- { "tr" , N_("Turkish") },
- { "fi" , N_("Finnish") },
- { "lt" , N_("Lithuanian") },
- { NULL , NULL }
-};
-
-static const char *lang_get_name(const char *code){
- LangCodes *p=supported_langs;
- while(p->code!=NULL){
- if (strcmp(p->code,code)==0) return p->name;
- p++;
- }
- return NULL;
-}
-
-static gboolean lang_equals(const char *l1, const char *l2){
- return ((strncmp(l1,l2,5)==0 || strncmp(l1,l2,2)==0));
-}
-
-static void linphone_gtk_fill_langs(GtkWidget *pb){
- GtkWidget *combo=linphone_gtk_get_widget(pb,"lang_combo");
- char code[10];
- const char *all_langs="C " LINPHONE_ALL_LANGS;
- const char *name;
- int i=0,index=0;
- int cur_lang_index=-1;
- char text[256]={0};
- const char *cur_lang = g_getenv("LANGUAGE");
- if (cur_lang==NULL) cur_lang="C";
- /* glade creates a combo box without list model and text renderer,
- unless we fill it with a dummy text.
- This dummy text needs to be removed first*/
- gtk_combo_box_remove_text(GTK_COMBO_BOX(combo),0);
- while(sscanf(all_langs+i,"%s",code)==1){
- i+=strlen(code);
- while(all_langs[i]==' ') ++i;
- name=lang_get_name(code);
- snprintf(text,sizeof(text)-1,"%s : %s",code,name!=NULL ? _(name) : code);
- gtk_combo_box_append_text(GTK_COMBO_BOX(combo),text);
- if (cur_lang_index==-1 && lang_equals(cur_lang,code))
- cur_lang_index=index;
- index++;
- }
- gtk_combo_box_set_active(GTK_COMBO_BOX(combo),cur_lang_index);
-}
-
-void linphone_gtk_lang_changed(GtkComboBox *combo){
- const char *selected=gtk_combo_box_get_active_text(combo);
- char code[10];
- const char *cur_lang=g_getenv("LANGUAGE");
- if (selected!=NULL){
- sscanf(selected,"%s",code);
- if (cur_lang==NULL) cur_lang="C";
- if (!lang_equals(cur_lang,code)){
- GtkWidget *dialog = gtk_message_dialog_new (GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(combo))),
- GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_INFO,
- GTK_BUTTONS_CLOSE,
- "%s",
- (const gchar*)_("You need to restart linphone for the new language selection to take effect."));
- /* Destroy the dialog when the user responds to it (e.g. clicks a button) */
- g_signal_connect_swapped (G_OBJECT (dialog), "response",
- G_CALLBACK (gtk_widget_destroy),
- G_OBJECT (dialog));
- gtk_widget_show(dialog);
- linphone_gtk_set_lang(code);
- }
- }
-}
-
-static void linphone_gtk_ui_level_adapt(GtkWidget *top) {
- gboolean ui_advanced;
- const char *simple_ui = linphone_gtk_get_ui_config("simple_ui", "parameters.codec_tab parameters.transport_frame parameters.ports_frame parameters.bandwidth_frame");
-
- ui_advanced = linphone_gtk_get_ui_config_int("advanced_ui", FALSE);
- if (ui_advanced) {
- linphone_gtk_visibility_set(simple_ui, "parameters", top, TRUE);
- } else {
- linphone_gtk_visibility_set(simple_ui, "parameters", top, FALSE);
- }
-}
-
-void linphone_gtk_ui_level_toggled(GtkWidget *w) {
- gint ui_advanced;
- GtkWidget *top;
-
- top = gtk_widget_get_toplevel(w);
- ui_advanced = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w));
- linphone_gtk_set_ui_config_int("advanced_ui", ui_advanced);
- linphone_gtk_ui_level_adapt(top);
-}
-
-static void linphone_gtk_set_media_encryption_mandatory_sensitive(GtkWidget *propbox, gboolean val){
- GtkWidget *w=linphone_gtk_get_widget(propbox,"media_encryption_mandatory_checkbox");
- gtk_widget_set_sensitive(w,val);
-}
-
-static void linphone_gtk_media_encryption_changed(GtkWidget *combo){
- char *selected=gtk_combo_box_get_active_text(GTK_COMBO_BOX(combo));
- LinphoneCore *lc=linphone_gtk_get_core();
- GtkWidget *toplevel=gtk_widget_get_toplevel(combo);
- GtkWidget *mandatory_box = linphone_gtk_get_widget(toplevel,"media_encryption_mandatory_checkbox");
- if (selected!=NULL){
- if (strcasecmp(selected,"SRTP")==0){
- linphone_core_set_media_encryption(lc,LinphoneMediaEncryptionSRTP);
- gtk_widget_set_sensitive(mandatory_box,TRUE);
- }else if (strcasecmp(selected,"DTLS")==0){
- linphone_core_set_media_encryption(lc,LinphoneMediaEncryptionDTLS);
- gtk_widget_set_sensitive(mandatory_box,TRUE);
- }else if (strcasecmp(selected,"ZRTP")==0){
- linphone_core_set_media_encryption(lc,LinphoneMediaEncryptionZRTP);
- gtk_widget_set_sensitive(mandatory_box,TRUE);
- } else {
- linphone_core_set_media_encryption(lc,LinphoneMediaEncryptionNone);
- gtk_widget_set_sensitive(mandatory_box,FALSE);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(mandatory_box), FALSE);
- }
- g_free(selected);
- }else g_warning("gtk_combo_box_get_active_text() returned NULL");
-}
-
-void linphone_gtk_set_media_encryption_mandatory(GtkWidget *button){
- linphone_core_set_media_encryption_mandatory(linphone_gtk_get_core(),gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)));
-}
-
-void linphone_gtk_lime_changed(GtkComboBoxText *combotext) {
- linphone_core_enable_lime(linphone_gtk_get_core(), gtk_combo_box_get_active(GTK_COMBO_BOX(combotext)));
-}
-
-static void linphone_gtk_show_media_encryption(GtkWidget *pb){
- LinphoneCore *lc=linphone_gtk_get_core();
- GtkWidget *combo=linphone_gtk_get_widget(pb,"media_encryption_combo");
- bool_t no_enc=TRUE;
- int srtp_id=-1,zrtp_id=-1,dtls_id=-1;
- GtkTreeModel *model;
- GtkListStore *store;
- GtkTreeIter iter;
- GtkCellRenderer *renderer=gtk_cell_renderer_text_new();
-
- model=GTK_TREE_MODEL((store=gtk_list_store_new(1,G_TYPE_STRING)));
- gtk_combo_box_set_model(GTK_COMBO_BOX(combo),model);
- gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo),renderer,TRUE);
- gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo),renderer,"text",0,NULL);
-
- gtk_list_store_append(store,&iter);
- gtk_list_store_set(store,&iter,0,_("None"),-1);
-
- if (linphone_core_media_encryption_supported(lc,LinphoneMediaEncryptionSRTP)){
- gtk_list_store_append(store,&iter);
- gtk_list_store_set(store,&iter,0,_("SRTP"),-1);
- srtp_id=1;
- no_enc=FALSE;
- }
- if (linphone_core_media_encryption_supported(lc,LinphoneMediaEncryptionDTLS)){
- gtk_list_store_append(store,&iter);
- gtk_list_store_set(store,&iter,0,_("DTLS"),-1);
- if (srtp_id!=-1) dtls_id=2;
- else dtls_id=1;
- no_enc=FALSE;
- }
- if (linphone_core_media_encryption_supported(lc,LinphoneMediaEncryptionZRTP)){
- gtk_list_store_append(store,&iter);
- gtk_list_store_set(store,&iter,0,_("ZRTP"),-1);
- no_enc=FALSE;
- if (srtp_id!=-1) {
- if (dtls_id!=-1)
- zrtp_id=3;
- else zrtp_id=2;
- } else {
- if (dtls_id!=-1)
- zrtp_id=2;
- else zrtp_id=1;
- }
- }
- if (no_enc){
- /*hide this setting*/
- gtk_widget_hide(linphone_gtk_get_widget(pb,"encryption_label"));
- gtk_widget_hide(linphone_gtk_get_widget(pb,"encryption_table"));
- }else{
- LinphoneMediaEncryption menc=linphone_core_get_media_encryption(lc);
- gtk_widget_show(linphone_gtk_get_widget(pb,"encryption_label"));
- gtk_widget_show(linphone_gtk_get_widget(pb,"encryption_table"));
-
- switch(menc){
- case LinphoneMediaEncryptionNone:
- gtk_combo_box_set_active(GTK_COMBO_BOX(combo),0);
- linphone_gtk_set_media_encryption_mandatory_sensitive(pb,FALSE);
- break;
- case LinphoneMediaEncryptionSRTP:
- if (srtp_id!=-1) {
- gtk_combo_box_set_active(GTK_COMBO_BOX(combo),srtp_id);
- linphone_gtk_set_media_encryption_mandatory_sensitive(pb,TRUE);
- }
- break;
- case LinphoneMediaEncryptionDTLS:
- if (dtls_id!=-1) {
- gtk_combo_box_set_active(GTK_COMBO_BOX(combo),dtls_id);
- linphone_gtk_set_media_encryption_mandatory_sensitive(pb,TRUE);
- }
- break;
- case LinphoneMediaEncryptionZRTP:
- if (zrtp_id!=-1) {
- gtk_combo_box_set_active(GTK_COMBO_BOX(combo),zrtp_id);
- linphone_gtk_set_media_encryption_mandatory_sensitive(pb,TRUE);
- }
- break;
- }
- g_signal_connect(G_OBJECT(combo),"changed",(GCallback)linphone_gtk_media_encryption_changed,NULL);
- }
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb,"media_encryption_mandatory_checkbox")),
- linphone_core_is_media_encryption_mandatory(lc));
-
- gtk_combo_box_set_active(GTK_COMBO_BOX(linphone_gtk_get_widget(pb,"chat_lime_combo")), linphone_core_lime_enabled(lc));
- gtk_widget_set_sensitive(linphone_gtk_get_widget(pb,"chat_lime_combo"), linphone_core_lime_available(lc));
-
- g_object_unref(G_OBJECT(model));
-}
-
-void linphone_gtk_parameters_destroyed(GtkWidget *pb){
- GtkWidget *mw=linphone_gtk_get_main_window();
- g_object_set_data(G_OBJECT(mw),"parameters",NULL);
-}
-
-void linphone_gtk_fill_soundcards(GtkWidget *pb){
- LinphoneCore *lc=linphone_gtk_get_core();
- const char **sound_devices=linphone_core_get_sound_devices(lc);
- linphone_gtk_fill_combo_box(linphone_gtk_get_widget(pb,"playback_device"), sound_devices,
- linphone_core_get_playback_device(lc),CAP_PLAYBACK);
- linphone_gtk_fill_combo_box(linphone_gtk_get_widget(pb,"ring_device"), sound_devices,
- linphone_core_get_ringer_device(lc),CAP_PLAYBACK);
- linphone_gtk_fill_combo_box(linphone_gtk_get_widget(pb,"capture_device"), sound_devices,
- linphone_core_get_capture_device(lc), CAP_CAPTURE);
-}
-
-void linphone_gtk_fill_webcams(GtkWidget *pb){
-#ifdef VIDEO_ENABLED
- LinphoneCore *lc=linphone_gtk_get_core();
- linphone_gtk_fill_combo_box(linphone_gtk_get_widget(pb,"webcams"),linphone_core_get_video_devices(lc),
- linphone_core_get_video_device(lc),CAP_IGNORE);
-#endif
-}
-
-void linphone_gtk_fill_video_renderers(GtkWidget *pb){
-#ifdef VIDEO_ENABLED /* video_stream_get_default_video_renderer requires video enabled */
- LinphoneCore *lc=linphone_gtk_get_core();
- MSFactory *factory = linphone_core_get_ms_factory(lc);
- GtkWidget *combo=linphone_gtk_get_widget(pb,"renderers");
- bctbx_list_t *l=ms_factory_lookup_filter_by_interface(factory, MSFilterVideoDisplayInterface);
- bctbx_list_t *elem;
- int i;
- int active=-1;
- const char *current_renderer=linphone_core_get_video_display_filter(lc);
- GtkListStore *store;
- GtkCellRenderer *renderer=gtk_cell_renderer_text_new();
- GtkTreeModel *model=GTK_TREE_MODEL(store=gtk_list_store_new(2,G_TYPE_STRING,G_TYPE_STRING));
-
- if (current_renderer==NULL) current_renderer=video_stream_get_default_video_renderer();
-
- gtk_combo_box_set_model(GTK_COMBO_BOX(combo),model);
- gtk_cell_layout_clear(GTK_CELL_LAYOUT(combo));
- gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo),renderer,TRUE);
- gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo),renderer,"text",1,NULL);
-
- for(i=0,elem=l;elem!=NULL && i<4 ;elem=elem->next){
- MSFilterDesc *desc=(MSFilterDesc *)elem->data;
- GtkTreeIter iter;
-
- /* do not offer the user to select combo 'decoding/rendering' filter */
- if (desc->enc_fmt != NULL || (desc->flags & MS_FILTER_IS_ENABLED) == 0)
- continue;
-
- gtk_list_store_append(store,&iter);
- gtk_list_store_set(store,&iter,0,desc->name,1,desc->text,-1);
- if (current_renderer && strcmp(current_renderer,desc->name)==0)
- active=i;
-
- i++;
- }
- bctbx_list_free(l);
- if (active!=-1) gtk_combo_box_set_active(GTK_COMBO_BOX(combo),active);
-#endif
-}
-
-void linphone_gtk_fill_video_presets(GtkWidget *pb) {
- GtkComboBox *combo = GTK_COMBO_BOX(linphone_gtk_get_widget(pb, "video_preset"));
- const char *preset = linphone_core_get_video_preset(linphone_gtk_get_core());
- if (preset == NULL) {
- gtk_combo_box_set_active(combo, -1);
- gtk_combo_box_set_active(combo, 0);
- } else {
- gboolean valid;
- GtkTreeIter iter;
- gchar *str_data;
- GtkTreeModel *model = gtk_combo_box_get_model(combo);
- valid = gtk_tree_model_get_iter_first(model, &iter);
- while (valid) {
- gtk_tree_model_get(model, &iter, 0, &str_data, -1);
- if (g_strcmp0(preset, str_data) == 0) {
- gtk_combo_box_set_active_iter(combo, &iter);
- break;
- }
- valid = gtk_tree_model_iter_next(model, &iter);
- }
- }
-}
-
-typedef struct {
- guint timeout_id;
- LCSipTransports tp;
-}PortConfigCtx;
-
-static void port_config_free(PortConfigCtx *ctx){
- g_free(ctx);
-}
-
-static gboolean apply_transports(PortConfigCtx *ctx){
- GtkWidget *mw=linphone_gtk_get_main_window();
- LCSipTransports tp;
- LinphoneCore *lc=linphone_gtk_get_core();
- linphone_core_get_sip_transports(lc,&tp);
- tp.udp_port=ctx->tp.udp_port;
- tp.tcp_port=ctx->tp.tcp_port;
- linphone_core_set_sip_transports(lc,&tp);
- g_object_set_data(G_OBJECT(mw),"port_config",NULL);
- return FALSE;
-}
-
-static PortConfigCtx* get_port_config(void) {
- GtkWidget *mw=linphone_gtk_get_main_window();
- PortConfigCtx *cfg=(PortConfigCtx*)g_object_get_data(G_OBJECT(mw),"port_config");
- if (cfg==NULL){
- cfg=g_new0(PortConfigCtx,1);
- g_object_set_data_full(G_OBJECT(mw),"port_config",cfg,(GDestroyNotify)port_config_free);
- }
- if (cfg->timeout_id!=0) {
- g_source_remove(cfg->timeout_id);
- }
- cfg->timeout_id=g_timeout_add_seconds(2,(GSourceFunc)apply_transports,cfg);
- return cfg;
-}
-
-static void transport_changed(GtkWidget *parameters){
- PortConfigCtx *cfg = get_port_config();
-
- GtkWidget *udp_random_port=linphone_gtk_get_widget(parameters,"random_udp_port");
- GtkWidget *tcp_random_port=linphone_gtk_get_widget(parameters,"random_tcp_port");
-
- GtkWidget *sip_udp_port=linphone_gtk_get_widget(parameters,"sip_udp_port");
- GtkWidget *sip_tcp_port=linphone_gtk_get_widget(parameters,"sip_tcp_port");
-
- gboolean udp_is_disabled=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(parameters,"disabled_udp_port")));
- gboolean tcp_is_disabled=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(parameters,"disabled_tcp_port")));
-
- gboolean udp_is_random=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(udp_random_port));
- gboolean tcp_is_random=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(tcp_random_port));
-
- int udp_port = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(sip_udp_port));
- int tcp_port = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(sip_tcp_port));
-
-
- gtk_widget_set_sensitive(udp_random_port, !udp_is_disabled);
- gtk_widget_set_sensitive(tcp_random_port, !tcp_is_disabled);
- gtk_widget_set_sensitive(sip_udp_port, !udp_is_disabled && !udp_is_random);
- gtk_widget_set_sensitive(sip_tcp_port, !tcp_is_disabled && !tcp_is_random);
-
- cfg->tp.udp_port=udp_is_disabled?0:udp_is_random?-1:udp_port;
- cfg->tp.tcp_port=tcp_is_disabled?0:tcp_is_random?-1:tcp_port;
-}
-
-void linphone_gtk_disabled_udp_port_toggle(GtkCheckButton *button){
- GtkWidget *parameters = gtk_widget_get_toplevel((GtkWidget*)button);
- transport_changed(parameters);
-}
-
-void linphone_gtk_random_udp_port_toggle(GtkCheckButton *button){
- GtkWidget *parameters = gtk_widget_get_toplevel((GtkWidget*)button);
- transport_changed(parameters);
-}
-
-void linphone_gtk_udp_port_value_changed(GtkSpinButton *button){
- GtkWidget *parameters = gtk_widget_get_toplevel((GtkWidget*)button);
- transport_changed(parameters);
-}
-
-void linphone_gtk_disabled_tcp_port_toggle(GtkCheckButton *button){
- GtkWidget *parameters = gtk_widget_get_toplevel((GtkWidget*)button);
- transport_changed(parameters);
-}
-
-void linphone_gtk_random_tcp_port_toggle(GtkCheckButton *button){
- GtkWidget *parameters = gtk_widget_get_toplevel((GtkWidget*)button);
- transport_changed(parameters);
-}
-
-void linphone_gtk_tcp_port_value_changed(GtkSpinButton *button){
- GtkWidget *parameters = gtk_widget_get_toplevel((GtkWidget*)button);
- transport_changed(parameters);
-}
-
-void linphone_gtk_show_parameters(void){
- GtkWidget *mw=linphone_gtk_get_main_window();
- GtkWidget *pb=(GtkWidget*)g_object_get_data(G_OBJECT(mw),"parameters");
- LinphoneCore *lc=linphone_gtk_get_core();
- const char *tmp;
- LinphoneAddress *contact;
- LinphoneFirewallPolicy pol;
- GtkWidget *audio_codec_list;
- GtkWidget *video_codec_list;
- int mtu;
- int ui_advanced;
- LCSipTransports tr;
- int min_port = 0, max_port = 0;
-
- if (pb==NULL) {
- pb=linphone_gtk_create_window("parameters", linphone_gtk_get_main_window());
- g_object_set_data(G_OBJECT(mw),"parameters",pb);
- }else {
- gtk_widget_show(pb);
- return;
- }
- audio_codec_list=linphone_gtk_get_widget(pb,"audio_codec_list");
- video_codec_list=linphone_gtk_get_widget(pb,"video_codec_list");
-
- /* NETWORK CONFIG */
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb,"ipv6_enabled")),
- linphone_core_ipv6_enabled(lc));
- linphone_core_get_sip_transports(lc,&tr);
-
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb,"disabled_udp_port")), tr.udp_port==0);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb,"disabled_tcp_port")), tr.tcp_port==0);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb,"random_udp_port")), tr.udp_port==-1);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb,"random_tcp_port")), tr.tcp_port==-1);
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb,"sip_udp_port")), tr.udp_port);
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb,"sip_tcp_port")), tr.tcp_port);
-
- linphone_core_get_audio_port_range(lc, &min_port, &max_port);
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb, "audio_min_rtp_port")), min_port);
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb, "audio_max_rtp_port")), max_port);
- if (min_port == max_port) {
- gtk_widget_set_sensitive(GTK_WIDGET(linphone_gtk_get_widget(pb, "audio_max_rtp_port")), FALSE);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb, "fixed_audio_port")), TRUE);
- }
- linphone_core_get_video_port_range(lc, &min_port, &max_port);
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb, "video_min_rtp_port")), min_port);
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb, "video_max_rtp_port")), max_port);
- if (min_port == max_port) {
- gtk_widget_set_sensitive(GTK_WIDGET(linphone_gtk_get_widget(pb, "video_max_rtp_port")), FALSE);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb, "fixed_video_port")), TRUE);
- }
-
- linphone_gtk_show_media_encryption(pb);
-
- tmp=linphone_core_get_nat_address(lc);
- if (tmp) gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(pb,"nat_address")),tmp);
- tmp=linphone_core_get_stun_server(lc);
- if (tmp) gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(pb,"stun_server")),tmp);
- pol=linphone_core_get_firewall_policy(lc);
- switch(pol){
- case LinphonePolicyNoFirewall:
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb,"no_nat")),TRUE);
- break;
- case LinphonePolicyUseNatAddress:
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb,"use_nat_address")),TRUE);
- break;
- case LinphonePolicyUseStun:
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb,"use_stun")),TRUE);
- break;
- case LinphonePolicyUseIce:
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb,"use_ice")),TRUE);
- break;
- case LinphonePolicyUseUpnp:
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb,"use_upnp")),TRUE);
- break;
- }
- if(!linphone_core_upnp_available()) {
- gtk_widget_hide(linphone_gtk_get_widget(pb,"use_upnp"));
- }
- gtk_widget_hide(linphone_gtk_get_widget(pb, "use_nat_address"));
- gtk_widget_hide(linphone_gtk_get_widget(pb, "nat_address"));
- gtk_widget_hide(linphone_gtk_get_widget(pb, "nat_address_label"));
-
- mtu=linphone_core_get_mtu(lc);
- if (mtu<=0){
- gtk_widget_set_sensitive(linphone_gtk_get_widget(pb,"mtu"),FALSE);
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb,"mtu")),1500);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb,"mtu_set")),FALSE);
- }else{
- gtk_widget_set_sensitive(linphone_gtk_get_widget(pb,"mtu"),TRUE);
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb,"mtu")),mtu);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb,"mtu_set")),TRUE);
- }
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb,"dtmf_sipinfo")),
- linphone_core_get_use_info_for_dtmf(lc));
- /* MUTIMEDIA CONFIG */
- linphone_gtk_fill_soundcards(pb);
- linphone_gtk_fill_webcams(pb);
- linphone_gtk_fill_video_renderers(pb);
- linphone_gtk_fill_video_presets(pb);
- linphone_gtk_fill_video_sizes(linphone_gtk_get_widget(pb,"video_size"));
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb,"video_framerate")),
- linphone_core_get_preferred_framerate(lc));
-#ifndef VIDEO_ENABLED
- gtk_widget_set_visible(linphone_gtk_get_widget(pb, "camera_preview_button"),FALSE);
-#endif
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb,"echo_cancelation")),
- linphone_core_echo_cancellation_enabled(lc));
-
- gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(linphone_gtk_get_widget(pb,"ring_chooser")),
- linphone_core_get_ring(lc));
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb,"adaptive_rate_control")),
- linphone_core_adaptive_rate_control_enabled(lc));
- /* SIP CONFIG */
- contact=linphone_core_get_primary_contact_parsed(lc);
- if (contact){
- if (linphone_address_get_display_name(contact)) {
- const char *dn=linphone_address_get_display_name(contact);
- gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(pb,"displayname")),dn);
- }
- if (linphone_address_get_username(contact))
- gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(pb,"username")),linphone_address_get_username(contact));
- linphone_address_unref(contact);
- }
-#ifdef BUILD_WIZARD
- gtk_widget_show(linphone_gtk_get_widget(pb,"wizard"));
-#else
- gtk_widget_hide(linphone_gtk_get_widget(pb,"wizard"));
-#endif
- linphone_gtk_show_sip_accounts(pb);
- /* CODECS CONFIG */
- linphone_gtk_init_codec_list(GTK_TREE_VIEW(audio_codec_list));
- linphone_gtk_init_codec_list(GTK_TREE_VIEW(video_codec_list));
- linphone_gtk_draw_codec_list(GTK_TREE_VIEW(audio_codec_list), 0);
- linphone_gtk_draw_codec_list(GTK_TREE_VIEW(video_codec_list), 1);
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb,"download_bw")),
- linphone_core_get_download_bandwidth(lc));
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb,"upload_bw")),
- linphone_core_get_upload_bandwidth(lc));
-
- /* CALL PARAMS CONFIG */
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb, "auto_answer_checkbox")), linphone_gtk_auto_answer_enabled());
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb, "auto_answer_delay_spinbutton")), linphone_gtk_get_ui_config_int("auto_answer_delay", 2000));
-
- /* UI CONFIG */
- linphone_gtk_fill_langs(pb);
- ui_advanced = linphone_gtk_get_ui_config_int("advanced_ui", 1);
- linphone_gtk_set_ui_config_int("advanced_ui", ui_advanced);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb,"ui_level")),
- ui_advanced);
- linphone_gtk_ui_level_adapt(pb);
-
- if (linphone_core_tunnel_available()){
- gtk_widget_set_visible(GTK_WIDGET(linphone_gtk_get_widget(pb,"tunnel_edit_button")), TRUE);
- gtk_widget_set_visible(GTK_WIDGET(linphone_gtk_get_widget(pb,"tunnel_label")), TRUE);
- }
-
- /* LDAP CONFIG */
- if( linphone_gtk_is_ldap_supported() ) { // if LDAP provider is available
- linphone_gtk_ldap_display(pb);
- } else {
- // hide the LDAP tab
- GtkNotebook* notebook = GTK_NOTEBOOK(linphone_gtk_get_widget(pb, "notebook1"));
- gtk_notebook_remove_page(notebook,5);
- }
-
- gtk_widget_show(pb);
-}
-
-
-void linphone_gtk_fixed_audio_port_toggle(void) {
- GtkWidget *mw = linphone_gtk_get_main_window();
- GtkWidget *pb = (GtkWidget *) g_object_get_data(G_OBJECT(mw), "parameters");
- gboolean fixed = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb, "fixed_audio_port")));
- gint min_port = (gint)gtk_spin_button_get_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb, "audio_min_rtp_port")));
- gint max_port = (gint)gtk_spin_button_get_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb, "audio_max_rtp_port")));
- gtk_widget_set_sensitive(GTK_WIDGET(linphone_gtk_get_widget(pb, "audio_max_rtp_port")), !fixed);
- if (fixed) {
- linphone_core_set_audio_port(linphone_gtk_get_core(), min_port);
- } else {
- linphone_core_set_audio_port_range(linphone_gtk_get_core(), min_port, max_port);
- }
-}
-
-
-void linphone_gtk_fixed_video_port_toggle(void) {
- GtkWidget *mw = linphone_gtk_get_main_window();
- GtkWidget *pb = (GtkWidget *) g_object_get_data(G_OBJECT(mw), "parameters");
- gboolean fixed = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb, "fixed_video_port")));
- gint min_port = (gint)gtk_spin_button_get_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb, "video_min_rtp_port")));
- gint max_port = (gint)gtk_spin_button_get_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb, "video_max_rtp_port")));
- gtk_widget_set_sensitive(GTK_WIDGET(linphone_gtk_get_widget(pb, "video_max_rtp_port")), !fixed);
- if (fixed) {
- linphone_core_set_video_port(linphone_gtk_get_core(), min_port);
- } else {
- linphone_core_set_video_port_range(linphone_gtk_get_core(), min_port, max_port);
- }
-}
-
-
-void linphone_gtk_edit_tunnel_closed(GtkWidget *button){
- GtkWidget *pb=gtk_widget_get_toplevel(button);
- gtk_widget_destroy(pb);
-}
-
-void linphone_gtk_edit_tunnel(GtkButton *button){
- GtkWidget *w=linphone_gtk_create_window("tunnel_config", gtk_widget_get_toplevel(GTK_WIDGET(button)));
- LinphoneCore *lc=linphone_gtk_get_core();
- LinphoneTunnel *tunnel=linphone_core_get_tunnel(lc);
- const bctbx_list_t *configs;
- const char *host = NULL;
- int port=0;
-
- if (!tunnel) return;
-
- configs = linphone_tunnel_get_servers(tunnel);
- if(configs != NULL) {
- LinphoneTunnelConfig *ltc = (LinphoneTunnelConfig *)configs->data;
- host = linphone_tunnel_config_get_host(ltc);
- port = linphone_tunnel_config_get_port(ltc);
- }
-
- gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(w,"host")),host);
- if (port==0) port=443;
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(w,"port")), port);
-
- switch(linphone_tunnel_get_mode(tunnel)){
- case LinphoneTunnelModeDisable:
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(w,"radio_disable")),1);
- break;
- case LinphoneTunnelModeEnable:
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(w,"radio_enable")),1);
- break;
- case LinphoneTunnelModeAuto:
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(w,"tunnel_autodetect")),1);
- break;
- }
- {
- const char *proxy=NULL,*username=NULL,*password=NULL;
- port=0;
- linphone_tunnel_get_http_proxy(tunnel,&proxy,&port,&username,&password);
- if (proxy)
- gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(w,"http_host")),proxy);
- if (port>0)
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(w,"http_port")), port);
- if (username)
- gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(w,"username")),username);
- if (password)
- gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(w,"password")),password);
- }
-
- g_object_weak_ref(G_OBJECT(w),(GWeakNotify)linphone_gtk_edit_tunnel_closed,w);
- gtk_widget_show(w);
-}
-
-void linphone_gtk_tunnel_ok(GtkButton *button){
- GtkWidget *w=gtk_widget_get_toplevel(GTK_WIDGET(button));
- LinphoneCore *lc=linphone_gtk_get_core();
- LinphoneTunnel *tunnel=linphone_core_get_tunnel(lc);
- LinphoneTunnelConfig *config=linphone_tunnel_config_new();
-
- gint port = (gint)gtk_spin_button_get_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(w,"port")));
- gboolean enabled=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(w,"radio_enable")));
- gboolean autodetect=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(w,"tunnel_autodetect")));
- const char *host=gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(w,"host")));
- const char *http_host=gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(w,"http_host")));
- gint http_port = (gint)gtk_spin_button_get_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(w,"http_port")));
- const char *username=gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(w,"username")));
- const char *password=gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(w,"password")));
- LinphoneTunnelMode mode = LinphoneTunnelModeDisable;
-
- if (tunnel==NULL) return;
- if (host && *host=='\0') host=NULL;
- if (http_port==0) http_port=8080;
- linphone_tunnel_clean_servers(tunnel);
- linphone_tunnel_config_set_host(config, host);
- linphone_tunnel_config_set_port(config, port);
- linphone_tunnel_add_server(tunnel, config);
-
- if (enabled){
- mode = LinphoneTunnelModeEnable;
- }else if (autodetect){
- mode = LinphoneTunnelModeAuto;
- }
- linphone_tunnel_set_mode(tunnel, mode);
- linphone_tunnel_set_http_proxy(tunnel,http_host,http_port,username,password);
-
- gtk_widget_destroy(w);
-}
-
-
-void linphone_gtk_tunnel_cancel(GtkButton *button){
-
-}
-
-static void show_dscp(GtkWidget *entry, int val){
- char tmp[20];
- snprintf(tmp,sizeof(tmp),"0x%x",val);
- gtk_entry_set_text(GTK_ENTRY(entry),tmp);
-
-}
-
-static int read_dscp(GtkWidget *entry){
- const char *val=gtk_entry_get_text(GTK_ENTRY(entry));
- const char *begin;
- int ret=0;
- if (val==NULL || val[0]=='\0') return 0;
- /*skip potential 0x*/
- begin=strstr(val,"0x");
- if (begin) begin+=2;
- else begin=val;
- if (sscanf(begin,"%x",&ret)==1)
- return ret;
- return -1;
-}
-
-void linphone_gtk_dscp_edit(void){
- LinphoneCore *lc=linphone_gtk_get_core();
- GtkWidget *widget=linphone_gtk_create_window("dscp_settings", linphone_gtk_get_main_window());
- show_dscp(linphone_gtk_get_widget(widget,"sip_dscp"),
- linphone_core_get_sip_dscp(lc));
- show_dscp(linphone_gtk_get_widget(widget,"audio_dscp"),
- linphone_core_get_audio_dscp(lc));
- show_dscp(linphone_gtk_get_widget(widget,"video_dscp"),
- linphone_core_get_video_dscp(lc));
- gtk_widget_show(widget);
-}
-
-void linphone_gtk_dscp_edit_response(GtkWidget *dialog, guint response_id){
- LinphoneCore *lc=linphone_gtk_get_core();
- switch(response_id){
- case GTK_RESPONSE_OK:
- linphone_core_set_sip_dscp(lc,
- read_dscp(linphone_gtk_get_widget(dialog,"sip_dscp")));
- linphone_core_set_audio_dscp(lc,
- read_dscp(linphone_gtk_get_widget(dialog,"audio_dscp")));
- linphone_core_set_video_dscp(lc,
- read_dscp(linphone_gtk_get_widget(dialog,"video_dscp")));
-
- break;
- default:
- break;
- }
- gtk_widget_destroy(dialog);
-}
-
-void linphone_gtk_enable_auto_answer(GtkToggleButton *checkbox, gpointer user_data) {
- gboolean auto_answer_enabled = gtk_toggle_button_get_active(checkbox);
- linphone_gtk_set_ui_config_int("auto_answer", auto_answer_enabled ? 1 : 0);
-}
-
-gboolean linphone_gtk_auto_answer_enabled(void) {
- return (gboolean)linphone_gtk_get_ui_config_int("auto_answer", 0);
-}
-
-void linphone_gtk_auto_answer_delay_changed(GtkSpinButton *spinbutton, gpointer user_data) {
- int delay = (int)gtk_spin_button_get_value(spinbutton);
- linphone_gtk_set_ui_config_int("auto_answer_delay", delay);
-}
-
-void linphone_gtk_notebook_current_page_changed (GtkNotebook *notebook, GtkWidget *page, guint page_num, gpointer user_data) {
-#ifndef HAVE_LIBUDEV_H
- if (page_num == 1) {
- // Multimedia settings - we reload audio and video devices to detect
- // hot-plugged devices
- g_message("Opened multimedia page... reloading audio and video devices!");
- linphone_gtk_reload_sound_devices();
- linphone_gtk_reload_video_devices();
- }
-#endif
-}
diff --git a/gtk/provisioning-fetch.ui b/gtk/provisioning-fetch.ui
deleted file mode 100644
index e2d6a0203..000000000
--- a/gtk/provisioning-fetch.ui
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
-
-
- False
- 5
- Configuring...
- dialog
- True
- Please wait while fetching configuration from server...
-
-
- True
- False
- 2
-
-
- True
- False
- end
-
-
-
-
-
-
-
-
- False
- True
- end
- 0
-
-
-
-
- True
- False
-
-
-
-
-
- True
- True
- 2
-
-
-
-
-
-
diff --git a/gtk/regex.h b/gtk/regex.h
deleted file mode 100644
index f5b41d40d..000000000
--- a/gtk/regex.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-linphone, gtk-glade interface.
-Copyright (C) 2015 Belledonne Communications
-
-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 2
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-/*
- * Regex matching with any URI that respects the RFC 3986
- */
-#define BC_REGEX_URI_PCT_ENCODED "(%[[:xdigit:]]{2})"
-#define BC_REGEX_URI_SUB_DELIMS "[!$&'()*+,;=]"
-#define BC_REGEX_URI_UNRESERVED "[[:alnum:]\\-._~]"
-#define BC_REGEX_URI_PCHAR "(" BC_REGEX_URI_UNRESERVED "|" BC_REGEX_URI_PCT_ENCODED "|" BC_REGEX_URI_SUB_DELIMS "|" "[:@]" ")"
-#define BC_REGEX_URI_SCHEME "(" "[[:alpha:]][[:alnum:]+\\-.]*" ")"
-#define BC_REGEX_URI_USERINFO "(" "(" BC_REGEX_URI_UNRESERVED "|" BC_REGEX_URI_PCT_ENCODED "|" BC_REGEX_URI_SUB_DELIMS "|" ":" ")*" ")"
-#define BC_REGEX_URI_HOST "(" "(" BC_REGEX_URI_UNRESERVED "|" BC_REGEX_URI_PCT_ENCODED "|" BC_REGEX_URI_SUB_DELIMS ")*" ")"
-#define BC_REGEX_URI_PORT "(" "[\\d]*" ")"
-#define BC_REGEX_URI_AUTHORITY "(" "(" BC_REGEX_URI_USERINFO "@" ")?" BC_REGEX_URI_HOST "(" ":" BC_REGEX_URI_PORT ")?" ")"
-#define BC_REGEX_URI_SEGMENT "(" BC_REGEX_URI_PCHAR "*" ")"
-#define BC_REGEX_URI_SEGMENT_NZ "(" BC_REGEX_URI_PCHAR "+" ")"
-#define BC_REGEX_URI_PATH_ABEMPTY "(" "(" "/" BC_REGEX_URI_SEGMENT ")*" ")"
-#define BC_REGEX_URI_PATH_ABSOLUTE "(" "/" "(" BC_REGEX_URI_SEGMENT_NZ "(" "/" BC_REGEX_URI_SEGMENT ")*" ")?" ")"
-#define BC_REGEX_URI_PATH_ROOTLESS "(" BC_REGEX_URI_SEGMENT_NZ "(" "/" BC_REGEX_URI_SEGMENT ")*" ")"
-#define BC_REGEX_URI_HIER_PART "(" "//" BC_REGEX_URI_AUTHORITY BC_REGEX_URI_PATH_ABEMPTY "|" BC_REGEX_URI_PATH_ABSOLUTE "|" BC_REGEX_URI_PATH_ROOTLESS ")"
-#define BC_REGEX_URI_QUERY "(" "(" BC_REGEX_URI_PCHAR "|" "[/?]" ")*" ")"
-#define BC_REGEX_URI_FRAGMENT "(" "(" BC_REGEX_URI_PCHAR "|" "[/?]" ")*" ")"
-#define BC_REGEX_URI "(" BC_REGEX_URI_SCHEME ":" BC_REGEX_URI_HIER_PART "(" "\\?" BC_REGEX_URI_QUERY ")?" "(" "#" BC_REGEX_URI_FRAGMENT ")?" ")"
-
-/*
- * Regex matching with any domain name (RFC 1034)
- */
-#define BC_REGEX_DOMAIN_LDH "[[:alnum:]-]"
-#define BC_REGEX_DOMAIN_LABEL "(" "[[:alpha:]]" "(" BC_REGEX_DOMAIN_LDH "*" "[[:alnum:]]" ")?" ")"
-#define BC_REGEX_DOMAIN "(" BC_REGEX_DOMAIN_LABEL "(" "\\." BC_REGEX_DOMAIN_LABEL ")*" ")"
-
-/*
- * Regex matching with email addresses (RFC 5322)
- */
-#define BC_REGEX_EMAIL_ATEXT "[[:alnum:]!#$%&'*+\\-/=?\\^_`{}|~]"
-#define BC_REGEX_EMAIL_DOT_ATOM_TEXT "(" BC_REGEX_EMAIL_ATEXT "+" "(" "." BC_REGEX_EMAIL_ATEXT "+" ")*" ")"
-#define BC_REGEX_EMAIL_LOCAL_PART BC_REGEX_EMAIL_DOT_ATOM_TEXT
-#define BC_REGEX_EMAIL_DTEXT_NO_OBS "[!-Z\\^-~]"
-#define BC_REGEX_EMAIL_DOMAIN "(" BC_REGEX_EMAIL_DOT_ATOM_TEXT "|" "\\[" BC_REGEX_EMAIL_DTEXT_NO_OBS "*" "\\]" ")"
-#define BC_REGEX_EMAIL_ADDR_SPEC "(" BC_REGEX_EMAIL_LOCAL_PART "@" BC_REGEX_EMAIL_DOMAIN ")"
-
-/*
- * Regex matching with email addresses but with more constraints than RFC 5322.
- * The additionnal constraints are the folowings:
- * + the domain part is a domain name as describe in RFC 1034
- * + the domain part must have two label at least
- * + the last label of the domain part must have two letter (without digit and hyphen) at least.
- */
-#define BC_REGEX_RESTRICTIVE_EMAIL_TLD "(" "[[:alpha:]]" BC_REGEX_DOMAIN_LDH "*" "[[:alnum:]]" ")"
-#define BC_REGEX_RESTRICTIVE_EMAIL_ADDR "(" BC_REGEX_EMAIL_LOCAL_PART "@" "(" BC_REGEX_DOMAIN_LABEL "\\." ")+" BC_REGEX_RESTRICTIVE_EMAIL_TLD ")"
diff --git a/gtk/setup_wizard.ui b/gtk/setup_wizard.ui
deleted file mode 100644
index 95cdcc4e2..000000000
--- a/gtk/setup_wizard.ui
+++ /dev/null
@@ -1,736 +0,0 @@
-
-
-
-
-
- False
- 8
- SIP account configuration assistant
- False
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- True
- False
- Welcome!
-This assistant will help you to use a SIP account for your calls.
-
-
- intro
- Welcome to the account setup assistant
- True
-
-
-
-
- True
- False
- 20
- 30
- 30
-
-
- True
- False
- True
-
-
- Create an account on linphone.org
- True
- True
- False
- True
- True
-
-
- False
- True
- 0
-
-
-
-
- I have already a linphone.org account and I just want to use it
- True
- True
- False
- True
- radio_create_account
-
-
- False
- True
- 1
-
-
-
-
- I have already a sip account and I just want to use it
- True
- True
- False
- True
- radio_create_account
-
-
- False
- True
- 2
-
-
-
-
- I want to specify a remote configuration URI
- True
- True
- False
- True
- radio_create_account
-
-
- False
- True
- 3
-
-
-
-
-
-
- Account setup assistant
- True
-
-
-
-
- True
- False
- 0
- 0
- 0.5
- 30
- 10
- 30
-
-
- True
- False
- 6
- 2
- 8
- 4
-
-
- True
- False
- 8
- Enter your account information
-
-
- 2
- GTK_FILL
-
-
-
-
- True
- False
- 1
- Username*
-
-
- 1
- 2
- GTK_FILL
- GTK_FILL
-
-
-
-
- True
- True
- ●
- True
- False
- False
- True
- True
-
-
-
- 1
- 2
- 1
- 2
- GTK_FILL
-
-
-
-
- True
- False
- 1
- Password*
-
-
- 2
- 3
- GTK_FILL
- GTK_FILL
-
-
-
-
- True
- True
- False
- ●
- True
- False
- False
- True
- True
-
-
-
- 1
- 2
- 2
- 3
- GTK_FILL
-
-
-
-
- True
- False
- 1
- Domain*
-
-
- 3
- 4
- GTK_FILL
- GTK_FILL
-
-
-
-
- True
- True
- ●
- True
- False
- False
- True
- True
-
-
-
- 1
- 2
- 3
- 4
- GTK_FILL
-
-
-
-
- True
- False
- 1
- Proxy
-
-
- 4
- 5
- GTK_FILL
- GTK_FILL
-
-
-
-
- True
- True
- ●
- True
- False
- False
- True
- True
-
-
-
- 1
- 2
- 4
- 5
- GTK_FILL
- GTK_FILL
-
-
-
-
- True
- False
-
-
-
-
-
- 2
- 5
- 6
- GTK_FILL
-
-
-
-
-
-
- confirm
- Configure your account (step 1/1)
-
-
-
-
- True
- False
- 0
- 0.5
- 30
- 10
- 30
- 30
-
-
- True
- False
- 8
- 3
- 2
- 8
- 4
-
-
- True
- False
- 8
- Enter your linphone.org username
-
-
- 2
- GTK_FILL
-
-
-
-
- True
- False
- 1
- Username:
-
-
- 1
- 2
- GTK_FILL
- GTK_FILL
-
-
-
-
- True
- True
- ●
- True
- False
- False
- True
- True
-
-
-
- 1
- 2
- 1
- 2
- GTK_FILL
-
-
-
-
- True
- False
- 1
- Password:
-
-
- 2
- 3
- GTK_FILL
- GTK_FILL
-
-
-
-
- True
- True
- False
- ●
- True
- False
- False
- True
- True
-
-
- 1
- 2
- 2
- 3
- GTK_FILL
-
-
-
-
-
-
- confirm
- Enter your sip username (step 1/1)
-
-
-
-
- True
- False
- 0
- 0.5
- 10
- 10
- 30
- 30
-
-
- True
- False
- 8
- 7
- 3
- 8
- 4
-
-
- True
- False
- (*) Required fields
-
-
- 3
- 8
-
-
-
-
- True
- False
- 1
- Email: (*)
-
-
- 1
- 2
- GTK_FILL
- GTK_FILL
-
-
-
-
- True
- True
- ●
- True
- False
- False
- True
- True
-
-
-
- 1
- 2
- 1
- 2
- GTK_FILL
-
-
-
-
- True
- False
- gtk-no
- 3
-
-
- 2
- 3
- 1
- 2
- GTK_FILL
- GTK_FILL
-
-
-
-
- True
- False
- 1
- Username: (*)
-
-
- 2
- 3
- GTK_FILL
- GTK_FILL
-
-
-
-
- True
- True
- ●
- True
- False
- False
- True
- True
-
-
-
- 1
- 2
- 2
- 3
- GTK_FILL
-
-
-
-
- True
- False
- gtk-no
- 3
-
-
- 2
- 3
- 2
- 3
-
-
-
-
-
-
- True
- False
- 1
- Password: (*)
-
-
- 3
- 4
- GTK_FILL
- GTK_FILL
-
-
-
-
- True
- True
- False
- ●
- True
- False
- False
- True
- True
-
-
-
- 1
- 2
- 3
- 4
- GTK_FILL
-
-
-
-
- True
- False
- 1
- Confirm your password: (*)
-
-
- 4
- 5
- GTK_FILL
- GTK_FILL
-
-
-
-
- True
- True
- False
- ●
- True
- False
- False
- True
- True
-
-
-
- 1
- 2
- 4
- 5
- GTK_FILL
-
-
-
-
- True
- False
- gtk-no
- 3
-
-
- 2
- 3
- 3
- 5
-
-
-
-
-
-
- True
- False
-
-
-
-
-
- 3
- 5
- 6
-
-
-
-
-
-
-
- confirm
- Enter account information (step 1/2)
-
-
-
-
- True
- False
- Your account is being created, please wait.
-
-
- progress
- Account creation in progress
-
-
-
-
- True
- False
- Please validate your account by clicking on the link we just sent you by email.
-Then come back here and press Next button.
-
-
- Validation (step 2/2)
- True
-
-
-
-
- True
- False
- Checking if your account is been validated, please wait.
-
-
- progress
- Account validation check in progress
- True
-
-
-
-
- True
- False
- Error, account not validated, username already used or server unreachable.
-Please go back and try again.
-
-
- Error
-
-
-
-
- True
- False
- Thank you. Your account is now configured and ready for use.
-
-
- summary
- Terminating
- True
-
-
-
-
diff --git a/gtk/setupwizard.c b/gtk/setupwizard.c
deleted file mode 100644
index 4ea81bac9..000000000
--- a/gtk/setupwizard.c
+++ /dev/null
@@ -1,360 +0,0 @@
-/*
-linphone, gtk-glade interface.
-Copyright (C) 2008 Simon MORLAT (simon.morlat@linphone.org)
-
-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 2
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include "linphone.h"
-#include "regex.h"
-#include
-#include
-
-static const int PASSWORD_MIN_SIZE = 6;
-static const int LOGIN_MIN_SIZE = 4;
-static GtkWidget *the_assistant = NULL;
-
-
-static LinphoneAccountCreator * linphone_gtk_assistant_get_creator(GtkWidget *w) {
- return (LinphoneAccountCreator *)g_object_get_data(G_OBJECT(w), "creator");
-}
-
-static void linphone_gtk_create_account_cb(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status, const char* resp) {
- GtkWidget *assistant = (GtkWidget *)linphone_account_creator_get_user_data(creator);
- if (status == LinphoneAccountCreatorStatusAccountCreated) {
- // Go to page_6_linphone_account_validation_wait
- gtk_assistant_set_current_page(GTK_ASSISTANT(assistant), 6);
- } else { // Error when attempting to create the account
- // Go to page_8_error
- gtk_assistant_set_current_page(GTK_ASSISTANT(assistant), 8);
- }
- gtk_assistant_commit(GTK_ASSISTANT(assistant));
-}
-
-static void create_account(GtkWidget *assistant) {
- LinphoneAccountCreator *creator = linphone_gtk_assistant_get_creator(assistant);
- linphone_account_creator_create_account(creator);
-}
-
-static void linphone_gtk_test_account_validation_cb(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status, const char* resp) {
- GtkWidget *assistant = (GtkWidget *)linphone_account_creator_get_user_data(creator);
- if (status == LinphoneAccountCreatorStatusAccountActivated) {
- // Go to page_9_finish
- gtk_assistant_set_current_page(GTK_ASSISTANT(assistant), 9);
- } else {
- // Go to page_8_error
- gtk_assistant_set_current_page(GTK_ASSISTANT(assistant), 8);
- }
-}
-
-static void check_account_validation(GtkWidget *assistant) {
- LinphoneAccountCreator *creator = linphone_gtk_assistant_get_creator(assistant);
- linphone_account_creator_is_account_activated(creator);
-}
-
-void linphone_gtk_assistant_closed(GtkWidget *w) {
- linphone_gtk_close_assistant();
-}
-
-void linphone_gtk_assistant_prepare(GtkWidget *assistant) {
- int pagenum = gtk_assistant_get_current_page(GTK_ASSISTANT(assistant));
-
- switch (pagenum) {
- case 5:
- create_account(assistant);
- break;
- case 7:
- check_account_validation(assistant);
- break;
- case 9:
- if (linphone_account_creator_configure(linphone_gtk_assistant_get_creator(assistant)) != NULL) {
- linphone_gtk_load_identities();
- }
- gtk_assistant_commit(GTK_ASSISTANT(assistant));
- break;
- default:
- break;
- }
-}
-
-static gint destroy_assistant(GtkWidget* w){
- gtk_widget_destroy(w);
- the_assistant = NULL;
- return FALSE;
-}
-
-static int linphone_gtk_assistant_forward(int curpage, gpointer data) {
- GtkWidget *w = GTK_WIDGET(data);
- LinphoneAccountCreator *creator = linphone_gtk_assistant_get_creator(w);
-
- switch (curpage) {
- case 0:
- curpage = 1; // Go to page_1_choice
- break;
- case 1:
- {
- GtkWidget *create_button = linphone_gtk_get_widget(w, "radio_create_account");
- GtkWidget *setup_linphone_account = linphone_gtk_get_widget(w, "radio_setup_lp_account");
- GtkWidget *setup_account = linphone_gtk_get_widget(w, "radio_setup_account");
- GtkWidget *config_uri = linphone_gtk_get_widget(w, "radio_config_uri");
-
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(create_button))) {
- curpage = 4; // Go to page_4_linphone_account_creation_configuration
- } else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(setup_linphone_account))) {
- curpage = 3; // Go to page_3_linphone_account_configuration
- } else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(setup_account))) {
- curpage = 2; // Go to page_2_external_account_configuration
- } else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(config_uri))) {
- /* Destroy the assistant and popup config-uri dialog */
- gtk_widget_hide(w);
- linphone_gtk_set_configuration_uri();
- curpage = 0;
- g_idle_add((GSourceFunc)destroy_assistant, w);
- }
- }
- break;
- case 2:
- {
- GtkEntry *username_entry = GTK_ENTRY(linphone_gtk_get_widget(w, "p2_entry_username"));
- GtkEntry *domain_entry = GTK_ENTRY(linphone_gtk_get_widget(w, "p2_entry_domain"));
- GtkEntry *proxy_entry = GTK_ENTRY(linphone_gtk_get_widget(w, "p2_entry_proxy"));
- GtkEntry *password_entry = GTK_ENTRY(linphone_gtk_get_widget(w, "p2_entry_password"));
- linphone_account_creator_set_username(creator, gtk_entry_get_text(username_entry));
- linphone_account_creator_set_domain(creator, gtk_entry_get_text(domain_entry));
- linphone_account_creator_set_route(creator, gtk_entry_get_text(proxy_entry));
- linphone_account_creator_set_password(creator, gtk_entry_get_text(password_entry));
- curpage = 9; // Go to page_9_finish
- break;
- }
- case 3:
- {
- GtkEntry *username_entry = GTK_ENTRY(linphone_gtk_get_widget(w, "p3_entry_username"));
- GtkEntry *password_entry = GTK_ENTRY(linphone_gtk_get_widget(w, "p3_entry_password"));
- linphone_account_creator_set_username(creator, gtk_entry_get_text(username_entry));
- linphone_account_creator_set_domain(creator, "sip.linphone.org");
- linphone_account_creator_set_route(creator, "sip.linphone.org");
- linphone_account_creator_set_password(creator, gtk_entry_get_text(password_entry));
- curpage = 9; // Go to page_9_finish
- break;
- }
- case 4:
- {
- GtkEntry *password_entry = GTK_ENTRY(linphone_gtk_get_widget(w, "p4_entry_password1"));
- GtkEntry *username_entry = GTK_ENTRY(linphone_gtk_get_widget(w, "p4_entry_username"));
- GtkEntry *email_entry = GTK_ENTRY(linphone_gtk_get_widget(w, "p4_entry_email"));
- //GtkToggleButton *newsletter = GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(w, "p4_check_newsletter"));
- linphone_account_creator_set_username(creator, gtk_entry_get_text(username_entry));
- linphone_account_creator_set_password(creator, gtk_entry_get_text(password_entry));
- linphone_account_creator_set_email(creator, gtk_entry_get_text(email_entry));
- //linphone_account_creator_enable_newsletter_subscription(creator, gtk_toggle_button_get_active(newsletter));
- curpage = 5; // Go to page_5_linphone_account_creation_in_progress
- break;
- }
- case 6:
- curpage = 7; // Go to page_7_linphone_account_validation_check_in_progress
- break;
- default:
- break;
- }
- return curpage;
-}
-
-static int external_account_configuration_complete(GtkWidget *page) {
- GtkWidget *assistant = gtk_widget_get_toplevel(page);
- GtkEntry* username = GTK_ENTRY(linphone_gtk_get_widget(assistant, "p2_entry_username"));
- GtkEntry* domain = GTK_ENTRY(linphone_gtk_get_widget(assistant, "p2_entry_domain"));
-
- if ((gtk_entry_get_text_length(username) > 0)
- && (gtk_entry_get_text_length(domain) > 0)
- && (g_regex_match_simple("^[a-zA-Z0-9+]+[a-zA-Z0-9.\\+\\-_]{2,}$", gtk_entry_get_text(username), 0, 0))
- && (g_regex_match_simple("^(sip:)?([a-zA-Z0-9\\+]+([\\.-][a-zA-Z0-9+]+)*)$", gtk_entry_get_text(domain), 0, 0))) {
- return 1;
- }
- return 0;
-}
-
-void linphone_gtk_external_account_configuration_changed(GtkEntry *entry) {
- GtkWidget *assistant = gtk_widget_get_toplevel(GTK_WIDGET(entry));
- gint current_page_num = gtk_assistant_get_current_page(GTK_ASSISTANT(assistant));
- GtkWidget *page = gtk_assistant_get_nth_page(GTK_ASSISTANT(assistant), current_page_num);
- gtk_assistant_set_page_complete(GTK_ASSISTANT(assistant), page, external_account_configuration_complete(page) > 0);
-}
-
-static bool_t check_username_validity(const char *username) {
- return username && g_regex_match_simple("^[a-zA-Z]+[a-zA-Z0-9.\\-_]{3,}$", username, 0, 0);
-}
-
-void linphone_gtk_account_configuration_changed(GtkEntry *entry, GtkAssistant *assistant) {
- gboolean complete = check_username_validity(gtk_entry_get_text(entry));
- GtkWidget *page = gtk_assistant_get_nth_page(assistant, gtk_assistant_get_current_page(assistant));
- gtk_assistant_set_page_complete(assistant, page, complete);
-}
-
-static gboolean linphone_account_creation_configuration_correct(GtkWidget *w) {
- gint is_username_available = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w), "is_username_available"));
- gint is_email_correct = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w), "is_email_correct"));
- gint is_password_correct = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w), "is_password_correct"));
- return (is_username_available && is_email_correct && is_password_correct);
-}
-
-static gboolean update_interface_with_username_availability(GtkWidget *page) {
- GtkWidget *assistant = gtk_widget_get_toplevel(page);
- GtkImage* isUsernameOk = GTK_IMAGE(linphone_gtk_get_widget(assistant, "p4_image_username_ok"));
- GtkLabel* usernameError = GTK_LABEL(linphone_gtk_get_widget(assistant, "p4_label_error"));
- int account_status = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(page), "is_username_used"));
-
- if (account_status == LinphoneAccountCreatorStatusAccountNotExist) {
- g_object_set_data(G_OBJECT(page), "is_username_available", GINT_TO_POINTER(1));
- gtk_image_set_from_stock(isUsernameOk, GTK_STOCK_OK, GTK_ICON_SIZE_LARGE_TOOLBAR);
- gtk_label_set_text(usernameError, "");
- } else if (account_status == LinphoneAccountCreatorStatusAccountExist) {
- gtk_label_set_text(usernameError, _("Username is already in use!"));
- g_object_set_data(G_OBJECT(page), "is_username_available", GINT_TO_POINTER(0));
- gtk_image_set_from_stock(isUsernameOk, GTK_STOCK_NO, GTK_ICON_SIZE_LARGE_TOOLBAR);
- } else {
- gtk_label_set_text(usernameError, _("Failed to check username availability. Please try again later."));
- g_object_set_data(G_OBJECT(page), "is_username_available", GINT_TO_POINTER(0));
- gtk_image_set_from_stock(isUsernameOk, GTK_STOCK_NO, GTK_ICON_SIZE_LARGE_TOOLBAR);
- }
- gtk_assistant_set_page_complete(GTK_ASSISTANT(assistant), page, linphone_account_creation_configuration_correct(page) > 0);
- return FALSE;
-}
-
-static void linphone_gtk_test_account_existence_cb(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status, const char* resp) {
- GtkWidget *assistant = (GtkWidget *)linphone_account_creator_get_user_data(creator);
- GtkWidget *page = gtk_assistant_get_nth_page(GTK_ASSISTANT(assistant), gtk_assistant_get_current_page(GTK_ASSISTANT(assistant)));
- g_object_set_data(G_OBJECT(page), "is_username_used", GINT_TO_POINTER(status));
- gdk_threads_add_idle((GSourceFunc)update_interface_with_username_availability, page);
-}
-
-static gboolean check_username_availability(GtkWidget *assistant) {
- LinphoneAccountCreator *creator = linphone_gtk_assistant_get_creator(assistant);
- GtkWidget *page = gtk_assistant_get_nth_page(GTK_ASSISTANT(assistant), gtk_assistant_get_current_page(GTK_ASSISTANT(assistant)));
- g_object_set_data(G_OBJECT(page), "usernameAvailabilityTimerID", GUINT_TO_POINTER(0));
- linphone_account_creator_is_account_exist(creator);
- return FALSE;
-}
-
-void linphone_gtk_account_creation_username_changed(GtkEntry *entry) {
- GtkWidget *assistant = gtk_widget_get_toplevel(GTK_WIDGET(entry));
- GtkEntry* username = GTK_ENTRY(linphone_gtk_get_widget(assistant, "p4_entry_username"));
- GtkImage* isUsernameOk = GTK_IMAGE(linphone_gtk_get_widget(assistant, "p4_image_username_ok"));
- GtkLabel* usernameError = GTK_LABEL(linphone_gtk_get_widget(assistant, "p4_label_error"));
- gint current_page_num = gtk_assistant_get_current_page(GTK_ASSISTANT(assistant));
- GtkWidget *page = gtk_assistant_get_nth_page(GTK_ASSISTANT(assistant), current_page_num);
-
- LinphoneAccountCreator *creator = linphone_gtk_assistant_get_creator(assistant);
- linphone_account_creator_set_username(creator, gtk_entry_get_text(username));
- linphone_account_creator_set_domain(creator, "sip.linphone.org");
- linphone_account_creator_set_route(creator, "sip.linphone.org");
-
- if (check_username_validity(gtk_entry_get_text(username))) {
- guint timerID = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(page), "usernameAvailabilityTimerID"));
- if (timerID > 0) {
- g_source_remove(timerID);
- }
- timerID = g_timeout_add(500, (GSourceFunc)check_username_availability, assistant);
- g_object_set_data(G_OBJECT(page), "usernameAvailabilityTimerID", GUINT_TO_POINTER(timerID));
- } else {
- if (gtk_entry_get_text_length(username) < LOGIN_MIN_SIZE) {
- gtk_label_set_text(usernameError, "Username is too short");
- } else if (!check_username_validity(gtk_entry_get_text(username))) {
- gtk_label_set_text(usernameError, "Unauthorized username");
- }
- g_object_set_data(G_OBJECT(page), "is_username_available", GINT_TO_POINTER(0));
- gtk_image_set_from_stock(isUsernameOk, GTK_STOCK_NO, GTK_ICON_SIZE_LARGE_TOOLBAR);
- gtk_assistant_set_page_complete(GTK_ASSISTANT(assistant), page, linphone_account_creation_configuration_correct(page) > 0);
- }
-}
-
-void linphone_gtk_account_creation_email_changed(GtkEntry *entry) {
- GtkWidget *assistant = gtk_widget_get_toplevel(GTK_WIDGET(entry));
- GtkEntry* email = GTK_ENTRY(linphone_gtk_get_widget(assistant, "p4_entry_email"));
- GtkImage* isEmailOk = GTK_IMAGE(linphone_gtk_get_widget(assistant, "p4_image_email_ok"));
- gint current_page_num = gtk_assistant_get_current_page(GTK_ASSISTANT(assistant));
- GtkWidget *page = gtk_assistant_get_nth_page(GTK_ASSISTANT(assistant), current_page_num);
-
- if (g_regex_match_simple("^" BC_REGEX_RESTRICTIVE_EMAIL_ADDR "$", gtk_entry_get_text(email), 0, 0)) {
- g_object_set_data(G_OBJECT(page), "is_email_correct", GINT_TO_POINTER(1));
- gtk_image_set_from_stock(isEmailOk, GTK_STOCK_OK, GTK_ICON_SIZE_LARGE_TOOLBAR);
- } else {
- g_object_set_data(G_OBJECT(page), "is_email_correct", GINT_TO_POINTER(0));
- gtk_image_set_from_stock(isEmailOk, GTK_STOCK_NO, GTK_ICON_SIZE_LARGE_TOOLBAR);
- }
- gtk_assistant_set_page_complete(GTK_ASSISTANT(assistant), page, linphone_account_creation_configuration_correct(page) > 0);
-}
-
-void linphone_gtk_account_creation_password_changed(GtkEntry *entry) {
- GtkWidget *assistant = gtk_widget_get_toplevel(GTK_WIDGET(entry));
- GtkEntry* password = GTK_ENTRY(linphone_gtk_get_widget(assistant, "p4_entry_password1"));
- GtkEntry* password_confirm = GTK_ENTRY(linphone_gtk_get_widget(assistant, "p4_entry_password2"));
- GtkImage* isPasswordOk = GTK_IMAGE(linphone_gtk_get_widget(assistant, "p4_image_password_ok"));
- GtkLabel* passwordError = GTK_LABEL(linphone_gtk_get_widget(assistant, "p4_label_error"));
- gint current_page_num = gtk_assistant_get_current_page(GTK_ASSISTANT(assistant));
- GtkWidget *page = gtk_assistant_get_nth_page(GTK_ASSISTANT(assistant), current_page_num);
-
- if ((gtk_entry_get_text_length(password) >= PASSWORD_MIN_SIZE)
- && (g_ascii_strcasecmp(gtk_entry_get_text(password), gtk_entry_get_text(password_confirm)) == 0)) {
- g_object_set_data(G_OBJECT(page), "is_password_correct", GINT_TO_POINTER(1));
- gtk_image_set_from_stock(isPasswordOk, GTK_STOCK_OK, GTK_ICON_SIZE_LARGE_TOOLBAR);
- gtk_label_set_text(passwordError, "");
- } else {
- if (gtk_entry_get_text_length(password) < PASSWORD_MIN_SIZE) {
- gtk_label_set_text(passwordError, "Password is too short !");
- } else if (g_ascii_strcasecmp(gtk_entry_get_text(password), gtk_entry_get_text(password_confirm)) != 0) {
- gtk_label_set_text(passwordError, "Passwords don't match !");
- }
- g_object_set_data(G_OBJECT(page), "is_password_correct", GINT_TO_POINTER(0));
- gtk_image_set_from_stock(isPasswordOk, GTK_STOCK_NO, GTK_ICON_SIZE_LARGE_TOOLBAR);
- }
- gtk_assistant_set_page_complete(GTK_ASSISTANT(assistant), page, linphone_account_creation_configuration_correct(page) > 0);
-}
-
-static void linphone_gtk_assistant_init(GtkWidget *w) {
- LinphoneAccountCreator *creator = linphone_account_creator_new(linphone_gtk_get_core(), "https://subscribe.linphone.org:444/wizard.php");
- LinphoneAccountCreatorCbs *cbs = linphone_account_creator_get_callbacks(creator);
- linphone_account_creator_set_user_data(creator, w);
- linphone_account_creator_cbs_set_is_account_exist(cbs, linphone_gtk_test_account_existence_cb);
- linphone_account_creator_cbs_set_is_account_activated(cbs, linphone_gtk_test_account_validation_cb);
- linphone_account_creator_cbs_set_create_account(cbs, linphone_gtk_create_account_cb);
- g_object_set_data(G_OBJECT(w), "creator", creator);
-
- gtk_assistant_set_forward_page_func(GTK_ASSISTANT(w), linphone_gtk_assistant_forward, w, NULL);
-}
-
-void linphone_gtk_show_assistant(void) {
- if (the_assistant != NULL) return;
- the_assistant = linphone_gtk_create_window("setup_wizard", linphone_gtk_get_main_window());
- linphone_gtk_assistant_init(the_assistant);
- gtk_widget_show(the_assistant);
-}
-
-void linphone_gtk_close_assistant(void) {
- GtkWidget *mw;
- if (the_assistant == NULL) {
- return;
- }
- gtk_widget_destroy(the_assistant);
- the_assistant = NULL;
-
- //reload list of proxy configs because a new one was probably created...
- mw=linphone_gtk_get_main_window();
- if (mw) {
- GtkWidget* pb = (GtkWidget*)g_object_get_data(G_OBJECT(mw),"parameters");
- if (pb) {
- linphone_gtk_show_sip_accounts(pb);
- }
- }
-}
diff --git a/gtk/setupwizard.h b/gtk/setupwizard.h
deleted file mode 100644
index ac833f20e..000000000
--- a/gtk/setupwizard.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
-linphone, gtk-glade interface.
-Copyright (C) 2008 Simon MORLAT (simon.morlat@linphone.org)
-
-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 2
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#ifndef SETUP_WIZARD_H
-#define SETUP_WIZARD_H
-
-#include "linphone/sipsetup.h"
-
-LINPHONE_PUBLIC void linphone_gtk_show_assistant(void);
-LINPHONE_PUBLIC void linphone_gtk_assistant_prepare(GtkWidget *assistant);
-LINPHONE_PUBLIC void linphone_gtk_assistant_closed(GtkWidget *w);
-
-LINPHONE_PUBLIC void linphone_gtk_external_account_configuration_changed(GtkEntry* entry);
-LINPHONE_PUBLIC void linphone_gtk_account_configuration_changed(GtkEntry *entry, GtkAssistant *assistant);
-LINPHONE_PUBLIC void linphone_gtk_account_creation_username_changed(GtkEntry *entry);
-LINPHONE_PUBLIC void linphone_gtk_account_creation_password_changed(GtkEntry *entry);
-LINPHONE_PUBLIC void linphone_gtk_account_creation_email_changed(GtkEntry *entry);
-
-#endif
diff --git a/gtk/singleinstance.c b/gtk/singleinstance.c
deleted file mode 100644
index d41b22bec..000000000
--- a/gtk/singleinstance.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
-linphone, gtk interface.
-Copyright (C) 2011 Belledonne Communications SARL
-Author: Simon MORLAT (simon.morlat@linphone.org)
-
-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 2
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include "linphone.h"
-
-static ms_thread_t pipe_thread;
-static ortp_pipe_t server_pipe=(ortp_pipe_t)-1;
-static gboolean server_pipe_running=TRUE;
-static char *pipe_name=NULL;
-
-gchar *make_name(const char *appname){
- const char *username=getenv("USER");
- if (username){
- return g_strdup_printf("%s-%s",appname,username);
- }
- return g_strdup(appname);
-}
-
-static gboolean execute_wakeup(char *buf){
- char uri[255]={0};
- int option;
-
- if (strlen(buf)>1) sscanf(buf,"%i%s",&option,uri);
- else sscanf(buf,"%i",&option);
-
- switch(option){
- case START_LINPHONE:
- linphone_gtk_show_main_window();
- break;
- case START_AUDIO_ASSISTANT:
- linphone_gtk_show_audio_assistant();
- break;
- case START_LINPHONE_WITH_CALL:
- linphone_gtk_refer_received(linphone_gtk_get_core(),uri);
- break;
- };
-
- g_free(buf);
- return FALSE;
-}
-
-static void * server_pipe_thread(void *pointer){
- ortp_pipe_t child;
-
- do{
- child=ortp_server_pipe_accept_client(server_pipe);
- if (server_pipe_running && child!=(ortp_pipe_t)-1){
- char buf[256]={0};
- if (ortp_pipe_read(child,(uint8_t*)buf,sizeof(buf))>0){
- g_message("Received wakeup command with arg %s",buf);
- gdk_threads_enter();
- g_timeout_add(20,(GSourceFunc)execute_wakeup,g_strdup(buf));
- gdk_threads_leave();
- }
- ortp_server_pipe_close_client(child);
- }
- }while(server_pipe_running);
- ortp_server_pipe_close(server_pipe);
- return NULL;
-}
-
-static void linphone_gtk_init_pipe(const char *name){
- server_pipe=ortp_server_pipe_create(name);
- if (server_pipe==(ortp_pipe_t)-1){
- g_warning("Fail to create server pipe for name %s: %s",name,strerror(errno));
- return;
- }
- server_pipe_running=TRUE;
- ms_thread_create(&pipe_thread,NULL,server_pipe_thread,NULL);
-}
-
-bool_t linphone_gtk_init_instance(const char *app_name, int option, const char *addr_to_call){
- ortp_pipe_t p;
- pipe_name=make_name(app_name);
- p=ortp_client_pipe_connect(pipe_name);
- if (p!=(ortp_pipe_t)-1){
- uint8_t buf[256]={0};
- g_message("There is already a running instance.");
- if (addr_to_call!=NULL){
- sprintf((char *)buf,"%i%s",option,addr_to_call);
- } else {
- sprintf((char *)buf,"%i",option);
- }
- if (ortp_pipe_write(p,buf,sizeof(buf))==-1){
- g_error("Fail to send wakeup command to running instance: %s",strerror(errno));
- }else{
- g_message("Message to running instance sent.");
- }
- ortp_client_pipe_close(p);
- return FALSE;
- }else{
- linphone_gtk_init_pipe(pipe_name);
- }
- return TRUE;
-}
-
-void linphone_gtk_uninit_instance(void){
- if (server_pipe!=(ortp_pipe_t)-1){
- ortp_pipe_t client;
- server_pipe_running=FALSE;
- /*this is to unblock the accept() of the server pipe*/
- client=ortp_client_pipe_connect(pipe_name);
- ortp_pipe_write(client,(uint8_t*)" ",1);
- ortp_client_pipe_close(client);
- ms_thread_join(pipe_thread,NULL);
- server_pipe=(ortp_pipe_t)-1;
- g_free(pipe_name);
- pipe_name=NULL;
- }
-}
diff --git a/gtk/sip_account.ui b/gtk/sip_account.ui
deleted file mode 100644
index 6d03932d1..000000000
--- a/gtk/sip_account.ui
+++ /dev/null
@@ -1,395 +0,0 @@
-
-
-
-
-
- 100000
- 3600
- 1
- 10
-
-
- 5
- 1
- 5
- 1
- 1
-
-
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 5
- Linphone - Configure a SIP account
- center-on-parent
- dialog
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 2
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- end
-
-
- gtk-ok
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- False
- True
-
-
-
- False
- False
- 0
-
-
-
-
- gtk-cancel
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- False
- True
-
-
-
- False
- False
- 1
-
-
-
-
- False
- True
- end
- 0
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0
- none
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 12
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 6
- 2
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Your SIP identity:
- right
-
-
-
-
- 275
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Looks like sip:<username>@<domain>
- sip:
- False
- False
- True
- True
-
-
- 1
- 2
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- SIP Proxy address:
- right
-
-
- 1
- 2
-
-
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Looks like sip:<proxy hostname>
- sip:
- False
- False
- True
- True
-
-
-
- 1
- 2
- 1
- 2
-
-
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- False
- False
- True
- True
-
-
- 1
- 2
- 4
- 5
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Registration duration (sec):
- right
-
-
- 2
- 3
-
-
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- False
- False
- True
- True
- adjustment1
-
-
- 1
- 2
- 2
- 3
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Contact params (optional):
- right
-
-
- 5
- 6
-
-
-
-
- 275
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- •
- True
- False
- False
- True
- True
-
-
- 1
- 2
- 5
- 6
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- AVPF regular RTCP interval (sec):
- right
-
-
- 6
- 7
-
-
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- False
- False
- True
- True
- adjustment2
-
-
- 1
- 2
- 6
- 7
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Route (optional):
- right
-
-
- 4
- 5
-
-
-
-
- True
- False
- Transport
-
-
- 3
- 4
-
-
-
-
- True
- False
-
-
-
- 1
- 2
- 3
- 4
-
-
-
-
- True
- True
- 0
-
-
-
-
- Register
- True
- True
- False
- False
- True
- True
-
-
- True
- True
- 1
-
-
-
-
- Publish presence information
- True
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- False
- True
-
-
- False
- True
- 2
-
-
-
-
- Enable AVPF
- True
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- False
- True
-
-
- False
- True
- 3
-
-
-
-
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Configure a SIP account
- True
-
-
-
-
- True
- True
- 1
-
-
-
-
-
- button6
- button7
-
-
-
diff --git a/gtk/status_icon.c b/gtk/status_icon.c
deleted file mode 100644
index 22852f38f..000000000
--- a/gtk/status_icon.c
+++ /dev/null
@@ -1,546 +0,0 @@
-/*
-linphone, gtk-glade interface.
-Copyright (C) 2015 Belledonne Communications
-
-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 2
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include "status_icon.h"
-#include "linphone.h"
-
-#ifdef HAVE_GTK_OSX
-#include
-#endif
-
-#if !defined(_WIN32) && !defined(__APPLE__) && GLIB_CHECK_VERSION(2, 26, 0)
-#define STATUS_NOTIFIER_IS_USABLE 1
-#endif
-
-#include "status_notifier.h"
-#include
-
-typedef struct __LinphoneStatusIconDesc _LinphoneStatusIconDesc;
-
-static LinphoneStatusIcon *_linphone_status_icon_instance = NULL;
-static const _LinphoneStatusIconDesc *_linphone_status_icon_selected_desc = NULL;
-static GSList *_linphone_status_icon_impls = NULL;
-
-
-struct _LinphoneStatusIconParams {
- char *title;
- char *desc;
- GtkWidget *menu;
- LinphoneStatusIconOnClickCallback on_click_cb;
- void *user_data;
- int ref;
-};
-
-LinphoneStatusIconParams *linphone_status_icon_params_new(void) {
- return g_new0(LinphoneStatusIconParams, 1);
-}
-
-LinphoneStatusIconParams *linphone_status_icon_params_ref(LinphoneStatusIconParams *obj) {
- obj->ref++;
- return obj;
-}
-
-void linphone_status_icon_params_unref(LinphoneStatusIconParams *obj) {
- obj->ref--;
- if(obj->ref < 0) {
- if(obj->title) g_free(obj->title);
- if(obj->menu) g_object_unref(obj->menu);
- if(obj->desc) g_free(obj->desc);
- g_free(obj);
- }
-}
-
-void linphone_status_icon_params_set_title(LinphoneStatusIconParams *obj, const char *title) {
- if(obj->title) g_free(obj->title);
- if(title) obj->title = g_strdup(title);
- else obj->title = NULL;
-}
-
-void linphone_status_icon_params_set_description(LinphoneStatusIconParams *obj, const char *desc) {
- if(obj->desc) g_free(obj->desc);
- if(desc) obj->desc = g_strdup(desc);
- else obj->desc = NULL;
-}
-
-void linphone_status_icon_params_set_menu(LinphoneStatusIconParams *obj, GtkWidget *menu) {
- if(obj->menu) g_object_unref(obj->menu);
- if(menu) obj->menu = g_object_ref_sink(menu);
- else obj->menu = NULL;
-}
-
-void linphone_status_icon_params_set_on_click_cb(LinphoneStatusIconParams *obj, LinphoneStatusIconOnClickCallback cb, void *user_data) {
- obj->on_click_cb = cb;
- obj->user_data = user_data;
-}
-
-
-typedef void (*LinphoneStatusIconDescInitFunc)(LinphoneStatusIcon *obj);
-typedef void (*LinphoneStatusIconDescUninitFunc)(LinphoneStatusIcon *obj);
-typedef void (*LinphoneStatusIconDescStartFunc)(LinphoneStatusIcon *obj);
-typedef void (*LinphoneStatusIconDescEnableBlinkingFunc)(LinphoneStatusIcon *obj, gboolean enable);
-typedef void (*LinphoneStatusIconDescIsSupportedResultCb)(const _LinphoneStatusIconDesc *obj, gboolean result, void *user_data);
-typedef gboolean (*LinphoneStatusIconDescIsSupportedFunc)(
- const _LinphoneStatusIconDesc *desc,
- gboolean *result,
- LinphoneStatusIconDescIsSupportedResultCb cb,
- void *user_data
-);
-typedef void (*LinphoneStatusIconDescFindResultCb)(const _LinphoneStatusIconDesc *desc, void *user_data);
-
-struct __LinphoneStatusIconDesc {
- const char *impl_name;
- LinphoneStatusIconDescInitFunc init;
- LinphoneStatusIconDescUninitFunc uninit;
- LinphoneStatusIconDescStartFunc start;
- LinphoneStatusIconDescEnableBlinkingFunc enable_blinking;
- LinphoneStatusIconDescIsSupportedFunc is_supported;
-};
-
-static gboolean _linphone_status_icon_desc_is_supported(
- const _LinphoneStatusIconDesc *desc,
- gboolean *result,
- LinphoneStatusIconDescIsSupportedResultCb cb,
- void *user_data) {
-
- return desc->is_supported(desc, result, cb, user_data);
-}
-
-typedef struct {
- GSList *i;
- LinphoneStatusIconDescFindResultCb cb;
- void *user_data;
-} _LinphoneStatusIconDescSearchCtx;
-
-static void _linphone_status_icon_desc_is_supported_result_cb(
- const _LinphoneStatusIconDesc *desc,
- gboolean result,
- _LinphoneStatusIconDescSearchCtx *ctx) {
-
- if(!result) {
- ctx->i = g_slist_next(ctx->i);
- for(; ctx->i; ctx->i = g_slist_next(ctx->i)) {
- if(_linphone_status_icon_desc_is_supported(
- (const _LinphoneStatusIconDesc *)g_slist_nth_data(ctx->i, 0),
- &result,
- (LinphoneStatusIconDescIsSupportedResultCb)_linphone_status_icon_desc_is_supported_result_cb,
- ctx)) {
-
- if(result) break;
- } else return;
- }
- }
-
- if(ctx->i) {
- const _LinphoneStatusIconDesc *desc = (const _LinphoneStatusIconDesc *)g_slist_nth_data(ctx->i, 0);
- ms_message("StatusIcon: found implementation: %s", desc->impl_name);
- if(ctx->cb) ctx->cb(desc, ctx->user_data);
- } else {
- g_warning("StatusIcon: no implementation found");
- }
-
- g_free(ctx);
-}
-
-static gboolean _linphone_status_icon_find_first_available_impl(
- const _LinphoneStatusIconDesc **desc,
- LinphoneStatusIconDescFindResultCb cb,
- void *user_data) {
-
- gboolean result;
- _LinphoneStatusIconDescSearchCtx *ctx = g_new0(_LinphoneStatusIconDescSearchCtx, 1);
- ctx->cb = cb;
- ctx->user_data = user_data;
-
- ms_message("StatusIcon: looking for implementation...");
-
- for(ctx->i=_linphone_status_icon_impls; ctx->i; ctx->i = g_slist_next(ctx->i)) {
- if(_linphone_status_icon_desc_is_supported(
- (const _LinphoneStatusIconDesc *)g_slist_nth_data(ctx->i, 0),
- &result,
- (LinphoneStatusIconDescIsSupportedResultCb)_linphone_status_icon_desc_is_supported_result_cb,
- ctx)) {
-
- if(result) {
- *desc = (const _LinphoneStatusIconDesc *)g_slist_nth_data(ctx->i, 0);
- ms_message("StatusIcon: found implementation: %s", (*desc)->impl_name);
- goto sync_return;
- }
- } else {
- return 0;
- }
- }
- g_warning("StatusIcon: no implementation found");
- *desc = NULL;
-
-sync_return:
- g_free(ctx);
- return 1;
-}
-
-
-struct _LinphoneStatusIcon {
- const _LinphoneStatusIconDesc *desc;
- LinphoneStatusIconParams *params;
- void *data;
-};
-
-static LinphoneStatusIcon *_linphone_status_icon_new(const _LinphoneStatusIconDesc *desc) {
- LinphoneStatusIcon *si = (LinphoneStatusIcon *)g_new0(LinphoneStatusIcon, 1);
- si->desc = desc;
- if(desc->init) desc->init(si);
- return si;
-}
-
-static void _linphone_status_icon_free(LinphoneStatusIcon *obj) {
- if(obj->desc->uninit) obj->desc->uninit(obj);
- if(obj->params) linphone_status_icon_params_unref(obj->params);
- g_free(obj);
-}
-
-const char *linphone_status_icon_get_implementation_name(const LinphoneStatusIcon *obj) {
- return obj->desc->impl_name;
-}
-
-void linphone_status_icon_start(LinphoneStatusIcon *obj, LinphoneStatusIconParams *params) {
- ms_message("StatusIcon: starting status icon");
- obj->params = linphone_status_icon_params_ref(params);
- if(obj->desc->start) obj->desc->start(obj);
-}
-
-void linphone_status_icon_enable_blinking(LinphoneStatusIcon *obj, gboolean enable) {
- ms_message("StatusIcon: blinking set to %s", enable ? "TRUE" : "FALSE");
- if(obj->desc->enable_blinking) obj->desc->enable_blinking(obj, enable);
-}
-
-static void _linphone_status_icon_notify_click(LinphoneStatusIcon *obj) {
- if(obj->params->on_click_cb) {
- obj->params->on_click_cb(obj, obj->params->user_data);
- }
-}
-
-
-void _linphone_status_icon_init_cb(const _LinphoneStatusIconDesc *desc, void *user_data) {
- void **ctx = (void **)user_data;
- LinphoneStatusIconReadyCb cb = (LinphoneStatusIconReadyCb)ctx[0];
- _linphone_status_icon_selected_desc = desc;
- if(cb) cb(ctx[1]);
- g_free(ctx);
-}
-
-#ifdef STATUS_NOTIFIER_IS_USABLE
-static const _LinphoneStatusIconDesc _linphone_status_icon_impl_status_notifier;
-#endif
-#ifdef HAVE_GTK_OSX
-static const _LinphoneStatusIconDesc _linphone_status_icon_impl_gtkosx_app_desc;
-#else
-static const _LinphoneStatusIconDesc _linphone_status_icon_impl_gtk_desc;
-#endif
-
-void _linphone_status_icon_create_implementations_list(void) {
-#ifdef STATUS_NOTIFIER_IS_USABLE
- _linphone_status_icon_impls = g_slist_append(_linphone_status_icon_impls, (void *)&_linphone_status_icon_impl_status_notifier);
-#endif
-#if HAVE_GTK_OSX
- _linphone_status_icon_impls = g_slist_append(_linphone_status_icon_impls, (void *)&_linphone_status_icon_impl_gtkosx_app_desc);
-#else
- _linphone_status_icon_impls = g_slist_append(_linphone_status_icon_impls, (void *)&_linphone_status_icon_impl_gtk_desc);
-#endif
-}
-
-gboolean linphone_status_icon_init(LinphoneStatusIconReadyCb ready_cb, void *user_data) {
- const _LinphoneStatusIconDesc *desc;
- void **ctx;
-
- ms_message("StatusIcon: Initialising");
-
- _linphone_status_icon_create_implementations_list();
-
- ctx = g_new(void *, 2);
- ctx[0] = ready_cb;
- ctx[1] = user_data;
-
- if(_linphone_status_icon_find_first_available_impl(&desc, _linphone_status_icon_init_cb, ctx)) {
- _linphone_status_icon_selected_desc = desc;
- g_free(ctx);
- return 1;
- } else return 0;
-}
-
-void linphone_status_icon_uninit(void) {
- if(_linphone_status_icon_instance) {
- _linphone_status_icon_free(_linphone_status_icon_instance);
- _linphone_status_icon_instance = NULL;
- }
- if(_linphone_status_icon_impls) {
- g_slist_free(_linphone_status_icon_impls);
- _linphone_status_icon_impls = NULL;
- }
- _linphone_status_icon_selected_desc = NULL;
-}
-
-LinphoneStatusIcon *linphone_status_icon_get(void) {
- if(_linphone_status_icon_instance == NULL) {
- if(_linphone_status_icon_selected_desc)
- ms_message("StatusIcon: instanciating singleton");
- _linphone_status_icon_instance = _linphone_status_icon_new(_linphone_status_icon_selected_desc);
- }
- return _linphone_status_icon_instance;
-}
-
-
-/* GtkStatusIcon implementation */
-#ifndef HAVE_GTK_OSX
-static void _linphone_status_icon_impl_gtk_on_click_cb(LinphoneStatusIcon *si) {
- _linphone_status_icon_notify_click(si);
-}
-
-static void _linphone_status_icon_impl_gtk_popup_menu(GtkStatusIcon *status_icon, guint button, guint activate_time, LinphoneStatusIcon *si){
- GtkWidget *menu = si->params->menu;
- gtk_menu_popup(GTK_MENU(menu),NULL,NULL,gtk_status_icon_position_menu,status_icon,button,activate_time);
-}
-
-static void _linphone_status_icon_impl_gtk_init(LinphoneStatusIcon *si) {
- const char *icon_name=linphone_gtk_get_ui_config("icon_name",LINPHONE_ICON_NAME);
- const char *blinking_icon_name=linphone_gtk_get_ui_config("binking_status_icon_name","linphone-start-call");
- GtkStatusIcon *icon=gtk_status_icon_new_from_icon_name(icon_name);
- g_signal_connect_swapped(G_OBJECT(icon),"activate", G_CALLBACK(_linphone_status_icon_impl_gtk_on_click_cb), si);
- g_signal_connect(G_OBJECT(icon), "popup-menu", G_CALLBACK(_linphone_status_icon_impl_gtk_popup_menu), si);
- g_object_set_data_full(G_OBJECT(icon), "icon", g_strdup(icon_name), g_free);
- g_object_set_data_full(G_OBJECT(icon), "call_icon", g_strdup(blinking_icon_name), g_free);
- si->data = icon;
-}
-
-static void _linphone_status_icon_impl_gtk_uninit(LinphoneStatusIcon *si) {
- GtkStatusIcon *icon = GTK_STATUS_ICON(si->data);
- gtk_status_icon_set_visible(icon, FALSE);
-}
-
-static void _linphone_status_icon_impl_gtk_start(LinphoneStatusIcon *si) {
- GtkStatusIcon *icon = GTK_STATUS_ICON(si->data);
-#if GTK_CHECK_VERSION(2,20,2)
- char *name = g_strdup_printf("%s - %s", si->params->title, si->params->desc);
- gtk_status_icon_set_name(icon, name);
- g_free(name);
-#endif
- gtk_status_icon_set_visible(icon,TRUE);
-}
-
-static gboolean _linphone_status_icon_impl_gtk_do_icon_blink_cb(GtkStatusIcon *gi){
- const gchar *call_icon = (const gchar *)g_object_get_data(G_OBJECT(gi),"call_icon");
- const gchar *normal_icon = (const gchar *)g_object_get_data(G_OBJECT(gi),"icon");
- const gchar *cur_icon = (const gchar *)gtk_status_icon_get_icon_name(gi);
- if (cur_icon == call_icon){
- gtk_status_icon_set_from_icon_name(gi,normal_icon);
- }else{
- gtk_status_icon_set_from_icon_name(gi,call_icon);
- }
- return TRUE;
-}
-
-static void _linphone_status_icon_impl_enable_blinking(LinphoneStatusIcon *si, gboolean val) {
- GtkStatusIcon *icon = GTK_STATUS_ICON(si->data);
- guint tout;
- tout=(unsigned)GPOINTER_TO_INT(g_object_get_data(G_OBJECT(icon),"timeout"));
- if (val && tout==0){
- tout=g_timeout_add(500,(GSourceFunc)_linphone_status_icon_impl_gtk_do_icon_blink_cb,icon);
- g_object_set_data(G_OBJECT(icon),"timeout",GINT_TO_POINTER(tout));
- }else if (!val && tout!=0){
- const gchar *normal_icon = (const gchar *)g_object_get_data(G_OBJECT(icon),"icon");
- g_source_remove(tout);
- g_object_set_data(G_OBJECT(icon),"timeout",NULL);
- gtk_status_icon_set_from_icon_name(icon,normal_icon);
- }
-}
-
-static gboolean _linphone_status_icon_impl_is_supported(
- const _LinphoneStatusIconDesc *desc,
- gboolean *result,
- LinphoneStatusIconDescIsSupportedResultCb cb,
- void *user_data) {
-
- *result = 1;
- return 1;
-}
-
-static const _LinphoneStatusIconDesc _linphone_status_icon_impl_gtk_desc = {
- "gtk_status_icon",
- _linphone_status_icon_impl_gtk_init,
- _linphone_status_icon_impl_gtk_uninit,
- _linphone_status_icon_impl_gtk_start,
- _linphone_status_icon_impl_enable_blinking,
- _linphone_status_icon_impl_is_supported
-};
-#endif
-
-
-/* GtkosxApplication implementation */
-#ifdef HAVE_GTK_OSX
-static void _linphone_status_icon_impl_gtkosx_app_enable_blinking(LinphoneStatusIcon *si, gboolean val) {
- GtkosxApplication *theMacApp=gtkosx_application_get();
- gint *attention_id = (gint *)&si->data;
- if (val) {
- *attention_id=gtkosx_application_attention_request(theMacApp, CRITICAL_REQUEST);
- } else if (*attention_id != 0) {
- gtkosx_application_cancel_attention_request(theMacApp, *attention_id);
- *attention_id = 0;
- }
-}
-
-static gboolean _linphone_status_icon_impl_gtkosx_app_is_supported(
- const _LinphoneStatusIconDesc *desc,
- gboolean *result,
- LinphoneStatusIconDescIsSupportedResultCb cb,
- void *user_data) {
-
- *result = 1;
- return 1;
-}
-
-static const _LinphoneStatusIconDesc _linphone_status_icon_impl_gtkosx_app_desc = {
- .impl_name = "gtkosx_application",
- .init = NULL,
- .uninit = NULL,
- .start = NULL,
- .enable_blinking = _linphone_status_icon_impl_gtkosx_app_enable_blinking,
- .is_supported = _linphone_status_icon_impl_gtkosx_app_is_supported
-};
-#endif
-
-
-/* Implementation based on the StatusNotifier Freedesktop standard */
-#ifdef STATUS_NOTIFIER_IS_USABLE
-typedef struct {
- int x;
- int y;
-} _LinphoneStatusIconPosition;
-
-static void _linphone_status_icon_impl_sn_init(LinphoneStatusIcon *si) {
- si->data = bc_status_notifier_new();
-}
-
-// static void _linphone_status_icon_impl_sn_uninit(LinphoneStatusIcon *si) {
-// bc_status_notifier_unref((BcStatusNotifier *)si->data);
-// }
-
-static void _linphone_status_icon_impl_sn_activated_cb(BcStatusNotifier *sn, int x, int y, void *user_data) {
- LinphoneStatusIcon *si = (LinphoneStatusIcon *)user_data;
- _linphone_status_icon_notify_click(si);
-}
-
-static void _linphone_status_icon_impr_sn_get_position(GtkMenu *menu, int *x, int *y, gboolean *push_in, gpointer data) {
- _LinphoneStatusIconPosition *pos = (_LinphoneStatusIconPosition *)data;
- *x = pos->x;
- *y = pos->y;
- *push_in = TRUE;
-}
-
-static void _linphone_status_icon_impl_sn_menu_called_cb(BcStatusNotifier *sn, int x, int y, void *user_data) {
- LinphoneStatusIcon *si = (LinphoneStatusIcon *)user_data;
- GtkWidget *menu = si->params->menu;
- _LinphoneStatusIconPosition pos = {x, y};
- gtk_menu_popup(
- GTK_MENU(menu),
- NULL,
- NULL,
- _linphone_status_icon_impr_sn_get_position,
- &pos,
- 0,
- gtk_get_current_event_time()
- );
-}
-
-static void _linphone_status_icon_impl_sn_start(LinphoneStatusIcon *si) {
- BcStatusNotifier *sn = (BcStatusNotifier *)si->data;
- BcStatusNotifierParams *params;
- BcStatusNotifierToolTip *tooltip = bc_status_notifier_tool_tip_new("linphone", si->params->title, si->params->desc);
- BcStatusNotifierSignalsVTable vtable = {NULL};
-
- vtable.activate_called_cb = _linphone_status_icon_impl_sn_activated_cb;
- vtable.context_menu_called_cb = _linphone_status_icon_impl_sn_menu_called_cb;
-
- params = bc_status_notifier_params_new();
- bc_status_notifier_params_set_dbus_prefix(params, "org.kde");
- bc_status_notifier_params_set_category(params, BcStatusNotifierCategoryCommunications);
- bc_status_notifier_params_set_id(params, "linphone");
- bc_status_notifier_params_set_title(params, si->params->title);
- bc_status_notifier_params_set_icon_name(params, "linphone");
- bc_status_notifier_params_set_tool_tip(params, tooltip);
- bc_status_notifier_params_set_vtable(params, &vtable, si);
-
- bc_status_notifier_start(sn, params, NULL, NULL);
-
- bc_status_notifier_tool_tip_unref(tooltip);
- bc_status_notifier_params_unref(params);
-}
-
-static void _linphone_status_icon_impl_sn_enable_blinking(LinphoneStatusIcon *si, gboolean val) {
- BcStatusNotifier *sn = (BcStatusNotifier *)si->data;
- if(val) {
- bc_status_notifier_update_status(sn, BcStatusNotifierStatusNeedsAttention);
- } else {
- bc_status_notifier_update_status(sn, BcStatusNotifierStatusPassive);
- }
-}
-
-static void _linphone_status_icon_impl_is_supported_cb(const char *prefix, gboolean result, void **data) {
- _LinphoneStatusIconDesc *desc = (_LinphoneStatusIconDesc *)data[0];
- LinphoneStatusIconDescIsSupportedResultCb cb = (LinphoneStatusIconDescIsSupportedResultCb)data[1];
- if(cb) cb(desc, result, data[2]);
- g_free(data);
- g_free(desc);
-}
-
-static gboolean _linphone_status_icon_impl_sn_is_supported(
- const _LinphoneStatusIconDesc *desc,
- gboolean *result,
- LinphoneStatusIconDescIsSupportedResultCb cb,
- void *user_data) {
-
- _LinphoneStatusIconDesc *desc2;
- void **data;
- const char *desktop = g_getenv("XDG_CURRENT_DESKTOP");
-
- if(desktop == NULL || g_strcmp0(desktop, "KDE") != 0) {
- *result = FALSE;
- return TRUE;
- }
-
- desc2 = g_new(_LinphoneStatusIconDesc, 1);
- *desc2 = *desc;
- data = g_new(void *, 3);
- data[0] = desc2;
- data[1] = cb;
- data[2] = user_data;
- bc_status_notifier_is_supported(
- "org.kde",
- (BcStatusNotifierSupportDetectionCb)_linphone_status_icon_impl_is_supported_cb,
- data
- );
- return FALSE;
-}
-
-static const _LinphoneStatusIconDesc _linphone_status_icon_impl_status_notifier = {
- .impl_name = "status_notifier",
- .init = _linphone_status_icon_impl_sn_init,
- .uninit = NULL,
- .start = _linphone_status_icon_impl_sn_start,
- .enable_blinking = _linphone_status_icon_impl_sn_enable_blinking,
- .is_supported = _linphone_status_icon_impl_sn_is_supported
-};
-#endif
diff --git a/gtk/status_icon.h b/gtk/status_icon.h
deleted file mode 100644
index 52d28d4e6..000000000
--- a/gtk/status_icon.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
-linphone, gtk-glade interface.
-Copyright (C) 2015 Belledonne Communications
-
-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 2
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-/*
- * LinphoneStatusIcon is an singleton interface which abstracts the
- * technology used to manage the status icon.
- */
-
-#if __clang__ || ((__GNUC__ == 4 && __GNUC_MINOR__ >= 6) || __GNUC__ > 4)
-#pragma GCC diagnostic push
-#endif
-#ifndef _MSC_VER
-#pragma GCC diagnostic ignored "-Wstrict-prototypes"
-#endif
-
-#include
-#include
-
-#if __clang__ || ((__GNUC__ == 4 && __GNUC_MINOR__ >= 6) || __GNUC__ > 4)
-#pragma GCC diagnostic pop
-#endif
-
-
-struct _LinphoneStatusIcon;
-typedef void (*LinphoneStatusIconOnClickCallback)(struct _LinphoneStatusIcon *si, void *user_data);
-
-
-typedef struct _LinphoneStatusIconParams LinphoneStatusIconParams;
-
-LinphoneStatusIconParams *linphone_status_icon_params_new(void);
-LinphoneStatusIconParams *linphone_status_icon_params_ref(LinphoneStatusIconParams *obj);
-void linphone_status_icon_params_unref(LinphoneStatusIconParams *obj);
-
-void linphone_status_icon_params_set_title(LinphoneStatusIconParams *obj, const char *title);
-void linphone_status_icon_params_set_description(LinphoneStatusIconParams *obj, const char *desc);
-void linphone_status_icon_params_set_menu(LinphoneStatusIconParams *obj, GtkWidget *menu);
-void linphone_status_icon_params_set_on_click_cb(LinphoneStatusIconParams* obj, LinphoneStatusIconOnClickCallback cb, void *user_data);
-
-
-typedef void (*LinphoneStatusIconReadyCb)(void *user_data);
-
-typedef struct _LinphoneStatusIcon LinphoneStatusIcon;
-
-gboolean linphone_status_icon_init(LinphoneStatusIconReadyCb ready_cb, void* user_data);
-void linphone_status_icon_uninit(void);
-LinphoneStatusIcon *linphone_status_icon_get(void);
-const char *linphone_status_icon_get_implementation_name(const LinphoneStatusIcon *obj);
-void linphone_status_icon_start(LinphoneStatusIcon *obj, LinphoneStatusIconParams *params);
-void linphone_status_icon_enable_blinking(LinphoneStatusIcon *obj, gboolean enable);
diff --git a/gtk/status_notifier.c b/gtk/status_notifier.c
deleted file mode 100644
index 1cff84f45..000000000
--- a/gtk/status_notifier.c
+++ /dev/null
@@ -1,643 +0,0 @@
-/*
-linphone, gtk-glade interface.
-Copyright (C) 2015 Belledonne Communications
-
-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 2
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include "status_notifier.h"
-#include
-#include
-
-#ifdef _MSC_VER
-#include
-#define getpid() _getpid()
-typedef int lppid_t;
-#else
-#include
-typedef pid_t lppid_t;
-#endif
-
-const gchar *bc_status_notifier_category_to_string(BcStatusNotifierCategory c) {
- switch(c){
- case BcStatusNotifierCategoryApplicationStatus:
- return "ApplicationStatus";
- case BcStatusNotifierCategoryCommunications:
- return "Communications";
- case BcStatusNotifierCategorySystemService:
- return "SystemServices";
- case BcStatusNotifierCategoryHardware:
- return "Hardware";
- }
- return "bad category";
-}
-
-const gchar *bc_status_notifier_status_to_string(BcStatusNotifierStatus s) {
- switch(s){
- case BcStatusNotifierStatusPassive:
- return "Passive";
- case BcStatusNotifierStatusActive:
- return "Active";
- case BcStatusNotifierStatusNeedsAttention:
- return "NeedsAttention";
- }
- return "badstatus";
-};
-
-
-struct _BcStatusNotifierToolTip {
- char *icon_name;
- char *title;
- char *text;
- int ref;
-};
-
-BcStatusNotifierToolTip *bc_status_notifier_tool_tip_new(const char *icon_name, const char *title, const char *text) {
- BcStatusNotifierToolTip *obj = (BcStatusNotifierToolTip *)g_new0(BcStatusNotifierToolTip, 1);
- if(icon_name) obj->icon_name = g_strdup(icon_name);
- if(title) obj->title = g_strdup(title);
- if(text) obj->text = g_strdup(text);
- return obj;
-}
-
-BcStatusNotifierToolTip *bc_status_notifier_tool_tip_ref(BcStatusNotifierToolTip *obj) {
- obj->ref++;
- return obj;
-}
-
-void bc_status_notifier_tool_tip_unref(BcStatusNotifierToolTip *obj) {
- obj->ref--;
- if(obj->ref < 0) {
- if(obj->icon_name) g_free(obj->icon_name);
- if(obj->title) g_free(obj->title);
- if(obj->text) g_free(obj->text);
- g_free(obj);
- }
-}
-
-static GVariant *_bc_status_notifier_tool_tip_to_variant(const BcStatusNotifierToolTip *obj) {
- GVariant *attr[] = {
- g_variant_new_string(obj->icon_name ? obj->icon_name : ""),
- g_variant_new_array(G_VARIANT_TYPE_VARIANT, NULL, 0),
- g_variant_new_string(obj->title ? obj->title : ""),
- g_variant_new_string(obj->text ? obj->text : ""),
- };
- return g_variant_new_tuple(attr, 4);
-}
-
-
-static const char *_bc_status_notifier_to_string[] = {
- "vertical",
- "horizontal",
- NULL
-};
-
-static BcStatusNotifierOrientation _bc_status_notifier_orientation_from_string(const char *s) {
- int i;
- for(i=0; _bc_status_notifier_to_string[i] && g_strcmp0(s, _bc_status_notifier_to_string[i]) == 0; i++);
- if(_bc_status_notifier_to_string[i]) return i;
- else return BcStatusNotifierOrientationVertical;
-}
-
-
-struct _BcStatusNotifierParams{
- char *prefix;
- int item_id;
- BcStatusNotifierCategory category;
- char *id;
- char *title;
- BcStatusNotifierStatus status;
- guint32 window_id;
- char *icon_name;
- char *overlay_icon_name;
- char *attention_icon_name;
- char *attention_movie_name;
- BcStatusNotifierToolTip *tool_tip;
- BcStatusNotifierSignalsVTable vtable;
- void *user_data;
- int ref;
-};
-
-#define DEFAULT_PREFIX "org.freedesktop"
-
-BcStatusNotifierParams *bc_status_notifier_params_new(void) {
- BcStatusNotifierParams *obj = (BcStatusNotifierParams *)g_new0(BcStatusNotifierParams, 1);
- obj->prefix = g_strdup(DEFAULT_PREFIX);
- return obj;
-}
-
-BcStatusNotifierParams *bc_status_notifier_params_ref(BcStatusNotifierParams *obj) {
- obj->ref++;
- return obj;
-}
-
-void bc_status_notifier_params_unref(BcStatusNotifierParams *obj) {
- obj->ref--;
- if(obj->ref < 0) {
- if(obj->prefix) g_free(obj->prefix);
- if(obj->id) g_free(obj->id);
- if(obj->title) g_free(obj->title);
- if(obj->icon_name) g_free(obj->icon_name);
- if(obj->overlay_icon_name) g_free(obj->overlay_icon_name);
- if(obj->attention_icon_name) g_free(obj->attention_icon_name);
- if(obj->attention_movie_name) g_free(obj->attention_movie_name);
- if(obj->tool_tip) bc_status_notifier_tool_tip_unref(obj->tool_tip);
- g_free(obj);
- }
-}
-
-void bc_status_notifier_params_set_dbus_prefix(BcStatusNotifierParams *obj, const char *prefix) {
- if(obj->prefix) g_free(obj->prefix);
- if(prefix) obj->prefix = g_strdup(prefix);
- else obj->prefix = NULL;
-}
-
-const char *bc_satus_notifier_params_get_dbus_prefix(const BcStatusNotifierParams *obj) {
- return obj->prefix;
-}
-
-void bc_status_notifier_params_set_item_id(BcStatusNotifierParams *obj, int item_id) {
- obj->item_id = item_id;
-}
-
-int bc_status_notifier_params_get_item_id(const BcStatusNotifierParams *obj) {
- return obj->item_id;
-}
-
-void bc_status_notifier_params_set_category(BcStatusNotifierParams *obj, BcStatusNotifierCategory category) {
- obj->category = category;
-}
-
-BcStatusNotifierCategory bc_status_notifier_params_get_category(const BcStatusNotifierParams *obj) {
- return obj->category;
-}
-
-void bc_status_notifier_params_set_id(BcStatusNotifierParams *obj, const char *id) {
- if(obj->id) g_free(obj->id);
- if(id) obj->id = g_strdup(id);
- else obj->id = NULL;
-}
-
-const char *bc_status_notifier_params_get_id(const BcStatusNotifierParams *obj) {
- return obj->id;
-}
-
-void bc_status_notifier_params_set_title(BcStatusNotifierParams *obj, const char *title) {
- if(obj->title) g_free(obj->title);
- if(title) obj->title = g_strdup(title);
- else obj->title = NULL;
-}
-
-const char *bc_status_notifier_params_get_title(const BcStatusNotifierParams *obj) {
- return obj->title;
-}
-
-void bc_status_notifier_params_set_status(BcStatusNotifierParams *obj, BcStatusNotifierStatus status) {
- obj->status = status;
-}
-
-BcStatusNotifierStatus bc_status_notifier_params_get_status(const BcStatusNotifierParams *obj) {
- return obj->status;
-}
-
-void bc_status_notifier_params_set_window_id(BcStatusNotifierParams *obj, guint32 window_id) {
- obj->window_id = window_id;
-}
-
-guint32 bc_status_notifier_params_get_window_id(const BcStatusNotifierParams *obj) {
- return obj->window_id;
-}
-
-void bc_status_notifier_params_set_icon_name(BcStatusNotifierParams *obj, const char *name) {
- if(obj->icon_name) g_free(obj->icon_name);
- if(name) obj->icon_name = g_strdup(name);
- else obj->icon_name = NULL;
-}
-
-const char *bc_status_notifier_params_get_icon_name(const BcStatusNotifierParams *obj) {
- return obj->icon_name;
-}
-
-void bc_status_notifier_params_set_overlay_icon_name(BcStatusNotifierParams *obj, const char *name) {
- if(obj->overlay_icon_name) g_free(obj->overlay_icon_name);
- if(name) obj->overlay_icon_name = g_strdup(name);
- else obj->overlay_icon_name = NULL;
-}
-
-const char *bc_status_notifier_params_get_overlay_icon_name(const BcStatusNotifierParams *obj) {
- return obj->overlay_icon_name;
-}
-
-void bc_status_notifier_params_set_attention_icon_name(BcStatusNotifierParams *obj, const char *name) {
- if(obj->attention_icon_name) g_free(obj->attention_icon_name);
- if(name) obj->attention_icon_name = g_strdup(name);
- else obj->attention_icon_name = NULL;
-}
-
-const char *bc_status_notifier_params_get_attention_icon_name(const BcStatusNotifierParams *obj) {
- return obj->attention_icon_name;
-}
-
-void bc_status_notifier_params_set_attention_movie_name(BcStatusNotifierParams *obj, const char *name) {
- if(obj->attention_movie_name) g_free(obj->attention_movie_name);
- if(name) obj->attention_movie_name = g_strdup(name);
- else obj->attention_movie_name = NULL;
-}
-
-const char *bc_status_notifier_params_get_attention_movie_name(const BcStatusNotifierParams *obj) {
- return obj->attention_movie_name;
-}
-
-void bc_status_notifier_params_set_tool_tip(BcStatusNotifierParams *obj, BcStatusNotifierToolTip *tool_tip) {
- if(obj->tool_tip) bc_status_notifier_tool_tip_unref(obj->tool_tip);
- if(tool_tip) obj->tool_tip = bc_status_notifier_tool_tip_ref(tool_tip);
- else obj->tool_tip = NULL;
-}
-
-const BcStatusNotifierToolTip *bc_status_notifier_params_get_tool_tip(const BcStatusNotifierParams *obj) {
- return obj->tool_tip;
-}
-
-void bc_status_notifier_params_set_vtable(BcStatusNotifierParams *obj, const BcStatusNotifierSignalsVTable *vtable, void *user_data) {
- obj->vtable = *vtable;
- obj->user_data = user_data;
-}
-
-
-struct _BcStatusNotifier {
- BcStatusNotifierParams *params;
- guint bus_owner_id;
- GDBusConnection *conn;
- BcStatusNotifierState state;
- BcStatusNotifierStateVTable vtable;
- void *user_data;
- int ref;
-};
-
-#define ITEM_NAME "StatusNotifierItem"
-#define WATCHER_NAME "StatusNotifierWatcher"
-#define CALL_TIMEOUT 1000
-
-#define STATUS_NOTIFIER_INTROSPECTION_DATA \
- " \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- "
-
-BcStatusNotifier *bc_status_notifier_new(void) {
- return (BcStatusNotifier *)g_new0(BcStatusNotifier, 1);
-}
-
-BcStatusNotifier *bc_status_notifier_ref(BcStatusNotifier *obj) {
- obj->ref++;
- return obj;
-}
-
-void bc_status_notifier_unref(BcStatusNotifier *obj) {
- obj->ref--;
- if(obj->ref < 0) {
- bc_status_notifier_stop(obj);
- if(obj->params) bc_status_notifier_params_unref(obj->params);
- g_free(obj);
- }
-}
-
-static GVariant *_bc_status_notifier_get_property_cb(
- GDBusConnection *connection,
- const gchar *sender,
- const gchar *object_path,
- const gchar *interface_name,
- const gchar *property_name,
- GError **error,
- BcStatusNotifier *sn) {
-
-
- GVariant *value = NULL;
- if(g_strcmp0(property_name, "Category") == 0) {
- value = g_variant_new_string(bc_status_notifier_category_to_string(sn->params->category));
- } else if(g_strcmp0(property_name, "Id") == 0) {
- value = g_variant_new_string(sn->params->id ? sn->params->id : "");
- } else if(g_strcmp0(property_name, "Title") == 0) {
- value = g_variant_new_string(sn->params->title ? sn->params->title : "");
- } else if(g_strcmp0(property_name, "Status") == 0) {
- value = g_variant_new_string(bc_status_notifier_status_to_string(sn->params->status));
- } else if(g_strcmp0(property_name, "WindowId") == 0) {
- value = g_variant_new_uint32(sn->params->window_id);
- } else if(g_strcmp0(property_name, "IconName") == 0) {
- value = g_variant_new_string(sn->params->icon_name ? sn->params->icon_name : "");
- } else if(g_strcmp0(property_name, "IconPixmap") == 0) {
- value = g_variant_new_array(G_VARIANT_TYPE_VARIANT, NULL, 0);
- } else if(g_strcmp0(property_name, "OverlayIconName") == 0) {
- value = g_variant_new_string(sn->params->overlay_icon_name ? sn->params->overlay_icon_name : "");
- } else if(g_strcmp0(property_name, "OverlayIconPixmap") == 0) {
- value = g_variant_new_array(G_VARIANT_TYPE_VARIANT, NULL, 0);
- } else if(g_strcmp0(property_name, "AttentionIconName") == 0) {
- value = g_variant_new_string(sn->params->attention_icon_name ? sn->params->attention_icon_name : "");
- } else if(g_strcmp0(property_name, "AttentionIconPixmap") == 0) {
- value = g_variant_new_array(G_VARIANT_TYPE_VARIANT, NULL, 0);
- } else if(g_strcmp0(property_name, "AttentionMovieName") == 0) {
- value = g_variant_new_string(sn->params->attention_movie_name ? sn->params->attention_movie_name : "");
- } else if(g_strcmp0(property_name, "ToolTip") == 0) {
- if(sn->params->tool_tip) {
- value = _bc_status_notifier_tool_tip_to_variant(sn->params->tool_tip);
- } else {
- BcStatusNotifierToolTip *tool_tip = bc_status_notifier_tool_tip_new("", "", "");
- value = _bc_status_notifier_tool_tip_to_variant(tool_tip);
- bc_status_notifier_tool_tip_unref(tool_tip);
- }
- }
- return value;
-}
-
-static void _bc_status_notifier_method_call_cb(
- GDBusConnection *connection,
- const gchar *sender,
- const gchar *object_path,
- const gchar *interface_name,
- const gchar *method_name,
- GVariant *parameters,
- GDBusMethodInvocation *invocation,
- BcStatusNotifier *sn) {
-
- if(g_strcmp0(method_name, "ContextMenu") == 0) {
- if(sn->params->vtable.context_menu_called_cb) {
- int x, y;
- g_variant_get_child(parameters, 0, "i", &x);
- g_variant_get_child(parameters, 1, "i", &y);
- sn->params->vtable.context_menu_called_cb(sn, x, y, sn->params->user_data);
- }
- } else if(g_strcmp0(method_name, "Activate") == 0) {
- if(sn->params->vtable.activate_called_cb) {
- int x, y;
- g_variant_get_child(parameters, 0, "i", &x);
- g_variant_get_child(parameters, 1, "i", &y);
- sn->params->vtable.activate_called_cb(sn, x, y, sn->params->user_data);
- }
- } else if(g_strcmp0(method_name, "SecondaryActivate") == 0) {
- if(sn->params->vtable.secondary_activate_called_cb) {
- int x, y;
- g_variant_get_child(parameters, 0, "i", &x);
- g_variant_get_child(parameters, 1, "i", &y);
- sn->params->vtable.secondary_activate_called_cb(sn, x, y, sn->params->user_data);
- }
- } else if(g_strcmp0(method_name, "Scroll") == 0) {
- if(sn->params->vtable.scroll_called_cb) {
- int delta;
- BcStatusNotifierOrientation orient;
- char *orient_str;
- g_variant_get_child(parameters, 0, "i", &delta);
- g_variant_get_child(parameters, 1, "&s", &orient_str);
- orient = _bc_status_notifier_orientation_from_string(orient_str);
- sn->params->vtable.scroll_called_cb(sn, delta, orient, sn->params->user_data);
- }
- }
- g_dbus_method_invocation_return_value(invocation, NULL);
-}
-
-static void _bc_status_notifier_bus_acquired_cb(GDBusConnection *conn, const gchar *name, BcStatusNotifier *sn) {
- char *interface_name = g_strdup_printf("%s.%s", sn->params->prefix, ITEM_NAME);
- char *item_path = g_strdup_printf("/%s", ITEM_NAME);
- GDBusInterfaceVTable vtable;
- GDBusNodeInfo *node_info = g_dbus_node_info_new_for_xml(STATUS_NOTIFIER_INTROSPECTION_DATA, NULL);
- GDBusInterfaceInfo *interface = g_dbus_node_info_lookup_interface(
- node_info,
- interface_name
- );
-
- memset(&vtable, 0, sizeof(vtable));
- vtable.method_call = (GDBusInterfaceMethodCallFunc)_bc_status_notifier_method_call_cb;
- vtable.get_property = (GDBusInterfaceGetPropertyFunc)_bc_status_notifier_get_property_cb;
- g_free(interface_name);
-
- sn->conn = conn;
-
- g_dbus_connection_register_object(
- conn,
- item_path,
- interface,
- &vtable,
- bc_status_notifier_ref(sn),
- (GDestroyNotify)bc_status_notifier_unref,
- NULL
- );
- g_free(item_path);
-
- g_dbus_node_info_unref(node_info);
-}
-
-static void _bc_status_notifier_name_acquired_cb(GDBusConnection *conn, const gchar *name, BcStatusNotifier *sn) {
- GVariant *item_name = g_variant_new_string(name);
- GVariant *parameters = g_variant_new_tuple(&item_name, 1);
- char *watcher_bus_name = g_strdup_printf("%s.%s", sn->params->prefix, WATCHER_NAME);
- char *watcher_interface_name = watcher_bus_name;
- char *watcher_path = g_strdup_printf("/%s", WATCHER_NAME);
-
- g_dbus_connection_call(
- conn,
- watcher_bus_name,
- watcher_path,
- watcher_interface_name,
- "RegisterStatusNotifierItem",
- parameters,
- NULL,
- G_DBUS_CALL_FLAGS_NONE,
- CALL_TIMEOUT,
- NULL,
- NULL,
- NULL
- );
- g_free(watcher_bus_name);
- g_free(watcher_path);
-
- sn->state = BcStatusNotifierStateRunning;
- if(sn->vtable.success) sn->vtable.success(sn, sn->user_data);
-}
-
-static void _bc_status_notifier_name_lost(GDBusConnection *conn, const gchar *name, BcStatusNotifier *sn) {
- if(conn == NULL) {
- sn->state = BcStatusNotifierStateStopped;
- if(sn->vtable.fail) sn->vtable.fail(sn, sn->user_data);
- }
-}
-
-void bc_status_notifier_start(BcStatusNotifier* obj, BcStatusNotifierParams* params, const BcStatusNotifierStateVTable *vtable, void *user_data) {
- if(obj->state == BcStatusNotifierStateStopped) {
- lppid_t pid = getpid();
- char *dbus_name = g_strdup_printf("%s.%s-%d-%d", params->prefix, ITEM_NAME, pid, params->item_id);
-
- if(obj->params) bc_status_notifier_params_unref(obj->params);
- obj->params = bc_status_notifier_params_ref(params);
- if(vtable) obj->vtable = *vtable;
- else {
- obj->vtable.success = NULL;
- obj->vtable.fail = NULL;
- }
- obj->user_data = user_data;
- obj->state = BcStatusNotifierStateStarting;
- obj->bus_owner_id = g_bus_own_name(
- G_BUS_TYPE_SESSION,
- dbus_name,
- G_BUS_NAME_OWNER_FLAGS_NONE,
- (GBusAcquiredCallback)_bc_status_notifier_bus_acquired_cb,
- (GBusNameAcquiredCallback)_bc_status_notifier_name_acquired_cb,
- (GBusNameLostCallback)_bc_status_notifier_name_lost,
- bc_status_notifier_ref(obj),
- (GDestroyNotify)bc_status_notifier_unref
- );
- g_free(dbus_name);
- }
-}
-
-void bc_status_notifier_stop(BcStatusNotifier *obj) {
- if(obj->state == BcStatusNotifierStateRunning) {
- g_bus_unown_name(obj->bus_owner_id);
- obj->bus_owner_id = 0;
- obj->conn = NULL;
- obj->state = BcStatusNotifierStateStopped;
- }
-}
-
-const BcStatusNotifierParams *bc_status_notifier_get_params(const BcStatusNotifier *obj) {
- return obj->params;
-}
-
-static void _bc_status_notifier_emit_signal(const BcStatusNotifier *obj, const char *sig_name, GVariant *parameters) {
- char *item_interface_name = g_strdup_printf("%s.%s", obj->params->prefix, ITEM_NAME);
- char *item_path = g_strdup_printf("/%s", ITEM_NAME);
- g_dbus_connection_emit_signal(
- obj->conn,
- NULL,
- item_path,
- item_interface_name,
- sig_name,
- parameters,
- NULL
- );
- g_free(item_interface_name);
- g_free(item_path);
-}
-
-void bc_status_notifier_update_title(BcStatusNotifier *obj, const char *title) {
- bc_status_notifier_params_set_title(obj->params, title);
- _bc_status_notifier_emit_signal(obj, "NewTitle", NULL);
-}
-
-void bc_status_notifier_update_icon(BcStatusNotifier *obj, const char *icon_name) {
- bc_status_notifier_params_set_icon_name(obj->params, icon_name);
- _bc_status_notifier_emit_signal(obj, "NewIcon", NULL);
-}
-
-void bc_status_notifier_update_attention_icon(BcStatusNotifier *obj, const char *icon_name) {
- bc_status_notifier_params_set_attention_icon_name(obj->params, icon_name);
- _bc_status_notifier_emit_signal(obj, "NewAttentionIcon", NULL);
-}
-
-void bc_status_notifier_update_overlay_icon(BcStatusNotifier *obj, const char *icon_name) {
- bc_status_notifier_params_set_overlay_icon_name(obj->params, icon_name);
- _bc_status_notifier_emit_signal(obj, "NewOverlayIcon", NULL);
-}
-
-void bc_status_notifier_update_tool_tip(BcStatusNotifier *obj, BcStatusNotifierToolTip *tool_tip) {
- bc_status_notifier_params_set_tool_tip(obj->params, tool_tip);
- _bc_status_notifier_emit_signal(obj, "NewToolTip", NULL);
-}
-
-void bc_status_notifier_update_status(BcStatusNotifier *obj, BcStatusNotifierStatus status) {
- GVariant *status_var = g_variant_new_string(bc_status_notifier_status_to_string(status));
- GVariant *parameter = g_variant_new_tuple(&status_var, 1);
- bc_status_notifier_params_set_status(obj->params, status);
- _bc_status_notifier_emit_signal(obj, "NewStatus", parameter);
-}
-
-
-typedef struct _BcWatcherDetectionCtx {
- char *prefix;
- guint watcher_id;
- BcStatusNotifierSupportDetectionCb cb;
- void *user_data;
-} BcWatcherDetectionCtx;
-
-static void _bc_watcher_detection_ctx_free(BcWatcherDetectionCtx *obj) {
- g_free(obj->prefix);
- g_free(obj);
-}
-
-static void _bc_watcher_name_appeared_cb(GDBusConnection *conn, const char *name, const char *name_owner, BcWatcherDetectionCtx *ctx) {
- g_bus_unwatch_name(ctx->watcher_id);
- if(ctx->cb) ctx->cb(ctx->prefix, 1, ctx->user_data);
-}
-
-static void _bc_watcher_name_vannished_cb(GDBusConnection *conn, const char *name, BcWatcherDetectionCtx *ctx) {
- g_bus_unwatch_name(ctx->watcher_id);
- if(ctx->cb) ctx->cb(ctx->prefix, 0, ctx->user_data);
-}
-
-void bc_status_notifier_is_supported(const char* prefix, BcStatusNotifierSupportDetectionCb cb, void *user_data) {
- char *bus_name = g_strdup_printf("%s.%s", prefix, WATCHER_NAME);
- BcWatcherDetectionCtx *ctx = (BcWatcherDetectionCtx *)g_new0(BcWatcherDetectionCtx, 1);
- ctx->prefix = g_strdup(prefix);
- ctx->cb = cb;
- ctx->user_data = user_data;
-
- ctx->watcher_id = g_bus_watch_name(
- G_BUS_TYPE_SESSION,
- bus_name,
- G_BUS_NAME_WATCHER_FLAGS_NONE,
- (GBusNameAppearedCallback)_bc_watcher_name_appeared_cb,
- (GBusNameVanishedCallback)_bc_watcher_name_vannished_cb,
- ctx,
- (GDestroyNotify)_bc_watcher_detection_ctx_free
- );
- g_free(bus_name);
-}
diff --git a/gtk/status_notifier.h b/gtk/status_notifier.h
deleted file mode 100644
index 22d95ebae..000000000
--- a/gtk/status_notifier.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
-linphone, gtk-glade interface.
-Copyright (C) 2015 Belledonne Communications
-
-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 2
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-/**
- * BcStatusNotifier is an implementation of the StatusNotiferItem standard defined by freedesktop.org.
- * It is a new way to manage status icons on GNU/Linux systems by using D-Bus. It is implemented by
- * Unity desktop environmemt and it is the only way to create status icons on KDE 5.
- * Visit http://freedesktop.org/wiki/Specifications/StatusNotifierItem/ for more information.
- */
-
-#ifndef STATUS_NOTIFIER_H
-#define STATUS_NOTIFIER_H
-
-#include
-
-struct _BcStatusNotifier;
-
-
-typedef enum {
- BcStatusNotifierCategoryApplicationStatus,
- BcStatusNotifierCategoryCommunications,
- BcStatusNotifierCategorySystemService,
- BcStatusNotifierCategoryHardware
-} BcStatusNotifierCategory;
-
-const gchar *bc_status_notifier_category_to_string(BcStatusNotifierCategory c);
-
-
-typedef enum {
- BcStatusNotifierStatusPassive,
- BcStatusNotifierStatusActive,
- BcStatusNotifierStatusNeedsAttention
-} BcStatusNotifierStatus;
-
-const gchar *bc_status_notifier_status_to_string(BcStatusNotifierStatus s);
-
-
-typedef struct _BcStatusNotifierToolTip BcStatusNotifierToolTip;
-
-BcStatusNotifierToolTip *bc_status_notifier_tool_tip_new(const char *icon_name, const char *title, const char *text);
-BcStatusNotifierToolTip *bc_status_notifier_tool_tip_ref(BcStatusNotifierToolTip *obj);
-void bc_status_notifier_tool_tip_unref(BcStatusNotifierToolTip *obj);
-
-
-typedef enum _BcStatusNotifierOrientation {
- BcStatusNotifierOrientationVertical,
- BcStatusNotifierOrientationHorizontal
-} BcStatusNotifierOrientation;
-
-
-typedef void (*BcStatusNotifierContextMenuCalledCb)(struct _BcStatusNotifier *sn, int x, int y, void *user_data);
-typedef void (*BcStatusNotifierActivateCalledCb)(struct _BcStatusNotifier *sn, int x, int y, void *user_data);
-typedef void (*BcStatusNotifierSecondaryActivateCb)(struct _BcStatusNotifier *sn, int x, int y, void *user_data);
-typedef void (*BcStatusNotifierScrollCalledCb)(struct _BcStatusNotifier *sn, int delta, BcStatusNotifierOrientation o, void *user_data);
-
-typedef struct _BcStatusNotifierSignalsVTable {
- BcStatusNotifierContextMenuCalledCb context_menu_called_cb;
- BcStatusNotifierActivateCalledCb activate_called_cb;
- BcStatusNotifierSecondaryActivateCb secondary_activate_called_cb;
- BcStatusNotifierScrollCalledCb scroll_called_cb;
-} BcStatusNotifierSignalsVTable;
-
-
-typedef struct _BcStatusNotifierParams BcStatusNotifierParams;
-
-BcStatusNotifierParams *bc_status_notifier_params_new(void);
-BcStatusNotifierParams *bc_status_notifier_params_ref(BcStatusNotifierParams *obj);
-void bc_status_notifier_params_unref(BcStatusNotifierParams *obj);
-
-void bc_status_notifier_params_set_dbus_prefix(BcStatusNotifierParams *obj, const char *prefix);
-const char *bc_satus_notifier_params_get_dbus_prefix(const BcStatusNotifierParams *obj);
-
-void bc_status_notifier_params_set_item_id(BcStatusNotifierParams *obj, int item_id);
-int bc_status_notifier_params_get_item_id(const BcStatusNotifierParams *obj);
-
-void bc_status_notifier_params_set_category(BcStatusNotifierParams *obj, BcStatusNotifierCategory category);
-BcStatusNotifierCategory bc_status_notifier_params_get_category(const BcStatusNotifierParams *obj);
-
-void bc_status_notifier_params_set_id(BcStatusNotifierParams *obj, const char *id);
-const char *bc_status_notifier_params_get_id(const BcStatusNotifierParams *obj);
-
-void bc_status_notifier_params_set_title(BcStatusNotifierParams *obj, const char *title);
-const char *bc_status_notifier_params_get_title(const BcStatusNotifierParams *obj);
-
-void bc_status_notifier_params_set_status(BcStatusNotifierParams *obj, BcStatusNotifierStatus status);
-BcStatusNotifierStatus bc_status_notifier_params_get_status(const BcStatusNotifierParams *obj);
-
-void bc_status_notifier_params_set_window_id(BcStatusNotifierParams *obj, guint32 window_id);
-guint32 bc_status_notifier_params_get_window_id(const BcStatusNotifierParams *obj);
-
-void bc_status_notifier_params_set_icon_name(BcStatusNotifierParams *obj, const char *name);
-const char *bc_status_notifier_params_get_icon_name(const BcStatusNotifierParams *obj);
-
-void bc_status_notifier_params_set_overlay_icon_name(BcStatusNotifierParams *obj, const char *name);
-const char *bc_status_notifier_params_get_overlay_icon_name(const BcStatusNotifierParams *obj);
-
-void bc_status_notifier_params_set_attention_icon_name(BcStatusNotifierParams *obj, const char *icon_name);
-const char *bc_status_notifier_params_get_attention_icon_name(const BcStatusNotifierParams *obj);
-
-void bc_status_notifier_params_set_attention_movie_name(BcStatusNotifierParams *obj, const char *name);
-const char *bc_status_notifier_params_get_attention_movie_name(const BcStatusNotifierParams *obj);
-
-void bc_status_notifier_params_set_tool_tip(BcStatusNotifierParams *obj, BcStatusNotifierToolTip *tool_tip);
-const BcStatusNotifierToolTip *bc_status_notifier_params_get_tool_tip(const BcStatusNotifierParams *obj);
-
-void bc_status_notifier_params_set_vtable(BcStatusNotifierParams *obj, const BcStatusNotifierSignalsVTable *vtable, void *user_data);
-
-
-typedef enum _BcStatusNotifierState {
- BcStatusNotifierStateStopped,
- BcStatusNotifierStateStarting,
- BcStatusNotifierStateRunning
-} BcStatusNotifierState;
-
-
-typedef void (*BcStatusNotifierStartedCb)(struct _BcStatusNotifier *sn, void *user_data);
-typedef void (*BcStatusNotifierStartingFailedCb)(struct _BcStatusNotifier *sn, void *user_data);
-
-typedef struct _BcStatusNotifierStateVTable {
- BcStatusNotifierStartedCb success;
- BcStatusNotifierStartingFailedCb fail;
-} BcStatusNotifierStateVTable;
-
-
-typedef struct _BcStatusNotifier BcStatusNotifier;
-
-BcStatusNotifier *bc_status_notifier_new(void);
-BcStatusNotifier *bc_status_notifier_ref(BcStatusNotifier *obj);
-void bc_status_notifier_unref(BcStatusNotifier *obj);
-
-void bc_status_notifier_start(BcStatusNotifier* obj, BcStatusNotifierParams* params, const BcStatusNotifierStateVTable* vtable, void* user_data);
-void bc_status_notifier_stop(BcStatusNotifier* obj);
-
-const BcStatusNotifierParams *bc_status_notifier_get_params(const BcStatusNotifier *obj);
-void bc_status_notifier_update_title(BcStatusNotifier* obj, const char* title);
-void bc_status_notifier_update_icon(BcStatusNotifier* obj, const char* icon_name);
-void bc_status_notifier_update_attention_icon(BcStatusNotifier* obj, const char* icon_name);
-void bc_status_notifier_update_overlay_icon(BcStatusNotifier* obj, const char* icon_name);
-void bc_status_notifier_update_tool_tip(BcStatusNotifier* obj, BcStatusNotifierToolTip* tool_tip);
-void bc_status_notifier_update_status(BcStatusNotifier* obj, BcStatusNotifierStatus status);
-
-
-typedef void (*BcStatusNotifierSupportDetectionCb)(const char *prefix, gboolean is_supported, void *user_data);
-
-void bc_status_notifier_is_supported(const char* prefix, BcStatusNotifierSupportDetectionCb cb, void *user_data);
-
-#endif
\ No newline at end of file
diff --git a/gtk/stock_people.png b/gtk/stock_people.png
deleted file mode 100644
index ed2d33b9f..000000000
Binary files a/gtk/stock_people.png and /dev/null differ
diff --git a/gtk/support.c b/gtk/support.c
deleted file mode 100644
index df6006ee0..000000000
--- a/gtk/support.c
+++ /dev/null
@@ -1,257 +0,0 @@
-#include "linphone.h"
-
-#include "linphone/lpconfig.h"
-
-static GList *pixmaps_directories = NULL;
-
-/* Use this function to set the directory containing installed pixmaps. */
-void
-add_pixmap_directory (const gchar *directory)
-{
- pixmaps_directories = g_list_prepend (pixmaps_directories,
- g_strdup (directory));
-}
-
-/* This is an internally used function to find pixmap files. */
-static gchar*
-find_pixmap_file (const gchar *filename)
-{
- GList *elem;
-
- /* We step through each of the pixmaps directory to find it. */
- elem = pixmaps_directories;
- while (elem)
- {
- gchar *pathname = g_strdup_printf ("%s%s%s", (gchar*)elem->data,
- G_DIR_SEPARATOR_S, filename);
- if (g_file_test (pathname, G_FILE_TEST_EXISTS))
- return pathname;
- g_free (pathname);
- elem = elem->next;
- }
- return NULL;
-}
-
-/* This is an internally used function to create pixmaps. */
-GtkWidget*
-create_pixmap (const gchar *filename)
-{
- gchar *pathname = NULL;
- GtkWidget *pixmap;
-
- if (!filename || !filename[0])
- return gtk_image_new ();
-
- pathname = find_pixmap_file (filename);
-
- if (!pathname)
- {
- g_warning (_("Couldn't find pixmap file: %s"), filename);
- return gtk_image_new ();
- }
-
- pixmap = gtk_image_new_from_file (pathname);
- g_free (pathname);
- return pixmap;
-}
-
-/* This is an internally used function to create pixmaps. */
-GdkPixbuf*
-create_pixbuf (const gchar *filename)
-{
- gchar *pathname = NULL;
- GdkPixbuf *pixbuf;
- GError *error = NULL;
-
- if (!filename || !filename[0])
- return NULL;
-
- pathname = find_pixmap_file (filename);
-
- if (!pathname)
- {
- g_warning (_("Couldn't find pixmap file: %s"), filename);
- return NULL;
- }
-
- pixbuf = gdk_pixbuf_new_from_file (pathname, &error);
- if (!pixbuf)
- {
- fprintf (stderr, "Failed to load pixbuf file: %s: %s\n",
- pathname, error->message);
- g_error_free (error);
- }
- g_free (pathname);
- return pixbuf;
-}
-
-/* This is an internally used function to create animations */
-GdkPixbufAnimation *
-create_pixbuf_animation(const gchar *filename)
-{
- gchar *pathname = NULL;
- GdkPixbufAnimation *pixbuf;
- GError *error = NULL;
-
- if (!filename || !filename[0])
- return NULL;
-
- pathname = find_pixmap_file (filename);
-
- if (!pathname){
- g_warning (_("Couldn't find pixmap file: %s"), filename);
- return NULL;
- }
-
- pixbuf = gdk_pixbuf_animation_new_from_file (pathname, &error);
- if (!pixbuf){
- fprintf (stderr, "Failed to load pixbuf file: %s: %s\n",
- pathname, error->message);
- g_error_free (error);
- }
- g_free (pathname);
- return pixbuf;
-}
-
-
-
-/* This is used to set ATK action descriptions. */
-void
-glade_set_atk_action_description (AtkAction *action,
- const gchar *action_name,
- const gchar *description)
-{
- gint n_actions, i;
-
- n_actions = atk_action_get_n_actions (action);
- for (i = 0; i < n_actions; i++)
- {
- if (!strcmp (atk_action_get_name (action, i), action_name))
- atk_action_set_description (action, i, description);
- }
-}
-
-
-static char linphone_lang[256]={0};
-
-/*lang has to be read before the config file is parsed...*/
-const char *linphone_gtk_get_lang(const char *config_file){
- FILE *f=fopen(config_file,"r");
- if (f){
- char tmp[256];
- while(fgets(tmp,sizeof(tmp),f)!=NULL){
- char *p;
- if ((p=strstr(tmp,"lang="))!=NULL){
- p+=5;
- sscanf(p,"%s",linphone_lang);
- g_message("Found lang %s",linphone_lang);
- break;
- }
- }
- fclose(f);
- }
- return linphone_lang;
-}
-
-void linphone_gtk_set_lang(const char *code){
- LpConfig *cfg=linphone_core_get_config(linphone_gtk_get_core());
- const char *curlang=g_getenv("LANGUAGE");
- if (curlang!=NULL && strncmp(curlang,code,2)==0) {
- /* do not loose the _territory@encoding part*/
- return;
- }
- lp_config_set_string(cfg,"GtkUi","lang",code);
- g_setenv("LANGUAGE",code,1);
-}
-
-const gchar *linphone_gtk_get_ui_config(const char *key, const char *def){
- LinphoneCore *lc=linphone_gtk_get_core();
- if (lc){
- LpConfig *cfg=linphone_core_get_config(linphone_gtk_get_core());
- return lp_config_get_string(cfg,"GtkUi",key,def);
- }else{
- g_error ("Cannot read config, no core created yet.");
- return NULL;
- }
-}
-
-int linphone_gtk_get_ui_config_int(const char *key, int def){
- LpConfig *cfg=linphone_core_get_config(linphone_gtk_get_core());
- return lp_config_get_int(cfg,"GtkUi",key,def);
-}
-
-void linphone_gtk_set_ui_config_int(const char *key , int val){
- LpConfig *cfg=linphone_core_get_config(linphone_gtk_get_core());
- lp_config_set_int(cfg,"GtkUi",key,val);
-}
-
-void linphone_gtk_set_ui_config(const char *key , const char * val){
- LpConfig *cfg=linphone_core_get_config(linphone_gtk_get_core());
- lp_config_set_string(cfg,"GtkUi",key,val);
-}
-
-const char *linphone_gtk_get_sound_path(const char *name){
- static char *ret=NULL;
- const char *file;
- const char *sound_dir;
- LinphoneFactory *factory = linphone_factory_get();
-
- file=linphone_gtk_get_ui_config(name,NULL);
- if (file==NULL){
- char *dirname=g_path_get_dirname(name);
- if (strcmp(dirname,".")!=0){
- g_free(dirname);
- return name;
- }
- g_free(dirname);
- file=name;
- }
- if (ret){
- g_free(ret);
- ret=NULL;
- }
- sound_dir = linphone_factory_get_sound_resources_dir(factory);
- ret=g_build_filename(sound_dir,name,NULL);
- return ret;
-}
-
-static void parse_item(const char *item, const char *window_name, GtkWidget *w, gboolean show){
- char tmp[64];
- char *dot;
- strcpy(tmp,item);
- dot=strchr(tmp,'.');
- if (dot){
- *dot='\0';
- dot++;
- if (strcmp(window_name,tmp)==0){
- GtkWidget *wd=linphone_gtk_get_widget(w,dot);
- if (wd) {
- if (!show) gtk_widget_hide(wd);
- else gtk_widget_show(wd);
- }
- }
- }
-}
-
-void linphone_gtk_visibility_set(const char *hiddens, const char *window_name, GtkWidget *w, gboolean show){
- char item[64];
- const char *i;
- const char *b;
- int len;
- for(b=i=hiddens;*i!='\0';++i){
- if (*i==' '){
- len=MIN(i-b,(int)sizeof(item)-1);
- strncpy(item,b,len);
- item[len]='\0';
- b=i+1;
- parse_item(item,window_name,w,show);
- }
- }
- len=MIN(i-b,(int)sizeof(item)-1);
- if (len>0){
- strncpy(item,b,len);
- item[len]='\0';
- parse_item(item,window_name,w,show);
- }
-}
-
diff --git a/gtk/tunnel_config.ui b/gtk/tunnel_config.ui
deleted file mode 100644
index af7eafd29..000000000
--- a/gtk/tunnel_config.ui
+++ /dev/null
@@ -1,407 +0,0 @@
-
-
-
-
-
- 1
- 65535
- 443
- 1
- 10
-
-
- 1
- 65535
- 8080
- 1
- 10
-
-
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 5
- Configure VoIP tunnel
- center-on-parent
- dialog
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 2
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 0
- none
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 12
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 5
- 2
- True
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Host
- right
-
-
-
-
- 275
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- False
- False
- True
- True
-
-
- 1
- 2
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Port
- right
-
-
- 1
- 2
-
-
-
-
- True
- True
- ●
- False
- False
- True
- True
- adjustment1
-
-
- 1
- 2
- 1
- 2
-
-
-
-
- Enabled
- True
- True
- False
- False
- 0
- True
- True
- radio_disable
-
-
- 1
- 2
- 2
- 3
-
-
-
-
- Disabled
- True
- True
- False
- False
- 0
- True
- True
- radio_enable
-
-
- 1
- 2
- 4
- 5
-
-
-
-
- Enable on purpose
- True
- True
- False
- False
- 0
- True
- True
- radio_enable
-
-
- 1
- 2
- 3
- 4
-
-
-
-
-
-
-
-
-
-
-
-
-
- True
- True
- 0
-
-
-
-
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- <b>VoIP anti-blocking (tunnel server)</b>
- True
-
-
-
-
- False
- True
- 0
-
-
-
-
- True
- False
- 0
- none
-
-
- True
- False
- 12
-
-
- True
- False
- 4
- 2
- True
-
-
- True
- False
- Host
-
-
-
-
- True
- False
- Port
-
-
- 1
- 2
-
-
-
-
- True
- False
- Username
-
-
- 2
- 3
-
-
-
-
- True
- False
- Password
-
-
- 3
- 4
-
-
-
-
- True
- True
- ●
- False
- False
- True
- True
- adjustment2
-
-
- 1
- 2
- 1
- 2
-
-
-
-
- True
- True
- ●
- False
- False
- True
- True
-
-
- 1
- 2
-
-
-
-
- True
- True
- ●
- False
- False
- True
- True
-
-
- 1
- 2
- 2
- 3
-
-
-
-
- True
- True
- False
- ●
- False
- False
- True
- True
-
-
- 1
- 2
- 3
- 4
-
-
-
-
-
-
-
-
- True
- False
- <b>Http proxy (optional)</b>
- True
-
-
-
-
- True
- True
- 1
-
-
-
-
- True
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- end
-
-
- gtk-ok
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- False
- True
-
-
-
- False
- False
- 0
-
-
-
-
- gtk-cancel
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- False
- True
-
-
-
- False
- False
- 1
-
-
-
-
- False
- True
- end
- 2
-
-
-
-
-
- button6
- button7
-
-
-
diff --git a/gtk/update.c b/gtk/update.c
deleted file mode 100644
index 9704b6c9e..000000000
--- a/gtk/update.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
-linphone, gtk-glade interface.
-Copyright (C) 2008 Simon MORLAT (simon.morlat@linphone.org)
-
-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 2
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include "linphone.h"
-
-#ifdef _WIN32
-
-#include
-
-static int linphone_gtk_create_version(const char *version_url, char *version, size_t size){
- DWORD dwDownloaded = 0;
- HINTERNET hSession = NULL, hConnect = NULL;
- int ret=-1;
-
- hSession=InternetOpen("Linphone",INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0);
-
- if (hSession==NULL) return -1;
-
- hConnect=InternetOpenUrl(hSession,version_url,NULL,0,0,0);
-
- if (hConnect==NULL) {
- InternetCloseHandle(hSession);
- return -1;
- }
- dwDownloaded=0;
- if (InternetReadFile(hConnect,version,size,&dwDownloaded) && dwDownloaded>0){
- version[dwDownloaded]='\0';
- ms_message("Got response: %s", version);
- /*check this not just html containing 404 not found*/
- if (strstr(version,"html")==0)
- ret=0;
- }
-
- // Close any open handles.
- if (hConnect) InternetCloseHandle(hConnect);
- if (hSession) InternetCloseHandle(hSession);
- return ret;
-}
-
-#else
-
-static int linphone_gtk_create_version(const char *url, char *version, size_t size){
-
- return -1;
-}
-
-#endif
-
-static void new_version_response(GtkWidget *dialog, int response_id, gpointer download_site){
- if (response_id==GTK_RESPONSE_YES){
- linphone_gtk_open_browser((const char*)download_site);
- }
- gtk_widget_destroy(dialog);
-}
-
-static gboolean popup_new_version(const char *download_site){
- GtkWidget *dialog;
- /* draw a question box. link to dialog_click callback */
- dialog = gtk_message_dialog_new (
- GTK_WINDOW(linphone_gtk_get_main_window()),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_QUESTION,
- GTK_BUTTONS_YES_NO,
- _("A more recent version is availalble from %s.\nWould you like to open a browser to download it ?"),
- download_site);
- g_signal_connect(G_OBJECT (dialog), "response",
- G_CALLBACK (new_version_response),
- (gpointer)download_site);
- /* actually show the box */
- gtk_widget_show(dialog);
- return FALSE;
-}
-
-static gboolean popup_version_ok(void){
- linphone_gtk_display_something(GTK_MESSAGE_INFO,_("You are running the lastest version."));
- return FALSE;
-}
-
-static int copytilldot(char *n, const char *v){
- int ret=0;
- while(*v!='\0' && *v!='.' && *v!='-' && *v!='\n' && *v!='\r' && *v!='\t'){
- *n=*v;
- ret++;
- v++;
- n++;
- }
- *n='\0';
- if (*v!='\0') ret=ret+1;
- return ret;
-}
-
-static int version_compare(const char *v1, const char *v2){
- char n1[16];
- char n2[16];
- int ret;
- if (*v1=='\0' && *v2=='\0') return 0;
- v1+=copytilldot(n1,v1);
- v2+=copytilldot(n2,v2);
- ms_message("Comparing %s <> %s",n1,n2);
- ret=strcmp(n1,n2);
- if (ret==0) return version_compare(v1,v2);
- else return ret;
-}
-
-static void *check_for_new_version(void *d){
- const char *version_url=(const char *)d;
- char version[256];
- if (linphone_gtk_create_version(version_url,version,sizeof(version))==0){
- if (version_compare(version,LINPHONE_VERSION)>0){
- const char *download_site=linphone_gtk_get_ui_config("download_site",NULL);
- if (download_site) {
- gdk_threads_enter();
- g_idle_add((GSourceFunc)popup_new_version,(gpointer)download_site);
- gdk_threads_leave();
- }
- }else{
- if (linphone_gtk_get_ui_config_int("update_check_menu",0)){
- gdk_threads_enter();
- g_idle_add((GSourceFunc)popup_version_ok,NULL);
- gdk_threads_leave();
- }
- }
- }
- return NULL;
-}
-
-void linphone_gtk_check_for_new_version(void){
- ortp_thread_t thread;
- static gboolean done=FALSE;
- const char *version_url;
- if (done) return;
- done=TRUE;
- version_url=linphone_gtk_get_ui_config("last_version_url",NULL);
- if (version_url==NULL) return ;
- ortp_thread_create(&thread,NULL,check_for_new_version,(void*)version_url);
-}
-
-/*called when the user clicks on the "Check for updates" menu item */
-void linphone_gtk_check_for_updates(void){
- linphone_gtk_check_for_new_version();
-}
diff --git a/gtk/utils.c b/gtk/utils.c
deleted file mode 100644
index f3e19efda..000000000
--- a/gtk/utils.c
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
-linphone, gtk-glade interface.
-Copyright (C) 2008 Simon MORLAT (simon.morlat@linphone.org)
-
-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 2
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include "linphone.h"
-
-static void run_gtk(void){
- while (gtk_events_pending ())
- gtk_main_iteration ();
-
-}
-
-void *linphone_gtk_wait(LinphoneCore *lc, void *ctx, LinphoneWaitingState ws, const char *purpose, float progress){
- GtkWidget *w;
- switch(ws){
- case LinphoneWaitingStart:
- gdk_threads_enter();
- w=linphone_gtk_create_window("waiting", NULL);
- gtk_window_set_transient_for(GTK_WINDOW(w),GTK_WINDOW(linphone_gtk_get_main_window()));
- gtk_window_set_position(GTK_WINDOW(w),GTK_WIN_POS_CENTER_ON_PARENT);
- if (purpose) {
- gtk_progress_bar_set_text(
- GTK_PROGRESS_BAR(linphone_gtk_get_widget(w,"progressbar")),
- purpose);
- }
- gtk_widget_show(w);
- /*g_message("Creating waiting window");*/
- run_gtk();
- gdk_threads_leave();
- return w;
- break;
- case LinphoneWaitingProgress:
- w=(GtkWidget*)ctx;
- gdk_threads_enter();
- if (progress>=0){
- gtk_progress_bar_set_fraction(
- GTK_PROGRESS_BAR(linphone_gtk_get_widget(w,"progressbar")),
- progress);
-
-
- }else {
- gtk_progress_bar_pulse(
- GTK_PROGRESS_BAR(linphone_gtk_get_widget(w,"progressbar"))
- );
- }
- /*g_message("Updating progress");*/
- run_gtk();
- gdk_threads_leave();
- g_usleep(50000);
- return w;
- break;
- case LinphoneWaitingFinished:
- w=(GtkWidget*)ctx;
- gdk_threads_enter();
- gtk_widget_destroy(w);
- run_gtk();
- gdk_threads_leave();
- return NULL;
- break;
- }
- return NULL;
-}
-
-GdkPixbuf *_gdk_pixbuf_new_from_memory_at_scale(const void *data, gint len, gint w, gint h, gboolean preserve_ratio){
- GInputStream *stream=g_memory_input_stream_new_from_data (data,len,NULL);
- GError *error=NULL;
-
- GdkPixbuf *pbuf=gdk_pixbuf_new_from_stream_at_scale (stream,w,h,preserve_ratio,NULL,&error);
- g_input_stream_close(stream,NULL,NULL);
- g_object_unref(G_OBJECT(stream));
- if (pbuf==NULL){
- g_warning("Could not open image from memory");
- }
- return pbuf;
-}
-
-GtkWidget * _gtk_image_new_from_memory_at_scale(const void *data, gint len, gint w, gint h, gboolean preserve_ratio){
- GtkWidget *image;
- GdkPixbuf *pbuf=_gdk_pixbuf_new_from_memory_at_scale(data,len,w,h,preserve_ratio);
- if (pbuf==NULL) return NULL;
- image=gtk_image_new_from_pixbuf(pbuf);
- g_object_unref(G_OBJECT(pbuf));
- return image;
-}
-
-void linphone_gtk_reload_sound_devices(void){
- GtkWidget *mw=linphone_gtk_get_main_window();
- GtkWidget *pb=(GtkWidget*)g_object_get_data(G_OBJECT(mw),"parameters");
- linphone_core_reload_sound_devices(linphone_gtk_get_core());
- if (pb) linphone_gtk_fill_soundcards(pb);
-}
-
-void linphone_gtk_reload_video_devices(void){
- GtkWidget *mw=linphone_gtk_get_main_window();
- GtkWidget *pb=(GtkWidget*)g_object_get_data(G_OBJECT(mw),"parameters");
- linphone_core_reload_video_devices(linphone_gtk_get_core());
- if (pb) linphone_gtk_fill_webcams(pb);
-}
-
-bool_t linphone_gtk_is_friend(LinphoneCore *lc, const char *contact) {
- LinphoneAddress *addr = linphone_core_interpret_url(lc, contact);
- if (addr) {
- char *uri = linphone_address_as_string_uri_only(addr);
- LinphoneFriend *lf = linphone_core_get_friend_by_address(lc, uri);
- linphone_address_unref(addr);
- if (uri) ms_free(uri);
- if (lf) return TRUE;
- }
- return FALSE;
-}
-
-#ifdef HAVE_LIBUDEV_H
-
-static struct udev *udevroot=NULL;
-static struct udev_monitor *monitor=NULL;
-static GIOChannel *monitor_channel=NULL;
-static guint monitor_src_id;
-
-#include
-
-static gboolean on_monitor_data(GIOChannel *chan, GIOCondition cond, void *userdata){
- struct udev_device *dev=udev_monitor_receive_device(monitor);
- const char *subsys=udev_device_get_subsystem(dev);
- const char *type=udev_device_get_action(dev);
- g_message("USB event arrived for class %s of action type %s",subsys,type);
- if (strcmp(subsys,"sound")==0) linphone_gtk_reload_sound_devices();
- if (strcmp(subsys,"video4linux")==0) linphone_gtk_reload_video_devices();
- udev_device_unref(dev);
- return TRUE;
-}
-
-void linphone_gtk_monitor_usb(void){
- int fd;
- udevroot=udev_new();
- if (!udevroot) return;
- monitor=udev_monitor_new_from_netlink(udevroot,"udev");
- udev_monitor_filter_add_match_subsystem_devtype(monitor,"sound",NULL);
- udev_monitor_filter_add_match_subsystem_devtype(monitor,"video4linux",NULL);
- fd=udev_monitor_get_fd(monitor);
- monitor_channel=g_io_channel_unix_new(fd);
- monitor_src_id=g_io_add_watch(monitor_channel,G_IO_IN,on_monitor_data,NULL);
- udev_monitor_enable_receiving(monitor);
-}
-
-void linphone_gtk_unmonitor_usb(void){
- if (monitor) udev_monitor_unref(monitor);
- if (udevroot) udev_unref(udevroot);
- if (monitor_channel) {
- g_source_remove(monitor_src_id);
- g_io_channel_unref(monitor_channel);
- }
-}
-
-#else
-
-void linphone_gtk_monitor_usb(void){
-}
-void linphone_gtk_unmonitor_usb(void){
-}
-
-#endif
-
-
diff --git a/gtk/videowindow.c b/gtk/videowindow.c
deleted file mode 100644
index f7077041b..000000000
--- a/gtk/videowindow.c
+++ /dev/null
@@ -1,394 +0,0 @@
-/*
-linphone, gtk interface.
-Copyright (C) 2014 Belledonne Communications SARL
-
-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 2
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include "linphone.h"
-
-#ifdef GDK_WINDOWING_X11
-#include
-#elif defined(_WIN32)
-#include
-#elif defined(__APPLE__)
-extern void *gdk_quartz_window_get_nswindow(GdkWindow *window);
-extern void *gdk_quartz_window_get_nsview(GdkWindow *window);
-#endif
-
-#include
-
-enum {
- TARGET_STRING,
- TARGET_TEXT,
- TARGET_URILIST
-};
-
-static GtkTargetEntry targets[] = {
- { "text/uri-list", GTK_TARGET_OTHER_APP, TARGET_URILIST },
-};
-
-static void set_video_controls_position(GtkWidget *video_window);
-
-static void on_end_of_play(LinphonePlayer *player){
- linphone_player_close(player);
-}
-
-static void drag_data_received(GtkWidget *widget, GdkDragContext *context, gint x, gint y,
- GtkSelectionData *selection_data, guint target_type, guint time, gpointer user_data){
- int datalen=gtk_selection_data_get_length(selection_data);
- const void *data=gtk_selection_data_get_data(selection_data);
- LinphoneCall *call=g_object_get_data(G_OBJECT(widget),"call");
-
- ms_message("target_type=%i, datalen=%i, data=%p",target_type,datalen,data);
- if (target_type==TARGET_URILIST && data){
- LinphonePlayer *player=linphone_call_get_player(call);
- char *path=ms_strdup(data);
- while (datalen&&(path[datalen-1]=='\r'||path[datalen-1]=='\n')) {
- path[datalen-1]='\0';
- datalen--;
- }
- if (player){
- LinphonePlayerCbs *cbs = linphone_player_get_callbacks(player);
- linphone_player_cbs_set_eof_reached(cbs, on_end_of_play);
- const char* filepath = (strstr(path,"file://")==path) ? path+strlen("file://") : path;
- if (linphone_player_open(player,filepath)==0){
-
- linphone_player_start(player);
- }else{
- GtkWidget *warn=gtk_message_dialog_new(GTK_WINDOW(widget),GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_ERROR,GTK_BUTTONS_CLOSE,
- _("Cannot play %s."),filepath);
- g_signal_connect(warn,"response",(GCallback)gtk_widget_destroy,NULL);
- gtk_widget_show(warn);
- }
- }
- ms_free(path);
- }
- gtk_drag_finish (context, TRUE, FALSE, time);
-}
-
-static gboolean drag_drop(GtkWidget *widget, GdkDragContext *drag_context, gint x, gint y, guint time, gpointer user_data){
-#if GTK_CHECK_VERSION(2,21,0)
- GList *l=gdk_drag_context_list_targets(drag_context);
- GList *elem;
-
- if (l){
- ms_message("drag_drop");
- /* Choose the best target type */
- for(elem=l;elem!=NULL;elem=g_list_next(elem)){
- char *name=gdk_atom_name(GDK_POINTER_TO_ATOM(elem->data));
- ms_message("target: %s",name);
- g_free(name);
- }
- }else{
- ms_warning("drag_drop no targets");
- return FALSE;
- }
-#endif
- return TRUE;
-}
-
-static void *get_native_handle(GdkWindow *gdkw){
-#ifdef GDK_WINDOWING_X11
- return (void *)GDK_WINDOW_XID(gdkw);
-#elif defined(_WIN32)
- return (void *)GDK_WINDOW_HWND(gdkw);
-#elif defined(__APPLE__)
- return (void *)gdk_quartz_window_get_nsview(gdkw);
-#endif
- g_warning("No way to get the native handle from gdk window");
- return 0;
-}
-
-static void _resize_video_window(GtkWidget *video_window, MSVideoSize vsize){
- MSVideoSize cur;
- gtk_window_get_size(GTK_WINDOW(video_window),&cur.width,&cur.height);
- if (vsize.width*vsize.height > cur.width*cur.height ||
- ms_video_size_get_orientation(vsize)!=ms_video_size_get_orientation(cur) ){
- gtk_window_resize(GTK_WINDOW(video_window),vsize.width,vsize.height);
- }
-}
-
-static gboolean resize_video_window(LinphoneCall *call){
- const LinphoneCallParams *params=linphone_call_get_current_params(call);
- if (params){
- MSVideoSize vsize=linphone_call_params_get_received_video_size(params);
- if (vsize.width>0 && vsize.height>0){
- GtkWidget *callview=(GtkWidget*)linphone_call_get_user_pointer(call);
- GtkWidget *video_window=(GtkWidget*)g_object_get_data(G_OBJECT(callview),"video_window");
- if (video_window){
- _resize_video_window(video_window,vsize);
- }
- }
- }
- return TRUE;
-}
-
-static void on_video_window_destroy(GtkWidget *w, guint timeout){
- g_source_remove(timeout);
- linphone_core_set_native_video_window_id(linphone_gtk_get_core(),LINPHONE_VIDEO_DISPLAY_NONE);
-}
-
-static void video_window_set_fullscreen(GtkWidget *w, gboolean val){
- if (val){
- g_object_set_data(G_OBJECT(w),"fullscreen",GINT_TO_POINTER(1));
- gtk_window_fullscreen(GTK_WINDOW(w));
- }else{
- g_object_set_data(G_OBJECT(w),"fullscreen",GINT_TO_POINTER(0));
- gtk_window_unfullscreen(GTK_WINDOW(w));
- }
-}
-/*old names in old version of gdk*/
-#ifndef GDK_KEY_Escape
-#define GDK_KEY_Escape GDK_Escape
-#define GDK_KEY_F GDK_F
-#define GDK_KEY_f GDK_f
-#endif
-
-static void on_video_window_key_press(GtkWidget *w, GdkEvent *ev, gpointer up){
- g_message("Key press event");
- switch(ev->key.keyval){
- case GDK_KEY_f:
- case GDK_KEY_F:
- video_window_set_fullscreen(w,TRUE);
- break;
- case GDK_KEY_Escape:
- video_window_set_fullscreen(w,FALSE);
- break;
- }
-}
-
-static void on_controls_response(GtkWidget *dialog, int response_id, GtkWidget *video_window){
-
- gtk_widget_destroy(dialog);
- switch(response_id){
- case GTK_RESPONSE_YES:
- video_window_set_fullscreen(video_window,TRUE);
- break;
- case GTK_RESPONSE_NO:
- video_window_set_fullscreen(video_window,FALSE);
- break;
- case GTK_RESPONSE_REJECT:
- {
- LinphoneCall *call=(LinphoneCall*)g_object_get_data(G_OBJECT(video_window),"call");
- linphone_call_terminate(call);
- }
- break;
- case GTK_RESPONSE_APPLY:
- {
- LinphoneCall *call=(LinphoneCall*)g_object_get_data(G_OBJECT(video_window),"call");
- char *path = (char *)linphone_gtk_get_snapshot_path();
- linphone_call_take_video_snapshot(call, path);
- }
- }
-
-}
-
-static gboolean on_controls_destroy(GtkWidget *w){
- GtkWidget *video_window=(GtkWidget*)g_object_get_data(G_OBJECT(w),"video_window");
- gint timeout=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w),"timeout"));
- if (timeout!=0){
- g_source_remove(timeout);
- g_object_set_data(G_OBJECT(w),"timeout",GINT_TO_POINTER(0));
- }
- if (video_window) {
- g_object_set_data(G_OBJECT(video_window),"controls",NULL);
- }
- return FALSE;
-}
-
-static gboolean _set_video_controls_position(GtkWidget *video_window){
- GtkWidget *w=(GtkWidget*)g_object_get_data(G_OBJECT(video_window),"controls");
- if (w){
- gint vw,vh;
- gint cw,ch;
- gint x,y;
- gtk_window_get_size(GTK_WINDOW(video_window),&vw,&vh);
- gtk_window_get_position(GTK_WINDOW(video_window),&x,&y);
- gtk_window_get_size(GTK_WINDOW(w),&cw,&ch);
- gtk_window_move(GTK_WINDOW(w),x+vw/2 - cw/2, y + vh - ch);
- }
- return FALSE;
-}
-
-static void set_video_controls_position(GtkWidget *video_window){
- /*do it a first time*/
- _set_video_controls_position(video_window);
- /*and schedule to do it a second time in order to workaround a bug in fullscreen mode, where poistion is not taken into account the first time*/
- g_timeout_add(0,(GSourceFunc)_set_video_controls_position,video_window);
-}
-
-static gboolean video_window_moved(GtkWidget *widget, GdkEvent *event, gpointer user_data){
- /*Workaround to Video window bug on Windows. */
- /* set_video_controls_position(widget); */
- return FALSE;
-}
-
-static gint do_gtk_widget_destroy(GtkWidget *w){
- gtk_widget_destroy(w);
- return FALSE;
-}
-
-static void schedule_video_controls_disapearance(GtkWidget *w){
- gint timeout=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w),"timeout"));
- if (timeout != 0) g_source_remove(timeout);
- timeout=g_timeout_add(3000,(GSourceFunc)do_gtk_widget_destroy,w);
- g_object_set_data(G_OBJECT(w),"timeout",GINT_TO_POINTER(timeout));
-}
-
-static GtkWidget *show_video_controls(GtkWidget *video_window){
- GtkWidget *w;
- w=(GtkWidget*)g_object_get_data(G_OBJECT(video_window),"controls");
- if (!w){
- gboolean isfullscreen=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(video_window),"fullscreen"));
- const char *stock_button=isfullscreen ? GTK_STOCK_LEAVE_FULLSCREEN : GTK_STOCK_FULLSCREEN;
- gint response_id=isfullscreen ? GTK_RESPONSE_NO : GTK_RESPONSE_YES ;
- GtkWidget *image = gtk_image_new_from_icon_name(linphone_gtk_get_ui_config("stop_call_icon_name","linphone-stop-call"), GTK_ICON_SIZE_BUTTON);
- GtkWidget *button;
- w=gtk_dialog_new_with_buttons("",GTK_WINDOW(video_window),GTK_DIALOG_DESTROY_WITH_PARENT,stock_button,response_id,NULL);
- gtk_window_set_opacity(GTK_WINDOW(w),0.5);
- gtk_window_set_decorated(GTK_WINDOW(w),FALSE);
- button=gtk_button_new_with_label(_("Hang up"));
- gtk_button_set_image(GTK_BUTTON(button), image);
- gtk_widget_show(button);
- gtk_dialog_add_action_widget(GTK_DIALOG(w),button,GTK_RESPONSE_REJECT);
- button=gtk_button_new_with_label(_("Take screenshot"));
- image = gtk_image_new_from_icon_name("linphone-take-screenshot", GTK_ICON_SIZE_BUTTON);
- gtk_button_set_image(GTK_BUTTON(button), image);
- gtk_widget_show(button);
- gtk_dialog_add_action_widget(GTK_DIALOG(w),button,GTK_RESPONSE_APPLY);
- g_signal_connect(w,"response",(GCallback)on_controls_response,video_window);
- schedule_video_controls_disapearance(w);
- g_signal_connect(w,"destroy",(GCallback)on_controls_destroy,NULL);
- g_object_set_data(G_OBJECT(w),"video_window",video_window);
- g_object_set_data(G_OBJECT(video_window),"controls",w);
- set_video_controls_position(video_window);
- gtk_widget_show(w);
- }else{
- schedule_video_controls_disapearance(w);
- }
- return w;
-}
-
-static GtkWidget *create_video_window(LinphoneCall *call){
- char *remote,*title;
- GtkWidget *video_window;
- const LinphoneAddress *addr;
- guint timeout;
- MSVideoSize vsize={MS_VIDEO_SIZE_CIF_W,MS_VIDEO_SIZE_CIF_H};
- GdkColor color;
-
- addr=linphone_call_get_remote_address(call);
- remote=linphone_gtk_address(addr);
- video_window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
- /*gtk_window_set_transient_for(GTK_WINDOW(video_window), GTK_WINDOW(linphone_gtk_get_main_window()));*/
- title=g_strdup_printf("%s - Video call with %s",linphone_gtk_get_ui_config("title","Linphone"),remote);
- ms_free(remote);
- gtk_window_set_title(GTK_WINDOW(video_window),title);
- g_free(title);
- gtk_window_resize(GTK_WINDOW(video_window),vsize.width,vsize.height);
- gdk_color_parse("black",&color);
- gtk_widget_modify_bg(video_window,GTK_STATE_NORMAL,&color);
-
- gtk_drag_dest_set(video_window, GTK_DEST_DEFAULT_ALL, targets, sizeof(targets)/sizeof(GtkTargetEntry), GDK_ACTION_COPY);
- gtk_widget_show(video_window);
- gdk_window_set_events(gtk_widget_get_window(video_window),
- gdk_window_get_events(gtk_widget_get_window(video_window)) | GDK_POINTER_MOTION_MASK);
- timeout=g_timeout_add(500,(GSourceFunc)resize_video_window,call);
- g_signal_connect(video_window,"destroy",(GCallback)on_video_window_destroy,GINT_TO_POINTER(timeout));
- g_signal_connect(video_window,"key-press-event",(GCallback)on_video_window_key_press,NULL);
- g_signal_connect_swapped(video_window,"motion-notify-event",(GCallback)show_video_controls,video_window);
- g_signal_connect(video_window,"configure-event",(GCallback)video_window_moved,NULL);
- g_signal_connect(video_window, "drag-data-received",(GCallback)drag_data_received, NULL);
- g_signal_connect(video_window, "drag-drop",(GCallback)drag_drop, NULL);
- g_object_set_data(G_OBJECT(video_window),"call",call);
- return video_window;
-}
-
-void linphone_gtk_in_call_show_video(LinphoneCall *call){
- GtkWidget *callview=(GtkWidget*)linphone_call_get_user_pointer(call);
- GtkWidget *video_window=(GtkWidget*)g_object_get_data(G_OBJECT(callview),"video_window");
- const LinphoneCallParams *params=linphone_call_get_current_params(call);
- LinphoneCore *lc=linphone_gtk_get_core();
-
- if (((bool_t)lp_config_get_int(linphone_core_get_config(lc), "video", "rtp_io", FALSE)) == FALSE) {
- if (linphone_call_get_state(call)!=LinphoneCallPaused && params && linphone_call_params_video_enabled(params)){
- if (video_window==NULL){
- video_window=create_video_window(call);
- g_object_set_data(G_OBJECT(callview),"video_window",video_window);
- }
- linphone_core_set_native_video_window_id(lc,get_native_handle(gtk_widget_get_window(video_window)));
- gtk_window_present(GTK_WINDOW(video_window));
- }else{
- if (video_window){
- gtk_widget_destroy(video_window);
- g_object_set_data(G_OBJECT(callview),"video_window",NULL);
- }
- }
- }
-}
-
-static void on_video_preview_destroyed(GtkWidget *video_preview, GtkWidget *mw){
- LinphoneCore *lc=linphone_gtk_get_core();
- guint timeout_id=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(video_preview),"timeout-id"));
- g_object_set_data(G_OBJECT(mw),"video_preview",NULL);
- linphone_core_enable_video_preview(lc,FALSE);
- linphone_core_set_native_preview_window_id(lc,(void *)(unsigned long)-1);
- g_source_remove(timeout_id);
-}
-
-GtkWidget *linphone_gtk_get_camera_preview_window(void){
- return (GtkWidget *)g_object_get_data(G_OBJECT(linphone_gtk_get_main_window()),"video_preview");
-}
-
-static gboolean check_preview_size(GtkWidget *video_preview){
- MSVideoSize vsize=linphone_core_get_current_preview_video_size(linphone_gtk_get_core());
- if (vsize.width && vsize.height){
- MSVideoSize cur;
- gtk_window_get_size(GTK_WINDOW(video_preview),&cur.width,&cur.height);
- if (cur.width!=vsize.width || cur.height!=vsize.height){
- gtk_window_resize(GTK_WINDOW(video_preview),vsize.width,vsize.height);
- }
- }
- return TRUE;
-}
-
-void linphone_gtk_show_camera_preview_clicked(GtkButton *button){
- GtkWidget *mw=linphone_gtk_get_main_window();
- GtkWidget *video_preview=(GtkWidget *)g_object_get_data(G_OBJECT(mw),"video_preview");
-
- if (!video_preview){
- gchar *title;
- LinphoneCore *lc=linphone_gtk_get_core();
- GdkColor color;
- guint tid;
-
- video_preview=gtk_window_new(GTK_WINDOW_TOPLEVEL);
- title=g_strdup_printf("%s - Video preview",linphone_gtk_get_ui_config("title","Linphone"));
- gtk_window_set_title(GTK_WINDOW(video_preview),title);
- gdk_color_parse("black",&color);
- gtk_widget_modify_bg(video_preview,GTK_STATE_NORMAL,&color);
- g_free(title);
- g_object_set_data(G_OBJECT(mw),"video_preview",video_preview);
- g_signal_connect(video_preview,"destroy",(GCallback)on_video_preview_destroyed,mw);
- gtk_widget_show(video_preview);
- linphone_core_set_native_preview_window_id(lc,get_native_handle(gtk_widget_get_window(video_preview)));
- linphone_core_enable_video_preview(lc,TRUE);
- tid=g_timeout_add(100,(GSourceFunc)check_preview_size,video_preview);
- g_object_set_data(G_OBJECT(video_preview),"timeout-id",GINT_TO_POINTER(tid));
- }
-}
-
diff --git a/gtk/waiting.ui b/gtk/waiting.ui
deleted file mode 100644
index d2ca9ad89..000000000
--- a/gtk/waiting.ui
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-
-
- Linphone
- False
- True
- GTK_WIN_POS_CENTER_ON_PARENT
- False
-
-
- True
- 0
-
-
- True
- 12
-
-
- True
- 5
-
-
- True
- gtk-dialog-info
-
-
- False
- False
-
-
-
-
- True
-
-
- 5
- 1
-
-
-
-
-
-
-
-
- True
- Please wait
- True
- GTK_JUSTIFY_CENTER
-
-
-
-
-
-
diff --git a/pixmaps/.gitignore b/pixmaps/.gitignore
deleted file mode 100644
index 282522db0..000000000
--- a/pixmaps/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile
-Makefile.in
diff --git a/pixmaps/CMakeLists.txt b/pixmaps/CMakeLists.txt
deleted file mode 100644
index 68a33b22e..000000000
--- a/pixmaps/CMakeLists.txt
+++ /dev/null
@@ -1,140 +0,0 @@
-############################################################################
-# CMakeLists.txt
-# Copyright (C) 2014 Belledonne Communications, Grenoble France
-#
-############################################################################
-#
-# 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 2
-# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-############################################################################
-
-set(ICONS_INSTALL_DIR ${PACKAGE_DATA_DIR}/icons/hicolor)
-
-install(FILES "linphone.icns" "linphone-banner.png"
- DESTINATION ${PACKAGE_DATA_DIR}/pixmaps/linphone
- PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
-)
-
-install(FILES
- svg/linphone-micro-muted.svg
- svg/linphone-speaker-muted.svg
- svg/linphone-micro-enabled.svg
- svg/linphone-speaker-enabled.svg
- svg/linphone-status-online.svg
- svg/linphone-status-away.svg
- svg/linphone-status-donotdisturb.svg
- svg/linphone-status-offline.svg
- svg/linphone-call-status-incoming.svg
- svg/linphone-call-status-missed.svg
- svg/linphone-call-status-outgoing.svg
- svg/linphone-chat-new-message-and-writing.svg
- svg/linphone-chat-new-message.svg
- svg/linphone-chat-nothing.svg
- svg/linphone-chat-writing.svg
- svg/linphone-ok.svg
- svg/linphone-inprogress.svg
- svg/linphone-failed.svg
- svg/linphone-camera-enabled.svg
- svg/linphone-camera-disabled.svg
- svg/linphone-security-ok.svg
- svg/linphone-security-pending.svg
- svg/linphone-media-play.svg
- svg/linphone-media-pause.svg
- svg/linphone-warning.svg
- DESTINATION ${ICONS_INSTALL_DIR}/scalable/status
- PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ
-)
-
-install(FILES
- svg/linphone-start-call.svg
- svg/linphone-add-call.svg
- svg/linphone-hold-off.svg
- svg/linphone-hold-on.svg
- svg/linphone-start-call2.svg
- svg/linphone-start-chat.svg
- svg/linphone-history.svg
- svg/linphone-edit.svg
- svg/linphone-delete.svg
- svg/linphone-contact-add.svg
- svg/linphone-conference-start.svg
- svg/linphone-call-transfer.svg
- svg/linphone-record.svg
- svg/linphone-chat-send.svg
- DESTINATION ${ICONS_INSTALL_DIR}/scalable/actions
- PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ
-)
-
-install(FILES
- linphone-micro-muted.png
- linphone-speaker-muted.png
- linphone-micro-enabled.png
- linphone-speaker-enabled.png
- linphone-status-online.png
- linphone-status-away.png
- linphone-status-donotdisturb.png
- linphone-status-offline.png
- linphone-chat-nothing.png
- linphone-chat-new-message.png
- linphone-chat-writing.png
- linphone-chat-new-message-and-writing.png
- linphone-call-status-incoming.png
- linphone-call-status-outgoing.png
- linphone-call-status-missed.png
- linphone-ok.png
- linphone-inprogress.png
- linphone-failed.png
- linphone-camera-enabled.png
- linphone-camera-disabled.png
- linphone-security-ok.png
- linphone-security-pending.png
- linphone-media-play.png
- linphone-media-pause.png
- linphone-warning.png
- DESTINATION ${ICONS_INSTALL_DIR}/48x48/status
- PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ
-)
-
-install(FILES
- linphone-start-call2.png
- linphone-add-call.png
- linphone-start-call.png
- linphone-start-chat.png
- linphone-stop-call.png
- linphone-hold-on.png
- linphone-hold-off.png
- linphone-history.png
- linphone-edit.png
- linphone-delete.png
- linphone-contact-add.png
- linphone-conference-start.png
- linphone-call-transfer.png
- linphone-record.png
- linphone-chat-send.png
- linphone-take-screenshot.png
- DESTINATION ${ICONS_INSTALL_DIR}/48x48/actions
- PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ
-)
-
-install(FILES linphone.png
- DESTINATION ${ICONS_INSTALL_DIR}/48x48/apps
- PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
-)
-
-if(WIN32)
- install(FILES index.theme
- DESTINATION ${ICONS_INSTALL_DIR}
- PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
- )
-endif()
diff --git a/pixmaps/Makefile.am b/pixmaps/Makefile.am
deleted file mode 100644
index 18dab92fa..000000000
--- a/pixmaps/Makefile.am
+++ /dev/null
@@ -1,104 +0,0 @@
-pixmapdir=$(datadir)/pixmaps/linphone
-dist_pixmap_DATA= \
- linphone-banner.png \
- linphone.icns
-
-iconsdir=$(datadir)/icons/hicolor
-if BUILD_WIN32
- dist_icons_DATA=index.theme
-endif
-
-appiconsdir=$(iconsdir)/48x48/apps
-dist_appicons_DATA= linphone.png
-
-status48iconsdir=$(iconsdir)/48x48/status
-dist_status48icons_DATA= \
- linphone-micro-muted.png \
- linphone-speaker-muted.png \
- linphone-micro-enabled.png \
- linphone-speaker-enabled.png \
- linphone-status-online.png \
- linphone-status-away.png \
- linphone-status-donotdisturb.png \
- linphone-status-offline.png \
- linphone-chat-nothing.png \
- linphone-chat-new-message.png \
- linphone-chat-writing.png \
- linphone-chat-new-message-and-writing.png \
- linphone-call-status-incoming.png \
- linphone-call-status-outgoing.png \
- linphone-call-status-missed.png \
- linphone-ok.png \
- linphone-inprogress.png \
- linphone-failed.png \
- linphone-camera-enabled.png \
- linphone-camera-disabled.png \
- linphone-security-ok.png \
- linphone-security-pending.png \
- linphone-media-play.png \
- linphone-media-pause.png \
- linphone-warning.png \
- linphone-take-screenshot.png
-
-statussvgiconsdir=$(iconsdir)/scalable/status
-dist_statussvgicons_DATA= \
- svg/linphone-micro-muted.svg \
- svg/linphone-speaker-muted.svg \
- svg/linphone-micro-enabled.svg \
- svg/linphone-speaker-enabled.svg \
- svg/linphone-status-online.svg \
- svg/linphone-status-away.svg \
- svg/linphone-status-donotdisturb.svg \
- svg/linphone-status-offline.svg \
- svg/linphone-call-status-incoming.svg \
- svg/linphone-call-status-missed.svg \
- svg/linphone-call-status-outgoing.svg \
- svg/linphone-chat-new-message-and-writing.svg \
- svg/linphone-chat-new-message.svg \
- svg/linphone-chat-nothing.svg \
- svg/linphone-chat-writing.svg \
- svg/linphone-ok.svg \
- svg/linphone-inprogress.svg \
- svg/linphone-failed.svg \
- svg/linphone-camera-enabled.svg \
- svg/linphone-camera-disabled.svg \
- svg/linphone-security-ok.svg \
- svg/linphone-security-pending.svg \
- svg/linphone-media-play.svg \
- svg/linphone-media-pause.svg \
- svg/linphone-warning.svg
-
-actions48iconsdir=$(iconsdir)/48x48/actions
-dist_actions48icons_DATA= \
- linphone-start-call2.png \
- linphone-add-call.png \
- linphone-start-call.png \
- linphone-start-chat.png \
- linphone-stop-call.png \
- linphone-hold-on.png \
- linphone-hold-off.png \
- linphone-history.png \
- linphone-edit.png \
- linphone-delete.png \
- linphone-contact-add.png \
- linphone-conference-start.png \
- linphone-call-transfer.png \
- linphone-record.png \
- linphone-chat-send.png
-
-actionssvgiconsdir=$(iconsdir)/scalable/actions
-dist_actionssvgicons_DATA= \
- svg/linphone-start-call.svg \
- svg/linphone-add-call.svg \
- svg/linphone-hold-off.svg \
- svg/linphone-hold-on.svg \
- svg/linphone-start-call2.svg \
- svg/linphone-start-chat.svg \
- svg/linphone-history.svg \
- svg/linphone-edit.svg \
- svg/linphone-delete.svg \
- svg/linphone-contact-add.svg \
- svg/linphone-conference-start.svg \
- svg/linphone-call-transfer.svg \
- svg/linphone-record.svg \
- svg/linphone-chat-send.svg
diff --git a/pixmaps/index.theme b/pixmaps/index.theme
deleted file mode 100644
index d17354741..000000000
--- a/pixmaps/index.theme
+++ /dev/null
@@ -1,1836 +0,0 @@
-[Icon Theme]
-Name=Hicolor
-Comment=Fallback icon theme
-Hidden=true
-Directories=16x16/actions,16x16/animations,16x16/apps,16x16/categories,16x16/devices,16x16/emblems,16x16/emotes,16x16/filesystems,16x16/intl,16x16/mimetypes,16x16/places,16x16/status,16x16/stock/chart,16x16/stock/code,16x16/stock/data,16x16/stock/form,16x16/stock/image,16x16/stock/io,16x16/stock/media,16x16/stock/navigation,16x16/stock/net,16x16/stock/object,16x16/stock/table,16x16/stock/text,22x22/actions,22x22/animations,22x22/apps,22x22/categories,22x22/devices,22x22/emblems,22x22/emotes,22x22/filesystems,22x22/intl,22x22/mimetypes,22x22/places,22x22/status,22x22/stock/chart,22x22/stock/code,22x22/stock/data,22x22/stock/form,22x22/stock/image,22x22/stock/io,22x22/stock/media,22x22/stock/navigation,22x22/stock/net,22x22/stock/object,22x22/stock/table,22x22/stock/text,24x24/actions,24x24/animations,24x24/apps,24x24/categories,24x24/devices,24x24/emblems,24x24/emotes,24x24/filesystems,24x24/intl,24x24/mimetypes,24x24/places,24x24/status,24x24/stock/chart,24x24/stock/code,24x24/stock/data,24x24/stock/form,24x24/stock/image,24x24/stock/io,24x24/stock/media,24x24/stock/navigation,24x24/stock/net,24x24/stock/object,24x24/stock/table,24x24/stock/text,32x32/actions,32x32/animations,32x32/apps,32x32/categories,32x32/devices,32x32/emblems,32x32/emotes,32x32/filesystems,32x32/intl,32x32/mimetypes,32x32/places,32x32/status,32x32/stock/chart,32x32/stock/code,32x32/stock/data,32x32/stock/form,32x32/stock/image,32x32/stock/io,32x32/stock/media,32x32/stock/navigation,32x32/stock/net,32x32/stock/object,32x32/stock/table,32x32/stock/text,36x36/actions,36x36/animations,36x36/apps,36x36/categories,36x36/devices,36x36/emblems,36x36/emotes,36x36/filesystems,36x36/intl,36x36/mimetypes,36x36/places,36x36/status,36x36/stock/chart,36x36/stock/code,36x36/stock/data,36x36/stock/form,36x36/stock/image,36x36/stock/io,36x36/stock/media,36x36/stock/navigation,36x36/stock/net,36x36/stock/object,36x36/stock/table,36x36/stock/text,48x48/actions,48x48/animations,48x48/apps,48x48/categories,48x48/devices,48x48/emblems,48x48/emotes,48x48/filesystems,48x48/intl,48x48/mimetypes,48x48/places,48x48/status,48x48/stock/chart,48x48/stock/code,48x48/stock/data,48x48/stock/form,48x48/stock/image,48x48/stock/io,48x48/stock/media,48x48/stock/navigation,48x48/stock/net,48x48/stock/object,48x48/stock/table,48x48/stock/text,64x64/actions,64x64/animations,64x64/apps,64x64/categories,64x64/devices,64x64/emblems,64x64/emotes,64x64/filesystems,64x64/intl,64x64/mimetypes,64x64/places,64x64/status,64x64/stock/chart,64x64/stock/code,64x64/stock/data,64x64/stock/form,64x64/stock/image,64x64/stock/io,64x64/stock/media,64x64/stock/navigation,64x64/stock/net,64x64/stock/object,64x64/stock/table,64x64/stock/text,72x72/actions,72x72/animations,72x72/apps,72x72/categories,72x72/devices,72x72/emblems,72x72/emotes,72x72/filesystems,72x72/intl,72x72/mimetypes,72x72/places,72x72/status,72x72/stock/chart,72x72/stock/code,72x72/stock/data,72x72/stock/form,72x72/stock/image,72x72/stock/io,72x72/stock/media,72x72/stock/navigation,72x72/stock/net,72x72/stock/object,72x72/stock/table,72x72/stock/text,96x96/actions,96x96/animations,96x96/apps,96x96/categories,96x96/devices,96x96/emblems,96x96/emotes,96x96/filesystems,96x96/intl,96x96/mimetypes,96x96/places,96x96/status,96x96/stock/chart,96x96/stock/code,96x96/stock/data,96x96/stock/form,96x96/stock/image,96x96/stock/io,96x96/stock/media,96x96/stock/navigation,96x96/stock/net,96x96/stock/object,96x96/stock/table,96x96/stock/text,128x128/actions,128x128/animations,128x128/apps,128x128/categories,128x128/devices,128x128/emblems,128x128/emotes,128x128/filesystems,128x128/intl,128x128/mimetypes,128x128/places,128x128/status,128x128/stock/chart,128x128/stock/code,128x128/stock/data,128x128/stock/form,128x128/stock/image,128x128/stock/io,128x128/stock/media,128x128/stock/navigation,128x128/stock/net,128x128/stock/object,128x128/stock/table,128x128/stock/text,192x192/actions,192x192/animations,192x192/apps,192x192/categories,192x192/devices,192x192/emblems,192x192/emotes,192x192/filesystems,192x192/intl,192x192/mimetypes,192x192/places,192x192/status,192x192/stock/chart,192x192/stock/code,192x192/stock/data,192x192/stock/form,192x192/stock/image,192x192/stock/io,192x192/stock/media,192x192/stock/navigation,192x192/stock/net,192x192/stock/object,192x192/stock/table,192x192/stock/text,256x256/actions,256x256/animations,256x256/apps,256x256/categories,256x256/devices,256x256/emblems,256x256/emotes,256x256/filesystems,256x256/intl,256x256/mimetypes,256x256/places,256x256/status,256x256/stock/chart,256x256/stock/code,256x256/stock/data,256x256/stock/form,256x256/stock/image,256x256/stock/io,256x256/stock/media,256x256/stock/navigation,256x256/stock/net,256x256/stock/object,256x256/stock/table,256x256/stock/text,512x512/actions,512x512/animations,512x512/apps,512x512/categories,512x512/devices,512x512/emblems,512x512/emotes,512x512/filesystems,512x512/intl,512x512/mimetypes,512x512/places,512x512/status,512x512/stock/chart,512x512/stock/code,512x512/stock/data,512x512/stock/form,512x512/stock/image,512x512/stock/io,512x512/stock/media,512x512/stock/navigation,512x512/stock/net,512x512/stock/object,512x512/stock/table,512x512/stock/text,scalable/actions,scalable/animations,scalable/apps,scalable/categories,scalable/devices,scalable/emblems,scalable/emotes,scalable/filesystems,scalable/intl,scalable/mimetypes,scalable/places,scalable/status,scalable/stock/chart,scalable/stock/code,scalable/stock/data,scalable/stock/form,scalable/stock/image,scalable/stock/io,scalable/stock/media,scalable/stock/navigation,scalable/stock/net,scalable/stock/object,scalable/stock/table,scalable/stock/text,symbolic/apps
-
-
-[16x16/actions]
-Size=16
-Context=Actions
-Type=Threshold
-
-[16x16/animations]
-Size=16
-Context=Animations
-Type=Threshold
-
-[16x16/apps]
-Size=16
-Context=Applications
-Type=Threshold
-
-[16x16/categories]
-Size=16
-Context=Categories
-Type=Threshold
-
-[16x16/devices]
-Size=16
-Context=Devices
-Type=Threshold
-
-[16x16/emblems]
-Size=16
-Context=Emblems
-Type=Threshold
-
-[16x16/emotes]
-Size=16
-Context=Emotes
-Type=Threshold
-
-[16x16/filesystems]
-Size=16
-Context=FileSystems
-Type=Threshold
-
-[16x16/intl]
-Size=16
-Context=International
-Type=Threshold
-
-[16x16/mimetypes]
-Size=16
-Context=MimeTypes
-Type=Threshold
-
-[16x16/places]
-Size=16
-Context=Places
-Type=Threshold
-
-[16x16/status]
-Size=16
-Context=Status
-Type=Threshold
-
-[16x16/stock/chart]
-Size=16
-Context=Stock
-Type=Threshold
-
-[16x16/stock/code]
-Size=16
-Context=Stock
-Type=Threshold
-
-[16x16/stock/data]
-Size=16
-Context=Stock
-Type=Threshold
-
-[16x16/stock/form]
-Size=16
-Context=Stock
-Type=Threshold
-
-[16x16/stock/image]
-Size=16
-Context=Stock
-Type=Threshold
-
-[16x16/stock/io]
-Size=16
-Context=Stock
-Type=Threshold
-
-[16x16/stock/media]
-Size=16
-Context=Stock
-Type=Threshold
-
-[16x16/stock/navigation]
-Size=16
-Context=Stock
-Type=Threshold
-
-[16x16/stock/net]
-Size=16
-Context=Stock
-Type=Threshold
-
-[16x16/stock/object]
-Size=16
-Context=Stock
-Type=Threshold
-
-[16x16/stock/table]
-Size=16
-Context=Stock
-Type=Threshold
-
-[16x16/stock/text]
-Size=16
-Context=Stock
-Type=Threshold
-
-[22x22/actions]
-Size=22
-Context=Actions
-Type=Threshold
-
-[22x22/animations]
-Size=22
-Context=Animations
-Type=Threshold
-
-[22x22/apps]
-Size=22
-Context=Applications
-Type=Threshold
-
-[22x22/categories]
-Size=22
-Context=Categories
-Type=Threshold
-
-[22x22/devices]
-Size=22
-Context=Devices
-Type=Threshold
-
-[22x22/emblems]
-Size=22
-Context=Emblems
-Type=Threshold
-
-[22x22/emotes]
-Size=22
-Context=Emotes
-Type=Threshold
-
-[22x22/filesystems]
-Size=22
-Context=FileSystems
-Type=Threshold
-
-[22x22/intl]
-Size=22
-Context=International
-Type=Threshold
-
-[22x22/mimetypes]
-Size=22
-Context=MimeTypes
-Type=Threshold
-
-[22x22/places]
-Size=22
-Context=Places
-Type=Threshold
-
-[22x22/status]
-Size=22
-Context=Status
-Type=Threshold
-
-[22x22/stock/chart]
-Size=22
-Context=Stock
-Type=Threshold
-
-[22x22/stock/code]
-Size=22
-Context=Stock
-Type=Threshold
-
-[22x22/stock/data]
-Size=22
-Context=Stock
-Type=Threshold
-
-[22x22/stock/form]
-Size=22
-Context=Stock
-Type=Threshold
-
-[22x22/stock/image]
-Size=22
-Context=Stock
-Type=Threshold
-
-[22x22/stock/io]
-Size=22
-Context=Stock
-Type=Threshold
-
-[22x22/stock/media]
-Size=22
-Context=Stock
-Type=Threshold
-
-[22x22/stock/navigation]
-Size=22
-Context=Stock
-Type=Threshold
-
-[22x22/stock/net]
-Size=22
-Context=Stock
-Type=Threshold
-
-[22x22/stock/object]
-Size=22
-Context=Stock
-Type=Threshold
-
-[22x22/stock/table]
-Size=22
-Context=Stock
-Type=Threshold
-
-[22x22/stock/text]
-Size=22
-Context=Stock
-Type=Threshold
-
-[24x24/actions]
-Size=24
-Context=Actions
-Type=Threshold
-
-[24x24/animations]
-Size=24
-Context=Animations
-Type=Threshold
-
-[24x24/apps]
-Size=24
-Context=Applications
-Type=Threshold
-
-[24x24/categories]
-Size=24
-Context=Categories
-Type=Threshold
-
-[24x24/devices]
-Size=24
-Context=Devices
-Type=Threshold
-
-[24x24/emblems]
-Size=24
-Context=Emblems
-Type=Threshold
-
-[24x24/emotes]
-Size=24
-Context=Emotes
-Type=Threshold
-
-[24x24/filesystems]
-Size=24
-Context=FileSystems
-Type=Threshold
-
-[24x24/intl]
-Size=24
-Context=International
-Type=Threshold
-
-[24x24/mimetypes]
-Size=24
-Context=MimeTypes
-Type=Threshold
-
-[24x24/places]
-Size=24
-Context=Places
-Type=Threshold
-
-[24x24/status]
-Size=24
-Context=Status
-Type=Threshold
-
-[24x24/stock/chart]
-Size=24
-Context=Stock
-Type=Threshold
-
-[24x24/stock/code]
-Size=24
-Context=Stock
-Type=Threshold
-
-[24x24/stock/data]
-Size=24
-Context=Stock
-Type=Threshold
-
-[24x24/stock/form]
-Size=24
-Context=Stock
-Type=Threshold
-
-[24x24/stock/image]
-Size=24
-Context=Stock
-Type=Threshold
-
-[24x24/stock/io]
-Size=24
-Context=Stock
-Type=Threshold
-
-[24x24/stock/media]
-Size=24
-Context=Stock
-Type=Threshold
-
-[24x24/stock/navigation]
-Size=24
-Context=Stock
-Type=Threshold
-
-[24x24/stock/net]
-Size=24
-Context=Stock
-Type=Threshold
-
-[24x24/stock/object]
-Size=24
-Context=Stock
-Type=Threshold
-
-[24x24/stock/table]
-Size=24
-Context=Stock
-Type=Threshold
-
-[24x24/stock/text]
-Size=24
-Context=Stock
-Type=Threshold
-
-[32x32/actions]
-Size=32
-Context=Actions
-Type=Threshold
-
-[32x32/animations]
-Size=32
-Context=Animations
-Type=Threshold
-
-[32x32/apps]
-Size=32
-Context=Applications
-Type=Threshold
-
-[32x32/categories]
-Size=32
-Context=Categories
-Type=Threshold
-
-[32x32/devices]
-Size=32
-Context=Devices
-Type=Threshold
-
-[32x32/emblems]
-Size=32
-Context=Emblems
-Type=Threshold
-
-[32x32/emotes]
-Size=32
-Context=Emotes
-Type=Threshold
-
-[32x32/filesystems]
-Size=32
-Context=FileSystems
-Type=Threshold
-
-[32x32/intl]
-Size=32
-Context=International
-Type=Threshold
-
-[32x32/mimetypes]
-Size=32
-Context=MimeTypes
-Type=Threshold
-
-[32x32/places]
-Size=32
-Context=Places
-Type=Threshold
-
-[32x32/status]
-Size=32
-Context=Status
-Type=Threshold
-
-[32x32/stock/chart]
-Size=32
-Context=Stock
-Type=Threshold
-
-[32x32/stock/code]
-Size=32
-Context=Stock
-Type=Threshold
-
-[32x32/stock/data]
-Size=32
-Context=Stock
-Type=Threshold
-
-[32x32/stock/form]
-Size=32
-Context=Stock
-Type=Threshold
-
-[32x32/stock/image]
-Size=32
-Context=Stock
-Type=Threshold
-
-[32x32/stock/io]
-Size=32
-Context=Stock
-Type=Threshold
-
-[32x32/stock/media]
-Size=32
-Context=Stock
-Type=Threshold
-
-[32x32/stock/navigation]
-Size=32
-Context=Stock
-Type=Threshold
-
-[32x32/stock/net]
-Size=32
-Context=Stock
-Type=Threshold
-
-[32x32/stock/object]
-Size=32
-Context=Stock
-Type=Threshold
-
-[32x32/stock/table]
-Size=32
-Context=Stock
-Type=Threshold
-
-[32x32/stock/text]
-Size=32
-Context=Stock
-Type=Threshold
-
-[36x36/actions]
-Size=36
-Context=Actions
-Type=Threshold
-
-[36x36/animations]
-Size=36
-Context=Animations
-Type=Threshold
-
-[36x36/apps]
-Size=36
-Context=Applications
-Type=Threshold
-
-[36x36/categories]
-Size=36
-Context=Categories
-Type=Threshold
-
-[36x36/devices]
-Size=36
-Context=Devices
-Type=Threshold
-
-[36x36/emblems]
-Size=36
-Context=Emblems
-Type=Threshold
-
-[36x36/emotes]
-Size=36
-Context=Emotes
-Type=Threshold
-
-[36x36/filesystems]
-Size=36
-Context=FileSystems
-Type=Threshold
-
-[36x36/intl]
-Size=36
-Context=International
-Type=Threshold
-
-[36x36/mimetypes]
-Size=36
-Context=MimeTypes
-Type=Threshold
-
-[36x36/places]
-Size=36
-Context=Places
-Type=Threshold
-
-[36x36/status]
-Size=36
-Context=Status
-Type=Threshold
-
-[36x36/stock/chart]
-Size=36
-Context=Stock
-Type=Threshold
-
-[36x36/stock/code]
-Size=36
-Context=Stock
-Type=Threshold
-
-[36x36/stock/data]
-Size=36
-Context=Stock
-Type=Threshold
-
-[36x36/stock/form]
-Size=36
-Context=Stock
-Type=Threshold
-
-[36x36/stock/image]
-Size=36
-Context=Stock
-Type=Threshold
-
-[36x36/stock/io]
-Size=36
-Context=Stock
-Type=Threshold
-
-[36x36/stock/media]
-Size=36
-Context=Stock
-Type=Threshold
-
-[36x36/stock/navigation]
-Size=36
-Context=Stock
-Type=Threshold
-
-[36x36/stock/net]
-Size=36
-Context=Stock
-Type=Threshold
-
-[36x36/stock/object]
-Size=36
-Context=Stock
-Type=Threshold
-
-[36x36/stock/table]
-Size=36
-Context=Stock
-Type=Threshold
-
-[36x36/stock/text]
-Size=36
-Context=Stock
-Type=Threshold
-
-[48x48/actions]
-Size=48
-Context=Actions
-Type=Threshold
-
-[48x48/animations]
-Size=48
-Context=Animations
-Type=Threshold
-
-[48x48/apps]
-Size=48
-Context=Applications
-Type=Threshold
-
-[48x48/categories]
-Size=48
-Context=Categories
-Type=Threshold
-
-[48x48/devices]
-Size=48
-Context=Devices
-Type=Threshold
-
-[48x48/emblems]
-Size=48
-Context=Emblems
-Type=Threshold
-
-[48x48/emotes]
-Size=48
-Context=Emotes
-Type=Threshold
-
-[48x48/filesystems]
-Size=48
-Context=FileSystems
-Type=Threshold
-
-[48x48/intl]
-Size=48
-Context=International
-Type=Threshold
-
-[48x48/mimetypes]
-Size=48
-Context=MimeTypes
-Type=Threshold
-
-[48x48/places]
-Size=48
-Context=Places
-Type=Threshold
-
-[48x48/status]
-Size=48
-Context=Status
-Type=Threshold
-
-[48x48/stock/chart]
-Size=48
-Context=Stock
-Type=Threshold
-
-[48x48/stock/code]
-Size=48
-Context=Stock
-Type=Threshold
-
-[48x48/stock/data]
-Size=48
-Context=Stock
-Type=Threshold
-
-[48x48/stock/form]
-Size=48
-Context=Stock
-Type=Threshold
-
-[48x48/stock/image]
-Size=48
-Context=Stock
-Type=Threshold
-
-[48x48/stock/io]
-Size=48
-Context=Stock
-Type=Threshold
-
-[48x48/stock/media]
-Size=48
-Context=Stock
-Type=Threshold
-
-[48x48/stock/navigation]
-Size=48
-Context=Stock
-Type=Threshold
-
-[48x48/stock/net]
-Size=48
-Context=Stock
-Type=Threshold
-
-[48x48/stock/object]
-Size=48
-Context=Stock
-Type=Threshold
-
-[48x48/stock/table]
-Size=48
-Context=Stock
-Type=Threshold
-
-[48x48/stock/text]
-Size=48
-Context=Stock
-Type=Threshold
-
-[64x64/actions]
-Size=64
-Context=Actions
-Type=Threshold
-
-[64x64/animations]
-Size=64
-Context=Animations
-Type=Threshold
-
-[64x64/apps]
-Size=64
-Context=Applications
-Type=Threshold
-
-[64x64/categories]
-Size=64
-Context=Categories
-Type=Threshold
-
-[64x64/devices]
-Size=64
-Context=Devices
-Type=Threshold
-
-[64x64/emblems]
-Size=64
-Context=Emblems
-Type=Threshold
-
-[64x64/emotes]
-Size=64
-Context=Emotes
-Type=Threshold
-
-[64x64/filesystems]
-Size=64
-Context=FileSystems
-Type=Threshold
-
-[64x64/intl]
-Size=64
-Context=International
-Type=Threshold
-
-[64x64/mimetypes]
-Size=64
-Context=MimeTypes
-Type=Threshold
-
-[64x64/places]
-Size=64
-Context=Places
-Type=Threshold
-
-[64x64/status]
-Size=64
-Context=Status
-Type=Threshold
-
-[64x64/stock/chart]
-Size=64
-Context=Stock
-Type=Threshold
-
-[64x64/stock/code]
-Size=64
-Context=Stock
-Type=Threshold
-
-[64x64/stock/data]
-Size=64
-Context=Stock
-Type=Threshold
-
-[64x64/stock/form]
-Size=64
-Context=Stock
-Type=Threshold
-
-[64x64/stock/image]
-Size=64
-Context=Stock
-Type=Threshold
-
-[64x64/stock/io]
-Size=64
-Context=Stock
-Type=Threshold
-
-[64x64/stock/media]
-Size=64
-Context=Stock
-Type=Threshold
-
-[64x64/stock/navigation]
-Size=64
-Context=Stock
-Type=Threshold
-
-[64x64/stock/net]
-Size=64
-Context=Stock
-Type=Threshold
-
-[64x64/stock/object]
-Size=64
-Context=Stock
-Type=Threshold
-
-[64x64/stock/table]
-Size=64
-Context=Stock
-Type=Threshold
-
-[64x64/stock/text]
-Size=64
-Context=Stock
-Type=Threshold
-[72x72/actions]
-Size=72
-Context=Actions
-Type=Threshold
-
-[72x72/animations]
-Size=72
-Context=Animations
-Type=Threshold
-
-[72x72/apps]
-Size=72
-Context=Applications
-Type=Threshold
-
-[72x72/categories]
-Size=72
-Context=Categories
-Type=Threshold
-
-[72x72/devices]
-Size=72
-Context=Devices
-Type=Threshold
-
-[72x72/emblems]
-Size=72
-Context=Emblems
-Type=Threshold
-
-[72x72/emotes]
-Size=72
-Context=Emotes
-Type=Threshold
-
-[72x72/filesystems]
-Size=72
-Context=FileSystems
-Type=Threshold
-
-[72x72/intl]
-Size=72
-Context=International
-Type=Threshold
-
-[72x72/mimetypes]
-Size=72
-Context=MimeTypes
-Type=Threshold
-
-[72x72/places]
-Size=72
-Context=Places
-Type=Threshold
-
-[72x72/status]
-Size=72
-Context=Status
-Type=Threshold
-
-[72x72/stock/chart]
-Size=72
-Context=Stock
-Type=Threshold
-
-[72x72/stock/code]
-Size=72
-Context=Stock
-Type=Threshold
-
-[72x72/stock/data]
-Size=72
-Context=Stock
-Type=Threshold
-
-[72x72/stock/form]
-Size=72
-Context=Stock
-Type=Threshold
-
-[72x72/stock/image]
-Size=72
-Context=Stock
-Type=Threshold
-
-[72x72/stock/io]
-Size=72
-Context=Stock
-Type=Threshold
-
-[72x72/stock/media]
-Size=72
-Context=Stock
-Type=Threshold
-
-[72x72/stock/navigation]
-Size=72
-Context=Stock
-Type=Threshold
-
-[72x72/stock/net]
-Size=72
-Context=Stock
-Type=Threshold
-
-[72x72/stock/object]
-Size=72
-Context=Stock
-Type=Threshold
-
-[72x72/stock/table]
-Size=72
-Context=Stock
-Type=Threshold
-
-[72x72/stock/text]
-Size=72
-Context=Stock
-Type=Threshold
-
-[96x96/actions]
-Size=96
-Context=Actions
-Type=Threshold
-
-[96x96/animations]
-Size=96
-Context=Animations
-Type=Threshold
-
-[96x96/apps]
-Size=96
-Context=Applications
-Type=Threshold
-
-[96x96/categories]
-Size=96
-Context=Categories
-Type=Threshold
-
-[96x96/devices]
-Size=96
-Context=Devices
-Type=Threshold
-
-[96x96/emblems]
-Size=96
-Context=Emblems
-Type=Threshold
-
-[96x96/emotes]
-Size=96
-Context=Emotes
-Type=Threshold
-
-[96x96/filesystems]
-Size=96
-Context=FileSystems
-Type=Threshold
-
-[96x96/intl]
-Size=96
-Context=International
-Type=Threshold
-
-[96x96/mimetypes]
-Size=96
-Context=MimeTypes
-Type=Threshold
-
-[96x96/places]
-Size=96
-Context=Places
-Type=Threshold
-
-[96x96/status]
-Size=96
-Context=Status
-Type=Threshold
-
-[96x96/stock/chart]
-Size=96
-Context=Stock
-Type=Threshold
-
-[96x96/stock/code]
-Size=96
-Context=Stock
-Type=Threshold
-
-[96x96/stock/data]
-Size=96
-Context=Stock
-Type=Threshold
-
-[96x96/stock/form]
-Size=96
-Context=Stock
-Type=Threshold
-
-[96x96/stock/image]
-Size=96
-Context=Stock
-Type=Threshold
-
-[96x96/stock/io]
-Size=96
-Context=Stock
-Type=Threshold
-
-[96x96/stock/media]
-Size=96
-Context=Stock
-Type=Threshold
-
-[96x96/stock/navigation]
-Size=96
-Context=Stock
-Type=Threshold
-
-[96x96/stock/net]
-Size=96
-Context=Stock
-Type=Threshold
-
-[96x96/stock/object]
-Size=96
-Context=Stock
-Type=Threshold
-
-[96x96/stock/table]
-Size=96
-Context=Stock
-Type=Threshold
-
-[96x96/stock/text]
-Size=96
-Context=Stock
-Type=Threshold
-
-[128x128/actions]
-Size=128
-Context=Actions
-Type=Threshold
-
-[128x128/animations]
-Size=128
-Context=Animations
-Type=Threshold
-
-[128x128/apps]
-Size=128
-Context=Applications
-Type=Threshold
-
-[128x128/categories]
-Size=128
-Context=Categories
-Type=Threshold
-
-[128x128/devices]
-Size=128
-Context=Devices
-Type=Threshold
-
-[128x128/emblems]
-Size=128
-Context=Emblems
-Type=Threshold
-
-[128x128/emotes]
-Size=128
-Context=Emotes
-Type=Threshold
-
-[128x128/filesystems]
-Size=128
-Context=FileSystems
-Type=Threshold
-
-[128x128/intl]
-Size=128
-Context=International
-Type=Threshold
-
-[128x128/mimetypes]
-Size=128
-Context=MimeTypes
-Type=Threshold
-
-[128x128/places]
-Size=128
-Context=Places
-Type=Threshold
-
-[128x128/status]
-Size=128
-Context=Status
-Type=Threshold
-
-[128x128/stock/chart]
-Size=128
-Context=Stock
-Type=Threshold
-
-[128x128/stock/code]
-Size=128
-Context=Stock
-Type=Threshold
-
-[128x128/stock/data]
-Size=128
-Context=Stock
-Type=Threshold
-
-[128x128/stock/form]
-Size=128
-Context=Stock
-Type=Threshold
-
-[128x128/stock/image]
-Size=128
-Context=Stock
-Type=Threshold
-
-[128x128/stock/io]
-Size=128
-Context=Stock
-Type=Threshold
-
-[128x128/stock/media]
-Size=128
-Context=Stock
-Type=Threshold
-
-[128x128/stock/navigation]
-Size=128
-Context=Stock
-Type=Threshold
-
-[128x128/stock/net]
-Size=128
-Context=Stock
-Type=Threshold
-
-[128x128/stock/object]
-Size=128
-Context=Stock
-Type=Threshold
-
-[128x128/stock/table]
-Size=128
-Context=Stock
-Type=Threshold
-
-[128x128/stock/text]
-Size=128
-Context=Stock
-Type=Threshold
-
-[192x192/actions]
-Size=192
-Context=Actions
-Type=Threshold
-
-[192x192/animations]
-Size=192
-Context=Animations
-Type=Threshold
-
-[192x192/apps]
-Size=192
-Context=Applications
-Type=Threshold
-
-[192x192/categories]
-Size=192
-Context=Categories
-Type=Threshold
-
-[192x192/devices]
-Size=192
-Context=Devices
-Type=Threshold
-
-[192x192/emblems]
-Size=192
-Context=Emblems
-Type=Threshold
-
-[192x192/emotes]
-Size=192
-Context=Emotes
-Type=Threshold
-
-[192x192/filesystems]
-Size=192
-Context=FileSystems
-Type=Threshold
-
-[192x192/intl]
-Size=192
-Context=International
-Type=Threshold
-
-[192x192/mimetypes]
-Size=192
-Context=MimeTypes
-Type=Threshold
-
-[192x192/places]
-Size=192
-Context=Places
-Type=Threshold
-
-[192x192/status]
-Size=192
-Context=Status
-Type=Threshold
-
-[192x192/stock/chart]
-Size=192
-Context=Stock
-Type=Threshold
-
-[192x192/stock/code]
-Size=192
-Context=Stock
-Type=Threshold
-
-[192x192/stock/data]
-Size=192
-Context=Stock
-Type=Threshold
-
-[192x192/stock/form]
-Size=192
-Context=Stock
-Type=Threshold
-
-[192x192/stock/image]
-Size=192
-Context=Stock
-Type=Threshold
-
-[192x192/stock/io]
-Size=192
-Context=Stock
-Type=Threshold
-
-[192x192/stock/media]
-Size=192
-Context=Stock
-Type=Threshold
-
-[192x192/stock/navigation]
-Size=192
-Context=Stock
-Type=Threshold
-
-[192x192/stock/net]
-Size=192
-Context=Stock
-Type=Threshold
-
-[192x192/stock/object]
-Size=192
-Context=Stock
-Type=Threshold
-
-[192x192/stock/table]
-Size=192
-Context=Stock
-Type=Threshold
-
-[192x192/stock/text]
-Size=192
-Context=Stock
-Type=Threshold
-
-[256x256/actions]
-MinSize=64
-Size=256
-MaxSize=256
-Context=Actions
-Type=Scalable
-
-[256x256/animations]
-MinSize=64
-Size=256
-MaxSize=256
-Context=Animations
-Type=Scalable
-
-[256x256/apps]
-MinSize=64
-Size=256
-MaxSize=256
-Context=Applications
-Type=Scalable
-
-[256x256/categories]
-MinSize=64
-Size=256
-MaxSize=256
-Context=Categories
-Type=Scalable
-
-[256x256/devices]
-MinSize=64
-Size=256
-MaxSize=256
-Context=Devices
-Type=Scalable
-
-[256x256/emblems]
-MinSize=64
-Size=256
-MaxSize=256
-Context=Emblems
-Type=Scalable
-
-[256x256/emotes]
-MinSize=64
-Size=256
-MaxSize=256
-Context=Emotes
-Type=Scalable
-
-[256x256/filesystems]
-MinSize=64
-Size=256
-MaxSize=256
-Context=FileSystems
-Type=Scalable
-
-[256x256/intl]
-MinSize=64
-Size=256
-MaxSize=256
-Context=International
-Type=Scalable
-
-[256x256/mimetypes]
-MinSize=64
-Size=256
-MaxSize=256
-Context=MimeTypes
-Type=Scalable
-
-[256x256/places]
-MinSize=64
-Size=256
-MaxSize=256
-Context=Places
-Type=Scalable
-
-[256x256/status]
-MinSize=64
-Size=256
-MaxSize=256
-Context=Status
-Type=Scalable
-
-[256x256/stock/chart]
-MinSize=64
-Size=256
-MaxSize=256
-Context=Stock
-Type=Scalable
-
-[256x256/stock/code]
-MinSize=64
-Size=256
-MaxSize=256
-Context=Stock
-Type=Scalable
-
-[256x256/stock/data]
-MinSize=64
-Size=256
-MaxSize=256
-Context=Stock
-Type=Scalable
-
-[256x256/stock/form]
-MinSize=64
-Size=256
-MaxSize=256
-Context=Stock
-Type=Scalable
-
-[256x256/stock/image]
-MinSize=64
-Size=256
-MaxSize=256
-Context=Stock
-Type=Scalable
-
-[256x256/stock/io]
-MinSize=64
-Size=256
-MaxSize=256
-Context=Stock
-Type=Scalable
-
-[256x256/stock/media]
-MinSize=64
-Size=256
-MaxSize=256
-Context=Stock
-Type=Scalable
-
-[256x256/stock/navigation]
-MinSize=64
-Size=256
-MaxSize=256
-Context=Stock
-Type=Scalable
-
-[256x256/stock/net]
-MinSize=64
-Size=256
-MaxSize=256
-Context=Stock
-Type=Scalable
-
-[256x256/stock/object]
-MinSize=64
-Size=256
-MaxSize=256
-Context=Stock
-Type=Scalable
-
-[256x256/stock/table]
-MinSize=64
-Size=256
-MaxSize=256
-Context=Stock
-Type=Scalable
-
-[256x256/stock/text]
-MinSize=64
-Size=256
-MaxSize=256
-Context=Stock
-Type=Scalable
-
-[512x512/actions]
-MinSize=64
-Size=512
-MaxSize=512
-Context=Actions
-Type=Scalable
-
-[512x512/animations]
-MinSize=64
-Size=512
-MaxSize=512
-Context=Animations
-Type=Scalable
-
-[512x512/apps]
-MinSize=64
-Size=512
-MaxSize=512
-Context=Applications
-Type=Scalable
-
-[512x512/categories]
-MinSize=64
-Size=512
-MaxSize=512
-Context=Categories
-Type=Scalable
-
-[512x512/devices]
-MinSize=64
-Size=512
-MaxSize=512
-Context=Devices
-Type=Scalable
-
-[512x512/emblems]
-MinSize=64
-Size=512
-MaxSize=512
-Context=Emblems
-Type=Scalable
-
-[512x512/emotes]
-MinSize=64
-Size=512
-MaxSize=512
-Context=Emotes
-Type=Scalable
-
-[512x512/filesystems]
-MinSize=64
-Size=512
-MaxSize=512
-Context=FileSystems
-Type=Scalable
-
-[512x512/intl]
-MinSize=64
-Size=512
-MaxSize=512
-Context=International
-Type=Scalable
-
-[512x512/mimetypes]
-MinSize=64
-Size=512
-MaxSize=512
-Context=MimeTypes
-Type=Scalable
-
-[512x512/places]
-MinSize=64
-Size=512
-MaxSize=512
-Context=Places
-Type=Scalable
-
-[512x512/status]
-MinSize=64
-Size=512
-MaxSize=512
-Context=Status
-Type=Scalable
-
-[512x512/stock/chart]
-MinSize=64
-Size=512
-MaxSize=512
-Context=Stock
-Type=Scalable
-
-[512x512/stock/code]
-MinSize=64
-Size=512
-MaxSize=512
-Context=Stock
-Type=Scalable
-
-[512x512/stock/data]
-MinSize=64
-Size=512
-MaxSize=512
-Context=Stock
-Type=Scalable
-
-[512x512/stock/form]
-MinSize=64
-Size=512
-MaxSize=512
-Context=Stock
-Type=Scalable
-
-[512x512/stock/image]
-MinSize=64
-Size=512
-MaxSize=512
-Context=Stock
-Type=Scalable
-
-[512x512/stock/io]
-MinSize=64
-Size=512
-MaxSize=512
-Context=Stock
-Type=Scalable
-
-[512x512/stock/media]
-MinSize=64
-Size=512
-MaxSize=512
-Context=Stock
-Type=Scalable
-
-[512x512/stock/navigation]
-MinSize=64
-Size=512
-MaxSize=512
-Context=Stock
-Type=Scalable
-
-[512x512/stock/net]
-MinSize=64
-Size=512
-MaxSize=512
-Context=Stock
-Type=Scalable
-
-[512x512/stock/object]
-MinSize=64
-Size=512
-MaxSize=512
-Context=Stock
-Type=Scalable
-
-[512x512/stock/table]
-MinSize=64
-Size=512
-MaxSize=512
-Context=Stock
-Type=Scalable
-
-[512x512/stock/text]
-MinSize=64
-Size=512
-MaxSize=512
-Context=Stock
-Type=Scalable
-
-[scalable/actions]
-MinSize=1
-Size=128
-MaxSize=256
-Context=Actions
-Type=Scalable
-
-[scalable/animations]
-MinSize=1
-Size=128
-MaxSize=256
-Context=Animations
-Type=Scalable
-
-[scalable/apps]
-MinSize=1
-Size=128
-MaxSize=256
-Context=Applications
-Type=Scalable
-
-[scalable/categories]
-MinSize=1
-Size=128
-MaxSize=256
-Context=Categories
-Type=Scalable
-
-[scalable/devices]
-MinSize=1
-Size=128
-MaxSize=512
-Context=Devices
-Type=Scalable
-
-[scalable/emblems]
-MinSize=1
-Size=128
-MaxSize=256
-Context=Emblems
-Type=Scalable
-
-[scalable/emotes]
-MinSize=1
-Size=128
-MaxSize=512
-Context=Emotes
-Type=Scalable
-
-[scalable/filesystems]
-MinSize=1
-Size=128
-MaxSize=256
-Context=FileSystems
-Type=Scalable
-
-[scalable/intl]
-MinSize=1
-Size=128
-MaxSize=512
-Context=International
-Type=Scalable
-
-[scalable/mimetypes]
-MinSize=1
-Size=128
-MaxSize=256
-Context=MimeTypes
-Type=Scalable
-
-[scalable/places]
-MinSize=1
-Size=128
-MaxSize=512
-Context=Places
-Type=Scalable
-
-[scalable/status]
-MinSize=1
-Size=128
-MaxSize=256
-Context=Status
-Type=Scalable
-
-[scalable/stock/chart]
-MinSize=1
-Size=128
-MaxSize=512
-Context=Stock
-Type=Scalable
-
-[scalable/stock/code]
-MinSize=1
-Size=128
-MaxSize=256
-Context=Stock
-Type=Scalable
-
-[scalable/stock/data]
-MinSize=1
-Size=128
-MaxSize=512
-Context=Stock
-Type=Scalable
-
-[scalable/stock/form]
-MinSize=1
-Size=128
-MaxSize=256
-Context=Stock
-Type=Scalable
-
-[scalable/stock/image]
-MinSize=1
-Size=128
-MaxSize=512
-Context=Stock
-Type=Scalable
-
-[scalable/stock/io]
-MinSize=1
-Size=128
-MaxSize=256
-Context=Stock
-Type=Scalable
-
-[scalable/stock/media]
-MinSize=1
-Size=128
-MaxSize=512
-Context=Stock
-Type=Scalable
-
-[scalable/stock/navigation]
-MinSize=1
-Size=128
-MaxSize=256
-Context=Stock
-Type=Scalable
-
-[scalable/stock/net]
-MinSize=1
-Size=128
-MaxSize=512
-Context=Stock
-Type=Scalable
-
-[scalable/stock/object]
-MinSize=1
-Size=128
-MaxSize=256
-Context=Stock
-Type=Scalable
-
-[scalable/stock/table]
-MinSize=1
-Size=128
-MaxSize=512
-Context=Stock
-Type=Scalable
-
-[scalable/stock/text]
-MinSize=1
-Size=128
-MaxSize=256
-Context=Stock
-Type=Scalable
-
-[symbolic/apps]
-MinSize=8
-Size=16
-MaxSize=512
-Context=Applications
-Type=Scalable
diff --git a/pixmaps/linphone-add-call.png b/pixmaps/linphone-add-call.png
deleted file mode 100644
index 9c9edeef8..000000000
Binary files a/pixmaps/linphone-add-call.png and /dev/null differ
diff --git a/pixmaps/linphone-banner.png b/pixmaps/linphone-banner.png
deleted file mode 100644
index 6fe99ab77..000000000
Binary files a/pixmaps/linphone-banner.png and /dev/null differ
diff --git a/pixmaps/linphone-call-status-incoming.png b/pixmaps/linphone-call-status-incoming.png
deleted file mode 100644
index 58bf8633c..000000000
Binary files a/pixmaps/linphone-call-status-incoming.png and /dev/null differ
diff --git a/pixmaps/linphone-call-status-missed.png b/pixmaps/linphone-call-status-missed.png
deleted file mode 100644
index ba6bee6ee..000000000
Binary files a/pixmaps/linphone-call-status-missed.png and /dev/null differ
diff --git a/pixmaps/linphone-call-status-outgoing.png b/pixmaps/linphone-call-status-outgoing.png
deleted file mode 100644
index 73587dc7a..000000000
Binary files a/pixmaps/linphone-call-status-outgoing.png and /dev/null differ
diff --git a/pixmaps/linphone-call-transfer.png b/pixmaps/linphone-call-transfer.png
deleted file mode 100644
index 4dc24ce42..000000000
Binary files a/pixmaps/linphone-call-transfer.png and /dev/null differ
diff --git a/pixmaps/linphone-camera-disabled.png b/pixmaps/linphone-camera-disabled.png
deleted file mode 100644
index dfcc711cd..000000000
Binary files a/pixmaps/linphone-camera-disabled.png and /dev/null differ
diff --git a/pixmaps/linphone-camera-enabled.png b/pixmaps/linphone-camera-enabled.png
deleted file mode 100644
index 4c929b52b..000000000
Binary files a/pixmaps/linphone-camera-enabled.png and /dev/null differ
diff --git a/pixmaps/linphone-chat-new-message-and-writing.png b/pixmaps/linphone-chat-new-message-and-writing.png
deleted file mode 100644
index f64f525bb..000000000
Binary files a/pixmaps/linphone-chat-new-message-and-writing.png and /dev/null differ
diff --git a/pixmaps/linphone-chat-new-message.png b/pixmaps/linphone-chat-new-message.png
deleted file mode 100644
index 61341af11..000000000
Binary files a/pixmaps/linphone-chat-new-message.png and /dev/null differ
diff --git a/pixmaps/linphone-chat-nothing.png b/pixmaps/linphone-chat-nothing.png
deleted file mode 100644
index 9f6e1adc2..000000000
Binary files a/pixmaps/linphone-chat-nothing.png and /dev/null differ
diff --git a/pixmaps/linphone-chat-send.png b/pixmaps/linphone-chat-send.png
deleted file mode 100644
index 9a9f9d731..000000000
Binary files a/pixmaps/linphone-chat-send.png and /dev/null differ
diff --git a/pixmaps/linphone-chat-writing.png b/pixmaps/linphone-chat-writing.png
deleted file mode 100644
index 74c1a8269..000000000
Binary files a/pixmaps/linphone-chat-writing.png and /dev/null differ
diff --git a/pixmaps/linphone-conference-start.png b/pixmaps/linphone-conference-start.png
deleted file mode 100644
index 23dabbc35..000000000
Binary files a/pixmaps/linphone-conference-start.png and /dev/null differ
diff --git a/pixmaps/linphone-contact-add.png b/pixmaps/linphone-contact-add.png
deleted file mode 100644
index f78852d01..000000000
Binary files a/pixmaps/linphone-contact-add.png and /dev/null differ
diff --git a/pixmaps/linphone-delete.png b/pixmaps/linphone-delete.png
deleted file mode 100644
index d8ff8da4a..000000000
Binary files a/pixmaps/linphone-delete.png and /dev/null differ
diff --git a/pixmaps/linphone-edit.png b/pixmaps/linphone-edit.png
deleted file mode 100644
index 772770988..000000000
Binary files a/pixmaps/linphone-edit.png and /dev/null differ
diff --git a/pixmaps/linphone-failed.png b/pixmaps/linphone-failed.png
deleted file mode 100644
index f72412139..000000000
Binary files a/pixmaps/linphone-failed.png and /dev/null differ
diff --git a/pixmaps/linphone-history.png b/pixmaps/linphone-history.png
deleted file mode 100644
index 825bdeb68..000000000
Binary files a/pixmaps/linphone-history.png and /dev/null differ
diff --git a/pixmaps/linphone-hold-off.png b/pixmaps/linphone-hold-off.png
deleted file mode 100644
index b008a6896..000000000
Binary files a/pixmaps/linphone-hold-off.png and /dev/null differ
diff --git a/pixmaps/linphone-hold-on.png b/pixmaps/linphone-hold-on.png
deleted file mode 100644
index 1590a63b0..000000000
Binary files a/pixmaps/linphone-hold-on.png and /dev/null differ
diff --git a/pixmaps/linphone-inprogress.png b/pixmaps/linphone-inprogress.png
deleted file mode 100644
index 4a4371430..000000000
Binary files a/pixmaps/linphone-inprogress.png and /dev/null differ
diff --git a/pixmaps/linphone-media-pause.png b/pixmaps/linphone-media-pause.png
deleted file mode 100644
index f9e062f38..000000000
Binary files a/pixmaps/linphone-media-pause.png and /dev/null differ
diff --git a/pixmaps/linphone-media-play.png b/pixmaps/linphone-media-play.png
deleted file mode 100644
index 382d07760..000000000
Binary files a/pixmaps/linphone-media-play.png and /dev/null differ
diff --git a/pixmaps/linphone-micro-enabled.png b/pixmaps/linphone-micro-enabled.png
deleted file mode 100644
index 44ba551af..000000000
Binary files a/pixmaps/linphone-micro-enabled.png and /dev/null differ
diff --git a/pixmaps/linphone-micro-muted.png b/pixmaps/linphone-micro-muted.png
deleted file mode 100644
index cf666ebd0..000000000
Binary files a/pixmaps/linphone-micro-muted.png and /dev/null differ
diff --git a/pixmaps/linphone-ok.png b/pixmaps/linphone-ok.png
deleted file mode 100644
index 4bcd6f634..000000000
Binary files a/pixmaps/linphone-ok.png and /dev/null differ
diff --git a/pixmaps/linphone-record.png b/pixmaps/linphone-record.png
deleted file mode 100644
index 4ef4b064d..000000000
Binary files a/pixmaps/linphone-record.png and /dev/null differ
diff --git a/pixmaps/linphone-security-ok.png b/pixmaps/linphone-security-ok.png
deleted file mode 100644
index 38d2ec61c..000000000
Binary files a/pixmaps/linphone-security-ok.png and /dev/null differ
diff --git a/pixmaps/linphone-security-pending.png b/pixmaps/linphone-security-pending.png
deleted file mode 100644
index d61faa39a..000000000
Binary files a/pixmaps/linphone-security-pending.png and /dev/null differ
diff --git a/pixmaps/linphone-speaker-enabled.png b/pixmaps/linphone-speaker-enabled.png
deleted file mode 100644
index 0c8d7a951..000000000
Binary files a/pixmaps/linphone-speaker-enabled.png and /dev/null differ
diff --git a/pixmaps/linphone-speaker-muted.png b/pixmaps/linphone-speaker-muted.png
deleted file mode 100644
index 91e96eddb..000000000
Binary files a/pixmaps/linphone-speaker-muted.png and /dev/null differ
diff --git a/pixmaps/linphone-start-call.png b/pixmaps/linphone-start-call.png
deleted file mode 100644
index ade0e15a4..000000000
Binary files a/pixmaps/linphone-start-call.png and /dev/null differ
diff --git a/pixmaps/linphone-start-call2.png b/pixmaps/linphone-start-call2.png
deleted file mode 100644
index 097271ce2..000000000
Binary files a/pixmaps/linphone-start-call2.png and /dev/null differ
diff --git a/pixmaps/linphone-start-chat.png b/pixmaps/linphone-start-chat.png
deleted file mode 100644
index 15b050f6f..000000000
Binary files a/pixmaps/linphone-start-chat.png and /dev/null differ
diff --git a/pixmaps/linphone-status-away.png b/pixmaps/linphone-status-away.png
deleted file mode 100644
index 56c7fb367..000000000
Binary files a/pixmaps/linphone-status-away.png and /dev/null differ
diff --git a/pixmaps/linphone-status-donotdisturb.png b/pixmaps/linphone-status-donotdisturb.png
deleted file mode 100644
index d5a1391de..000000000
Binary files a/pixmaps/linphone-status-donotdisturb.png and /dev/null differ
diff --git a/pixmaps/linphone-status-offline.png b/pixmaps/linphone-status-offline.png
deleted file mode 100644
index c4f236f55..000000000
Binary files a/pixmaps/linphone-status-offline.png and /dev/null differ
diff --git a/pixmaps/linphone-status-online.png b/pixmaps/linphone-status-online.png
deleted file mode 100644
index 7fb4a1276..000000000
Binary files a/pixmaps/linphone-status-online.png and /dev/null differ
diff --git a/pixmaps/linphone-stop-call.png b/pixmaps/linphone-stop-call.png
deleted file mode 100644
index da1a2eab5..000000000
Binary files a/pixmaps/linphone-stop-call.png and /dev/null differ
diff --git a/pixmaps/linphone-take-screenshot.png b/pixmaps/linphone-take-screenshot.png
deleted file mode 100644
index 7a54a9928..000000000
Binary files a/pixmaps/linphone-take-screenshot.png and /dev/null differ
diff --git a/pixmaps/linphone-warning.png b/pixmaps/linphone-warning.png
deleted file mode 100644
index 044bcd8f0..000000000
Binary files a/pixmaps/linphone-warning.png and /dev/null differ
diff --git a/pixmaps/linphone.icns b/pixmaps/linphone.icns
deleted file mode 100644
index 3b8f1bd0a..000000000
Binary files a/pixmaps/linphone.icns and /dev/null differ
diff --git a/pixmaps/linphone.png b/pixmaps/linphone.png
deleted file mode 100644
index 4031d7205..000000000
Binary files a/pixmaps/linphone.png and /dev/null differ
diff --git a/pixmaps/svg/linphone-add-call.svg b/pixmaps/svg/linphone-add-call.svg
deleted file mode 100644
index ed8da23bc..000000000
--- a/pixmaps/svg/linphone-add-call.svg
+++ /dev/null
@@ -1,89 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-call-status-incoming.svg b/pixmaps/svg/linphone-call-status-incoming.svg
deleted file mode 100644
index af9dd9bf6..000000000
--- a/pixmaps/svg/linphone-call-status-incoming.svg
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-call-status-missed.svg b/pixmaps/svg/linphone-call-status-missed.svg
deleted file mode 100644
index abb146cf1..000000000
--- a/pixmaps/svg/linphone-call-status-missed.svg
+++ /dev/null
@@ -1,86 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-call-status-outgoing.svg b/pixmaps/svg/linphone-call-status-outgoing.svg
deleted file mode 100644
index cc8c66efb..000000000
--- a/pixmaps/svg/linphone-call-status-outgoing.svg
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-call-transfer.svg b/pixmaps/svg/linphone-call-transfer.svg
deleted file mode 100644
index 357ccfad7..000000000
--- a/pixmaps/svg/linphone-call-transfer.svg
+++ /dev/null
@@ -1,104 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-camera-disabled.svg b/pixmaps/svg/linphone-camera-disabled.svg
deleted file mode 100644
index f5ddde244..000000000
--- a/pixmaps/svg/linphone-camera-disabled.svg
+++ /dev/null
@@ -1,95 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-camera-enabled.svg b/pixmaps/svg/linphone-camera-enabled.svg
deleted file mode 100644
index 5138510e3..000000000
--- a/pixmaps/svg/linphone-camera-enabled.svg
+++ /dev/null
@@ -1,90 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-chat-new-message-and-writing.svg b/pixmaps/svg/linphone-chat-new-message-and-writing.svg
deleted file mode 100644
index 9cd538ea3..000000000
--- a/pixmaps/svg/linphone-chat-new-message-and-writing.svg
+++ /dev/null
@@ -1,76 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-chat-new-message.svg b/pixmaps/svg/linphone-chat-new-message.svg
deleted file mode 100644
index 8ad456ca2..000000000
--- a/pixmaps/svg/linphone-chat-new-message.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-chat-nothing.svg b/pixmaps/svg/linphone-chat-nothing.svg
deleted file mode 100644
index 4835b5255..000000000
--- a/pixmaps/svg/linphone-chat-nothing.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-chat-send.svg b/pixmaps/svg/linphone-chat-send.svg
deleted file mode 100644
index 4f0924ab7..000000000
--- a/pixmaps/svg/linphone-chat-send.svg
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-chat-writing.svg b/pixmaps/svg/linphone-chat-writing.svg
deleted file mode 100644
index 7183818a1..000000000
--- a/pixmaps/svg/linphone-chat-writing.svg
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-conference-start.svg b/pixmaps/svg/linphone-conference-start.svg
deleted file mode 100644
index eedb7136b..000000000
--- a/pixmaps/svg/linphone-conference-start.svg
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-contact-add.svg b/pixmaps/svg/linphone-contact-add.svg
deleted file mode 100644
index 08882723a..000000000
--- a/pixmaps/svg/linphone-contact-add.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
\ No newline at end of file
diff --git a/pixmaps/svg/linphone-delete.svg b/pixmaps/svg/linphone-delete.svg
deleted file mode 100644
index 51b051ac0..000000000
--- a/pixmaps/svg/linphone-delete.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
\ No newline at end of file
diff --git a/pixmaps/svg/linphone-edit.svg b/pixmaps/svg/linphone-edit.svg
deleted file mode 100644
index 21d72cfbc..000000000
--- a/pixmaps/svg/linphone-edit.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
\ No newline at end of file
diff --git a/pixmaps/svg/linphone-failed.svg b/pixmaps/svg/linphone-failed.svg
deleted file mode 100644
index 98e3fc67f..000000000
--- a/pixmaps/svg/linphone-failed.svg
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-history.svg b/pixmaps/svg/linphone-history.svg
deleted file mode 100644
index c4b4f4936..000000000
--- a/pixmaps/svg/linphone-history.svg
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-hold-off.svg b/pixmaps/svg/linphone-hold-off.svg
deleted file mode 100644
index bd44bbf3a..000000000
--- a/pixmaps/svg/linphone-hold-off.svg
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-hold-on.svg b/pixmaps/svg/linphone-hold-on.svg
deleted file mode 100644
index b25a411fd..000000000
--- a/pixmaps/svg/linphone-hold-on.svg
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-inprogress.svg b/pixmaps/svg/linphone-inprogress.svg
deleted file mode 100644
index 871be13b5..000000000
--- a/pixmaps/svg/linphone-inprogress.svg
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-logo.svg b/pixmaps/svg/linphone-logo.svg
deleted file mode 100644
index 6861fef41..000000000
--- a/pixmaps/svg/linphone-logo.svg
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
-
-
diff --git a/pixmaps/svg/linphone-media-pause.svg b/pixmaps/svg/linphone-media-pause.svg
deleted file mode 100644
index 0e8ed0de7..000000000
--- a/pixmaps/svg/linphone-media-pause.svg
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-media-play.svg b/pixmaps/svg/linphone-media-play.svg
deleted file mode 100644
index 3eb7f0066..000000000
--- a/pixmaps/svg/linphone-media-play.svg
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-micro-enabled.svg b/pixmaps/svg/linphone-micro-enabled.svg
deleted file mode 100644
index a23354bc1..000000000
--- a/pixmaps/svg/linphone-micro-enabled.svg
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-micro-muted.svg b/pixmaps/svg/linphone-micro-muted.svg
deleted file mode 100644
index 09d505c59..000000000
--- a/pixmaps/svg/linphone-micro-muted.svg
+++ /dev/null
@@ -1,90 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-ok.svg b/pixmaps/svg/linphone-ok.svg
deleted file mode 100644
index db08198f7..000000000
--- a/pixmaps/svg/linphone-ok.svg
+++ /dev/null
@@ -1,95 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-record.svg b/pixmaps/svg/linphone-record.svg
deleted file mode 100644
index 8709e9509..000000000
--- a/pixmaps/svg/linphone-record.svg
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-security-ok.svg b/pixmaps/svg/linphone-security-ok.svg
deleted file mode 100644
index 83e518e9b..000000000
--- a/pixmaps/svg/linphone-security-ok.svg
+++ /dev/null
@@ -1,76 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-security-pending.svg b/pixmaps/svg/linphone-security-pending.svg
deleted file mode 100644
index 084755a29..000000000
--- a/pixmaps/svg/linphone-security-pending.svg
+++ /dev/null
@@ -1,76 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-speaker-enabled.svg b/pixmaps/svg/linphone-speaker-enabled.svg
deleted file mode 100644
index 8a122795d..000000000
--- a/pixmaps/svg/linphone-speaker-enabled.svg
+++ /dev/null
@@ -1,87 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-speaker-muted.svg b/pixmaps/svg/linphone-speaker-muted.svg
deleted file mode 100644
index 1e85b85be..000000000
--- a/pixmaps/svg/linphone-speaker-muted.svg
+++ /dev/null
@@ -1,76 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-start-call.svg b/pixmaps/svg/linphone-start-call.svg
deleted file mode 100644
index b7783041a..000000000
--- a/pixmaps/svg/linphone-start-call.svg
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-start-call2.svg b/pixmaps/svg/linphone-start-call2.svg
deleted file mode 100644
index 4e6f22d9a..000000000
--- a/pixmaps/svg/linphone-start-call2.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-start-chat.svg b/pixmaps/svg/linphone-start-chat.svg
deleted file mode 100644
index aa71e6c0f..000000000
--- a/pixmaps/svg/linphone-start-chat.svg
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-status-away.svg b/pixmaps/svg/linphone-status-away.svg
deleted file mode 100644
index 46beec033..000000000
--- a/pixmaps/svg/linphone-status-away.svg
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-status-donotdisturb.svg b/pixmaps/svg/linphone-status-donotdisturb.svg
deleted file mode 100644
index 54e2ef8fe..000000000
--- a/pixmaps/svg/linphone-status-donotdisturb.svg
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-status-offline.svg b/pixmaps/svg/linphone-status-offline.svg
deleted file mode 100644
index 890ee2f7f..000000000
--- a/pixmaps/svg/linphone-status-offline.svg
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-status-online.svg b/pixmaps/svg/linphone-status-online.svg
deleted file mode 100644
index 5f7149e4d..000000000
--- a/pixmaps/svg/linphone-status-online.svg
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-stop-call.svg b/pixmaps/svg/linphone-stop-call.svg
deleted file mode 100644
index ab4fa3b28..000000000
--- a/pixmaps/svg/linphone-stop-call.svg
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone-warning.svg b/pixmaps/svg/linphone-warning.svg
deleted file mode 100644
index e1cbb91d9..000000000
--- a/pixmaps/svg/linphone-warning.svg
+++ /dev/null
@@ -1,106 +0,0 @@
-
-
diff --git a/pixmaps/svg/linphone.svg b/pixmaps/svg/linphone.svg
deleted file mode 100644
index 528247c89..000000000
--- a/pixmaps/svg/linphone.svg
+++ /dev/null
@@ -1,83 +0,0 @@
-
-
-
-
diff --git a/po/.gitignore b/po/.gitignore
deleted file mode 100644
index 5af53230f..000000000
--- a/po/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-.intltool-merge-cache
-Makefile
-Makefile.in
-Makefile.in.in
-POTFILES
-*.gmo
-stamp-*
diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
deleted file mode 100644
index b51481639..000000000
--- a/po/CMakeLists.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-############################################################################
-# CMakeLists.txt
-# Copyright (C) 2014 Belledonne Communications, Grenoble France
-#
-############################################################################
-#
-# 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 2
-# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-############################################################################
-
-if(GETTEXT_FOUND)
- foreach(language ${LINPHONE_ALL_LANGS_LIST})
- GETTEXT_PROCESS_PO_FILES(${language} ALL PO_FILES ${language}.po)
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${language}.gmo
- DESTINATION ${PACKAGE_LOCALE_DIR}/${language}/LC_MESSAGES
- RENAME linphone.mo
- PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
- )
- endforeach()
-endif()
diff --git a/po/ChangeLog b/po/ChangeLog
deleted file mode 100644
index 63269d9a1..000000000
--- a/po/ChangeLog
+++ /dev/null
@@ -1,97 +0,0 @@
-2007-01-17 gettextize
-
- * Makefile.in.in: Upgrade to gettext-0.16.1.
- * cat-id-tbl.c: Remove file.
-
-2006-07-20 gettextize
-
- * Makefile.in.in: Upgrade to gettext-0.14.6.
- * boldquot.sed: New file, from gettext-0.14.6.
- * en@boldquot.header: New file, from gettext-0.14.6.
- * en@quot.header: New file, from gettext-0.14.6.
- * insert-header.sin: New file, from gettext-0.14.6.
- * quot.sed: New file, from gettext-0.14.6.
- * remove-potcdate.sin: New file, from gettext-0.14.6.
- * Rules-quot: New file, from gettext-0.14.6.
- * cat-id-tbl.c: Remove file.
-
-2002-10-15 gettextize
-
- * cat-id-tbl.c: Remove file.
- * stamp-cat-id: Remove file.
-
-2002-10-08 gettextize
-
- * cat-id-tbl.c: Remove file.
- * stamp-cat-id: Remove file.
-
-2002-10-08 gettextize
-
- * boldquot.sed: New file, from gettext-0.11.5.
- * en@boldquot.header: New file, from gettext-0.11.5.
- * en@quot.header: New file, from gettext-0.11.5.
- * insert-header.sin: New file, from gettext-0.11.5.
- * quot.sed: New file, from gettext-0.11.5.
- * remove-potcdate.sin: New file, from gettext-0.11.5.
- * Rules-quot: New file, from gettext-0.11.5.
- * cat-id-tbl.c: Remove file.
- * stamp-cat-id: Remove file.
-
-2002-10-04 gettextize
-
- * cat-id-tbl.c: Remove file.
- * stamp-cat-id: Remove file.
-
-2002-10-04 gettextize
-
- * Makefile.in.in: Upgrade to gettext-0.11.5.
-
-2002-10-04 gettextize
-
- * Makefile.in.in: New file, from gettext-0.11.5.
-
-2002-10-01 gettextize
-
- * Makefile.in.in: Upgrade to gettext-0.11.5.
- * boldquot.sed: New file, from gettext-0.11.5.
- * en@boldquot.header: New file, from gettext-0.11.5.
- * en@quot.header: New file, from gettext-0.11.5.
- * insert-header.sin: New file, from gettext-0.11.5.
- * quot.sed: New file, from gettext-0.11.5.
- * remove-potcdate.sin: New file, from gettext-0.11.5.
- * Rules-quot: New file, from gettext-0.11.5.
- * cat-id-tbl.c: Remove file.
- * stamp-cat-id: Remove file.
-
-2002-08-04 gettextize
-
- * Makefile.in.in: Upgrade to gettext-0.10.40.
-
-2002-08-04 gettextize
-
- * Makefile.in.in: Upgrade to gettext-0.10.40.
- * cat-id-tbl.c: Remove file.
- * stamp-cat-id: Remove file.
-
-2002-07-16 gettextize
-
- * Makefile.in.in: Upgrade to gettext-0.10.40.
- * cat-id-tbl.c: Remove file.
- * stamp-cat-id: Remove file.
-
-2002-02-16 gettextize
-
- * Makefile.in.in: Upgrade to gettext-0.10.40.
- * cat-id-tbl.c: Remove file.
- * stamp-cat-id: Remove file.
-
-2002-02-10 gettextize
-
- * Makefile.in.in: Upgrade to gettext-0.10.40.
-
-2002-02-10 gettextize
-
- * Makefile.in.in: Upgrade to gettext-0.10.40.
- * cat-id-tbl.c: Remove file.
- * stamp-cat-id: Remove file.
-
diff --git a/po/Makevars b/po/Makevars
deleted file mode 100644
index 32692ab4b..000000000
--- a/po/Makevars
+++ /dev/null
@@ -1,41 +0,0 @@
-# Makefile variables for PO directory in any package using GNU gettext.
-
-# Usually the message domain is the same as the package name.
-DOMAIN = $(PACKAGE)
-
-# These two variables depend on the location of this directory.
-subdir = po
-top_builddir = ..
-
-# These options get passed to xgettext.
-XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
-
-# This is the copyright holder that gets inserted into the header of the
-# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
-# package. (Note that the msgstr strings, extracted from the package's
-# sources, belong to the copyright holder of the package.) Translators are
-# expected to transfer the copyright for their translations to this person
-# or entity, or to disclaim their copyright. The empty string stands for
-# the public domain; in this case the translators are expected to disclaim
-# their copyright.
-COPYRIGHT_HOLDER = Free Software Foundation, Inc.
-
-# This is the email address or URL to which the translators shall report
-# bugs in the untranslated strings:
-# - Strings which are not entire sentences, see the maintainer guidelines
-# in the GNU gettext documentation, section 'Preparing Strings'.
-# - Strings which use unclear terms or require additional context to be
-# understood.
-# - Strings which make invalid assumptions about notation of date, time or
-# money.
-# - Pluralisation problems.
-# - Incorrect English spelling.
-# - Incorrect formatting.
-# It can be your email address, or a mailing list address where translators
-# can write to without being subscribed, or the URL of a web page through
-# which the translators can contact you.
-MSGID_BUGS_ADDRESS =
-
-# This is the list of locale categories, beyond LC_MESSAGES, for which the
-# message catalogs shall be used. It is usually empty.
-EXTRA_LOCALE_CATEGORIES =
diff --git a/po/Makevars.template b/po/Makevars.template
deleted file mode 100644
index 32692ab4b..000000000
--- a/po/Makevars.template
+++ /dev/null
@@ -1,41 +0,0 @@
-# Makefile variables for PO directory in any package using GNU gettext.
-
-# Usually the message domain is the same as the package name.
-DOMAIN = $(PACKAGE)
-
-# These two variables depend on the location of this directory.
-subdir = po
-top_builddir = ..
-
-# These options get passed to xgettext.
-XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
-
-# This is the copyright holder that gets inserted into the header of the
-# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
-# package. (Note that the msgstr strings, extracted from the package's
-# sources, belong to the copyright holder of the package.) Translators are
-# expected to transfer the copyright for their translations to this person
-# or entity, or to disclaim their copyright. The empty string stands for
-# the public domain; in this case the translators are expected to disclaim
-# their copyright.
-COPYRIGHT_HOLDER = Free Software Foundation, Inc.
-
-# This is the email address or URL to which the translators shall report
-# bugs in the untranslated strings:
-# - Strings which are not entire sentences, see the maintainer guidelines
-# in the GNU gettext documentation, section 'Preparing Strings'.
-# - Strings which use unclear terms or require additional context to be
-# understood.
-# - Strings which make invalid assumptions about notation of date, time or
-# money.
-# - Pluralisation problems.
-# - Incorrect English spelling.
-# - Incorrect formatting.
-# It can be your email address, or a mailing list address where translators
-# can write to without being subscribed, or the URL of a web page through
-# which the translators can contact you.
-MSGID_BUGS_ADDRESS =
-
-# This is the list of locale categories, beyond LC_MESSAGES, for which the
-# message catalogs shall be used. It is usually empty.
-EXTRA_LOCALE_CATEGORIES =
diff --git a/po/POTFILES.in b/po/POTFILES.in
deleted file mode 100644
index c44eab3a2..000000000
--- a/po/POTFILES.in
+++ /dev/null
@@ -1,50 +0,0 @@
-# List of source files containing translatable strings.
-gtk/calllogs.c
-gtk/conference.c
-gtk/logging.c
-gtk/support.c
-gtk/chat.c
-gtk/main.c
-gtk/friendlist.c
-gtk/propertybox.c
-gtk/update.c
-gtk/buddylookup.c
-gtk/setupwizard.c
-gtk/incall_view.c
-gtk/loginframe.c
-gtk/config-fetching.c
-gtk/audio_assistant.c
-[type: gettext/glade]gtk/about.ui
-[type: gettext/glade]gtk/audio_assistant.ui
-[type: gettext/glade]gtk/buddylookup.ui
-[type: gettext/glade]gtk/callee_frame.ui
-[type: gettext/glade]gtk/call_logs.ui
-[type: gettext/glade]gtk/call_statistics.ui
-[type: gettext/glade]gtk/chatroom_frame.ui
-[type: gettext/glade]gtk/conf_frame.ui
-[type: gettext/glade]gtk/config-uri.ui
-[type: gettext/glade]gtk/contact.ui
-[type: gettext/glade]gtk/dscp_settings.ui
-[type: gettext/glade]gtk/in_call_frame.ui
-[type: gettext/glade]gtk/keypad.ui
-[type: gettext/glade]gtk/ldap.ui
-[type: gettext/glade]gtk/login_frame.ui
-[type: gettext/glade]gtk/log.ui
-[type: gettext/glade]gtk/main.ui
-[type: gettext/glade]gtk/parameters.ui
-[type: gettext/glade]gtk/password.ui
-[type: gettext/glade]gtk/provisioning-fetch.ui
-[type: gettext/glade]gtk/setup_wizard.ui
-[type: gettext/glade]gtk/sip_account.ui
-[type: gettext/glade]gtk/tunnel_config.ui
-[type: gettext/glade]gtk/waiting.ui
-coreapi/linphonecore.c
-coreapi/misc.c
-coreapi/presence.c
-coreapi/friend.c
-coreapi/proxy.c
-coreapi/callbacks.c
-coreapi/linphonecall.c
-
-coreapi/call_log.c
-gtk/videowindow.c
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
deleted file mode 100755
index 573d0bea5..000000000
--- a/po/POTFILES.skip
+++ /dev/null
@@ -1,56 +0,0 @@
-gtk/p2pwizard.ui
-mediastreamer2/src/otherfilters/mspcapfileplayer.c
-mediastreamer2/src/android/androidsound_depr.cpp
-mediastreamer2/src/android/androidvideo.cpp
-mediastreamer2/src/audiofilters/alaw.c
-mediastreamer2/src/audiofilters/alsa.c
-mediastreamer2/src/audiofilters/aqsnd.m
-mediastreamer2/src/audiofilters/audiomixer.c
-mediastreamer2/src/audiofilters/chanadapt.c
-mediastreamer2/src/audiofilters/dtmfgen.c
-mediastreamer2/src/audiofilters/equalizer.c
-mediastreamer2/src/audiofilters/gsm.c
-mediastreamer2/src/audiofilters/genericplc.c
-mediastreamer2/src/audiofilters/msgenericplc.c
-mediastreamer2/src/audiofilters/macsnd.c
-mediastreamer2/src/audiofilters/msconf.c
-mediastreamer2/src/audiofilters/msfileplayer.c
-mediastreamer2/src/audiofilters/msfilerec.c
-mediastreamer2/src/audiofilters/msfilerec_win.c
-mediastreamer2/src/audiofilters/msiounit.m
-mediastreamer2/src/audiofilters/msresample.c
-mediastreamer2/src/audiofilters/msspeex.c
-mediastreamer2/src/audiofilters/msvolume.c
-mediastreamer2/src/audiofilters/oss.c
-mediastreamer2/src/audiofilters/speexec.c
-mediastreamer2/src/audiofilters/ulaw.c
-mediastreamer2/src/audiofilters/webrtc_aec.c
-mediastreamer2/src/otherfilters/itc.c
-mediastreamer2/src/otherfilters/join.c
-mediastreamer2/src/otherfilters/msrtp.c
-mediastreamer2/src/otherfilters/tee.c
-mediastreamer2/src/otherfilters/void.c
-mediastreamer2/src/videofilters/drawdib-display.c
-mediastreamer2/src/videofilters/extdisplay.c
-mediastreamer2/src/videofilters/msdscap-mingw.cc
-mediastreamer2/src/videofilters/msv4l.c
-mediastreamer2/src/videofilters/msv4l2.c
-mediastreamer2/src/videofilters/nowebcam.c
-mediastreamer2/src/videofilters/pixconv.c
-mediastreamer2/src/videofilters/sizeconv.c
-mediastreamer2/src/videofilters/theora.c
-mediastreamer2/src/videofilters/videodec.c
-mediastreamer2/src/videofilters/videoenc.c
-mediastreamer2/src/videofilters/videoout.c
-mediastreamer2/src/videofilters/vp8.c
-mediastreamer2/src/videofilters/wincevideods.c
-mediastreamer2/src/videofilters/winvideo.c
-mediastreamer2/src/videofilters/winvideods.c
-mediastreamer2/src/videofilters/winvideo2.c
-mediastreamer2/src/videofilters/x11video.c
-mediastreamer2/src/videofilters/msdscap.cc
-mediastreamer2/src/voip/ice.c
-build/vsx/LibLinphoneTester-wp8/LibLinphoneTester-wp8/Resources/AppResources.Designer.cs
-build/wp8/LibLinphoneTester-wp8/Resources/AppResources.Designer.cs
-mediastreamer2/build/wp8/mediastreamer2-tester-wp8/Resources/AppResources.Designer.cs
-share/linphone.desktop.in
diff --git a/po/README b/po/README
deleted file mode 100644
index 68c47a874..000000000
--- a/po/README
+++ /dev/null
@@ -1,13 +0,0 @@
-How to add a translation file
-*****************************
-To add a translation file in linphone project you should first :
- - add the file .po in the directory /po
- - run ./autogen.sh
-
-Update the translation files
-***************************
-To update all the translation files, in the directory /po run the following command
- $ make update-po
-
-
-
diff --git a/po/Rules-quot b/po/Rules-quot
deleted file mode 100644
index 9c2a995e3..000000000
--- a/po/Rules-quot
+++ /dev/null
@@ -1,47 +0,0 @@
-# Special Makefile rules for English message catalogs with quotation marks.
-
-DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot
-
-.SUFFIXES: .insert-header .po-update-en
-
-en@quot.po-create:
- $(MAKE) en@quot.po-update
-en@boldquot.po-create:
- $(MAKE) en@boldquot.po-update
-
-en@quot.po-update: en@quot.po-update-en
-en@boldquot.po-update: en@boldquot.po-update-en
-
-.insert-header.po-update-en:
- @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \
- if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \
- tmpdir=`pwd`; \
- echo "$$lang:"; \
- ll=`echo $$lang | sed -e 's/@.*//'`; \
- LC_ALL=C; export LC_ALL; \
- cd $(srcdir); \
- if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \
- if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
- rm -f $$tmpdir/$$lang.new.po; \
- else \
- if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
- :; \
- else \
- echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
- exit 1; \
- fi; \
- fi; \
- else \
- echo "creation of $$lang.po failed!" 1>&2; \
- rm -f $$tmpdir/$$lang.new.po; \
- fi
-
-en@quot.insert-header: insert-header.sin
- sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header
-
-en@boldquot.insert-header: insert-header.sin
- sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header
-
-mostlyclean: mostlyclean-quot
-mostlyclean-quot:
- rm -f *.insert-header
diff --git a/po/ar.po b/po/ar.po
deleted file mode 100644
index 6fff00113..000000000
--- a/po/ar.po
+++ /dev/null
@@ -1,2107 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-#
-# Translators:
-# محيي الدين , 2014
-# محيي الدين , 2014-2016
-msgid ""
-msgstr ""
-"Project-Id-Version: linphone-gtk\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-19 14:01+0200\n"
-"PO-Revision-Date: 2016-05-10 09:58+0000\n"
-"Last-Translator: Belledonne Communications \n"
-"Language-Team: Arabic (http://www.transifex.com/belledonne-communications/linphone-gtk/language/ar/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ar\n"
-"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
-
-#: ../gtk/calllogs.c:178
-#, c-format
-msgid "Call %s"
-msgstr "اتصل بـ %s"
-
-#: ../gtk/calllogs.c:179
-#, c-format
-msgid "Send text to %s"
-msgstr "أرسل رسالة إلى %s"
-
-#: ../gtk/calllogs.c:181
-#, c-format
-msgid "Add %s to your contact list"
-msgstr "إضافة %s إلى قائمة جهات اتصالك"
-
-#: ../gtk/calllogs.c:245 ../gtk/main.ui.h:23
-msgid "Recent calls"
-msgstr "المكالمات السابقة"
-
-#: ../gtk/calllogs.c:260
-#, c-format
-msgid "Recent calls (%i)"
-msgstr "المكالمات الفائتة (%i)"
-
-#: ../gtk/calllogs.c:334
-msgid "n/a"
-msgstr "—"
-
-#: ../gtk/calllogs.c:337
-msgid "Aborted"
-msgstr "أُلغيت"
-
-#: ../gtk/calllogs.c:340
-msgid "Missed"
-msgstr "فائتة"
-
-#: ../gtk/calllogs.c:343
-msgid "Declined"
-msgstr "مرفوضة"
-
-#: ../gtk/calllogs.c:349
-#, c-format
-msgid "%i minute"
-msgid_plural "%i minutes"
-msgstr[0] "%i دقيقة"
-msgstr[1] "دقيقة واحدة"
-msgstr[2] "دقيقتان"
-msgstr[3] "%i دقائق"
-msgstr[4] "%i دقيقة"
-msgstr[5] "%i دقيقة"
-
-#: ../gtk/calllogs.c:352
-#, c-format
-msgid "%i second"
-msgid_plural "%i seconds"
-msgstr[0] "%i ثانية"
-msgstr[1] "ثانية واحدة"
-msgstr[2] "ثانيتان"
-msgstr[3] "%i ثوان"
-msgstr[4] "%i ثانية"
-msgstr[5] "%i ثانية"
-
-#: ../gtk/calllogs.c:357
-#, c-format
-msgid ""
-"%s\tQuality: %s\n"
-"%s\t%s\t"
-msgstr "%s\tالجودة : %s\n%s\t%s\t"
-
-#: ../gtk/calllogs.c:361
-#, c-format
-msgid "%s\t%s"
-msgstr "%s\t%s"
-
-#: ../gtk/conference.c:38 ../gtk/in_call_frame.ui.h:11
-msgid "Conference"
-msgstr "اجتماع"
-
-#: ../gtk/conference.c:46
-msgid "Me"
-msgstr "أنا"
-
-#: ../gtk/support.c:49 ../gtk/support.c:73 ../gtk/support.c:102
-#, c-format
-msgid "Couldn't find pixmap file: %s"
-msgstr "أيقونة غير موجودة : %s"
-
-#: ../gtk/chat.c:207 ../gtk/chat.c:265
-msgid "Sending..."
-msgstr "يجري الإرسال..."
-
-#: ../gtk/chat.c:224 ../gtk/chat.c:274
-msgid "Message not sent"
-msgstr "لم تُرسَل الرسالة"
-
-#: ../gtk/chat.c:498
-msgid "Copy"
-msgstr "نسخ"
-
-#: ../gtk/main.c:134
-msgid "log to stdout some debug information while running."
-msgstr "أظهِرْ بعض معلومات التنقيح خلال التشغيل."
-
-#: ../gtk/main.c:135
-msgid "display version and exit."
-msgstr "عرض الإصدار ثم المغادرة"
-
-#: ../gtk/main.c:136
-msgid "path to a file to write logs into."
-msgstr "الدليل إلى الملف الذي سيُكتَب فيه سجل الوقائع."
-
-#: ../gtk/main.c:137
-msgid "Start linphone with video disabled."
-msgstr "ابدأ لِنْفُونْ لكن دون تفعيل الفيديو."
-
-#: ../gtk/main.c:138
-msgid "Start only in the system tray, do not show the main interface."
-msgstr "شغِّله مُصغَّرا، ولا تُظهِر الواجهة الرئيسية."
-
-#: ../gtk/main.c:139
-msgid "address to call right now"
-msgstr "العنوان المُراد الاتصال به الآن"
-
-#: ../gtk/main.c:140
-msgid ""
-"Specifiy a working directory (should be the base of the installation, eg: "
-"c:\\Program Files\\Linphone)"
-msgstr "حدِّد مجلد العمل (الذي سيكون مجلد التثبيت، مثلا c:\\Program Files\\Linphone)"
-
-#: ../gtk/main.c:141
-msgid "Configuration file"
-msgstr "ملف التهيئة"
-
-#: ../gtk/main.c:142
-msgid "Run the audio assistant"
-msgstr "ابدأ مرشد الصوت"
-
-#: ../gtk/main.c:143
-msgid "Run self test and exit 0 if succeed"
-msgstr "شغِّل الاختبار الذاتي ثم اخرِجْ 0 إذا نجح"
-
-#: ../gtk/main.c:1058
-#, c-format
-msgid ""
-"%s would like to add you to his/her contact list.\n"
-"Would you add him/her to your contact list and allow him/her to see your presence status?\n"
-"If you answer no, this person will be temporarily blacklisted."
-msgstr "يود %s إضافتك إلى جهات اتصاله.\nهل تريد إضافته إلى جهات اتصالك والسماح له برؤية حالة حضورك ؟\nإن كان الجواب بالرفض، سوف يجري حظر هذا الشخص مؤقتا."
-
-#: ../gtk/main.c:1135
-#, c-format
-msgid ""
-"Please enter your password for username %s\n"
-" at realm %s:"
-msgstr "ادخل كلمة السر لـ %s\n في نطاق %s:"
-
-#: ../gtk/main.c:1244
-msgid "Call error"
-msgstr "خطأ في المكالمة"
-
-#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942
-msgid "Call ended"
-msgstr "إنتهت المكالمة"
-
-#: ../gtk/main.c:1250 ../coreapi/call_log.c:235
-msgid "Incoming call"
-msgstr "مكالمة واردة"
-
-#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2
-msgid "Answer"
-msgstr "أجِبْ"
-
-#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3
-msgid "Decline"
-msgstr "ارفضْ"
-
-#: ../gtk/main.c:1262
-msgid "Call paused"
-msgstr "المكالمة متوقفة"
-
-#: ../gtk/main.c:1262
-#, c-format
-msgid "by %s"
-msgstr "بواسطة %s"
-
-#: ../gtk/main.c:1336
-#, c-format
-msgid "%s proposed to start video. Do you accept ?"
-msgstr "يود %s تشغيل الفيديو. هل تقبل ذلك ؟"
-
-#: ../gtk/main.c:1502
-msgid "Website link"
-msgstr "وصلة إلى الموقع وِبْ"
-
-#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1
-msgid "Linphone"
-msgstr "لِنْفُونْ"
-
-#: ../gtk/main.c:1562
-msgid "A video internet phone"
-msgstr "الهاتف المرئي عبر الإنترنت"
-
-#: ../gtk/main.c:1624
-#, c-format
-msgid "%s (Default)"
-msgstr "%s (افتراضي)"
-
-#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080
-#, c-format
-msgid "We are transferred to %s"
-msgstr "التحويل إلى %s"
-
-#: ../gtk/main.c:2008
-msgid ""
-"No sound cards have been detected on this computer.\n"
-"You won't be able to send or receive audio calls."
-msgstr "لا وجود للوحة الصوت على هذا الحاسوب.\nلن تتمكن من تلقي أو إجراء أي مكالمة."
-
-#: ../gtk/main.c:2173
-msgid "A free SIP video-phone"
-msgstr "هاتف SIP المرئي الحر"
-
-#: ../gtk/main.c:2292
-#, c-format
-msgid "Hello\n"
-msgstr "أهلا\n"
-
-#: ../gtk/friendlist.c:460
-msgid "Add to addressbook"
-msgstr "أضف إلى دفتر العناوين"
-
-#: ../gtk/friendlist.c:626
-#, c-format
-msgid "Search in %s directory"
-msgstr "ابحث في دليل %s"
-
-#: ../gtk/friendlist.c:773
-msgid "Invalid sip contact !"
-msgstr "جهة اتصال sip غير صالحة !"
-
-#: ../gtk/friendlist.c:820
-#, c-format
-msgid "Add a new contact"
-msgstr "إضافة جهة الاتصال جديدة"
-
-#: ../gtk/friendlist.c:823
-#, c-format
-msgid "Edit contact '%s'"
-msgstr "حرر جهة الاتصال '%s'"
-
-#: ../gtk/friendlist.c:824
-#, c-format
-msgid "Delete contact '%s'"
-msgstr "احذف جهة الاتصال '%s'"
-
-#: ../gtk/friendlist.c:825
-#, c-format
-msgid "Delete chat history of '%s'"
-msgstr "احذف تاريخ دردشات '%s'"
-
-#: ../gtk/friendlist.c:862
-#, c-format
-msgid "Add new contact from %s directory"
-msgstr "اضف جهة اتصال انطلاقا من الدليل %s"
-
-#: ../gtk/propertybox.c:592 ../gtk/contact.ui.h:1
-msgid "Name"
-msgstr "الاسم"
-
-#: ../gtk/propertybox.c:598
-msgid "Rate (Hz)"
-msgstr "التردد (هرتز)"
-
-#: ../gtk/propertybox.c:604
-msgid "Status"
-msgstr "الحالة"
-
-#: ../gtk/propertybox.c:617
-msgid "IP Bitrate (kbit/s)"
-msgstr "صبيب IP (ك.بِتْ/ثانية)"
-
-#: ../gtk/propertybox.c:628
-msgid "Parameters"
-msgstr "الإعدادات"
-
-#: ../gtk/propertybox.c:670 ../gtk/propertybox.c:824
-msgid "Enabled"
-msgstr "مفعَّل"
-
-#: ../gtk/propertybox.c:672 ../gtk/propertybox.c:824 ../gtk/parameters.ui.h:57
-msgid "Disabled"
-msgstr "غير مفعَّل"
-
-#: ../gtk/propertybox.c:902
-msgid "Account"
-msgstr "الحساب"
-
-#: ../gtk/propertybox.c:1170
-msgid "English"
-msgstr "English"
-
-#: ../gtk/propertybox.c:1171
-msgid "French"
-msgstr "Français"
-
-#: ../gtk/propertybox.c:1172
-msgid "Swedish"
-msgstr "Svenska"
-
-#: ../gtk/propertybox.c:1173
-msgid "Italian"
-msgstr "Italiano"
-
-#: ../gtk/propertybox.c:1174
-msgid "Spanish"
-msgstr "Español"
-
-#: ../gtk/propertybox.c:1175
-msgid "Brazilian Portugese"
-msgstr "Português do Brasil"
-
-#: ../gtk/propertybox.c:1176
-msgid "Polish"
-msgstr "Polski"
-
-#: ../gtk/propertybox.c:1177
-msgid "German"
-msgstr "Deutsch"
-
-#: ../gtk/propertybox.c:1178
-msgid "Russian"
-msgstr "Русский"
-
-#: ../gtk/propertybox.c:1179
-msgid "Japanese"
-msgstr "日本語"
-
-#: ../gtk/propertybox.c:1180
-msgid "Dutch"
-msgstr "Nederlands"
-
-#: ../gtk/propertybox.c:1181
-msgid "Hungarian"
-msgstr "Magyar"
-
-#: ../gtk/propertybox.c:1182
-msgid "Czech"
-msgstr "Čeština"
-
-#: ../gtk/propertybox.c:1183
-msgid "Chinese"
-msgstr "简体中文"
-
-#: ../gtk/propertybox.c:1184
-msgid "Traditional Chinese"
-msgstr "繁体中文"
-
-#: ../gtk/propertybox.c:1185
-msgid "Norwegian"
-msgstr "Norsk bokmål"
-
-#: ../gtk/propertybox.c:1186
-msgid "Hebrew"
-msgstr "עברית"
-
-#: ../gtk/propertybox.c:1187
-msgid "Serbian"
-msgstr "Српски"
-
-#: ../gtk/propertybox.c:1188
-msgid "Arabic"
-msgstr "العربية"
-
-#: ../gtk/propertybox.c:1189
-msgid "Turkish"
-msgstr "Türkçe"
-
-#: ../gtk/propertybox.c:1246
-msgid ""
-"You need to restart linphone for the new language selection to take effect."
-msgstr "يجب إعادة تشغيل لِنْفُونْ لكي تٌفعَّل اللغة المختارة."
-
-#: ../gtk/propertybox.c:1332
-msgid "None"
-msgstr "بدون"
-
-#: ../gtk/propertybox.c:1336
-msgid "SRTP"
-msgstr "SRTP"
-
-#: ../gtk/propertybox.c:1342
-msgid "DTLS"
-msgstr "DTLS"
-
-#: ../gtk/propertybox.c:1349
-msgid "ZRTP"
-msgstr "ZRTP"
-
-#: ../gtk/update.c:80
-#, c-format
-msgid ""
-"A more recent version is availalble from %s.\n"
-"Would you like to open a browser to download it ?"
-msgstr "يوجد إصدار حديث من طرف %s.\nهل تريد فتح المتصفح لتنزيله ؟"
-
-#: ../gtk/update.c:91
-msgid "You are running the lastest version."
-msgstr "أنت تستخدم الإصدار الأحدث."
-
-#: ../gtk/buddylookup.c:85
-msgid "Firstname, Lastname"
-msgstr "الاسم، اللقب"
-
-#: ../gtk/buddylookup.c:160
-msgid "Error communicating with server."
-msgstr "خطأ في الاتصال مع الخادم."
-
-#: ../gtk/buddylookup.c:164
-msgid "Connecting..."
-msgstr "يجري الاتصال..."
-
-#: ../gtk/buddylookup.c:168
-msgid "Connected"
-msgstr "متصل"
-
-#: ../gtk/buddylookup.c:172
-msgid "Receiving data..."
-msgstr "يجري تلقي البيانات..."
-
-#: ../gtk/buddylookup.c:180
-#, c-format
-msgid "Found %i contact"
-msgid_plural "Found %i contacts"
-msgstr[0] "لم يُعثَر على أي جهة اتصال"
-msgstr[1] "عُثِر على جهة اتصال واحدة"
-msgstr[2] "عُثِر على جهتي اتصال"
-msgstr[3] "عُثِر على %i جهات اتصال"
-msgstr[4] "عُثِر على %i جهة اتصال"
-msgstr[5] "عُثِر على %i جهة اتصال"
-
-#: ../gtk/setupwizard.c:219
-msgid "Username is already in use!"
-msgstr "إن اسم المستخدم يُستخدَم مسبقا !"
-
-#: ../gtk/setupwizard.c:223
-msgid "Failed to check username availability. Please try again later."
-msgstr "فشل التحقق من إمكانية إتاحة اسم المستخدم. يُرجى الإعادة لاحقا."
-
-#: ../gtk/incall_view.c:67 ../gtk/incall_view.c:87
-#, c-format
-msgid "Call #%i"
-msgstr "مكالمة #%i"
-
-#: ../gtk/incall_view.c:145
-#, c-format
-msgid "Transfer to call #%i with %s"
-msgstr "حوِّل إلى المكالمة #%i مع %s"
-
-#: ../gtk/incall_view.c:202 ../gtk/incall_view.c:205
-msgid "Not used"
-msgstr "غير مستخدَم"
-
-#: ../gtk/incall_view.c:212
-msgid "ICE not activated"
-msgstr "ICE غير مفعَّل"
-
-#: ../gtk/incall_view.c:214
-msgid "ICE failed"
-msgstr "فَشِل ICE"
-
-#: ../gtk/incall_view.c:216
-msgid "ICE in progress"
-msgstr "تجري مساومة ICE"
-
-#: ../gtk/incall_view.c:218
-msgid "Going through one or more NATs"
-msgstr "المرور عبد واحد أو عدة NAT"
-
-#: ../gtk/incall_view.c:220
-msgid "Direct"
-msgstr "مباشر"
-
-#: ../gtk/incall_view.c:222
-msgid "Through a relay server"
-msgstr "عبر خادم بديل"
-
-#: ../gtk/incall_view.c:230
-msgid "uPnP not activated"
-msgstr "uPnP غير مفعَّل"
-
-#: ../gtk/incall_view.c:232
-msgid "uPnP in progress"
-msgstr "يجري uPnP"
-
-#: ../gtk/incall_view.c:234
-msgid "uPnp not available"
-msgstr "uPnP غير متوفر"
-
-#: ../gtk/incall_view.c:236
-msgid "uPnP is running"
-msgstr "uPnP مشغَّل"
-
-#: ../gtk/incall_view.c:238
-msgid "uPnP failed"
-msgstr "فَشِل uPnP"
-
-#: ../gtk/incall_view.c:248 ../gtk/incall_view.c:249
-msgid "Direct or through server"
-msgstr "مباشرة أو عبر خادم"
-
-#: ../gtk/incall_view.c:258 ../gtk/incall_view.c:270
-#, c-format
-msgid ""
-"download: %f\n"
-"upload: %f (kbit/s)"
-msgstr "التنزيل % f\nالرفع : %f (ك.بِتْ/الثانية)"
-
-#: ../gtk/incall_view.c:263 ../gtk/incall_view.c:265
-#, c-format
-msgid "%ix%i @ %f fps"
-msgstr "%ix%i @ %f fps"
-
-#: ../gtk/incall_view.c:295
-#, c-format
-msgid "%.3f seconds"
-msgstr "%.3f ثانية"
-
-#: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10
-#: ../gtk/videowindow.c:248
-msgid "Hang up"
-msgstr "ضع السماعة"
-
-#: ../gtk/incall_view.c:558
-msgid "Calling..."
-msgstr "يجري الاتصال..."
-
-#: ../gtk/incall_view.c:561 ../gtk/incall_view.c:793
-msgid "00:00:00"
-msgstr "00:00:00"
-
-#: ../gtk/incall_view.c:572
-msgid "Incoming call"
-msgstr "المكالمة الواردة"
-
-#: ../gtk/incall_view.c:609
-msgid "good"
-msgstr "جيدة"
-
-#: ../gtk/incall_view.c:611
-msgid "average"
-msgstr "متوسطة"
-
-#: ../gtk/incall_view.c:613
-msgid "poor"
-msgstr "ضعيفة"
-
-#: ../gtk/incall_view.c:615
-msgid "very poor"
-msgstr "ضعيفة جدا"
-
-#: ../gtk/incall_view.c:617
-msgid "too bad"
-msgstr "سيِّئة جيدا"
-
-#: ../gtk/incall_view.c:618 ../gtk/incall_view.c:634
-msgid "unavailable"
-msgstr "غير متاحة"
-
-#: ../gtk/incall_view.c:732
-msgid "Secured by SRTP"
-msgstr "آمن بواسطة SRTP"
-
-#: ../gtk/incall_view.c:738
-msgid "Secured by DTLS"
-msgstr "مُؤمَّن بواسطة DTLS"
-
-#: ../gtk/incall_view.c:744
-#, c-format
-msgid "Secured by ZRTP - [auth token: %s]"
-msgstr "آمن بواسطة ZRTP - [شارة الهوية : %s]"
-
-#: ../gtk/incall_view.c:748
-msgid "Set unverified"
-msgstr "أكِّدْ عدم تحقُّقك"
-
-#: ../gtk/incall_view.c:748
-msgid "Set verified"
-msgstr "أكِّدْ تحقُّقَك"
-
-#: ../gtk/incall_view.c:788
-msgid "In conference"
-msgstr "في اجتماع"
-
-#: ../gtk/incall_view.c:788
-msgid "In call"
-msgstr "المكالمة جارية"
-
-#: ../gtk/incall_view.c:825
-msgid "Paused call"
-msgstr "المكالمة متوقفة مؤقتا"
-
-#: ../gtk/incall_view.c:862
-msgid "Call ended."
-msgstr "إنتهت المكالمة."
-
-#: ../gtk/incall_view.c:893
-msgid "Transfer in progress"
-msgstr "يجري الإرسال"
-
-#: ../gtk/incall_view.c:896
-msgid "Transfer done."
-msgstr "انتهى الإرسال."
-
-#: ../gtk/incall_view.c:899
-msgid "Transfer failed."
-msgstr "فَشِل الإرسال."
-
-#: ../gtk/incall_view.c:930
-msgid "Resume"
-msgstr "استأنِفْ"
-
-#: ../gtk/incall_view.c:930 ../gtk/in_call_frame.ui.h:7
-msgid "Pause"
-msgstr "إيقاف مؤقت"
-
-#: ../gtk/incall_view.c:996
-#, c-format
-msgid ""
-"Recording into\n"
-"%s %s"
-msgstr "يسجل في\n%s %s"
-
-#: ../gtk/incall_view.c:996
-msgid "(Paused)"
-msgstr "(متوقف)"
-
-#: ../gtk/loginframe.c:75
-#, c-format
-msgid "Please enter login information for %s"
-msgstr "يُرجى إدخال معلومات الولوج ل %s"
-
-#: ../gtk/config-fetching.c:57
-#, c-format
-msgid "fetching from %s"
-msgstr "يجلب من %s"
-
-#: ../gtk/config-fetching.c:73
-#, c-format
-msgid "Downloading of remote configuration from %s failed."
-msgstr "فَشِل تنزيل التهيئة عن بعد من %s ."
-
-#: ../gtk/audio_assistant.c:103
-msgid "No voice detected"
-msgstr "لم يكتشف صوتاً"
-
-#: ../gtk/audio_assistant.c:104
-msgid "Too low"
-msgstr "خافِت"
-
-#: ../gtk/audio_assistant.c:105
-msgid "Good"
-msgstr "جيد"
-
-#: ../gtk/audio_assistant.c:106
-msgid "Too loud"
-msgstr "صاخب"
-
-#: ../gtk/audio_assistant.c:188
-msgid "Did you hear three beeps ?"
-msgstr "هل سمعت ثلاث رنات ؟"
-
-#: ../gtk/audio_assistant.c:301 ../gtk/audio_assistant.c:306
-msgid "Sound preferences not found "
-msgstr "لم يعثر على تفضيلات الصوت"
-
-#: ../gtk/audio_assistant.c:315
-msgid "Cannot launch system sound control "
-msgstr "لم يتمكن من تشغيل التحكم في الصوت للنظام"
-
-#: ../gtk/audio_assistant.c:327
-msgid ""
-"Welcome!\n"
-"This assistant will help you to configure audio settings for Linphone"
-msgstr "مرحبا !\nسيمكنك هذا المرشد من تهيئة إعدادات الصوت من أجل لِنْفُونْ"
-
-#: ../gtk/audio_assistant.c:337
-msgid "Capture device"
-msgstr "جهاز الالتقاط"
-
-#: ../gtk/audio_assistant.c:338
-msgid "Recorded volume"
-msgstr "الحجم المسجَّل"
-
-#: ../gtk/audio_assistant.c:342
-msgid "No voice"
-msgstr "صامت"
-
-#: ../gtk/audio_assistant.c:343 ../gtk/audio_assistant.c:382
-msgid "System sound preferences"
-msgstr "تفضيلات الصوت للنظام"
-
-#: ../gtk/audio_assistant.c:378
-msgid "Playback device"
-msgstr "جهاز السماع"
-
-#: ../gtk/audio_assistant.c:379
-msgid "Play three beeps"
-msgstr "شغِّل ثلاث رنَّات"
-
-#: ../gtk/audio_assistant.c:412
-msgid "Press the record button and say some words"
-msgstr "اضغط على زر التسجيل وانطق ببعض الكلمات"
-
-#: ../gtk/audio_assistant.c:413
-msgid "Listen to your record voice"
-msgstr "استمع لصوتك المسجَّل"
-
-#: ../gtk/audio_assistant.c:414 ../gtk/conf_frame.ui.h:2
-#: ../gtk/in_call_frame.ui.h:4
-msgid "Record"
-msgstr "تسجيل"
-
-#: ../gtk/audio_assistant.c:415
-msgid "Play"
-msgstr "تشغيل"
-
-#: ../gtk/audio_assistant.c:442
-msgid "Let's start Linphone now"
-msgstr "لنُشغِّل لِنْفُونْ الآن"
-
-#: ../gtk/audio_assistant.c:513
-msgid "Audio Assistant"
-msgstr "مرشد الصوت"
-
-#: ../gtk/audio_assistant.c:523 ../gtk/main.ui.h:15
-msgid "Audio assistant"
-msgstr "مرشد الصوت"
-
-#: ../gtk/audio_assistant.c:528
-msgid "Mic Gain calibration"
-msgstr "معايرة كسب الميكروفون"
-
-#: ../gtk/audio_assistant.c:534
-msgid "Speaker volume calibration"
-msgstr "معايرة شدة مكبر الصوت"
-
-#: ../gtk/audio_assistant.c:539
-msgid "Record and Play"
-msgstr "سَجِّل واقرأ "
-
-#: ../gtk/audio_assistant.c:544 ../gtk/setup_wizard.ui.h:38
-msgid "Terminating"
-msgstr "في طور الإنهاء"
-
-#: ../gtk/about.ui.h:1
-msgid "About Linphone"
-msgstr "حول لِنْفُونْ"
-
-#: ../gtk/about.ui.h:2
-msgid "(C) Belledonne Communications, 2010\n"
-msgstr "(C) Belledonne Communications, 2010\n"
-
-#: ../gtk/about.ui.h:4
-msgid "An internet video phone using the standard SIP (rfc3261) protocol."
-msgstr "الهاتف المرئي للإنترنت الموافق للبروتوكول المعياري SIP (rfc3261)."
-
-#: ../gtk/about.ui.h:5
-msgid ""
-"fr: Simon Morlat\n"
-"en: Simon Morlat and Delphine Perreau\n"
-"it: Alberto Zanoni \n"
-"de: Jean-Jacques Sarton \n"
-"sv: Daniel Nylander \n"
-"es: Jesus Benitez \n"
-"ja: YAMAGUCHI YOSHIYA \n"
-"pt_BR: Rafael Caesar Lenzi \n"
-"pl: Robert Nasiadek \n"
-"cs: Petr Pisar \n"
-"hu: anonymous\n"
-"he: Eli Zaretskii \n"
-msgstr "fr: Simon Morlat\nen: Simon Morlat and Delphine Perreau\nit: Alberto Zanoni \nde: Jean-Jacques Sarton \nsv: Daniel Nylander \nes: Jesus Benitez \nja: YAMAGUCHI YOSHIYA \npt_BR: Rafael Caesar Lenzi \npl: Robert Nasiadek \ncs: Petr Pisar \nhu: anonymous\nhe: Eli Zaretskii \nar: Muhiyeddine Cherik \n"
-
-#: ../gtk/buddylookup.ui.h:1
-msgid "Search contacts in directory"
-msgstr "البحث عن جهات الاتصال في الدليل"
-
-#: ../gtk/buddylookup.ui.h:2
-msgid "Add to my list"
-msgstr "الإضافة إلى قائمتي"
-
-#: ../gtk/buddylookup.ui.h:3
-msgid "Search somebody"
-msgstr "البحث عن شخص"
-
-#: ../gtk/callee_frame.ui.h:1
-msgid "Callee name"
-msgstr "اسم المنادَى"
-
-#: ../gtk/call_logs.ui.h:1
-msgid "Call history"
-msgstr "تاريخ المكالمات"
-
-#: ../gtk/call_logs.ui.h:2
-msgid "Clear all"
-msgstr "أفْرِغ الكل"
-
-#: ../gtk/call_logs.ui.h:3
-msgid "Call back"
-msgstr "إعادة الاتصال"
-
-#: ../gtk/call_statistics.ui.h:1
-msgid "Call statistics"
-msgstr "إحصاء المكالمات"
-
-#: ../gtk/call_statistics.ui.h:2
-msgid "Audio codec"
-msgstr "مرمازات الصوت"
-
-#: ../gtk/call_statistics.ui.h:3
-msgid "Video codec"
-msgstr "مرمازات الفيديو"
-
-#: ../gtk/call_statistics.ui.h:4
-msgid "Audio IP bandwidth usage"
-msgstr "سعة القناة الصوتية"
-
-#: ../gtk/call_statistics.ui.h:5
-msgid "Audio Media connectivity"
-msgstr "اتصالات الصوت"
-
-#: ../gtk/call_statistics.ui.h:6
-msgid "Video IP bandwidth usage"
-msgstr "سعة قناة الفيديو"
-
-#: ../gtk/call_statistics.ui.h:7
-msgid "Video Media connectivity"
-msgstr "اتصالات الفيديو"
-
-#: ../gtk/call_statistics.ui.h:8
-msgid "Round trip time"
-msgstr "مدة الذهاب والإياب"
-
-#: ../gtk/call_statistics.ui.h:9
-msgid "Video resolution received"
-msgstr "حجم الفيديو المستلَم"
-
-#: ../gtk/call_statistics.ui.h:10
-msgid "Video resolution sent"
-msgstr "حجم الفيديو المرسَل"
-
-#: ../gtk/call_statistics.ui.h:11
-msgid "RTP profile"
-msgstr "تشكيلة RTP"
-
-#: ../gtk/call_statistics.ui.h:12
-msgid "Call statistics and information"
-msgstr "إحصاء المكالمات والمعلومات"
-
-#: ../gtk/chatroom_frame.ui.h:1
-msgid "Send"
-msgstr "أرسِلْ"
-
-#: ../gtk/conf_frame.ui.h:1
-msgid "End conference"
-msgstr "أنْهِ الاجتماع"
-
-#: ../gtk/config-uri.ui.h:1
-msgid "Specifying a remote configuration URI"
-msgstr "تحديد عنوان URI التهيئة عن بعد"
-
-#: ../gtk/config-uri.ui.h:2
-msgid ""
-"This dialog allows to set an http or https address when configuration is to be fetched at startup.\n"
-"Please enter or modify the configuration URI below. After clicking OK, Linphone will restart automatically in order to fetch and take into account the new configuration. "
-msgstr "يسمح لك مربع الحوار هذا بإعداد عنوان http أو https الذي من خلاله تود جلب التهيئة عند بدء البرنامج.\nأدخل العنوان أسفله. بعد تأكيد الأمر، ستجري إعادة تشغيل لِنْفُونْ تلقائيا من أجل جلب والأخذ بعين الاعتبار الإعدادات الحديثة."
-
-#: ../gtk/contact.ui.h:2
-msgid "SIP Address"
-msgstr "عنوان SIP"
-
-#: ../gtk/contact.ui.h:3
-msgid "Show this contact presence status"
-msgstr "رؤية حالة حضور جهة الاتصال هذه"
-
-#: ../gtk/contact.ui.h:4
-msgid "Allow this contact to see my presence status"
-msgstr "السماح لجهة الاتصال هذه برؤية حالة حضوري"
-
-#: ../gtk/contact.ui.h:5
-msgid "Contact information"
-msgstr "معلومات جهة الاتصال"
-
-#: ../gtk/dscp_settings.ui.h:1
-msgid "DSCP settings"
-msgstr "إعدادات DSCP"
-
-#: ../gtk/dscp_settings.ui.h:2
-msgid "SIP"
-msgstr "SIP"
-
-#: ../gtk/dscp_settings.ui.h:3
-msgid "Audio RTP stream"
-msgstr "تدفق RTP الصوتي"
-
-#: ../gtk/dscp_settings.ui.h:4
-msgid "Video RTP stream"
-msgstr "تدفق RTP المرئي"
-
-#: ../gtk/dscp_settings.ui.h:5
-msgid "Set DSCP values (in hexadecimal)"
-msgstr "حدد قيم DSCP (بالنظام الست-عشري)"
-
-#: ../gtk/in_call_frame.ui.h:1
-msgid "Click here to set the speakers volume"
-msgstr "اضغط هنا لتحديد شدة مكبر الصوت"
-
-#: ../gtk/in_call_frame.ui.h:5
-msgid "Record this call to an audio file"
-msgstr "سَجِّل هذه المكالمة في ملف صوتي"
-
-#: ../gtk/in_call_frame.ui.h:6
-msgid "Video"
-msgstr "مرئي"
-
-#: ../gtk/in_call_frame.ui.h:8
-msgid "Mute"
-msgstr "اصمُتْ"
-
-#: ../gtk/in_call_frame.ui.h:9
-msgid "Transfer"
-msgstr "إرسال"
-
-#: ../gtk/in_call_frame.ui.h:12
-msgid "In call"
-msgstr "المكالمة جارية"
-
-#: ../gtk/in_call_frame.ui.h:13
-msgid "Duration"
-msgstr "المدة"
-
-#: ../gtk/in_call_frame.ui.h:14
-msgid "Call quality rating"
-msgstr "تقييم جودة المكالمة"
-
-#: ../gtk/ldap.ui.h:1
-msgid "LDAP Settings"
-msgstr "إعدادات LDAP"
-
-#: ../gtk/ldap.ui.h:2 ../gtk/parameters.ui.h:90
-msgid "Server address:"
-msgstr "عنوان الخادم :"
-
-#: ../gtk/ldap.ui.h:3 ../gtk/parameters.ui.h:91
-msgid "Authentication method:"
-msgstr "طريقة التحقق من الهوية :"
-
-#: ../gtk/ldap.ui.h:4 ../gtk/parameters.ui.h:92 ../gtk/setup_wizard.ui.h:17
-msgid "Username:"
-msgstr "اسم المستخدم :"
-
-#: ../gtk/ldap.ui.h:5 ../gtk/password.ui.h:4 ../gtk/setup_wizard.ui.h:18
-msgid "Password:"
-msgstr "كلمة السر :"
-
-#: ../gtk/ldap.ui.h:6
-msgid "Use TLS Connection"
-msgstr "استخدم TLS"
-
-#: ../gtk/ldap.ui.h:7
-msgid "Not yet available"
-msgstr "غير متاح"
-
-#: ../gtk/ldap.ui.h:8
-msgid "Connection"
-msgstr "الاتصال "
-
-#: ../gtk/ldap.ui.h:9
-msgid "Bind DN"
-msgstr "ربط DN"
-
-#: ../gtk/ldap.ui.h:10
-msgid "Authname"
-msgstr "اسم الهوية"
-
-#: ../gtk/ldap.ui.h:11
-msgid "Realm"
-msgstr "النطاق"
-
-#: ../gtk/ldap.ui.h:12
-msgid "SASL"
-msgstr "SASL"
-
-#: ../gtk/ldap.ui.h:13
-msgid "Base object:"
-msgstr "الكائن الأساسي :"
-
-#: ../gtk/ldap.ui.h:15
-#, no-c-format
-msgid "Filter (%s for name):"
-msgstr "رشِّح (%s كاسم) :"
-
-#: ../gtk/ldap.ui.h:16
-msgid "Name Attribute:"
-msgstr "خاصية الاسم :"
-
-#: ../gtk/ldap.ui.h:17
-msgid "SIP address attribute:"
-msgstr "خاصية عنوان SIP :"
-
-#: ../gtk/ldap.ui.h:18
-msgid "Attributes to query:"
-msgstr "الخاصيات المبحوث عنها :"
-
-#: ../gtk/ldap.ui.h:19
-msgid "Search"
-msgstr "البحث"
-
-#: ../gtk/ldap.ui.h:20
-msgid "Timeout for search:"
-msgstr "المهلة القصوى للبحث :"
-
-#: ../gtk/ldap.ui.h:21
-msgid "Max results:"
-msgstr "العدد الأقصى للنتائج :"
-
-#: ../gtk/ldap.ui.h:22
-msgid "Follow Aliases"
-msgstr "متابعة الكنية"
-
-#: ../gtk/ldap.ui.h:23
-msgid "Miscellaneous"
-msgstr "متفرقات"
-
-#: ../gtk/ldap.ui.h:24
-msgid "ANONYMOUS"
-msgstr "مجهول الهوية"
-
-#: ../gtk/ldap.ui.h:25
-msgid "SIMPLE"
-msgstr "بسيط"
-
-#: ../gtk/ldap.ui.h:26
-msgid "DIGEST-MD5"
-msgstr "DIGEST-MD5"
-
-#: ../gtk/ldap.ui.h:27
-msgid "NTLM"
-msgstr "NTLM"
-
-#: ../gtk/login_frame.ui.h:1 ../gtk/tunnel_config.ui.h:7
-msgid "Username"
-msgstr "اسم المستخدم"
-
-#: ../gtk/login_frame.ui.h:2 ../gtk/tunnel_config.ui.h:8
-msgid "Password"
-msgstr "كلمة السر"
-
-#: ../gtk/login_frame.ui.h:3
-msgid "Internet connection:"
-msgstr "الاتصال بالإنترنت :"
-
-#: ../gtk/login_frame.ui.h:4
-msgid "Automatically log me in"
-msgstr "سَجِّل دخولي تلقائيا"
-
-#: ../gtk/login_frame.ui.h:5 ../gtk/password.ui.h:3
-msgid "UserID"
-msgstr "مُعرِّف المستخدم"
-
-#: ../gtk/login_frame.ui.h:6
-msgid "Login information"
-msgstr "معلومات الولوج"
-
-#: ../gtk/login_frame.ui.h:7
-msgid "Welcome!"
-msgstr "مرحبا !"
-
-#: ../gtk/login_frame.ui.h:8
-msgid "ADSL"
-msgstr "ADSL"
-
-#: ../gtk/login_frame.ui.h:9
-msgid "Fiber Channel"
-msgstr "قناة الألياف الضوئية"
-
-#: ../gtk/log.ui.h:1
-msgid "Linphone debug window"
-msgstr "نافذة تنقيح لِنْفُونْ"
-
-#: ../gtk/log.ui.h:2
-msgid "Scroll to end"
-msgstr "مرِّر إلى الآخر"
-
-#: ../gtk/main.ui.h:1
-msgid "Default"
-msgstr "افتراضي"
-
-#: ../gtk/main.ui.h:2
-msgid "Delete"
-msgstr "احذف"
-
-#: ../gtk/main.ui.h:3
-msgid "_Options"
-msgstr "الخ_يارات"
-
-#: ../gtk/main.ui.h:4
-msgid "Set configuration URI"
-msgstr "عنوان URI للتهيئة"
-
-#: ../gtk/main.ui.h:5
-msgid "Always start video"
-msgstr "شغِّل الفيديو دائما"
-
-#: ../gtk/main.ui.h:6
-msgid "Enable self-view"
-msgstr "فعِّل رؤية نفسي"
-
-#: ../gtk/main.ui.h:7
-msgid "Show keypad"
-msgstr "إظهار لوحة الأرقام"
-
-#: ../gtk/main.ui.h:8
-msgid "Import contacts from vCards"
-msgstr "استورد جهات الاتصال من أنساق vCard"
-
-#: ../gtk/main.ui.h:9
-msgid "Export contacts as vCards"
-msgstr "صدِّر جهات الاتصال بنسق vCard"
-
-#: ../gtk/main.ui.h:10
-msgid "_Help"
-msgstr "ال_مساعدة"
-
-#: ../gtk/main.ui.h:11
-msgid "Show debug window"
-msgstr "أظهِر نافذة التنقيح"
-
-#: ../gtk/main.ui.h:12
-msgid "_Homepage"
-msgstr "موق_ع الوِبْ"
-
-#: ../gtk/main.ui.h:13
-msgid "Check _Updates"
-msgstr "تحقق من التح_ديثات"
-
-#: ../gtk/main.ui.h:14
-msgid "Account assistant"
-msgstr "مرشد الحساب"
-
-#: ../gtk/main.ui.h:16
-msgid "SIP address or phone number:"
-msgstr "عنوان SIP أو رقم الهاتف :"
-
-#: ../gtk/main.ui.h:17
-msgid "Initiate a new call"
-msgstr "ابدأ مكالمة جديدة"
-
-#: ../gtk/main.ui.h:18
-msgid "Contacts"
-msgstr "جهات الاتصال"
-
-#: ../gtk/main.ui.h:19
-msgid "Search"
-msgstr "بحث"
-
-#: ../gtk/main.ui.h:20
-msgid "Add contacts from directory"
-msgstr "إضافة جهات الاتصال من الدليل"
-
-#: ../gtk/main.ui.h:21
-msgid "Add contact"
-msgstr "إضافة جهة الاتصال"
-
-#: ../gtk/main.ui.h:22
-msgid "Clear call history"
-msgstr "محو تاريخ المكالمات"
-
-#: ../gtk/main.ui.h:24
-msgid "My current identity:"
-msgstr "هويتي الحالية :"
-
-#: ../gtk/main.ui.h:25
-msgid "Autoanswer is enabled"
-msgstr "الإجابة التلقائية مُفعَّلة"
-
-#: ../gtk/parameters.ui.h:1
-msgid "anonymous"
-msgstr "مجهول"
-
-#: ../gtk/parameters.ui.h:2
-msgid "GSSAPI"
-msgstr "GSSAPI"
-
-#: ../gtk/parameters.ui.h:3
-msgid "SASL"
-msgstr "SASL"
-
-#: ../gtk/parameters.ui.h:4
-msgid "default soundcard"
-msgstr "لوحة الصوت الافتراضية"
-
-#: ../gtk/parameters.ui.h:5
-msgid "a sound card"
-msgstr "لوحة الصوت"
-
-#: ../gtk/parameters.ui.h:6
-msgid "default camera"
-msgstr "الكاميرا الافتراضية"
-
-#: ../gtk/parameters.ui.h:7
-msgid "CIF"
-msgstr "CIF"
-
-#: ../gtk/parameters.ui.h:8
-msgid "Audio codecs"
-msgstr "مرمازات الصوت"
-
-#: ../gtk/parameters.ui.h:9
-msgid "Video codecs"
-msgstr "مرمازات الفيديو"
-
-#: ../gtk/parameters.ui.h:10
-msgid "C"
-msgstr "C"
-
-#: ../gtk/parameters.ui.h:11
-msgid "SIP (UDP)"
-msgstr "SIP (UDP)"
-
-#: ../gtk/parameters.ui.h:12
-msgid "SIP (TCP)"
-msgstr "SIP (TCP)"
-
-#: ../gtk/parameters.ui.h:13
-msgid "SIP (TLS)"
-msgstr "SIP (TLS)"
-
-#: ../gtk/parameters.ui.h:14
-msgid "Settings"
-msgstr "الإعدادات"
-
-#: ../gtk/parameters.ui.h:15
-msgid "This section defines your SIP address when not using a SIP account"
-msgstr "هذه الفقرة تحدد عنوانك SIP إن كنت لا تستخدم حساب SIP"
-
-#: ../gtk/parameters.ui.h:16
-msgid "Your display name (eg: John Doe):"
-msgstr "اسمك المعروض (مثلا : زيد عمرو) :"
-
-#: ../gtk/parameters.ui.h:17
-msgid "Your username:"
-msgstr "اسم المستخدم :"
-
-#: ../gtk/parameters.ui.h:18
-msgid "Your resulting SIP address:"
-msgstr "عنوانك SIP :"
-
-#: ../gtk/parameters.ui.h:19
-msgid "Default identity"
-msgstr "الهوية الافتراضية"
-
-#: ../gtk/parameters.ui.h:20
-msgid "Wizard"
-msgstr "المرشد"
-
-#: ../gtk/parameters.ui.h:21
-msgid "Add"
-msgstr "إضافة"
-
-#: ../gtk/parameters.ui.h:22
-msgid "Edit"
-msgstr "حرر"
-
-#: ../gtk/parameters.ui.h:23
-msgid "Remove"
-msgstr "أزل"
-
-#: ../gtk/parameters.ui.h:24
-msgid "Proxy accounts"
-msgstr "حسابات الوكيل"
-
-#: ../gtk/parameters.ui.h:25
-msgid "Erase all passwords"
-msgstr "احذف جميع كلمات السر"
-
-#: ../gtk/parameters.ui.h:26
-msgid "Privacy"
-msgstr "الأمان"
-
-#: ../gtk/parameters.ui.h:27
-msgid "Automatically answer when a call is received"
-msgstr "الإجابة تلقائيا فور تلقي المكالمة"
-
-#: ../gtk/parameters.ui.h:28
-msgid "Delay before answering (ms)"
-msgstr "التأخير قبل الإجابة (ميلي ث,)"
-
-#: ../gtk/parameters.ui.h:29
-msgid "Auto-answer"
-msgstr "الإجابة تلقائيا"
-
-#: ../gtk/parameters.ui.h:30
-msgid "Manage SIP Accounts"
-msgstr "إدارة حسابات SIP"
-
-#: ../gtk/parameters.ui.h:31
-msgid "Ring sound:"
-msgstr "صوت الجرس :"
-
-#: ../gtk/parameters.ui.h:32
-msgid "ALSA special device (optional):"
-msgstr "عتاد ALSA الخصوصي (اختياري) :"
-
-#: ../gtk/parameters.ui.h:33
-msgid "Capture device:"
-msgstr "جهاز الالتقاط :"
-
-#: ../gtk/parameters.ui.h:34
-msgid "Ring device:"
-msgstr "جهاز الرنين :"
-
-#: ../gtk/parameters.ui.h:35
-msgid "Playback device:"
-msgstr "جهاز السمع :"
-
-#: ../gtk/parameters.ui.h:36
-msgid "Enable echo cancellation"
-msgstr "فعِّل إزالة الصدى"
-
-#: ../gtk/parameters.ui.h:37
-msgid "Audio"
-msgstr "الصوت"
-
-#: ../gtk/parameters.ui.h:38
-msgid "Video input device:"
-msgstr "جهاز إدخال الفيديو :"
-
-#: ../gtk/parameters.ui.h:39
-msgid "Preferred video resolution:"
-msgstr "المقدار المُراد لدقة الفيديو :"
-
-#: ../gtk/parameters.ui.h:40
-msgid "Video output method:"
-msgstr "طريقة إخراج الفيديو :"
-
-#: ../gtk/parameters.ui.h:41
-msgid "Show camera preview"
-msgstr "اظهر معاينة الكاميرا"
-
-#: ../gtk/parameters.ui.h:42
-msgid "Video preset:"
-msgstr "الفيديو المُسبَق :"
-
-#: ../gtk/parameters.ui.h:43
-msgid "Preferred video framerate:"
-msgstr "المقدار المُراد لمعدل إطارات الفيديو :"
-
-#: ../gtk/parameters.ui.h:44
-msgid "0 stands for \"unlimited\""
-msgstr "حدِّد 0 لعدم وضع أي حد"
-
-#: ../gtk/parameters.ui.h:45
-msgid "Video"
-msgstr "الفيديو"
-
-#: ../gtk/parameters.ui.h:46
-msgid "Upload speed limit in Kbit/sec:"
-msgstr "حد سرعة الرفع بالكيلوبِتْ/الثانية :"
-
-#: ../gtk/parameters.ui.h:47
-msgid "Download speed limit in Kbit/sec:"
-msgstr "حد سرعة التنزيل بالكيلوبِتْ/الثانية :"
-
-#: ../gtk/parameters.ui.h:48
-msgid "Enable adaptive rate control"
-msgstr "فعِّل التحكم المتكيف مع الصبيب"
-
-#: ../gtk/parameters.ui.h:49
-msgid ""
-"Adaptive rate control is a technique to dynamically guess the available "
-"bandwidth during a call."
-msgstr "التحكم المتكيف مع الصبيب هو تقنية لملائمة جودة الصوت والصورة بناءً على سعة قناة الاتصال المتاحة خلال المكالمة."
-
-#: ../gtk/parameters.ui.h:50
-msgid "Bandwidth control"
-msgstr "إدارة سعة القناة"
-
-#: ../gtk/parameters.ui.h:51
-msgid "Multimedia settings"
-msgstr "إعدادات الوسائط المتعددة"
-
-#: ../gtk/parameters.ui.h:52
-msgid "Set Maximum Transmission Unit:"
-msgstr "حدِّد Maximum Transmission Unit :"
-
-#: ../gtk/parameters.ui.h:53
-msgid "Send DTMFs as SIP info"
-msgstr "أرسِل الأرقام الهاتفية على هيئة SIP INFO"
-
-#: ../gtk/parameters.ui.h:54
-msgid "Allow IPv6"
-msgstr "السماح باستخدام IPv6"
-
-#: ../gtk/parameters.ui.h:55
-msgid "Transport"
-msgstr "النقل"
-
-#: ../gtk/parameters.ui.h:56
-msgid "SIP/UDP port"
-msgstr "منفذ SIP/UDP"
-
-#: ../gtk/parameters.ui.h:58
-msgid "Random"
-msgstr "عشوائي"
-
-#: ../gtk/parameters.ui.h:59
-msgid "SIP/TCP port"
-msgstr "منفذ SIP/TCP"
-
-#: ../gtk/parameters.ui.h:60
-msgid "Audio RTP/UDP:"
-msgstr "صوت RTP/UDP :"
-
-#: ../gtk/parameters.ui.h:61
-msgid "Fixed"
-msgstr "ثابت"
-
-#: ../gtk/parameters.ui.h:62
-msgid "Video RTP/UDP:"
-msgstr "فيديو RTP/UDP :"
-
-#: ../gtk/parameters.ui.h:63
-msgid "Tunnel"
-msgstr "النفق"
-
-#: ../gtk/parameters.ui.h:64
-msgid "DSCP fields"
-msgstr "حقول DSCP"
-
-#: ../gtk/parameters.ui.h:65
-msgid "Network protocol and ports"
-msgstr "بروتوكول الشبكة والمنافذ"
-
-#: ../gtk/parameters.ui.h:66
-msgid "Direct connection to the Internet"
-msgstr "الاتصال مباشر بالإنترنت"
-
-#: ../gtk/parameters.ui.h:67
-msgid "Behind NAT / Firewall (specify gateway IP )"
-msgstr "وراء جدار ناري (حدِّد عنوان IP البوابة)"
-
-#: ../gtk/parameters.ui.h:68
-msgid "Behind NAT / Firewall (use STUN to resolve)"
-msgstr "وراء جدار ناري (استخدم STUN)"
-
-#: ../gtk/parameters.ui.h:69
-msgid "Behind NAT / Firewall (use ICE)"
-msgstr "وراء جدار ناري (استخدم ICE)"
-
-#: ../gtk/parameters.ui.h:70
-msgid "Behind NAT / Firewall (use uPnP)"
-msgstr "وراء جدار ناري (استخدم uPnP)"
-
-#: ../gtk/parameters.ui.h:71
-msgid "Public IP address:"
-msgstr "عنوان IP العمومي :"
-
-#: ../gtk/parameters.ui.h:72
-msgid "Stun server:"
-msgstr "خادم STUN :"
-
-#: ../gtk/parameters.ui.h:73
-msgid "NAT and Firewall"
-msgstr "إعدادات حول الجدار الناري"
-
-#: ../gtk/parameters.ui.h:74
-msgid "Media encryption type"
-msgstr "نوع وسيط التعمية"
-
-#: ../gtk/parameters.ui.h:75
-msgid "Use Lime for outgoing chat messages"
-msgstr "استخدم Lime لرسائل المحادثات الصادرة"
-
-#: ../gtk/parameters.ui.h:76
-msgid "Media encryption is mandatory"
-msgstr "وسيط التعمية إجباري"
-
-#: ../gtk/parameters.ui.h:77
-msgid "Mandatory"
-msgstr "واجب"
-
-#: ../gtk/parameters.ui.h:78
-msgid "Preferred"
-msgstr "مستحب"
-
-#: ../gtk/parameters.ui.h:79
-msgid "Encryption"
-msgstr "التعمية"
-
-#: ../gtk/parameters.ui.h:80
-msgid "Network settings"
-msgstr "إعدادات الشبكة"
-
-#: ../gtk/parameters.ui.h:81 ../gtk/tunnel_config.ui.h:4
-msgid "Enable"
-msgstr "فعِّل"
-
-#: ../gtk/parameters.ui.h:82 ../gtk/tunnel_config.ui.h:5
-msgid "Disable"
-msgstr "إلغاء التفعيل"
-
-#: ../gtk/parameters.ui.h:83
-msgid "Audio codecs"
-msgstr "مرمازات الصوت"
-
-#: ../gtk/parameters.ui.h:84
-msgid "Video codecs"
-msgstr "مرمازات الفيديو"
-
-#: ../gtk/parameters.ui.h:85
-msgid "Codecs"
-msgstr "المراميز"
-
-#: ../gtk/parameters.ui.h:86
-msgid "Language"
-msgstr "اللغة"
-
-#: ../gtk/parameters.ui.h:87
-msgid "Show advanced settings"
-msgstr "أظهر الإعدادات المتقدمة"
-
-#: ../gtk/parameters.ui.h:88
-msgid "Level"
-msgstr "المستوى"
-
-#: ../gtk/parameters.ui.h:89
-msgid "User interface"
-msgstr "واجهة المستخدم"
-
-#: ../gtk/parameters.ui.h:93
-msgid "LDAP Account setup"
-msgstr "تهيئة LDAP"
-
-#: ../gtk/parameters.ui.h:94
-msgid "LDAP"
-msgstr "LDAP"
-
-#: ../gtk/parameters.ui.h:95
-msgid "Done"
-msgstr "أغلق"
-
-#: ../gtk/password.ui.h:1
-msgid "Linphone - Authentication required"
-msgstr "لِنْفُونْ - يجب التحقق من الهوية"
-
-#: ../gtk/password.ui.h:2
-msgid "Please enter the domain password"
-msgstr "أدخل كلمة سر النطاق"
-
-#: ../gtk/provisioning-fetch.ui.h:1
-msgid "Configuring..."
-msgstr "تجري التهيئة..."
-
-#: ../gtk/provisioning-fetch.ui.h:2
-msgid "Please wait while fetching configuration from server..."
-msgstr "رجاءً انتظر ريثما ينتهي من جلب الإعدادات من الخادم..."
-
-#: ../gtk/setup_wizard.ui.h:1
-msgid "SIP account configuration assistant"
-msgstr "مرشد تهيئة حساب SIP"
-
-#: ../gtk/setup_wizard.ui.h:2
-msgid ""
-"Welcome!\n"
-"This assistant will help you to use a SIP account for your calls."
-msgstr "مرحبا !\nسيمكنك هذا المرشد من إعداد حسابك SIP لإجراء المكالمات."
-
-#: ../gtk/setup_wizard.ui.h:4
-msgid "Welcome to the account setup assistant"
-msgstr "مرحبا بك في مرشد إعداد الحساب"
-
-#: ../gtk/setup_wizard.ui.h:5
-msgid "Create an account on linphone.org"
-msgstr "إنشاء حساب في linphone.org"
-
-#: ../gtk/setup_wizard.ui.h:6
-msgid "I have already a linphone.org account and I just want to use it"
-msgstr "أتوفر مسبقا على حساب في linphone.org وأريد فقط استخدامه"
-
-#: ../gtk/setup_wizard.ui.h:7
-msgid "I have already a sip account and I just want to use it"
-msgstr "أتوفر مسبقا على حساب sip وأريد فقط استخدامه"
-
-#: ../gtk/setup_wizard.ui.h:8
-msgid "I want to specify a remote configuration URI"
-msgstr "أريد تحديد عنوان التهيئة عن بعد"
-
-#: ../gtk/setup_wizard.ui.h:9
-msgid "Account setup assistant"
-msgstr "مرشد تهيئة الحساب"
-
-#: ../gtk/setup_wizard.ui.h:10
-msgid "Enter your account information"
-msgstr "ادخل معلومات حسابك"
-
-#: ../gtk/setup_wizard.ui.h:11
-msgid "Username*"
-msgstr "اسم المستخدم*"
-
-#: ../gtk/setup_wizard.ui.h:12
-msgid "Password*"
-msgstr "كلمة السر*"
-
-#: ../gtk/setup_wizard.ui.h:13
-msgid "Domain*"
-msgstr "النطاق*"
-
-#: ../gtk/setup_wizard.ui.h:14
-msgid "Proxy"
-msgstr "الوكيل"
-
-#: ../gtk/setup_wizard.ui.h:15
-msgid "Configure your account (step 1/1)"
-msgstr "تهيئة حسابك (المرحلة 1/1)"
-
-#: ../gtk/setup_wizard.ui.h:16
-msgid "Enter your linphone.org username"
-msgstr "أدخِل اسم المستخدم في linphone.org"
-
-#: ../gtk/setup_wizard.ui.h:19
-msgid "Enter your sip username (step 1/1)"
-msgstr "أدخل اسم المستخدم SIP (المرحلة 1/1)"
-
-#: ../gtk/setup_wizard.ui.h:20
-msgid "(*) Required fields"
-msgstr "(*) حقول ضرورية"
-
-#: ../gtk/setup_wizard.ui.h:21
-msgid "Email: (*)"
-msgstr "البريد الالكتروني : (*)"
-
-#: ../gtk/setup_wizard.ui.h:22
-msgid "Username: (*)"
-msgstr "اسم المستخدم* : (*)"
-
-#: ../gtk/setup_wizard.ui.h:23
-msgid "Password: (*)"
-msgstr "كلمة السر* : (*)"
-
-#: ../gtk/setup_wizard.ui.h:24
-msgid "Confirm your password: (*)"
-msgstr "أكِّد كلمة السر : (*)"
-
-#: ../gtk/setup_wizard.ui.h:25
-msgid "Keep me informed with linphone updates"
-msgstr "أحطني علما بتحديثات لِنْفُونْ"
-
-#: ../gtk/setup_wizard.ui.h:26
-msgid "Enter account information (step 1/2)"
-msgstr "أدخل معلومات حسابك (المرحلة 1/2)"
-
-#: ../gtk/setup_wizard.ui.h:27
-msgid "Your account is being created, please wait."
-msgstr "يُرجى الانتظار، يجري الآن إنشاء حسابك."
-
-#: ../gtk/setup_wizard.ui.h:28
-msgid "Account creation in progress"
-msgstr "إنشاء الحساب في تقدم"
-
-#: ../gtk/setup_wizard.ui.h:29
-msgid ""
-"Please validate your account by clicking on the link we just sent you by email.\n"
-"Then come back here and press Next button."
-msgstr "يُرجى تأكيد حسابك وذلك بالضغط على الوصلة التي أرسلناها لك بالبريد الإلكتروني.\nثم ارجع إلى هنا واضغط على زر التالي."
-
-#: ../gtk/setup_wizard.ui.h:31
-msgid "Validation (step 2/2)"
-msgstr "تأكيد (المرحلة 2/2)"
-
-#: ../gtk/setup_wizard.ui.h:32
-msgid "Checking if your account is been validated, please wait."
-msgstr "يُرجى الانتظار، يجري الآن فحص التحقق من صحة حسابك."
-
-#: ../gtk/setup_wizard.ui.h:33
-msgid "Account validation check in progress"
-msgstr "التحقق من الحساب في تقدم"
-
-#: ../gtk/setup_wizard.ui.h:34
-msgid ""
-"Error, account not validated, username already used or server unreachable.\n"
-"Please go back and try again."
-msgstr "خطأ، لم يتم تأكيد الحساب، سبق استخدام اسم المستخدم أو تعذر الوصول للخادم.\nيُرجى إعادة المحاولة لاحقا."
-
-#: ../gtk/setup_wizard.ui.h:36
-msgid "Error"
-msgstr "خطأ"
-
-#: ../gtk/setup_wizard.ui.h:37
-msgid "Thank you. Your account is now configured and ready for use."
-msgstr "شكرا لك، لقد جرت تهيئة حسابك وهو الآن قابل للاستخدام."
-
-#: ../gtk/sip_account.ui.h:1
-msgid "Linphone - Configure a SIP account"
-msgstr "لِنْفُونْ - تهيئة حساب SIP"
-
-#: ../gtk/sip_account.ui.h:2
-msgid "Your SIP identity:"
-msgstr "هوية SIP لديك :"
-
-#: ../gtk/sip_account.ui.h:3
-msgid "Looks like sip:@"
-msgstr "يشبه sip:@"
-
-#: ../gtk/sip_account.ui.h:4
-msgid "sip:"
-msgstr "sip:"
-
-#: ../gtk/sip_account.ui.h:5
-msgid "SIP Proxy address:"
-msgstr "عنوان وكيل SIP :"
-
-#: ../gtk/sip_account.ui.h:6
-msgid "Looks like sip:"
-msgstr "يشبه sip:"
-
-#: ../gtk/sip_account.ui.h:7
-msgid "Registration duration (sec):"
-msgstr "مدة التسجيل (بالثواني) :"
-
-#: ../gtk/sip_account.ui.h:8
-msgid "Contact params (optional):"
-msgstr "إعدادات جهة الاتصال (اختيارية) :"
-
-#: ../gtk/sip_account.ui.h:9
-msgid "AVPF regular RTCP interval (sec):"
-msgstr "مجال RTCP الاعتيادي ل AVPF (بالثواني) :"
-
-#: ../gtk/sip_account.ui.h:10
-msgid "Route (optional):"
-msgstr "التوجيه (اختياري) :"
-
-#: ../gtk/sip_account.ui.h:11
-msgid "Transport"
-msgstr "النقل"
-
-#: ../gtk/sip_account.ui.h:12
-msgid "Register"
-msgstr "التسجيل"
-
-#: ../gtk/sip_account.ui.h:13
-msgid "Publish presence information"
-msgstr "انشر معلومات الحضور"
-
-#: ../gtk/sip_account.ui.h:14
-msgid "Enable AVPF"
-msgstr "فعِّل AVPF "
-
-#: ../gtk/sip_account.ui.h:15
-msgid "Configure a SIP account"
-msgstr "تهيئة حساب SIP"
-
-#: ../gtk/tunnel_config.ui.h:1
-msgid "Configure VoIP tunnel"
-msgstr "تهيئة نفق VoIP"
-
-#: ../gtk/tunnel_config.ui.h:2
-msgid "Host"
-msgstr "المضيف"
-
-#: ../gtk/tunnel_config.ui.h:3
-msgid "Port"
-msgstr "المنفذ"
-
-#: ../gtk/tunnel_config.ui.h:6
-msgid "Configure tunnel"
-msgstr "تهيئة النفق"
-
-#: ../gtk/tunnel_config.ui.h:9
-msgid "Configure http proxy (optional)"
-msgstr "تهيئة وكيل http (اختياري)"
-
-#: ../gtk/waiting.ui.h:2
-msgid "Please wait"
-msgstr "يُرجى الانتظار"
-
-#: ../coreapi/linphonecore.c:1594
-msgid "Ready"
-msgstr "جاهز"
-
-#: ../coreapi/linphonecore.c:2685
-msgid "Configuring"
-msgstr "تجري التهيئة"
-
-#. must be known at that time
-#: ../coreapi/linphonecore.c:3084
-msgid "Contacting"
-msgstr "يتصل ب"
-
-#: ../coreapi/linphonecore.c:3089
-msgid "Could not call"
-msgstr "لم يتمكن من الاتصال"
-
-#: ../coreapi/linphonecore.c:3228
-msgid "Sorry, we have reached the maximum number of simultaneous calls"
-msgstr "آسف، وصل عدد المكالمات الآنية إلى حده الأقصى"
-
-#: ../coreapi/linphonecore.c:3388
-msgid "is contacting you"
-msgstr "يتصل بك"
-
-#: ../coreapi/linphonecore.c:3389
-msgid " and asked autoanswer."
-msgstr "ويطلب ردا تلقائيا."
-
-#: ../coreapi/linphonecore.c:3506
-msgid "Modifying call parameters..."
-msgstr "يجري تعديل إعدادات المكالمة..."
-
-#: ../coreapi/linphonecore.c:3898
-msgid "Connected."
-msgstr "متصل."
-
-#: ../coreapi/linphonecore.c:3923
-msgid "Call aborted"
-msgstr "أُلغيت المكالمة"
-
-#: ../coreapi/linphonecore.c:4125
-msgid "Could not pause the call"
-msgstr "لم يتمكن من توقيف المكالمة مؤقتا"
-
-#: ../coreapi/linphonecore.c:4128
-msgid "Pausing the current call..."
-msgstr "وضع المكالمة قيد الانتظار..."
-
-#: ../coreapi/misc.c:441
-msgid "Stun lookup in progress..."
-msgstr "يجري بحث STUN..."
-
-#: ../coreapi/misc.c:657
-msgid "ICE local candidates gathering in progress..."
-msgstr "يجري جلب مرشَّحي ICE المحلين..."
-
-#: ../coreapi/friend.c:48
-msgid "Online"
-msgstr "على الخط"
-
-#: ../coreapi/friend.c:51
-msgid "Busy"
-msgstr "مشغول"
-
-#: ../coreapi/friend.c:54
-msgid "Be right back"
-msgstr "سأعود"
-
-#: ../coreapi/friend.c:57
-msgid "Away"
-msgstr "غائب"
-
-#: ../coreapi/friend.c:60
-msgid "On the phone"
-msgstr "على الهاتف"
-
-#: ../coreapi/friend.c:63
-msgid "Out to lunch"
-msgstr "أمام مائدة الطعام"
-
-#: ../coreapi/friend.c:66
-msgid "Do not disturb"
-msgstr "لا تزعجني"
-
-#: ../coreapi/friend.c:69
-msgid "Moved"
-msgstr "ذهبتُ"
-
-#: ../coreapi/friend.c:72
-msgid "Using another messaging service"
-msgstr "أستخدم خدمة أخرى للتراسل الفوري"
-
-#: ../coreapi/friend.c:75
-msgid "Offline"
-msgstr "غير متصل"
-
-#: ../coreapi/friend.c:78
-msgid "Pending"
-msgstr "قيد الانتظار"
-
-#: ../coreapi/friend.c:81
-msgid "Vacation"
-msgstr "في عطلة"
-
-#: ../coreapi/friend.c:83
-msgid "Unknown status"
-msgstr "حالة مجهولة"
-
-#: ../coreapi/proxy.c:339
-msgid ""
-"The sip proxy address you entered is invalid, it must start with \"sip:\" "
-"followed by a hostname."
-msgstr "إن عنوان SIP الذي أدخلت غير صحيح، يجب أن يبدأ بـ \"sip:\" متبوعا باسم المضيف."
-
-#: ../coreapi/proxy.c:345
-msgid ""
-"The sip identity you entered is invalid.\n"
-"It should look like sip:username@proxydomain, such as sip:alice@example.net"
-msgstr "إن هوية SIP التي أدخلت غير صحيحة.\nيجب أن تكون بهذا النمط sip:username@proxydomain، مثلا sip:alice@example.net"
-
-#: ../coreapi/proxy.c:979
-msgid "Looking for telephone number destination..."
-msgstr "يجري البحث عن وجهة رقم الهاتف..."
-
-#: ../coreapi/proxy.c:983
-msgid "Could not resolve this number."
-msgstr "لم يتمكن من إيجاد هذا الرقم."
-
-#: ../coreapi/proxy.c:1437
-#, c-format
-msgid "Could not login as %s"
-msgstr "تعذر الولوج بالهوية %s"
-
-#: ../coreapi/proxy.c:1522
-#, c-format
-msgid "Refreshing on %s..."
-msgstr "يجري إنعاش في %s..."
-
-#: ../coreapi/callbacks.c:415
-msgid "Remote ringing."
-msgstr "يرن الجرس عن بعد..."
-
-#: ../coreapi/callbacks.c:427
-msgid "Remote ringing..."
-msgstr "يرن الجرس عن بعد..."
-
-#: ../coreapi/callbacks.c:450
-msgid "Early media."
-msgstr "أخذ المكالمة مبكرا."
-
-#: ../coreapi/callbacks.c:480
-#, c-format
-msgid "Call answered by %s"
-msgstr "أجاب عن المكالمة %s"
-
-#: ../coreapi/callbacks.c:522
-msgid "Call resumed."
-msgstr "استُعيدت المكالمة."
-
-#: ../coreapi/callbacks.c:577
-msgid "Incompatible, check codecs or security settings..."
-msgstr "غير موائم، تحقق من المراميز أو إعدادات الأمان..."
-
-#: ../coreapi/callbacks.c:582 ../coreapi/callbacks.c:918
-msgid "Incompatible media parameters."
-msgstr "إعدادات الوسائط غير موائمة."
-
-#: ../coreapi/callbacks.c:607
-msgid "We have been resumed."
-msgstr "استُأنِفت المكالمة."
-
-#. we are being paused
-#: ../coreapi/callbacks.c:615
-msgid "We are paused by other party."
-msgstr "وُقِّفت المكالمة مؤقتا من طرف آخر."
-
-#: ../coreapi/callbacks.c:625
-msgid "Call is updated by remote."
-msgstr "حُدِّث الاتصال من البعيد."
-
-#: ../coreapi/callbacks.c:794
-msgid "Call terminated."
-msgstr "أُنهيت المكالمة."
-
-#: ../coreapi/callbacks.c:822
-msgid "User is busy."
-msgstr "المستخدم مشغول."
-
-#: ../coreapi/callbacks.c:823
-msgid "User is temporarily unavailable."
-msgstr "المستخدم غير متاح مؤقتا."
-
-#. char *retrymsg=_("%s. Retry after %i minute(s).");
-#: ../coreapi/callbacks.c:825
-msgid "User does not want to be disturbed."
-msgstr "لا يريد المستخدم أي إزعاج."
-
-#: ../coreapi/callbacks.c:826
-msgid "Call declined."
-msgstr "تم تجاهل المكالمة."
-
-#: ../coreapi/callbacks.c:841
-msgid "Request timeout."
-msgstr "انتهت مهلة الطلب."
-
-#: ../coreapi/callbacks.c:872
-msgid "Redirected"
-msgstr "مُوجَّه"
-
-#: ../coreapi/callbacks.c:922
-msgid "Call failed."
-msgstr "فشل الاتصال."
-
-#: ../coreapi/callbacks.c:1000
-#, c-format
-msgid "Registration on %s successful."
-msgstr "تم التسجيل في %s بنجاح."
-
-#: ../coreapi/callbacks.c:1001
-#, c-format
-msgid "Unregistration on %s done."
-msgstr "أُلغي التسجيل في %s ."
-
-#: ../coreapi/callbacks.c:1019
-msgid "no response timeout"
-msgstr "لا إجابة قبل انتهاء المهلة"
-
-#: ../coreapi/callbacks.c:1022
-#, c-format
-msgid "Registration on %s failed: %s"
-msgstr "فَشِل التسجيل في %s: %s"
-
-#: ../coreapi/callbacks.c:1029
-msgid "Service unavailable, retrying"
-msgstr "خدمة غير متاحة، تجري الإعادة"
-
-#. if encryption is DTLS, no status to be displayed
-#: ../coreapi/linphonecall.c:204
-#, c-format
-msgid "Authentication token is %s"
-msgstr "شارة التحقق من الهوية هي %s"
-
-#: ../coreapi/linphonecall.c:1663
-#, c-format
-msgid "Call parameters could not be modified: %s."
-msgstr "لم تُعدَّل معاملات المكالمات : %s."
-
-#: ../coreapi/linphonecall.c:1665
-msgid "Call parameters were successfully modified."
-msgstr "عُدِّلت معاملات المكالمات بنجاج."
-
-#: ../coreapi/linphonecall.c:4636
-#, c-format
-msgid "You have missed %i call."
-msgid_plural "You have missed %i calls."
-msgstr[0] "لم تفتك أي مكالمة."
-msgstr[1] "فاتتك مكالمة واحدة."
-msgstr[2] "فاتتك مكالمتان."
-msgstr[3] "فاتتك %i مكالمات."
-msgstr[4] "فاتتك %i مكالمة."
-msgstr[5] "فاتتك %i مكالمة."
-
-#: ../coreapi/call_log.c:223
-msgid "aborted"
-msgstr "أُجهِضت"
-
-#: ../coreapi/call_log.c:226
-msgid "completed"
-msgstr "اكتملت"
-
-#: ../coreapi/call_log.c:229
-msgid "missed"
-msgstr "فاتت"
-
-#: ../coreapi/call_log.c:232
-msgid "unknown"
-msgstr "مجهول"
-
-#: ../coreapi/call_log.c:234
-#, c-format
-msgid ""
-"%s at %s\n"
-"From: %s\n"
-"To: %s\n"
-"Status: %s\n"
-"Duration: %i mn %i sec\n"
-msgstr "%s في %s\nمن : %s\nإلى : %s\nالحالة : %s\nالمدة : %i دقيقة %i ثانية\n"
-
-#: ../coreapi/call_log.c:235
-msgid "Outgoing call"
-msgstr "المكالمة الصادرة"
-
-#: ../gtk/videowindow.c:72
-#, c-format
-msgid "Cannot play %s."
-msgstr "لم يتمكن من تشغيل %s"
-
-#: ../gtk/videowindow.c:252
-msgid "Take screenshot"
-msgstr ""
diff --git a/po/boldquot.sed b/po/boldquot.sed
deleted file mode 100644
index 4b937aa51..000000000
--- a/po/boldquot.sed
+++ /dev/null
@@ -1,10 +0,0 @@
-s/"\([^"]*\)"/“\1”/g
-s/`\([^`']*\)'/‘\1’/g
-s/ '\([^`']*\)' / ‘\1’ /g
-s/ '\([^`']*\)'$/ ‘\1’/g
-s/^'\([^`']*\)' /‘\1’ /g
-s/“”/""/g
-s/“/“[1m/g
-s/”/[0m”/g
-s/‘/‘[1m/g
-s/’/[0m’/g
diff --git a/po/cs.po b/po/cs.po
deleted file mode 100644
index 70d394fa7..000000000
--- a/po/cs.po
+++ /dev/null
@@ -1,2095 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-#
-# Translators:
-# Klara Cihlarova , 2005
-# Petr Pisar , 2006-2011,2013
-msgid ""
-msgstr ""
-"Project-Id-Version: linphone-gtk\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-19 14:01+0200\n"
-"PO-Revision-Date: 2016-05-10 09:58+0000\n"
-"Last-Translator: Belledonne Communications \n"
-"Language-Team: Czech (http://www.transifex.com/belledonne-communications/linphone-gtk/language/cs/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: cs\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-
-#: ../gtk/calllogs.c:178
-#, c-format
-msgid "Call %s"
-msgstr "Volat komu: %s"
-
-#: ../gtk/calllogs.c:179
-#, c-format
-msgid "Send text to %s"
-msgstr "Poslat text komu: %s"
-
-#: ../gtk/calllogs.c:181
-#, c-format
-msgid "Add %s to your contact list"
-msgstr ""
-
-#: ../gtk/calllogs.c:245 ../gtk/main.ui.h:23
-msgid "Recent calls"
-msgstr "Nedávné hovory"
-
-#: ../gtk/calllogs.c:260
-#, c-format
-msgid "Recent calls (%i)"
-msgstr "Nedávné hovory (%i)"
-
-#: ../gtk/calllogs.c:334
-msgid "n/a"
-msgstr "–"
-
-#: ../gtk/calllogs.c:337
-msgid "Aborted"
-msgstr "Přerušen"
-
-#: ../gtk/calllogs.c:340
-msgid "Missed"
-msgstr "Zmeškán"
-
-#: ../gtk/calllogs.c:343
-msgid "Declined"
-msgstr "Odmítnut"
-
-#: ../gtk/calllogs.c:349
-#, c-format
-msgid "%i minute"
-msgid_plural "%i minutes"
-msgstr[0] "%i minuta"
-msgstr[1] "%i minuty"
-msgstr[2] "%i minut"
-
-#: ../gtk/calllogs.c:352
-#, c-format
-msgid "%i second"
-msgid_plural "%i seconds"
-msgstr[0] "%i sekunda"
-msgstr[1] "%i sekundy"
-msgstr[2] "%i sekund"
-
-#: ../gtk/calllogs.c:357
-#, c-format
-msgid ""
-"%s\tQuality: %s\n"
-"%s\t%s\t"
-msgstr "%s\tKvalita: %s\n%s\t%s\t"
-
-#: ../gtk/calllogs.c:361
-#, c-format
-msgid "%s\t%s"
-msgstr "%s\t%s"
-
-#: ../gtk/conference.c:38 ../gtk/in_call_frame.ui.h:11
-msgid "Conference"
-msgstr "Konference"
-
-#: ../gtk/conference.c:46
-msgid "Me"
-msgstr "Já"
-
-#: ../gtk/support.c:49 ../gtk/support.c:73 ../gtk/support.c:102
-#, c-format
-msgid "Couldn't find pixmap file: %s"
-msgstr "Nelze najít soubor s obrázkem: %s"
-
-#: ../gtk/chat.c:207 ../gtk/chat.c:265
-msgid "Sending..."
-msgstr ""
-
-#: ../gtk/chat.c:224 ../gtk/chat.c:274
-msgid "Message not sent"
-msgstr ""
-
-#: ../gtk/chat.c:498
-msgid "Copy"
-msgstr ""
-
-#: ../gtk/main.c:134
-msgid "log to stdout some debug information while running."
-msgstr "Za běhu vypisuje některé ladicí informace na standardní výstup."
-
-#: ../gtk/main.c:135
-msgid "display version and exit."
-msgstr ""
-
-#: ../gtk/main.c:136
-msgid "path to a file to write logs into."
-msgstr "Soubor, kam zapisovat protokol."
-
-#: ../gtk/main.c:137
-msgid "Start linphone with video disabled."
-msgstr "Spustí linphone se zakázaným obrazem."
-
-#: ../gtk/main.c:138
-msgid "Start only in the system tray, do not show the main interface."
-msgstr "Spustí se pouze do systémové oblasti, nezobrazí hlavní okno."
-
-#: ../gtk/main.c:139
-msgid "address to call right now"
-msgstr "Zavolá právě teď na tuto adresu"
-
-#: ../gtk/main.c:140
-msgid ""
-"Specifiy a working directory (should be the base of the installation, eg: "
-"c:\\Program Files\\Linphone)"
-msgstr "Zadejte pracovní adresář (měl by být základní instalační adresář, například c:\\Program Files\\Linphone)"
-
-#: ../gtk/main.c:141
-msgid "Configuration file"
-msgstr ""
-
-#: ../gtk/main.c:142
-msgid "Run the audio assistant"
-msgstr ""
-
-#: ../gtk/main.c:143
-msgid "Run self test and exit 0 if succeed"
-msgstr ""
-
-#: ../gtk/main.c:1058
-#, c-format
-msgid ""
-"%s would like to add you to his/her contact list.\n"
-"Would you add him/her to your contact list and allow him/her to see your presence status?\n"
-"If you answer no, this person will be temporarily blacklisted."
-msgstr ""
-
-#: ../gtk/main.c:1135
-#, c-format
-msgid ""
-"Please enter your password for username %s\n"
-" at realm %s:"
-msgstr ""
-
-#: ../gtk/main.c:1244
-msgid "Call error"
-msgstr "Chyba hovoru"
-
-#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942
-msgid "Call ended"
-msgstr "Hovor ukončen"
-
-#: ../gtk/main.c:1250 ../coreapi/call_log.c:235
-msgid "Incoming call"
-msgstr "Příchozí hovor"
-
-#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2
-msgid "Answer"
-msgstr "Odpovědět"
-
-#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3
-msgid "Decline"
-msgstr "Odmítnout"
-
-#: ../gtk/main.c:1262
-msgid "Call paused"
-msgstr "Hovor odložen"
-
-#: ../gtk/main.c:1262
-#, c-format
-msgid "by %s"
-msgstr "kým: %s"
-
-#: ../gtk/main.c:1336
-#, c-format
-msgid "%s proposed to start video. Do you accept ?"
-msgstr "%s navrhuje začít videohovor. Přijímáte?"
-
-#: ../gtk/main.c:1502
-msgid "Website link"
-msgstr "Odkaz na webovou stránku"
-
-#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1
-msgid "Linphone"
-msgstr "Linphone"
-
-#: ../gtk/main.c:1562
-msgid "A video internet phone"
-msgstr ""
-
-#: ../gtk/main.c:1624
-#, c-format
-msgid "%s (Default)"
-msgstr "%s (Výchozí)"
-
-#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080
-#, c-format
-msgid "We are transferred to %s"
-msgstr "Byly jsme přepojeni na %s"
-
-#: ../gtk/main.c:2008
-msgid ""
-"No sound cards have been detected on this computer.\n"
-"You won't be able to send or receive audio calls."
-msgstr "Na tomto počítači nebyla objevena žádná zvuková karta.\nNebudete moci vytáčet a přijímat a zvukové hovory."
-
-#: ../gtk/main.c:2173
-msgid "A free SIP video-phone"
-msgstr "Volný SIP videofon"
-
-#: ../gtk/main.c:2292
-#, c-format
-msgid "Hello\n"
-msgstr ""
-
-#: ../gtk/friendlist.c:460
-msgid "Add to addressbook"
-msgstr "Přidat do adresáře"
-
-#: ../gtk/friendlist.c:626
-#, c-format
-msgid "Search in %s directory"
-msgstr "Hledat v adresáři %s"
-
-#: ../gtk/friendlist.c:773
-msgid "Invalid sip contact !"
-msgstr "Neplatný sipový kontakt!"
-
-#: ../gtk/friendlist.c:820
-#, c-format
-msgid "Add a new contact"
-msgstr ""
-
-#: ../gtk/friendlist.c:823
-#, c-format
-msgid "Edit contact '%s'"
-msgstr "Upravit kontakt „%s“"
-
-#: ../gtk/friendlist.c:824
-#, c-format
-msgid "Delete contact '%s'"
-msgstr "Odstranit kontakt „%s“"
-
-#: ../gtk/friendlist.c:825
-#, c-format
-msgid "Delete chat history of '%s'"
-msgstr "Odstranit historii diskuze u kontaktu „%s“"
-
-#: ../gtk/friendlist.c:862
-#, c-format
-msgid "Add new contact from %s directory"
-msgstr "Přidat nový kontakt z adresáře %s"
-
-#: ../gtk/propertybox.c:592 ../gtk/contact.ui.h:1
-msgid "Name"
-msgstr "Jméno"
-
-#: ../gtk/propertybox.c:598
-msgid "Rate (Hz)"
-msgstr "Kmitočet (Hz)"
-
-#: ../gtk/propertybox.c:604
-msgid "Status"
-msgstr "Stav"
-
-#: ../gtk/propertybox.c:617
-msgid "IP Bitrate (kbit/s)"
-msgstr ""
-
-#: ../gtk/propertybox.c:628
-msgid "Parameters"
-msgstr "Parametry"
-
-#: ../gtk/propertybox.c:670 ../gtk/propertybox.c:824
-msgid "Enabled"
-msgstr "Povoleno"
-
-#: ../gtk/propertybox.c:672 ../gtk/propertybox.c:824 ../gtk/parameters.ui.h:57
-msgid "Disabled"
-msgstr "Zakázáno"
-
-#: ../gtk/propertybox.c:902
-msgid "Account"
-msgstr "Účet"
-
-#: ../gtk/propertybox.c:1170
-msgid "English"
-msgstr "angličtina"
-
-#: ../gtk/propertybox.c:1171
-msgid "French"
-msgstr "francouzština"
-
-#: ../gtk/propertybox.c:1172
-msgid "Swedish"
-msgstr "švédština"
-
-#: ../gtk/propertybox.c:1173
-msgid "Italian"
-msgstr "italština"
-
-#: ../gtk/propertybox.c:1174
-msgid "Spanish"
-msgstr "španělština"
-
-#: ../gtk/propertybox.c:1175
-msgid "Brazilian Portugese"
-msgstr "brazilská portugalština"
-
-#: ../gtk/propertybox.c:1176
-msgid "Polish"
-msgstr "polština"
-
-#: ../gtk/propertybox.c:1177
-msgid "German"
-msgstr "němčina"
-
-#: ../gtk/propertybox.c:1178
-msgid "Russian"
-msgstr "ruština"
-
-#: ../gtk/propertybox.c:1179
-msgid "Japanese"
-msgstr "japonština"
-
-#: ../gtk/propertybox.c:1180
-msgid "Dutch"
-msgstr "dánština"
-
-#: ../gtk/propertybox.c:1181
-msgid "Hungarian"
-msgstr "maďarština"
-
-#: ../gtk/propertybox.c:1182
-msgid "Czech"
-msgstr "čeština"
-
-#: ../gtk/propertybox.c:1183
-msgid "Chinese"
-msgstr "čínština"
-
-#: ../gtk/propertybox.c:1184
-msgid "Traditional Chinese"
-msgstr "tradiční čínština"
-
-#: ../gtk/propertybox.c:1185
-msgid "Norwegian"
-msgstr "norština"
-
-#: ../gtk/propertybox.c:1186
-msgid "Hebrew"
-msgstr "hebrejština"
-
-#: ../gtk/propertybox.c:1187
-msgid "Serbian"
-msgstr "srbština"
-
-#: ../gtk/propertybox.c:1188
-msgid "Arabic"
-msgstr ""
-
-#: ../gtk/propertybox.c:1189
-msgid "Turkish"
-msgstr ""
-
-#: ../gtk/propertybox.c:1246
-msgid ""
-"You need to restart linphone for the new language selection to take effect."
-msgstr "Aby se projevil výběr nového jazyka, je nutné znovu spustit linphone."
-
-#: ../gtk/propertybox.c:1332
-msgid "None"
-msgstr "Žádné"
-
-#: ../gtk/propertybox.c:1336
-msgid "SRTP"
-msgstr "SRTP"
-
-#: ../gtk/propertybox.c:1342
-msgid "DTLS"
-msgstr ""
-
-#: ../gtk/propertybox.c:1349
-msgid "ZRTP"
-msgstr "ZRTP"
-
-#: ../gtk/update.c:80
-#, c-format
-msgid ""
-"A more recent version is availalble from %s.\n"
-"Would you like to open a browser to download it ?"
-msgstr "Na %s je dostupná novější verze.\nPřejete si otevřít prohlížeč, abyste si ji mohli stáhnout?"
-
-#: ../gtk/update.c:91
-msgid "You are running the lastest version."
-msgstr "Máte spuštěnou poslední verzi."
-
-#: ../gtk/buddylookup.c:85
-msgid "Firstname, Lastname"
-msgstr "První jméno, Poslední jméno"
-
-#: ../gtk/buddylookup.c:160
-msgid "Error communicating with server."
-msgstr "Chyba komunikace se serverem."
-
-#: ../gtk/buddylookup.c:164
-msgid "Connecting..."
-msgstr "Připojuje se…"
-
-#: ../gtk/buddylookup.c:168
-msgid "Connected"
-msgstr "Připojeno"
-
-#: ../gtk/buddylookup.c:172
-msgid "Receiving data..."
-msgstr "Přijímají se data…"
-
-#: ../gtk/buddylookup.c:180
-#, c-format
-msgid "Found %i contact"
-msgid_plural "Found %i contacts"
-msgstr[0] "Nalezen %i kontakt"
-msgstr[1] "Nalezeny %i kontakty"
-msgstr[2] "Nalezeno %i kontaktů"
-
-#: ../gtk/setupwizard.c:219
-msgid "Username is already in use!"
-msgstr ""
-
-#: ../gtk/setupwizard.c:223
-msgid "Failed to check username availability. Please try again later."
-msgstr ""
-
-#: ../gtk/incall_view.c:67 ../gtk/incall_view.c:87
-#, c-format
-msgid "Call #%i"
-msgstr "Hovor č. %i"
-
-#: ../gtk/incall_view.c:145
-#, c-format
-msgid "Transfer to call #%i with %s"
-msgstr "Přepojit hovor č. %i s %s"
-
-#: ../gtk/incall_view.c:202 ../gtk/incall_view.c:205
-msgid "Not used"
-msgstr "Nepoužito"
-
-#: ../gtk/incall_view.c:212
-msgid "ICE not activated"
-msgstr "ICE není zapnuto"
-
-#: ../gtk/incall_view.c:214
-msgid "ICE failed"
-msgstr "ICE selhalo"
-
-#: ../gtk/incall_view.c:216
-msgid "ICE in progress"
-msgstr "Probíhá ICE"
-
-#: ../gtk/incall_view.c:218
-msgid "Going through one or more NATs"
-msgstr "Prochází se jedním nebo více NATy"
-
-#: ../gtk/incall_view.c:220
-msgid "Direct"
-msgstr "Přímé"
-
-#: ../gtk/incall_view.c:222
-msgid "Through a relay server"
-msgstr "Skrze relay server"
-
-#: ../gtk/incall_view.c:230
-msgid "uPnP not activated"
-msgstr "UPnP není zapnuto"
-
-#: ../gtk/incall_view.c:232
-msgid "uPnP in progress"
-msgstr "Probíhá UPnP"
-
-#: ../gtk/incall_view.c:234
-msgid "uPnp not available"
-msgstr "UPnP není nedostupné"
-
-#: ../gtk/incall_view.c:236
-msgid "uPnP is running"
-msgstr "UPnP běží"
-
-#: ../gtk/incall_view.c:238
-msgid "uPnP failed"
-msgstr "UPnP selhalo"
-
-#: ../gtk/incall_view.c:248 ../gtk/incall_view.c:249
-msgid "Direct or through server"
-msgstr "Přímé nebo skrze server"
-
-#: ../gtk/incall_view.c:258 ../gtk/incall_view.c:270
-#, c-format
-msgid ""
-"download: %f\n"
-"upload: %f (kbit/s)"
-msgstr "příchozí: %f\nodchozí: %f (kb/s)"
-
-#: ../gtk/incall_view.c:263 ../gtk/incall_view.c:265
-#, c-format
-msgid "%ix%i @ %f fps"
-msgstr ""
-
-#: ../gtk/incall_view.c:295
-#, c-format
-msgid "%.3f seconds"
-msgstr "%.3f sekund"
-
-#: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10
-#: ../gtk/videowindow.c:248
-msgid "Hang up"
-msgstr "Zavěsit"
-
-#: ../gtk/incall_view.c:558
-msgid "Calling..."
-msgstr "Volá se…"
-
-#: ../gtk/incall_view.c:561 ../gtk/incall_view.c:793
-msgid "00:00:00"
-msgstr ""
-
-#: ../gtk/incall_view.c:572
-msgid "Incoming call"
-msgstr "Příchozí hovor"
-
-#: ../gtk/incall_view.c:609
-msgid "good"
-msgstr "dobrá"
-
-#: ../gtk/incall_view.c:611
-msgid "average"
-msgstr "průměrná"
-
-#: ../gtk/incall_view.c:613
-msgid "poor"
-msgstr "slabá"
-
-#: ../gtk/incall_view.c:615
-msgid "very poor"
-msgstr "velmi slabá"
-
-#: ../gtk/incall_view.c:617
-msgid "too bad"
-msgstr "příliš špatná"
-
-#: ../gtk/incall_view.c:618 ../gtk/incall_view.c:634
-msgid "unavailable"
-msgstr "nedostupná"
-
-#: ../gtk/incall_view.c:732
-msgid "Secured by SRTP"
-msgstr "Zabezpečeno pomocí SRTP"
-
-#: ../gtk/incall_view.c:738
-msgid "Secured by DTLS"
-msgstr ""
-
-#: ../gtk/incall_view.c:744
-#, c-format
-msgid "Secured by ZRTP - [auth token: %s]"
-msgstr "Zabezpečeno pomocí ZRTP – [ověřovací klíč: %s]"
-
-#: ../gtk/incall_view.c:748
-msgid "Set unverified"
-msgstr "Nastavit na neověřeno"
-
-#: ../gtk/incall_view.c:748
-msgid "Set verified"
-msgstr "Nastavit na ověřeno"
-
-#: ../gtk/incall_view.c:788
-msgid "In conference"
-msgstr "Probíhá konference"
-
-#: ../gtk/incall_view.c:788
-msgid "In call"
-msgstr "Probíhá hovor"
-
-#: ../gtk/incall_view.c:825
-msgid "Paused call"
-msgstr "Odložený hovor"
-
-#: ../gtk/incall_view.c:862
-msgid "Call ended."
-msgstr "Hovor skončil."
-
-#: ../gtk/incall_view.c:893
-msgid "Transfer in progress"
-msgstr "Probíhá přepojení"
-
-#: ../gtk/incall_view.c:896
-msgid "Transfer done."
-msgstr "Přepojení dokončeno."
-
-#: ../gtk/incall_view.c:899
-msgid "Transfer failed."
-msgstr "Přepojení selhalo."
-
-#: ../gtk/incall_view.c:930
-msgid "Resume"
-msgstr "Obnovit"
-
-#: ../gtk/incall_view.c:930 ../gtk/in_call_frame.ui.h:7
-msgid "Pause"
-msgstr "Odložit"
-
-#: ../gtk/incall_view.c:996
-#, c-format
-msgid ""
-"Recording into\n"
-"%s %s"
-msgstr "Nahrává se do\n%s %s"
-
-#: ../gtk/incall_view.c:996
-msgid "(Paused)"
-msgstr "(Odloženo)"
-
-#: ../gtk/loginframe.c:75
-#, c-format
-msgid "Please enter login information for %s"
-msgstr "Prosím, zadejte své přihlašovací jméno pro %s:"
-
-#: ../gtk/config-fetching.c:57
-#, c-format
-msgid "fetching from %s"
-msgstr ""
-
-#: ../gtk/config-fetching.c:73
-#, c-format
-msgid "Downloading of remote configuration from %s failed."
-msgstr ""
-
-#: ../gtk/audio_assistant.c:103
-msgid "No voice detected"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:104
-msgid "Too low"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:105
-msgid "Good"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:106
-msgid "Too loud"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:188
-msgid "Did you hear three beeps ?"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:301 ../gtk/audio_assistant.c:306
-msgid "Sound preferences not found "
-msgstr ""
-
-#: ../gtk/audio_assistant.c:315
-msgid "Cannot launch system sound control "
-msgstr ""
-
-#: ../gtk/audio_assistant.c:327
-msgid ""
-"Welcome!\n"
-"This assistant will help you to configure audio settings for Linphone"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:337
-msgid "Capture device"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:338
-msgid "Recorded volume"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:342
-msgid "No voice"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:343 ../gtk/audio_assistant.c:382
-msgid "System sound preferences"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:378
-msgid "Playback device"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:379
-msgid "Play three beeps"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:412
-msgid "Press the record button and say some words"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:413
-msgid "Listen to your record voice"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:414 ../gtk/conf_frame.ui.h:2
-#: ../gtk/in_call_frame.ui.h:4
-msgid "Record"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:415
-msgid "Play"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:442
-msgid "Let's start Linphone now"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:513
-msgid "Audio Assistant"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:523 ../gtk/main.ui.h:15
-msgid "Audio assistant"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:528
-msgid "Mic Gain calibration"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:534
-msgid "Speaker volume calibration"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:539
-msgid "Record and Play"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:544 ../gtk/setup_wizard.ui.h:38
-msgid "Terminating"
-msgstr "Ukončuje se"
-
-#: ../gtk/about.ui.h:1
-msgid "About Linphone"
-msgstr ""
-
-#: ../gtk/about.ui.h:2
-msgid "(C) Belledonne Communications, 2010\n"
-msgstr ""
-
-#: ../gtk/about.ui.h:4
-msgid "An internet video phone using the standard SIP (rfc3261) protocol."
-msgstr "Internetový videofon používající standardní protokol SIP (RFC 3261)."
-
-#: ../gtk/about.ui.h:5
-msgid ""
-"fr: Simon Morlat\n"
-"en: Simon Morlat and Delphine Perreau\n"
-"it: Alberto Zanoni \n"
-"de: Jean-Jacques Sarton \n"
-"sv: Daniel Nylander \n"
-"es: Jesus Benitez \n"
-"ja: YAMAGUCHI YOSHIYA \n"
-"pt_BR: Rafael Caesar Lenzi \n"
-"pl: Robert Nasiadek \n"
-"cs: Petr Pisar \n"
-"hu: anonymous\n"
-"he: Eli Zaretskii \n"
-msgstr ""
-
-#: ../gtk/buddylookup.ui.h:1
-msgid "Search contacts in directory"
-msgstr "Hledat kontakty v adresáři"
-
-#: ../gtk/buddylookup.ui.h:2
-msgid "Add to my list"
-msgstr "Přidat na svůj seznam"
-
-#: ../gtk/buddylookup.ui.h:3
-msgid "Search somebody"
-msgstr "Hledat někoho"
-
-#: ../gtk/callee_frame.ui.h:1
-msgid "Callee name"
-msgstr "Jméno volaného"
-
-#: ../gtk/call_logs.ui.h:1
-msgid "Call history"
-msgstr "Historie volání"
-
-#: ../gtk/call_logs.ui.h:2
-msgid "Clear all"
-msgstr "Vše smazat"
-
-#: ../gtk/call_logs.ui.h:3
-msgid "Call back"
-msgstr "Zavolat zpátky"
-
-#: ../gtk/call_statistics.ui.h:1
-msgid "Call statistics"
-msgstr "Statistické údaje o hovoru"
-
-#: ../gtk/call_statistics.ui.h:2
-msgid "Audio codec"
-msgstr "Kodek zvuku"
-
-#: ../gtk/call_statistics.ui.h:3
-msgid "Video codec"
-msgstr "Kodek obrazu"
-
-#: ../gtk/call_statistics.ui.h:4
-msgid "Audio IP bandwidth usage"
-msgstr "Přenosová rychlost zvuku na úrovni IP"
-
-#: ../gtk/call_statistics.ui.h:5
-msgid "Audio Media connectivity"
-msgstr "Zvukové spojení"
-
-#: ../gtk/call_statistics.ui.h:6
-msgid "Video IP bandwidth usage"
-msgstr "Přenosová rychlost obrazu na úrovni IP"
-
-#: ../gtk/call_statistics.ui.h:7
-msgid "Video Media connectivity"
-msgstr "Obrazové spojení"
-
-#: ../gtk/call_statistics.ui.h:8
-msgid "Round trip time"
-msgstr "Odezva"
-
-#: ../gtk/call_statistics.ui.h:9
-msgid "Video resolution received"
-msgstr ""
-
-#: ../gtk/call_statistics.ui.h:10
-msgid "Video resolution sent"
-msgstr ""
-
-#: ../gtk/call_statistics.ui.h:11
-msgid "RTP profile"
-msgstr ""
-
-#: ../gtk/call_statistics.ui.h:12
-msgid "Call statistics and information"
-msgstr "Statistické a ostatní údaje o hovoru"
-
-#: ../gtk/chatroom_frame.ui.h:1
-msgid "Send"
-msgstr "Odeslat"
-
-#: ../gtk/conf_frame.ui.h:1
-msgid "End conference"
-msgstr "Ukončit konferenci"
-
-#: ../gtk/config-uri.ui.h:1
-msgid "Specifying a remote configuration URI"
-msgstr ""
-
-#: ../gtk/config-uri.ui.h:2
-msgid ""
-"This dialog allows to set an http or https address when configuration is to be fetched at startup.\n"
-"Please enter or modify the configuration URI below. After clicking OK, Linphone will restart automatically in order to fetch and take into account the new configuration. "
-msgstr ""
-
-#: ../gtk/contact.ui.h:2
-msgid "SIP Address"
-msgstr "SIP adresa"
-
-#: ../gtk/contact.ui.h:3
-msgid "Show this contact presence status"
-msgstr "U tohoto kontaktu zobrazovat stav přítomnosti"
-
-#: ../gtk/contact.ui.h:4
-msgid "Allow this contact to see my presence status"
-msgstr "Dovolit tomuto kontaktu, aby viděl můj stav přítomnosti"
-
-#: ../gtk/contact.ui.h:5
-msgid "Contact information"
-msgstr "Informace o kontaktu"
-
-#: ../gtk/dscp_settings.ui.h:1
-msgid "DSCP settings"
-msgstr ""
-
-#: ../gtk/dscp_settings.ui.h:2
-msgid "SIP"
-msgstr "SIP"
-
-#: ../gtk/dscp_settings.ui.h:3
-msgid "Audio RTP stream"
-msgstr "RTP proud zvuku"
-
-#: ../gtk/dscp_settings.ui.h:4
-msgid "Video RTP stream"
-msgstr "RTP proud obrazu"
-
-#: ../gtk/dscp_settings.ui.h:5
-msgid "Set DSCP values (in hexadecimal)"
-msgstr "Nastavit hodnoty DSCP (šestnáctkově)"
-
-#: ../gtk/in_call_frame.ui.h:1
-msgid "Click here to set the speakers volume"
-msgstr ""
-
-#: ../gtk/in_call_frame.ui.h:5
-msgid "Record this call to an audio file"
-msgstr "Nahrát tento hovor do zvukového souboru"
-
-#: ../gtk/in_call_frame.ui.h:6
-msgid "Video"
-msgstr "Obraz"
-
-#: ../gtk/in_call_frame.ui.h:8
-msgid "Mute"
-msgstr "Ztišit"
-
-#: ../gtk/in_call_frame.ui.h:9
-msgid "Transfer"
-msgstr "Přepojit"
-
-#: ../gtk/in_call_frame.ui.h:12
-msgid "In call"
-msgstr "Telefonuje se"
-
-#: ../gtk/in_call_frame.ui.h:13
-msgid "Duration"
-msgstr "Délka"
-
-#: ../gtk/in_call_frame.ui.h:14
-msgid "Call quality rating"
-msgstr "Hodnocení kvality hovoru"
-
-#: ../gtk/ldap.ui.h:1
-msgid "LDAP Settings"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:2 ../gtk/parameters.ui.h:90
-msgid "Server address:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:3 ../gtk/parameters.ui.h:91
-msgid "Authentication method:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:4 ../gtk/parameters.ui.h:92 ../gtk/setup_wizard.ui.h:17
-msgid "Username:"
-msgstr "Uživatelské jméno:"
-
-#: ../gtk/ldap.ui.h:5 ../gtk/password.ui.h:4 ../gtk/setup_wizard.ui.h:18
-msgid "Password:"
-msgstr "Heslo:"
-
-#: ../gtk/ldap.ui.h:6
-msgid "Use TLS Connection"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:7
-msgid "Not yet available"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:8
-msgid "Connection"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:9
-msgid "Bind DN"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:10
-msgid "Authname"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:11
-msgid "Realm"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:12
-msgid "SASL"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:13
-msgid "Base object:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:15
-#, no-c-format
-msgid "Filter (%s for name):"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:16
-msgid "Name Attribute:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:17
-msgid "SIP address attribute:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:18
-msgid "Attributes to query:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:19
-msgid "Search"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:20
-msgid "Timeout for search:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:21
-msgid "Max results:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:22
-msgid "Follow Aliases"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:23
-msgid "Miscellaneous"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:24
-msgid "ANONYMOUS"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:25
-msgid "SIMPLE"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:26
-msgid "DIGEST-MD5"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:27
-msgid "NTLM"
-msgstr ""
-
-#: ../gtk/login_frame.ui.h:1 ../gtk/tunnel_config.ui.h:7
-msgid "Username"
-msgstr "Uživatelské jméno"
-
-#: ../gtk/login_frame.ui.h:2 ../gtk/tunnel_config.ui.h:8
-msgid "Password"
-msgstr "Heslo"
-
-#: ../gtk/login_frame.ui.h:3
-msgid "Internet connection:"
-msgstr "Připojení k Internetu:"
-
-#: ../gtk/login_frame.ui.h:4
-msgid "Automatically log me in"
-msgstr "Přihlašovat mě automaticky"
-
-#: ../gtk/login_frame.ui.h:5 ../gtk/password.ui.h:3
-msgid "UserID"
-msgstr "Identifikátor uživatele"
-
-#: ../gtk/login_frame.ui.h:6
-msgid "Login information"
-msgstr "Informace o přihlášení"
-
-#: ../gtk/login_frame.ui.h:7
-msgid "Welcome!"
-msgstr ""
-
-#: ../gtk/login_frame.ui.h:8
-msgid "ADSL"
-msgstr "ADSL"
-
-#: ../gtk/login_frame.ui.h:9
-msgid "Fiber Channel"
-msgstr "Fiber Channel"
-
-#: ../gtk/log.ui.h:1
-msgid "Linphone debug window"
-msgstr "Ladicí okno Linphonu"
-
-#: ../gtk/log.ui.h:2
-msgid "Scroll to end"
-msgstr "Přejít na konec"
-
-#: ../gtk/main.ui.h:1
-msgid "Default"
-msgstr "Výchozí"
-
-#: ../gtk/main.ui.h:2
-msgid "Delete"
-msgstr "Smazat"
-
-#: ../gtk/main.ui.h:3
-msgid "_Options"
-msgstr "V_olby"
-
-#: ../gtk/main.ui.h:4
-msgid "Set configuration URI"
-msgstr ""
-
-#: ../gtk/main.ui.h:5
-msgid "Always start video"
-msgstr "Vždy spustit obraz"
-
-#: ../gtk/main.ui.h:6
-msgid "Enable self-view"
-msgstr "Zobrazovat sám sebe"
-
-#: ../gtk/main.ui.h:7
-msgid "Show keypad"
-msgstr ""
-
-#: ../gtk/main.ui.h:8
-msgid "Import contacts from vCards"
-msgstr ""
-
-#: ../gtk/main.ui.h:9
-msgid "Export contacts as vCards"
-msgstr ""
-
-#: ../gtk/main.ui.h:10
-msgid "_Help"
-msgstr "Nápo_věda"
-
-#: ../gtk/main.ui.h:11
-msgid "Show debug window"
-msgstr "Zobrazit ladicí okno"
-
-#: ../gtk/main.ui.h:12
-msgid "_Homepage"
-msgstr "_Domovská stránka"
-
-#: ../gtk/main.ui.h:13
-msgid "Check _Updates"
-msgstr "Vyhledat akt_ualizace"
-
-#: ../gtk/main.ui.h:14
-msgid "Account assistant"
-msgstr "Průvodce účtem"
-
-#: ../gtk/main.ui.h:16
-msgid "SIP address or phone number:"
-msgstr "SIP adresa nebo telefonní číslo:"
-
-#: ../gtk/main.ui.h:17
-msgid "Initiate a new call"
-msgstr "Zahájit nový hovor"
-
-#: ../gtk/main.ui.h:18
-msgid "Contacts"
-msgstr "Kontakty"
-
-#: ../gtk/main.ui.h:19
-msgid "Search"
-msgstr "Hledat"
-
-#: ../gtk/main.ui.h:20
-msgid "Add contacts from directory"
-msgstr "Přidat kontakty z adresáře"
-
-#: ../gtk/main.ui.h:21
-msgid "Add contact"
-msgstr "Přidat kontakt"
-
-#: ../gtk/main.ui.h:22
-msgid "Clear call history"
-msgstr ""
-
-#: ../gtk/main.ui.h:24
-msgid "My current identity:"
-msgstr "Moje současná totožnost:"
-
-#: ../gtk/main.ui.h:25
-msgid "Autoanswer is enabled"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:1
-msgid "anonymous"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:2
-msgid "GSSAPI"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:3
-msgid "SASL"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:4
-msgid "default soundcard"
-msgstr "implicitní zvuková karta"
-
-#: ../gtk/parameters.ui.h:5
-msgid "a sound card"
-msgstr "zvuková karta"
-
-#: ../gtk/parameters.ui.h:6
-msgid "default camera"
-msgstr "implicitní kamera"
-
-#: ../gtk/parameters.ui.h:7
-msgid "CIF"
-msgstr "CIF"
-
-#: ../gtk/parameters.ui.h:8
-msgid "Audio codecs"
-msgstr "Kodeky zvuku"
-
-#: ../gtk/parameters.ui.h:9
-msgid "Video codecs"
-msgstr "Kodeky obrazu"
-
-#: ../gtk/parameters.ui.h:10
-msgid "C"
-msgstr "C"
-
-#: ../gtk/parameters.ui.h:11
-msgid "SIP (UDP)"
-msgstr "SIP (UDP)"
-
-#: ../gtk/parameters.ui.h:12
-msgid "SIP (TCP)"
-msgstr "SIP (TCP)"
-
-#: ../gtk/parameters.ui.h:13
-msgid "SIP (TLS)"
-msgstr "SIP (TLS)"
-
-#: ../gtk/parameters.ui.h:14
-msgid "Settings"
-msgstr "Nastavení"
-
-#: ../gtk/parameters.ui.h:15
-msgid "This section defines your SIP address when not using a SIP account"
-msgstr "Tento oddíl určuje vaši SIP adresu, když se nepoužívá žádný účet"
-
-#: ../gtk/parameters.ui.h:16
-msgid "Your display name (eg: John Doe):"
-msgstr "Vaše zobrazované jméno (např. Jan Novák):"
-
-#: ../gtk/parameters.ui.h:17
-msgid "Your username:"
-msgstr "Vaše uživatelské jméno:"
-
-#: ../gtk/parameters.ui.h:18
-msgid "Your resulting SIP address:"
-msgstr "Vaše výsledná SIP adresa:"
-
-#: ../gtk/parameters.ui.h:19
-msgid "Default identity"
-msgstr "Implicitní totožnost"
-
-#: ../gtk/parameters.ui.h:20
-msgid "Wizard"
-msgstr "Průvodce"
-
-#: ../gtk/parameters.ui.h:21
-msgid "Add"
-msgstr "Přidat"
-
-#: ../gtk/parameters.ui.h:22
-msgid "Edit"
-msgstr "Upravit"
-
-#: ../gtk/parameters.ui.h:23
-msgid "Remove"
-msgstr "Odstranit"
-
-#: ../gtk/parameters.ui.h:24
-msgid "Proxy accounts"
-msgstr "Proxy účty"
-
-#: ../gtk/parameters.ui.h:25
-msgid "Erase all passwords"
-msgstr "Vymazat všechna hesla"
-
-#: ../gtk/parameters.ui.h:26
-msgid "Privacy"
-msgstr "Soukromí"
-
-#: ../gtk/parameters.ui.h:27
-msgid "Automatically answer when a call is received"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:28
-msgid "Delay before answering (ms)"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:29
-msgid "Auto-answer"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:30
-msgid "Manage SIP Accounts"
-msgstr "Nastavení SIP účtů"
-
-#: ../gtk/parameters.ui.h:31
-msgid "Ring sound:"
-msgstr "Vyzvánění:"
-
-#: ../gtk/parameters.ui.h:32
-msgid "ALSA special device (optional):"
-msgstr "Zvláštní ALSA zařízení (volitelné):"
-
-#: ../gtk/parameters.ui.h:33
-msgid "Capture device:"
-msgstr "Zařízení pro nahrávání:"
-
-#: ../gtk/parameters.ui.h:34
-msgid "Ring device:"
-msgstr "Zařízení pro vyzvánění:"
-
-#: ../gtk/parameters.ui.h:35
-msgid "Playback device:"
-msgstr "Zařízení pro přehrávání:"
-
-#: ../gtk/parameters.ui.h:36
-msgid "Enable echo cancellation"
-msgstr "Zapnout potlačení ozvěny"
-
-#: ../gtk/parameters.ui.h:37
-msgid "Audio"
-msgstr "Zvuk"
-
-#: ../gtk/parameters.ui.h:38
-msgid "Video input device:"
-msgstr "Vstupní zařízení obrazu:"
-
-#: ../gtk/parameters.ui.h:39
-msgid "Preferred video resolution:"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:40
-msgid "Video output method:"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:41
-msgid "Show camera preview"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:42
-msgid "Video preset:"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:43
-msgid "Preferred video framerate:"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:44
-msgid "0 stands for \"unlimited\""
-msgstr "0 znamená „neomezeno“"
-
-#: ../gtk/parameters.ui.h:45
-msgid "Video"
-msgstr "Obraz"
-
-#: ../gtk/parameters.ui.h:46
-msgid "Upload speed limit in Kbit/sec:"
-msgstr "Omezení odchozí rychlosti (kb/s):"
-
-#: ../gtk/parameters.ui.h:47
-msgid "Download speed limit in Kbit/sec:"
-msgstr "Omezení příchozí rychlosti (kb/s):"
-
-#: ../gtk/parameters.ui.h:48
-msgid "Enable adaptive rate control"
-msgstr "Zapnout přizpůsobující se řízení rychlosti"
-
-#: ../gtk/parameters.ui.h:49
-msgid ""
-"Adaptive rate control is a technique to dynamically guess the available "
-"bandwidth during a call."
-msgstr "Přizpůsobující se řízení rychlosti je technika dynamického odhadu dostupného pásma během hovoru."
-
-#: ../gtk/parameters.ui.h:50
-msgid "Bandwidth control"
-msgstr "Využití šířky pásma"
-
-#: ../gtk/parameters.ui.h:51
-msgid "Multimedia settings"
-msgstr "Nastavení multimédií"
-
-#: ../gtk/parameters.ui.h:52
-msgid "Set Maximum Transmission Unit:"
-msgstr "Nastavit MTU (největší přenositelná zpráva):"
-
-#: ../gtk/parameters.ui.h:53
-msgid "Send DTMFs as SIP info"
-msgstr "Odesílat tóny DTMF jako SIP INFO zprávy"
-
-#: ../gtk/parameters.ui.h:54
-msgid "Allow IPv6"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:55
-msgid "Transport"
-msgstr "Přenos"
-
-#: ../gtk/parameters.ui.h:56
-msgid "SIP/UDP port"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:58
-msgid "Random"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:59
-msgid "SIP/TCP port"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:60
-msgid "Audio RTP/UDP:"
-msgstr "Zvukový RTP/UDP:"
-
-#: ../gtk/parameters.ui.h:61
-msgid "Fixed"
-msgstr "Stálý"
-
-#: ../gtk/parameters.ui.h:62
-msgid "Video RTP/UDP:"
-msgstr "Obrazový RTP/UDP:"
-
-#: ../gtk/parameters.ui.h:63
-msgid "Tunnel"
-msgstr "Tunel"
-
-#: ../gtk/parameters.ui.h:64
-msgid "DSCP fields"
-msgstr "Položky DSCP"
-
-#: ../gtk/parameters.ui.h:65
-msgid "Network protocol and ports"
-msgstr "Síťové protokoly a porty"
-
-#: ../gtk/parameters.ui.h:66
-msgid "Direct connection to the Internet"
-msgstr "Přímé připojení do Internetu"
-
-#: ../gtk/parameters.ui.h:67
-msgid "Behind NAT / Firewall (specify gateway IP )"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:68
-msgid "Behind NAT / Firewall (use STUN to resolve)"
-msgstr "Za NAT/firewallem (adresu určí STUN)"
-
-#: ../gtk/parameters.ui.h:69
-msgid "Behind NAT / Firewall (use ICE)"
-msgstr "Za NAT/firewallem (adresu určí ICE)"
-
-#: ../gtk/parameters.ui.h:70
-msgid "Behind NAT / Firewall (use uPnP)"
-msgstr "Za NAT/firewallem (adresu určí UPnP)"
-
-#: ../gtk/parameters.ui.h:71
-msgid "Public IP address:"
-msgstr "Veřejná IP adresa:"
-
-#: ../gtk/parameters.ui.h:72
-msgid "Stun server:"
-msgstr "STUN server:"
-
-#: ../gtk/parameters.ui.h:73
-msgid "NAT and Firewall"
-msgstr "NAT a firewall"
-
-#: ../gtk/parameters.ui.h:74
-msgid "Media encryption type"
-msgstr "Druh šifrování médií"
-
-#: ../gtk/parameters.ui.h:75
-msgid "Use Lime for outgoing chat messages"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:76
-msgid "Media encryption is mandatory"
-msgstr "Šifrování médií je povinné"
-
-#: ../gtk/parameters.ui.h:77
-msgid "Mandatory"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:78
-msgid "Preferred"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:79
-msgid "Encryption"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:80
-msgid "Network settings"
-msgstr "Nastavení sítě"
-
-#: ../gtk/parameters.ui.h:81 ../gtk/tunnel_config.ui.h:4
-msgid "Enable"
-msgstr "Povolit"
-
-#: ../gtk/parameters.ui.h:82 ../gtk/tunnel_config.ui.h:5
-msgid "Disable"
-msgstr "Zakázat"
-
-#: ../gtk/parameters.ui.h:83
-msgid "Audio codecs"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:84
-msgid "Video codecs"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:85
-msgid "Codecs"
-msgstr "Kodeky"
-
-#: ../gtk/parameters.ui.h:86
-msgid "Language"
-msgstr "Jazyk"
-
-#: ../gtk/parameters.ui.h:87
-msgid "Show advanced settings"
-msgstr "Zobrazit podrobnější nastavení"
-
-#: ../gtk/parameters.ui.h:88
-msgid "Level"
-msgstr "Úroveň"
-
-#: ../gtk/parameters.ui.h:89
-msgid "User interface"
-msgstr "Uživatelské rozhraní"
-
-#: ../gtk/parameters.ui.h:93
-msgid "LDAP Account setup"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:94
-msgid "LDAP"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:95
-msgid "Done"
-msgstr "Hotovo"
-
-#: ../gtk/password.ui.h:1
-msgid "Linphone - Authentication required"
-msgstr "Linphone – Ověření totožnosti vyžadováno"
-
-#: ../gtk/password.ui.h:2
-msgid "Please enter the domain password"
-msgstr "Prosím, zadejte heslo pro doménu"
-
-#: ../gtk/provisioning-fetch.ui.h:1
-msgid "Configuring..."
-msgstr ""
-
-#: ../gtk/provisioning-fetch.ui.h:2
-msgid "Please wait while fetching configuration from server..."
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:1
-msgid "SIP account configuration assistant"
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:2
-msgid ""
-"Welcome!\n"
-"This assistant will help you to use a SIP account for your calls."
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:4
-msgid "Welcome to the account setup assistant"
-msgstr "Vítejte v průvodci nastavení účtu"
-
-#: ../gtk/setup_wizard.ui.h:5
-msgid "Create an account on linphone.org"
-msgstr "Vytvořit účet na linphone.org"
-
-#: ../gtk/setup_wizard.ui.h:6
-msgid "I have already a linphone.org account and I just want to use it"
-msgstr "Účet na linphone.org již mám a chci jej použít"
-
-#: ../gtk/setup_wizard.ui.h:7
-msgid "I have already a sip account and I just want to use it"
-msgstr "SIP účet již mám a chci jej použít"
-
-#: ../gtk/setup_wizard.ui.h:8
-msgid "I want to specify a remote configuration URI"
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:9
-msgid "Account setup assistant"
-msgstr "Průvodce nastavením účtu"
-
-#: ../gtk/setup_wizard.ui.h:10
-msgid "Enter your account information"
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:11
-msgid "Username*"
-msgstr "Uživatelské jméno*"
-
-#: ../gtk/setup_wizard.ui.h:12
-msgid "Password*"
-msgstr "Heslo*"
-
-#: ../gtk/setup_wizard.ui.h:13
-msgid "Domain*"
-msgstr "Doména*"
-
-#: ../gtk/setup_wizard.ui.h:14
-msgid "Proxy"
-msgstr "Proxy"
-
-#: ../gtk/setup_wizard.ui.h:15
-msgid "Configure your account (step 1/1)"
-msgstr "Nastavit účet (krok 1/1)"
-
-#: ../gtk/setup_wizard.ui.h:16
-msgid "Enter your linphone.org username"
-msgstr "Zadejte uživatelské jméno na linphone.org"
-
-#: ../gtk/setup_wizard.ui.h:19
-msgid "Enter your sip username (step 1/1)"
-msgstr "Zadejte vaše sipové uživatelské jméno (krok 1/1)"
-
-#: ../gtk/setup_wizard.ui.h:20
-msgid "(*) Required fields"
-msgstr "(*) Povinné položky"
-
-#: ../gtk/setup_wizard.ui.h:21
-msgid "Email: (*)"
-msgstr "E-mail: (*)"
-
-#: ../gtk/setup_wizard.ui.h:22
-msgid "Username: (*)"
-msgstr "Uživatelské jméno: (*)"
-
-#: ../gtk/setup_wizard.ui.h:23
-msgid "Password: (*)"
-msgstr "Heslo: (*)"
-
-#: ../gtk/setup_wizard.ui.h:24
-msgid "Confirm your password: (*)"
-msgstr "Potvrďte heslo: (*)"
-
-#: ../gtk/setup_wizard.ui.h:25
-msgid "Keep me informed with linphone updates"
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:26
-msgid "Enter account information (step 1/2)"
-msgstr "Zadejte údaje o účtu (krok 1/2)"
-
-#: ../gtk/setup_wizard.ui.h:27
-msgid "Your account is being created, please wait."
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:28
-msgid "Account creation in progress"
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:29
-msgid ""
-"Please validate your account by clicking on the link we just sent you by email.\n"
-"Then come back here and press Next button."
-msgstr "Prosím, ověřte svůj účet tak, že kliknete na odkaz, který jsme vám právě zaslali e-mailem.\nPak se sem vraťte a stiskněte tlačítko Další."
-
-#: ../gtk/setup_wizard.ui.h:31
-msgid "Validation (step 2/2)"
-msgstr "Ověření (krok 2/2)"
-
-#: ../gtk/setup_wizard.ui.h:32
-msgid "Checking if your account is been validated, please wait."
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:33
-msgid "Account validation check in progress"
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:34
-msgid ""
-"Error, account not validated, username already used or server unreachable.\n"
-"Please go back and try again."
-msgstr "Došlo k chybě (účet nebyl ověřen, uživatelské jméno již existuje nebo server není dostupný).\nProsím, vraťte se a zkoste to znovu."
-
-#: ../gtk/setup_wizard.ui.h:36
-msgid "Error"
-msgstr "Chyba"
-
-#: ../gtk/setup_wizard.ui.h:37
-msgid "Thank you. Your account is now configured and ready for use."
-msgstr "Děkujeme vám. Váš účet je nyní nastaven a připraven k použití."
-
-#: ../gtk/sip_account.ui.h:1
-msgid "Linphone - Configure a SIP account"
-msgstr "Linphone – Nastav SIP účet"
-
-#: ../gtk/sip_account.ui.h:2
-msgid "Your SIP identity:"
-msgstr "Vaše SIP totožnost:"
-
-#: ../gtk/sip_account.ui.h:3
-msgid "Looks like sip:@"
-msgstr "Vypadá jako sip:@"
-
-#: ../gtk/sip_account.ui.h:4
-msgid "sip:"
-msgstr "sip:"
-
-#: ../gtk/sip_account.ui.h:5
-msgid "SIP Proxy address:"
-msgstr "Adresa SIP proxy:"
-
-#: ../gtk/sip_account.ui.h:6
-msgid "Looks like sip:"
-msgstr "Vypadá jako sip:"
-
-#: ../gtk/sip_account.ui.h:7
-msgid "Registration duration (sec):"
-msgstr "Registrační období (s):"
-
-#: ../gtk/sip_account.ui.h:8
-msgid "Contact params (optional):"
-msgstr ""
-
-#: ../gtk/sip_account.ui.h:9
-msgid "AVPF regular RTCP interval (sec):"
-msgstr ""
-
-#: ../gtk/sip_account.ui.h:10
-msgid "Route (optional):"
-msgstr "Směrování (volitelné):"
-
-#: ../gtk/sip_account.ui.h:11
-msgid "Transport"
-msgstr ""
-
-#: ../gtk/sip_account.ui.h:12
-msgid "Register"
-msgstr "Zaregistrovat se"
-
-#: ../gtk/sip_account.ui.h:13
-msgid "Publish presence information"
-msgstr "Zveřejnit stav přítomnosti"
-
-#: ../gtk/sip_account.ui.h:14
-msgid "Enable AVPF"
-msgstr ""
-
-#: ../gtk/sip_account.ui.h:15
-msgid "Configure a SIP account"
-msgstr "Nastavit SIP účet"
-
-#: ../gtk/tunnel_config.ui.h:1
-msgid "Configure VoIP tunnel"
-msgstr "Nastavit VoIP tunel"
-
-#: ../gtk/tunnel_config.ui.h:2
-msgid "Host"
-msgstr "Stroj"
-
-#: ../gtk/tunnel_config.ui.h:3
-msgid "Port"
-msgstr "Port"
-
-#: ../gtk/tunnel_config.ui.h:6
-msgid "Configure tunnel"
-msgstr "Nastavit tunel"
-
-#: ../gtk/tunnel_config.ui.h:9
-msgid "Configure http proxy (optional)"
-msgstr "Nastavit HTTP proxy (volitelné)"
-
-#: ../gtk/waiting.ui.h:2
-msgid "Please wait"
-msgstr "Prosím, čekejte"
-
-#: ../coreapi/linphonecore.c:1594
-msgid "Ready"
-msgstr "Připraven."
-
-#: ../coreapi/linphonecore.c:2685
-msgid "Configuring"
-msgstr ""
-
-#. must be known at that time
-#: ../coreapi/linphonecore.c:3084
-msgid "Contacting"
-msgstr "Navazuje se spojení"
-
-#: ../coreapi/linphonecore.c:3089
-msgid "Could not call"
-msgstr "Nelze volat"
-
-#: ../coreapi/linphonecore.c:3228
-msgid "Sorry, we have reached the maximum number of simultaneous calls"
-msgstr "Je nám líto, ale byl dosažen maximální počet současných hovorů."
-
-#: ../coreapi/linphonecore.c:3388
-msgid "is contacting you"
-msgstr "vás volá"
-
-#: ../coreapi/linphonecore.c:3389
-msgid " and asked autoanswer."
-msgstr " a požaduje automatickou zvednutí."
-
-#: ../coreapi/linphonecore.c:3506
-msgid "Modifying call parameters..."
-msgstr "Upravují se parametry hovoru…"
-
-#: ../coreapi/linphonecore.c:3898
-msgid "Connected."
-msgstr "Připojeno."
-
-#: ../coreapi/linphonecore.c:3923
-msgid "Call aborted"
-msgstr "Hovor přerušen"
-
-#: ../coreapi/linphonecore.c:4125
-msgid "Could not pause the call"
-msgstr "Hovor nebylo možné odložit"
-
-#: ../coreapi/linphonecore.c:4128
-msgid "Pausing the current call..."
-msgstr "Současný hovor se odkládá…"
-
-#: ../coreapi/misc.c:441
-msgid "Stun lookup in progress..."
-msgstr "Hledá se adresa pomocí STUN…"
-
-#: ../coreapi/misc.c:657
-msgid "ICE local candidates gathering in progress..."
-msgstr "Shromažďují se místní kandidáti ICE…"
-
-#: ../coreapi/friend.c:48
-msgid "Online"
-msgstr "Připojen"
-
-#: ../coreapi/friend.c:51
-msgid "Busy"
-msgstr "Zaneprázdněn"
-
-#: ../coreapi/friend.c:54
-msgid "Be right back"
-msgstr "Za chvíli se vrátím"
-
-#: ../coreapi/friend.c:57
-msgid "Away"
-msgstr "Pryč"
-
-#: ../coreapi/friend.c:60
-msgid "On the phone"
-msgstr "U telefonu"
-
-#: ../coreapi/friend.c:63
-msgid "Out to lunch"
-msgstr "Na obědě"
-
-#: ../coreapi/friend.c:66
-msgid "Do not disturb"
-msgstr "Nerušit"
-
-#: ../coreapi/friend.c:69
-msgid "Moved"
-msgstr "Přestěhoval jsem se"
-
-#: ../coreapi/friend.c:72
-msgid "Using another messaging service"
-msgstr "Používám jinou službu přenosu zpráv"
-
-#: ../coreapi/friend.c:75
-msgid "Offline"
-msgstr "Odpojen"
-
-#: ../coreapi/friend.c:78
-msgid "Pending"
-msgstr "Čekám"
-
-#: ../coreapi/friend.c:81
-msgid "Vacation"
-msgstr ""
-
-#: ../coreapi/friend.c:83
-msgid "Unknown status"
-msgstr ""
-
-#: ../coreapi/proxy.c:339
-msgid ""
-"The sip proxy address you entered is invalid, it must start with \"sip:\" "
-"followed by a hostname."
-msgstr "Adresa SIP proxy, kterou jste zadali, není platná. Musí začínat na „sip:“ a pak musí následovat jméno stroje."
-
-#: ../coreapi/proxy.c:345
-msgid ""
-"The sip identity you entered is invalid.\n"
-"It should look like sip:username@proxydomain, such as sip:alice@example.net"
-msgstr "SIP identita, kterou jste zadali, není platná.\nMěla by mít tvar sip:uživatel@proxydoména, například sip:alice@example.net"
-
-#: ../coreapi/proxy.c:979
-msgid "Looking for telephone number destination..."
-msgstr "Vyhledává se umístění čísla…"
-
-#: ../coreapi/proxy.c:983
-msgid "Could not resolve this number."
-msgstr "Toto číslo nelze vyhledat."
-
-#: ../coreapi/proxy.c:1437
-#, c-format
-msgid "Could not login as %s"
-msgstr "Nelze se přihlásit jako %s"
-
-#: ../coreapi/proxy.c:1522
-#, c-format
-msgid "Refreshing on %s..."
-msgstr ""
-
-#: ../coreapi/callbacks.c:415
-msgid "Remote ringing."
-msgstr "Vyzvání na druhé straně."
-
-#: ../coreapi/callbacks.c:427
-msgid "Remote ringing..."
-msgstr "Vyzvání na druhé straně…"
-
-#: ../coreapi/callbacks.c:450
-msgid "Early media."
-msgstr "Časná média."
-
-#: ../coreapi/callbacks.c:480
-#, c-format
-msgid "Call answered by %s"
-msgstr ""
-
-#: ../coreapi/callbacks.c:522
-msgid "Call resumed."
-msgstr "Hovor obnoven."
-
-#: ../coreapi/callbacks.c:577
-msgid "Incompatible, check codecs or security settings..."
-msgstr "Není slučitelné. Zkontrolujte nastavení kodeků a zabezpečení…"
-
-#: ../coreapi/callbacks.c:582 ../coreapi/callbacks.c:918
-msgid "Incompatible media parameters."
-msgstr "Neslučitelné parametry médií."
-
-#: ../coreapi/callbacks.c:607
-msgid "We have been resumed."
-msgstr "Byli jsme obnoveni."
-
-#. we are being paused
-#: ../coreapi/callbacks.c:615
-msgid "We are paused by other party."
-msgstr "Byli jsme odloženi protistranou."
-
-#: ../coreapi/callbacks.c:625
-msgid "Call is updated by remote."
-msgstr "Hovor byl aktualizován protistranou."
-
-#: ../coreapi/callbacks.c:794
-msgid "Call terminated."
-msgstr "Hovor ukončen."
-
-#: ../coreapi/callbacks.c:822
-msgid "User is busy."
-msgstr "Uživatel je zaneprázdněn."
-
-#: ../coreapi/callbacks.c:823
-msgid "User is temporarily unavailable."
-msgstr "Uživatel je dočasně nedostupný."
-
-#. char *retrymsg=_("%s. Retry after %i minute(s).");
-#: ../coreapi/callbacks.c:825
-msgid "User does not want to be disturbed."
-msgstr "Uživatel si nepřeje být rušen."
-
-#: ../coreapi/callbacks.c:826
-msgid "Call declined."
-msgstr "Volání odmítnuto."
-
-#: ../coreapi/callbacks.c:841
-msgid "Request timeout."
-msgstr ""
-
-#: ../coreapi/callbacks.c:872
-msgid "Redirected"
-msgstr "Přesměrováno"
-
-#: ../coreapi/callbacks.c:922
-msgid "Call failed."
-msgstr "Volání se nezdařilo."
-
-#: ../coreapi/callbacks.c:1000
-#, c-format
-msgid "Registration on %s successful."
-msgstr "Registrace na %s byla úspěšná."
-
-#: ../coreapi/callbacks.c:1001
-#, c-format
-msgid "Unregistration on %s done."
-msgstr "Odregistrování z %s hotovo."
-
-#: ../coreapi/callbacks.c:1019
-msgid "no response timeout"
-msgstr "odpověď nedorazila včas"
-
-#: ../coreapi/callbacks.c:1022
-#, c-format
-msgid "Registration on %s failed: %s"
-msgstr "Registrace na %s selhala: %s"
-
-#: ../coreapi/callbacks.c:1029
-msgid "Service unavailable, retrying"
-msgstr ""
-
-#. if encryption is DTLS, no status to be displayed
-#: ../coreapi/linphonecall.c:204
-#, c-format
-msgid "Authentication token is %s"
-msgstr "Klíč k ověření totožnosti je %s"
-
-#: ../coreapi/linphonecall.c:1663
-#, c-format
-msgid "Call parameters could not be modified: %s."
-msgstr ""
-
-#: ../coreapi/linphonecall.c:1665
-msgid "Call parameters were successfully modified."
-msgstr ""
-
-#: ../coreapi/linphonecall.c:4636
-#, c-format
-msgid "You have missed %i call."
-msgid_plural "You have missed %i calls."
-msgstr[0] "Máte %i zmeškaný hovor."
-msgstr[1] "Máte %i zmeškané hovory."
-msgstr[2] "Máte %i zmeškaných hovorů."
-
-#: ../coreapi/call_log.c:223
-msgid "aborted"
-msgstr ""
-
-#: ../coreapi/call_log.c:226
-msgid "completed"
-msgstr ""
-
-#: ../coreapi/call_log.c:229
-msgid "missed"
-msgstr ""
-
-#: ../coreapi/call_log.c:232
-msgid "unknown"
-msgstr ""
-
-#: ../coreapi/call_log.c:234
-#, c-format
-msgid ""
-"%s at %s\n"
-"From: %s\n"
-"To: %s\n"
-"Status: %s\n"
-"Duration: %i mn %i sec\n"
-msgstr ""
-
-#: ../coreapi/call_log.c:235
-msgid "Outgoing call"
-msgstr ""
-
-#: ../gtk/videowindow.c:72
-#, c-format
-msgid "Cannot play %s."
-msgstr ""
-
-#: ../gtk/videowindow.c:252
-msgid "Take screenshot"
-msgstr ""
diff --git a/po/de.po b/po/de.po
deleted file mode 100644
index 50aef056b..000000000
--- a/po/de.po
+++ /dev/null
@@ -1,2094 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-#
-# Translators:
-# andreas, 2014
-# andreas, 2014
-# Ettore Atalan , 2015-2016
-# Gerhard Stengel , 2011-2012
-# Simon Morlat , 2001
-msgid ""
-msgstr ""
-"Project-Id-Version: linphone-gtk\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-19 14:01+0200\n"
-"PO-Revision-Date: 2016-05-10 09:58+0000\n"
-"Last-Translator: Belledonne Communications \n"
-"Language-Team: German (http://www.transifex.com/belledonne-communications/linphone-gtk/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: ../gtk/calllogs.c:178
-#, c-format
-msgid "Call %s"
-msgstr "„%s“ anrufen"
-
-#: ../gtk/calllogs.c:179
-#, c-format
-msgid "Send text to %s"
-msgstr "Text zu „%s“ schicken"
-
-#: ../gtk/calllogs.c:181
-#, c-format
-msgid "Add %s to your contact list"
-msgstr "%s zu Ihrer Kontaktliste hinzufügen"
-
-#: ../gtk/calllogs.c:245 ../gtk/main.ui.h:23
-msgid "Recent calls"
-msgstr "Letzte Gespräche"
-
-#: ../gtk/calllogs.c:260
-#, c-format
-msgid "Recent calls (%i)"
-msgstr "Letzte Anrufe (%i)"
-
-#: ../gtk/calllogs.c:334
-msgid "n/a"
-msgstr "n/v"
-
-#: ../gtk/calllogs.c:337
-msgid "Aborted"
-msgstr "Abgebrochen"
-
-#: ../gtk/calllogs.c:340
-msgid "Missed"
-msgstr "Verpasst"
-
-#: ../gtk/calllogs.c:343
-msgid "Declined"
-msgstr "Abgewiesen"
-
-#: ../gtk/calllogs.c:349
-#, c-format
-msgid "%i minute"
-msgid_plural "%i minutes"
-msgstr[0] "%i Minute"
-msgstr[1] "%i Minuten"
-
-#: ../gtk/calllogs.c:352
-#, c-format
-msgid "%i second"
-msgid_plural "%i seconds"
-msgstr[0] "%i Sekunde"
-msgstr[1] "%i Sekunden"
-
-#: ../gtk/calllogs.c:357
-#, c-format
-msgid ""
-"%s\tQuality: %s\n"
-"%s\t%s\t"
-msgstr "%s\tQualität: %s\n%s\t%s\t"
-
-#: ../gtk/calllogs.c:361
-#, c-format
-msgid "%s\t%s"
-msgstr "%s\t%s"
-
-#: ../gtk/conference.c:38 ../gtk/in_call_frame.ui.h:11
-msgid "Conference"
-msgstr "Konferenz"
-
-#: ../gtk/conference.c:46
-msgid "Me"
-msgstr "Eigenes Telefon"
-
-#: ../gtk/support.c:49 ../gtk/support.c:73 ../gtk/support.c:102
-#, c-format
-msgid "Couldn't find pixmap file: %s"
-msgstr "Pixmapdatei %s kann nicht gefunden werden."
-
-#: ../gtk/chat.c:207 ../gtk/chat.c:265
-msgid "Sending..."
-msgstr "Sendevorgang..."
-
-#: ../gtk/chat.c:224 ../gtk/chat.c:274
-msgid "Message not sent"
-msgstr "Nachricht nicht gesendet"
-
-#: ../gtk/chat.c:498
-msgid "Copy"
-msgstr "Kopieren"
-
-#: ../gtk/main.c:134
-msgid "log to stdout some debug information while running."
-msgstr "Ausgabe von Debug-Informationen auf stdout während der Laufzeit"
-
-#: ../gtk/main.c:135
-msgid "display version and exit."
-msgstr "Version anzeigen und beenden."
-
-#: ../gtk/main.c:136
-msgid "path to a file to write logs into."
-msgstr "Pfad zu einer Datei, in die Protokolle geschrieben werden."
-
-#: ../gtk/main.c:137
-msgid "Start linphone with video disabled."
-msgstr "Linphone mit ausgeschaltetem Video starten."
-
-#: ../gtk/main.c:138
-msgid "Start only in the system tray, do not show the main interface."
-msgstr "Nur im Systemabschnitt der Kontrollleiste starten, aber das Hauptfenster nicht zeigen."
-
-#: ../gtk/main.c:139
-msgid "address to call right now"
-msgstr "Im Moment anzurufende Adresse"
-
-#: ../gtk/main.c:140
-msgid ""
-"Specifiy a working directory (should be the base of the installation, eg: "
-"c:\\Program Files\\Linphone)"
-msgstr "Geben Sie einen Arbeitsordner an (sollte der Installationsordner sein, z. B. C:\\Programme\\Linphone)"
-
-#: ../gtk/main.c:141
-msgid "Configuration file"
-msgstr "Konfigurationsdatei"
-
-#: ../gtk/main.c:142
-msgid "Run the audio assistant"
-msgstr "Starte den Audio-Assistent"
-
-#: ../gtk/main.c:143
-msgid "Run self test and exit 0 if succeed"
-msgstr "Selbsttest ausführen und mit 0 beenden, wenn erfolgreich"
-
-#: ../gtk/main.c:1058
-#, c-format
-msgid ""
-"%s would like to add you to his/her contact list.\n"
-"Would you add him/her to your contact list and allow him/her to see your presence status?\n"
-"If you answer no, this person will be temporarily blacklisted."
-msgstr ""
-
-#: ../gtk/main.c:1135
-#, c-format
-msgid ""
-"Please enter your password for username %s\n"
-" at realm %s:"
-msgstr "Bitte geben Sie Ihr Passwort für den Benutzernamen %s\n für Bereich %s ein:"
-
-#: ../gtk/main.c:1244
-msgid "Call error"
-msgstr "Anruf fehlgeschlagen"
-
-#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942
-msgid "Call ended"
-msgstr "Anruf beendet"
-
-#: ../gtk/main.c:1250 ../coreapi/call_log.c:235
-msgid "Incoming call"
-msgstr "Eingehender Anruf"
-
-#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2
-msgid "Answer"
-msgstr "Annehmen"
-
-#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3
-msgid "Decline"
-msgstr "Abweisen"
-
-#: ../gtk/main.c:1262
-msgid "Call paused"
-msgstr "Anruf wird gehalten"
-
-#: ../gtk/main.c:1262
-#, c-format
-msgid "by %s"
-msgstr "von %s"
-
-#: ../gtk/main.c:1336
-#, c-format
-msgid "%s proposed to start video. Do you accept ?"
-msgstr "%s schlägt vor, eine Videoübertragung zu starten. Nehmen Sie an?"
-
-#: ../gtk/main.c:1502
-msgid "Website link"
-msgstr "Website-Verknüpfung"
-
-#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1
-msgid "Linphone"
-msgstr "Linphone"
-
-#: ../gtk/main.c:1562
-msgid "A video internet phone"
-msgstr "Ein Internet-Video-Telefon"
-
-#: ../gtk/main.c:1624
-#, c-format
-msgid "%s (Default)"
-msgstr "%s (Vorgabe)"
-
-#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080
-#, c-format
-msgid "We are transferred to %s"
-msgstr "Vermittlung nach %s"
-
-#: ../gtk/main.c:2008
-msgid ""
-"No sound cards have been detected on this computer.\n"
-"You won't be able to send or receive audio calls."
-msgstr "Auf diesem Rechner können keine Soundkarten gefunden werden.\nSie können keine Audio-Anrufe tätigen oder entgegennehmen."
-
-#: ../gtk/main.c:2173
-msgid "A free SIP video-phone"
-msgstr "Ein freies SIP-Video-Telefon"
-
-#: ../gtk/main.c:2292
-#, c-format
-msgid "Hello\n"
-msgstr "Hallo\n"
-
-#: ../gtk/friendlist.c:460
-msgid "Add to addressbook"
-msgstr "Zum Adressbuch hinzufügen"
-
-#: ../gtk/friendlist.c:626
-#, c-format
-msgid "Search in %s directory"
-msgstr "Im %s-Verzeichnis suchen"
-
-#: ../gtk/friendlist.c:773
-msgid "Invalid sip contact !"
-msgstr "Ungültiger SIP-Kontakt!"
-
-#: ../gtk/friendlist.c:820
-#, c-format
-msgid "Add a new contact"
-msgstr "Neuen Kontakt hinzufügen"
-
-#: ../gtk/friendlist.c:823
-#, c-format
-msgid "Edit contact '%s'"
-msgstr "Kontakt „%s“ bearbeiten"
-
-#: ../gtk/friendlist.c:824
-#, c-format
-msgid "Delete contact '%s'"
-msgstr "Kontakt „%s“ löschen"
-
-#: ../gtk/friendlist.c:825
-#, c-format
-msgid "Delete chat history of '%s'"
-msgstr "Lösche Gesprächshistorie von '%s'"
-
-#: ../gtk/friendlist.c:862
-#, c-format
-msgid "Add new contact from %s directory"
-msgstr "Einen neuen Kontakt aus dem %s-Verzeichnis hinzufügen"
-
-#: ../gtk/propertybox.c:592 ../gtk/contact.ui.h:1
-msgid "Name"
-msgstr "Name"
-
-#: ../gtk/propertybox.c:598
-msgid "Rate (Hz)"
-msgstr "Rate (Hz)"
-
-#: ../gtk/propertybox.c:604
-msgid "Status"
-msgstr "Status"
-
-#: ../gtk/propertybox.c:617
-msgid "IP Bitrate (kbit/s)"
-msgstr "IP Bit-Rate (kbit/s)"
-
-#: ../gtk/propertybox.c:628
-msgid "Parameters"
-msgstr "Parameter"
-
-#: ../gtk/propertybox.c:670 ../gtk/propertybox.c:824
-msgid "Enabled"
-msgstr "Freigegeben"
-
-#: ../gtk/propertybox.c:672 ../gtk/propertybox.c:824 ../gtk/parameters.ui.h:57
-msgid "Disabled"
-msgstr "Gesperrt"
-
-#: ../gtk/propertybox.c:902
-msgid "Account"
-msgstr "Konto"
-
-#: ../gtk/propertybox.c:1170
-msgid "English"
-msgstr "Englisch"
-
-#: ../gtk/propertybox.c:1171
-msgid "French"
-msgstr "Französisch"
-
-#: ../gtk/propertybox.c:1172
-msgid "Swedish"
-msgstr "Schwedisch"
-
-#: ../gtk/propertybox.c:1173
-msgid "Italian"
-msgstr "Italienisch"
-
-#: ../gtk/propertybox.c:1174
-msgid "Spanish"
-msgstr "Spanisch"
-
-#: ../gtk/propertybox.c:1175
-msgid "Brazilian Portugese"
-msgstr "Brasilianisches Portugiesisch"
-
-#: ../gtk/propertybox.c:1176
-msgid "Polish"
-msgstr "Polnisch"
-
-#: ../gtk/propertybox.c:1177
-msgid "German"
-msgstr "Deutsch"
-
-#: ../gtk/propertybox.c:1178
-msgid "Russian"
-msgstr "Russisch"
-
-#: ../gtk/propertybox.c:1179
-msgid "Japanese"
-msgstr "Japanisch"
-
-#: ../gtk/propertybox.c:1180
-msgid "Dutch"
-msgstr "Niederländisch"
-
-#: ../gtk/propertybox.c:1181
-msgid "Hungarian"
-msgstr "Ungarisch"
-
-#: ../gtk/propertybox.c:1182
-msgid "Czech"
-msgstr "Tschechisch"
-
-#: ../gtk/propertybox.c:1183
-msgid "Chinese"
-msgstr "Chinesisch"
-
-#: ../gtk/propertybox.c:1184
-msgid "Traditional Chinese"
-msgstr "Traditionelles Chinesisch"
-
-#: ../gtk/propertybox.c:1185
-msgid "Norwegian"
-msgstr "Norwegisch"
-
-#: ../gtk/propertybox.c:1186
-msgid "Hebrew"
-msgstr "Hebräisch"
-
-#: ../gtk/propertybox.c:1187
-msgid "Serbian"
-msgstr "Serbisch"
-
-#: ../gtk/propertybox.c:1188
-msgid "Arabic"
-msgstr "Arabisch"
-
-#: ../gtk/propertybox.c:1189
-msgid "Turkish"
-msgstr "Türkisch"
-
-#: ../gtk/propertybox.c:1246
-msgid ""
-"You need to restart linphone for the new language selection to take effect."
-msgstr "Linphone muss neu gestartet werden, damit die neue Spracheinstellung wirksam wird."
-
-#: ../gtk/propertybox.c:1332
-msgid "None"
-msgstr "Keinen"
-
-#: ../gtk/propertybox.c:1336
-msgid "SRTP"
-msgstr "SRTP"
-
-#: ../gtk/propertybox.c:1342
-msgid "DTLS"
-msgstr "DTLS"
-
-#: ../gtk/propertybox.c:1349
-msgid "ZRTP"
-msgstr "ZRTP"
-
-#: ../gtk/update.c:80
-#, c-format
-msgid ""
-"A more recent version is availalble from %s.\n"
-"Would you like to open a browser to download it ?"
-msgstr "Eine neuere Version ist von %s verfügbar.\nMöchten Sie einen Browser zum Herunterladen öffnen?"
-
-#: ../gtk/update.c:91
-msgid "You are running the lastest version."
-msgstr "Sie verwenden bereits die aktuellste Version."
-
-#: ../gtk/buddylookup.c:85
-msgid "Firstname, Lastname"
-msgstr "Vorname, Nachname"
-
-#: ../gtk/buddylookup.c:160
-msgid "Error communicating with server."
-msgstr "Fehler bei der Kommunikation mit dem Server."
-
-#: ../gtk/buddylookup.c:164
-msgid "Connecting..."
-msgstr "Verbinden..."
-
-#: ../gtk/buddylookup.c:168
-msgid "Connected"
-msgstr "Verbunden"
-
-#: ../gtk/buddylookup.c:172
-msgid "Receiving data..."
-msgstr "Daten werden empfangen..."
-
-#: ../gtk/buddylookup.c:180
-#, c-format
-msgid "Found %i contact"
-msgid_plural "Found %i contacts"
-msgstr[0] "%i Kontakt gefunden"
-msgstr[1] "%i Kontakte gefunden"
-
-#: ../gtk/setupwizard.c:219
-msgid "Username is already in use!"
-msgstr "Benutzername wird bereits verwendet!"
-
-#: ../gtk/setupwizard.c:223
-msgid "Failed to check username availability. Please try again later."
-msgstr "Fehler beim Überprüfen der Benutzernamenverfügbarkeit. Bitte versuchen Sie es später erneut."
-
-#: ../gtk/incall_view.c:67 ../gtk/incall_view.c:87
-#, c-format
-msgid "Call #%i"
-msgstr "Anruf #%i"
-
-#: ../gtk/incall_view.c:145
-#, c-format
-msgid "Transfer to call #%i with %s"
-msgstr "Vermittlung zum Anruf #%i mit %s"
-
-#: ../gtk/incall_view.c:202 ../gtk/incall_view.c:205
-msgid "Not used"
-msgstr "Nicht verwendet"
-
-#: ../gtk/incall_view.c:212
-msgid "ICE not activated"
-msgstr "ICE nicht aktiviert"
-
-#: ../gtk/incall_view.c:214
-msgid "ICE failed"
-msgstr "ICE fehlgeschlagen"
-
-#: ../gtk/incall_view.c:216
-msgid "ICE in progress"
-msgstr "ICE läuft"
-
-#: ../gtk/incall_view.c:218
-msgid "Going through one or more NATs"
-msgstr "Ein oder mehrere NATs werden durchquert"
-
-#: ../gtk/incall_view.c:220
-msgid "Direct"
-msgstr "Direkt"
-
-#: ../gtk/incall_view.c:222
-msgid "Through a relay server"
-msgstr "Über einen Relay-Server"
-
-#: ../gtk/incall_view.c:230
-msgid "uPnP not activated"
-msgstr "uPnP nicht aktiviert"
-
-#: ../gtk/incall_view.c:232
-msgid "uPnP in progress"
-msgstr "uPnP läuft"
-
-#: ../gtk/incall_view.c:234
-msgid "uPnp not available"
-msgstr "uPnp nicht verfügbar"
-
-#: ../gtk/incall_view.c:236
-msgid "uPnP is running"
-msgstr "uPnP läuft"
-
-#: ../gtk/incall_view.c:238
-msgid "uPnP failed"
-msgstr "uPnP fehlgeschlagen"
-
-#: ../gtk/incall_view.c:248 ../gtk/incall_view.c:249
-msgid "Direct or through server"
-msgstr "Direkt oder über Server"
-
-#: ../gtk/incall_view.c:258 ../gtk/incall_view.c:270
-#, c-format
-msgid ""
-"download: %f\n"
-"upload: %f (kbit/s)"
-msgstr "Herunterladen: %f\nHochladen: %f (kbit/s)"
-
-#: ../gtk/incall_view.c:263 ../gtk/incall_view.c:265
-#, c-format
-msgid "%ix%i @ %f fps"
-msgstr "%ix%i @ %f bps"
-
-#: ../gtk/incall_view.c:295
-#, c-format
-msgid "%.3f seconds"
-msgstr "%.3f Sekunden"
-
-#: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10
-#: ../gtk/videowindow.c:248
-msgid "Hang up"
-msgstr "Auflegen"
-
-#: ../gtk/incall_view.c:558
-msgid "Calling..."
-msgstr "Verbindungsaufbau..."
-
-#: ../gtk/incall_view.c:561 ../gtk/incall_view.c:793
-msgid "00:00:00"
-msgstr "00:00:00"
-
-#: ../gtk/incall_view.c:572
-msgid "Incoming call"
-msgstr "Eingehender Anruf"
-
-#: ../gtk/incall_view.c:609
-msgid "good"
-msgstr "gut"
-
-#: ../gtk/incall_view.c:611
-msgid "average"
-msgstr "durchschnittlich"
-
-#: ../gtk/incall_view.c:613
-msgid "poor"
-msgstr "schlecht"
-
-#: ../gtk/incall_view.c:615
-msgid "very poor"
-msgstr "sehr schlecht"
-
-#: ../gtk/incall_view.c:617
-msgid "too bad"
-msgstr "zu schlecht"
-
-#: ../gtk/incall_view.c:618 ../gtk/incall_view.c:634
-msgid "unavailable"
-msgstr "nicht verfügbar"
-
-#: ../gtk/incall_view.c:732
-msgid "Secured by SRTP"
-msgstr "Gesichert durch SRTP"
-
-#: ../gtk/incall_view.c:738
-msgid "Secured by DTLS"
-msgstr "Gesichert durch DTLS"
-
-#: ../gtk/incall_view.c:744
-#, c-format
-msgid "Secured by ZRTP - [auth token: %s]"
-msgstr "Gesichert durch ZRTP - [Auth.-Token: %s]"
-
-#: ../gtk/incall_view.c:748
-msgid "Set unverified"
-msgstr "Auf „Ungeprüft“ setzen"
-
-#: ../gtk/incall_view.c:748
-msgid "Set verified"
-msgstr "Auf „Geprüft“ setzen"
-
-#: ../gtk/incall_view.c:788
-msgid "In conference"
-msgstr "In Konferenz"
-
-#: ../gtk/incall_view.c:788
-msgid "In call"
-msgstr "Im Gespräch"
-
-#: ../gtk/incall_view.c:825
-msgid "Paused call"
-msgstr "Gehaltener Anruf"
-
-#: ../gtk/incall_view.c:862
-msgid "Call ended."
-msgstr "Anruf beendet."
-
-#: ../gtk/incall_view.c:893
-msgid "Transfer in progress"
-msgstr "Vermittlung läuft"
-
-#: ../gtk/incall_view.c:896
-msgid "Transfer done."
-msgstr "Vermittlung abgeschlossen."
-
-#: ../gtk/incall_view.c:899
-msgid "Transfer failed."
-msgstr "Vermittlung fehlgeschlagen."
-
-#: ../gtk/incall_view.c:930
-msgid "Resume"
-msgstr "Fortsetzen"
-
-#: ../gtk/incall_view.c:930 ../gtk/in_call_frame.ui.h:7
-msgid "Pause"
-msgstr "Halten"
-
-#: ../gtk/incall_view.c:996
-#, c-format
-msgid ""
-"Recording into\n"
-"%s %s"
-msgstr "Recording into\n%s %s"
-
-#: ../gtk/incall_view.c:996
-msgid "(Paused)"
-msgstr "(pausiert)"
-
-#: ../gtk/loginframe.c:75
-#, c-format
-msgid "Please enter login information for %s"
-msgstr "Bitte geben Sie die Anmeldeinformationen für %s ein."
-
-#: ../gtk/config-fetching.c:57
-#, c-format
-msgid "fetching from %s"
-msgstr "abrufen von %s"
-
-#: ../gtk/config-fetching.c:73
-#, c-format
-msgid "Downloading of remote configuration from %s failed."
-msgstr "Herunterladen der Fernkonfiguration von %s fehlgeschlagen"
-
-#: ../gtk/audio_assistant.c:103
-msgid "No voice detected"
-msgstr "Keine Stimme ermittelt"
-
-#: ../gtk/audio_assistant.c:104
-msgid "Too low"
-msgstr "zu gering"
-
-#: ../gtk/audio_assistant.c:105
-msgid "Good"
-msgstr "gut"
-
-#: ../gtk/audio_assistant.c:106
-msgid "Too loud"
-msgstr "zu laut"
-
-#: ../gtk/audio_assistant.c:188
-msgid "Did you hear three beeps ?"
-msgstr "Haben Sie die drei Signaltöne gehört?"
-
-#: ../gtk/audio_assistant.c:301 ../gtk/audio_assistant.c:306
-msgid "Sound preferences not found "
-msgstr "Toneinstellungen nicht gefunden"
-
-#: ../gtk/audio_assistant.c:315
-msgid "Cannot launch system sound control "
-msgstr "Systemtonsteuerung kann nicht gestartet werden"
-
-#: ../gtk/audio_assistant.c:327
-msgid ""
-"Welcome!\n"
-"This assistant will help you to configure audio settings for Linphone"
-msgstr "Willkommen!\nDieser Assistent hilft Ihnen die Audioeinstellungen für Linphone einzurichten."
-
-#: ../gtk/audio_assistant.c:337
-msgid "Capture device"
-msgstr "Aufnahmegerät"
-
-#: ../gtk/audio_assistant.c:338
-msgid "Recorded volume"
-msgstr "aufgenommene Lautstärke"
-
-#: ../gtk/audio_assistant.c:342
-msgid "No voice"
-msgstr "Keine Stimme"
-
-#: ../gtk/audio_assistant.c:343 ../gtk/audio_assistant.c:382
-msgid "System sound preferences"
-msgstr "Systemtoneinstellungen"
-
-#: ../gtk/audio_assistant.c:378
-msgid "Playback device"
-msgstr "Wiedergabegerät"
-
-#: ../gtk/audio_assistant.c:379
-msgid "Play three beeps"
-msgstr "spiele drei Pieptöne ab"
-
-#: ../gtk/audio_assistant.c:412
-msgid "Press the record button and say some words"
-msgstr "Drücken Sie den Aufnahmeknopf und sagen Sie etwas"
-
-#: ../gtk/audio_assistant.c:413
-msgid "Listen to your record voice"
-msgstr "Hören Sie das Aufgenommene"
-
-#: ../gtk/audio_assistant.c:414 ../gtk/conf_frame.ui.h:2
-#: ../gtk/in_call_frame.ui.h:4
-msgid "Record"
-msgstr "Aufnahme"
-
-#: ../gtk/audio_assistant.c:415
-msgid "Play"
-msgstr "Wiedergabe"
-
-#: ../gtk/audio_assistant.c:442
-msgid "Let's start Linphone now"
-msgstr "Linphone jetzt starten"
-
-#: ../gtk/audio_assistant.c:513
-msgid "Audio Assistant"
-msgstr "Audio-Assistant"
-
-#: ../gtk/audio_assistant.c:523 ../gtk/main.ui.h:15
-msgid "Audio assistant"
-msgstr "Audio-Assistant"
-
-#: ../gtk/audio_assistant.c:528
-msgid "Mic Gain calibration"
-msgstr "Einrichtung MIkrofonverstärker"
-
-#: ../gtk/audio_assistant.c:534
-msgid "Speaker volume calibration"
-msgstr "Einrichtung Lautstärke"
-
-#: ../gtk/audio_assistant.c:539
-msgid "Record and Play"
-msgstr "aufnehmen und abspielen"
-
-#: ../gtk/audio_assistant.c:544 ../gtk/setup_wizard.ui.h:38
-msgid "Terminating"
-msgstr "Fertigstellen"
-
-#: ../gtk/about.ui.h:1
-msgid "About Linphone"
-msgstr "Über Linphone"
-
-#: ../gtk/about.ui.h:2
-msgid "(C) Belledonne Communications, 2010\n"
-msgstr "(C) Belledonne Communications, 2010\n"
-
-#: ../gtk/about.ui.h:4
-msgid "An internet video phone using the standard SIP (rfc3261) protocol."
-msgstr "Ein Internet-Video-Telefon, das das Standard-SIP-Protokoll (RFC3261) verwendet."
-
-#: ../gtk/about.ui.h:5
-msgid ""
-"fr: Simon Morlat\n"
-"en: Simon Morlat and Delphine Perreau\n"
-"it: Alberto Zanoni \n"
-"de: Jean-Jacques Sarton \n"
-"sv: Daniel Nylander \n"
-"es: Jesus Benitez \n"
-"ja: YAMAGUCHI YOSHIYA \n"
-"pt_BR: Rafael Caesar Lenzi \n"
-"pl: Robert Nasiadek \n"
-"cs: Petr Pisar \n"
-"hu: anonymous\n"
-"he: Eli Zaretskii \n"
-msgstr "fr: Simon Morlat\nen: Simon Morlat and Delphine Perreau\nit: Alberto Zanoni \nde: Jean-Jacques Sarton \nsv: Daniel Nylander \nes: Jesus Benitez \nja: YAMAGUCHI YOSHIYA \npt_BR: Rafael Caesar Lenzi \npl: Robert Nasiadek \ncs: Petr Pisar \nhu: anonymous\nhe: Eli Zaretskii \n"
-
-#: ../gtk/buddylookup.ui.h:1
-msgid "Search contacts in directory"
-msgstr "Kontakte im Verzeichnis suchen"
-
-#: ../gtk/buddylookup.ui.h:2
-msgid "Add to my list"
-msgstr "Zur Kontaktliste hinzufügen"
-
-#: ../gtk/buddylookup.ui.h:3
-msgid "Search somebody"
-msgstr "Kontaktsuche"
-
-#: ../gtk/callee_frame.ui.h:1
-msgid "Callee name"
-msgstr "Name des Angerufenen"
-
-#: ../gtk/call_logs.ui.h:1
-msgid "Call history"
-msgstr "Anrufchronik"
-
-#: ../gtk/call_logs.ui.h:2
-msgid "Clear all"
-msgstr "Alle löschen"
-
-#: ../gtk/call_logs.ui.h:3
-msgid "Call back"
-msgstr "Anrufen"
-
-#: ../gtk/call_statistics.ui.h:1
-msgid "Call statistics"
-msgstr "Anrufstatistik"
-
-#: ../gtk/call_statistics.ui.h:2
-msgid "Audio codec"
-msgstr "Audiocodec"
-
-#: ../gtk/call_statistics.ui.h:3
-msgid "Video codec"
-msgstr "Videocodec"
-
-#: ../gtk/call_statistics.ui.h:4
-msgid "Audio IP bandwidth usage"
-msgstr "Genutzte IP-Bandbreite Audio"
-
-#: ../gtk/call_statistics.ui.h:5
-msgid "Audio Media connectivity"
-msgstr "Audio-Konnektivität"
-
-#: ../gtk/call_statistics.ui.h:6
-msgid "Video IP bandwidth usage"
-msgstr "Genutzte IP-Bandbreite Video"
-
-#: ../gtk/call_statistics.ui.h:7
-msgid "Video Media connectivity"
-msgstr "Video-Konnektivität"
-
-#: ../gtk/call_statistics.ui.h:8
-msgid "Round trip time"
-msgstr "Umlaufzeit"
-
-#: ../gtk/call_statistics.ui.h:9
-msgid "Video resolution received"
-msgstr "Videoauflösung empfangen"
-
-#: ../gtk/call_statistics.ui.h:10
-msgid "Video resolution sent"
-msgstr "Videoauflösung gesendet"
-
-#: ../gtk/call_statistics.ui.h:11
-msgid "RTP profile"
-msgstr "RTP-Profil"
-
-#: ../gtk/call_statistics.ui.h:12
-msgid "Call statistics and information"
-msgstr "Anrufstatistik und -informationen"
-
-#: ../gtk/chatroom_frame.ui.h:1
-msgid "Send"
-msgstr "Senden"
-
-#: ../gtk/conf_frame.ui.h:1
-msgid "End conference"
-msgstr "Konferenz beenden"
-
-#: ../gtk/config-uri.ui.h:1
-msgid "Specifying a remote configuration URI"
-msgstr "Eine URI zur FErnkonfiguration angeben"
-
-#: ../gtk/config-uri.ui.h:2
-msgid ""
-"This dialog allows to set an http or https address when configuration is to be fetched at startup.\n"
-"Please enter or modify the configuration URI below. After clicking OK, Linphone will restart automatically in order to fetch and take into account the new configuration. "
-msgstr "Diese Maske erlaubt Ihnen für das Laden der Konfiguration beim Programmstart eine http- oder https-Adresse anzugeben.\nBitte geben Sie unten die Konfigurations-URI ein oder ändern diese. Nach dem Bestätigen mit OK wird Linphone automatisch neustarten, um die neuen Einstellungen zu übernehmen."
-
-#: ../gtk/contact.ui.h:2
-msgid "SIP Address"
-msgstr "SIP-Adresse"
-
-#: ../gtk/contact.ui.h:3
-msgid "Show this contact presence status"
-msgstr "Anwesenheitsstatus dieses Kontakts zeigen"
-
-#: ../gtk/contact.ui.h:4
-msgid "Allow this contact to see my presence status"
-msgstr "Diesem Kontakt erlauben, meinen Anwesenheitsstatus zu sehen"
-
-#: ../gtk/contact.ui.h:5
-msgid "Contact information"
-msgstr "Kontaktinformationen"
-
-#: ../gtk/dscp_settings.ui.h:1
-msgid "DSCP settings"
-msgstr "DSCP-Einstellungen"
-
-#: ../gtk/dscp_settings.ui.h:2
-msgid "SIP"
-msgstr "SIP"
-
-#: ../gtk/dscp_settings.ui.h:3
-msgid "Audio RTP stream"
-msgstr "Audio-RTP-Datenstrom"
-
-#: ../gtk/dscp_settings.ui.h:4
-msgid "Video RTP stream"
-msgstr "Video-RTP-Datenstrom"
-
-#: ../gtk/dscp_settings.ui.h:5
-msgid "Set DSCP values (in hexadecimal)"
-msgstr "DSCP-Werte setzen (hexadezimal)"
-
-#: ../gtk/in_call_frame.ui.h:1
-msgid "Click here to set the speakers volume"
-msgstr "Klicken Sie hier, um die Lautsprecherlautstärke festzulegen"
-
-#: ../gtk/in_call_frame.ui.h:5
-msgid "Record this call to an audio file"
-msgstr "Speichere den Anruf in eine Audio-Datei"
-
-#: ../gtk/in_call_frame.ui.h:6
-msgid "Video"
-msgstr "Video"
-
-#: ../gtk/in_call_frame.ui.h:8
-msgid "Mute"
-msgstr "Stumm"
-
-#: ../gtk/in_call_frame.ui.h:9
-msgid "Transfer"
-msgstr "Vermittlung"
-
-#: ../gtk/in_call_frame.ui.h:12
-msgid "In call"
-msgstr "Im Gespräch"
-
-#: ../gtk/in_call_frame.ui.h:13
-msgid "Duration"
-msgstr "Dauer"
-
-#: ../gtk/in_call_frame.ui.h:14
-msgid "Call quality rating"
-msgstr "Bewertung der Verbindungsqualität"
-
-#: ../gtk/ldap.ui.h:1
-msgid "LDAP Settings"
-msgstr "LDAP-Einstellungen"
-
-#: ../gtk/ldap.ui.h:2 ../gtk/parameters.ui.h:90
-msgid "Server address:"
-msgstr "Server-Adresse"
-
-#: ../gtk/ldap.ui.h:3 ../gtk/parameters.ui.h:91
-msgid "Authentication method:"
-msgstr "Authentifizierungsmethode"
-
-#: ../gtk/ldap.ui.h:4 ../gtk/parameters.ui.h:92 ../gtk/setup_wizard.ui.h:17
-msgid "Username:"
-msgstr "Benutzername:"
-
-#: ../gtk/ldap.ui.h:5 ../gtk/password.ui.h:4 ../gtk/setup_wizard.ui.h:18
-msgid "Password:"
-msgstr "Passwort:"
-
-#: ../gtk/ldap.ui.h:6
-msgid "Use TLS Connection"
-msgstr "TLS-Verbindung verwenden"
-
-#: ../gtk/ldap.ui.h:7
-msgid "Not yet available"
-msgstr "Aktuell nicht verfügbar"
-
-#: ../gtk/ldap.ui.h:8
-msgid "Connection"
-msgstr "Verbindung"
-
-#: ../gtk/ldap.ui.h:9
-msgid "Bind DN"
-msgstr "Bind-DN"
-
-#: ../gtk/ldap.ui.h:10
-msgid "Authname"
-msgstr "Authentifizierungsname"
-
-#: ../gtk/ldap.ui.h:11
-msgid "Realm"
-msgstr "Bereich"
-
-#: ../gtk/ldap.ui.h:12
-msgid "SASL"
-msgstr "SASL"
-
-#: ../gtk/ldap.ui.h:13
-msgid "Base object:"
-msgstr "Basis-Objekt:"
-
-#: ../gtk/ldap.ui.h:15
-#, no-c-format
-msgid "Filter (%s for name):"
-msgstr "Filter (%s nach Name):"
-
-#: ../gtk/ldap.ui.h:16
-msgid "Name Attribute:"
-msgstr "Name:"
-
-#: ../gtk/ldap.ui.h:17
-msgid "SIP address attribute:"
-msgstr "SIP-Adresse:"
-
-#: ../gtk/ldap.ui.h:18
-msgid "Attributes to query:"
-msgstr "Sucheigenschaft:"
-
-#: ../gtk/ldap.ui.h:19
-msgid "Search"
-msgstr "Suche"
-
-#: ../gtk/ldap.ui.h:20
-msgid "Timeout for search:"
-msgstr "Zeitüberschreitung bei der Suche:"
-
-#: ../gtk/ldap.ui.h:21
-msgid "Max results:"
-msgstr "Max Ergebnisse:"
-
-#: ../gtk/ldap.ui.h:22
-msgid "Follow Aliases"
-msgstr "folge Pseudonymen"
-
-#: ../gtk/ldap.ui.h:23
-msgid "Miscellaneous"
-msgstr "Sonstiges"
-
-#: ../gtk/ldap.ui.h:24
-msgid "ANONYMOUS"
-msgstr "ANONYMOUS"
-
-#: ../gtk/ldap.ui.h:25
-msgid "SIMPLE"
-msgstr "SIMPLE"
-
-#: ../gtk/ldap.ui.h:26
-msgid "DIGEST-MD5"
-msgstr "DIGEST-MD5"
-
-#: ../gtk/ldap.ui.h:27
-msgid "NTLM"
-msgstr "NTLM"
-
-#: ../gtk/login_frame.ui.h:1 ../gtk/tunnel_config.ui.h:7
-msgid "Username"
-msgstr "Benutzername"
-
-#: ../gtk/login_frame.ui.h:2 ../gtk/tunnel_config.ui.h:8
-msgid "Password"
-msgstr "Passwort"
-
-#: ../gtk/login_frame.ui.h:3
-msgid "Internet connection:"
-msgstr "Internetverbindung:"
-
-#: ../gtk/login_frame.ui.h:4
-msgid "Automatically log me in"
-msgstr "Automatisch anmelden"
-
-#: ../gtk/login_frame.ui.h:5 ../gtk/password.ui.h:3
-msgid "UserID"
-msgstr "Benutzer-ID"
-
-#: ../gtk/login_frame.ui.h:6
-msgid "Login information"
-msgstr "Anmeldeinformationen"
-
-#: ../gtk/login_frame.ui.h:7
-msgid "Welcome!"
-msgstr "Willkommen!"
-
-#: ../gtk/login_frame.ui.h:8
-msgid "ADSL"
-msgstr "ADSL"
-
-#: ../gtk/login_frame.ui.h:9
-msgid "Fiber Channel"
-msgstr "Glasfaserkabel"
-
-#: ../gtk/log.ui.h:1
-msgid "Linphone debug window"
-msgstr "Linphone Debug-Fenster"
-
-#: ../gtk/log.ui.h:2
-msgid "Scroll to end"
-msgstr "Ans Ende rollen"
-
-#: ../gtk/main.ui.h:1
-msgid "Default"
-msgstr "Vorgabe"
-
-#: ../gtk/main.ui.h:2
-msgid "Delete"
-msgstr "Löschen"
-
-#: ../gtk/main.ui.h:3
-msgid "_Options"
-msgstr "_Optionen"
-
-#: ../gtk/main.ui.h:4
-msgid "Set configuration URI"
-msgstr "Konfigurations URI angeben"
-
-#: ../gtk/main.ui.h:5
-msgid "Always start video"
-msgstr "Video immer starten"
-
-#: ../gtk/main.ui.h:6
-msgid "Enable self-view"
-msgstr "Selbstansicht ein"
-
-#: ../gtk/main.ui.h:7
-msgid "Show keypad"
-msgstr "Tastatur anzeigen"
-
-#: ../gtk/main.ui.h:8
-msgid "Import contacts from vCards"
-msgstr "Kontakte aus vCards importieren"
-
-#: ../gtk/main.ui.h:9
-msgid "Export contacts as vCards"
-msgstr "Kontakte als vCards exportieren"
-
-#: ../gtk/main.ui.h:10
-msgid "_Help"
-msgstr "_Hilfe"
-
-#: ../gtk/main.ui.h:11
-msgid "Show debug window"
-msgstr "Debug-Fenster anzeigen"
-
-#: ../gtk/main.ui.h:12
-msgid "_Homepage"
-msgstr "_Homepage"
-
-#: ../gtk/main.ui.h:13
-msgid "Check _Updates"
-msgstr "Auf _Aktualisierungen überprüfen"
-
-#: ../gtk/main.ui.h:14
-msgid "Account assistant"
-msgstr "Konto-Einrichtungsassistent"
-
-#: ../gtk/main.ui.h:16
-msgid "SIP address or phone number:"
-msgstr "SIP-Adresse oder Telefonnummer:"
-
-#: ../gtk/main.ui.h:17
-msgid "Initiate a new call"
-msgstr "Einen neuen Anruf beginnen"
-
-#: ../gtk/main.ui.h:18
-msgid "Contacts"
-msgstr "Kontakte"
-
-#: ../gtk/main.ui.h:19
-msgid "Search"
-msgstr "Suchen"
-
-#: ../gtk/main.ui.h:20
-msgid "Add contacts from directory"
-msgstr "Kontakte aus einem Verzeichnis hinzufügen"
-
-#: ../gtk/main.ui.h:21
-msgid "Add contact"
-msgstr "Kontakt hinzufügen"
-
-#: ../gtk/main.ui.h:22
-msgid "Clear call history"
-msgstr "Anrufchronik löschen"
-
-#: ../gtk/main.ui.h:24
-msgid "My current identity:"
-msgstr "Aktuelle Identität:"
-
-#: ../gtk/main.ui.h:25
-msgid "Autoanswer is enabled"
-msgstr "Automatische Antwort ist aktiviert"
-
-#: ../gtk/parameters.ui.h:1
-msgid "anonymous"
-msgstr "Anonym"
-
-#: ../gtk/parameters.ui.h:2
-msgid "GSSAPI"
-msgstr "GSSAPI"
-
-#: ../gtk/parameters.ui.h:3
-msgid "SASL"
-msgstr "SASL"
-
-#: ../gtk/parameters.ui.h:4
-msgid "default soundcard"
-msgstr "Standard-Soundkarte"
-
-#: ../gtk/parameters.ui.h:5
-msgid "a sound card"
-msgstr "eine Soundkarte"
-
-#: ../gtk/parameters.ui.h:6
-msgid "default camera"
-msgstr "Standard-Kamera"
-
-#: ../gtk/parameters.ui.h:7
-msgid "CIF"
-msgstr "CIF"
-
-#: ../gtk/parameters.ui.h:8
-msgid "Audio codecs"
-msgstr "Audiocodecs"
-
-#: ../gtk/parameters.ui.h:9
-msgid "Video codecs"
-msgstr "Videocodecs"
-
-#: ../gtk/parameters.ui.h:10
-msgid "C"
-msgstr "C"
-
-#: ../gtk/parameters.ui.h:11
-msgid "SIP (UDP)"
-msgstr "SIP (UDP)"
-
-#: ../gtk/parameters.ui.h:12
-msgid "SIP (TCP)"
-msgstr "SIP (TCP)"
-
-#: ../gtk/parameters.ui.h:13
-msgid "SIP (TLS)"
-msgstr "SIP (TLS)"
-
-#: ../gtk/parameters.ui.h:14
-msgid "Settings"
-msgstr "Einstellungen"
-
-#: ../gtk/parameters.ui.h:15
-msgid "This section defines your SIP address when not using a SIP account"
-msgstr "In diesem Bereich legen Sie Ihre SIP-Adresse fest, wenn Sie kein SIP-Konto verwenden."
-
-#: ../gtk/parameters.ui.h:16
-msgid "Your display name (eg: John Doe):"
-msgstr "Ihr angezeigter Name (z. B. Heinz Müller):"
-
-#: ../gtk/parameters.ui.h:17
-msgid "Your username:"
-msgstr "Ihr Benutzername:"
-
-#: ../gtk/parameters.ui.h:18
-msgid "Your resulting SIP address:"
-msgstr "Sich ergebende SIP-Adresse:"
-
-#: ../gtk/parameters.ui.h:19
-msgid "Default identity"
-msgstr "Standard-Identität"
-
-#: ../gtk/parameters.ui.h:20
-msgid "Wizard"
-msgstr "Assistent"
-
-#: ../gtk/parameters.ui.h:21
-msgid "Add"
-msgstr "Hinzufügen"
-
-#: ../gtk/parameters.ui.h:22
-msgid "Edit"
-msgstr "Bearbeiten"
-
-#: ../gtk/parameters.ui.h:23
-msgid "Remove"
-msgstr "Entfernen"
-
-#: ../gtk/parameters.ui.h:24
-msgid "Proxy accounts"
-msgstr "Proxy-Konten"
-
-#: ../gtk/parameters.ui.h:25
-msgid "Erase all passwords"
-msgstr "Alle Passwörter löschen"
-
-#: ../gtk/parameters.ui.h:26
-msgid "Privacy"
-msgstr "Privatsphäre"
-
-#: ../gtk/parameters.ui.h:27
-msgid "Automatically answer when a call is received"
-msgstr "Automatisch antworten, wenn ein Anruf eingeht"
-
-#: ../gtk/parameters.ui.h:28
-msgid "Delay before answering (ms)"
-msgstr "Verzögerung vor der Beantwortung (ms)"
-
-#: ../gtk/parameters.ui.h:29
-msgid "Auto-answer"
-msgstr "Automatische Antwort"
-
-#: ../gtk/parameters.ui.h:30
-msgid "Manage SIP Accounts"
-msgstr "SIP-Konten verwalten"
-
-#: ../gtk/parameters.ui.h:31
-msgid "Ring sound:"
-msgstr "Klingelton:"
-
-#: ../gtk/parameters.ui.h:32
-msgid "ALSA special device (optional):"
-msgstr "Spezielles ALSA-Gerät (optional):"
-
-#: ../gtk/parameters.ui.h:33
-msgid "Capture device:"
-msgstr "Aufnahmegerät:"
-
-#: ../gtk/parameters.ui.h:34
-msgid "Ring device:"
-msgstr "Gerät für Klingelton:"
-
-#: ../gtk/parameters.ui.h:35
-msgid "Playback device:"
-msgstr "Wiedergabegerät:"
-
-#: ../gtk/parameters.ui.h:36
-msgid "Enable echo cancellation"
-msgstr "Echounterdrückung ein"
-
-#: ../gtk/parameters.ui.h:37
-msgid "Audio"
-msgstr "Audio"
-
-#: ../gtk/parameters.ui.h:38
-msgid "Video input device:"
-msgstr "Video-Aufnahmegerät:"
-
-#: ../gtk/parameters.ui.h:39
-msgid "Preferred video resolution:"
-msgstr "Bevorzugte Videoauflösung:"
-
-#: ../gtk/parameters.ui.h:40
-msgid "Video output method:"
-msgstr "Methode zur Videoausgabe"
-
-#: ../gtk/parameters.ui.h:41
-msgid "Show camera preview"
-msgstr "Kameravorschau anzeigen"
-
-#: ../gtk/parameters.ui.h:42
-msgid "Video preset:"
-msgstr "Videovoreinstellung:"
-
-#: ../gtk/parameters.ui.h:43
-msgid "Preferred video framerate:"
-msgstr "Bevorzugte Videobildfrequenz:"
-
-#: ../gtk/parameters.ui.h:44
-msgid "0 stands for \"unlimited\""
-msgstr "0 bedeutet „unbegrenzt“"
-
-#: ../gtk/parameters.ui.h:45
-msgid "Video"
-msgstr "Video"
-
-#: ../gtk/parameters.ui.h:46
-msgid "Upload speed limit in Kbit/sec:"
-msgstr "Upload-Bandbreite (kbit/sec):"
-
-#: ../gtk/parameters.ui.h:47
-msgid "Download speed limit in Kbit/sec:"
-msgstr "Download-Bandbreite (kbit/sec):"
-
-#: ../gtk/parameters.ui.h:48
-msgid "Enable adaptive rate control"
-msgstr "Adaptive Ratenregelung ein"
-
-#: ../gtk/parameters.ui.h:49
-msgid ""
-"Adaptive rate control is a technique to dynamically guess the available "
-"bandwidth during a call."
-msgstr "Adaptive Ratenregelung ist eine Technik zur dynamischen Abschätzung der zur Verfügung stehenden Bandbreite während eines Anrufs."
-
-#: ../gtk/parameters.ui.h:50
-msgid "Bandwidth control"
-msgstr "Bandbreiten-Einstellungen"
-
-#: ../gtk/parameters.ui.h:51
-msgid "Multimedia settings"
-msgstr "Multimedia-Einstellungen"
-
-#: ../gtk/parameters.ui.h:52
-msgid "Set Maximum Transmission Unit:"
-msgstr "Maximum Transmission Unit setzen:"
-
-#: ../gtk/parameters.ui.h:53
-msgid "Send DTMFs as SIP info"
-msgstr "DTMFs als SIP-Info senden"
-
-#: ../gtk/parameters.ui.h:54
-msgid "Allow IPv6"
-msgstr "IPv6 erlauben"
-
-#: ../gtk/parameters.ui.h:55
-msgid "Transport"
-msgstr "Übertragung"
-
-#: ../gtk/parameters.ui.h:56
-msgid "SIP/UDP port"
-msgstr "SIP/UDP Port"
-
-#: ../gtk/parameters.ui.h:58
-msgid "Random"
-msgstr "Zufällig"
-
-#: ../gtk/parameters.ui.h:59
-msgid "SIP/TCP port"
-msgstr "SIP/TCP Port"
-
-#: ../gtk/parameters.ui.h:60
-msgid "Audio RTP/UDP:"
-msgstr "Audio RTP/UDP:"
-
-#: ../gtk/parameters.ui.h:61
-msgid "Fixed"
-msgstr "Fest"
-
-#: ../gtk/parameters.ui.h:62
-msgid "Video RTP/UDP:"
-msgstr "Video RTP/UDP:"
-
-#: ../gtk/parameters.ui.h:63
-msgid "Tunnel"
-msgstr "Tunnel"
-
-#: ../gtk/parameters.ui.h:64
-msgid "DSCP fields"
-msgstr "DSCP-Felder"
-
-#: ../gtk/parameters.ui.h:65
-msgid "Network protocol and ports"
-msgstr "Netzwerkprotokoll und Ports"
-
-#: ../gtk/parameters.ui.h:66
-msgid "Direct connection to the Internet"
-msgstr "Direkte Verbindung ins Internet"
-
-#: ../gtk/parameters.ui.h:67
-msgid "Behind NAT / Firewall (specify gateway IP )"
-msgstr "Hinter NAT / Firewall (Gateway IP angeben)"
-
-#: ../gtk/parameters.ui.h:68
-msgid "Behind NAT / Firewall (use STUN to resolve)"
-msgstr "Hinter NAT / Firewall (STUN verwenden)"
-
-#: ../gtk/parameters.ui.h:69
-msgid "Behind NAT / Firewall (use ICE)"
-msgstr "Hinter NAT / Firewall (ICE verwenden)"
-
-#: ../gtk/parameters.ui.h:70
-msgid "Behind NAT / Firewall (use uPnP)"
-msgstr "Hinter NAT / Firewall (uPnP verwenden)"
-
-#: ../gtk/parameters.ui.h:71
-msgid "Public IP address:"
-msgstr "Öffentliche IP-Adresse:"
-
-#: ../gtk/parameters.ui.h:72
-msgid "Stun server:"
-msgstr "STUN-Server:"
-
-#: ../gtk/parameters.ui.h:73
-msgid "NAT and Firewall"
-msgstr "NAT und Firewall"
-
-#: ../gtk/parameters.ui.h:74
-msgid "Media encryption type"
-msgstr "Verschlüsselungstyp der Medien"
-
-#: ../gtk/parameters.ui.h:75
-msgid "Use Lime for outgoing chat messages"
-msgstr "Lime für ausgehende Chatnachrichten verwenden"
-
-#: ../gtk/parameters.ui.h:76
-msgid "Media encryption is mandatory"
-msgstr "Medienverschlüsselung erzwingen"
-
-#: ../gtk/parameters.ui.h:77
-msgid "Mandatory"
-msgstr "Verbindlich"
-
-#: ../gtk/parameters.ui.h:78
-msgid "Preferred"
-msgstr "Bevorzugt"
-
-#: ../gtk/parameters.ui.h:79
-msgid "Encryption"
-msgstr "Verschlüsselung"
-
-#: ../gtk/parameters.ui.h:80
-msgid "Network settings"
-msgstr "Netzwerkeinstellungen"
-
-#: ../gtk/parameters.ui.h:81 ../gtk/tunnel_config.ui.h:4
-msgid "Enable"
-msgstr "Freigeben"
-
-#: ../gtk/parameters.ui.h:82 ../gtk/tunnel_config.ui.h:5
-msgid "Disable"
-msgstr "Sperren"
-
-#: ../gtk/parameters.ui.h:83
-msgid "Audio codecs"
-msgstr "Audiocodecs"
-
-#: ../gtk/parameters.ui.h:84
-msgid "Video codecs"
-msgstr "Videocodecs"
-
-#: ../gtk/parameters.ui.h:85
-msgid "Codecs"
-msgstr "Codecs"
-
-#: ../gtk/parameters.ui.h:86
-msgid "Language"
-msgstr "Sprache"
-
-#: ../gtk/parameters.ui.h:87
-msgid "Show advanced settings"
-msgstr "Fortgeschrittene Einstellungen anzeigen"
-
-#: ../gtk/parameters.ui.h:88
-msgid "Level"
-msgstr "Detaillierung"
-
-#: ../gtk/parameters.ui.h:89
-msgid "User interface"
-msgstr "Benutzeroberfläche"
-
-#: ../gtk/parameters.ui.h:93
-msgid "LDAP Account setup"
-msgstr "LDAP-Kontoeinrichtung"
-
-#: ../gtk/parameters.ui.h:94
-msgid "LDAP"
-msgstr "LDAP"
-
-#: ../gtk/parameters.ui.h:95
-msgid "Done"
-msgstr "Fertig"
-
-#: ../gtk/password.ui.h:1
-msgid "Linphone - Authentication required"
-msgstr "Linphone - Authentifikation erforderlich"
-
-#: ../gtk/password.ui.h:2
-msgid "Please enter the domain password"
-msgstr "Bitte das Passwort der Domäne eingeben"
-
-#: ../gtk/provisioning-fetch.ui.h:1
-msgid "Configuring..."
-msgstr "Einstellen..."
-
-#: ../gtk/provisioning-fetch.ui.h:2
-msgid "Please wait while fetching configuration from server..."
-msgstr "Bitte warten Sie während die Einstellungen vom Server abgerufen werden..."
-
-#: ../gtk/setup_wizard.ui.h:1
-msgid "SIP account configuration assistant"
-msgstr "SIP-Konto-Einrichtungsassistent"
-
-#: ../gtk/setup_wizard.ui.h:2
-msgid ""
-"Welcome!\n"
-"This assistant will help you to use a SIP account for your calls."
-msgstr "Willkommen!\nDieser Assistent hilft Ihnen dabei ein SIP-Konto einzurichten."
-
-#: ../gtk/setup_wizard.ui.h:4
-msgid "Welcome to the account setup assistant"
-msgstr "Willkommen zum Konto-Einrichtungsassistenten"
-
-#: ../gtk/setup_wizard.ui.h:5
-msgid "Create an account on linphone.org"
-msgstr "Ein Konto bei linphone.org erstellen."
-
-#: ../gtk/setup_wizard.ui.h:6
-msgid "I have already a linphone.org account and I just want to use it"
-msgstr "Ich habe bereits ein Konto bei linphone.org und möchte es jetzt benutzen."
-
-#: ../gtk/setup_wizard.ui.h:7
-msgid "I have already a sip account and I just want to use it"
-msgstr "Ich habe bereits ein SIP-Konto und möchte es jetzt benutzen."
-
-#: ../gtk/setup_wizard.ui.h:8
-msgid "I want to specify a remote configuration URI"
-msgstr "Ich möchte eine URI zur Fernkonfiguration angeben"
-
-#: ../gtk/setup_wizard.ui.h:9
-msgid "Account setup assistant"
-msgstr "Konto-Einrichtungsassistent"
-
-#: ../gtk/setup_wizard.ui.h:10
-msgid "Enter your account information"
-msgstr "Geben Sie Ihre Zugangsdaten ein"
-
-#: ../gtk/setup_wizard.ui.h:11
-msgid "Username*"
-msgstr "Benutzername*"
-
-#: ../gtk/setup_wizard.ui.h:12
-msgid "Password*"
-msgstr "Passwort*"
-
-#: ../gtk/setup_wizard.ui.h:13
-msgid "Domain*"
-msgstr "Domäne*"
-
-#: ../gtk/setup_wizard.ui.h:14
-msgid "Proxy"
-msgstr "Proxy"
-
-#: ../gtk/setup_wizard.ui.h:15
-msgid "Configure your account (step 1/1)"
-msgstr "Konto einrichten (Schritt 1/1)"
-
-#: ../gtk/setup_wizard.ui.h:16
-msgid "Enter your linphone.org username"
-msgstr "Geben Sie Ihren Benutzernamen bei linphone.org ein."
-
-#: ../gtk/setup_wizard.ui.h:19
-msgid "Enter your sip username (step 1/1)"
-msgstr "Geben Sie Ihren SIP-Benutzernamen ein (Schritt 1/1)"
-
-#: ../gtk/setup_wizard.ui.h:20
-msgid "(*) Required fields"
-msgstr "(*) erforderliche Felder"
-
-#: ../gtk/setup_wizard.ui.h:21
-msgid "Email: (*)"
-msgstr "E-Mail: (*)"
-
-#: ../gtk/setup_wizard.ui.h:22
-msgid "Username: (*)"
-msgstr "Benutzername: (*)"
-
-#: ../gtk/setup_wizard.ui.h:23
-msgid "Password: (*)"
-msgstr "Passwort: (*)"
-
-#: ../gtk/setup_wizard.ui.h:24
-msgid "Confirm your password: (*)"
-msgstr "Bestätigen Sie Ihr Passwort: (*)"
-
-#: ../gtk/setup_wizard.ui.h:25
-msgid "Keep me informed with linphone updates"
-msgstr "Halte mich über linphone Aktualisierungen auf dem laufenden"
-
-#: ../gtk/setup_wizard.ui.h:26
-msgid "Enter account information (step 1/2)"
-msgstr "Geben Sie Ihre Zugangsdaten ein (Schritt 1/2)"
-
-#: ../gtk/setup_wizard.ui.h:27
-msgid "Your account is being created, please wait."
-msgstr "Ihr Konto wird erstellt, bitte warten."
-
-#: ../gtk/setup_wizard.ui.h:28
-msgid "Account creation in progress"
-msgstr "Kontoerstellung läuft"
-
-#: ../gtk/setup_wizard.ui.h:29
-msgid ""
-"Please validate your account by clicking on the link we just sent you by email.\n"
-"Then come back here and press Next button."
-msgstr "Bitte bestätigen Sie Ihr Konto, indem Sie auf die Verknüpfung klicken, die wir Ihnen soeben per E-Mail geschickt haben.\nDanach gehen Sie hierher zurück und drücken auf „Vor“."
-
-#: ../gtk/setup_wizard.ui.h:31
-msgid "Validation (step 2/2)"
-msgstr "Bestätigung (Schritt 2/2)"
-
-#: ../gtk/setup_wizard.ui.h:32
-msgid "Checking if your account is been validated, please wait."
-msgstr "Es wird überprüft, ob Ihr Konto gültig ist, bitte warten."
-
-#: ../gtk/setup_wizard.ui.h:33
-msgid "Account validation check in progress"
-msgstr "Kontogültigkeitsprüfung läuft"
-
-#: ../gtk/setup_wizard.ui.h:34
-msgid ""
-"Error, account not validated, username already used or server unreachable.\n"
-"Please go back and try again."
-msgstr "Fehler, Konto kann nicht bestätigt werden. Der Benutzername wird bereits\nverwendet oder der Server ist unerreichbar.\nBitte gehen Sie zurück und versuchen Sie es noch einmal."
-
-#: ../gtk/setup_wizard.ui.h:36
-msgid "Error"
-msgstr "Fehler"
-
-#: ../gtk/setup_wizard.ui.h:37
-msgid "Thank you. Your account is now configured and ready for use."
-msgstr "Danke. Ihr Konto ist nun fertig eingerichtet und kann verwendet werden."
-
-#: ../gtk/sip_account.ui.h:1
-msgid "Linphone - Configure a SIP account"
-msgstr "Linphone - SIP-Konto einrichten"
-
-#: ../gtk/sip_account.ui.h:2
-msgid "Your SIP identity:"
-msgstr "Ihre SIP-Identität:"
-
-#: ../gtk/sip_account.ui.h:3
-msgid "Looks like sip:@"
-msgstr "Sieht aus wie sip:@"
-
-#: ../gtk/sip_account.ui.h:4
-msgid "sip:"
-msgstr "sip:"
-
-#: ../gtk/sip_account.ui.h:5
-msgid "SIP Proxy address:"
-msgstr "SIP-Proxy-Adresse:"
-
-#: ../gtk/sip_account.ui.h:6
-msgid "Looks like sip:"
-msgstr "Sieht aus wie sip:"
-
-#: ../gtk/sip_account.ui.h:7
-msgid "Registration duration (sec):"
-msgstr "Registrierungsdauer (sec):"
-
-#: ../gtk/sip_account.ui.h:8
-msgid "Contact params (optional):"
-msgstr "Kontaktdetails (optional)"
-
-#: ../gtk/sip_account.ui.h:9
-msgid "AVPF regular RTCP interval (sec):"
-msgstr "AVPF Standard RTCP Interval (sek):"
-
-#: ../gtk/sip_account.ui.h:10
-msgid "Route (optional):"
-msgstr "Route (optional):"
-
-#: ../gtk/sip_account.ui.h:11
-msgid "Transport"
-msgstr "Übertragung"
-
-#: ../gtk/sip_account.ui.h:12
-msgid "Register"
-msgstr "Registrieren"
-
-#: ../gtk/sip_account.ui.h:13
-msgid "Publish presence information"
-msgstr "Anwesenheitsstatus veröffentlichen"
-
-#: ../gtk/sip_account.ui.h:14
-msgid "Enable AVPF"
-msgstr "Aktiviere AVPF"
-
-#: ../gtk/sip_account.ui.h:15
-msgid "Configure a SIP account"
-msgstr "SIP-Konto einrichten"
-
-#: ../gtk/tunnel_config.ui.h:1
-msgid "Configure VoIP tunnel"
-msgstr "VoIP-Tunnel einrichten"
-
-#: ../gtk/tunnel_config.ui.h:2
-msgid "Host"
-msgstr "Host"
-
-#: ../gtk/tunnel_config.ui.h:3
-msgid "Port"
-msgstr "Port"
-
-#: ../gtk/tunnel_config.ui.h:6
-msgid "Configure tunnel"
-msgstr "Tunnel einrichten"
-
-#: ../gtk/tunnel_config.ui.h:9
-msgid "Configure http proxy (optional)"
-msgstr "Configure http proxy (optional)"
-
-#: ../gtk/waiting.ui.h:2
-msgid "Please wait"
-msgstr "Bitte warten"
-
-#: ../coreapi/linphonecore.c:1594
-msgid "Ready"
-msgstr "Bereit"
-
-#: ../coreapi/linphonecore.c:2685
-msgid "Configuring"
-msgstr "Einstellen"
-
-#. must be known at that time
-#: ../coreapi/linphonecore.c:3084
-msgid "Contacting"
-msgstr "Verbindungsaufbau"
-
-#: ../coreapi/linphonecore.c:3089
-msgid "Could not call"
-msgstr "Anruf kann nicht getätigt werden."
-
-#: ../coreapi/linphonecore.c:3228
-msgid "Sorry, we have reached the maximum number of simultaneous calls"
-msgstr "Die maximale Anzahl der gleichzeitigen Anrufe ist erreicht."
-
-#: ../coreapi/linphonecore.c:3388
-msgid "is contacting you"
-msgstr "ruft Sie an"
-
-#: ../coreapi/linphonecore.c:3389
-msgid " and asked autoanswer."
-msgstr " und fragt nach automatischer Antwort."
-
-#: ../coreapi/linphonecore.c:3506
-msgid "Modifying call parameters..."
-msgstr "Die Anrufparameter werden verändert..."
-
-#: ../coreapi/linphonecore.c:3898
-msgid "Connected."
-msgstr "Verbunden."
-
-#: ../coreapi/linphonecore.c:3923
-msgid "Call aborted"
-msgstr "Anruf abgebrochen"
-
-#: ../coreapi/linphonecore.c:4125
-msgid "Could not pause the call"
-msgstr "Anruf kann nicht gehalten werden"
-
-#: ../coreapi/linphonecore.c:4128
-msgid "Pausing the current call..."
-msgstr "Aktueller Anruf wird gehalten..."
-
-#: ../coreapi/misc.c:441
-msgid "Stun lookup in progress..."
-msgstr "STUN-Ermittlung läuft..."
-
-#: ../coreapi/misc.c:657
-msgid "ICE local candidates gathering in progress..."
-msgstr "Lokale Kandidaten für ICE werden zusammengestellt..."
-
-#: ../coreapi/friend.c:48
-msgid "Online"
-msgstr "Angemeldet"
-
-#: ../coreapi/friend.c:51
-msgid "Busy"
-msgstr "Besetzt"
-
-#: ../coreapi/friend.c:54
-msgid "Be right back"
-msgstr "Bald wieder da"
-
-#: ../coreapi/friend.c:57
-msgid "Away"
-msgstr "Abwesend"
-
-#: ../coreapi/friend.c:60
-msgid "On the phone"
-msgstr "Im Gespräch"
-
-#: ../coreapi/friend.c:63
-msgid "Out to lunch"
-msgstr "Beim Essen"
-
-#: ../coreapi/friend.c:66
-msgid "Do not disturb"
-msgstr "Nicht stören"
-
-#: ../coreapi/friend.c:69
-msgid "Moved"
-msgstr "Umgezogen"
-
-#: ../coreapi/friend.c:72
-msgid "Using another messaging service"
-msgstr "Ein anderer Nachrichtendienst wird benutzt"
-
-#: ../coreapi/friend.c:75
-msgid "Offline"
-msgstr "Abgemeldet"
-
-#: ../coreapi/friend.c:78
-msgid "Pending"
-msgstr "Ausstehend"
-
-#: ../coreapi/friend.c:81
-msgid "Vacation"
-msgstr "Urlaub"
-
-#: ../coreapi/friend.c:83
-msgid "Unknown status"
-msgstr "Unbekannter Status"
-
-#: ../coreapi/proxy.c:339
-msgid ""
-"The sip proxy address you entered is invalid, it must start with \"sip:\" "
-"followed by a hostname."
-msgstr "Die von Ihnen eingegebene SIP-Proxy-Adresse ist ungültig, sie muss mit „sip:“ gefolgt vom Hostnamen beginnen."
-
-#: ../coreapi/proxy.c:345
-msgid ""
-"The sip identity you entered is invalid.\n"
-"It should look like sip:username@proxydomain, such as sip:alice@example.net"
-msgstr "Die von Ihnen eingegebene SIP-Identität ist ungültig.\nSie sollte wie sip:benutzername@proxydomain aussehen, also z.B. sip:alice@beispiel.net"
-
-#: ../coreapi/proxy.c:979
-msgid "Looking for telephone number destination..."
-msgstr "Telefonnummernziel wird gesucht..."
-
-#: ../coreapi/proxy.c:983
-msgid "Could not resolve this number."
-msgstr "Diese Nummer kann nicht aufgelöst werden."
-
-#: ../coreapi/proxy.c:1437
-#, c-format
-msgid "Could not login as %s"
-msgstr "Anmeldung als %s fehlgeschlagen"
-
-#: ../coreapi/proxy.c:1522
-#, c-format
-msgid "Refreshing on %s..."
-msgstr "Wird auf %s aktualisiert..."
-
-#: ../coreapi/callbacks.c:415
-msgid "Remote ringing."
-msgstr "Klingeln bei der Gegenseite."
-
-#: ../coreapi/callbacks.c:427
-msgid "Remote ringing..."
-msgstr "Klingeln bei der Gegenseite..."
-
-#: ../coreapi/callbacks.c:450
-msgid "Early media."
-msgstr "nicht kompatibel, prüfe Codecs oder Sicherheitseinstellungen..."
-
-#: ../coreapi/callbacks.c:480
-#, c-format
-msgid "Call answered by %s"
-msgstr "Anruf wird von %s entgegengenommen"
-
-#: ../coreapi/callbacks.c:522
-msgid "Call resumed."
-msgstr "Anruf fortgesetzt."
-
-#: ../coreapi/callbacks.c:577
-msgid "Incompatible, check codecs or security settings..."
-msgstr "Inkompatibel, überprüfen Sie die Codecs oder die Sicherheitseinstellungen..."
-
-#: ../coreapi/callbacks.c:582 ../coreapi/callbacks.c:918
-msgid "Incompatible media parameters."
-msgstr "Inkompatible Medienparameter."
-
-#: ../coreapi/callbacks.c:607
-msgid "We have been resumed."
-msgstr "Anruf wird fortgesetzt."
-
-#. we are being paused
-#: ../coreapi/callbacks.c:615
-msgid "We are paused by other party."
-msgstr "Anruf wird von der Gegenseite gehalten."
-
-#: ../coreapi/callbacks.c:625
-msgid "Call is updated by remote."
-msgstr "Anruf ist von der Gegenseite aktualisiert worden."
-
-#: ../coreapi/callbacks.c:794
-msgid "Call terminated."
-msgstr "Anruf beendet."
-
-#: ../coreapi/callbacks.c:822
-msgid "User is busy."
-msgstr "Teilnehmer ist besetzt."
-
-#: ../coreapi/callbacks.c:823
-msgid "User is temporarily unavailable."
-msgstr "Teilnehmer zur Zeit nicht verfügbar."
-
-#. char *retrymsg=_("%s. Retry after %i minute(s).");
-#: ../coreapi/callbacks.c:825
-msgid "User does not want to be disturbed."
-msgstr "Teilnehmer möchte nicht gestört werden."
-
-#: ../coreapi/callbacks.c:826
-msgid "Call declined."
-msgstr "Anruf abgewiesen"
-
-#: ../coreapi/callbacks.c:841
-msgid "Request timeout."
-msgstr "Zeitüberschreitung bei der Anfrage"
-
-#: ../coreapi/callbacks.c:872
-msgid "Redirected"
-msgstr "Umgeleitet"
-
-#: ../coreapi/callbacks.c:922
-msgid "Call failed."
-msgstr "Anruf fehlgeschlagen."
-
-#: ../coreapi/callbacks.c:1000
-#, c-format
-msgid "Registration on %s successful."
-msgstr "Registrierung auf %s erfolgreich."
-
-#: ../coreapi/callbacks.c:1001
-#, c-format
-msgid "Unregistration on %s done."
-msgstr "Abmeldung von %s ist erfolgt."
-
-#: ../coreapi/callbacks.c:1019
-msgid "no response timeout"
-msgstr "Zeitüberschreitung bei der Antwort"
-
-#: ../coreapi/callbacks.c:1022
-#, c-format
-msgid "Registration on %s failed: %s"
-msgstr "Registrierung auf %s fehlgeschlagen: %s"
-
-#: ../coreapi/callbacks.c:1029
-msgid "Service unavailable, retrying"
-msgstr "Service nicht verfügbar, versuche erneut"
-
-#. if encryption is DTLS, no status to be displayed
-#: ../coreapi/linphonecall.c:204
-#, c-format
-msgid "Authentication token is %s"
-msgstr "Authentifizierungs-Token ist %s"
-
-#: ../coreapi/linphonecall.c:1663
-#, c-format
-msgid "Call parameters could not be modified: %s."
-msgstr "Anrufparameter konnten nicht geändert werden: %s."
-
-#: ../coreapi/linphonecall.c:1665
-msgid "Call parameters were successfully modified."
-msgstr "Anrufparameter wurden erfolgreich geändert."
-
-#: ../coreapi/linphonecall.c:4636
-#, c-format
-msgid "You have missed %i call."
-msgid_plural "You have missed %i calls."
-msgstr[0] "Sie haben %i Anruf in Abwesenheit."
-msgstr[1] "Sie haben %i Anrufe in Abwesenheit."
-
-#: ../coreapi/call_log.c:223
-msgid "aborted"
-msgstr "abgebrochen"
-
-#: ../coreapi/call_log.c:226
-msgid "completed"
-msgstr "abgeschlossen"
-
-#: ../coreapi/call_log.c:229
-msgid "missed"
-msgstr "verpasst"
-
-#: ../coreapi/call_log.c:232
-msgid "unknown"
-msgstr "unbekannt"
-
-#: ../coreapi/call_log.c:234
-#, c-format
-msgid ""
-"%s at %s\n"
-"From: %s\n"
-"To: %s\n"
-"Status: %s\n"
-"Duration: %i mn %i sec\n"
-msgstr "%s um %s\nVon: %s\nAn: %s\nStatus: %s\nDauer: %i Min. %i Sek.\n"
-
-#: ../coreapi/call_log.c:235
-msgid "Outgoing call"
-msgstr "Ausgehender Anruf"
-
-#: ../gtk/videowindow.c:72
-#, c-format
-msgid "Cannot play %s."
-msgstr "Kann %s nicht wiedergeben."
-
-#: ../gtk/videowindow.c:252
-msgid "Take screenshot"
-msgstr ""
diff --git a/po/en@boldquot.header b/po/en@boldquot.header
deleted file mode 100644
index fedb6a06d..000000000
--- a/po/en@boldquot.header
+++ /dev/null
@@ -1,25 +0,0 @@
-# All this catalog "translates" are quotation characters.
-# The msgids must be ASCII and therefore cannot contain real quotation
-# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
-# and double quote (0x22). These substitutes look strange; see
-# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
-#
-# This catalog translates grave accent (0x60) and apostrophe (0x27) to
-# left single quotation mark (U+2018) and right single quotation mark (U+2019).
-# It also translates pairs of apostrophe (0x27) to
-# left single quotation mark (U+2018) and right single quotation mark (U+2019)
-# and pairs of quotation mark (0x22) to
-# left double quotation mark (U+201C) and right double quotation mark (U+201D).
-#
-# When output to an UTF-8 terminal, the quotation characters appear perfectly.
-# When output to an ISO-8859-1 terminal, the single quotation marks are
-# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
-# grave/acute accent (by libiconv), and the double quotation marks are
-# transliterated to 0x22.
-# When output to an ASCII terminal, the single quotation marks are
-# transliterated to apostrophes, and the double quotation marks are
-# transliterated to 0x22.
-#
-# This catalog furthermore displays the text between the quotation marks in
-# bold face, assuming the VT100/XTerm escape sequences.
-#
diff --git a/po/en@quot.header b/po/en@quot.header
deleted file mode 100644
index a9647fc35..000000000
--- a/po/en@quot.header
+++ /dev/null
@@ -1,22 +0,0 @@
-# All this catalog "translates" are quotation characters.
-# The msgids must be ASCII and therefore cannot contain real quotation
-# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
-# and double quote (0x22). These substitutes look strange; see
-# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
-#
-# This catalog translates grave accent (0x60) and apostrophe (0x27) to
-# left single quotation mark (U+2018) and right single quotation mark (U+2019).
-# It also translates pairs of apostrophe (0x27) to
-# left single quotation mark (U+2018) and right single quotation mark (U+2019)
-# and pairs of quotation mark (0x22) to
-# left double quotation mark (U+201C) and right double quotation mark (U+201D).
-#
-# When output to an UTF-8 terminal, the quotation characters appear perfectly.
-# When output to an ISO-8859-1 terminal, the single quotation marks are
-# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
-# grave/acute accent (by libiconv), and the double quotation marks are
-# transliterated to 0x22.
-# When output to an ASCII terminal, the single quotation marks are
-# transliterated to apostrophes, and the double quotation marks are
-# transliterated to 0x22.
-#
diff --git a/po/es.po b/po/es.po
deleted file mode 100644
index d166e8cb1..000000000
--- a/po/es.po
+++ /dev/null
@@ -1,2090 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-#
-# Translators:
-# Daniel S , 2016
-msgid ""
-msgstr ""
-"Project-Id-Version: linphone-gtk\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-19 14:01+0200\n"
-"PO-Revision-Date: 2016-05-10 09:58+0000\n"
-"Last-Translator: Belledonne Communications \n"
-"Language-Team: Spanish (http://www.transifex.com/belledonne-communications/linphone-gtk/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: ../gtk/calllogs.c:178
-#, c-format
-msgid "Call %s"
-msgstr "Llamar a %s"
-
-#: ../gtk/calllogs.c:179
-#, c-format
-msgid "Send text to %s"
-msgstr "Enviar mensaje a %s"
-
-#: ../gtk/calllogs.c:181
-#, c-format
-msgid "Add %s to your contact list"
-msgstr "Añadir %s a la lista de contactos"
-
-#: ../gtk/calllogs.c:245 ../gtk/main.ui.h:23
-msgid "Recent calls"
-msgstr "Llamadas recientes"
-
-#: ../gtk/calllogs.c:260
-#, c-format
-msgid "Recent calls (%i)"
-msgstr "Llamadas recientes (%i)"
-
-#: ../gtk/calllogs.c:334
-msgid "n/a"
-msgstr "n/a"
-
-#: ../gtk/calllogs.c:337
-msgid "Aborted"
-msgstr "Abortado"
-
-#: ../gtk/calllogs.c:340
-msgid "Missed"
-msgstr "Perdida"
-
-#: ../gtk/calllogs.c:343
-msgid "Declined"
-msgstr "Rechazado"
-
-#: ../gtk/calllogs.c:349
-#, c-format
-msgid "%i minute"
-msgid_plural "%i minutes"
-msgstr[0] "%i minuto"
-msgstr[1] "%i minutos"
-
-#: ../gtk/calllogs.c:352
-#, c-format
-msgid "%i second"
-msgid_plural "%i seconds"
-msgstr[0] "%i segundo"
-msgstr[1] "%i segundos"
-
-#: ../gtk/calllogs.c:357
-#, c-format
-msgid ""
-"%s\tQuality: %s\n"
-"%s\t%s\t"
-msgstr "%s⇥Calidad: %s\n%s⇥%s⇥"
-
-#: ../gtk/calllogs.c:361
-#, c-format
-msgid "%s\t%s"
-msgstr "%s⇥%s"
-
-#: ../gtk/conference.c:38 ../gtk/in_call_frame.ui.h:11
-msgid "Conference"
-msgstr "Conferencia"
-
-#: ../gtk/conference.c:46
-msgid "Me"
-msgstr "Yo"
-
-#: ../gtk/support.c:49 ../gtk/support.c:73 ../gtk/support.c:102
-#, c-format
-msgid "Couldn't find pixmap file: %s"
-msgstr "No se pudo encontrar el archivo pixmap: %s"
-
-#: ../gtk/chat.c:207 ../gtk/chat.c:265
-msgid "Sending..."
-msgstr "Enviando..."
-
-#: ../gtk/chat.c:224 ../gtk/chat.c:274
-msgid "Message not sent"
-msgstr "Mensaje no enviado"
-
-#: ../gtk/chat.c:498
-msgid "Copy"
-msgstr "Copiar"
-
-#: ../gtk/main.c:134
-msgid "log to stdout some debug information while running."
-msgstr "registra a stdout cierta información de depuración durante la ejecución."
-
-#: ../gtk/main.c:135
-msgid "display version and exit."
-msgstr "mostrar versión y salir"
-
-#: ../gtk/main.c:136
-msgid "path to a file to write logs into."
-msgstr "ruta a un fichero donde escribir logs."
-
-#: ../gtk/main.c:137
-msgid "Start linphone with video disabled."
-msgstr "Iniciar linphone con el vídeo desactivado"
-
-#: ../gtk/main.c:138
-msgid "Start only in the system tray, do not show the main interface."
-msgstr "Iniciar sólo en la barra de tareas, no mostrar la interfaz principal."
-
-#: ../gtk/main.c:139
-msgid "address to call right now"
-msgstr "dirección a la que llamar inmediatamente"
-
-#: ../gtk/main.c:140
-msgid ""
-"Specifiy a working directory (should be the base of the installation, eg: "
-"c:\\Program Files\\Linphone)"
-msgstr "Especifique un directorio de trabajo (debería ser la raíz de la instalación, ej: c:\\Archivos de Programa\\Linphone)"
-
-#: ../gtk/main.c:141
-msgid "Configuration file"
-msgstr "Fichero de configuración"
-
-#: ../gtk/main.c:142
-msgid "Run the audio assistant"
-msgstr "Iniciar el asistente de audio"
-
-#: ../gtk/main.c:143
-msgid "Run self test and exit 0 if succeed"
-msgstr ""
-
-#: ../gtk/main.c:1058
-#, c-format
-msgid ""
-"%s would like to add you to his/her contact list.\n"
-"Would you add him/her to your contact list and allow him/her to see your presence status?\n"
-"If you answer no, this person will be temporarily blacklisted."
-msgstr "%s quiere añadirle a su lista de contactos.\nQuieres añadirle a tu lista de contactos y permitirle que vea su estado de presencia?\nSi contesta no, esta persona será bloqueada temporalmente."
-
-#: ../gtk/main.c:1135
-#, c-format
-msgid ""
-"Please enter your password for username %s\n"
-" at realm %s:"
-msgstr "Por favor, introduzca la contraseña para el usuario %s\n en el dominio %s:"
-
-#: ../gtk/main.c:1244
-msgid "Call error"
-msgstr "Error en llamada"
-
-#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942
-msgid "Call ended"
-msgstr "Llamada terminada"
-
-#: ../gtk/main.c:1250 ../coreapi/call_log.c:235
-msgid "Incoming call"
-msgstr "Llamada entrante"
-
-#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2
-msgid "Answer"
-msgstr "Contestar"
-
-#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3
-msgid "Decline"
-msgstr "Rechazar"
-
-#: ../gtk/main.c:1262
-msgid "Call paused"
-msgstr "Llamada en pausa"
-
-#: ../gtk/main.c:1262
-#, c-format
-msgid "by %s"
-msgstr "por %s"
-
-#: ../gtk/main.c:1336
-#, c-format
-msgid "%s proposed to start video. Do you accept ?"
-msgstr "%s solicita iniciar vídeo. ¿Acepta?"
-
-#: ../gtk/main.c:1502
-msgid "Website link"
-msgstr "Enlace a la Web"
-
-#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1
-msgid "Linphone"
-msgstr "Linphone"
-
-#: ../gtk/main.c:1562
-msgid "A video internet phone"
-msgstr ""
-
-#: ../gtk/main.c:1624
-#, c-format
-msgid "%s (Default)"
-msgstr "%s (Opción predeterminada)"
-
-#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080
-#, c-format
-msgid "We are transferred to %s"
-msgstr "Somos transferidos a %s"
-
-#: ../gtk/main.c:2008
-msgid ""
-"No sound cards have been detected on this computer.\n"
-"You won't be able to send or receive audio calls."
-msgstr "No se ha encontrado una tarjeta de sonido en este equipo.\nNo será posible realizar o recibir llamadas de audio."
-
-#: ../gtk/main.c:2173
-msgid "A free SIP video-phone"
-msgstr "Un video-teléfono SIP gratuito"
-
-#: ../gtk/main.c:2292
-#, c-format
-msgid "Hello\n"
-msgstr "Hola\n"
-
-#: ../gtk/friendlist.c:460
-msgid "Add to addressbook"
-msgstr "Añadir a la agenda"
-
-#: ../gtk/friendlist.c:626
-#, c-format
-msgid "Search in %s directory"
-msgstr "Buscar en el directorio %s"
-
-#: ../gtk/friendlist.c:773
-msgid "Invalid sip contact !"
-msgstr "¡Contacto SIP no válido!"
-
-#: ../gtk/friendlist.c:820
-#, c-format
-msgid "Add a new contact"
-msgstr "Añadir un contacto nuevo"
-
-#: ../gtk/friendlist.c:823
-#, c-format
-msgid "Edit contact '%s'"
-msgstr "Editar contacto '%s'"
-
-#: ../gtk/friendlist.c:824
-#, c-format
-msgid "Delete contact '%s'"
-msgstr "Eliminar contacto '%s'"
-
-#: ../gtk/friendlist.c:825
-#, c-format
-msgid "Delete chat history of '%s'"
-msgstr "Eliminar histórico de '%s'"
-
-#: ../gtk/friendlist.c:862
-#, c-format
-msgid "Add new contact from %s directory"
-msgstr "Añadir nuevo contacto desde el directorio %s"
-
-#: ../gtk/propertybox.c:592 ../gtk/contact.ui.h:1
-msgid "Name"
-msgstr "Nombre"
-
-#: ../gtk/propertybox.c:598
-msgid "Rate (Hz)"
-msgstr "Frecuencia (Hz)"
-
-#: ../gtk/propertybox.c:604
-msgid "Status"
-msgstr "Estado"
-
-#: ../gtk/propertybox.c:617
-msgid "IP Bitrate (kbit/s)"
-msgstr ""
-
-#: ../gtk/propertybox.c:628
-msgid "Parameters"
-msgstr "Parámetros"
-
-#: ../gtk/propertybox.c:670 ../gtk/propertybox.c:824
-msgid "Enabled"
-msgstr "Activado"
-
-#: ../gtk/propertybox.c:672 ../gtk/propertybox.c:824 ../gtk/parameters.ui.h:57
-msgid "Disabled"
-msgstr "Desactivado"
-
-#: ../gtk/propertybox.c:902
-msgid "Account"
-msgstr "Cuenta"
-
-#: ../gtk/propertybox.c:1170
-msgid "English"
-msgstr "Inglés"
-
-#: ../gtk/propertybox.c:1171
-msgid "French"
-msgstr "Francés"
-
-#: ../gtk/propertybox.c:1172
-msgid "Swedish"
-msgstr "Sueco"
-
-#: ../gtk/propertybox.c:1173
-msgid "Italian"
-msgstr "Italiano"
-
-#: ../gtk/propertybox.c:1174
-msgid "Spanish"
-msgstr "Español"
-
-#: ../gtk/propertybox.c:1175
-msgid "Brazilian Portugese"
-msgstr "Portugués de Brasil"
-
-#: ../gtk/propertybox.c:1176
-msgid "Polish"
-msgstr "Polaco"
-
-#: ../gtk/propertybox.c:1177
-msgid "German"
-msgstr "Alemán"
-
-#: ../gtk/propertybox.c:1178
-msgid "Russian"
-msgstr "Ruso"
-
-#: ../gtk/propertybox.c:1179
-msgid "Japanese"
-msgstr "Japonés"
-
-#: ../gtk/propertybox.c:1180
-msgid "Dutch"
-msgstr "Holandés"
-
-#: ../gtk/propertybox.c:1181
-msgid "Hungarian"
-msgstr "Húngaro"
-
-#: ../gtk/propertybox.c:1182
-msgid "Czech"
-msgstr "Checo"
-
-#: ../gtk/propertybox.c:1183
-msgid "Chinese"
-msgstr "Chino"
-
-#: ../gtk/propertybox.c:1184
-msgid "Traditional Chinese"
-msgstr "Chino Tradicional"
-
-#: ../gtk/propertybox.c:1185
-msgid "Norwegian"
-msgstr "Noruego"
-
-#: ../gtk/propertybox.c:1186
-msgid "Hebrew"
-msgstr "Hebreo"
-
-#: ../gtk/propertybox.c:1187
-msgid "Serbian"
-msgstr "Serbio"
-
-#: ../gtk/propertybox.c:1188
-msgid "Arabic"
-msgstr "Árabe"
-
-#: ../gtk/propertybox.c:1189
-msgid "Turkish"
-msgstr "Turco"
-
-#: ../gtk/propertybox.c:1246
-msgid ""
-"You need to restart linphone for the new language selection to take effect."
-msgstr "Deberá reiniciar linphone para aplicar la nueva selección de lenguaje"
-
-#: ../gtk/propertybox.c:1332
-msgid "None"
-msgstr "Ninguno."
-
-#: ../gtk/propertybox.c:1336
-msgid "SRTP"
-msgstr "SRTP"
-
-#: ../gtk/propertybox.c:1342
-msgid "DTLS"
-msgstr "DTLS"
-
-#: ../gtk/propertybox.c:1349
-msgid "ZRTP"
-msgstr "ZRTP"
-
-#: ../gtk/update.c:80
-#, c-format
-msgid ""
-"A more recent version is availalble from %s.\n"
-"Would you like to open a browser to download it ?"
-msgstr "Una nueva versión está disponible en %s.\n¿Desea abrir el navegador para descargarla?"
-
-#: ../gtk/update.c:91
-msgid "You are running the lastest version."
-msgstr "Ya está corriendo la última versión disponible."
-
-#: ../gtk/buddylookup.c:85
-msgid "Firstname, Lastname"
-msgstr "Nombre, Apellidos"
-
-#: ../gtk/buddylookup.c:160
-msgid "Error communicating with server."
-msgstr "Error al comunicar con el servidor."
-
-#: ../gtk/buddylookup.c:164
-msgid "Connecting..."
-msgstr "Conectando..."
-
-#: ../gtk/buddylookup.c:168
-msgid "Connected"
-msgstr "Conectado"
-
-#: ../gtk/buddylookup.c:172
-msgid "Receiving data..."
-msgstr "Recibiendo datos..."
-
-#: ../gtk/buddylookup.c:180
-#, c-format
-msgid "Found %i contact"
-msgid_plural "Found %i contacts"
-msgstr[0] "Se encontró %i contacto"
-msgstr[1] "Se encontraron %i contactos"
-
-#: ../gtk/setupwizard.c:219
-msgid "Username is already in use!"
-msgstr ""
-
-#: ../gtk/setupwizard.c:223
-msgid "Failed to check username availability. Please try again later."
-msgstr ""
-
-#: ../gtk/incall_view.c:67 ../gtk/incall_view.c:87
-#, c-format
-msgid "Call #%i"
-msgstr "Llamar a #%i"
-
-#: ../gtk/incall_view.c:145
-#, c-format
-msgid "Transfer to call #%i with %s"
-msgstr "Transferir a llamada #%i con %s"
-
-#: ../gtk/incall_view.c:202 ../gtk/incall_view.c:205
-msgid "Not used"
-msgstr "Sin uso"
-
-#: ../gtk/incall_view.c:212
-msgid "ICE not activated"
-msgstr "ICE no activo"
-
-#: ../gtk/incall_view.c:214
-msgid "ICE failed"
-msgstr "ICE ha fallado"
-
-#: ../gtk/incall_view.c:216
-msgid "ICE in progress"
-msgstr "ICE en progreso"
-
-#: ../gtk/incall_view.c:218
-msgid "Going through one or more NATs"
-msgstr "Atravesando uno o más NATs"
-
-#: ../gtk/incall_view.c:220
-msgid "Direct"
-msgstr "Directo"
-
-#: ../gtk/incall_view.c:222
-msgid "Through a relay server"
-msgstr "A través de un servidor de relay"
-
-#: ../gtk/incall_view.c:230
-msgid "uPnP not activated"
-msgstr "uPnP no activado"
-
-#: ../gtk/incall_view.c:232
-msgid "uPnP in progress"
-msgstr "uPnP en progreso"
-
-#: ../gtk/incall_view.c:234
-msgid "uPnp not available"
-msgstr "uPnp not disponible"
-
-#: ../gtk/incall_view.c:236
-msgid "uPnP is running"
-msgstr "uPnP en ejecución"
-
-#: ../gtk/incall_view.c:238
-msgid "uPnP failed"
-msgstr "uPnP ha fallado"
-
-#: ../gtk/incall_view.c:248 ../gtk/incall_view.c:249
-msgid "Direct or through server"
-msgstr "Directo o a través del servidor"
-
-#: ../gtk/incall_view.c:258 ../gtk/incall_view.c:270
-#, c-format
-msgid ""
-"download: %f\n"
-"upload: %f (kbit/s)"
-msgstr "bajada: %f\nsubida: %f (kbit/s)"
-
-#: ../gtk/incall_view.c:263 ../gtk/incall_view.c:265
-#, c-format
-msgid "%ix%i @ %f fps"
-msgstr ""
-
-#: ../gtk/incall_view.c:295
-#, c-format
-msgid "%.3f seconds"
-msgstr "%.3f segundos"
-
-#: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10
-#: ../gtk/videowindow.c:248
-msgid "Hang up"
-msgstr "Colgar"
-
-#: ../gtk/incall_view.c:558
-msgid "Calling..."
-msgstr "Llamando..."
-
-#: ../gtk/incall_view.c:561 ../gtk/incall_view.c:793
-msgid "00:00:00"
-msgstr "00:00:00"
-
-#: ../gtk/incall_view.c:572
-msgid "Incoming call"
-msgstr "Llamada entrante"
-
-#: ../gtk/incall_view.c:609
-msgid "good"
-msgstr "buena"
-
-#: ../gtk/incall_view.c:611
-msgid "average"
-msgstr "media"
-
-#: ../gtk/incall_view.c:613
-msgid "poor"
-msgstr "mala"
-
-#: ../gtk/incall_view.c:615
-msgid "very poor"
-msgstr "muy mala"
-
-#: ../gtk/incall_view.c:617
-msgid "too bad"
-msgstr "demasiado mala"
-
-#: ../gtk/incall_view.c:618 ../gtk/incall_view.c:634
-msgid "unavailable"
-msgstr "no disponible"
-
-#: ../gtk/incall_view.c:732
-msgid "Secured by SRTP"
-msgstr "Cifrada con SRTP"
-
-#: ../gtk/incall_view.c:738
-msgid "Secured by DTLS"
-msgstr "Cifrada con DTLS"
-
-#: ../gtk/incall_view.c:744
-#, c-format
-msgid "Secured by ZRTP - [auth token: %s]"
-msgstr "Cifrada con ZRTP - [token de autenticación: %s]"
-
-#: ../gtk/incall_view.c:748
-msgid "Set unverified"
-msgstr "Set sin verificar"
-
-#: ../gtk/incall_view.c:748
-msgid "Set verified"
-msgstr "Set verificado"
-
-#: ../gtk/incall_view.c:788
-msgid "In conference"
-msgstr "En conferencia"
-
-#: ../gtk/incall_view.c:788
-msgid "In call"
-msgstr "En conversación"
-
-#: ../gtk/incall_view.c:825
-msgid "Paused call"
-msgstr "Llamada en pausa"
-
-#: ../gtk/incall_view.c:862
-msgid "Call ended."
-msgstr "Llamada finalizada."
-
-#: ../gtk/incall_view.c:893
-msgid "Transfer in progress"
-msgstr "Transfiriendo llamada"
-
-#: ../gtk/incall_view.c:896
-msgid "Transfer done."
-msgstr "Transferido correctamente"
-
-#: ../gtk/incall_view.c:899
-msgid "Transfer failed."
-msgstr "Transferencia fallida"
-
-#: ../gtk/incall_view.c:930
-msgid "Resume"
-msgstr "Reanudar"
-
-#: ../gtk/incall_view.c:930 ../gtk/in_call_frame.ui.h:7
-msgid "Pause"
-msgstr "Pausar"
-
-#: ../gtk/incall_view.c:996
-#, c-format
-msgid ""
-"Recording into\n"
-"%s %s"
-msgstr "Grabando en\n%s %s"
-
-#: ../gtk/incall_view.c:996
-msgid "(Paused)"
-msgstr "(Pausada)"
-
-#: ../gtk/loginframe.c:75
-#, c-format
-msgid "Please enter login information for %s"
-msgstr "Por favor, introduzca los datos de inicio de sesión para %s"
-
-#: ../gtk/config-fetching.c:57
-#, c-format
-msgid "fetching from %s"
-msgstr "cargando desde %s"
-
-#: ../gtk/config-fetching.c:73
-#, c-format
-msgid "Downloading of remote configuration from %s failed."
-msgstr "Descarga de la configuración remota desde %s fallida."
-
-#: ../gtk/audio_assistant.c:103
-msgid "No voice detected"
-msgstr "No se detectó voz"
-
-#: ../gtk/audio_assistant.c:104
-msgid "Too low"
-msgstr "Demasiado bajo"
-
-#: ../gtk/audio_assistant.c:105
-msgid "Good"
-msgstr "Buena"
-
-#: ../gtk/audio_assistant.c:106
-msgid "Too loud"
-msgstr "Demasiado alto"
-
-#: ../gtk/audio_assistant.c:188
-msgid "Did you hear three beeps ?"
-msgstr "¿Escuchaste los tres pitidos?"
-
-#: ../gtk/audio_assistant.c:301 ../gtk/audio_assistant.c:306
-msgid "Sound preferences not found "
-msgstr "Preferencias de sonido no encontradas"
-
-#: ../gtk/audio_assistant.c:315
-msgid "Cannot launch system sound control "
-msgstr "No se pudo arrancar el control de sonido del sistema"
-
-#: ../gtk/audio_assistant.c:327
-msgid ""
-"Welcome!\n"
-"This assistant will help you to configure audio settings for Linphone"
-msgstr "Bienvenido!\nEste asistente le ayudará a configurar el audio para Linphone."
-
-#: ../gtk/audio_assistant.c:337
-msgid "Capture device"
-msgstr "Dispositivo de captura:"
-
-#: ../gtk/audio_assistant.c:338
-msgid "Recorded volume"
-msgstr "Volumen grabado"
-
-#: ../gtk/audio_assistant.c:342
-msgid "No voice"
-msgstr "No hay voz"
-
-#: ../gtk/audio_assistant.c:343 ../gtk/audio_assistant.c:382
-msgid "System sound preferences"
-msgstr "Preferencias de audio del sistema"
-
-#: ../gtk/audio_assistant.c:378
-msgid "Playback device"
-msgstr "Dispositivo de reproducción:"
-
-#: ../gtk/audio_assistant.c:379
-msgid "Play three beeps"
-msgstr "Reproducir tres pitidos"
-
-#: ../gtk/audio_assistant.c:412
-msgid "Press the record button and say some words"
-msgstr "Use el botón de grabar y diga unas palabras"
-
-#: ../gtk/audio_assistant.c:413
-msgid "Listen to your record voice"
-msgstr "Escucha tu grabación de voz"
-
-#: ../gtk/audio_assistant.c:414 ../gtk/conf_frame.ui.h:2
-#: ../gtk/in_call_frame.ui.h:4
-msgid "Record"
-msgstr "Grabar"
-
-#: ../gtk/audio_assistant.c:415
-msgid "Play"
-msgstr "Reproducir"
-
-#: ../gtk/audio_assistant.c:442
-msgid "Let's start Linphone now"
-msgstr "Iniciar Linphone ahora"
-
-#: ../gtk/audio_assistant.c:513
-msgid "Audio Assistant"
-msgstr "Asistente de sonido"
-
-#: ../gtk/audio_assistant.c:523 ../gtk/main.ui.h:15
-msgid "Audio assistant"
-msgstr "Asistente de sonido"
-
-#: ../gtk/audio_assistant.c:528
-msgid "Mic Gain calibration"
-msgstr "Calibración de ganancia de microfono"
-
-#: ../gtk/audio_assistant.c:534
-msgid "Speaker volume calibration"
-msgstr "Calibración de volumen de altavoz"
-
-#: ../gtk/audio_assistant.c:539
-msgid "Record and Play"
-msgstr "Grabar y reproducir"
-
-#: ../gtk/audio_assistant.c:544 ../gtk/setup_wizard.ui.h:38
-msgid "Terminating"
-msgstr "Finalizando"
-
-#: ../gtk/about.ui.h:1
-msgid "About Linphone"
-msgstr "Sobre Linphone"
-
-#: ../gtk/about.ui.h:2
-msgid "(C) Belledonne Communications, 2010\n"
-msgstr "(C) Belledonne Communications, 2010\n"
-
-#: ../gtk/about.ui.h:4
-msgid "An internet video phone using the standard SIP (rfc3261) protocol."
-msgstr "Un vídeo-teléfono a través de Internet que usa el protocolo estándar SIP (rfc3261)"
-
-#: ../gtk/about.ui.h:5
-msgid ""
-"fr: Simon Morlat\n"
-"en: Simon Morlat and Delphine Perreau\n"
-"it: Alberto Zanoni \n"
-"de: Jean-Jacques Sarton \n"
-"sv: Daniel Nylander \n"
-"es: Jesus Benitez \n"
-"ja: YAMAGUCHI YOSHIYA \n"
-"pt_BR: Rafael Caesar Lenzi \n"
-"pl: Robert Nasiadek \n"
-"cs: Petr Pisar \n"
-"hu: anonymous\n"
-"he: Eli Zaretskii \n"
-msgstr "fr: Simon Morlat\nen: Simon Morlat and Delphine Perreau\nit: Alberto Zanoni \nde: Jean-Jacques Sarton \nsv: Daniel Nylander \nes: Jesus Benitez \nja: YAMAGUCHI YOSHIYA \npt_BR: Rafael Caesar Lenzi \npl: Robert Nasiadek \ncs: Petr Pisar \nhu: anonymous\nhe: Eli Zaretskii \n"
-
-#: ../gtk/buddylookup.ui.h:1
-msgid "Search contacts in directory"
-msgstr "Buscar contactos en directorio"
-
-#: ../gtk/buddylookup.ui.h:2
-msgid "Add to my list"
-msgstr "Añadir a mi lista"
-
-#: ../gtk/buddylookup.ui.h:3
-msgid "Search somebody"
-msgstr "Buscar a alguien"
-
-#: ../gtk/callee_frame.ui.h:1
-msgid "Callee name"
-msgstr "Nombre del destinatario"
-
-#: ../gtk/call_logs.ui.h:1
-msgid "Call history"
-msgstr "Registro de llamadas"
-
-#: ../gtk/call_logs.ui.h:2
-msgid "Clear all"
-msgstr "Borrar todos"
-
-#: ../gtk/call_logs.ui.h:3
-msgid "Call back"
-msgstr "Devolver llamada"
-
-#: ../gtk/call_statistics.ui.h:1
-msgid "Call statistics"
-msgstr "Estadística de llamada"
-
-#: ../gtk/call_statistics.ui.h:2
-msgid "Audio codec"
-msgstr "Códec de Audio"
-
-#: ../gtk/call_statistics.ui.h:3
-msgid "Video codec"
-msgstr "Códec de vídeo"
-
-#: ../gtk/call_statistics.ui.h:4
-msgid "Audio IP bandwidth usage"
-msgstr ""
-
-#: ../gtk/call_statistics.ui.h:5
-msgid "Audio Media connectivity"
-msgstr ""
-
-#: ../gtk/call_statistics.ui.h:6
-msgid "Video IP bandwidth usage"
-msgstr ""
-
-#: ../gtk/call_statistics.ui.h:7
-msgid "Video Media connectivity"
-msgstr ""
-
-#: ../gtk/call_statistics.ui.h:8
-msgid "Round trip time"
-msgstr ""
-
-#: ../gtk/call_statistics.ui.h:9
-msgid "Video resolution received"
-msgstr "Resolución de vídeo recivida"
-
-#: ../gtk/call_statistics.ui.h:10
-msgid "Video resolution sent"
-msgstr "Resolución de vídeo enviada"
-
-#: ../gtk/call_statistics.ui.h:11
-msgid "RTP profile"
-msgstr "Perfil RTP"
-
-#: ../gtk/call_statistics.ui.h:12
-msgid "Call statistics and information"
-msgstr "Estadísticas de llamada e información"
-
-#: ../gtk/chatroom_frame.ui.h:1
-msgid "Send"
-msgstr "Enviar"
-
-#: ../gtk/conf_frame.ui.h:1
-msgid "End conference"
-msgstr "Terminar conferencia"
-
-#: ../gtk/config-uri.ui.h:1
-msgid "Specifying a remote configuration URI"
-msgstr "Especificando una URI remota de configuración"
-
-#: ../gtk/config-uri.ui.h:2
-msgid ""
-"This dialog allows to set an http or https address when configuration is to be fetched at startup.\n"
-"Please enter or modify the configuration URI below. After clicking OK, Linphone will restart automatically in order to fetch and take into account the new configuration. "
-msgstr "Esta ventana le permite fijar una dirección http o https para que la configuración sea cargada en el arranque.\nPor favor, introduzca o modifique la URI. Después de aceptar, Linphone se reiniciará automáticamente para cargar la configuración y la nueva cuenta."
-
-#: ../gtk/contact.ui.h:2
-msgid "SIP Address"
-msgstr "Dirección SIP"
-
-#: ../gtk/contact.ui.h:3
-msgid "Show this contact presence status"
-msgstr "Mostrar el estado de presencia de este contacto"
-
-#: ../gtk/contact.ui.h:4
-msgid "Allow this contact to see my presence status"
-msgstr "Permitir que este contacto vea mi estado de presencia"
-
-#: ../gtk/contact.ui.h:5
-msgid "Contact information"
-msgstr "Información de contacto"
-
-#: ../gtk/dscp_settings.ui.h:1
-msgid "DSCP settings"
-msgstr "Configuración DSCP"
-
-#: ../gtk/dscp_settings.ui.h:2
-msgid "SIP"
-msgstr "SIP"
-
-#: ../gtk/dscp_settings.ui.h:3
-msgid "Audio RTP stream"
-msgstr ""
-
-#: ../gtk/dscp_settings.ui.h:4
-msgid "Video RTP stream"
-msgstr ""
-
-#: ../gtk/dscp_settings.ui.h:5
-msgid "Set DSCP values (in hexadecimal)"
-msgstr ""
-
-#: ../gtk/in_call_frame.ui.h:1
-msgid "Click here to set the speakers volume"
-msgstr "Volumen del altavoz"
-
-#: ../gtk/in_call_frame.ui.h:5
-msgid "Record this call to an audio file"
-msgstr "Graba esta llamada a un fichero de audio"
-
-#: ../gtk/in_call_frame.ui.h:6
-msgid "Video"
-msgstr "Vídeo"
-
-#: ../gtk/in_call_frame.ui.h:8
-msgid "Mute"
-msgstr "Silenciar"
-
-#: ../gtk/in_call_frame.ui.h:9
-msgid "Transfer"
-msgstr "Transferir"
-
-#: ../gtk/in_call_frame.ui.h:12
-msgid "In call"
-msgstr "En conversación"
-
-#: ../gtk/in_call_frame.ui.h:13
-msgid "Duration"
-msgstr "Duración"
-
-#: ../gtk/in_call_frame.ui.h:14
-msgid "Call quality rating"
-msgstr "Calidad de la llamada"
-
-#: ../gtk/ldap.ui.h:1
-msgid "LDAP Settings"
-msgstr "Configuración LDAP"
-
-#: ../gtk/ldap.ui.h:2 ../gtk/parameters.ui.h:90
-msgid "Server address:"
-msgstr "Dirección del Servidor:"
-
-#: ../gtk/ldap.ui.h:3 ../gtk/parameters.ui.h:91
-msgid "Authentication method:"
-msgstr "Método de autenticación:"
-
-#: ../gtk/ldap.ui.h:4 ../gtk/parameters.ui.h:92 ../gtk/setup_wizard.ui.h:17
-msgid "Username:"
-msgstr "Nombre de usuario:"
-
-#: ../gtk/ldap.ui.h:5 ../gtk/password.ui.h:4 ../gtk/setup_wizard.ui.h:18
-msgid "Password:"
-msgstr "Contraseña:"
-
-#: ../gtk/ldap.ui.h:6
-msgid "Use TLS Connection"
-msgstr "Usar conexión TLS"
-
-#: ../gtk/ldap.ui.h:7
-msgid "Not yet available"
-msgstr "No disponible"
-
-#: ../gtk/ldap.ui.h:8
-msgid "Connection"
-msgstr "Conexión"
-
-#: ../gtk/ldap.ui.h:9
-msgid "Bind DN"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:10
-msgid "Authname"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:11
-msgid "Realm"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:12
-msgid "SASL"
-msgstr "SASL"
-
-#: ../gtk/ldap.ui.h:13
-msgid "Base object:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:15
-#, no-c-format
-msgid "Filter (%s for name):"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:16
-msgid "Name Attribute:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:17
-msgid "SIP address attribute:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:18
-msgid "Attributes to query:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:19
-msgid "Search"
-msgstr "Buscar"
-
-#: ../gtk/ldap.ui.h:20
-msgid "Timeout for search:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:21
-msgid "Max results:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:22
-msgid "Follow Aliases"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:23
-msgid "Miscellaneous"
-msgstr "Otros"
-
-#: ../gtk/ldap.ui.h:24
-msgid "ANONYMOUS"
-msgstr "ANONIMO"
-
-#: ../gtk/ldap.ui.h:25
-msgid "SIMPLE"
-msgstr "SIMPLE"
-
-#: ../gtk/ldap.ui.h:26
-msgid "DIGEST-MD5"
-msgstr "DIGEST-MD5"
-
-#: ../gtk/ldap.ui.h:27
-msgid "NTLM"
-msgstr "NTLM"
-
-#: ../gtk/login_frame.ui.h:1 ../gtk/tunnel_config.ui.h:7
-msgid "Username"
-msgstr "Nombre de usuario"
-
-#: ../gtk/login_frame.ui.h:2 ../gtk/tunnel_config.ui.h:8
-msgid "Password"
-msgstr "Contraseña"
-
-#: ../gtk/login_frame.ui.h:3
-msgid "Internet connection:"
-msgstr "Conexión a Internet"
-
-#: ../gtk/login_frame.ui.h:4
-msgid "Automatically log me in"
-msgstr "Iniciar sesión automáticamente"
-
-#: ../gtk/login_frame.ui.h:5 ../gtk/password.ui.h:3
-msgid "UserID"
-msgstr "UserID"
-
-#: ../gtk/login_frame.ui.h:6
-msgid "Login information"
-msgstr "Datos de inicio de sesión"
-
-#: ../gtk/login_frame.ui.h:7
-msgid "Welcome!"
-msgstr "Bienvenido/a!"
-
-#: ../gtk/login_frame.ui.h:8
-msgid "ADSL"
-msgstr "ADSL"
-
-#: ../gtk/login_frame.ui.h:9
-msgid "Fiber Channel"
-msgstr "Canal de Fibra"
-
-#: ../gtk/log.ui.h:1
-msgid "Linphone debug window"
-msgstr "Ventana de depuración de linphone"
-
-#: ../gtk/log.ui.h:2
-msgid "Scroll to end"
-msgstr "Ir al final"
-
-#: ../gtk/main.ui.h:1
-msgid "Default"
-msgstr "Por defecto"
-
-#: ../gtk/main.ui.h:2
-msgid "Delete"
-msgstr "Borrar"
-
-#: ../gtk/main.ui.h:3
-msgid "_Options"
-msgstr "_Opciones"
-
-#: ../gtk/main.ui.h:4
-msgid "Set configuration URI"
-msgstr "Especificar URI de configuración"
-
-#: ../gtk/main.ui.h:5
-msgid "Always start video"
-msgstr "Siempre iniciar vídeo"
-
-#: ../gtk/main.ui.h:6
-msgid "Enable self-view"
-msgstr "Activar vista propia"
-
-#: ../gtk/main.ui.h:7
-msgid "Show keypad"
-msgstr "Mostrar marcador"
-
-#: ../gtk/main.ui.h:8
-msgid "Import contacts from vCards"
-msgstr ""
-
-#: ../gtk/main.ui.h:9
-msgid "Export contacts as vCards"
-msgstr ""
-
-#: ../gtk/main.ui.h:10
-msgid "_Help"
-msgstr "_Ayuda"
-
-#: ../gtk/main.ui.h:11
-msgid "Show debug window"
-msgstr "Mostrar ventana de depuración"
-
-#: ../gtk/main.ui.h:12
-msgid "_Homepage"
-msgstr "_Pagina_de_Inicio"
-
-#: ../gtk/main.ui.h:13
-msgid "Check _Updates"
-msgstr "Buscar_Actualizaciones"
-
-#: ../gtk/main.ui.h:14
-msgid "Account assistant"
-msgstr "Asistente de configuración de cuenta"
-
-#: ../gtk/main.ui.h:16
-msgid "SIP address or phone number:"
-msgstr "Dirección SIP o número de teléfono"
-
-#: ../gtk/main.ui.h:17
-msgid "Initiate a new call"
-msgstr "Iniciar nueva llamada"
-
-#: ../gtk/main.ui.h:18
-msgid "Contacts"
-msgstr "Contactos"
-
-#: ../gtk/main.ui.h:19
-msgid "Search"
-msgstr "Buscar"
-
-#: ../gtk/main.ui.h:20
-msgid "Add contacts from directory"
-msgstr "Añadir contactos desde un directorio"
-
-#: ../gtk/main.ui.h:21
-msgid "Add contact"
-msgstr "Añadir contacto"
-
-#: ../gtk/main.ui.h:22
-msgid "Clear call history"
-msgstr "Borrar registro de llamadas"
-
-#: ../gtk/main.ui.h:24
-msgid "My current identity:"
-msgstr "Mi identidad actual:"
-
-#: ../gtk/main.ui.h:25
-msgid "Autoanswer is enabled"
-msgstr "Autoanswer está activado"
-
-#: ../gtk/parameters.ui.h:1
-msgid "anonymous"
-msgstr "anónimo"
-
-#: ../gtk/parameters.ui.h:2
-msgid "GSSAPI"
-msgstr "GSSAPI"
-
-#: ../gtk/parameters.ui.h:3
-msgid "SASL"
-msgstr "SASL"
-
-#: ../gtk/parameters.ui.h:4
-msgid "default soundcard"
-msgstr "tarjeta de sonido predeterminada"
-
-#: ../gtk/parameters.ui.h:5
-msgid "a sound card"
-msgstr "una tarjeta de sonido"
-
-#: ../gtk/parameters.ui.h:6
-msgid "default camera"
-msgstr "cámara predeterminada"
-
-#: ../gtk/parameters.ui.h:7
-msgid "CIF"
-msgstr "CIF"
-
-#: ../gtk/parameters.ui.h:8
-msgid "Audio codecs"
-msgstr "Códecs de Audio"
-
-#: ../gtk/parameters.ui.h:9
-msgid "Video codecs"
-msgstr "Códecs de Vídeo"
-
-#: ../gtk/parameters.ui.h:10
-msgid "C"
-msgstr "C"
-
-#: ../gtk/parameters.ui.h:11
-msgid "SIP (UDP)"
-msgstr "SIP (UDP)"
-
-#: ../gtk/parameters.ui.h:12
-msgid "SIP (TCP)"
-msgstr "SIP (TCP)"
-
-#: ../gtk/parameters.ui.h:13
-msgid "SIP (TLS)"
-msgstr "SIP (TLS)"
-
-#: ../gtk/parameters.ui.h:14
-msgid "Settings"
-msgstr "Configuración"
-
-#: ../gtk/parameters.ui.h:15
-msgid "This section defines your SIP address when not using a SIP account"
-msgstr "Esta sección define su dirección SIP cuando no utiliza una cuenta SIP"
-
-#: ../gtk/parameters.ui.h:16
-msgid "Your display name (eg: John Doe):"
-msgstr "Su nombre a mostrar (x ej: Pepito Pérez):"
-
-#: ../gtk/parameters.ui.h:17
-msgid "Your username:"
-msgstr "Su nombre de usuario:"
-
-#: ../gtk/parameters.ui.h:18
-msgid "Your resulting SIP address:"
-msgstr "Su dirección SIP resultante:"
-
-#: ../gtk/parameters.ui.h:19
-msgid "Default identity"
-msgstr "Identidad predeterminada"
-
-#: ../gtk/parameters.ui.h:20
-msgid "Wizard"
-msgstr "Asistente"
-
-#: ../gtk/parameters.ui.h:21
-msgid "Add"
-msgstr "Añadir"
-
-#: ../gtk/parameters.ui.h:22
-msgid "Edit"
-msgstr "Editar"
-
-#: ../gtk/parameters.ui.h:23
-msgid "Remove"
-msgstr "Eliminar"
-
-#: ../gtk/parameters.ui.h:24
-msgid "Proxy accounts"
-msgstr "Cuentas Proxy"
-
-#: ../gtk/parameters.ui.h:25
-msgid "Erase all passwords"
-msgstr "Borrar todas las contraseñas"
-
-#: ../gtk/parameters.ui.h:26
-msgid "Privacy"
-msgstr "Privacidad"
-
-#: ../gtk/parameters.ui.h:27
-msgid "Automatically answer when a call is received"
-msgstr "si está activo, responder a llamadas entrantes automáticamente"
-
-#: ../gtk/parameters.ui.h:28
-msgid "Delay before answering (ms)"
-msgstr "Retraso antes de contestar (ms)"
-
-#: ../gtk/parameters.ui.h:29
-msgid "Auto-answer"
-msgstr "Auto-answer"
-
-#: ../gtk/parameters.ui.h:30
-msgid "Manage SIP Accounts"
-msgstr "Gestionar cuentas SIP"
-
-#: ../gtk/parameters.ui.h:31
-msgid "Ring sound:"
-msgstr "Tono de llamada:"
-
-#: ../gtk/parameters.ui.h:32
-msgid "ALSA special device (optional):"
-msgstr "Dispositivo especial ALSA (opcional):"
-
-#: ../gtk/parameters.ui.h:33
-msgid "Capture device:"
-msgstr "Dispositivo de captura:"
-
-#: ../gtk/parameters.ui.h:34
-msgid "Ring device:"
-msgstr "Dispositivo de Ring:"
-
-#: ../gtk/parameters.ui.h:35
-msgid "Playback device:"
-msgstr "Dispositivo de reproducción:"
-
-#: ../gtk/parameters.ui.h:36
-msgid "Enable echo cancellation"
-msgstr "Activar cancelación de eco"
-
-#: ../gtk/parameters.ui.h:37
-msgid "Audio"
-msgstr "Audio"
-
-#: ../gtk/parameters.ui.h:38
-msgid "Video input device:"
-msgstr "Dispositivo de entrada de vídeo:"
-
-#: ../gtk/parameters.ui.h:39
-msgid "Preferred video resolution:"
-msgstr "Resolución de vídeo preferida:"
-
-#: ../gtk/parameters.ui.h:40
-msgid "Video output method:"
-msgstr "Dispositivo de salida de vídeo:"
-
-#: ../gtk/parameters.ui.h:41
-msgid "Show camera preview"
-msgstr "Mostrar vista previa de la cámara"
-
-#: ../gtk/parameters.ui.h:42
-msgid "Video preset:"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:43
-msgid "Preferred video framerate:"
-msgstr "Framerate de vídeo preferido:"
-
-#: ../gtk/parameters.ui.h:44
-msgid "0 stands for \"unlimited\""
-msgstr "0 significa \"ilimitado\""
-
-#: ../gtk/parameters.ui.h:45
-msgid "Video"
-msgstr "Vídeo "
-
-#: ../gtk/parameters.ui.h:46
-msgid "Upload speed limit in Kbit/sec:"
-msgstr "Velocidad límite de subida en Kbit/seg"
-
-#: ../gtk/parameters.ui.h:47
-msgid "Download speed limit in Kbit/sec:"
-msgstr "Velocidad límite de descarga en Kbit/seg:"
-
-#: ../gtk/parameters.ui.h:48
-msgid "Enable adaptive rate control"
-msgstr "Activar control de frecuencia adaptativo"
-
-#: ../gtk/parameters.ui.h:49
-msgid ""
-"Adaptive rate control is a technique to dynamically guess the available "
-"bandwidth during a call."
-msgstr "Control de frecuencia adaptativo es una técnica que estima dinámicamente el ancho de banda disponible durante la llamada."
-
-#: ../gtk/parameters.ui.h:50
-msgid "Bandwidth control"
-msgstr "Control de ancho de banda"
-
-#: ../gtk/parameters.ui.h:51
-msgid "Multimedia settings"
-msgstr "Configuración multimedia"
-
-#: ../gtk/parameters.ui.h:52
-msgid "Set Maximum Transmission Unit:"
-msgstr "Fijar Unidad de Transmisión Máxima:"
-
-#: ../gtk/parameters.ui.h:53
-msgid "Send DTMFs as SIP info"
-msgstr "Enviar DTMFs como información SIP"
-
-#: ../gtk/parameters.ui.h:54
-msgid "Allow IPv6"
-msgstr "Soportar IPv6"
-
-#: ../gtk/parameters.ui.h:55
-msgid "Transport"
-msgstr "Transporte "
-
-#: ../gtk/parameters.ui.h:56
-msgid "SIP/UDP port"
-msgstr "Puerto SIP/UDP"
-
-#: ../gtk/parameters.ui.h:58
-msgid "Random"
-msgstr "Aleatorio"
-
-#: ../gtk/parameters.ui.h:59
-msgid "SIP/TCP port"
-msgstr "Puerto SIP/TCP"
-
-#: ../gtk/parameters.ui.h:60
-msgid "Audio RTP/UDP:"
-msgstr "Audio RTP/UDP:"
-
-#: ../gtk/parameters.ui.h:61
-msgid "Fixed"
-msgstr "Fijo"
-
-#: ../gtk/parameters.ui.h:62
-msgid "Video RTP/UDP:"
-msgstr "Vídeo RTP/UDP"
-
-#: ../gtk/parameters.ui.h:63
-msgid "Tunnel"
-msgstr "Tunel"
-
-#: ../gtk/parameters.ui.h:64
-msgid "DSCP fields"
-msgstr "Campos DSCP"
-
-#: ../gtk/parameters.ui.h:65
-msgid "Network protocol and ports"
-msgstr "Protocolo de red y puertos"
-
-#: ../gtk/parameters.ui.h:66
-msgid "Direct connection to the Internet"
-msgstr "Conexión directa a Internet"
-
-#: ../gtk/parameters.ui.h:67
-msgid "Behind NAT / Firewall (specify gateway IP )"
-msgstr "Tras un NAT/Firewall (especificar la IP de la puerta de enlace)"
-
-#: ../gtk/parameters.ui.h:68
-msgid "Behind NAT / Firewall (use STUN to resolve)"
-msgstr "Tras un NAT/Firewall (utilizar STUN para resolver)"
-
-#: ../gtk/parameters.ui.h:69
-msgid "Behind NAT / Firewall (use ICE)"
-msgstr "Tras un NAT/Firewall (utilizar ICE)"
-
-#: ../gtk/parameters.ui.h:70
-msgid "Behind NAT / Firewall (use uPnP)"
-msgstr "Tras un NAT/Firewall (utilizar uPnP)"
-
-#: ../gtk/parameters.ui.h:71
-msgid "Public IP address:"
-msgstr "Dirección IP pública:"
-
-#: ../gtk/parameters.ui.h:72
-msgid "Stun server:"
-msgstr "Servidor STUN"
-
-#: ../gtk/parameters.ui.h:73
-msgid "NAT and Firewall"
-msgstr "NAT y Firewall"
-
-#: ../gtk/parameters.ui.h:74
-msgid "Media encryption type"
-msgstr "Tipo de cifrado de medios"
-
-#: ../gtk/parameters.ui.h:75
-msgid "Use Lime for outgoing chat messages"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:76
-msgid "Media encryption is mandatory"
-msgstr "Es obligatorio el cifrado de medios"
-
-#: ../gtk/parameters.ui.h:77
-msgid "Mandatory"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:78
-msgid "Preferred"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:79
-msgid "Encryption"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:80
-msgid "Network settings"
-msgstr "Configuración de red"
-
-#: ../gtk/parameters.ui.h:81 ../gtk/tunnel_config.ui.h:4
-msgid "Enable"
-msgstr "Activar"
-
-#: ../gtk/parameters.ui.h:82 ../gtk/tunnel_config.ui.h:5
-msgid "Disable"
-msgstr "Desactivar"
-
-#: ../gtk/parameters.ui.h:83
-msgid "Audio codecs"
-msgstr "Códecs de audio"
-
-#: ../gtk/parameters.ui.h:84
-msgid "Video codecs"
-msgstr "Códecs de vídeo"
-
-#: ../gtk/parameters.ui.h:85
-msgid "Codecs"
-msgstr "Códecs"
-
-#: ../gtk/parameters.ui.h:86
-msgid "Language"
-msgstr "Idioma"
-
-#: ../gtk/parameters.ui.h:87
-msgid "Show advanced settings"
-msgstr "Mostrar opciones avanzadas"
-
-#: ../gtk/parameters.ui.h:88
-msgid "Level"
-msgstr "Nivel"
-
-#: ../gtk/parameters.ui.h:89
-msgid "User interface"
-msgstr "Interfaz de Usuario"
-
-#: ../gtk/parameters.ui.h:93
-msgid "LDAP Account setup"
-msgstr "Configuración de cuenta LDAP"
-
-#: ../gtk/parameters.ui.h:94
-msgid "LDAP"
-msgstr "LDAP"
-
-#: ../gtk/parameters.ui.h:95
-msgid "Done"
-msgstr "Hecho"
-
-#: ../gtk/password.ui.h:1
-msgid "Linphone - Authentication required"
-msgstr "Linphone - Autenticación necesaria"
-
-#: ../gtk/password.ui.h:2
-msgid "Please enter the domain password"
-msgstr "Por favor introduzca la contraseña del dominio"
-
-#: ../gtk/provisioning-fetch.ui.h:1
-msgid "Configuring..."
-msgstr "Configurando..."
-
-#: ../gtk/provisioning-fetch.ui.h:2
-msgid "Please wait while fetching configuration from server..."
-msgstr "Por favor, espere mientras se carga la configuración del servidor..."
-
-#: ../gtk/setup_wizard.ui.h:1
-msgid "SIP account configuration assistant"
-msgstr "Asistente de configuración de cuenta"
-
-#: ../gtk/setup_wizard.ui.h:2
-msgid ""
-"Welcome!\n"
-"This assistant will help you to use a SIP account for your calls."
-msgstr "¡Bienvenido/a !\nEste asistente le ayudará a utilizar una cuenta SIP para sus llamadas."
-
-#: ../gtk/setup_wizard.ui.h:4
-msgid "Welcome to the account setup assistant"
-msgstr "Bienvenido al asistente de configuración de cuenta"
-
-#: ../gtk/setup_wizard.ui.h:5
-msgid "Create an account on linphone.org"
-msgstr "Crear una cuenta en linphone.org"
-
-#: ../gtk/setup_wizard.ui.h:6
-msgid "I have already a linphone.org account and I just want to use it"
-msgstr "Ya tengo una cuenta en linphone.org y quiero usarla"
-
-#: ../gtk/setup_wizard.ui.h:7
-msgid "I have already a sip account and I just want to use it"
-msgstr "Ya tengo una cuenta SIP y quiero usarla"
-
-#: ../gtk/setup_wizard.ui.h:8
-msgid "I want to specify a remote configuration URI"
-msgstr "Quiero indicar una URI remota de configuración"
-
-#: ../gtk/setup_wizard.ui.h:9
-msgid "Account setup assistant"
-msgstr "Asistente de configuración de cuenta"
-
-#: ../gtk/setup_wizard.ui.h:10
-msgid "Enter your account information"
-msgstr "Información de cuenta"
-
-#: ../gtk/setup_wizard.ui.h:11
-msgid "Username*"
-msgstr "Nombre de usuario*"
-
-#: ../gtk/setup_wizard.ui.h:12
-msgid "Password*"
-msgstr "Contraseña*"
-
-#: ../gtk/setup_wizard.ui.h:13
-msgid "Domain*"
-msgstr "Dominio*"
-
-#: ../gtk/setup_wizard.ui.h:14
-msgid "Proxy"
-msgstr "Proxy"
-
-#: ../gtk/setup_wizard.ui.h:15
-msgid "Configure your account (step 1/1)"
-msgstr "Configurar una cuenta (paso 1/1)"
-
-#: ../gtk/setup_wizard.ui.h:16
-msgid "Enter your linphone.org username"
-msgstr "Introduzca su nombre de usuario de linphone.org"
-
-#: ../gtk/setup_wizard.ui.h:19
-msgid "Enter your sip username (step 1/1)"
-msgstr "Introduzca su nombre de usuario SIP (paso 1/1)"
-
-#: ../gtk/setup_wizard.ui.h:20
-msgid "(*) Required fields"
-msgstr "(*) Campos obligatorios"
-
-#: ../gtk/setup_wizard.ui.h:21
-msgid "Email: (*)"
-msgstr "Email: (*)"
-
-#: ../gtk/setup_wizard.ui.h:22
-msgid "Username: (*)"
-msgstr "Nombre de usuario: (*)"
-
-#: ../gtk/setup_wizard.ui.h:23
-msgid "Password: (*)"
-msgstr "Contraseña: (*)"
-
-#: ../gtk/setup_wizard.ui.h:24
-msgid "Confirm your password: (*)"
-msgstr "Confirme su contraseña: (*)"
-
-#: ../gtk/setup_wizard.ui.h:25
-msgid "Keep me informed with linphone updates"
-msgstr "Informame de las actualizaciones de linphone"
-
-#: ../gtk/setup_wizard.ui.h:26
-msgid "Enter account information (step 1/2)"
-msgstr "Introduzca la información de su cuenta (paso 1/2)"
-
-#: ../gtk/setup_wizard.ui.h:27
-msgid "Your account is being created, please wait."
-msgstr "Su cuenta esta siendo creada, por favor espere."
-
-#: ../gtk/setup_wizard.ui.h:28
-msgid "Account creation in progress"
-msgstr "Creando cuenta"
-
-#: ../gtk/setup_wizard.ui.h:29
-msgid ""
-"Please validate your account by clicking on the link we just sent you by email.\n"
-"Then come back here and press Next button."
-msgstr "Por favor confirme su cuenta haciendo click en el link que la hemos enviado a su email.\nLuego vuelva y presione el botón Siguiente."
-
-#: ../gtk/setup_wizard.ui.h:31
-msgid "Validation (step 2/2)"
-msgstr "Validación (paso 2/2)"
-
-#: ../gtk/setup_wizard.ui.h:32
-msgid "Checking if your account is been validated, please wait."
-msgstr "Comprobando si su cuenta ha sido validada, por favor espere."
-
-#: ../gtk/setup_wizard.ui.h:33
-msgid "Account validation check in progress"
-msgstr "Validación de cuenta en progreso"
-
-#: ../gtk/setup_wizard.ui.h:34
-msgid ""
-"Error, account not validated, username already used or server unreachable.\n"
-"Please go back and try again."
-msgstr "Error, cuenta no validada, el nombre de usuario esta en uso o no se puede acceder al servidor.\nPor favor, vaya atrás y vuelva a intentarlo."
-
-#: ../gtk/setup_wizard.ui.h:36
-msgid "Error"
-msgstr "Error"
-
-#: ../gtk/setup_wizard.ui.h:37
-msgid "Thank you. Your account is now configured and ready for use."
-msgstr "Gracias. Su cuenta está configurada y lista para su utilización."
-
-#: ../gtk/sip_account.ui.h:1
-msgid "Linphone - Configure a SIP account"
-msgstr "Linphone - Configurar una cuenta SIP"
-
-#: ../gtk/sip_account.ui.h:2
-msgid "Your SIP identity:"
-msgstr "Su identidad SIP"
-
-#: ../gtk/sip_account.ui.h:3
-msgid "Looks like sip:@"
-msgstr "Del tipo sip:@"
-
-#: ../gtk/sip_account.ui.h:4
-msgid "sip:"
-msgstr "sip:"
-
-#: ../gtk/sip_account.ui.h:5
-msgid "SIP Proxy address:"
-msgstr "Dirección del SIP Proxy"
-
-#: ../gtk/sip_account.ui.h:6
-msgid "Looks like sip:"
-msgstr "Del tipo sip:"
-
-#: ../gtk/sip_account.ui.h:7
-msgid "Registration duration (sec):"
-msgstr "Duración del registro (seg):"
-
-#: ../gtk/sip_account.ui.h:8
-msgid "Contact params (optional):"
-msgstr ""
-
-#: ../gtk/sip_account.ui.h:9
-msgid "AVPF regular RTCP interval (sec):"
-msgstr ""
-
-#: ../gtk/sip_account.ui.h:10
-msgid "Route (optional):"
-msgstr "Ruta (opcional):"
-
-#: ../gtk/sip_account.ui.h:11
-msgid "Transport"
-msgstr "Transporte"
-
-#: ../gtk/sip_account.ui.h:12
-msgid "Register"
-msgstr "Registrarse"
-
-#: ../gtk/sip_account.ui.h:13
-msgid "Publish presence information"
-msgstr "Publicar información de presencia"
-
-#: ../gtk/sip_account.ui.h:14
-msgid "Enable AVPF"
-msgstr "Activar AVPF"
-
-#: ../gtk/sip_account.ui.h:15
-msgid "Configure a SIP account"
-msgstr "Configurar una cuenta SIP"
-
-#: ../gtk/tunnel_config.ui.h:1
-msgid "Configure VoIP tunnel"
-msgstr "Configurar tunel VoIP"
-
-#: ../gtk/tunnel_config.ui.h:2
-msgid "Host"
-msgstr ""
-
-#: ../gtk/tunnel_config.ui.h:3
-msgid "Port"
-msgstr "Puerto"
-
-#: ../gtk/tunnel_config.ui.h:6
-msgid "Configure tunnel"
-msgstr "Configurar tunel"
-
-#: ../gtk/tunnel_config.ui.h:9
-msgid "Configure http proxy (optional)"
-msgstr "Configurara el proxy http (opcional)"
-
-#: ../gtk/waiting.ui.h:2
-msgid "Please wait"
-msgstr "Espere por favor"
-
-#: ../coreapi/linphonecore.c:1594
-msgid "Ready"
-msgstr "Preparado"
-
-#: ../coreapi/linphonecore.c:2685
-msgid "Configuring"
-msgstr "Configurando"
-
-#. must be known at that time
-#: ../coreapi/linphonecore.c:3084
-msgid "Contacting"
-msgstr "Contactando"
-
-#: ../coreapi/linphonecore.c:3089
-msgid "Could not call"
-msgstr "No se pudo llamar"
-
-#: ../coreapi/linphonecore.c:3228
-msgid "Sorry, we have reached the maximum number of simultaneous calls"
-msgstr "Disculpe, se ha alcanzado el máximo número de llamadas simultáneas"
-
-#: ../coreapi/linphonecore.c:3388
-msgid "is contacting you"
-msgstr "le está llamando"
-
-#: ../coreapi/linphonecore.c:3389
-msgid " and asked autoanswer."
-msgstr "y ha solicitado auto respuesta."
-
-#: ../coreapi/linphonecore.c:3506
-msgid "Modifying call parameters..."
-msgstr "Modificando parámetros de llamada…"
-
-#: ../coreapi/linphonecore.c:3898
-msgid "Connected."
-msgstr "Conectado."
-
-#: ../coreapi/linphonecore.c:3923
-msgid "Call aborted"
-msgstr "Llamada abortada"
-
-#: ../coreapi/linphonecore.c:4125
-msgid "Could not pause the call"
-msgstr "No se pudo pausar la llamada"
-
-#: ../coreapi/linphonecore.c:4128
-msgid "Pausing the current call..."
-msgstr "Pausando la llamada actual..."
-
-#: ../coreapi/misc.c:441
-msgid "Stun lookup in progress..."
-msgstr "Búsqueda STUN en proceso…"
-
-#: ../coreapi/misc.c:657
-msgid "ICE local candidates gathering in progress..."
-msgstr "Recolección de candidatos ICE locales en progreso..."
-
-#: ../coreapi/friend.c:48
-msgid "Online"
-msgstr "Conectado"
-
-#: ../coreapi/friend.c:51
-msgid "Busy"
-msgstr "Ocupado"
-
-#: ../coreapi/friend.c:54
-msgid "Be right back"
-msgstr "Vuelvo enseguida"
-
-#: ../coreapi/friend.c:57
-msgid "Away"
-msgstr "Ausente"
-
-#: ../coreapi/friend.c:60
-msgid "On the phone"
-msgstr "Al teléfono"
-
-#: ../coreapi/friend.c:63
-msgid "Out to lunch"
-msgstr "A comer"
-
-#: ../coreapi/friend.c:66
-msgid "Do not disturb"
-msgstr "No molestar"
-
-#: ../coreapi/friend.c:69
-msgid "Moved"
-msgstr "Fuera"
-
-#: ../coreapi/friend.c:72
-msgid "Using another messaging service"
-msgstr "Utilizando otro servicio de mensajería"
-
-#: ../coreapi/friend.c:75
-msgid "Offline"
-msgstr "Desconectado"
-
-#: ../coreapi/friend.c:78
-msgid "Pending"
-msgstr "Pendiente"
-
-#: ../coreapi/friend.c:81
-msgid "Vacation"
-msgstr ""
-
-#: ../coreapi/friend.c:83
-msgid "Unknown status"
-msgstr "Estado desconocido"
-
-#: ../coreapi/proxy.c:339
-msgid ""
-"The sip proxy address you entered is invalid, it must start with \"sip:\" "
-"followed by a hostname."
-msgstr "La dirección del Proxy SIP que ha introducido no es válida, debe empezar con \"sip:\" seguido del hostname."
-
-#: ../coreapi/proxy.c:345
-msgid ""
-"The sip identity you entered is invalid.\n"
-"It should look like sip:username@proxydomain, such as sip:alice@example.net"
-msgstr "La identidad SIP que ha introducido no es válida.\nDebe ser del tipo sip:username@proxydomain, como por ejemplo sip:alice@example.net"
-
-#: ../coreapi/proxy.c:979
-msgid "Looking for telephone number destination..."
-msgstr "Buscando el número de teléfono del destinatario…"
-
-#: ../coreapi/proxy.c:983
-msgid "Could not resolve this number."
-msgstr "No se ha podido resolver este número."
-
-#: ../coreapi/proxy.c:1437
-#, c-format
-msgid "Could not login as %s"
-msgstr "No se pudo iniciar sesión como %s"
-
-#: ../coreapi/proxy.c:1522
-#, c-format
-msgid "Refreshing on %s..."
-msgstr "Cargando desde %s"
-
-#: ../coreapi/callbacks.c:415
-msgid "Remote ringing."
-msgstr "El destinatario está sonando..."
-
-#: ../coreapi/callbacks.c:427
-msgid "Remote ringing..."
-msgstr "El destinatario está sonando..."
-
-#: ../coreapi/callbacks.c:450
-msgid "Early media."
-msgstr "Medios iniciales."
-
-#: ../coreapi/callbacks.c:480
-#, c-format
-msgid "Call answered by %s"
-msgstr "Llamada respondida por %s"
-
-#: ../coreapi/callbacks.c:522
-msgid "Call resumed."
-msgstr "Llamada reanudada."
-
-#: ../coreapi/callbacks.c:577
-msgid "Incompatible, check codecs or security settings..."
-msgstr "Incompatible, compruebe la configuración de códecs o de seguridad..."
-
-#: ../coreapi/callbacks.c:582 ../coreapi/callbacks.c:918
-msgid "Incompatible media parameters."
-msgstr "Parámetros de media incompatibles"
-
-#: ../coreapi/callbacks.c:607
-msgid "We have been resumed."
-msgstr "Nos han reanudado..."
-
-#. we are being paused
-#: ../coreapi/callbacks.c:615
-msgid "We are paused by other party."
-msgstr "Nos han pausado."
-
-#: ../coreapi/callbacks.c:625
-msgid "Call is updated by remote."
-msgstr "La llamada ha sido actualizada por el destinatario."
-
-#: ../coreapi/callbacks.c:794
-msgid "Call terminated."
-msgstr "Llamada finalizada."
-
-#: ../coreapi/callbacks.c:822
-msgid "User is busy."
-msgstr "El usuario está ocupado."
-
-#: ../coreapi/callbacks.c:823
-msgid "User is temporarily unavailable."
-msgstr "El usuario no está disponible temporalmente."
-
-#. char *retrymsg=_("%s. Retry after %i minute(s).");
-#: ../coreapi/callbacks.c:825
-msgid "User does not want to be disturbed."
-msgstr "El usuario no quiere que le molesten."
-
-#: ../coreapi/callbacks.c:826
-msgid "Call declined."
-msgstr "Llamada rechazada."
-
-#: ../coreapi/callbacks.c:841
-msgid "Request timeout."
-msgstr "Petición caducada (timeout)"
-
-#: ../coreapi/callbacks.c:872
-msgid "Redirected"
-msgstr "Redigirida"
-
-#: ../coreapi/callbacks.c:922
-msgid "Call failed."
-msgstr "La llamada ha fallado."
-
-#: ../coreapi/callbacks.c:1000
-#, c-format
-msgid "Registration on %s successful."
-msgstr "Se ha registrado con éxito en %s."
-
-#: ../coreapi/callbacks.c:1001
-#, c-format
-msgid "Unregistration on %s done."
-msgstr "Cancelación de registro en %s completada."
-
-#: ../coreapi/callbacks.c:1019
-msgid "no response timeout"
-msgstr "timeout sin respuesta"
-
-#: ../coreapi/callbacks.c:1022
-#, c-format
-msgid "Registration on %s failed: %s"
-msgstr "El registro en %s ha fallado: %s."
-
-#: ../coreapi/callbacks.c:1029
-msgid "Service unavailable, retrying"
-msgstr "Servicio no disponible, reintentando"
-
-#. if encryption is DTLS, no status to be displayed
-#: ../coreapi/linphonecall.c:204
-#, c-format
-msgid "Authentication token is %s"
-msgstr "El tóken de autenticación es%s"
-
-#: ../coreapi/linphonecall.c:1663
-#, c-format
-msgid "Call parameters could not be modified: %s."
-msgstr "Parámetros de llamada no pudieron ser modificados: %s."
-
-#: ../coreapi/linphonecall.c:1665
-msgid "Call parameters were successfully modified."
-msgstr "Parámetros de llamada modificados correctamente."
-
-#: ../coreapi/linphonecall.c:4636
-#, c-format
-msgid "You have missed %i call."
-msgid_plural "You have missed %i calls."
-msgstr[0] "Tiene %i llamada perdida."
-msgstr[1] "Tiene %i llamadas perdidas."
-
-#: ../coreapi/call_log.c:223
-msgid "aborted"
-msgstr "abortado"
-
-#: ../coreapi/call_log.c:226
-msgid "completed"
-msgstr "terminado"
-
-#: ../coreapi/call_log.c:229
-msgid "missed"
-msgstr "perdida"
-
-#: ../coreapi/call_log.c:232
-msgid "unknown"
-msgstr "desconocido"
-
-#: ../coreapi/call_log.c:234
-#, c-format
-msgid ""
-"%s at %s\n"
-"From: %s\n"
-"To: %s\n"
-"Status: %s\n"
-"Duration: %i mn %i sec\n"
-msgstr "%s a las %s\nDe: %s\nPara: %s\nEstado: %s\nDuración: %i mn %i sec\n"
-
-#: ../coreapi/call_log.c:235
-msgid "Outgoing call"
-msgstr "Llamada saliente"
-
-#: ../gtk/videowindow.c:72
-#, c-format
-msgid "Cannot play %s."
-msgstr "No se puede reproducir %s"
-
-#: ../gtk/videowindow.c:252
-msgid "Take screenshot"
-msgstr ""
diff --git a/po/fi.po b/po/fi.po
deleted file mode 100644
index 5f8ffbe18..000000000
--- a/po/fi.po
+++ /dev/null
@@ -1,2090 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-#
-# Translators:
-# Matti Koivunen , 2016
-msgid ""
-msgstr ""
-"Project-Id-Version: linphone-gtk\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-19 14:01+0200\n"
-"PO-Revision-Date: 2016-05-10 09:58+0000\n"
-"Last-Translator: Belledonne Communications \n"
-"Language-Team: Finnish (http://www.transifex.com/belledonne-communications/linphone-gtk/language/fi/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fi\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: ../gtk/calllogs.c:178
-#, c-format
-msgid "Call %s"
-msgstr "Soita %s:lle"
-
-#: ../gtk/calllogs.c:179
-#, c-format
-msgid "Send text to %s"
-msgstr "Lähetä tekstiviesti %s:lle"
-
-#: ../gtk/calllogs.c:181
-#, c-format
-msgid "Add %s to your contact list"
-msgstr "Lisää %s yhtestietoihin"
-
-#: ../gtk/calllogs.c:245 ../gtk/main.ui.h:23
-msgid "Recent calls"
-msgstr "Viimeiset puhelut"
-
-#: ../gtk/calllogs.c:260
-#, c-format
-msgid "Recent calls (%i)"
-msgstr "Viimeiset puhelut (%i)"
-
-#: ../gtk/calllogs.c:334
-msgid "n/a"
-msgstr "tyhjä"
-
-#: ../gtk/calllogs.c:337
-msgid "Aborted"
-msgstr "Kesketetty"
-
-#: ../gtk/calllogs.c:340
-msgid "Missed"
-msgstr "Puuttuu"
-
-#: ../gtk/calllogs.c:343
-msgid "Declined"
-msgstr "Estetty"
-
-#: ../gtk/calllogs.c:349
-#, c-format
-msgid "%i minute"
-msgid_plural "%i minutes"
-msgstr[0] "%i minuuttia"
-msgstr[1] "%i minuuttia"
-
-#: ../gtk/calllogs.c:352
-#, c-format
-msgid "%i second"
-msgid_plural "%i seconds"
-msgstr[0] "%i sekunttia"
-msgstr[1] "%i sekunttia"
-
-#: ../gtk/calllogs.c:357
-#, c-format
-msgid ""
-"%s\tQuality: %s\n"
-"%s\t%s\t"
-msgstr "%s\tLaatu: %s\n%s\t%s\t"
-
-#: ../gtk/calllogs.c:361
-#, c-format
-msgid "%s\t%s"
-msgstr "%s\t%s"
-
-#: ../gtk/conference.c:38 ../gtk/in_call_frame.ui.h:11
-msgid "Conference"
-msgstr "Kokous"
-
-#: ../gtk/conference.c:46
-msgid "Me"
-msgstr "Minä"
-
-#: ../gtk/support.c:49 ../gtk/support.c:73 ../gtk/support.c:102
-#, c-format
-msgid "Couldn't find pixmap file: %s"
-msgstr "Ei kyennyt lyötämään Pixmap kuvatiedostoa: %s"
-
-#: ../gtk/chat.c:207 ../gtk/chat.c:265
-msgid "Sending..."
-msgstr "Lähetetään..."
-
-#: ../gtk/chat.c:224 ../gtk/chat.c:274
-msgid "Message not sent"
-msgstr "Viesti ei lähetetty"
-
-#: ../gtk/chat.c:498
-msgid "Copy"
-msgstr "Kopio"
-
-#: ../gtk/main.c:134
-msgid "log to stdout some debug information while running."
-msgstr "Kirjaudu 'stadardi viestin palautukseen' 'stdout' saadaksesi tietoja virheestä käytön aikana."
-
-#: ../gtk/main.c:135
-msgid "display version and exit."
-msgstr "Näytä versio ja poistu."
-
-#: ../gtk/main.c:136
-msgid "path to a file to write logs into."
-msgstr "polku tiedostolle johon loki kirjoitetaan."
-
-#: ../gtk/main.c:137
-msgid "Start linphone with video disabled."
-msgstr "Aloita linphone ilman videota."
-
-#: ../gtk/main.c:138
-msgid "Start only in the system tray, do not show the main interface."
-msgstr "Käynnistä vain tehtäväpalkki, älä pääkäyttöliittymää."
-
-#: ../gtk/main.c:139
-msgid "address to call right now"
-msgstr "osoite mihin nyt soitetaan"
-
-#: ../gtk/main.c:140
-msgid ""
-"Specifiy a working directory (should be the base of the installation, eg: "
-"c:\\Program Files\\Linphone)"
-msgstr "Määritä työkansio (eli mihin asennus tehdään, kuten: c:\\Program Files\\Linphone)"
-
-#: ../gtk/main.c:141
-msgid "Configuration file"
-msgstr "Kokoonpano tiedosto"
-
-#: ../gtk/main.c:142
-msgid "Run the audio assistant"
-msgstr "Käytä ääni avustajaa"
-
-#: ../gtk/main.c:143
-msgid "Run self test and exit 0 if succeed"
-msgstr "Käytä omaa testiä ja poistu 0 jo valmis"
-
-#: ../gtk/main.c:1058
-#, c-format
-msgid ""
-"%s would like to add you to his/her contact list.\n"
-"Would you add him/her to your contact list and allow him/her to see your presence status?\n"
-"If you answer no, this person will be temporarily blacklisted."
-msgstr "%s haluaa lisätä sinut yhteystitohinsa.\nHaluatko hänen näkevän sinun läsnäolosi?\nJos ei, niin hänet lisätään hetkeksi mustalle listalle."
-
-#: ../gtk/main.c:1135
-#, c-format
-msgid ""
-"Please enter your password for username %s\n"
-" at realm %s:"
-msgstr "Anna salasana käyttäjänimelle %s\nmaasta %s:"
-
-#: ../gtk/main.c:1244
-msgid "Call error"
-msgstr "Virhe puhelussa"
-
-#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942
-msgid "Call ended"
-msgstr "Puhelu päättyi"
-
-#: ../gtk/main.c:1250 ../coreapi/call_log.c:235
-msgid "Incoming call"
-msgstr "Tuleva puhelu"
-
-#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2
-msgid "Answer"
-msgstr "Vastaa"
-
-#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3
-msgid "Decline"
-msgstr "Hylkää"
-
-#: ../gtk/main.c:1262
-msgid "Call paused"
-msgstr "Puhelu laitettu tauolle"
-
-#: ../gtk/main.c:1262
-#, c-format
-msgid "by %s"
-msgstr "%s toimesta"
-
-#: ../gtk/main.c:1336
-#, c-format
-msgid "%s proposed to start video. Do you accept ?"
-msgstr "%s pyytää video kuvaa. Sallitaanko?"
-
-#: ../gtk/main.c:1502
-msgid "Website link"
-msgstr "Internet linkki"
-
-#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1
-msgid "Linphone"
-msgstr "Linphone"
-
-#: ../gtk/main.c:1562
-msgid "A video internet phone"
-msgstr "Internet video puhelu"
-
-#: ../gtk/main.c:1624
-#, c-format
-msgid "%s (Default)"
-msgstr "%s (Vakio)"
-
-#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080
-#, c-format
-msgid "We are transferred to %s"
-msgstr "Olemme siirtyneet %s"
-
-#: ../gtk/main.c:2008
-msgid ""
-"No sound cards have been detected on this computer.\n"
-"You won't be able to send or receive audio calls."
-msgstr "Tähässä tietokeneessa ei ole havaittavissa ääni korttia.\nEt voi lähettää tai vastaanottaa äänellisiä puheluita."
-
-#: ../gtk/main.c:2173
-msgid "A free SIP video-phone"
-msgstr "Ilmainen SIP video puhelin."
-
-#: ../gtk/main.c:2292
-#, c-format
-msgid "Hello\n"
-msgstr "Hei\n"
-
-#: ../gtk/friendlist.c:460
-msgid "Add to addressbook"
-msgstr "Lisää osoitekirjaan"
-
-#: ../gtk/friendlist.c:626
-#, c-format
-msgid "Search in %s directory"
-msgstr "Etsi %s hakemistosta"
-
-#: ../gtk/friendlist.c:773
-msgid "Invalid sip contact !"
-msgstr "Kelvoton sip yhtyestieto !"
-
-#: ../gtk/friendlist.c:820
-#, c-format
-msgid "Add a new contact"
-msgstr "Lisää uusi yhteystieto"
-
-#: ../gtk/friendlist.c:823
-#, c-format
-msgid "Edit contact '%s'"
-msgstr "Muokkaa yhteystietoa '%s'"
-
-#: ../gtk/friendlist.c:824
-#, c-format
-msgid "Delete contact '%s'"
-msgstr "Poista yhteysto '%s'"
-
-#: ../gtk/friendlist.c:825
-#, c-format
-msgid "Delete chat history of '%s'"
-msgstr "Poista '%s'n keskustelu historia"
-
-#: ../gtk/friendlist.c:862
-#, c-format
-msgid "Add new contact from %s directory"
-msgstr "Lisää uusi yhteystieto %s hakemistoon"
-
-#: ../gtk/propertybox.c:592 ../gtk/contact.ui.h:1
-msgid "Name"
-msgstr "Nimi"
-
-#: ../gtk/propertybox.c:598
-msgid "Rate (Hz)"
-msgstr "Laatutaso (Hz)"
-
-#: ../gtk/propertybox.c:604
-msgid "Status"
-msgstr "Tila"
-
-#: ../gtk/propertybox.c:617
-msgid "IP Bitrate (kbit/s)"
-msgstr "IP Siirtonopeus (kbit/s)"
-
-#: ../gtk/propertybox.c:628
-msgid "Parameters"
-msgstr "Raja-arvot"
-
-#: ../gtk/propertybox.c:670 ../gtk/propertybox.c:824
-msgid "Enabled"
-msgstr "Sallittu"
-
-#: ../gtk/propertybox.c:672 ../gtk/propertybox.c:824 ../gtk/parameters.ui.h:57
-msgid "Disabled"
-msgstr "Kielletty"
-
-#: ../gtk/propertybox.c:902
-msgid "Account"
-msgstr "Tili"
-
-#: ../gtk/propertybox.c:1170
-msgid "English"
-msgstr "eglaniksi"
-
-#: ../gtk/propertybox.c:1171
-msgid "French"
-msgstr "French"
-
-#: ../gtk/propertybox.c:1172
-msgid "Swedish"
-msgstr "Swedish"
-
-#: ../gtk/propertybox.c:1173
-msgid "Italian"
-msgstr "Italian"
-
-#: ../gtk/propertybox.c:1174
-msgid "Spanish"
-msgstr "Spanish"
-
-#: ../gtk/propertybox.c:1175
-msgid "Brazilian Portugese"
-msgstr "Brazilian Portugese"
-
-#: ../gtk/propertybox.c:1176
-msgid "Polish"
-msgstr "Polish"
-
-#: ../gtk/propertybox.c:1177
-msgid "German"
-msgstr "German"
-
-#: ../gtk/propertybox.c:1178
-msgid "Russian"
-msgstr "Russian"
-
-#: ../gtk/propertybox.c:1179
-msgid "Japanese"
-msgstr "Japanese"
-
-#: ../gtk/propertybox.c:1180
-msgid "Dutch"
-msgstr "Dutch"
-
-#: ../gtk/propertybox.c:1181
-msgid "Hungarian"
-msgstr "Hungarian"
-
-#: ../gtk/propertybox.c:1182
-msgid "Czech"
-msgstr "Czech"
-
-#: ../gtk/propertybox.c:1183
-msgid "Chinese"
-msgstr "Chinese"
-
-#: ../gtk/propertybox.c:1184
-msgid "Traditional Chinese"
-msgstr "Traditional Chinese"
-
-#: ../gtk/propertybox.c:1185
-msgid "Norwegian"
-msgstr "Norwegian"
-
-#: ../gtk/propertybox.c:1186
-msgid "Hebrew"
-msgstr "Hebrew"
-
-#: ../gtk/propertybox.c:1187
-msgid "Serbian"
-msgstr "Serbian"
-
-#: ../gtk/propertybox.c:1188
-msgid "Arabic"
-msgstr "Arabic"
-
-#: ../gtk/propertybox.c:1189
-msgid "Turkish"
-msgstr "Turkish"
-
-#: ../gtk/propertybox.c:1246
-msgid ""
-"You need to restart linphone for the new language selection to take effect."
-msgstr "Sinun tarvitsee uudelleen käynnistää linphone, että uudet kieliasetukset tulevat voimaan."
-
-#: ../gtk/propertybox.c:1332
-msgid "None"
-msgstr "Ei mitään"
-
-#: ../gtk/propertybox.c:1336
-msgid "SRTP"
-msgstr "SRTP 'realiaikainen salaus'"
-
-#: ../gtk/propertybox.c:1342
-msgid "DTLS"
-msgstr "DTLS 'paketti kytketty salaus'"
-
-#: ../gtk/propertybox.c:1349
-msgid "ZRTP"
-msgstr "ZRTP 'tunnusteleva realiaikainen salaus'"
-
-#: ../gtk/update.c:80
-#, c-format
-msgid ""
-"A more recent version is availalble from %s.\n"
-"Would you like to open a browser to download it ?"
-msgstr "Uudempi versio on saatavilla: %s\nHaluatko avata selaimen ja ladata sen? "
-
-#: ../gtk/update.c:91
-msgid "You are running the lastest version."
-msgstr "Käytät viimeisintä versiota."
-
-#: ../gtk/buddylookup.c:85
-msgid "Firstname, Lastname"
-msgstr "Etunimi,Sukunimi"
-
-#: ../gtk/buddylookup.c:160
-msgid "Error communicating with server."
-msgstr "Virhe palvelimen yhteyden pidossa"
-
-#: ../gtk/buddylookup.c:164
-msgid "Connecting..."
-msgstr "Yhdistää..."
-
-#: ../gtk/buddylookup.c:168
-msgid "Connected"
-msgstr "Yhdistetty"
-
-#: ../gtk/buddylookup.c:172
-msgid "Receiving data..."
-msgstr "Vastaanottaa tietoa..."
-
-#: ../gtk/buddylookup.c:180
-#, c-format
-msgid "Found %i contact"
-msgid_plural "Found %i contacts"
-msgstr[0] "Lydetty %i yhteystietoa"
-msgstr[1] "Lydetty %i yhteystietoa"
-
-#: ../gtk/setupwizard.c:219
-msgid "Username is already in use!"
-msgstr "Käyttäjätunnus on jo käytössä!"
-
-#: ../gtk/setupwizard.c:223
-msgid "Failed to check username availability. Please try again later."
-msgstr "Käyttäjätunnuksen saatavuuden tarkistus epäonnistui. Yritä uudelleen myöhemmin. "
-
-#: ../gtk/incall_view.c:67 ../gtk/incall_view.c:87
-#, c-format
-msgid "Call #%i"
-msgstr "Puhelu #%i"
-
-#: ../gtk/incall_view.c:145
-#, c-format
-msgid "Transfer to call #%i with %s"
-msgstr "Siirrä puhelu #%i %s kanssa"
-
-#: ../gtk/incall_view.c:202 ../gtk/incall_view.c:205
-msgid "Not used"
-msgstr "Ei ole käytössä"
-
-#: ../gtk/incall_view.c:212
-msgid "ICE not activated"
-msgstr "ICE 'vuorovaikutteinen yhteys' ei ole toiminnassa"
-
-#: ../gtk/incall_view.c:214
-msgid "ICE failed"
-msgstr "ICE 'vuorovaikutteinen yhteys' epäonnistui"
-
-#: ../gtk/incall_view.c:216
-msgid "ICE in progress"
-msgstr "ICE 'vuorovaikutteinen yhteys' toiminnassa"
-
-#: ../gtk/incall_view.c:218
-msgid "Going through one or more NATs"
-msgstr "Menee läpi yhden tai useamman NAT-ositemuutoksen"
-
-#: ../gtk/incall_view.c:220
-msgid "Direct"
-msgstr "Suoraan"
-
-#: ../gtk/incall_view.c:222
-msgid "Through a relay server"
-msgstr "Läpi välityspalvelimen"
-
-#: ../gtk/incall_view.c:230
-msgid "uPnP not activated"
-msgstr "uPnP 'laite tunnistus' ei ole toiminnassa"
-
-#: ../gtk/incall_view.c:232
-msgid "uPnP in progress"
-msgstr "uPnP 'laite tunnistus' on toiminnassa"
-
-#: ../gtk/incall_view.c:234
-msgid "uPnp not available"
-msgstr "uPnP 'laite tunnistus' ei ole saatavilla"
-
-#: ../gtk/incall_view.c:236
-msgid "uPnP is running"
-msgstr "uPnP 'laite tunnistus' on käytössä"
-
-#: ../gtk/incall_view.c:238
-msgid "uPnP failed"
-msgstr "uPnP 'laite tunnistus' epäonnistui"
-
-#: ../gtk/incall_view.c:248 ../gtk/incall_view.c:249
-msgid "Direct or through server"
-msgstr "Suoraan tai palvelimen kautta"
-
-#: ../gtk/incall_view.c:258 ../gtk/incall_view.c:270
-#, c-format
-msgid ""
-"download: %f\n"
-"upload: %f (kbit/s)"
-msgstr "lataa: %f\nlähettää: %f (kbit/s)"
-
-#: ../gtk/incall_view.c:263 ../gtk/incall_view.c:265
-#, c-format
-msgid "%ix%i @ %f fps"
-msgstr "%ix%i @ %f fps"
-
-#: ../gtk/incall_view.c:295
-#, c-format
-msgid "%.3f seconds"
-msgstr "%.3f sekunttia"
-
-#: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10
-#: ../gtk/videowindow.c:248
-msgid "Hang up"
-msgstr "Katkaise puhelu"
-
-#: ../gtk/incall_view.c:558
-msgid "Calling..."
-msgstr "Soittaa..."
-
-#: ../gtk/incall_view.c:561 ../gtk/incall_view.c:793
-msgid "00:00:00"
-msgstr "00:00:00"
-
-#: ../gtk/incall_view.c:572
-msgid "Incoming call"
-msgstr "tuleva puhelu"
-
-#: ../gtk/incall_view.c:609
-msgid "good"
-msgstr "hyvä"
-
-#: ../gtk/incall_view.c:611
-msgid "average"
-msgstr "keskiverto"
-
-#: ../gtk/incall_view.c:613
-msgid "poor"
-msgstr "heikko"
-
-#: ../gtk/incall_view.c:615
-msgid "very poor"
-msgstr "todella heikko"
-
-#: ../gtk/incall_view.c:617
-msgid "too bad"
-msgstr "liian huono"
-
-#: ../gtk/incall_view.c:618 ../gtk/incall_view.c:634
-msgid "unavailable"
-msgstr "saavuttamattomissa"
-
-#: ../gtk/incall_view.c:732
-msgid "Secured by SRTP"
-msgstr "Käytä SRTP salausta"
-
-#: ../gtk/incall_view.c:738
-msgid "Secured by DTLS"
-msgstr "Käytä DTLS salausta"
-
-#: ../gtk/incall_view.c:744
-#, c-format
-msgid "Secured by ZRTP - [auth token: %s]"
-msgstr "Käytä ZRTP salausta - [todennustunnus: %s]"
-
-#: ../gtk/incall_view.c:748
-msgid "Set unverified"
-msgstr "Aseta vahvistamattomaksi"
-
-#: ../gtk/incall_view.c:748
-msgid "Set verified"
-msgstr "Aseta vahvistetuksi"
-
-#: ../gtk/incall_view.c:788
-msgid "In conference"
-msgstr "Kokouksessa"
-
-#: ../gtk/incall_view.c:788
-msgid "In call"
-msgstr "Puhuu puhelua"
-
-#: ../gtk/incall_view.c:825
-msgid "Paused call"
-msgstr "Puhelu laitettu tauolle"
-
-#: ../gtk/incall_view.c:862
-msgid "Call ended."
-msgstr "Puhelu loppu."
-
-#: ../gtk/incall_view.c:893
-msgid "Transfer in progress"
-msgstr "Siirto käynnissä"
-
-#: ../gtk/incall_view.c:896
-msgid "Transfer done."
-msgstr "Siirto tehty."
-
-#: ../gtk/incall_view.c:899
-msgid "Transfer failed."
-msgstr "Siirto epäonnistui."
-
-#: ../gtk/incall_view.c:930
-msgid "Resume"
-msgstr "Yritä uudelleen"
-
-#: ../gtk/incall_view.c:930 ../gtk/in_call_frame.ui.h:7
-msgid "Pause"
-msgstr "Pysäytä"
-
-#: ../gtk/incall_view.c:996
-#, c-format
-msgid ""
-"Recording into\n"
-"%s %s"
-msgstr "Nauhoita\n%s %s"
-
-#: ../gtk/incall_view.c:996
-msgid "(Paused)"
-msgstr "(Pysäytetty)"
-
-#: ../gtk/loginframe.c:75
-#, c-format
-msgid "Please enter login information for %s"
-msgstr "Anna kirjautumistiedot %s"
-
-#: ../gtk/config-fetching.c:57
-#, c-format
-msgid "fetching from %s"
-msgstr "hae: %s"
-
-#: ../gtk/config-fetching.c:73
-#, c-format
-msgid "Downloading of remote configuration from %s failed."
-msgstr "Etäsäätöjen lataus %s :stä epäonnistui."
-
-#: ../gtk/audio_assistant.c:103
-msgid "No voice detected"
-msgstr "Laitetta ei havaittu"
-
-#: ../gtk/audio_assistant.c:104
-msgid "Too low"
-msgstr "Liian hiljainen"
-
-#: ../gtk/audio_assistant.c:105
-msgid "Good"
-msgstr "Hyvä"
-
-#: ../gtk/audio_assistant.c:106
-msgid "Too loud"
-msgstr "Liian kova ääninen"
-
-#: ../gtk/audio_assistant.c:188
-msgid "Did you hear three beeps ?"
-msgstr "Kuulitko kolme piippausta ?"
-
-#: ../gtk/audio_assistant.c:301 ../gtk/audio_assistant.c:306
-msgid "Sound preferences not found "
-msgstr "Toivottuja ääniasetuksia ei löytynyt"
-
-#: ../gtk/audio_assistant.c:315
-msgid "Cannot launch system sound control "
-msgstr "Ei voi käynnistää järjestelmän äänien hallintaa"
-
-#: ../gtk/audio_assistant.c:327
-msgid ""
-"Welcome!\n"
-"This assistant will help you to configure audio settings for Linphone"
-msgstr "Tervetuloa!\nTämä avustaja auttaa sinua Linphonen ääniasetuksissa"
-
-#: ../gtk/audio_assistant.c:337
-msgid "Capture device"
-msgstr "Tallennus laite"
-
-#: ../gtk/audio_assistant.c:338
-msgid "Recorded volume"
-msgstr "Tallennuksen äänen voimakkuus"
-
-#: ../gtk/audio_assistant.c:342
-msgid "No voice"
-msgstr "Äänetön"
-
-#: ../gtk/audio_assistant.c:343 ../gtk/audio_assistant.c:382
-msgid "System sound preferences"
-msgstr "Järjestelmän toivotut ääni asetukset"
-
-#: ../gtk/audio_assistant.c:378
-msgid "Playback device"
-msgstr "Kaiutin laite"
-
-#: ../gtk/audio_assistant.c:379
-msgid "Play three beeps"
-msgstr "Anna kolme piippausta"
-
-#: ../gtk/audio_assistant.c:412
-msgid "Press the record button and say some words"
-msgstr "Paina nauhoita nappulaa ja sano muutamia sanoja"
-
-#: ../gtk/audio_assistant.c:413
-msgid "Listen to your record voice"
-msgstr "Kuuntele nauhoittamasi puhe"
-
-#: ../gtk/audio_assistant.c:414 ../gtk/conf_frame.ui.h:2
-#: ../gtk/in_call_frame.ui.h:4
-msgid "Record"
-msgstr "Nauhoita"
-
-#: ../gtk/audio_assistant.c:415
-msgid "Play"
-msgstr "Toista"
-
-#: ../gtk/audio_assistant.c:442
-msgid "Let's start Linphone now"
-msgstr "Käynnitetäänpä Linphone nyt"
-
-#: ../gtk/audio_assistant.c:513
-msgid "Audio Assistant"
-msgstr "Ääni avustaja"
-
-#: ../gtk/audio_assistant.c:523 ../gtk/main.ui.h:15
-msgid "Audio assistant"
-msgstr "Ääni avustaja"
-
-#: ../gtk/audio_assistant.c:528
-msgid "Mic Gain calibration"
-msgstr "Mikrofooni tulon kalibrointi"
-
-#: ../gtk/audio_assistant.c:534
-msgid "Speaker volume calibration"
-msgstr "Kaiuttimen kalibrointi"
-
-#: ../gtk/audio_assistant.c:539
-msgid "Record and Play"
-msgstr "Nauhoita ja Toista"
-
-#: ../gtk/audio_assistant.c:544 ../gtk/setup_wizard.ui.h:38
-msgid "Terminating"
-msgstr "Lopeta"
-
-#: ../gtk/about.ui.h:1
-msgid "About Linphone"
-msgstr "Tietoja Linphonesta"
-
-#: ../gtk/about.ui.h:2
-msgid "(C) Belledonne Communications, 2010\n"
-msgstr "(C) Belledonne Communications, 2010\n"
-
-#: ../gtk/about.ui.h:4
-msgid "An internet video phone using the standard SIP (rfc3261) protocol."
-msgstr "Internet video puhelin, joka kyttää SIP (rfc3261) protokollaa."
-
-#: ../gtk/about.ui.h:5
-msgid ""
-"fr: Simon Morlat\n"
-"en: Simon Morlat and Delphine Perreau\n"
-"it: Alberto Zanoni \n"
-"de: Jean-Jacques Sarton \n"
-"sv: Daniel Nylander \n"
-"es: Jesus Benitez \n"
-"ja: YAMAGUCHI YOSHIYA \n"
-"pt_BR: Rafael Caesar Lenzi \n"
-"pl: Robert Nasiadek \n"
-"cs: Petr Pisar \n"
-"hu: anonymous\n"
-"he: Eli Zaretskii \n"
-msgstr "fr: Simon Morlat\nen: Simon Morlat and Delphine Perreau\nit: Alberto Zanoni \nde: Jean-Jacques Sarton \nsv: Daniel Nylander \nes: Jesus Benitez \nja: YAMAGUCHI YOSHIYA \npt_BR: Rafael Caesar Lenzi \npl: Robert Nasiadek \ncs: Petr Pisar \nhu: anonymous\nhe: Eli Zaretskii \nfi: Matti Koivunen\n"
-
-#: ../gtk/buddylookup.ui.h:1
-msgid "Search contacts in directory"
-msgstr "Etsi yhteystietoja hakemistosta"
-
-#: ../gtk/buddylookup.ui.h:2
-msgid "Add to my list"
-msgstr "Lisää minun listaan"
-
-#: ../gtk/buddylookup.ui.h:3
-msgid "Search somebody"
-msgstr "Etsi henkilöä"
-
-#: ../gtk/callee_frame.ui.h:1
-msgid "Callee name"
-msgstr "Soitettu"
-
-#: ../gtk/call_logs.ui.h:1
-msgid "Call history"
-msgstr "Soitetut"
-
-#: ../gtk/call_logs.ui.h:2
-msgid "Clear all"
-msgstr "Tyhjennä kaikki"
-
-#: ../gtk/call_logs.ui.h:3
-msgid "Call back"
-msgstr "Soita takaisin"
-
-#: ../gtk/call_statistics.ui.h:1
-msgid "Call statistics"
-msgstr "Soitto tilastot"
-
-#: ../gtk/call_statistics.ui.h:2
-msgid "Audio codec"
-msgstr "Äänen codec 'pakkaus'"
-
-#: ../gtk/call_statistics.ui.h:3
-msgid "Video codec"
-msgstr "Videon codec 'pakkaus'"
-
-#: ../gtk/call_statistics.ui.h:4
-msgid "Audio IP bandwidth usage"
-msgstr "Äänen käyttämä IP kaistaleveys "
-
-#: ../gtk/call_statistics.ui.h:5
-msgid "Audio Media connectivity"
-msgstr "Ääni tiedon yhdistettävyys"
-
-#: ../gtk/call_statistics.ui.h:6
-msgid "Video IP bandwidth usage"
-msgstr "Videon käyttämä IP kaistaleveys"
-
-#: ../gtk/call_statistics.ui.h:7
-msgid "Video Media connectivity"
-msgstr "Video tiedon yhdistettävyys"
-
-#: ../gtk/call_statistics.ui.h:8
-msgid "Round trip time"
-msgstr "Kierto aika"
-
-#: ../gtk/call_statistics.ui.h:9
-msgid "Video resolution received"
-msgstr "Saatu videon tarkkuus"
-
-#: ../gtk/call_statistics.ui.h:10
-msgid "Video resolution sent"
-msgstr "Lähetetty videon tarkkuus"
-
-#: ../gtk/call_statistics.ui.h:11
-msgid "RTP profile"
-msgstr "RTP 'realiaikaisen videon' profiili"
-
-#: ../gtk/call_statistics.ui.h:12
-msgid "Call statistics and information"
-msgstr "Puhelu tilastot ja tiedot"
-
-#: ../gtk/chatroom_frame.ui.h:1
-msgid "Send"
-msgstr "Lähetä"
-
-#: ../gtk/conf_frame.ui.h:1
-msgid "End conference"
-msgstr "Päätä kokous"
-
-#: ../gtk/config-uri.ui.h:1
-msgid "Specifying a remote configuration URI"
-msgstr "Määritetään etäsäätöjä, URI-osoite"
-
-#: ../gtk/config-uri.ui.h:2
-msgid ""
-"This dialog allows to set an http or https address when configuration is to be fetched at startup.\n"
-"Please enter or modify the configuration URI below. After clicking OK, Linphone will restart automatically in order to fetch and take into account the new configuration. "
-msgstr "Anna alapuolelle muokattu URI, eli http tai https. Kun olet painanut OK, Linphone uudelleen käynnistyy ja hakee tilin uudet säädöt."
-
-#: ../gtk/contact.ui.h:2
-msgid "SIP Address"
-msgstr "SIP osoite"
-
-#: ../gtk/contact.ui.h:3
-msgid "Show this contact presence status"
-msgstr "Näytä henkilön läsnäolo"
-
-#: ../gtk/contact.ui.h:4
-msgid "Allow this contact to see my presence status"
-msgstr "Anna lupa tälle henkilölle nähdä läsnäoloni"
-
-#: ../gtk/contact.ui.h:5
-msgid "Contact information"
-msgstr "Yhteystiedot"
-
-#: ../gtk/dscp_settings.ui.h:1
-msgid "DSCP settings"
-msgstr "DSCP 'pakettien erittely' asetukset"
-
-#: ../gtk/dscp_settings.ui.h:2
-msgid "SIP"
-msgstr "SIP"
-
-#: ../gtk/dscp_settings.ui.h:3
-msgid "Audio RTP stream"
-msgstr "Äänen RTP stream 'realiaikainen virta'"
-
-#: ../gtk/dscp_settings.ui.h:4
-msgid "Video RTP stream"
-msgstr "Videon RTP stream 'realiaikainen virta'"
-
-#: ../gtk/dscp_settings.ui.h:5
-msgid "Set DSCP values (in hexadecimal)"
-msgstr "Aseta DSCP 'pakettien erittely' arvot (heksadesimaaleina)"
-
-#: ../gtk/in_call_frame.ui.h:1
-msgid "Click here to set the speakers volume"
-msgstr "Paina tästä asettaaksesi kaiuttimien äänen voimakkuuden"
-
-#: ../gtk/in_call_frame.ui.h:5
-msgid "Record this call to an audio file"
-msgstr "Nauhoita tämä puhelu äänitiedostoksi"
-
-#: ../gtk/in_call_frame.ui.h:6
-msgid "Video"
-msgstr "Video"
-
-#: ../gtk/in_call_frame.ui.h:8
-msgid "Mute"
-msgstr "Mykkä"
-
-#: ../gtk/in_call_frame.ui.h:9
-msgid "Transfer"
-msgstr "Siirto"
-
-#: ../gtk/in_call_frame.ui.h:12
-msgid "In call"
-msgstr "Puhelussa"
-
-#: ../gtk/in_call_frame.ui.h:13
-msgid "Duration"
-msgstr "Pituus"
-
-#: ../gtk/in_call_frame.ui.h:14
-msgid "Call quality rating"
-msgstr "Puhelun laadun luokitus"
-
-#: ../gtk/ldap.ui.h:1
-msgid "LDAP Settings"
-msgstr "LDAP 'Käyttäjän tunnistus' asetukset"
-
-#: ../gtk/ldap.ui.h:2 ../gtk/parameters.ui.h:90
-msgid "Server address:"
-msgstr "Palvelimen osoite:"
-
-#: ../gtk/ldap.ui.h:3 ../gtk/parameters.ui.h:91
-msgid "Authentication method:"
-msgstr "Todennus menetelmä:"
-
-#: ../gtk/ldap.ui.h:4 ../gtk/parameters.ui.h:92 ../gtk/setup_wizard.ui.h:17
-msgid "Username:"
-msgstr "Käyttäjätunnus:"
-
-#: ../gtk/ldap.ui.h:5 ../gtk/password.ui.h:4 ../gtk/setup_wizard.ui.h:18
-msgid "Password:"
-msgstr "Salasana:"
-
-#: ../gtk/ldap.ui.h:6
-msgid "Use TLS Connection"
-msgstr "Käytä TLS 'lähetyksen salaus' yhteyttä"
-
-#: ../gtk/ldap.ui.h:7
-msgid "Not yet available"
-msgstr "Ei vielä saatavilla"
-
-#: ../gtk/ldap.ui.h:8
-msgid "Connection"
-msgstr "Yhteys"
-
-#: ../gtk/ldap.ui.h:9
-msgid "Bind DN"
-msgstr "Käyttäjän tunnistus: yhdistä DN nimeen"
-
-#: ../gtk/ldap.ui.h:10
-msgid "Authname"
-msgstr "Valtuutettu nimi"
-
-#: ../gtk/ldap.ui.h:11
-msgid "Realm"
-msgstr "Realm 'hallittu alue'"
-
-#: ../gtk/ldap.ui.h:12
-msgid "SASL"
-msgstr "SASL 'yksinkertainen tunnistus ja salaus'"
-
-#: ../gtk/ldap.ui.h:13
-msgid "Base object:"
-msgstr "Perus kohde:"
-
-#: ../gtk/ldap.ui.h:15
-#, no-c-format
-msgid "Filter (%s for name):"
-msgstr "Suodatin (%s nimelle)"
-
-#: ../gtk/ldap.ui.h:16
-msgid "Name Attribute:"
-msgstr "Nimen tuntomerkit"
-
-#: ../gtk/ldap.ui.h:17
-msgid "SIP address attribute:"
-msgstr "SIP osoitteen tuntomerkki:"
-
-#: ../gtk/ldap.ui.h:18
-msgid "Attributes to query:"
-msgstr "Tuntomerkkiä jonossa"
-
-#: ../gtk/ldap.ui.h:19
-msgid "Search"
-msgstr "Hae"
-
-#: ../gtk/ldap.ui.h:20
-msgid "Timeout for search:"
-msgstr "Haun aikakatkaisu:"
-
-#: ../gtk/ldap.ui.h:21
-msgid "Max results:"
-msgstr "Tulosten yläraja:"
-
-#: ../gtk/ldap.ui.h:22
-msgid "Follow Aliases"
-msgstr "Seuraa peitenimiä"
-
-#: ../gtk/ldap.ui.h:23
-msgid "Miscellaneous"
-msgstr "Sekalaiset"
-
-#: ../gtk/ldap.ui.h:24
-msgid "ANONYMOUS"
-msgstr "ANONYYMI"
-
-#: ../gtk/ldap.ui.h:25
-msgid "SIMPLE"
-msgstr "YKSINKERTAINEN"
-
-#: ../gtk/ldap.ui.h:26
-msgid "DIGEST-MD5"
-msgstr "DIGEST-MD5 'tiivistetty käyttäjän tunnistus '"
-
-#: ../gtk/ldap.ui.h:27
-msgid "NTLM"
-msgstr "NTLM 'Microsoft käyttäjän tunnistus'"
-
-#: ../gtk/login_frame.ui.h:1 ../gtk/tunnel_config.ui.h:7
-msgid "Username"
-msgstr "Käyttäjätunnus"
-
-#: ../gtk/login_frame.ui.h:2 ../gtk/tunnel_config.ui.h:8
-msgid "Password"
-msgstr "Salasana"
-
-#: ../gtk/login_frame.ui.h:3
-msgid "Internet connection:"
-msgstr "Internet yhteys:"
-
-#: ../gtk/login_frame.ui.h:4
-msgid "Automatically log me in"
-msgstr "Automaattisesti kirjaudu sisään"
-
-#: ../gtk/login_frame.ui.h:5 ../gtk/password.ui.h:3
-msgid "UserID"
-msgstr "Käyttäjän tiedot"
-
-#: ../gtk/login_frame.ui.h:6
-msgid "Login information"
-msgstr "Kirjautumistiedot"
-
-#: ../gtk/login_frame.ui.h:7
-msgid "Welcome!"
-msgstr "Tervetuloa!"
-
-#: ../gtk/login_frame.ui.h:8
-msgid "ADSL"
-msgstr "ADSL"
-
-#: ../gtk/login_frame.ui.h:9
-msgid "Fiber Channel"
-msgstr "Kuitu kanava"
-
-#: ../gtk/log.ui.h:1
-msgid "Linphone debug window"
-msgstr "Linphone virheen korjaus ikkuna"
-
-#: ../gtk/log.ui.h:2
-msgid "Scroll to end"
-msgstr "Vieritä loppuun"
-
-#: ../gtk/main.ui.h:1
-msgid "Default"
-msgstr "Vakio"
-
-#: ../gtk/main.ui.h:2
-msgid "Delete"
-msgstr "Poista"
-
-#: ../gtk/main.ui.h:3
-msgid "_Options"
-msgstr "_Valinnat"
-
-#: ../gtk/main.ui.h:4
-msgid "Set configuration URI"
-msgstr "Aseta URI säädöt"
-
-#: ../gtk/main.ui.h:5
-msgid "Always start video"
-msgstr "Aloita aina videon kanssa"
-
-#: ../gtk/main.ui.h:6
-msgid "Enable self-view"
-msgstr "Näytä omakuva"
-
-#: ../gtk/main.ui.h:7
-msgid "Show keypad"
-msgstr "Näytä näppäimistö"
-
-#: ../gtk/main.ui.h:8
-msgid "Import contacts from vCards"
-msgstr ""
-
-#: ../gtk/main.ui.h:9
-msgid "Export contacts as vCards"
-msgstr ""
-
-#: ../gtk/main.ui.h:10
-msgid "_Help"
-msgstr "_Apua"
-
-#: ../gtk/main.ui.h:11
-msgid "Show debug window"
-msgstr "Näytä virheen korjaus ikkuna"
-
-#: ../gtk/main.ui.h:12
-msgid "_Homepage"
-msgstr "_Kotisivu"
-
-#: ../gtk/main.ui.h:13
-msgid "Check _Updates"
-msgstr "Tarkista _Päivitykset"
-
-#: ../gtk/main.ui.h:14
-msgid "Account assistant"
-msgstr "Käyttäjätili avustaja"
-
-#: ../gtk/main.ui.h:16
-msgid "SIP address or phone number:"
-msgstr "SIP osoite tai puhelin numero"
-
-#: ../gtk/main.ui.h:17
-msgid "Initiate a new call"
-msgstr "Aloita uusi puhelu"
-
-#: ../gtk/main.ui.h:18
-msgid "Contacts"
-msgstr "Yhteystiedot"
-
-#: ../gtk/main.ui.h:19
-msgid "Search"
-msgstr "Hae"
-
-#: ../gtk/main.ui.h:20
-msgid "Add contacts from directory"
-msgstr "Lisää yhteystiedot hakemistosta"
-
-#: ../gtk/main.ui.h:21
-msgid "Add contact"
-msgstr "Lisää yhteystieto"
-
-#: ../gtk/main.ui.h:22
-msgid "Clear call history"
-msgstr "Tyhjennä puhelu historia"
-
-#: ../gtk/main.ui.h:24
-msgid "My current identity:"
-msgstr "Minun nykyinen henkilllisyys"
-
-#: ../gtk/main.ui.h:25
-msgid "Autoanswer is enabled"
-msgstr "Automaattinen vastaaminen käytössä"
-
-#: ../gtk/parameters.ui.h:1
-msgid "anonymous"
-msgstr "anonyymi"
-
-#: ../gtk/parameters.ui.h:2
-msgid "GSSAPI"
-msgstr "GSSAPI 'tietoturva ohjelmointi käskypohja'"
-
-#: ../gtk/parameters.ui.h:3
-msgid "SASL"
-msgstr "SASL 'yksinkertainen salaus'"
-
-#: ../gtk/parameters.ui.h:4
-msgid "default soundcard"
-msgstr "vakio äänikortti"
-
-#: ../gtk/parameters.ui.h:5
-msgid "a sound card"
-msgstr "äänikortti"
-
-#: ../gtk/parameters.ui.h:6
-msgid "default camera"
-msgstr "vakio kamera"
-
-#: ../gtk/parameters.ui.h:7
-msgid "CIF"
-msgstr "CIF 'keskimääräinen kuvan tarkkuus'"
-
-#: ../gtk/parameters.ui.h:8
-msgid "Audio codecs"
-msgstr "Ääni pakkaukset 'codecs'"
-
-#: ../gtk/parameters.ui.h:9
-msgid "Video codecs"
-msgstr "Video pakkaukset 'codecs'"
-
-#: ../gtk/parameters.ui.h:10
-msgid "C"
-msgstr "C"
-
-#: ../gtk/parameters.ui.h:11
-msgid "SIP (UDP)"
-msgstr "SIP (UDP 'siirto ilman yhteyttä')"
-
-#: ../gtk/parameters.ui.h:12
-msgid "SIP (TCP)"
-msgstr "SIP (TCP 'luotettu siirto tavuttain')"
-
-#: ../gtk/parameters.ui.h:13
-msgid "SIP (TLS)"
-msgstr "SIP (TLS 'siirto SSL varmentimilla')"
-
-#: ../gtk/parameters.ui.h:14
-msgid "Settings"
-msgstr "Asetukset"
-
-#: ../gtk/parameters.ui.h:15
-msgid "This section defines your SIP address when not using a SIP account"
-msgstr "Tämä osio märittää sinun SIP osoitteen kun et käytä SIP tiliä"
-
-#: ../gtk/parameters.ui.h:16
-msgid "Your display name (eg: John Doe):"
-msgstr "Sinun näyttö nimi (esim: Matti Meikäläinen):"
-
-#: ../gtk/parameters.ui.h:17
-msgid "Your username:"
-msgstr "Sinun käyttäjänimi:"
-
-#: ../gtk/parameters.ui.h:18
-msgid "Your resulting SIP address:"
-msgstr "Tuloksena sinun SIP osoitteesi on:"
-
-#: ../gtk/parameters.ui.h:19
-msgid "Default identity"
-msgstr "Vakio henkilöllisyys"
-
-#: ../gtk/parameters.ui.h:20
-msgid "Wizard"
-msgstr "Velho - automaattisäätö"
-
-#: ../gtk/parameters.ui.h:21
-msgid "Add"
-msgstr "Lisää"
-
-#: ../gtk/parameters.ui.h:22
-msgid "Edit"
-msgstr "Muokkaa"
-
-#: ../gtk/parameters.ui.h:23
-msgid "Remove"
-msgstr "Poista"
-
-#: ../gtk/parameters.ui.h:24
-msgid "Proxy accounts"
-msgstr "Välityspalvelin tilit"
-
-#: ../gtk/parameters.ui.h:25
-msgid "Erase all passwords"
-msgstr "Poista kaikki salasanat"
-
-#: ../gtk/parameters.ui.h:26
-msgid "Privacy"
-msgstr "Yksityisyys"
-
-#: ../gtk/parameters.ui.h:27
-msgid "Automatically answer when a call is received"
-msgstr "Automaattinen vastaus kun puhelu on saapunut"
-
-#: ../gtk/parameters.ui.h:28
-msgid "Delay before answering (ms)"
-msgstr "Odota ennen vastaamista (ms)"
-
-#: ../gtk/parameters.ui.h:29
-msgid "Auto-answer"
-msgstr "Automaattinen vastaaja"
-
-#: ../gtk/parameters.ui.h:30
-msgid "Manage SIP Accounts"
-msgstr "Hallitse SIP tilejä"
-
-#: ../gtk/parameters.ui.h:31
-msgid "Ring sound:"
-msgstr "Soittoääni:"
-
-#: ../gtk/parameters.ui.h:32
-msgid "ALSA special device (optional):"
-msgstr "ALSA-'ääne parannus' erikoilaite (valinnainen):"
-
-#: ../gtk/parameters.ui.h:33
-msgid "Capture device:"
-msgstr "Tallennus laite:"
-
-#: ../gtk/parameters.ui.h:34
-msgid "Ring device:"
-msgstr "Soittoäänen laite:"
-
-#: ../gtk/parameters.ui.h:35
-msgid "Playback device:"
-msgstr "Äänentoistolaite:"
-
-#: ../gtk/parameters.ui.h:36
-msgid "Enable echo cancellation"
-msgstr "Käytä kaiun poistoa"
-
-#: ../gtk/parameters.ui.h:37
-msgid "Audio"
-msgstr "Ääni"
-
-#: ../gtk/parameters.ui.h:38
-msgid "Video input device:"
-msgstr "Videokuvan lähde:"
-
-#: ../gtk/parameters.ui.h:39
-msgid "Preferred video resolution:"
-msgstr "Toivottu videon tarkkuus:"
-
-#: ../gtk/parameters.ui.h:40
-msgid "Video output method:"
-msgstr "Videon ulostulo:"
-
-#: ../gtk/parameters.ui.h:41
-msgid "Show camera preview"
-msgstr "Näytä kameran esikatselu"
-
-#: ../gtk/parameters.ui.h:42
-msgid "Video preset:"
-msgstr "Video esiasetus:"
-
-#: ../gtk/parameters.ui.h:43
-msgid "Preferred video framerate:"
-msgstr "Toivottu videon kuvataajuus:"
-
-#: ../gtk/parameters.ui.h:44
-msgid "0 stands for \"unlimited\""
-msgstr "0 tarkoittaa \"rajoittamaton\""
-
-#: ../gtk/parameters.ui.h:45
-msgid "Video"
-msgstr "Video"
-
-#: ../gtk/parameters.ui.h:46
-msgid "Upload speed limit in Kbit/sec:"
-msgstr "Lähetys nopeus raja Kbit/sec:"
-
-#: ../gtk/parameters.ui.h:47
-msgid "Download speed limit in Kbit/sec:"
-msgstr "Lataus raja Kbit/sec:"
-
-#: ../gtk/parameters.ui.h:48
-msgid "Enable adaptive rate control"
-msgstr "Käytä mukautuvaa tason säätöä"
-
-#: ../gtk/parameters.ui.h:49
-msgid ""
-"Adaptive rate control is a technique to dynamically guess the available "
-"bandwidth during a call."
-msgstr "Mukautuva tason säätö arvailee käytettävissä olevan kastaleveyden puheun aikana."
-
-#: ../gtk/parameters.ui.h:50
-msgid "Bandwidth control"
-msgstr "Kastaleveyden hallinta"
-
-#: ../gtk/parameters.ui.h:51
-msgid "Multimedia settings"
-msgstr "Multimedia asetukset"
-
-#: ../gtk/parameters.ui.h:52
-msgid "Set Maximum Transmission Unit:"
-msgstr "Aseta suurin siirto yksikkö:"
-
-#: ../gtk/parameters.ui.h:53
-msgid "Send DTMFs as SIP info"
-msgstr "Lähetä DTMF:t SIP infona"
-
-#: ../gtk/parameters.ui.h:54
-msgid "Allow IPv6"
-msgstr "Salli IPv6"
-
-#: ../gtk/parameters.ui.h:55
-msgid "Transport"
-msgstr "Siirto"
-
-#: ../gtk/parameters.ui.h:56
-msgid "SIP/UDP port"
-msgstr "SIP/UDP portti"
-
-#: ../gtk/parameters.ui.h:58
-msgid "Random"
-msgstr "Satunnainen"
-
-#: ../gtk/parameters.ui.h:59
-msgid "SIP/TCP port"
-msgstr "SIP/TCP portti"
-
-#: ../gtk/parameters.ui.h:60
-msgid "Audio RTP/UDP:"
-msgstr "Ääni RTP/UDP:"
-
-#: ../gtk/parameters.ui.h:61
-msgid "Fixed"
-msgstr "Korjattu"
-
-#: ../gtk/parameters.ui.h:62
-msgid "Video RTP/UDP:"
-msgstr "Video RTP/UDP:"
-
-#: ../gtk/parameters.ui.h:63
-msgid "Tunnel"
-msgstr "Tunneli"
-
-#: ../gtk/parameters.ui.h:64
-msgid "DSCP fields"
-msgstr "DSCP kentät"
-
-#: ../gtk/parameters.ui.h:65
-msgid "Network protocol and ports"
-msgstr "Veskko protokolla ja portti"
-
-#: ../gtk/parameters.ui.h:66
-msgid "Direct connection to the Internet"
-msgstr "Suora yhteys internettiin "
-
-#: ../gtk/parameters.ui.h:67
-msgid "Behind NAT / Firewall (specify gateway IP )"
-msgstr "NAT / Palomuurin takaa (määritä yhdyskäytävä IP)"
-
-#: ../gtk/parameters.ui.h:68
-msgid "Behind NAT / Firewall (use STUN to resolve)"
-msgstr "NAT-osoitteenmuunnoksen / Palomuurin takaa (käytä STUN:nia)"
-
-#: ../gtk/parameters.ui.h:69
-msgid "Behind NAT / Firewall (use ICE)"
-msgstr "NAT-osoitteenmuunnoksen / Palomuurin takaa (käytä ICE:tä)"
-
-#: ../gtk/parameters.ui.h:70
-msgid "Behind NAT / Firewall (use uPnP)"
-msgstr "NAT-osoitteenmuunnoksen / Palomuurin takaa (käytä uPnP:tä)"
-
-#: ../gtk/parameters.ui.h:71
-msgid "Public IP address:"
-msgstr "Julkinen IP osoite:"
-
-#: ../gtk/parameters.ui.h:72
-msgid "Stun server:"
-msgstr "Stun-palvelin eli 'osoitteenmuunoksen takaisin haku'-palvelin:"
-
-#: ../gtk/parameters.ui.h:73
-msgid "NAT and Firewall"
-msgstr "NAT-osoitteenmuunos ja Palomuuri"
-
-#: ../gtk/parameters.ui.h:74
-msgid "Media encryption type"
-msgstr "Median salaus tyyppi"
-
-#: ../gtk/parameters.ui.h:75
-msgid "Use Lime for outgoing chat messages"
-msgstr "Käytä Lime:ä lähteviin viesteihin "
-
-#: ../gtk/parameters.ui.h:76
-msgid "Media encryption is mandatory"
-msgstr "Median salaus on pakollinen"
-
-#: ../gtk/parameters.ui.h:77
-msgid "Mandatory"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:78
-msgid "Preferred"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:79
-msgid "Encryption"
-msgstr "Salaus"
-
-#: ../gtk/parameters.ui.h:80
-msgid "Network settings"
-msgstr "Verkko asetukset:"
-
-#: ../gtk/parameters.ui.h:81 ../gtk/tunnel_config.ui.h:4
-msgid "Enable"
-msgstr "Käytössä"
-
-#: ../gtk/parameters.ui.h:82 ../gtk/tunnel_config.ui.h:5
-msgid "Disable"
-msgstr "Poissa käytöstä"
-
-#: ../gtk/parameters.ui.h:83
-msgid "Audio codecs"
-msgstr "Ääni codecs"
-
-#: ../gtk/parameters.ui.h:84
-msgid "Video codecs"
-msgstr "Video codecs"
-
-#: ../gtk/parameters.ui.h:85
-msgid "Codecs"
-msgstr "Codecs"
-
-#: ../gtk/parameters.ui.h:86
-msgid "Language"
-msgstr "Kieli"
-
-#: ../gtk/parameters.ui.h:87
-msgid "Show advanced settings"
-msgstr "Näytä edistyneet asetukset"
-
-#: ../gtk/parameters.ui.h:88
-msgid "Level"
-msgstr "Taso"
-
-#: ../gtk/parameters.ui.h:89
-msgid "User interface"
-msgstr "Käyttöliittymä"
-
-#: ../gtk/parameters.ui.h:93
-msgid "LDAP Account setup"
-msgstr "LDAP Tili asetukset"
-
-#: ../gtk/parameters.ui.h:94
-msgid "LDAP"
-msgstr "LDAP"
-
-#: ../gtk/parameters.ui.h:95
-msgid "Done"
-msgstr "Tehty"
-
-#: ../gtk/password.ui.h:1
-msgid "Linphone - Authentication required"
-msgstr "Linhone - Tunnistautuminen vaaditaan"
-
-#: ../gtk/password.ui.h:2
-msgid "Please enter the domain password"
-msgstr "Anna domain/verkkotunnussen salasana"
-
-#: ../gtk/provisioning-fetch.ui.h:1
-msgid "Configuring..."
-msgstr "Säädetään..."
-
-#: ../gtk/provisioning-fetch.ui.h:2
-msgid "Please wait while fetching configuration from server..."
-msgstr "Odota, säätöjä noudetaan palvelimelta..."
-
-#: ../gtk/setup_wizard.ui.h:1
-msgid "SIP account configuration assistant"
-msgstr "SIP tilin säätö avustaja"
-
-#: ../gtk/setup_wizard.ui.h:2
-msgid ""
-"Welcome!\n"
-"This assistant will help you to use a SIP account for your calls."
-msgstr "Tervetuoa!\nTämä avustaja auttaa sinua käyttämään SIP tiliä puheluissasi. "
-
-#: ../gtk/setup_wizard.ui.h:4
-msgid "Welcome to the account setup assistant"
-msgstr "Tervetuloa tili asetusten avustajaan"
-
-#: ../gtk/setup_wizard.ui.h:5
-msgid "Create an account on linphone.org"
-msgstr "Luo linphone.org tili"
-
-#: ../gtk/setup_wizard.ui.h:6
-msgid "I have already a linphone.org account and I just want to use it"
-msgstr "Minulla on jo linphone.org tili ja haluan kayttää sitä"
-
-#: ../gtk/setup_wizard.ui.h:7
-msgid "I have already a sip account and I just want to use it"
-msgstr "Minulla on jo sip tilli ja haluan käyttää sitä"
-
-#: ../gtk/setup_wizard.ui.h:8
-msgid "I want to specify a remote configuration URI"
-msgstr "Haluan täsmentää etäsäätöjä; URI-osoite"
-
-#: ../gtk/setup_wizard.ui.h:9
-msgid "Account setup assistant"
-msgstr "Tili asetusten avustaja"
-
-#: ../gtk/setup_wizard.ui.h:10
-msgid "Enter your account information"
-msgstr "Anna tili tietosi"
-
-#: ../gtk/setup_wizard.ui.h:11
-msgid "Username*"
-msgstr "Käyttäjätunnus*"
-
-#: ../gtk/setup_wizard.ui.h:12
-msgid "Password*"
-msgstr "Salasana*"
-
-#: ../gtk/setup_wizard.ui.h:13
-msgid "Domain*"
-msgstr "Domain/verkkotunnus*"
-
-#: ../gtk/setup_wizard.ui.h:14
-msgid "Proxy"
-msgstr "Välitysavelin"
-
-#: ../gtk/setup_wizard.ui.h:15
-msgid "Configure your account (step 1/1)"
-msgstr "Muokkaa tiliäsi (osa 1/1)"
-
-#: ../gtk/setup_wizard.ui.h:16
-msgid "Enter your linphone.org username"
-msgstr "Anna linphone.org käyttäjätunnus"
-
-#: ../gtk/setup_wizard.ui.h:19
-msgid "Enter your sip username (step 1/1)"
-msgstr "Anna sip käyttäjätunnus (osa 1/1)"
-
-#: ../gtk/setup_wizard.ui.h:20
-msgid "(*) Required fields"
-msgstr "(*) Vaaditus kohdat"
-
-#: ../gtk/setup_wizard.ui.h:21
-msgid "Email: (*)"
-msgstr "Sähköposti: (*)"
-
-#: ../gtk/setup_wizard.ui.h:22
-msgid "Username: (*)"
-msgstr "Käyttäjätunnus: (*)"
-
-#: ../gtk/setup_wizard.ui.h:23
-msgid "Password: (*)"
-msgstr "Salasana: (*)"
-
-#: ../gtk/setup_wizard.ui.h:24
-msgid "Confirm your password: (*)"
-msgstr "Vahvista salasana: (*)"
-
-#: ../gtk/setup_wizard.ui.h:25
-msgid "Keep me informed with linphone updates"
-msgstr "Ilmoita linphone päivityksistä"
-
-#: ../gtk/setup_wizard.ui.h:26
-msgid "Enter account information (step 1/2)"
-msgstr "Anna tili tiedot (osa 1/2)"
-
-#: ../gtk/setup_wizard.ui.h:27
-msgid "Your account is being created, please wait."
-msgstr "Sinun tiliäsi luodaan, pyydän odota."
-
-#: ../gtk/setup_wizard.ui.h:28
-msgid "Account creation in progress"
-msgstr "Tilin luominen edistyy"
-
-#: ../gtk/setup_wizard.ui.h:29
-msgid ""
-"Please validate your account by clicking on the link we just sent you by email.\n"
-"Then come back here and press Next button."
-msgstr "Vahvista tilisi avaamala linkin, joka on juuri lähetetty sähköpostiisi.\nSitten palaa ja paina seuraava."
-
-#: ../gtk/setup_wizard.ui.h:31
-msgid "Validation (step 2/2)"
-msgstr "Vahvistus (osa 2/2)"
-
-#: ../gtk/setup_wizard.ui.h:32
-msgid "Checking if your account is been validated, please wait."
-msgstr "Tarkistetaan että tilisi on vahvistettu, pyydän odota."
-
-#: ../gtk/setup_wizard.ui.h:33
-msgid "Account validation check in progress"
-msgstr "Tarkistetaan tilin vahvistusta "
-
-#: ../gtk/setup_wizard.ui.h:34
-msgid ""
-"Error, account not validated, username already used or server unreachable.\n"
-"Please go back and try again."
-msgstr "Virhe, tili ei ole vahvistettu, käyttäjätunnus oli jo käytössä tai palvelin tavoittamattomissa.\nPyydän palaa ja yritä uudelleen."
-
-#: ../gtk/setup_wizard.ui.h:36
-msgid "Error"
-msgstr "Virhe"
-
-#: ../gtk/setup_wizard.ui.h:37
-msgid "Thank you. Your account is now configured and ready for use."
-msgstr "Kiitos. Tilisi on muokattu ja valmis käyttöön."
-
-#: ../gtk/sip_account.ui.h:1
-msgid "Linphone - Configure a SIP account"
-msgstr "Linphone - Muokkaa SIP tiliä"
-
-#: ../gtk/sip_account.ui.h:2
-msgid "Your SIP identity:"
-msgstr "Sinun SIP henkilöllisyys:"
-
-#: ../gtk/sip_account.ui.h:3
-msgid "Looks like sip:@"
-msgstr "Näyttää seuraavalta sip:@"
-
-#: ../gtk/sip_account.ui.h:4
-msgid "sip:"
-msgstr "sip:"
-
-#: ../gtk/sip_account.ui.h:5
-msgid "SIP Proxy address:"
-msgstr "SIP välityspalvelin osoite:"
-
-#: ../gtk/sip_account.ui.h:6
-msgid "Looks like sip:"
-msgstr "Näyttää seuraavalta sip:"
-
-#: ../gtk/sip_account.ui.h:7
-msgid "Registration duration (sec):"
-msgstr "Rekisteröinnin kesto (sekunttia):"
-
-#: ../gtk/sip_account.ui.h:8
-msgid "Contact params (optional):"
-msgstr "Yhteystiedot (valinnainen):"
-
-#: ../gtk/sip_account.ui.h:9
-msgid "AVPF regular RTCP interval (sec):"
-msgstr "AVPF-'media siirto' tahdistusväli RTCP-'realiaikaisen tiedonsiirron' kanssa (sekunttia):"
-
-#: ../gtk/sip_account.ui.h:10
-msgid "Route (optional):"
-msgstr "Reitti (valinnainen):"
-
-#: ../gtk/sip_account.ui.h:11
-msgid "Transport"
-msgstr "Siirto"
-
-#: ../gtk/sip_account.ui.h:12
-msgid "Register"
-msgstr "Rekisteri"
-
-#: ../gtk/sip_account.ui.h:13
-msgid "Publish presence information"
-msgstr "Julkaise läsnäolo tiedot"
-
-#: ../gtk/sip_account.ui.h:14
-msgid "Enable AVPF"
-msgstr "Käytä AVPF:ää"
-
-#: ../gtk/sip_account.ui.h:15
-msgid "Configure a SIP account"
-msgstr "Muokkaa SIP tiliä"
-
-#: ../gtk/tunnel_config.ui.h:1
-msgid "Configure VoIP tunnel"
-msgstr "Muokkaa VoIP tunnelia"
-
-#: ../gtk/tunnel_config.ui.h:2
-msgid "Host"
-msgstr "Host eli Verkon solmu"
-
-#: ../gtk/tunnel_config.ui.h:3
-msgid "Port"
-msgstr "Portti"
-
-#: ../gtk/tunnel_config.ui.h:6
-msgid "Configure tunnel"
-msgstr "Muokkaa tunnelia"
-
-#: ../gtk/tunnel_config.ui.h:9
-msgid "Configure http proxy (optional)"
-msgstr "Muokkaa http välityspalinta (valinnainen)"
-
-#: ../gtk/waiting.ui.h:2
-msgid "Please wait"
-msgstr "Odota"
-
-#: ../coreapi/linphonecore.c:1594
-msgid "Ready"
-msgstr "Valmis"
-
-#: ../coreapi/linphonecore.c:2685
-msgid "Configuring"
-msgstr "Säädetään"
-
-#. must be known at that time
-#: ../coreapi/linphonecore.c:3084
-msgid "Contacting"
-msgstr "Yhdistetään"
-
-#: ../coreapi/linphonecore.c:3089
-msgid "Could not call"
-msgstr "Ei voinut soittaa"
-
-#: ../coreapi/linphonecore.c:3228
-msgid "Sorry, we have reached the maximum number of simultaneous calls"
-msgstr "Olen pahoillani, suurin yhtäaikaisten puheluiden määrä on saavutettu"
-
-#: ../coreapi/linphonecore.c:3388
-msgid "is contacting you"
-msgstr "on ottamassa yhteyttä sinuun"
-
-#: ../coreapi/linphonecore.c:3389
-msgid " and asked autoanswer."
-msgstr "ja pyytää automaattista vastausta."
-
-#: ../coreapi/linphonecore.c:3506
-msgid "Modifying call parameters..."
-msgstr "Maukataan soiton raja-arvoja..."
-
-#: ../coreapi/linphonecore.c:3898
-msgid "Connected."
-msgstr "Yhdistetty"
-
-#: ../coreapi/linphonecore.c:3923
-msgid "Call aborted"
-msgstr "Puhelu keskeytetty"
-
-#: ../coreapi/linphonecore.c:4125
-msgid "Could not pause the call"
-msgstr "Ei voinut laittaa puhelua tauolle"
-
-#: ../coreapi/linphonecore.c:4128
-msgid "Pausing the current call..."
-msgstr "Laitetaan tauolle nykyinen puhelu..."
-
-#: ../coreapi/misc.c:441
-msgid "Stun lookup in progress..."
-msgstr "Stun-'osoite haun' lukkiutuminen käynnissä..."
-
-#: ../coreapi/misc.c:657
-msgid "ICE local candidates gathering in progress..."
-msgstr "ICE paikallisia ehdokkaita kerätään..."
-
-#: ../coreapi/friend.c:48
-msgid "Online"
-msgstr "Verkossa"
-
-#: ../coreapi/friend.c:51
-msgid "Busy"
-msgstr "Kiireinen"
-
-#: ../coreapi/friend.c:54
-msgid "Be right back"
-msgstr "Palaan pian"
-
-#: ../coreapi/friend.c:57
-msgid "Away"
-msgstr "Poissa"
-
-#: ../coreapi/friend.c:60
-msgid "On the phone"
-msgstr "Puhuu puhelua"
-
-#: ../coreapi/friend.c:63
-msgid "Out to lunch"
-msgstr "Syömässä"
-
-#: ../coreapi/friend.c:66
-msgid "Do not disturb"
-msgstr "Älä häiritse"
-
-#: ../coreapi/friend.c:69
-msgid "Moved"
-msgstr "Siirtynyt"
-
-#: ../coreapi/friend.c:72
-msgid "Using another messaging service"
-msgstr "Käyttää toista yhteys ohjelmaa"
-
-#: ../coreapi/friend.c:75
-msgid "Offline"
-msgstr "Verkossa"
-
-#: ../coreapi/friend.c:78
-msgid "Pending"
-msgstr "Odottaa"
-
-#: ../coreapi/friend.c:81
-msgid "Vacation"
-msgstr "Lomalla"
-
-#: ../coreapi/friend.c:83
-msgid "Unknown status"
-msgstr "Tuntematon tila"
-
-#: ../coreapi/proxy.c:339
-msgid ""
-"The sip proxy address you entered is invalid, it must start with \"sip:\" "
-"followed by a hostname."
-msgstr "Antamasi välityspalvelin osoite on kelvoton. Se täytyy alkaa \"sip:\" minkä jälkeen tulee host-verkkosolmuntunnus."
-
-#: ../coreapi/proxy.c:345
-msgid ""
-"The sip identity you entered is invalid.\n"
-"It should look like sip:username@proxydomain, such as sip:alice@example.net"
-msgstr "Antamasi sip tiedot ovat kelvoton.\nSen pitäisi näyttää sip:käyttäjätunnus@välityspalvelin, kuten sip:alice@esimerkki.net"
-
-#: ../coreapi/proxy.c:979
-msgid "Looking for telephone number destination..."
-msgstr "Etsitään puhelinnumeron kohdetta..."
-
-#: ../coreapi/proxy.c:983
-msgid "Could not resolve this number."
-msgstr "Ei voi käsittää tätä numeroa."
-
-#: ../coreapi/proxy.c:1437
-#, c-format
-msgid "Could not login as %s"
-msgstr "%s ei pystynyt kirjautumaan"
-
-#: ../coreapi/proxy.c:1522
-#, c-format
-msgid "Refreshing on %s..."
-msgstr "%s on huilaamassa..."
-
-#: ../coreapi/callbacks.c:415
-msgid "Remote ringing."
-msgstr "vastapuoli pirisee"
-
-#: ../coreapi/callbacks.c:427
-msgid "Remote ringing..."
-msgstr "vastapuoli pirisee..."
-
-#: ../coreapi/callbacks.c:450
-msgid "Early media."
-msgstr "Aikainen media eli aloita puhelu ennen yhteyden lukittautumista"
-
-#: ../coreapi/callbacks.c:480
-#, c-format
-msgid "Call answered by %s"
-msgstr "Puheluun vastasi %s"
-
-#: ../coreapi/callbacks.c:522
-msgid "Call resumed."
-msgstr "Puhelu jaettiin."
-
-#: ../coreapi/callbacks.c:577
-msgid "Incompatible, check codecs or security settings..."
-msgstr "Yhteensopimaton, tarkista kodekit tai suojaus asetukset..."
-
-#: ../coreapi/callbacks.c:582 ../coreapi/callbacks.c:918
-msgid "Incompatible media parameters."
-msgstr "Yhteensopimattomat media raja-arvot."
-
-#: ../coreapi/callbacks.c:607
-msgid "We have been resumed."
-msgstr "Meidän puhelu on jaettu."
-
-#. we are being paused
-#: ../coreapi/callbacks.c:615
-msgid "We are paused by other party."
-msgstr "Meidän puhelu on laitettu taauolle toisen osapuolen taholta."
-
-#: ../coreapi/callbacks.c:625
-msgid "Call is updated by remote."
-msgstr "Vastapuoli on päivittänyt puhelun."
-
-#: ../coreapi/callbacks.c:794
-msgid "Call terminated."
-msgstr "Puhelu keskeytetty."
-
-#: ../coreapi/callbacks.c:822
-msgid "User is busy."
-msgstr "Käyttäjä on kiireinen."
-
-#: ../coreapi/callbacks.c:823
-msgid "User is temporarily unavailable."
-msgstr "Käyttäjä hetkellisesti tavoittamattomissa."
-
-#. char *retrymsg=_("%s. Retry after %i minute(s).");
-#: ../coreapi/callbacks.c:825
-msgid "User does not want to be disturbed."
-msgstr "Käyttäjä ei halua tulla häirityksi."
-
-#: ../coreapi/callbacks.c:826
-msgid "Call declined."
-msgstr "Soitto evätty."
-
-#: ../coreapi/callbacks.c:841
-msgid "Request timeout."
-msgstr "Soitto yritys aikakatkaistiin."
-
-#: ../coreapi/callbacks.c:872
-msgid "Redirected"
-msgstr "Uudelleen ohjattu"
-
-#: ../coreapi/callbacks.c:922
-msgid "Call failed."
-msgstr "Puhelu epäonnistui."
-
-#: ../coreapi/callbacks.c:1000
-#, c-format
-msgid "Registration on %s successful."
-msgstr "Rekitöröityminen %sn onnistui."
-
-#: ../coreapi/callbacks.c:1001
-#, c-format
-msgid "Unregistration on %s done."
-msgstr "Rekisterin poisto %s:stä on tehty."
-
-#: ../coreapi/callbacks.c:1019
-msgid "no response timeout"
-msgstr "ei vastausta, aikakatkaistiin"
-
-#: ../coreapi/callbacks.c:1022
-#, c-format
-msgid "Registration on %s failed: %s"
-msgstr "Rekistöröityminen %sn epäonnistui: %s"
-
-#: ../coreapi/callbacks.c:1029
-msgid "Service unavailable, retrying"
-msgstr "Palvelin saavuttamattomissa, uudelleen yritetään"
-
-#. if encryption is DTLS, no status to be displayed
-#: ../coreapi/linphonecall.c:204
-#, c-format
-msgid "Authentication token is %s"
-msgstr "Todennus merkki on %s"
-
-#: ../coreapi/linphonecall.c:1663
-#, c-format
-msgid "Call parameters could not be modified: %s."
-msgstr "Soiton raja-arvoja ei voitu muokata: %s."
-
-#: ../coreapi/linphonecall.c:1665
-msgid "Call parameters were successfully modified."
-msgstr "Soiton raja-arvot ovat onnistuneesti muokattu."
-
-#: ../coreapi/linphonecall.c:4636
-#, c-format
-msgid "You have missed %i call."
-msgid_plural "You have missed %i calls."
-msgstr[0] "Sinulla on %i vastaamaton puhelu."
-msgstr[1] "Sinulla on %i vastaamatonta puhelua."
-
-#: ../coreapi/call_log.c:223
-msgid "aborted"
-msgstr "keskeytetty"
-
-#: ../coreapi/call_log.c:226
-msgid "completed"
-msgstr "valmis"
-
-#: ../coreapi/call_log.c:229
-msgid "missed"
-msgstr "vastaamaton"
-
-#: ../coreapi/call_log.c:232
-msgid "unknown"
-msgstr "tuntematon"
-
-#: ../coreapi/call_log.c:234
-#, c-format
-msgid ""
-"%s at %s\n"
-"From: %s\n"
-"To: %s\n"
-"Status: %s\n"
-"Duration: %i mn %i sec\n"
-msgstr "%s at %s\nMistä: %s\nMihin: %s\nTila: %s\nKasto: %i minuuttia %i sekunttia\n"
-
-#: ../coreapi/call_log.c:235
-msgid "Outgoing call"
-msgstr "Lähtevä puhelu"
-
-#: ../gtk/videowindow.c:72
-#, c-format
-msgid "Cannot play %s."
-msgstr "Ei voi toistaa %s."
-
-#: ../gtk/videowindow.c:252
-msgid "Take screenshot"
-msgstr ""
diff --git a/po/fr.po b/po/fr.po
deleted file mode 100644
index 0b8c6ae59..000000000
--- a/po/fr.po
+++ /dev/null
@@ -1,2094 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-#
-# Translators:
-# Belledonne Communications , 2015-2016
-# Gautier Pelloux , 2014
-# Gautier Pelloux , 2014
-# Gautier Pelloux , 2014-2016
-# Simon Morlat , 2001
-msgid ""
-msgstr ""
-"Project-Id-Version: linphone-gtk\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-19 14:01+0200\n"
-"PO-Revision-Date: 2016-05-10 09:59+0000\n"
-"Last-Translator: Belledonne Communications \n"
-"Language-Team: French (http://www.transifex.com/belledonne-communications/linphone-gtk/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-#: ../gtk/calllogs.c:178
-#, c-format
-msgid "Call %s"
-msgstr "Appeler %s"
-
-#: ../gtk/calllogs.c:179
-#, c-format
-msgid "Send text to %s"
-msgstr "Chatter avec %s"
-
-#: ../gtk/calllogs.c:181
-#, c-format
-msgid "Add %s to your contact list"
-msgstr "Ajouter %s à la liste de contacts"
-
-#: ../gtk/calllogs.c:245 ../gtk/main.ui.h:23
-msgid "Recent calls"
-msgstr "Appels récents"
-
-#: ../gtk/calllogs.c:260
-#, c-format
-msgid "Recent calls (%i)"
-msgstr "Appels récents (%i)"
-
-#: ../gtk/calllogs.c:334
-msgid "n/a"
-msgstr "inconnu"
-
-#: ../gtk/calllogs.c:337
-msgid "Aborted"
-msgstr "Abandonné"
-
-#: ../gtk/calllogs.c:340
-msgid "Missed"
-msgstr "Manqué"
-
-#: ../gtk/calllogs.c:343
-msgid "Declined"
-msgstr "Refusé"
-
-#: ../gtk/calllogs.c:349
-#, c-format
-msgid "%i minute"
-msgid_plural "%i minutes"
-msgstr[0] "%i minute"
-msgstr[1] "%i minutes"
-
-#: ../gtk/calllogs.c:352
-#, c-format
-msgid "%i second"
-msgid_plural "%i seconds"
-msgstr[0] "%i seconde"
-msgstr[1] "%i secondes"
-
-#: ../gtk/calllogs.c:357
-#, c-format
-msgid ""
-"%s\tQuality: %s\n"
-"%s\t%s\t"
-msgstr "%s\tQualité: %s\n%s\t%s\t"
-
-#: ../gtk/calllogs.c:361
-#, c-format
-msgid "%s\t%s"
-msgstr "%s\t%s"
-
-#: ../gtk/conference.c:38 ../gtk/in_call_frame.ui.h:11
-msgid "Conference"
-msgstr "Conférence"
-
-#: ../gtk/conference.c:46
-msgid "Me"
-msgstr "Moi"
-
-#: ../gtk/support.c:49 ../gtk/support.c:73 ../gtk/support.c:102
-#, c-format
-msgid "Couldn't find pixmap file: %s"
-msgstr "Icone non trouvée: %s"
-
-#: ../gtk/chat.c:207 ../gtk/chat.c:265
-msgid "Sending..."
-msgstr "Envoi en cours..."
-
-#: ../gtk/chat.c:224 ../gtk/chat.c:274
-msgid "Message not sent"
-msgstr "Message non envoyé"
-
-#: ../gtk/chat.c:498
-msgid "Copy"
-msgstr "Copier"
-
-#: ../gtk/main.c:134
-msgid "log to stdout some debug information while running."
-msgstr "affiche des informations de debogage"
-
-#: ../gtk/main.c:135
-msgid "display version and exit."
-msgstr "Afficher la version et quitter."
-
-#: ../gtk/main.c:136
-msgid "path to a file to write logs into."
-msgstr "chemin vers le fichier de logs."
-
-#: ../gtk/main.c:137
-msgid "Start linphone with video disabled."
-msgstr "Démarrer linphone avec la vidéo désactivée."
-
-#: ../gtk/main.c:138
-msgid "Start only in the system tray, do not show the main interface."
-msgstr "Démarre iconifié, sans interface principale."
-
-#: ../gtk/main.c:139
-msgid "address to call right now"
-msgstr "adresse à appeler maintenant"
-
-#: ../gtk/main.c:140
-msgid ""
-"Specifiy a working directory (should be the base of the installation, eg: "
-"c:\\Program Files\\Linphone)"
-msgstr "Spécifie un répertoire de travail (qui devrait être le répertoire d'installation, par exemple c:\\Program Files\\Linphone)"
-
-#: ../gtk/main.c:141
-msgid "Configuration file"
-msgstr "Ficher de configuration"
-
-#: ../gtk/main.c:142
-msgid "Run the audio assistant"
-msgstr "Démarre l'assistant audio"
-
-#: ../gtk/main.c:143
-msgid "Run self test and exit 0 if succeed"
-msgstr "Exécuter le test local et retourner 0 en cas de succès"
-
-#: ../gtk/main.c:1058
-#, c-format
-msgid ""
-"%s would like to add you to his/her contact list.\n"
-"Would you add him/her to your contact list and allow him/her to see your presence status?\n"
-"If you answer no, this person will be temporarily blacklisted."
-msgstr "%s souhaite vous ajouter à sa liste de contact.\nSouhaitez vous l'ajouter à votre liste également et l'autoriser à voir votre information de présence ?\nSi vous répondez non, cette personne sera mise temporairement sur liste noire."
-
-#: ../gtk/main.c:1135
-#, c-format
-msgid ""
-"Please enter your password for username %s\n"
-" at realm %s:"
-msgstr "Entrez le mot de passe pour %s\n sur le domaine %s:"
-
-#: ../gtk/main.c:1244
-msgid "Call error"
-msgstr "Erreur lors de l'appel"
-
-#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942
-msgid "Call ended"
-msgstr "Appel terminé."
-
-#: ../gtk/main.c:1250 ../coreapi/call_log.c:235
-msgid "Incoming call"
-msgstr "Appel entrant"
-
-#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2
-msgid "Answer"
-msgstr "Répondre"
-
-#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3
-msgid "Decline"
-msgstr "Refuser"
-
-#: ../gtk/main.c:1262
-msgid "Call paused"
-msgstr "Appel en pause"
-
-#: ../gtk/main.c:1262
-#, c-format
-msgid "by %s"
-msgstr "b>par %s"
-
-#: ../gtk/main.c:1336
-#, c-format
-msgid "%s proposed to start video. Do you accept ?"
-msgstr "%s propose de démarrer la vidéo. Acceptez-vous ?"
-
-#: ../gtk/main.c:1502
-msgid "Website link"
-msgstr "Lien site web"
-
-#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1
-msgid "Linphone"
-msgstr "Linphone"
-
-#: ../gtk/main.c:1562
-msgid "A video internet phone"
-msgstr "Appels vidéo via internet"
-
-#: ../gtk/main.c:1624
-#, c-format
-msgid "%s (Default)"
-msgstr "%s (par défaut)"
-
-#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080
-#, c-format
-msgid "We are transferred to %s"
-msgstr "Transfert vers %s"
-
-#: ../gtk/main.c:2008
-msgid ""
-"No sound cards have been detected on this computer.\n"
-"You won't be able to send or receive audio calls."
-msgstr "Aucune carte son n'a été détectée sur cet ordinateur.\nVous ne pourrez pas effectuer d'appels audio."
-
-#: ../gtk/main.c:2173
-msgid "A free SIP video-phone"
-msgstr "Un visiophone libre"
-
-#: ../gtk/main.c:2292
-#, c-format
-msgid "Hello\n"
-msgstr "Bonjour\n"
-
-#: ../gtk/friendlist.c:460
-msgid "Add to addressbook"
-msgstr "Ajouter au carnet d'adresse"
-
-#: ../gtk/friendlist.c:626
-#, c-format
-msgid "Search in %s directory"
-msgstr "Rechercher dans l'annuaire de %s"
-
-#: ../gtk/friendlist.c:773
-msgid "Invalid sip contact !"
-msgstr "Contact sip invalide !"
-
-#: ../gtk/friendlist.c:820
-#, c-format
-msgid "Add a new contact"
-msgstr "Ajouter un nouveau contact"
-
-#: ../gtk/friendlist.c:823
-#, c-format
-msgid "Edit contact '%s'"
-msgstr "Editer le contact '%s'"
-
-#: ../gtk/friendlist.c:824
-#, c-format
-msgid "Delete contact '%s'"
-msgstr "Supprimer le contact '%s'"
-
-#: ../gtk/friendlist.c:825
-#, c-format
-msgid "Delete chat history of '%s'"
-msgstr "Supprimer l'historique de chat de '%s'"
-
-#: ../gtk/friendlist.c:862
-#, c-format
-msgid "Add new contact from %s directory"
-msgstr "Ajouter un contact depuis l'annuaire %s"
-
-#: ../gtk/propertybox.c:592 ../gtk/contact.ui.h:1
-msgid "Name"
-msgstr "Nom"
-
-#: ../gtk/propertybox.c:598
-msgid "Rate (Hz)"
-msgstr "Fréquence (Hz)"
-
-#: ../gtk/propertybox.c:604
-msgid "Status"
-msgstr "Etat"
-
-#: ../gtk/propertybox.c:617
-msgid "IP Bitrate (kbit/s)"
-msgstr "Débit IP (kbit/s)"
-
-#: ../gtk/propertybox.c:628
-msgid "Parameters"
-msgstr "Paramètres"
-
-#: ../gtk/propertybox.c:670 ../gtk/propertybox.c:824
-msgid "Enabled"
-msgstr "Activé"
-
-#: ../gtk/propertybox.c:672 ../gtk/propertybox.c:824 ../gtk/parameters.ui.h:57
-msgid "Disabled"
-msgstr "Désactivé"
-
-#: ../gtk/propertybox.c:902
-msgid "Account"
-msgstr "Compte"
-
-#: ../gtk/propertybox.c:1170
-msgid "English"
-msgstr "Anglais"
-
-#: ../gtk/propertybox.c:1171
-msgid "French"
-msgstr "Français"
-
-#: ../gtk/propertybox.c:1172
-msgid "Swedish"
-msgstr "Suédois"
-
-#: ../gtk/propertybox.c:1173
-msgid "Italian"
-msgstr "Italien"
-
-#: ../gtk/propertybox.c:1174
-msgid "Spanish"
-msgstr "Espagnol"
-
-#: ../gtk/propertybox.c:1175
-msgid "Brazilian Portugese"
-msgstr "Portugais brésilien"
-
-#: ../gtk/propertybox.c:1176
-msgid "Polish"
-msgstr "Polonais"
-
-#: ../gtk/propertybox.c:1177
-msgid "German"
-msgstr "Allemand"
-
-#: ../gtk/propertybox.c:1178
-msgid "Russian"
-msgstr "Russe"
-
-#: ../gtk/propertybox.c:1179
-msgid "Japanese"
-msgstr "日本語"
-
-#: ../gtk/propertybox.c:1180
-msgid "Dutch"
-msgstr "Néérlandais"
-
-#: ../gtk/propertybox.c:1181
-msgid "Hungarian"
-msgstr "Hongrois"
-
-#: ../gtk/propertybox.c:1182
-msgid "Czech"
-msgstr "Tchèque"
-
-#: ../gtk/propertybox.c:1183
-msgid "Chinese"
-msgstr "简体中文"
-
-#: ../gtk/propertybox.c:1184
-msgid "Traditional Chinese"
-msgstr "Chinois traditionnel"
-
-#: ../gtk/propertybox.c:1185
-msgid "Norwegian"
-msgstr "Norvégien"
-
-#: ../gtk/propertybox.c:1186
-msgid "Hebrew"
-msgstr "Hébreu"
-
-#: ../gtk/propertybox.c:1187
-msgid "Serbian"
-msgstr "Serbe"
-
-#: ../gtk/propertybox.c:1188
-msgid "Arabic"
-msgstr "Arabe"
-
-#: ../gtk/propertybox.c:1189
-msgid "Turkish"
-msgstr "Turc"
-
-#: ../gtk/propertybox.c:1246
-msgid ""
-"You need to restart linphone for the new language selection to take effect."
-msgstr "La nouvelle selection de langue prendra effet au prochain démarrage de linphone."
-
-#: ../gtk/propertybox.c:1332
-msgid "None"
-msgstr "Aucun"
-
-#: ../gtk/propertybox.c:1336
-msgid "SRTP"
-msgstr "SRTP"
-
-#: ../gtk/propertybox.c:1342
-msgid "DTLS"
-msgstr "DTLS"
-
-#: ../gtk/propertybox.c:1349
-msgid "ZRTP"
-msgstr "ZRTP"
-
-#: ../gtk/update.c:80
-#, c-format
-msgid ""
-"A more recent version is availalble from %s.\n"
-"Would you like to open a browser to download it ?"
-msgstr "Une version plus récente est disponible sur %s.\nVoulez vous ouvrir le navigateur afin de pouvoir télécharger la dernière version ?"
-
-#: ../gtk/update.c:91
-msgid "You are running the lastest version."
-msgstr "Vous utilisez la dernière version."
-
-#: ../gtk/buddylookup.c:85
-msgid "Firstname, Lastname"
-msgstr "Prénom, Nom"
-
-#: ../gtk/buddylookup.c:160
-msgid "Error communicating with server."
-msgstr "Erreur de communication avec le serveur."
-
-#: ../gtk/buddylookup.c:164
-msgid "Connecting..."
-msgstr "Connexion..."
-
-#: ../gtk/buddylookup.c:168
-msgid "Connected"
-msgstr "Connecté"
-
-#: ../gtk/buddylookup.c:172
-msgid "Receiving data..."
-msgstr "Reception des données"
-
-#: ../gtk/buddylookup.c:180
-#, c-format
-msgid "Found %i contact"
-msgid_plural "Found %i contacts"
-msgstr[0] "%i contact trouvé."
-msgstr[1] "%i contacts trouvés."
-
-#: ../gtk/setupwizard.c:219
-msgid "Username is already in use!"
-msgstr "Ce nom d'utilisateur est déjà pris."
-
-#: ../gtk/setupwizard.c:223
-msgid "Failed to check username availability. Please try again later."
-msgstr "Impossible de vérifier la disponibilité de ce nom d'utilisateur. Veuillez réessayer plus tard."
-
-#: ../gtk/incall_view.c:67 ../gtk/incall_view.c:87
-#, c-format
-msgid "Call #%i"
-msgstr "Appel #%i"
-
-#: ../gtk/incall_view.c:145
-#, c-format
-msgid "Transfer to call #%i with %s"
-msgstr "Transférer vers l'appel #%i avec %s"
-
-#: ../gtk/incall_view.c:202 ../gtk/incall_view.c:205
-msgid "Not used"
-msgstr "Non utilisé"
-
-#: ../gtk/incall_view.c:212
-msgid "ICE not activated"
-msgstr "ICE non activé"
-
-#: ../gtk/incall_view.c:214
-msgid "ICE failed"
-msgstr "Erreur ICE"
-
-#: ../gtk/incall_view.c:216
-msgid "ICE in progress"
-msgstr "Négociation ICE en cours"
-
-#: ../gtk/incall_view.c:218
-msgid "Going through one or more NATs"
-msgstr "Via un ou plusieurs NATs"
-
-#: ../gtk/incall_view.c:220
-msgid "Direct"
-msgstr "En direct"
-
-#: ../gtk/incall_view.c:222
-msgid "Through a relay server"
-msgstr "Via un serveur relais"
-
-#: ../gtk/incall_view.c:230
-msgid "uPnP not activated"
-msgstr "uPnP non activé"
-
-#: ../gtk/incall_view.c:232
-msgid "uPnP in progress"
-msgstr "uPnP en cours"
-
-#: ../gtk/incall_view.c:234
-msgid "uPnp not available"
-msgstr "uPnP est indisponible"
-
-#: ../gtk/incall_view.c:236
-msgid "uPnP is running"
-msgstr "uPnP en cours d’exécution"
-
-#: ../gtk/incall_view.c:238
-msgid "uPnP failed"
-msgstr "uPnP a échoué."
-
-#: ../gtk/incall_view.c:248 ../gtk/incall_view.c:249
-msgid "Direct or through server"
-msgstr "Directe ou via un serveur"
-
-#: ../gtk/incall_view.c:258 ../gtk/incall_view.c:270
-#, c-format
-msgid ""
-"download: %f\n"
-"upload: %f (kbit/s)"
-msgstr "débit descendant : %f\ndébit ascendant : %f (kbits/s)"
-
-#: ../gtk/incall_view.c:263 ../gtk/incall_view.c:265
-#, c-format
-msgid "%ix%i @ %f fps"
-msgstr "%ix%i @ %f fps"
-
-#: ../gtk/incall_view.c:295
-#, c-format
-msgid "%.3f seconds"
-msgstr "%.3f secondes"
-
-#: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10
-#: ../gtk/videowindow.c:248
-msgid "Hang up"
-msgstr "Raccrocher"
-
-#: ../gtk/incall_view.c:558
-msgid "Calling..."
-msgstr "Tentative d'appel..."
-
-#: ../gtk/incall_view.c:561 ../gtk/incall_view.c:793
-msgid "00:00:00"
-msgstr "00:00:00"
-
-#: ../gtk/incall_view.c:572
-msgid "Incoming call"
-msgstr "Appel entrant"
-
-#: ../gtk/incall_view.c:609
-msgid "good"
-msgstr "bon"
-
-#: ../gtk/incall_view.c:611
-msgid "average"
-msgstr "moyen"
-
-#: ../gtk/incall_view.c:613
-msgid "poor"
-msgstr "faible"
-
-#: ../gtk/incall_view.c:615
-msgid "very poor"
-msgstr "très faible"
-
-#: ../gtk/incall_view.c:617
-msgid "too bad"
-msgstr "nulle"
-
-#: ../gtk/incall_view.c:618 ../gtk/incall_view.c:634
-msgid "unavailable"
-msgstr "indisponible"
-
-#: ../gtk/incall_view.c:732
-msgid "Secured by SRTP"
-msgstr "Sécurisé par SRTP"
-
-#: ../gtk/incall_view.c:738
-msgid "Secured by DTLS"
-msgstr "Sécurisé par DTLS"
-
-#: ../gtk/incall_view.c:744
-#, c-format
-msgid "Secured by ZRTP - [auth token: %s]"
-msgstr "Sécurisé par ZRTP- [jeton: %s]"
-
-#: ../gtk/incall_view.c:748
-msgid "Set unverified"
-msgstr "Marquer comme non vérifié"
-
-#: ../gtk/incall_view.c:748
-msgid "Set verified"
-msgstr "Marquer comme vérifié"
-
-#: ../gtk/incall_view.c:788
-msgid "In conference"
-msgstr "En conférence"
-
-#: ../gtk/incall_view.c:788
-msgid "In call"
-msgstr "Appel en cours"
-
-#: ../gtk/incall_view.c:825
-msgid "Paused call"
-msgstr "Appel en attente"
-
-#: ../gtk/incall_view.c:862
-msgid "Call ended."
-msgstr "Appel terminé."
-
-#: ../gtk/incall_view.c:893
-msgid "Transfer in progress"
-msgstr "Transfert en cours"
-
-#: ../gtk/incall_view.c:896
-msgid "Transfer done."
-msgstr "Transfert terminé"
-
-#: ../gtk/incall_view.c:899
-msgid "Transfer failed."
-msgstr "Transfert échoué"
-
-#: ../gtk/incall_view.c:930
-msgid "Resume"
-msgstr "Reprendre"
-
-#: ../gtk/incall_view.c:930 ../gtk/in_call_frame.ui.h:7
-msgid "Pause"
-msgstr "Pause"
-
-#: ../gtk/incall_view.c:996
-#, c-format
-msgid ""
-"Recording into\n"
-"%s %s"
-msgstr "Enregistrement dans\n%s %s"
-
-#: ../gtk/incall_view.c:996
-msgid "(Paused)"
-msgstr "(en attente)"
-
-#: ../gtk/loginframe.c:75
-#, c-format
-msgid "Please enter login information for %s"
-msgstr "Entrez vos identifiants pour %s"
-
-#: ../gtk/config-fetching.c:57
-#, c-format
-msgid "fetching from %s"
-msgstr "chargement depuis %s"
-
-#: ../gtk/config-fetching.c:73
-#, c-format
-msgid "Downloading of remote configuration from %s failed."
-msgstr "Le chargement de la configuration depuis %s a échoué."
-
-#: ../gtk/audio_assistant.c:103
-msgid "No voice detected"
-msgstr "Voix non détectée"
-
-#: ../gtk/audio_assistant.c:104
-msgid "Too low"
-msgstr "Trop bas"
-
-#: ../gtk/audio_assistant.c:105
-msgid "Good"
-msgstr "Bien"
-
-#: ../gtk/audio_assistant.c:106
-msgid "Too loud"
-msgstr "Trop bruyant"
-
-#: ../gtk/audio_assistant.c:188
-msgid "Did you hear three beeps ?"
-msgstr "Avez-vous entendu trois bips ?"
-
-#: ../gtk/audio_assistant.c:301 ../gtk/audio_assistant.c:306
-msgid "Sound preferences not found "
-msgstr "Préférences son non trouvé"
-
-#: ../gtk/audio_assistant.c:315
-msgid "Cannot launch system sound control "
-msgstr "Impossible de démarrer le contrôleur système du son"
-
-#: ../gtk/audio_assistant.c:327
-msgid ""
-"Welcome!\n"
-"This assistant will help you to configure audio settings for Linphone"
-msgstr "Bienvenue !\nCet assistant va vous aider à régler les paramètres audio de votre ordinateur pour une utilisation optimale avec Linphone."
-
-#: ../gtk/audio_assistant.c:337
-msgid "Capture device"
-msgstr "Périphérique de capture"
-
-#: ../gtk/audio_assistant.c:338
-msgid "Recorded volume"
-msgstr "Volume enregistré"
-
-#: ../gtk/audio_assistant.c:342
-msgid "No voice"
-msgstr "Silencieux"
-
-#: ../gtk/audio_assistant.c:343 ../gtk/audio_assistant.c:382
-msgid "System sound preferences"
-msgstr "Préférences son système"
-
-#: ../gtk/audio_assistant.c:378
-msgid "Playback device"
-msgstr "Périphérique d'écoute"
-
-#: ../gtk/audio_assistant.c:379
-msgid "Play three beeps"
-msgstr "Joue trois bips"
-
-#: ../gtk/audio_assistant.c:412
-msgid "Press the record button and say some words"
-msgstr "Appuyer sur le bouton enregistrer et dites quelques mots"
-
-#: ../gtk/audio_assistant.c:413
-msgid "Listen to your record voice"
-msgstr "Ecoutez votre voix enregistrée"
-
-#: ../gtk/audio_assistant.c:414 ../gtk/conf_frame.ui.h:2
-#: ../gtk/in_call_frame.ui.h:4
-msgid "Record"
-msgstr "Enregistrer"
-
-#: ../gtk/audio_assistant.c:415
-msgid "Play"
-msgstr "Jouer"
-
-#: ../gtk/audio_assistant.c:442
-msgid "Let's start Linphone now"
-msgstr "Démarrons Linphone maintenant"
-
-#: ../gtk/audio_assistant.c:513
-msgid "Audio Assistant"
-msgstr "Assistant audio"
-
-#: ../gtk/audio_assistant.c:523 ../gtk/main.ui.h:15
-msgid "Audio assistant"
-msgstr "Assistant audio"
-
-#: ../gtk/audio_assistant.c:528
-msgid "Mic Gain calibration"
-msgstr "Calibration du gain du microphone"
-
-#: ../gtk/audio_assistant.c:534
-msgid "Speaker volume calibration"
-msgstr "Calibration du volume du haut parleur"
-
-#: ../gtk/audio_assistant.c:539
-msgid "Record and Play"
-msgstr "Enregistrer et joue"
-
-#: ../gtk/audio_assistant.c:544 ../gtk/setup_wizard.ui.h:38
-msgid "Terminating"
-msgstr "En cours d’arrêt."
-
-#: ../gtk/about.ui.h:1
-msgid "About Linphone"
-msgstr "À propos de Linphone"
-
-#: ../gtk/about.ui.h:2
-msgid "(C) Belledonne Communications, 2010\n"
-msgstr "(C) Belledonne Communications, 2010\n"
-
-#: ../gtk/about.ui.h:4
-msgid "An internet video phone using the standard SIP (rfc3261) protocol."
-msgstr "Un visiophone pour l'internet, compatible SIP (rfc3261)"
-
-#: ../gtk/about.ui.h:5
-msgid ""
-"fr: Simon Morlat\n"
-"en: Simon Morlat and Delphine Perreau\n"
-"it: Alberto Zanoni \n"
-"de: Jean-Jacques Sarton \n"
-"sv: Daniel Nylander \n"
-"es: Jesus Benitez \n"
-"ja: YAMAGUCHI YOSHIYA \n"
-"pt_BR: Rafael Caesar Lenzi \n"
-"pl: Robert Nasiadek \n"
-"cs: Petr Pisar \n"
-"hu: anonymous\n"
-"he: Eli Zaretskii \n"
-msgstr "fr: Simon Morlat\nen: Simon Morlat and Delphine Perreau\nit: Alberto Zanoni \nde: Jean-Jacques Sarton \nsv: Daniel Nylander \nes: Jesus Benitez \nja: YAMAGUCHI YOSHIYA \npt_BR: Rafael Caesar Lenzi \npl: Robert Nasiadek \ncs: Petr Pisar \nhu: anonymous\nhe: Eli Zaretskii \n"
-
-#: ../gtk/buddylookup.ui.h:1
-msgid "Search contacts in directory"
-msgstr "Rechercher dans l'annuaire"
-
-#: ../gtk/buddylookup.ui.h:2
-msgid "Add to my list"
-msgstr "Ajouter à ma liste"
-
-#: ../gtk/buddylookup.ui.h:3
-msgid "Search somebody"
-msgstr "Rechercher une personne"
-
-#: ../gtk/callee_frame.ui.h:1
-msgid "Callee name"
-msgstr "Nom du correspondant"
-
-#: ../gtk/call_logs.ui.h:1
-msgid "Call history"
-msgstr "Historique des appels"
-
-#: ../gtk/call_logs.ui.h:2
-msgid "Clear all"
-msgstr "Tout vider"
-
-#: ../gtk/call_logs.ui.h:3
-msgid "Call back"
-msgstr "Rappeler"
-
-#: ../gtk/call_statistics.ui.h:1
-msgid "Call statistics"
-msgstr "Statistiques de l'appel"
-
-#: ../gtk/call_statistics.ui.h:2
-msgid "Audio codec"
-msgstr "Codec audio"
-
-#: ../gtk/call_statistics.ui.h:3
-msgid "Video codec"
-msgstr "Codec vidéo"
-
-#: ../gtk/call_statistics.ui.h:4
-msgid "Audio IP bandwidth usage"
-msgstr "Bande passante audio"
-
-#: ../gtk/call_statistics.ui.h:5
-msgid "Audio Media connectivity"
-msgstr "Connectivité audio"
-
-#: ../gtk/call_statistics.ui.h:6
-msgid "Video IP bandwidth usage"
-msgstr "Bande passante video"
-
-#: ../gtk/call_statistics.ui.h:7
-msgid "Video Media connectivity"
-msgstr "Connectivité video"
-
-#: ../gtk/call_statistics.ui.h:8
-msgid "Round trip time"
-msgstr "Temps d'aller retour"
-
-#: ../gtk/call_statistics.ui.h:9
-msgid "Video resolution received"
-msgstr "Taille de video reçue"
-
-#: ../gtk/call_statistics.ui.h:10
-msgid "Video resolution sent"
-msgstr "Taille de video envoyée"
-
-#: ../gtk/call_statistics.ui.h:11
-msgid "RTP profile"
-msgstr "Profil RTP"
-
-#: ../gtk/call_statistics.ui.h:12
-msgid "Call statistics and information"
-msgstr "Statistiques de l'appel et informations"
-
-#: ../gtk/chatroom_frame.ui.h:1
-msgid "Send"
-msgstr "Envoyer"
-
-#: ../gtk/conf_frame.ui.h:1
-msgid "End conference"
-msgstr "Fin de conférence"
-
-#: ../gtk/config-uri.ui.h:1
-msgid "Specifying a remote configuration URI"
-msgstr "Spécifier une URI de configuration"
-
-#: ../gtk/config-uri.ui.h:2
-msgid ""
-"This dialog allows to set an http or https address when configuration is to be fetched at startup.\n"
-"Please enter or modify the configuration URI below. After clicking OK, Linphone will restart automatically in order to fetch and take into account the new configuration. "
-msgstr "Cette boite de dialogue vous permet de spécifier une addresse http ou https où la configuration doit être téléchargée au démarrage.\nVeuillez entrer l'URI http(s) ci dessous. Après avoir validé, Linphone va redémarrer automatiquement pour charger et prendre en compte la nouvelle configuration."
-
-#: ../gtk/contact.ui.h:2
-msgid "SIP Address"
-msgstr "Adresse SIP"
-
-#: ../gtk/contact.ui.h:3
-msgid "Show this contact presence status"
-msgstr "Voir l'état de présence de ce contact"
-
-#: ../gtk/contact.ui.h:4
-msgid "Allow this contact to see my presence status"
-msgstr "Autoriser ce contact à voir ma présence"
-
-#: ../gtk/contact.ui.h:5
-msgid "Contact information"
-msgstr "Information sur le contact"
-
-#: ../gtk/dscp_settings.ui.h:1
-msgid "DSCP settings"
-msgstr "Réglages DSCP"
-
-#: ../gtk/dscp_settings.ui.h:2
-msgid "SIP"
-msgstr "SIP"
-
-#: ../gtk/dscp_settings.ui.h:3
-msgid "Audio RTP stream"
-msgstr "Flux RTP audio"
-
-#: ../gtk/dscp_settings.ui.h:4
-msgid "Video RTP stream"
-msgstr "Flux RTP vidéo"
-
-#: ../gtk/dscp_settings.ui.h:5
-msgid "Set DSCP values (in hexadecimal)"
-msgstr "Indiquez les valeurs DSCP (en hexacdécimal)"
-
-#: ../gtk/in_call_frame.ui.h:1
-msgid "Click here to set the speakers volume"
-msgstr "Cliquer ici pour modifier le volume des haut-parleurs"
-
-#: ../gtk/in_call_frame.ui.h:5
-msgid "Record this call to an audio file"
-msgstr "Enregistrement de l'appel dans un fichier audio."
-
-#: ../gtk/in_call_frame.ui.h:6
-msgid "Video"
-msgstr "Vidéo"
-
-#: ../gtk/in_call_frame.ui.h:8
-msgid "Mute"
-msgstr "Couper le micro"
-
-#: ../gtk/in_call_frame.ui.h:9
-msgid "Transfer"
-msgstr "Transférer"
-
-#: ../gtk/in_call_frame.ui.h:12
-msgid "In call"
-msgstr "Appel en cours"
-
-#: ../gtk/in_call_frame.ui.h:13
-msgid "Duration"
-msgstr "Durée"
-
-#: ../gtk/in_call_frame.ui.h:14
-msgid "Call quality rating"
-msgstr "Qualité de l'appel"
-
-#: ../gtk/ldap.ui.h:1
-msgid "LDAP Settings"
-msgstr "Paramètres LDAP"
-
-#: ../gtk/ldap.ui.h:2 ../gtk/parameters.ui.h:90
-msgid "Server address:"
-msgstr "Adresse du serveur:"
-
-#: ../gtk/ldap.ui.h:3 ../gtk/parameters.ui.h:91
-msgid "Authentication method:"
-msgstr "Méthode d'authentification:"
-
-#: ../gtk/ldap.ui.h:4 ../gtk/parameters.ui.h:92 ../gtk/setup_wizard.ui.h:17
-msgid "Username:"
-msgstr "Nom d'utilisateur:"
-
-#: ../gtk/ldap.ui.h:5 ../gtk/password.ui.h:4 ../gtk/setup_wizard.ui.h:18
-msgid "Password:"
-msgstr "Mot de passe:"
-
-#: ../gtk/ldap.ui.h:6
-msgid "Use TLS Connection"
-msgstr "Utiliser TLS"
-
-#: ../gtk/ldap.ui.h:7
-msgid "Not yet available"
-msgstr "Non disponible"
-
-#: ../gtk/ldap.ui.h:8
-msgid "Connection"
-msgstr "Connexion"
-
-#: ../gtk/ldap.ui.h:9
-msgid "Bind DN"
-msgstr "Assigner ND"
-
-#: ../gtk/ldap.ui.h:10
-msgid "Authname"
-msgstr "Nom d'authentification"
-
-#: ../gtk/ldap.ui.h:11
-msgid "Realm"
-msgstr "Realm"
-
-#: ../gtk/ldap.ui.h:12
-msgid "SASL"
-msgstr "SASL"
-
-#: ../gtk/ldap.ui.h:13
-msgid "Base object:"
-msgstr "Object de base :"
-
-#: ../gtk/ldap.ui.h:15
-#, no-c-format
-msgid "Filter (%s for name):"
-msgstr "Filtre (nom avec %s) : "
-
-#: ../gtk/ldap.ui.h:16
-msgid "Name Attribute:"
-msgstr "Attribut nom :"
-
-#: ../gtk/ldap.ui.h:17
-msgid "SIP address attribute:"
-msgstr "Attribut pour l'addresse SIP:"
-
-#: ../gtk/ldap.ui.h:18
-msgid "Attributes to query:"
-msgstr "Attributs à chercher:"
-
-#: ../gtk/ldap.ui.h:19
-msgid "Search"
-msgstr "Rechercher"
-
-#: ../gtk/ldap.ui.h:20
-msgid "Timeout for search:"
-msgstr "Temps de recherche maximum:"
-
-#: ../gtk/ldap.ui.h:21
-msgid "Max results:"
-msgstr "Nombre de résultats maximum:"
-
-#: ../gtk/ldap.ui.h:22
-msgid "Follow Aliases"
-msgstr "Suivre les alias"
-
-#: ../gtk/ldap.ui.h:23
-msgid "Miscellaneous"
-msgstr "Divers"
-
-#: ../gtk/ldap.ui.h:24
-msgid "ANONYMOUS"
-msgstr "ANONYME"
-
-#: ../gtk/ldap.ui.h:25
-msgid "SIMPLE"
-msgstr "SIMPLE"
-
-#: ../gtk/ldap.ui.h:26
-msgid "DIGEST-MD5"
-msgstr "DIGEST-MD5"
-
-#: ../gtk/ldap.ui.h:27
-msgid "NTLM"
-msgstr "NTLM"
-
-#: ../gtk/login_frame.ui.h:1 ../gtk/tunnel_config.ui.h:7
-msgid "Username"
-msgstr "Nom d'utilisateur"
-
-#: ../gtk/login_frame.ui.h:2 ../gtk/tunnel_config.ui.h:8
-msgid "Password"
-msgstr "Mot de passe"
-
-#: ../gtk/login_frame.ui.h:3
-msgid "Internet connection:"
-msgstr "Connexion internet:"
-
-#: ../gtk/login_frame.ui.h:4
-msgid "Automatically log me in"
-msgstr "Me connecter automatiquement"
-
-#: ../gtk/login_frame.ui.h:5 ../gtk/password.ui.h:3
-msgid "UserID"
-msgstr "ID utilisateur"
-
-#: ../gtk/login_frame.ui.h:6
-msgid "Login information"
-msgstr "Information de login"
-
-#: ../gtk/login_frame.ui.h:7
-msgid "Welcome!"
-msgstr "Bienvenue !"
-
-#: ../gtk/login_frame.ui.h:8
-msgid "ADSL"
-msgstr "ADSL"
-
-#: ../gtk/login_frame.ui.h:9
-msgid "Fiber Channel"
-msgstr "Fibre optique"
-
-#: ../gtk/log.ui.h:1
-msgid "Linphone debug window"
-msgstr "Fenêtre de débogage de linphone"
-
-#: ../gtk/log.ui.h:2
-msgid "Scroll to end"
-msgstr "Défiler jusqu'à la fin"
-
-#: ../gtk/main.ui.h:1
-msgid "Default"
-msgstr "Par défaut"
-
-#: ../gtk/main.ui.h:2
-msgid "Delete"
-msgstr "Supprimer"
-
-#: ../gtk/main.ui.h:3
-msgid "_Options"
-msgstr "_Options"
-
-#: ../gtk/main.ui.h:4
-msgid "Set configuration URI"
-msgstr "URI de configuration"
-
-#: ../gtk/main.ui.h:5
-msgid "Always start video"
-msgstr "Toujours activer la vidéo"
-
-#: ../gtk/main.ui.h:6
-msgid "Enable self-view"
-msgstr "Se voir"
-
-#: ../gtk/main.ui.h:7
-msgid "Show keypad"
-msgstr "Afficher le pavé numérique"
-
-#: ../gtk/main.ui.h:8
-msgid "Import contacts from vCards"
-msgstr "Importer des contacts depuis des vCards"
-
-#: ../gtk/main.ui.h:9
-msgid "Export contacts as vCards"
-msgstr "Exporter les contacts en vCards"
-
-#: ../gtk/main.ui.h:10
-msgid "_Help"
-msgstr "_Aide"
-
-#: ../gtk/main.ui.h:11
-msgid "Show debug window"
-msgstr "Fenêtre de débogage"
-
-#: ../gtk/main.ui.h:12
-msgid "_Homepage"
-msgstr "_Site web"
-
-#: ../gtk/main.ui.h:13
-msgid "Check _Updates"
-msgstr "_Mises à jour"
-
-#: ../gtk/main.ui.h:14
-msgid "Account assistant"
-msgstr "Assistant de compte"
-
-#: ../gtk/main.ui.h:16
-msgid "SIP address or phone number:"
-msgstr "Adresse SIP ou numéro"
-
-#: ../gtk/main.ui.h:17
-msgid "Initiate a new call"
-msgstr "Démarrer un nouvel appel"
-
-#: ../gtk/main.ui.h:18
-msgid "Contacts"
-msgstr "Contacts"
-
-#: ../gtk/main.ui.h:19
-msgid "Search"
-msgstr "Rechercher"
-
-#: ../gtk/main.ui.h:20
-msgid "Add contacts from directory"
-msgstr "Ajouter un contact depuis l'annuaire"
-
-#: ../gtk/main.ui.h:21
-msgid "Add contact"
-msgstr "Ajouter un contact."
-
-#: ../gtk/main.ui.h:22
-msgid "Clear call history"
-msgstr "Effacer l'historique d'appel"
-
-#: ../gtk/main.ui.h:24
-msgid "My current identity:"
-msgstr "Mon identité SIP :"
-
-#: ../gtk/main.ui.h:25
-msgid "Autoanswer is enabled"
-msgstr "Décrochage automatique activé"
-
-#: ../gtk/parameters.ui.h:1
-msgid "anonymous"
-msgstr "anonyme"
-
-#: ../gtk/parameters.ui.h:2
-msgid "GSSAPI"
-msgstr "GSSAPI"
-
-#: ../gtk/parameters.ui.h:3
-msgid "SASL"
-msgstr "SASL"
-
-#: ../gtk/parameters.ui.h:4
-msgid "default soundcard"
-msgstr "Carte son par défaut"
-
-#: ../gtk/parameters.ui.h:5
-msgid "a sound card"
-msgstr "une carte son"
-
-#: ../gtk/parameters.ui.h:6
-msgid "default camera"
-msgstr "camera par défaut"
-
-#: ../gtk/parameters.ui.h:7
-msgid "CIF"
-msgstr "CIF"
-
-#: ../gtk/parameters.ui.h:8
-msgid "Audio codecs"
-msgstr "Codecs audio"
-
-#: ../gtk/parameters.ui.h:9
-msgid "Video codecs"
-msgstr "Codecs vidéo"
-
-#: ../gtk/parameters.ui.h:10
-msgid "C"
-msgstr "C"
-
-#: ../gtk/parameters.ui.h:11
-msgid "SIP (UDP)"
-msgstr "SIP (UDP)"
-
-#: ../gtk/parameters.ui.h:12
-msgid "SIP (TCP)"
-msgstr "SIP (TCP)"
-
-#: ../gtk/parameters.ui.h:13
-msgid "SIP (TLS)"
-msgstr "SIP (TLS)"
-
-#: ../gtk/parameters.ui.h:14
-msgid "Settings"
-msgstr "Réglages"
-
-#: ../gtk/parameters.ui.h:15
-msgid "This section defines your SIP address when not using a SIP account"
-msgstr "Cette rubrique permet de définir son adresse SIP lorsqu'on ne possède pas de compte SIP"
-
-#: ../gtk/parameters.ui.h:16
-msgid "Your display name (eg: John Doe):"
-msgstr "Votre nom d'affichage (ex: John Doe)"
-
-#: ../gtk/parameters.ui.h:17
-msgid "Your username:"
-msgstr "Votre nom d'utilisateur:"
-
-#: ../gtk/parameters.ui.h:18
-msgid "Your resulting SIP address:"
-msgstr "Votre adresse SIP:"
-
-#: ../gtk/parameters.ui.h:19
-msgid "Default identity"
-msgstr "Identité par défaut"
-
-#: ../gtk/parameters.ui.h:20
-msgid "Wizard"
-msgstr "Assistant"
-
-#: ../gtk/parameters.ui.h:21
-msgid "Add"
-msgstr "Ajouter"
-
-#: ../gtk/parameters.ui.h:22
-msgid "Edit"
-msgstr "Editer"
-
-#: ../gtk/parameters.ui.h:23
-msgid "Remove"
-msgstr "Enlever"
-
-#: ../gtk/parameters.ui.h:24
-msgid "Proxy accounts"
-msgstr "Comptes SIP via des proxy"
-
-#: ../gtk/parameters.ui.h:25
-msgid "Erase all passwords"
-msgstr "Effacer tous les mots de passe"
-
-#: ../gtk/parameters.ui.h:26
-msgid "Privacy"
-msgstr "Sécurité"
-
-#: ../gtk/parameters.ui.h:27
-msgid "Automatically answer when a call is received"
-msgstr "Répondre automatiquement aux appels entrants"
-
-#: ../gtk/parameters.ui.h:28
-msgid "Delay before answering (ms)"
-msgstr "Temps d'attente avant réponse (ms)"
-
-#: ../gtk/parameters.ui.h:29
-msgid "Auto-answer"
-msgstr "Décrochage automatique"
-
-#: ../gtk/parameters.ui.h:30
-msgid "Manage SIP Accounts"
-msgstr "Gérer mes comptes SIP"
-
-#: ../gtk/parameters.ui.h:31
-msgid "Ring sound:"
-msgstr "Sonnerie:"
-
-#: ../gtk/parameters.ui.h:32
-msgid "ALSA special device (optional):"
-msgstr "Appareil ALSA spécifique (optionnel) :"
-
-#: ../gtk/parameters.ui.h:33
-msgid "Capture device:"
-msgstr "Périphérique de capture:"
-
-#: ../gtk/parameters.ui.h:34
-msgid "Ring device:"
-msgstr "Périphérique de sonnerie:"
-
-#: ../gtk/parameters.ui.h:35
-msgid "Playback device:"
-msgstr "Périphérique d'écoute:"
-
-#: ../gtk/parameters.ui.h:36
-msgid "Enable echo cancellation"
-msgstr "Activer l'annulation d'écho"
-
-#: ../gtk/parameters.ui.h:37
-msgid "Audio"
-msgstr "Son"
-
-#: ../gtk/parameters.ui.h:38
-msgid "Video input device:"
-msgstr "Périphérique d'entrée vidéo"
-
-#: ../gtk/parameters.ui.h:39
-msgid "Preferred video resolution:"
-msgstr "Résolution vidéo préférée :"
-
-#: ../gtk/parameters.ui.h:40
-msgid "Video output method:"
-msgstr "Type de rendu video:"
-
-#: ../gtk/parameters.ui.h:41
-msgid "Show camera preview"
-msgstr "Afficher la vidéo"
-
-#: ../gtk/parameters.ui.h:42
-msgid "Video preset:"
-msgstr "Profile vidéo:"
-
-#: ../gtk/parameters.ui.h:43
-msgid "Preferred video framerate:"
-msgstr "Fréquence d'images préférée"
-
-#: ../gtk/parameters.ui.h:44
-msgid "0 stands for \"unlimited\""
-msgstr "Indiquez 0 pour ne pas mettre de limite"
-
-#: ../gtk/parameters.ui.h:45
-msgid "Video"
-msgstr "Video"
-
-#: ../gtk/parameters.ui.h:46
-msgid "Upload speed limit in Kbit/sec:"
-msgstr "Limite de débit montant en kbits/sec:"
-
-#: ../gtk/parameters.ui.h:47
-msgid "Download speed limit in Kbit/sec:"
-msgstr "Limite de débit descendant en kbits/sec:"
-
-#: ../gtk/parameters.ui.h:48
-msgid "Enable adaptive rate control"
-msgstr "Activer le control de débit adaptatif."
-
-#: ../gtk/parameters.ui.h:49
-msgid ""
-"Adaptive rate control is a technique to dynamically guess the available "
-"bandwidth during a call."
-msgstr "Le control de débit adaptatif est une technique pour adapter la qualité de l'audio et de la video en fonction de la bande passante disponible, durant l'appel."
-
-#: ../gtk/parameters.ui.h:50
-msgid "Bandwidth control"
-msgstr "Gestion de la bande passante"
-
-#: ../gtk/parameters.ui.h:51
-msgid "Multimedia settings"
-msgstr "Paramètres multimedia"
-
-#: ../gtk/parameters.ui.h:52
-msgid "Set Maximum Transmission Unit:"
-msgstr "Spécifier la Maximum Transmission Unit"
-
-#: ../gtk/parameters.ui.h:53
-msgid "Send DTMFs as SIP info"
-msgstr "Envoyer les digits en tant que SIP INFO"
-
-#: ../gtk/parameters.ui.h:54
-msgid "Allow IPv6"
-msgstr "Utiliser IPv6"
-
-#: ../gtk/parameters.ui.h:55
-msgid "Transport"
-msgstr "Transport"
-
-#: ../gtk/parameters.ui.h:56
-msgid "SIP/UDP port"
-msgstr "Port SIP / UDP"
-
-#: ../gtk/parameters.ui.h:58
-msgid "Random"
-msgstr "Aléatoire"
-
-#: ../gtk/parameters.ui.h:59
-msgid "SIP/TCP port"
-msgstr "Port SIP / TCP"
-
-#: ../gtk/parameters.ui.h:60
-msgid "Audio RTP/UDP:"
-msgstr "Audio RTP / UDP :"
-
-#: ../gtk/parameters.ui.h:61
-msgid "Fixed"
-msgstr "Fixe"
-
-#: ../gtk/parameters.ui.h:62
-msgid "Video RTP/UDP:"
-msgstr "Vidéo RTP / UDP :"
-
-#: ../gtk/parameters.ui.h:63
-msgid "Tunnel"
-msgstr "Tunnel"
-
-#: ../gtk/parameters.ui.h:64
-msgid "DSCP fields"
-msgstr "Champs DSCP"
-
-#: ../gtk/parameters.ui.h:65
-msgid "Network protocol and ports"
-msgstr "Protocoles réseaux et ports"
-
-#: ../gtk/parameters.ui.h:66
-msgid "Direct connection to the Internet"
-msgstr "Connexion directe à l'Internet"
-
-#: ../gtk/parameters.ui.h:67
-msgid "Behind NAT / Firewall (specify gateway IP )"
-msgstr "Derrière un pare-feu (spécifier la passerelle ci dessous)"
-
-#: ../gtk/parameters.ui.h:68
-msgid "Behind NAT / Firewall (use STUN to resolve)"
-msgstr "Derrière un pare-feu (utiliser STUN)"
-
-#: ../gtk/parameters.ui.h:69
-msgid "Behind NAT / Firewall (use ICE)"
-msgstr "Derrière un pare-feu (utiliser ICE)"
-
-#: ../gtk/parameters.ui.h:70
-msgid "Behind NAT / Firewall (use uPnP)"
-msgstr "Derrière un pare-feu (utiliser uPnP)"
-
-#: ../gtk/parameters.ui.h:71
-msgid "Public IP address:"
-msgstr "Adresse IP publique:"
-
-#: ../gtk/parameters.ui.h:72
-msgid "Stun server:"
-msgstr "Serveur STUN:"
-
-#: ../gtk/parameters.ui.h:73
-msgid "NAT and Firewall"
-msgstr "Paramètres liés au pare-feu"
-
-#: ../gtk/parameters.ui.h:74
-msgid "Media encryption type"
-msgstr "Type d'encryption media"
-
-#: ../gtk/parameters.ui.h:75
-msgid "Use Lime for outgoing chat messages"
-msgstr "Utiliser Lime pour les messages de discussions sortants"
-
-#: ../gtk/parameters.ui.h:76
-msgid "Media encryption is mandatory"
-msgstr "Le chiffrement media est obligatoire"
-
-#: ../gtk/parameters.ui.h:77
-msgid "Mandatory"
-msgstr "Obligatoire"
-
-#: ../gtk/parameters.ui.h:78
-msgid "Preferred"
-msgstr "Privilégié"
-
-#: ../gtk/parameters.ui.h:79
-msgid "Encryption"
-msgstr "Chiffrement"
-
-#: ../gtk/parameters.ui.h:80
-msgid "Network settings"
-msgstr "Paramètres réseau"
-
-#: ../gtk/parameters.ui.h:81 ../gtk/tunnel_config.ui.h:4
-msgid "Enable"
-msgstr "Activer"
-
-#: ../gtk/parameters.ui.h:82 ../gtk/tunnel_config.ui.h:5
-msgid "Disable"
-msgstr "Désactiver"
-
-#: ../gtk/parameters.ui.h:83
-msgid "Audio codecs"
-msgstr "Codecs audio"
-
-#: ../gtk/parameters.ui.h:84
-msgid "Video codecs"
-msgstr "Codecs vidéo"
-
-#: ../gtk/parameters.ui.h:85
-msgid "Codecs"
-msgstr "Codecs"
-
-#: ../gtk/parameters.ui.h:86
-msgid "Language"
-msgstr "Langue"
-
-#: ../gtk/parameters.ui.h:87
-msgid "Show advanced settings"
-msgstr "Montrer les réglages avancés"
-
-#: ../gtk/parameters.ui.h:88
-msgid "Level"
-msgstr "Niveau"
-
-#: ../gtk/parameters.ui.h:89
-msgid "User interface"
-msgstr "Interface utilisateur"
-
-#: ../gtk/parameters.ui.h:93
-msgid "LDAP Account setup"
-msgstr "Configuration LDAP"
-
-#: ../gtk/parameters.ui.h:94
-msgid "LDAP"
-msgstr "LDAP"
-
-#: ../gtk/parameters.ui.h:95
-msgid "Done"
-msgstr "Fermer"
-
-#: ../gtk/password.ui.h:1
-msgid "Linphone - Authentication required"
-msgstr "Linphone - Authentification demandée"
-
-#: ../gtk/password.ui.h:2
-msgid "Please enter the domain password"
-msgstr "Entrez votre mot de passe pour le domaine"
-
-#: ../gtk/provisioning-fetch.ui.h:1
-msgid "Configuring..."
-msgstr "Configuration en cours"
-
-#: ../gtk/provisioning-fetch.ui.h:2
-msgid "Please wait while fetching configuration from server..."
-msgstr "Veuillez patenter un instant pendant le chargement de la configuration distante..."
-
-#: ../gtk/setup_wizard.ui.h:1
-msgid "SIP account configuration assistant"
-msgstr "Assistant de configuration de compte."
-
-#: ../gtk/setup_wizard.ui.h:2
-msgid ""
-"Welcome!\n"
-"This assistant will help you to use a SIP account for your calls."
-msgstr "Bienvenue !\nCet assistant va vous aider à utiliser un compte SIP pour vos appels."
-
-#: ../gtk/setup_wizard.ui.h:4
-msgid "Welcome to the account setup assistant"
-msgstr "Bienvenue dans l'assistant de configuration de compte."
-
-#: ../gtk/setup_wizard.ui.h:5
-msgid "Create an account on linphone.org"
-msgstr "Créer un compte sur linphone.org"
-
-#: ../gtk/setup_wizard.ui.h:6
-msgid "I have already a linphone.org account and I just want to use it"
-msgstr "J'ai déjà un compte linphone.org et je souhaite l'utiliser"
-
-#: ../gtk/setup_wizard.ui.h:7
-msgid "I have already a sip account and I just want to use it"
-msgstr "J'ai déjà un compte Sip et je souhaite l'utiliser"
-
-#: ../gtk/setup_wizard.ui.h:8
-msgid "I want to specify a remote configuration URI"
-msgstr "Je veux spécifier une URI de configuration"
-
-#: ../gtk/setup_wizard.ui.h:9
-msgid "Account setup assistant"
-msgstr "Assistant de configuration de compte."
-
-#: ../gtk/setup_wizard.ui.h:10
-msgid "Enter your account information"
-msgstr "Entrez vos paramètres de compte"
-
-#: ../gtk/setup_wizard.ui.h:11
-msgid "Username*"
-msgstr "Nom d'utilisateur*"
-
-#: ../gtk/setup_wizard.ui.h:12
-msgid "Password*"
-msgstr "Mot de passe*"
-
-#: ../gtk/setup_wizard.ui.h:13
-msgid "Domain*"
-msgstr "Domaine*"
-
-#: ../gtk/setup_wizard.ui.h:14
-msgid "Proxy"
-msgstr "Proxy"
-
-#: ../gtk/setup_wizard.ui.h:15
-msgid "Configure your account (step 1/1)"
-msgstr "Configurez votre compte (étape 1/1)"
-
-#: ../gtk/setup_wizard.ui.h:16
-msgid "Enter your linphone.org username"
-msgstr "Entrez votre identifiant linphone.org"
-
-#: ../gtk/setup_wizard.ui.h:19
-msgid "Enter your sip username (step 1/1)"
-msgstr "Entrez votre identifiant sip (étape 1/1)"
-
-#: ../gtk/setup_wizard.ui.h:20
-msgid "(*) Required fields"
-msgstr "(*) Champs requis"
-
-#: ../gtk/setup_wizard.ui.h:21
-msgid "Email: (*)"
-msgstr "Email : (*)"
-
-#: ../gtk/setup_wizard.ui.h:22
-msgid "Username: (*)"
-msgstr "Nom d'utilisateur: (*)"
-
-#: ../gtk/setup_wizard.ui.h:23
-msgid "Password: (*)"
-msgstr "Mot de passe: (*)"
-
-#: ../gtk/setup_wizard.ui.h:24
-msgid "Confirm your password: (*)"
-msgstr "Confirmez votre mot de passe: (*)"
-
-#: ../gtk/setup_wizard.ui.h:25
-msgid "Keep me informed with linphone updates"
-msgstr "Me tenir informé des mises à jour de Linphone "
-
-#: ../gtk/setup_wizard.ui.h:26
-msgid "Enter account information (step 1/2)"
-msgstr "Entrez les informations concernant votre compte (étape 1/2)"
-
-#: ../gtk/setup_wizard.ui.h:27
-msgid "Your account is being created, please wait."
-msgstr "Votre compte est en cours de création. Veuillez patienter."
-
-#: ../gtk/setup_wizard.ui.h:28
-msgid "Account creation in progress"
-msgstr "Création du compte en cours"
-
-#: ../gtk/setup_wizard.ui.h:29
-msgid ""
-"Please validate your account by clicking on the link we just sent you by email.\n"
-"Then come back here and press Next button."
-msgstr "Merci de valider votre compte en cliquant sur le lien que nous avons envoyé par email.\nPuis appuyez sur suivant."
-
-#: ../gtk/setup_wizard.ui.h:31
-msgid "Validation (step 2/2)"
-msgstr "Validation (étape 2/2)"
-
-#: ../gtk/setup_wizard.ui.h:32
-msgid "Checking if your account is been validated, please wait."
-msgstr "Vérification que le compte a été validé. Veuillez patienter."
-
-#: ../gtk/setup_wizard.ui.h:33
-msgid "Account validation check in progress"
-msgstr "Vérification de la validité du compte en cours"
-
-#: ../gtk/setup_wizard.ui.h:34
-msgid ""
-"Error, account not validated, username already used or server unreachable.\n"
-"Please go back and try again."
-msgstr "Erreur, le compte n'est pas validé, l'identifiant est déjà utilisé ou le serveur n'est pas accessible.\nMerci d'essayer à nouveau."
-
-#: ../gtk/setup_wizard.ui.h:36
-msgid "Error"
-msgstr "Erreur"
-
-#: ../gtk/setup_wizard.ui.h:37
-msgid "Thank you. Your account is now configured and ready for use."
-msgstr "Merci. Votre compte est maintenant configuré et prêt à être utilisé."
-
-#: ../gtk/sip_account.ui.h:1
-msgid "Linphone - Configure a SIP account"
-msgstr "Linphone - Configurer un compte SIP"
-
-#: ../gtk/sip_account.ui.h:2
-msgid "Your SIP identity:"
-msgstr "Votre identité SIP :"
-
-#: ../gtk/sip_account.ui.h:3
-msgid "Looks like sip:@"
-msgstr "De la forme sip:@"
-
-#: ../gtk/sip_account.ui.h:4
-msgid "sip:"
-msgstr "sip:"
-
-#: ../gtk/sip_account.ui.h:5
-msgid "SIP Proxy address:"
-msgstr "Adresse du proxy SIP:"
-
-#: ../gtk/sip_account.ui.h:6
-msgid "Looks like sip:"
-msgstr "De la forme sip:"
-
-#: ../gtk/sip_account.ui.h:7
-msgid "Registration duration (sec):"
-msgstr "Période d'enregistrement (secondes):"
-
-#: ../gtk/sip_account.ui.h:8
-msgid "Contact params (optional):"
-msgstr "Paramètres de contact (optionnel):"
-
-#: ../gtk/sip_account.ui.h:9
-msgid "AVPF regular RTCP interval (sec):"
-msgstr "Intervalle standard RTCP AVPF (sec) :"
-
-#: ../gtk/sip_account.ui.h:10
-msgid "Route (optional):"
-msgstr "Route (optionnel):"
-
-#: ../gtk/sip_account.ui.h:11
-msgid "Transport"
-msgstr "Transport"
-
-#: ../gtk/sip_account.ui.h:12
-msgid "Register"
-msgstr "S'enregistrer"
-
-#: ../gtk/sip_account.ui.h:13
-msgid "Publish presence information"
-msgstr "Publier la présence"
-
-#: ../gtk/sip_account.ui.h:14
-msgid "Enable AVPF"
-msgstr "Activer AVPF"
-
-#: ../gtk/sip_account.ui.h:15
-msgid "Configure a SIP account"
-msgstr "Configurer un compte SIP"
-
-#: ../gtk/tunnel_config.ui.h:1
-msgid "Configure VoIP tunnel"
-msgstr "Configuer le mode tunnel"
-
-#: ../gtk/tunnel_config.ui.h:2
-msgid "Host"
-msgstr "Hôte"
-
-#: ../gtk/tunnel_config.ui.h:3
-msgid "Port"
-msgstr "Port"
-
-#: ../gtk/tunnel_config.ui.h:6
-msgid "Configure tunnel"
-msgstr "Configuration du tunnel"
-
-#: ../gtk/tunnel_config.ui.h:9
-msgid "Configure http proxy (optional)"
-msgstr "Configuration d'un proxy http (optionel)"
-
-#: ../gtk/waiting.ui.h:2
-msgid "Please wait"
-msgstr "En attente"
-
-#: ../coreapi/linphonecore.c:1594
-msgid "Ready"
-msgstr "Prêt."
-
-#: ../coreapi/linphonecore.c:2685
-msgid "Configuring"
-msgstr "Configuration en cours"
-
-#. must be known at that time
-#: ../coreapi/linphonecore.c:3084
-msgid "Contacting"
-msgstr "Appel de"
-
-#: ../coreapi/linphonecore.c:3089
-msgid "Could not call"
-msgstr "Echec de l'appel"
-
-#: ../coreapi/linphonecore.c:3228
-msgid "Sorry, we have reached the maximum number of simultaneous calls"
-msgstr "Désolé, le nombre maximum d'appels simultanés est atteint."
-
-#: ../coreapi/linphonecore.c:3388
-msgid "is contacting you"
-msgstr "vous appelle"
-
-#: ../coreapi/linphonecore.c:3389
-msgid " and asked autoanswer."
-msgstr "et sollicite un décrochage automatique."
-
-#: ../coreapi/linphonecore.c:3506
-msgid "Modifying call parameters..."
-msgstr "Modifications des paramètres d'appels..."
-
-#: ../coreapi/linphonecore.c:3898
-msgid "Connected."
-msgstr "En ligne."
-
-#: ../coreapi/linphonecore.c:3923
-msgid "Call aborted"
-msgstr "Appel abandonné"
-
-#: ../coreapi/linphonecore.c:4125
-msgid "Could not pause the call"
-msgstr "La mise en attente a échoué"
-
-#: ../coreapi/linphonecore.c:4128
-msgid "Pausing the current call..."
-msgstr "Mise en attente de l'appel..."
-
-#: ../coreapi/misc.c:441
-msgid "Stun lookup in progress..."
-msgstr "Découverte STUN en cours"
-
-#: ../coreapi/misc.c:657
-msgid "ICE local candidates gathering in progress..."
-msgstr "Collection des candidats locaux ICE en cours..."
-
-#: ../coreapi/friend.c:48
-msgid "Online"
-msgstr "Disponible"
-
-#: ../coreapi/friend.c:51
-msgid "Busy"
-msgstr "Occupé"
-
-#: ../coreapi/friend.c:54
-msgid "Be right back"
-msgstr "De retour"
-
-#: ../coreapi/friend.c:57
-msgid "Away"
-msgstr "Absent"
-
-#: ../coreapi/friend.c:60
-msgid "On the phone"
-msgstr "Au téléphone"
-
-#: ../coreapi/friend.c:63
-msgid "Out to lunch"
-msgstr "A table"
-
-#: ../coreapi/friend.c:66
-msgid "Do not disturb"
-msgstr "Ne pas déranger"
-
-#: ../coreapi/friend.c:69
-msgid "Moved"
-msgstr "Parti"
-
-#: ../coreapi/friend.c:72
-msgid "Using another messaging service"
-msgstr "Utilisation d'un autre service de messagerie"
-
-#: ../coreapi/friend.c:75
-msgid "Offline"
-msgstr "Non connecté"
-
-#: ../coreapi/friend.c:78
-msgid "Pending"
-msgstr "En attente"
-
-#: ../coreapi/friend.c:81
-msgid "Vacation"
-msgstr "En congé"
-
-#: ../coreapi/friend.c:83
-msgid "Unknown status"
-msgstr "Status inconnu"
-
-#: ../coreapi/proxy.c:339
-msgid ""
-"The sip proxy address you entered is invalid, it must start with \"sip:\" "
-"followed by a hostname."
-msgstr "L'adresse SIP du proxy est invalide. Elle doit commencer par \"sip:\" suivie par un nom de domaine."
-
-#: ../coreapi/proxy.c:345
-msgid ""
-"The sip identity you entered is invalid.\n"
-"It should look like sip:username@proxydomain, such as sip:alice@example.net"
-msgstr "L'identité SIP que vous avez fourni est invalide.\nElle doit être de la forme sip:utilisateur@domaine, comme par exemple sip:alice@example.net"
-
-#: ../coreapi/proxy.c:979
-msgid "Looking for telephone number destination..."
-msgstr "Recherche de la destination du numéro de téléphone..."
-
-#: ../coreapi/proxy.c:983
-msgid "Could not resolve this number."
-msgstr "La destination n'a pu être trouvée."
-
-#: ../coreapi/proxy.c:1437
-#, c-format
-msgid "Could not login as %s"
-msgstr "Echec de la connexion en tant que %s"
-
-#: ../coreapi/proxy.c:1522
-#, c-format
-msgid "Refreshing on %s..."
-msgstr "Rafraichissement de %s..."
-
-#: ../coreapi/callbacks.c:415
-msgid "Remote ringing."
-msgstr "Sonnerie distante."
-
-#: ../coreapi/callbacks.c:427
-msgid "Remote ringing..."
-msgstr "Sonnerie distante..."
-
-#: ../coreapi/callbacks.c:450
-msgid "Early media."
-msgstr "Prise d'appel anticipée."
-
-#: ../coreapi/callbacks.c:480
-#, c-format
-msgid "Call answered by %s"
-msgstr "Appel répondu par %s"
-
-#: ../coreapi/callbacks.c:522
-msgid "Call resumed."
-msgstr "Appel repris."
-
-#: ../coreapi/callbacks.c:577
-msgid "Incompatible, check codecs or security settings..."
-msgstr "Incompatible, vérfiez les codecs ou les paramètres de sécurité..."
-
-#: ../coreapi/callbacks.c:582 ../coreapi/callbacks.c:918
-msgid "Incompatible media parameters."
-msgstr "Paramètres media incompatibles."
-
-#: ../coreapi/callbacks.c:607
-msgid "We have been resumed."
-msgstr "Appel repris."
-
-#. we are being paused
-#: ../coreapi/callbacks.c:615
-msgid "We are paused by other party."
-msgstr "L'appel a été mis en attente."
-
-#: ../coreapi/callbacks.c:625
-msgid "Call is updated by remote."
-msgstr "L'appel est modifié par la partie distante."
-
-#: ../coreapi/callbacks.c:794
-msgid "Call terminated."
-msgstr "Appel terminé."
-
-#: ../coreapi/callbacks.c:822
-msgid "User is busy."
-msgstr "Occupé..."
-
-#: ../coreapi/callbacks.c:823
-msgid "User is temporarily unavailable."
-msgstr "L'usager est temporairement indisponible."
-
-#. char *retrymsg=_("%s. Retry after %i minute(s).");
-#: ../coreapi/callbacks.c:825
-msgid "User does not want to be disturbed."
-msgstr "L'usager ne souhaite pas être dérangé"
-
-#: ../coreapi/callbacks.c:826
-msgid "Call declined."
-msgstr "Appel décliné."
-
-#: ../coreapi/callbacks.c:841
-msgid "Request timeout."
-msgstr "Délai d'attente de la requête dépassé."
-
-#: ../coreapi/callbacks.c:872
-msgid "Redirected"
-msgstr "Redirection"
-
-#: ../coreapi/callbacks.c:922
-msgid "Call failed."
-msgstr "L'appel a échoué."
-
-#: ../coreapi/callbacks.c:1000
-#, c-format
-msgid "Registration on %s successful."
-msgstr "Enregistrement sur %s effectué."
-
-#: ../coreapi/callbacks.c:1001
-#, c-format
-msgid "Unregistration on %s done."
-msgstr "Désenregistrement sur %s effectué."
-
-#: ../coreapi/callbacks.c:1019
-msgid "no response timeout"
-msgstr "Pas de réponse"
-
-#: ../coreapi/callbacks.c:1022
-#, c-format
-msgid "Registration on %s failed: %s"
-msgstr "Echec de l'enregistrement sur %s: %s"
-
-#: ../coreapi/callbacks.c:1029
-msgid "Service unavailable, retrying"
-msgstr "Service indisponible, nouvelle tentative"
-
-#. if encryption is DTLS, no status to be displayed
-#: ../coreapi/linphonecall.c:204
-#, c-format
-msgid "Authentication token is %s"
-msgstr "Le jeton d'authentification est %s"
-
-#: ../coreapi/linphonecall.c:1663
-#, c-format
-msgid "Call parameters could not be modified: %s."
-msgstr "Les paramètres d'appel n'ont pas pu être modifiés : %s."
-
-#: ../coreapi/linphonecall.c:1665
-msgid "Call parameters were successfully modified."
-msgstr "Les paramètres d'appel ont été modifiés avec succès."
-
-#: ../coreapi/linphonecall.c:4636
-#, c-format
-msgid "You have missed %i call."
-msgid_plural "You have missed %i calls."
-msgstr[0] "Vous avez manqué %i appel"
-msgstr[1] "Vous avez manqué %i appels"
-
-#: ../coreapi/call_log.c:223
-msgid "aborted"
-msgstr "interrompu"
-
-#: ../coreapi/call_log.c:226
-msgid "completed"
-msgstr "terminé"
-
-#: ../coreapi/call_log.c:229
-msgid "missed"
-msgstr "manqué"
-
-#: ../coreapi/call_log.c:232
-msgid "unknown"
-msgstr "inconnu"
-
-#: ../coreapi/call_log.c:234
-#, c-format
-msgid ""
-"%s at %s\n"
-"From: %s\n"
-"To: %s\n"
-"Status: %s\n"
-"Duration: %i mn %i sec\n"
-msgstr "%s à %s\nDe : %s\nVers : %s\nStatus : %s\nDurée : %i min %i sec\n"
-
-#: ../coreapi/call_log.c:235
-msgid "Outgoing call"
-msgstr "Appel sortant"
-
-#: ../gtk/videowindow.c:72
-#, c-format
-msgid "Cannot play %s."
-msgstr "Impossible de jouer %s."
-
-#: ../gtk/videowindow.c:252
-msgid "Take screenshot"
-msgstr "Capture d'écran"
diff --git a/po/he.po b/po/he.po
deleted file mode 100644
index bb53d7e06..000000000
--- a/po/he.po
+++ /dev/null
@@ -1,2094 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-#
-# Translators:
-# Eli Zaretskii , 2012
-# Gautier Pelloux , 2015
-# GenghisKhan , 2014
-# GenghisKhan , 2014,2016
-# GenghisKhan , 2012-2013
-msgid ""
-msgstr ""
-"Project-Id-Version: linphone-gtk\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-19 14:01+0200\n"
-"PO-Revision-Date: 2016-05-10 09:58+0000\n"
-"Last-Translator: Belledonne Communications \n"
-"Language-Team: Hebrew (http://www.transifex.com/belledonne-communications/linphone-gtk/language/he/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: he\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: ../gtk/calllogs.c:178
-#, c-format
-msgid "Call %s"
-msgstr "התקשר %s"
-
-#: ../gtk/calllogs.c:179
-#, c-format
-msgid "Send text to %s"
-msgstr "שלח טקסט אל %s"
-
-#: ../gtk/calllogs.c:181
-#, c-format
-msgid "Add %s to your contact list"
-msgstr "הוסף את %s לרשימת הקשר שלך"
-
-#: ../gtk/calllogs.c:245 ../gtk/main.ui.h:23
-msgid "Recent calls"
-msgstr "שיחות אחרונות"
-
-#: ../gtk/calllogs.c:260
-#, c-format
-msgid "Recent calls (%i)"
-msgstr "שיחות אחרונות (%i)"
-
-#: ../gtk/calllogs.c:334
-msgid "n/a"
-msgstr "לא זמין (n/a)"
-
-#: ../gtk/calllogs.c:337
-msgid "Aborted"
-msgstr "ננטשה"
-
-#: ../gtk/calllogs.c:340
-msgid "Missed"
-msgstr "הוחמצה"
-
-#: ../gtk/calllogs.c:343
-msgid "Declined"
-msgstr "נדחתה"
-
-#: ../gtk/calllogs.c:349
-#, c-format
-msgid "%i minute"
-msgid_plural "%i minutes"
-msgstr[0] "דקה %i"
-msgstr[1] "%i דקות"
-
-#: ../gtk/calllogs.c:352
-#, c-format
-msgid "%i second"
-msgid_plural "%i seconds"
-msgstr[0] "שניה %i"
-msgstr[1] "%i שניות"
-
-#: ../gtk/calllogs.c:357
-#, c-format
-msgid ""
-"%s\tQuality: %s\n"
-"%s\t%s\t"
-msgstr "%s\tאיכות: %s\n%s\t%s\t"
-
-#: ../gtk/calllogs.c:361
-#, c-format
-msgid "%s\t%s"
-msgstr ""
-
-#: ../gtk/conference.c:38 ../gtk/in_call_frame.ui.h:11
-msgid "Conference"
-msgstr "ועידה"
-
-#: ../gtk/conference.c:46
-msgid "Me"
-msgstr "אני"
-
-#: ../gtk/support.c:49 ../gtk/support.c:73 ../gtk/support.c:102
-#, c-format
-msgid "Couldn't find pixmap file: %s"
-msgstr "לא ניתן למצוא קובץ pixmap: %s"
-
-#: ../gtk/chat.c:207 ../gtk/chat.c:265
-msgid "Sending..."
-msgstr "כעת שולח..."
-
-#: ../gtk/chat.c:224 ../gtk/chat.c:274
-msgid "Message not sent"
-msgstr "הודעה לא נשלחה"
-
-#: ../gtk/chat.c:498
-msgid "Copy"
-msgstr "העתק"
-
-#: ../gtk/main.c:134
-msgid "log to stdout some debug information while running."
-msgstr ""
-
-#: ../gtk/main.c:135
-msgid "display version and exit."
-msgstr ""
-
-#: ../gtk/main.c:136
-msgid "path to a file to write logs into."
-msgstr "נתיב לקובץ שברצונך לרשום אליו את הרשומות."
-
-#: ../gtk/main.c:137
-msgid "Start linphone with video disabled."
-msgstr "התחל את לינפון עם וידאו מנוטרל."
-
-#: ../gtk/main.c:138
-msgid "Start only in the system tray, do not show the main interface."
-msgstr ""
-
-#: ../gtk/main.c:139
-msgid "address to call right now"
-msgstr ""
-
-#: ../gtk/main.c:140
-msgid ""
-"Specifiy a working directory (should be the base of the installation, eg: "
-"c:\\Program Files\\Linphone)"
-msgstr ""
-
-#: ../gtk/main.c:141
-msgid "Configuration file"
-msgstr "קובץ תצורה"
-
-#: ../gtk/main.c:142
-msgid "Run the audio assistant"
-msgstr ""
-
-#: ../gtk/main.c:143
-msgid "Run self test and exit 0 if succeed"
-msgstr ""
-
-#: ../gtk/main.c:1058
-#, c-format
-msgid ""
-"%s would like to add you to his/her contact list.\n"
-"Would you add him/her to your contact list and allow him/her to see your presence status?\n"
-"If you answer no, this person will be temporarily blacklisted."
-msgstr ""
-
-#: ../gtk/main.c:1135
-#, c-format
-msgid ""
-"Please enter your password for username %s\n"
-" at realm %s:"
-msgstr "אנא הזן סיסמה עבור משתמש %s\nבמתחם %s:"
-
-#: ../gtk/main.c:1244
-msgid "Call error"
-msgstr "שגיאת קריאה"
-
-#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942
-msgid "Call ended"
-msgstr "שיחה הסתיימה"
-
-#: ../gtk/main.c:1250 ../coreapi/call_log.c:235
-msgid "Incoming call"
-msgstr "קריאה נכנסת"
-
-#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2
-msgid "Answer"
-msgstr "לענות"
-
-#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3
-msgid "Decline"
-msgstr "לדחות"
-
-#: ../gtk/main.c:1262
-msgid "Call paused"
-msgstr "שיחה הושהתה"
-
-#: ../gtk/main.c:1262
-#, c-format
-msgid "by %s"
-msgstr "על ידי %s"
-
-#: ../gtk/main.c:1336
-#, c-format
-msgid "%s proposed to start video. Do you accept ?"
-msgstr "%s רוצה להתחיל וידאו. האם אתה מסכים ?"
-
-#: ../gtk/main.c:1502
-msgid "Website link"
-msgstr "קישור אתר רשת"
-
-#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1
-msgid "Linphone"
-msgstr "Linphone"
-
-#: ../gtk/main.c:1562
-msgid "A video internet phone"
-msgstr "וידאופון אינטרנטי"
-
-#: ../gtk/main.c:1624
-#, c-format
-msgid "%s (Default)"
-msgstr "%s (ברירת מחדל)"
-
-#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080
-#, c-format
-msgid "We are transferred to %s"
-msgstr "אנחנו מועברים אל %s"
-
-#: ../gtk/main.c:2008
-msgid ""
-"No sound cards have been detected on this computer.\n"
-"You won't be able to send or receive audio calls."
-msgstr "לא אותרו כרטיסי קול במחשב זה.\nלא תהיה ביכולתך לשלוח או לקבל שיחות אודיו."
-
-#: ../gtk/main.c:2173
-msgid "A free SIP video-phone"
-msgstr "וידאופון SIP חופשי"
-
-#: ../gtk/main.c:2292
-#, c-format
-msgid "Hello\n"
-msgstr "שלום\n"
-
-#: ../gtk/friendlist.c:460
-msgid "Add to addressbook"
-msgstr "הוסף אל ספר כתובות"
-
-#: ../gtk/friendlist.c:626
-#, c-format
-msgid "Search in %s directory"
-msgstr "חיפוש במדור %s"
-
-#: ../gtk/friendlist.c:773
-msgid "Invalid sip contact !"
-msgstr "כתובת sip לא תקפה !"
-
-#: ../gtk/friendlist.c:820
-#, c-format
-msgid "Add a new contact"
-msgstr "הוסף איש קשר חדש"
-
-#: ../gtk/friendlist.c:823
-#, c-format
-msgid "Edit contact '%s'"
-msgstr "ערוך איש קשר '%s'"
-
-#: ../gtk/friendlist.c:824
-#, c-format
-msgid "Delete contact '%s'"
-msgstr "מחק איש קשר '%s'"
-
-#: ../gtk/friendlist.c:825
-#, c-format
-msgid "Delete chat history of '%s'"
-msgstr "מחק היסטוריית שיחה של '%s'"
-
-#: ../gtk/friendlist.c:862
-#, c-format
-msgid "Add new contact from %s directory"
-msgstr "הוסף איש קשר חדש מן מדור %s"
-
-#: ../gtk/propertybox.c:592 ../gtk/contact.ui.h:1
-msgid "Name"
-msgstr "שם"
-
-#: ../gtk/propertybox.c:598
-msgid "Rate (Hz)"
-msgstr "שיעור (הרץ)"
-
-#: ../gtk/propertybox.c:604
-msgid "Status"
-msgstr "מצב"
-
-#: ../gtk/propertybox.c:617
-msgid "IP Bitrate (kbit/s)"
-msgstr ""
-
-#: ../gtk/propertybox.c:628
-msgid "Parameters"
-msgstr "פרמטרים"
-
-#: ../gtk/propertybox.c:670 ../gtk/propertybox.c:824
-msgid "Enabled"
-msgstr "מופעל"
-
-#: ../gtk/propertybox.c:672 ../gtk/propertybox.c:824 ../gtk/parameters.ui.h:57
-msgid "Disabled"
-msgstr "לא מופעל"
-
-#: ../gtk/propertybox.c:902
-msgid "Account"
-msgstr "חשבון"
-
-#: ../gtk/propertybox.c:1170
-msgid "English"
-msgstr "English"
-
-#: ../gtk/propertybox.c:1171
-msgid "French"
-msgstr "Français"
-
-#: ../gtk/propertybox.c:1172
-msgid "Swedish"
-msgstr "Svenska"
-
-#: ../gtk/propertybox.c:1173
-msgid "Italian"
-msgstr "Italiano"
-
-#: ../gtk/propertybox.c:1174
-msgid "Spanish"
-msgstr "Español"
-
-#: ../gtk/propertybox.c:1175
-msgid "Brazilian Portugese"
-msgstr "português brasileiro"
-
-#: ../gtk/propertybox.c:1176
-msgid "Polish"
-msgstr "Polski"
-
-#: ../gtk/propertybox.c:1177
-msgid "German"
-msgstr "Deutsch"
-
-#: ../gtk/propertybox.c:1178
-msgid "Russian"
-msgstr "Русский"
-
-#: ../gtk/propertybox.c:1179
-msgid "Japanese"
-msgstr "日本語"
-
-#: ../gtk/propertybox.c:1180
-msgid "Dutch"
-msgstr "Nederlands"
-
-#: ../gtk/propertybox.c:1181
-msgid "Hungarian"
-msgstr "Magyar"
-
-#: ../gtk/propertybox.c:1182
-msgid "Czech"
-msgstr "Česky"
-
-#: ../gtk/propertybox.c:1183
-msgid "Chinese"
-msgstr "中文"
-
-#: ../gtk/propertybox.c:1184
-msgid "Traditional Chinese"
-msgstr "繁體字"
-
-#: ../gtk/propertybox.c:1185
-msgid "Norwegian"
-msgstr "norsk"
-
-#: ../gtk/propertybox.c:1186
-msgid "Hebrew"
-msgstr "עברית"
-
-#: ../gtk/propertybox.c:1187
-msgid "Serbian"
-msgstr "српски srpski"
-
-#: ../gtk/propertybox.c:1188
-msgid "Arabic"
-msgstr ""
-
-#: ../gtk/propertybox.c:1189
-msgid "Turkish"
-msgstr ""
-
-#: ../gtk/propertybox.c:1246
-msgid ""
-"You need to restart linphone for the new language selection to take effect."
-msgstr "עליך לאתחל את לינפון כדי שהשפה החדשה תיכנס לתוקף."
-
-#: ../gtk/propertybox.c:1332
-msgid "None"
-msgstr "ללא"
-
-#: ../gtk/propertybox.c:1336
-msgid "SRTP"
-msgstr ""
-
-#: ../gtk/propertybox.c:1342
-msgid "DTLS"
-msgstr ""
-
-#: ../gtk/propertybox.c:1349
-msgid "ZRTP"
-msgstr ""
-
-#: ../gtk/update.c:80
-#, c-format
-msgid ""
-"A more recent version is availalble from %s.\n"
-"Would you like to open a browser to download it ?"
-msgstr "גרסא מאוחרת יותר זמינה מן %s.\nהאם ברצונך לפתוח דפדפן בכדי להורידה ?"
-
-#: ../gtk/update.c:91
-msgid "You are running the lastest version."
-msgstr "ברשותך הגרסא האחרונה של לינפון."
-
-#: ../gtk/buddylookup.c:85
-msgid "Firstname, Lastname"
-msgstr "שם פרטי , שם משפחה"
-
-#: ../gtk/buddylookup.c:160
-msgid "Error communicating with server."
-msgstr "שגיאה בהתקשרות עם שרת."
-
-#: ../gtk/buddylookup.c:164
-msgid "Connecting..."
-msgstr "מתחבר כעת..."
-
-#: ../gtk/buddylookup.c:168
-msgid "Connected"
-msgstr "מקושר"
-
-#: ../gtk/buddylookup.c:172
-msgid "Receiving data..."
-msgstr "מאחזר כעת מידע..."
-
-#: ../gtk/buddylookup.c:180
-#, c-format
-msgid "Found %i contact"
-msgid_plural "Found %i contacts"
-msgstr[0] "נמצא איש קשר %i"
-msgstr[1] "נמצאו %i אנשי קשר"
-
-#: ../gtk/setupwizard.c:219
-msgid "Username is already in use!"
-msgstr "שם משתמש כבר מצוי בשימוש!"
-
-#: ../gtk/setupwizard.c:223
-msgid "Failed to check username availability. Please try again later."
-msgstr ""
-
-#: ../gtk/incall_view.c:67 ../gtk/incall_view.c:87
-#, c-format
-msgid "Call #%i"
-msgstr "שיחה מס׳ %i"
-
-#: ../gtk/incall_view.c:145
-#, c-format
-msgid "Transfer to call #%i with %s"
-msgstr "העברה אל שיחה מס׳ %i עם %s"
-
-#: ../gtk/incall_view.c:202 ../gtk/incall_view.c:205
-msgid "Not used"
-msgstr "לא בשימוש"
-
-#: ../gtk/incall_view.c:212
-msgid "ICE not activated"
-msgstr "ICE לא מופעלת"
-
-#: ../gtk/incall_view.c:214
-msgid "ICE failed"
-msgstr "ICE נכשלה"
-
-#: ../gtk/incall_view.c:216
-msgid "ICE in progress"
-msgstr "ICE מצויה כעת בעיצומה"
-
-#: ../gtk/incall_view.c:218
-msgid "Going through one or more NATs"
-msgstr "עובר דרך NAT אחד או יותר"
-
-#: ../gtk/incall_view.c:220
-msgid "Direct"
-msgstr "ישיר"
-
-#: ../gtk/incall_view.c:222
-msgid "Through a relay server"
-msgstr "דרך שרת ממסר"
-
-#: ../gtk/incall_view.c:230
-msgid "uPnP not activated"
-msgstr "uPnP לא מופעלת"
-
-#: ../gtk/incall_view.c:232
-msgid "uPnP in progress"
-msgstr "uPnP מצויה כעת בעיצומה"
-
-#: ../gtk/incall_view.c:234
-msgid "uPnp not available"
-msgstr "uPnp לא זמינה"
-
-#: ../gtk/incall_view.c:236
-msgid "uPnP is running"
-msgstr "uPnP מורצת כעת"
-
-#: ../gtk/incall_view.c:238
-msgid "uPnP failed"
-msgstr "uPnP נכשלה"
-
-#: ../gtk/incall_view.c:248 ../gtk/incall_view.c:249
-msgid "Direct or through server"
-msgstr "ישיר או דרך שרת"
-
-#: ../gtk/incall_view.c:258 ../gtk/incall_view.c:270
-#, c-format
-msgid ""
-"download: %f\n"
-"upload: %f (kbit/s)"
-msgstr "הורדה: %f\nהעלאה: %f (קי״ב/שנ׳)"
-
-#: ../gtk/incall_view.c:263 ../gtk/incall_view.c:265
-#, c-format
-msgid "%ix%i @ %f fps"
-msgstr ""
-
-#: ../gtk/incall_view.c:295
-#, c-format
-msgid "%.3f seconds"
-msgstr "%.3f שניות"
-
-#: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10
-#: ../gtk/videowindow.c:248
-msgid "Hang up"
-msgstr "נתק"
-
-#: ../gtk/incall_view.c:558
-msgid "Calling..."
-msgstr "מתקשר כעת..."
-
-#: ../gtk/incall_view.c:561 ../gtk/incall_view.c:793
-msgid "00:00:00"
-msgstr ""
-
-#: ../gtk/incall_view.c:572
-msgid "Incoming call"
-msgstr "קריאה נכנסת"
-
-#: ../gtk/incall_view.c:609
-msgid "good"
-msgstr "טובה"
-
-#: ../gtk/incall_view.c:611
-msgid "average"
-msgstr "ממוצעת"
-
-#: ../gtk/incall_view.c:613
-msgid "poor"
-msgstr "דלה"
-
-#: ../gtk/incall_view.c:615
-msgid "very poor"
-msgstr "דלה מאוד"
-
-#: ../gtk/incall_view.c:617
-msgid "too bad"
-msgstr "גרועה מדי"
-
-#: ../gtk/incall_view.c:618 ../gtk/incall_view.c:634
-msgid "unavailable"
-msgstr "לא זמינה"
-
-#: ../gtk/incall_view.c:732
-msgid "Secured by SRTP"
-msgstr "מאובטחת על ידי SRTP"
-
-#: ../gtk/incall_view.c:738
-msgid "Secured by DTLS"
-msgstr "מאובטח על ידי DTLS"
-
-#: ../gtk/incall_view.c:744
-#, c-format
-msgid "Secured by ZRTP - [auth token: %s]"
-msgstr "מאובטחת על ידי ZRTP - [אות אימות: %s]"
-
-#: ../gtk/incall_view.c:748
-msgid "Set unverified"
-msgstr "הגדר כלא מאומתת"
-
-#: ../gtk/incall_view.c:748
-msgid "Set verified"
-msgstr "הגדר כמאומתת"
-
-#: ../gtk/incall_view.c:788
-msgid "In conference"
-msgstr "בשיחת ועידה"
-
-#: ../gtk/incall_view.c:788
-msgid "In call"
-msgstr "בשיחה כעת"
-
-#: ../gtk/incall_view.c:825
-msgid "Paused call"
-msgstr "שיחה מושהית"
-
-#: ../gtk/incall_view.c:862
-msgid "Call ended."
-msgstr "שיחה הסתיימה."
-
-#: ../gtk/incall_view.c:893
-msgid "Transfer in progress"
-msgstr "העברה מצויה כעת בעיצומה"
-
-#: ../gtk/incall_view.c:896
-msgid "Transfer done."
-msgstr "העברה הסתיימה."
-
-#: ../gtk/incall_view.c:899
-msgid "Transfer failed."
-msgstr "העברה נכשלה."
-
-#: ../gtk/incall_view.c:930
-msgid "Resume"
-msgstr "חזור"
-
-#: ../gtk/incall_view.c:930 ../gtk/in_call_frame.ui.h:7
-msgid "Pause"
-msgstr "השהה"
-
-#: ../gtk/incall_view.c:996
-#, c-format
-msgid ""
-"Recording into\n"
-"%s %s"
-msgstr "מקליט אל תוך\n%s %s"
-
-#: ../gtk/incall_view.c:996
-msgid "(Paused)"
-msgstr "(מושהה)"
-
-#: ../gtk/loginframe.c:75
-#, c-format
-msgid "Please enter login information for %s"
-msgstr "נא להזין מידע התחברות עבור %s"
-
-#: ../gtk/config-fetching.c:57
-#, c-format
-msgid "fetching from %s"
-msgstr ""
-
-#: ../gtk/config-fetching.c:73
-#, c-format
-msgid "Downloading of remote configuration from %s failed."
-msgstr ""
-
-#: ../gtk/audio_assistant.c:103
-msgid "No voice detected"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:104
-msgid "Too low"
-msgstr "נמוך מדי"
-
-#: ../gtk/audio_assistant.c:105
-msgid "Good"
-msgstr "טוב"
-
-#: ../gtk/audio_assistant.c:106
-msgid "Too loud"
-msgstr "חזק מדי"
-
-#: ../gtk/audio_assistant.c:188
-msgid "Did you hear three beeps ?"
-msgstr "האם שמעת שלושה צפצופים ?"
-
-#: ../gtk/audio_assistant.c:301 ../gtk/audio_assistant.c:306
-msgid "Sound preferences not found "
-msgstr ""
-
-#: ../gtk/audio_assistant.c:315
-msgid "Cannot launch system sound control "
-msgstr ""
-
-#: ../gtk/audio_assistant.c:327
-msgid ""
-"Welcome!\n"
-"This assistant will help you to configure audio settings for Linphone"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:337
-msgid "Capture device"
-msgstr "התקן לכידה"
-
-#: ../gtk/audio_assistant.c:338
-msgid "Recorded volume"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:342
-msgid "No voice"
-msgstr "אין קול"
-
-#: ../gtk/audio_assistant.c:343 ../gtk/audio_assistant.c:382
-msgid "System sound preferences"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:378
-msgid "Playback device"
-msgstr "התקן השמעה"
-
-#: ../gtk/audio_assistant.c:379
-msgid "Play three beeps"
-msgstr "נגן שלושה צפצופים"
-
-#: ../gtk/audio_assistant.c:412
-msgid "Press the record button and say some words"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:413
-msgid "Listen to your record voice"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:414 ../gtk/conf_frame.ui.h:2
-#: ../gtk/in_call_frame.ui.h:4
-msgid "Record"
-msgstr "הקלט"
-
-#: ../gtk/audio_assistant.c:415
-msgid "Play"
-msgstr "נגן"
-
-#: ../gtk/audio_assistant.c:442
-msgid "Let's start Linphone now"
-msgstr "הבא נתחיל את Linphone עכשיו"
-
-#: ../gtk/audio_assistant.c:513
-msgid "Audio Assistant"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:523 ../gtk/main.ui.h:15
-msgid "Audio assistant"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:528
-msgid "Mic Gain calibration"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:534
-msgid "Speaker volume calibration"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:539
-msgid "Record and Play"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:544 ../gtk/setup_wizard.ui.h:38
-msgid "Terminating"
-msgstr "מסיים כעת"
-
-#: ../gtk/about.ui.h:1
-msgid "About Linphone"
-msgstr "אודות Linphone"
-
-#: ../gtk/about.ui.h:2
-msgid "(C) Belledonne Communications, 2010\n"
-msgstr ""
-
-#: ../gtk/about.ui.h:4
-msgid "An internet video phone using the standard SIP (rfc3261) protocol."
-msgstr "וידאופון אינטרנטי באמצעות תקן הפרוטוקול SIP (rfc3261)."
-
-#: ../gtk/about.ui.h:5
-msgid ""
-"fr: Simon Morlat\n"
-"en: Simon Morlat and Delphine Perreau\n"
-"it: Alberto Zanoni \n"
-"de: Jean-Jacques Sarton \n"
-"sv: Daniel Nylander \n"
-"es: Jesus Benitez \n"
-"ja: YAMAGUCHI YOSHIYA \n"
-"pt_BR: Rafael Caesar Lenzi \n"
-"pl: Robert Nasiadek \n"
-"cs: Petr Pisar \n"
-"hu: anonymous\n"
-"he: Eli Zaretskii \n"
-msgstr ""
-
-#: ../gtk/buddylookup.ui.h:1
-msgid "Search contacts in directory"
-msgstr "חיפוש אנשי קשר בתוך מדור"
-
-#: ../gtk/buddylookup.ui.h:2
-msgid "Add to my list"
-msgstr "הוסף אל הרשימה שלי"
-
-#: ../gtk/buddylookup.ui.h:3
-msgid "Search somebody"
-msgstr "חיפוש אחר מישהו"
-
-#: ../gtk/callee_frame.ui.h:1
-msgid "Callee name"
-msgstr "שם מקבל"
-
-#: ../gtk/call_logs.ui.h:1
-msgid "Call history"
-msgstr "היסטוריית שיחות"
-
-#: ../gtk/call_logs.ui.h:2
-msgid "Clear all"
-msgstr "טיהור מוחלט"
-
-#: ../gtk/call_logs.ui.h:3
-msgid "Call back"
-msgstr "חיוג חוזר"
-
-#: ../gtk/call_statistics.ui.h:1
-msgid "Call statistics"
-msgstr "סטטיסטיקות שיחה"
-
-#: ../gtk/call_statistics.ui.h:2
-msgid "Audio codec"
-msgstr "קודק של אודיו"
-
-#: ../gtk/call_statistics.ui.h:3
-msgid "Video codec"
-msgstr "קודק של וידאו"
-
-#: ../gtk/call_statistics.ui.h:4
-msgid "Audio IP bandwidth usage"
-msgstr "ניצול רוחב פס IP אודיו"
-
-#: ../gtk/call_statistics.ui.h:5
-msgid "Audio Media connectivity"
-msgstr "קישוריות מדיום אודיו"
-
-#: ../gtk/call_statistics.ui.h:6
-msgid "Video IP bandwidth usage"
-msgstr "ניצול רוחב פס IP וידאו"
-
-#: ../gtk/call_statistics.ui.h:7
-msgid "Video Media connectivity"
-msgstr "קישוריות מדיום וידאו"
-
-#: ../gtk/call_statistics.ui.h:8
-msgid "Round trip time"
-msgstr "זמן הלוך ושוב"
-
-#: ../gtk/call_statistics.ui.h:9
-msgid "Video resolution received"
-msgstr ""
-
-#: ../gtk/call_statistics.ui.h:10
-msgid "Video resolution sent"
-msgstr ""
-
-#: ../gtk/call_statistics.ui.h:11
-msgid "RTP profile"
-msgstr "פרופיל RTP"
-
-#: ../gtk/call_statistics.ui.h:12
-msgid "Call statistics and information"
-msgstr "סטטיסטיקות ומידע שיחה"
-
-#: ../gtk/chatroom_frame.ui.h:1
-msgid "Send"
-msgstr "שלח"
-
-#: ../gtk/conf_frame.ui.h:1
-msgid "End conference"
-msgstr "סיים ועידה"
-
-#: ../gtk/config-uri.ui.h:1
-msgid "Specifying a remote configuration URI"
-msgstr ""
-
-#: ../gtk/config-uri.ui.h:2
-msgid ""
-"This dialog allows to set an http or https address when configuration is to be fetched at startup.\n"
-"Please enter or modify the configuration URI below. After clicking OK, Linphone will restart automatically in order to fetch and take into account the new configuration. "
-msgstr ""
-
-#: ../gtk/contact.ui.h:2
-msgid "SIP Address"
-msgstr "כתובת SIP"
-
-#: ../gtk/contact.ui.h:3
-msgid "Show this contact presence status"
-msgstr "הצג את מצב נוכחותו של איש קשר זה"
-
-#: ../gtk/contact.ui.h:4
-msgid "Allow this contact to see my presence status"
-msgstr "הרשה לאיש קשר זה לראות את מצב הנוכחות שלי"
-
-#: ../gtk/contact.ui.h:5
-msgid "Contact information"
-msgstr "מידע איש קשר"
-
-#: ../gtk/dscp_settings.ui.h:1
-msgid "DSCP settings"
-msgstr "אפשרויות DSCP"
-
-#: ../gtk/dscp_settings.ui.h:2
-msgid "SIP"
-msgstr ""
-
-#: ../gtk/dscp_settings.ui.h:3
-msgid "Audio RTP stream"
-msgstr "זרם RTP אודיו"
-
-#: ../gtk/dscp_settings.ui.h:4
-msgid "Video RTP stream"
-msgstr "זרם RTP וידאו"
-
-#: ../gtk/dscp_settings.ui.h:5
-msgid "Set DSCP values (in hexadecimal)"
-msgstr "קבע ערכי DSCP (בהקסדצימלי)"
-
-#: ../gtk/in_call_frame.ui.h:1
-msgid "Click here to set the speakers volume"
-msgstr ""
-
-#: ../gtk/in_call_frame.ui.h:5
-msgid "Record this call to an audio file"
-msgstr "הקלט את שיחה זו אל קובץ אודיו"
-
-#: ../gtk/in_call_frame.ui.h:6
-msgid "Video"
-msgstr "וידאו"
-
-#: ../gtk/in_call_frame.ui.h:8
-msgid "Mute"
-msgstr "השתק"
-
-#: ../gtk/in_call_frame.ui.h:9
-msgid "Transfer"
-msgstr "העבר"
-
-#: ../gtk/in_call_frame.ui.h:12
-msgid "In call"
-msgstr "בשיחה כעת"
-
-#: ../gtk/in_call_frame.ui.h:13
-msgid "Duration"
-msgstr "משך זמן"
-
-#: ../gtk/in_call_frame.ui.h:14
-msgid "Call quality rating"
-msgstr "אומדן איכות שיחה"
-
-#: ../gtk/ldap.ui.h:1
-msgid "LDAP Settings"
-msgstr "הגדרות LDAP"
-
-#: ../gtk/ldap.ui.h:2 ../gtk/parameters.ui.h:90
-msgid "Server address:"
-msgstr "כתובת שרת:"
-
-#: ../gtk/ldap.ui.h:3 ../gtk/parameters.ui.h:91
-msgid "Authentication method:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:4 ../gtk/parameters.ui.h:92 ../gtk/setup_wizard.ui.h:17
-msgid "Username:"
-msgstr "שם משתמש:"
-
-#: ../gtk/ldap.ui.h:5 ../gtk/password.ui.h:4 ../gtk/setup_wizard.ui.h:18
-msgid "Password:"
-msgstr "סיסמה:"
-
-#: ../gtk/ldap.ui.h:6
-msgid "Use TLS Connection"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:7
-msgid "Not yet available"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:8
-msgid "Connection"
-msgstr "חיבור"
-
-#: ../gtk/ldap.ui.h:9
-msgid "Bind DN"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:10
-msgid "Authname"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:11
-msgid "Realm"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:12
-msgid "SASL"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:13
-msgid "Base object:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:15
-#, no-c-format
-msgid "Filter (%s for name):"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:16
-msgid "Name Attribute:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:17
-msgid "SIP address attribute:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:18
-msgid "Attributes to query:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:19
-msgid "Search"
-msgstr "חיפוש"
-
-#: ../gtk/ldap.ui.h:20
-msgid "Timeout for search:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:21
-msgid "Max results:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:22
-msgid "Follow Aliases"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:23
-msgid "Miscellaneous"
-msgstr "שונות"
-
-#: ../gtk/ldap.ui.h:24
-msgid "ANONYMOUS"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:25
-msgid "SIMPLE"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:26
-msgid "DIGEST-MD5"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:27
-msgid "NTLM"
-msgstr ""
-
-#: ../gtk/login_frame.ui.h:1 ../gtk/tunnel_config.ui.h:7
-msgid "Username"
-msgstr "שם משתמש"
-
-#: ../gtk/login_frame.ui.h:2 ../gtk/tunnel_config.ui.h:8
-msgid "Password"
-msgstr "סיסמה"
-
-#: ../gtk/login_frame.ui.h:3
-msgid "Internet connection:"
-msgstr "חיבור אינטרנט:"
-
-#: ../gtk/login_frame.ui.h:4
-msgid "Automatically log me in"
-msgstr "חבר אותי אוטומטית"
-
-#: ../gtk/login_frame.ui.h:5 ../gtk/password.ui.h:3
-msgid "UserID"
-msgstr "מזהה משתמש"
-
-#: ../gtk/login_frame.ui.h:6
-msgid "Login information"
-msgstr "מידע התחברות"
-
-#: ../gtk/login_frame.ui.h:7
-msgid "Welcome!"
-msgstr "ברוכים הבאים!"
-
-#: ../gtk/login_frame.ui.h:8
-msgid "ADSL"
-msgstr "ADSL"
-
-#: ../gtk/login_frame.ui.h:9
-msgid "Fiber Channel"
-msgstr "ערוץ סיב"
-
-#: ../gtk/log.ui.h:1
-msgid "Linphone debug window"
-msgstr "חלון ניפוי שגיאות Linphone"
-
-#: ../gtk/log.ui.h:2
-msgid "Scroll to end"
-msgstr "גלול אוטומטית לסוף"
-
-#: ../gtk/main.ui.h:1
-msgid "Default"
-msgstr "ברירת מחדל"
-
-#: ../gtk/main.ui.h:2
-msgid "Delete"
-msgstr "מחק"
-
-#: ../gtk/main.ui.h:3
-msgid "_Options"
-msgstr "_אפשרויות"
-
-#: ../gtk/main.ui.h:4
-msgid "Set configuration URI"
-msgstr ""
-
-#: ../gtk/main.ui.h:5
-msgid "Always start video"
-msgstr "התחל תמיד וידאו"
-
-#: ../gtk/main.ui.h:6
-msgid "Enable self-view"
-msgstr "אפשר ראות-עצמית"
-
-#: ../gtk/main.ui.h:7
-msgid "Show keypad"
-msgstr "הצג לוח חיוג"
-
-#: ../gtk/main.ui.h:8
-msgid "Import contacts from vCards"
-msgstr ""
-
-#: ../gtk/main.ui.h:9
-msgid "Export contacts as vCards"
-msgstr ""
-
-#: ../gtk/main.ui.h:10
-msgid "_Help"
-msgstr "_עזרה"
-
-#: ../gtk/main.ui.h:11
-msgid "Show debug window"
-msgstr "הצג חלון ניפוי שגיאות"
-
-#: ../gtk/main.ui.h:12
-msgid "_Homepage"
-msgstr "_עמוד הבית"
-
-#: ../gtk/main.ui.h:13
-msgid "Check _Updates"
-msgstr "בדיקת _עדכונים"
-
-#: ../gtk/main.ui.h:14
-msgid "Account assistant"
-msgstr "אשף חשבון"
-
-#: ../gtk/main.ui.h:16
-msgid "SIP address or phone number:"
-msgstr "כתובת SIP או מספר טלפון"
-
-#: ../gtk/main.ui.h:17
-msgid "Initiate a new call"
-msgstr "התחל שיחה חדשה"
-
-#: ../gtk/main.ui.h:18
-msgid "Contacts"
-msgstr "אנשי קשר"
-
-#: ../gtk/main.ui.h:19
-msgid "Search"
-msgstr "חיפוש"
-
-#: ../gtk/main.ui.h:20
-msgid "Add contacts from directory"
-msgstr "הוסף אנשי קשר מן מדור"
-
-#: ../gtk/main.ui.h:21
-msgid "Add contact"
-msgstr "הוסף איש קשר"
-
-#: ../gtk/main.ui.h:22
-msgid "Clear call history"
-msgstr "טהר היסטוריית שיחות"
-
-#: ../gtk/main.ui.h:24
-msgid "My current identity:"
-msgstr "זהותי הנוכחית:"
-
-#: ../gtk/main.ui.h:25
-msgid "Autoanswer is enabled"
-msgstr "מענה אוטומטי הינו מאופשר"
-
-#: ../gtk/parameters.ui.h:1
-msgid "anonymous"
-msgstr "אנונימי"
-
-#: ../gtk/parameters.ui.h:2
-msgid "GSSAPI"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:3
-msgid "SASL"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:4
-msgid "default soundcard"
-msgstr "כרטיס קול משתמט"
-
-#: ../gtk/parameters.ui.h:5
-msgid "a sound card"
-msgstr "כרטיס קול"
-
-#: ../gtk/parameters.ui.h:6
-msgid "default camera"
-msgstr "מצלמה משתמטת"
-
-#: ../gtk/parameters.ui.h:7
-msgid "CIF"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:8
-msgid "Audio codecs"
-msgstr "קודקים של אודיו"
-
-#: ../gtk/parameters.ui.h:9
-msgid "Video codecs"
-msgstr "קודקים של וידאו"
-
-#: ../gtk/parameters.ui.h:10
-msgid "C"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:11
-msgid "SIP (UDP)"
-msgstr "SIP (UDP)"
-
-#: ../gtk/parameters.ui.h:12
-msgid "SIP (TCP)"
-msgstr "SIP (TCP)"
-
-#: ../gtk/parameters.ui.h:13
-msgid "SIP (TLS)"
-msgstr "SIP (TLS)"
-
-#: ../gtk/parameters.ui.h:14
-msgid "Settings"
-msgstr "הגדרות"
-
-#: ../gtk/parameters.ui.h:15
-msgid "This section defines your SIP address when not using a SIP account"
-msgstr "חלק זה מגדיר את כתובת ה־SIP כאשר אינך עושה שימוש בחשבון SIP"
-
-#: ../gtk/parameters.ui.h:16
-msgid "Your display name (eg: John Doe):"
-msgstr "שם התצוגה שלך (למשל: יורם יהודה):"
-
-#: ../gtk/parameters.ui.h:17
-msgid "Your username:"
-msgstr "שם המשתמש שלך:"
-
-#: ../gtk/parameters.ui.h:18
-msgid "Your resulting SIP address:"
-msgstr "כתובת SIP נובעת:"
-
-#: ../gtk/parameters.ui.h:19
-msgid "Default identity"
-msgstr "זהות משתמטת"
-
-#: ../gtk/parameters.ui.h:20
-msgid "Wizard"
-msgstr "אשף"
-
-#: ../gtk/parameters.ui.h:21
-msgid "Add"
-msgstr "הוסף"
-
-#: ../gtk/parameters.ui.h:22
-msgid "Edit"
-msgstr "ערוך"
-
-#: ../gtk/parameters.ui.h:23
-msgid "Remove"
-msgstr "הסר"
-
-#: ../gtk/parameters.ui.h:24
-msgid "Proxy accounts"
-msgstr "חשבונות Proxy"
-
-#: ../gtk/parameters.ui.h:25
-msgid "Erase all passwords"
-msgstr "מחק סיסמאות"
-
-#: ../gtk/parameters.ui.h:26
-msgid "Privacy"
-msgstr "פרטיות"
-
-#: ../gtk/parameters.ui.h:27
-msgid "Automatically answer when a call is received"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:28
-msgid "Delay before answering (ms)"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:29
-msgid "Auto-answer"
-msgstr "מענה-אוטומטי"
-
-#: ../gtk/parameters.ui.h:30
-msgid "Manage SIP Accounts"
-msgstr "ניהול חשבונות SIP"
-
-#: ../gtk/parameters.ui.h:31
-msgid "Ring sound:"
-msgstr "צליל צלצול:"
-
-#: ../gtk/parameters.ui.h:32
-msgid "ALSA special device (optional):"
-msgstr "התקן ALSA מיוחד (רשות):"
-
-#: ../gtk/parameters.ui.h:33
-msgid "Capture device:"
-msgstr "התקן לכידה:"
-
-#: ../gtk/parameters.ui.h:34
-msgid "Ring device:"
-msgstr "התקן צלצול:"
-
-#: ../gtk/parameters.ui.h:35
-msgid "Playback device:"
-msgstr "התקן פס קול:"
-
-#: ../gtk/parameters.ui.h:36
-msgid "Enable echo cancellation"
-msgstr "אפשר ביטול הד"
-
-#: ../gtk/parameters.ui.h:37
-msgid "Audio"
-msgstr "אודיו"
-
-#: ../gtk/parameters.ui.h:38
-msgid "Video input device:"
-msgstr "התקן קלט וידאו:"
-
-#: ../gtk/parameters.ui.h:39
-msgid "Preferred video resolution:"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:40
-msgid "Video output method:"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:41
-msgid "Show camera preview"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:42
-msgid "Video preset:"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:43
-msgid "Preferred video framerate:"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:44
-msgid "0 stands for \"unlimited\""
-msgstr "0 מסמל \"בלי הגבלה\""
-
-#: ../gtk/parameters.ui.h:45
-msgid "Video"
-msgstr "וידאו"
-
-#: ../gtk/parameters.ui.h:46
-msgid "Upload speed limit in Kbit/sec:"
-msgstr "מגבלת מהירות העלאה בקי״ב/שנ׳:"
-
-#: ../gtk/parameters.ui.h:47
-msgid "Download speed limit in Kbit/sec:"
-msgstr "מגבלת מהירות הורדה בקי״ב/שנ׳:"
-
-#: ../gtk/parameters.ui.h:48
-msgid "Enable adaptive rate control"
-msgstr "אפשר בקרת קצב מסתגלת"
-
-#: ../gtk/parameters.ui.h:49
-msgid ""
-"Adaptive rate control is a technique to dynamically guess the available "
-"bandwidth during a call."
-msgstr "בקרת קצב מסתגלת הינה טכניקה להשערה דינמית של רוחב הפס הזמין במהלך שיחה."
-
-#: ../gtk/parameters.ui.h:50
-msgid "Bandwidth control"
-msgstr "בקרת רוחב פס"
-
-#: ../gtk/parameters.ui.h:51
-msgid "Multimedia settings"
-msgstr "הגדרות מולטימדיה"
-
-#: ../gtk/parameters.ui.h:52
-msgid "Set Maximum Transmission Unit:"
-msgstr "הגדר יחידת תמסורת מרבית:"
-
-#: ../gtk/parameters.ui.h:53
-msgid "Send DTMFs as SIP info"
-msgstr "שלח טזמ״תים (DTMFs) כמידע SIP"
-
-#: ../gtk/parameters.ui.h:54
-msgid "Allow IPv6"
-msgstr "התר IPv6"
-
-#: ../gtk/parameters.ui.h:55
-msgid "Transport"
-msgstr "טרנספורט"
-
-#: ../gtk/parameters.ui.h:56
-msgid "SIP/UDP port"
-msgstr "פורט SIP/UDP"
-
-#: ../gtk/parameters.ui.h:58
-msgid "Random"
-msgstr "אקראי"
-
-#: ../gtk/parameters.ui.h:59
-msgid "SIP/TCP port"
-msgstr "פורט SIP/TCP"
-
-#: ../gtk/parameters.ui.h:60
-msgid "Audio RTP/UDP:"
-msgstr "אודיו RTP/UDP:"
-
-#: ../gtk/parameters.ui.h:61
-msgid "Fixed"
-msgstr "מקובע"
-
-#: ../gtk/parameters.ui.h:62
-msgid "Video RTP/UDP:"
-msgstr "וידאו RTP/UDP:"
-
-#: ../gtk/parameters.ui.h:63
-msgid "Tunnel"
-msgstr "מינהור"
-
-#: ../gtk/parameters.ui.h:64
-msgid "DSCP fields"
-msgstr "שדות DSCP"
-
-#: ../gtk/parameters.ui.h:65
-msgid "Network protocol and ports"
-msgstr "פרוטוקולי רשת תקשורת ופורטים"
-
-#: ../gtk/parameters.ui.h:66
-msgid "Direct connection to the Internet"
-msgstr "חיבור ישיר אל האינטרנט"
-
-#: ../gtk/parameters.ui.h:67
-msgid "Behind NAT / Firewall (specify gateway IP )"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:68
-msgid "Behind NAT / Firewall (use STUN to resolve)"
-msgstr "מאחורי NAT / חומת אש (בעזרת STUN לפתירה)"
-
-#: ../gtk/parameters.ui.h:69
-msgid "Behind NAT / Firewall (use ICE)"
-msgstr "מאחורי NAT / חומת אש (בעזרת ICE)"
-
-#: ../gtk/parameters.ui.h:70
-msgid "Behind NAT / Firewall (use uPnP)"
-msgstr "מאחורי NAT / חומת אש (בעזרת uPnP)"
-
-#: ../gtk/parameters.ui.h:71
-msgid "Public IP address:"
-msgstr "כתובת IP פומבית:"
-
-#: ../gtk/parameters.ui.h:72
-msgid "Stun server:"
-msgstr "שרת STUN:"
-
-#: ../gtk/parameters.ui.h:73
-msgid "NAT and Firewall"
-msgstr "NAT וחומת אש"
-
-#: ../gtk/parameters.ui.h:74
-msgid "Media encryption type"
-msgstr "סוג הצפנת מדיה"
-
-#: ../gtk/parameters.ui.h:75
-msgid "Use Lime for outgoing chat messages"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:76
-msgid "Media encryption is mandatory"
-msgstr "הצפנת מדיה הינה מנדטורית"
-
-#: ../gtk/parameters.ui.h:77
-msgid "Mandatory"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:78
-msgid "Preferred"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:79
-msgid "Encryption"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:80
-msgid "Network settings"
-msgstr "הגדרות רשת תקשורת"
-
-#: ../gtk/parameters.ui.h:81 ../gtk/tunnel_config.ui.h:4
-msgid "Enable"
-msgstr "אפשר"
-
-#: ../gtk/parameters.ui.h:82 ../gtk/tunnel_config.ui.h:5
-msgid "Disable"
-msgstr "נטרל"
-
-#: ../gtk/parameters.ui.h:83
-msgid "Audio codecs"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:84
-msgid "Video codecs"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:85
-msgid "Codecs"
-msgstr "קודקים"
-
-#: ../gtk/parameters.ui.h:86
-msgid "Language"
-msgstr "שפה"
-
-#: ../gtk/parameters.ui.h:87
-msgid "Show advanced settings"
-msgstr "הצג הגדרות מתקדמות"
-
-#: ../gtk/parameters.ui.h:88
-msgid "Level"
-msgstr "רמה"
-
-#: ../gtk/parameters.ui.h:89
-msgid "User interface"
-msgstr "ממשק משתמש"
-
-#: ../gtk/parameters.ui.h:93
-msgid "LDAP Account setup"
-msgstr "הבניית חשבון LDAP"
-
-#: ../gtk/parameters.ui.h:94
-msgid "LDAP"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:95
-msgid "Done"
-msgstr "סיום"
-
-#: ../gtk/password.ui.h:1
-msgid "Linphone - Authentication required"
-msgstr "Linphone - נדרש אימות"
-
-#: ../gtk/password.ui.h:2
-msgid "Please enter the domain password"
-msgstr "נא להזין את סיסמת המתחם"
-
-#: ../gtk/provisioning-fetch.ui.h:1
-msgid "Configuring..."
-msgstr "כעת מגדיר..."
-
-#: ../gtk/provisioning-fetch.ui.h:2
-msgid "Please wait while fetching configuration from server..."
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:1
-msgid "SIP account configuration assistant"
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:2
-msgid ""
-"Welcome!\n"
-"This assistant will help you to use a SIP account for your calls."
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:4
-msgid "Welcome to the account setup assistant"
-msgstr "ברוך בואך אל אשף הגדרת החשבון"
-
-#: ../gtk/setup_wizard.ui.h:5
-msgid "Create an account on linphone.org"
-msgstr "צור חשבון אצל linphone.org"
-
-#: ../gtk/setup_wizard.ui.h:6
-msgid "I have already a linphone.org account and I just want to use it"
-msgstr "כבר קיים חשבון linphone.org ברשותי וברצוני לעשות בו שימוש"
-
-#: ../gtk/setup_wizard.ui.h:7
-msgid "I have already a sip account and I just want to use it"
-msgstr "כבר קיים חשבון sip ברשותי וברצוני לעשות בו שימוש"
-
-#: ../gtk/setup_wizard.ui.h:8
-msgid "I want to specify a remote configuration URI"
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:9
-msgid "Account setup assistant"
-msgstr "אשף הגדרת חשבון"
-
-#: ../gtk/setup_wizard.ui.h:10
-msgid "Enter your account information"
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:11
-msgid "Username*"
-msgstr "שם משתמש*"
-
-#: ../gtk/setup_wizard.ui.h:12
-msgid "Password*"
-msgstr "סיסמה*"
-
-#: ../gtk/setup_wizard.ui.h:13
-msgid "Domain*"
-msgstr "מתחם*"
-
-#: ../gtk/setup_wizard.ui.h:14
-msgid "Proxy"
-msgstr "פרוקסי"
-
-#: ../gtk/setup_wizard.ui.h:15
-msgid "Configure your account (step 1/1)"
-msgstr "הגדרת חשבונך (צעד 1/1)"
-
-#: ../gtk/setup_wizard.ui.h:16
-msgid "Enter your linphone.org username"
-msgstr "הזן את שם משתמשך אצל linphone.org"
-
-#: ../gtk/setup_wizard.ui.h:19
-msgid "Enter your sip username (step 1/1)"
-msgstr "הזנת שם משתמש sip (צעד 1/1)"
-
-#: ../gtk/setup_wizard.ui.h:20
-msgid "(*) Required fields"
-msgstr "(*) שדות חובה"
-
-#: ../gtk/setup_wizard.ui.h:21
-msgid "Email: (*)"
-msgstr "דוא״ל: (*)"
-
-#: ../gtk/setup_wizard.ui.h:22
-msgid "Username: (*)"
-msgstr "שם משתמש: (*)"
-
-#: ../gtk/setup_wizard.ui.h:23
-msgid "Password: (*)"
-msgstr "סיסמה: (*)"
-
-#: ../gtk/setup_wizard.ui.h:24
-msgid "Confirm your password: (*)"
-msgstr "אימות סיסמתך: (*)"
-
-#: ../gtk/setup_wizard.ui.h:25
-msgid "Keep me informed with linphone updates"
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:26
-msgid "Enter account information (step 1/2)"
-msgstr "הזנת מידע חשבון (צעד 1/2)"
-
-#: ../gtk/setup_wizard.ui.h:27
-msgid "Your account is being created, please wait."
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:28
-msgid "Account creation in progress"
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:29
-msgid ""
-"Please validate your account by clicking on the link we just sent you by email.\n"
-"Then come back here and press Next button."
-msgstr "נא לאמת את חשבונך באמצעות הקלקה על הקישור ששלחנו לך עתה באמצעות דוא״ל.\nאחרי כן נא לחזור לכאן וללחוץ על הלחצן 'קדימה'."
-
-#: ../gtk/setup_wizard.ui.h:31
-msgid "Validation (step 2/2)"
-msgstr "אימות (צעד 2/2)"
-
-#: ../gtk/setup_wizard.ui.h:32
-msgid "Checking if your account is been validated, please wait."
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:33
-msgid "Account validation check in progress"
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:34
-msgid ""
-"Error, account not validated, username already used or server unreachable.\n"
-"Please go back and try again."
-msgstr "שגיאה, חשבון לא אומת, שם משתמש כבר בשימוש או שרת לא ניתן להשגה.\nנא לחזור ולנסות שוב."
-
-#: ../gtk/setup_wizard.ui.h:36
-msgid "Error"
-msgstr "שגיאה"
-
-#: ../gtk/setup_wizard.ui.h:37
-msgid "Thank you. Your account is now configured and ready for use."
-msgstr "תודה לך. חשבונך מוגדר ומוכן לשימוש כעת."
-
-#: ../gtk/sip_account.ui.h:1
-msgid "Linphone - Configure a SIP account"
-msgstr "Linphone - הגדרת חשבון SIP"
-
-#: ../gtk/sip_account.ui.h:2
-msgid "Your SIP identity:"
-msgstr "זהות ה־SIP שלך:"
-
-#: ../gtk/sip_account.ui.h:3
-msgid "Looks like sip:@"
-msgstr "נראה כמו sip:@"
-
-#: ../gtk/sip_account.ui.h:4
-msgid "sip:"
-msgstr ""
-
-#: ../gtk/sip_account.ui.h:5
-msgid "SIP Proxy address:"
-msgstr "כתובת SIP Proxy:"
-
-#: ../gtk/sip_account.ui.h:6
-msgid "Looks like sip:"
-msgstr "נראה כמו sip:"
-
-#: ../gtk/sip_account.ui.h:7
-msgid "Registration duration (sec):"
-msgstr "משך רישום (בשניות):"
-
-#: ../gtk/sip_account.ui.h:8
-msgid "Contact params (optional):"
-msgstr ""
-
-#: ../gtk/sip_account.ui.h:9
-msgid "AVPF regular RTCP interval (sec):"
-msgstr ""
-
-#: ../gtk/sip_account.ui.h:10
-msgid "Route (optional):"
-msgstr "ניתוב (רשות):"
-
-#: ../gtk/sip_account.ui.h:11
-msgid "Transport"
-msgstr "טרנספורט"
-
-#: ../gtk/sip_account.ui.h:12
-msgid "Register"
-msgstr "רישום"
-
-#: ../gtk/sip_account.ui.h:13
-msgid "Publish presence information"
-msgstr "פרסם מידע נוכחות"
-
-#: ../gtk/sip_account.ui.h:14
-msgid "Enable AVPF"
-msgstr "אפשר AVPF"
-
-#: ../gtk/sip_account.ui.h:15
-msgid "Configure a SIP account"
-msgstr "הגדרת חשבון SIP"
-
-#: ../gtk/tunnel_config.ui.h:1
-msgid "Configure VoIP tunnel"
-msgstr "הגדר תיעול VoIP"
-
-#: ../gtk/tunnel_config.ui.h:2
-msgid "Host"
-msgstr "מארח"
-
-#: ../gtk/tunnel_config.ui.h:3
-msgid "Port"
-msgstr "פורט"
-
-#: ../gtk/tunnel_config.ui.h:6
-msgid "Configure tunnel"
-msgstr "הגדר מינהור"
-
-#: ../gtk/tunnel_config.ui.h:9
-msgid "Configure http proxy (optional)"
-msgstr "הגדר http proxy (רשות)"
-
-#: ../gtk/waiting.ui.h:2
-msgid "Please wait"
-msgstr "נא להמתין"
-
-#: ../coreapi/linphonecore.c:1594
-msgid "Ready"
-msgstr "מוכן"
-
-#: ../coreapi/linphonecore.c:2685
-msgid "Configuring"
-msgstr "תצורה"
-
-#. must be known at that time
-#: ../coreapi/linphonecore.c:3084
-msgid "Contacting"
-msgstr "מתקשר כעת"
-
-#: ../coreapi/linphonecore.c:3089
-msgid "Could not call"
-msgstr "לא ניתן להתקשר"
-
-#: ../coreapi/linphonecore.c:3228
-msgid "Sorry, we have reached the maximum number of simultaneous calls"
-msgstr "הגענו אל המספר המרבי של שיחות מקבילות, עמך הסליחה"
-
-#: ../coreapi/linphonecore.c:3388
-msgid "is contacting you"
-msgstr "מתקשר/ת אליך"
-
-#: ../coreapi/linphonecore.c:3389
-msgid " and asked autoanswer."
-msgstr " ומבקש/ת מענה אוטומטי."
-
-#: ../coreapi/linphonecore.c:3506
-msgid "Modifying call parameters..."
-msgstr "מתאים כעת פרמטרים של שיחה..."
-
-#: ../coreapi/linphonecore.c:3898
-msgid "Connected."
-msgstr "מקושר."
-
-#: ../coreapi/linphonecore.c:3923
-msgid "Call aborted"
-msgstr "קריאה בוטלה"
-
-#: ../coreapi/linphonecore.c:4125
-msgid "Could not pause the call"
-msgstr "לא ניתן להשהות את השיחה"
-
-#: ../coreapi/linphonecore.c:4128
-msgid "Pausing the current call..."
-msgstr "משהה כעת שיחה נוכחית..."
-
-#: ../coreapi/misc.c:441
-msgid "Stun lookup in progress..."
-msgstr "בדיקת STUN מצויה כעת בעיצומה..."
-
-#: ../coreapi/misc.c:657
-msgid "ICE local candidates gathering in progress..."
-msgstr "צבירת מועמדים מקומיים של ICE מצויה כעת בעיצומה..."
-
-#: ../coreapi/friend.c:48
-msgid "Online"
-msgstr "מקוון"
-
-#: ../coreapi/friend.c:51
-msgid "Busy"
-msgstr "עסוק"
-
-#: ../coreapi/friend.c:54
-msgid "Be right back"
-msgstr "כבר אשוב"
-
-#: ../coreapi/friend.c:57
-msgid "Away"
-msgstr "נעדר"
-
-#: ../coreapi/friend.c:60
-msgid "On the phone"
-msgstr "בטלפון"
-
-#: ../coreapi/friend.c:63
-msgid "Out to lunch"
-msgstr "בארוחת צהריים"
-
-#: ../coreapi/friend.c:66
-msgid "Do not disturb"
-msgstr "נא לא להפריע"
-
-#: ../coreapi/friend.c:69
-msgid "Moved"
-msgstr "עברתי דירה"
-
-#: ../coreapi/friend.c:72
-msgid "Using another messaging service"
-msgstr "אני עושה כעת שימוש בשירות מסרים אחר"
-
-#: ../coreapi/friend.c:75
-msgid "Offline"
-msgstr "לא מקוון"
-
-#: ../coreapi/friend.c:78
-msgid "Pending"
-msgstr "בהמתנה"
-
-#: ../coreapi/friend.c:81
-msgid "Vacation"
-msgstr "חופשה"
-
-#: ../coreapi/friend.c:83
-msgid "Unknown status"
-msgstr "מצב לא ידוע"
-
-#: ../coreapi/proxy.c:339
-msgid ""
-"The sip proxy address you entered is invalid, it must start with \"sip:\" "
-"followed by a hostname."
-msgstr "כתובת sip proxy שהזנת הינה שגויה, זו צריכה להתחיל עם\"sip:\" לאחר שם מארח."
-
-#: ../coreapi/proxy.c:345
-msgid ""
-"The sip identity you entered is invalid.\n"
-"It should look like sip:username@proxydomain, such as sip:alice@example.net"
-msgstr "זהות sip שהוזנה הינה שגויה.\nזו צריכה להיראות כמו sip:username@proxydomain, למשל sip:alice@example.net"
-
-#: ../coreapi/proxy.c:979
-msgid "Looking for telephone number destination..."
-msgstr "מחפש כעת עבור יעד מספר טלפון..."
-
-#: ../coreapi/proxy.c:983
-msgid "Could not resolve this number."
-msgstr "לא ניתן לפתור את מספר זה."
-
-#: ../coreapi/proxy.c:1437
-#, c-format
-msgid "Could not login as %s"
-msgstr "לא ניתן להתחבר בזהות %s"
-
-#: ../coreapi/proxy.c:1522
-#, c-format
-msgid "Refreshing on %s..."
-msgstr ""
-
-#: ../coreapi/callbacks.c:415
-msgid "Remote ringing."
-msgstr "צלצול מרוחק."
-
-#: ../coreapi/callbacks.c:427
-msgid "Remote ringing..."
-msgstr "צלצול מרוחק..."
-
-#: ../coreapi/callbacks.c:450
-msgid "Early media."
-msgstr "מדיה מוקדמת."
-
-#: ../coreapi/callbacks.c:480
-#, c-format
-msgid "Call answered by %s"
-msgstr ""
-
-#: ../coreapi/callbacks.c:522
-msgid "Call resumed."
-msgstr "קריאה חודשה."
-
-#: ../coreapi/callbacks.c:577
-msgid "Incompatible, check codecs or security settings..."
-msgstr "חוסר תאימות, בדוק קודקים או הגדרות אבטחה..."
-
-#: ../coreapi/callbacks.c:582 ../coreapi/callbacks.c:918
-msgid "Incompatible media parameters."
-msgstr "פרמטריי מדיה חסרי תואמים."
-
-#: ../coreapi/callbacks.c:607
-msgid "We have been resumed."
-msgstr "חזרנו."
-
-#. we are being paused
-#: ../coreapi/callbacks.c:615
-msgid "We are paused by other party."
-msgstr "אנו מושהים על ידי צד אחר."
-
-#: ../coreapi/callbacks.c:625
-msgid "Call is updated by remote."
-msgstr "שיחה עודכנה מרחוק."
-
-#: ../coreapi/callbacks.c:794
-msgid "Call terminated."
-msgstr "קריאה הסתיימה."
-
-#: ../coreapi/callbacks.c:822
-msgid "User is busy."
-msgstr "משתמש עסוק כעת."
-
-#: ../coreapi/callbacks.c:823
-msgid "User is temporarily unavailable."
-msgstr "משתמש לא זמין זמנית."
-
-#. char *retrymsg=_("%s. Retry after %i minute(s).");
-#: ../coreapi/callbacks.c:825
-msgid "User does not want to be disturbed."
-msgstr "משתמש לא מעוניין שיפריעו לו."
-
-#: ../coreapi/callbacks.c:826
-msgid "Call declined."
-msgstr "קריאה סורבה."
-
-#: ../coreapi/callbacks.c:841
-msgid "Request timeout."
-msgstr ""
-
-#: ../coreapi/callbacks.c:872
-msgid "Redirected"
-msgstr "מכוון מחדש"
-
-#: ../coreapi/callbacks.c:922
-msgid "Call failed."
-msgstr "קריאה נכשלה."
-
-#: ../coreapi/callbacks.c:1000
-#, c-format
-msgid "Registration on %s successful."
-msgstr "רישום אצל %s הושלם בהצלחה."
-
-#: ../coreapi/callbacks.c:1001
-#, c-format
-msgid "Unregistration on %s done."
-msgstr "אי רישום אצל %s סוים."
-
-#: ../coreapi/callbacks.c:1019
-msgid "no response timeout"
-msgstr "אין היענות תוך זמן מוגדר"
-
-#: ../coreapi/callbacks.c:1022
-#, c-format
-msgid "Registration on %s failed: %s"
-msgstr "רישום אצל %s נכשל: %s"
-
-#: ../coreapi/callbacks.c:1029
-msgid "Service unavailable, retrying"
-msgstr ""
-
-#. if encryption is DTLS, no status to be displayed
-#: ../coreapi/linphonecall.c:204
-#, c-format
-msgid "Authentication token is %s"
-msgstr "אות האימות הינה %s"
-
-#: ../coreapi/linphonecall.c:1663
-#, c-format
-msgid "Call parameters could not be modified: %s."
-msgstr ""
-
-#: ../coreapi/linphonecall.c:1665
-msgid "Call parameters were successfully modified."
-msgstr ""
-
-#: ../coreapi/linphonecall.c:4636
-#, c-format
-msgid "You have missed %i call."
-msgid_plural "You have missed %i calls."
-msgstr[0] "החמצת שיחה %i."
-msgstr[1] "החמצת %i שיחות."
-
-#: ../coreapi/call_log.c:223
-msgid "aborted"
-msgstr ""
-
-#: ../coreapi/call_log.c:226
-msgid "completed"
-msgstr ""
-
-#: ../coreapi/call_log.c:229
-msgid "missed"
-msgstr ""
-
-#: ../coreapi/call_log.c:232
-msgid "unknown"
-msgstr ""
-
-#: ../coreapi/call_log.c:234
-#, c-format
-msgid ""
-"%s at %s\n"
-"From: %s\n"
-"To: %s\n"
-"Status: %s\n"
-"Duration: %i mn %i sec\n"
-msgstr ""
-
-#: ../coreapi/call_log.c:235
-msgid "Outgoing call"
-msgstr ""
-
-#: ../gtk/videowindow.c:72
-#, c-format
-msgid "Cannot play %s."
-msgstr ""
-
-#: ../gtk/videowindow.c:252
-msgid "Take screenshot"
-msgstr ""
diff --git a/po/hu.po b/po/hu.po
deleted file mode 100644
index bee6d8fdf..000000000
--- a/po/hu.po
+++ /dev/null
@@ -1,2090 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-#
-# Translators:
-# Free Bill , 2015
-msgid ""
-msgstr ""
-"Project-Id-Version: linphone-gtk\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-19 14:01+0200\n"
-"PO-Revision-Date: 2016-05-10 09:58+0000\n"
-"Last-Translator: Belledonne Communications \n"
-"Language-Team: Hungarian (http://www.transifex.com/belledonne-communications/linphone-gtk/language/hu/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: hu\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: ../gtk/calllogs.c:178
-#, c-format
-msgid "Call %s"
-msgstr "%s hívása"
-
-#: ../gtk/calllogs.c:179
-#, c-format
-msgid "Send text to %s"
-msgstr "Szöveg küldése a következőnek: %s"
-
-#: ../gtk/calllogs.c:181
-#, c-format
-msgid "Add %s to your contact list"
-msgstr ""
-
-#: ../gtk/calllogs.c:245 ../gtk/main.ui.h:23
-msgid "Recent calls"
-msgstr "Legutóbbi hívások"
-
-#: ../gtk/calllogs.c:260
-#, c-format
-msgid "Recent calls (%i)"
-msgstr ""
-
-#: ../gtk/calllogs.c:334
-msgid "n/a"
-msgstr "-"
-
-#: ../gtk/calllogs.c:337
-msgid "Aborted"
-msgstr "Megszakítva"
-
-#: ../gtk/calllogs.c:340
-msgid "Missed"
-msgstr "Nem fogadott"
-
-#: ../gtk/calllogs.c:343
-msgid "Declined"
-msgstr "Elutasítva"
-
-#: ../gtk/calllogs.c:349
-#, c-format
-msgid "%i minute"
-msgid_plural "%i minutes"
-msgstr[0] "%i perc"
-msgstr[1] "%i perc"
-
-#: ../gtk/calllogs.c:352
-#, c-format
-msgid "%i second"
-msgid_plural "%i seconds"
-msgstr[0] "%i másodperc"
-msgstr[1] "%i másodperc"
-
-#: ../gtk/calllogs.c:357
-#, c-format
-msgid ""
-"%s\tQuality: %s\n"
-"%s\t%s\t"
-msgstr "%s\tMinőség: %s\n%s\t%s\t"
-
-#: ../gtk/calllogs.c:361
-#, c-format
-msgid "%s\t%s"
-msgstr "%s\t%s"
-
-#: ../gtk/conference.c:38 ../gtk/in_call_frame.ui.h:11
-msgid "Conference"
-msgstr "Konferencia"
-
-#: ../gtk/conference.c:46
-msgid "Me"
-msgstr "én"
-
-#: ../gtk/support.c:49 ../gtk/support.c:73 ../gtk/support.c:102
-#, c-format
-msgid "Couldn't find pixmap file: %s"
-msgstr "Nemtalálható a pixmap fájl: %s"
-
-#: ../gtk/chat.c:207 ../gtk/chat.c:265
-msgid "Sending..."
-msgstr ""
-
-#: ../gtk/chat.c:224 ../gtk/chat.c:274
-msgid "Message not sent"
-msgstr ""
-
-#: ../gtk/chat.c:498
-msgid "Copy"
-msgstr ""
-
-#: ../gtk/main.c:134
-msgid "log to stdout some debug information while running."
-msgstr "Futás közben némi hibakeresési információ az stdout-ra naplózása."
-
-#: ../gtk/main.c:135
-msgid "display version and exit."
-msgstr ""
-
-#: ../gtk/main.c:136
-msgid "path to a file to write logs into."
-msgstr "fájl elérési útja, melybe a naplók kerülnek."
-
-#: ../gtk/main.c:137
-msgid "Start linphone with video disabled."
-msgstr "Linphone indítása, videó kikpacsolva. "
-
-#: ../gtk/main.c:138
-msgid "Start only in the system tray, do not show the main interface."
-msgstr "Csak a tálcaikon indítása, ne mutassa a fő ablakot."
-
-#: ../gtk/main.c:139
-msgid "address to call right now"
-msgstr "Cím azonnali híváshoz"
-
-#: ../gtk/main.c:140
-msgid ""
-"Specifiy a working directory (should be the base of the installation, eg: "
-"c:\\Program Files\\Linphone)"
-msgstr "Adjon meg egy munkakönyvtárat (ennek az installációs könyvtárnak kéne lennie, pl. C:\\Program Files\\Linphone)"
-
-#: ../gtk/main.c:141
-msgid "Configuration file"
-msgstr ""
-
-#: ../gtk/main.c:142
-msgid "Run the audio assistant"
-msgstr ""
-
-#: ../gtk/main.c:143
-msgid "Run self test and exit 0 if succeed"
-msgstr ""
-
-#: ../gtk/main.c:1058
-#, c-format
-msgid ""
-"%s would like to add you to his/her contact list.\n"
-"Would you add him/her to your contact list and allow him/her to see your presence status?\n"
-"If you answer no, this person will be temporarily blacklisted."
-msgstr ""
-
-#: ../gtk/main.c:1135
-#, c-format
-msgid ""
-"Please enter your password for username %s\n"
-" at realm %s:"
-msgstr ""
-
-#: ../gtk/main.c:1244
-msgid "Call error"
-msgstr "Hiba a hívás közben"
-
-#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942
-msgid "Call ended"
-msgstr "Hívás vége"
-
-#: ../gtk/main.c:1250 ../coreapi/call_log.c:235
-msgid "Incoming call"
-msgstr "Beérkező hívás"
-
-#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2
-msgid "Answer"
-msgstr "Hívás fogadása"
-
-#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3
-msgid "Decline"
-msgstr "Elutasítás"
-
-#: ../gtk/main.c:1262
-msgid "Call paused"
-msgstr "Hívás várakoztatva"
-
-#: ../gtk/main.c:1262
-#, c-format
-msgid "by %s"
-msgstr "a következő által: %s"
-
-#: ../gtk/main.c:1336
-#, c-format
-msgid "%s proposed to start video. Do you accept ?"
-msgstr "%s szerené elidítani a videót. Elfogadja?"
-
-#: ../gtk/main.c:1502
-msgid "Website link"
-msgstr "Internetes oldal"
-
-#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1
-msgid "Linphone"
-msgstr "Linphone"
-
-#: ../gtk/main.c:1562
-msgid "A video internet phone"
-msgstr ""
-
-#: ../gtk/main.c:1624
-#, c-format
-msgid "%s (Default)"
-msgstr "%s (Alapértelmezett)"
-
-#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080
-#, c-format
-msgid "We are transferred to %s"
-msgstr "Át vagyunk irányítva ide: %s"
-
-#: ../gtk/main.c:2008
-msgid ""
-"No sound cards have been detected on this computer.\n"
-"You won't be able to send or receive audio calls."
-msgstr "Hangkártya nincs érzékelve ezen a számítógépen.\nNem fog tudni hang hívásokat küldeni vagy fogadni."
-
-#: ../gtk/main.c:2173
-msgid "A free SIP video-phone"
-msgstr "Egy ingyenes SIP video-telefon"
-
-#: ../gtk/main.c:2292
-#, c-format
-msgid "Hello\n"
-msgstr ""
-
-#: ../gtk/friendlist.c:460
-msgid "Add to addressbook"
-msgstr "Hozzáadás címjegyzékhez"
-
-#: ../gtk/friendlist.c:626
-#, c-format
-msgid "Search in %s directory"
-msgstr "Keresés ebben a könyvtárban: %s"
-
-#: ../gtk/friendlist.c:773
-msgid "Invalid sip contact !"
-msgstr "Érvénytelen sip partner !"
-
-#: ../gtk/friendlist.c:820
-#, c-format
-msgid "Add a new contact"
-msgstr ""
-
-#: ../gtk/friendlist.c:823
-#, c-format
-msgid "Edit contact '%s'"
-msgstr "Kapcsolatinformációk szerkesztése: '%s'"
-
-#: ../gtk/friendlist.c:824
-#, c-format
-msgid "Delete contact '%s'"
-msgstr "'%s' partner törlése"
-
-#: ../gtk/friendlist.c:825
-#, c-format
-msgid "Delete chat history of '%s'"
-msgstr ""
-
-#: ../gtk/friendlist.c:862
-#, c-format
-msgid "Add new contact from %s directory"
-msgstr "Új partner hozzáadása ebből a könyvtárból: %s"
-
-#: ../gtk/propertybox.c:592 ../gtk/contact.ui.h:1
-msgid "Name"
-msgstr "Név"
-
-#: ../gtk/propertybox.c:598
-msgid "Rate (Hz)"
-msgstr "Érték (Hz)"
-
-#: ../gtk/propertybox.c:604
-msgid "Status"
-msgstr "Állapot"
-
-#: ../gtk/propertybox.c:617
-msgid "IP Bitrate (kbit/s)"
-msgstr ""
-
-#: ../gtk/propertybox.c:628
-msgid "Parameters"
-msgstr "Paraméterek"
-
-#: ../gtk/propertybox.c:670 ../gtk/propertybox.c:824
-msgid "Enabled"
-msgstr "Engedélyezve"
-
-#: ../gtk/propertybox.c:672 ../gtk/propertybox.c:824 ../gtk/parameters.ui.h:57
-msgid "Disabled"
-msgstr "Tiltva"
-
-#: ../gtk/propertybox.c:902
-msgid "Account"
-msgstr "Hozzáférés"
-
-#: ../gtk/propertybox.c:1170
-msgid "English"
-msgstr "angol"
-
-#: ../gtk/propertybox.c:1171
-msgid "French"
-msgstr "francia"
-
-#: ../gtk/propertybox.c:1172
-msgid "Swedish"
-msgstr "svéd"
-
-#: ../gtk/propertybox.c:1173
-msgid "Italian"
-msgstr "olasz"
-
-#: ../gtk/propertybox.c:1174
-msgid "Spanish"
-msgstr "spanyol"
-
-#: ../gtk/propertybox.c:1175
-msgid "Brazilian Portugese"
-msgstr "brazil-portugál"
-
-#: ../gtk/propertybox.c:1176
-msgid "Polish"
-msgstr "lengyel"
-
-#: ../gtk/propertybox.c:1177
-msgid "German"
-msgstr "német"
-
-#: ../gtk/propertybox.c:1178
-msgid "Russian"
-msgstr "orosz"
-
-#: ../gtk/propertybox.c:1179
-msgid "Japanese"
-msgstr "japán"
-
-#: ../gtk/propertybox.c:1180
-msgid "Dutch"
-msgstr "holland"
-
-#: ../gtk/propertybox.c:1181
-msgid "Hungarian"
-msgstr "magyar"
-
-#: ../gtk/propertybox.c:1182
-msgid "Czech"
-msgstr "cseh"
-
-#: ../gtk/propertybox.c:1183
-msgid "Chinese"
-msgstr "egyszerúsített kínai"
-
-#: ../gtk/propertybox.c:1184
-msgid "Traditional Chinese"
-msgstr "tradícionális kínai"
-
-#: ../gtk/propertybox.c:1185
-msgid "Norwegian"
-msgstr "norvég"
-
-#: ../gtk/propertybox.c:1186
-msgid "Hebrew"
-msgstr "héber"
-
-#: ../gtk/propertybox.c:1187
-msgid "Serbian"
-msgstr "szerb"
-
-#: ../gtk/propertybox.c:1188
-msgid "Arabic"
-msgstr "arab"
-
-#: ../gtk/propertybox.c:1189
-msgid "Turkish"
-msgstr "török"
-
-#: ../gtk/propertybox.c:1246
-msgid ""
-"You need to restart linphone for the new language selection to take effect."
-msgstr "Újra kell indítania a linphone-t, hogy az új nyelv kiválasztása érvényre jusson. "
-
-#: ../gtk/propertybox.c:1332
-msgid "None"
-msgstr "Nincs"
-
-#: ../gtk/propertybox.c:1336
-msgid "SRTP"
-msgstr "SRTP"
-
-#: ../gtk/propertybox.c:1342
-msgid "DTLS"
-msgstr ""
-
-#: ../gtk/propertybox.c:1349
-msgid "ZRTP"
-msgstr "ZRTP"
-
-#: ../gtk/update.c:80
-#, c-format
-msgid ""
-"A more recent version is availalble from %s.\n"
-"Would you like to open a browser to download it ?"
-msgstr "Elérhető egy újabb verzió a következőn: %s.\nSzeretné, hogy a letöltéshez egy új böngésző ablak nyíljon?"
-
-#: ../gtk/update.c:91
-msgid "You are running the lastest version."
-msgstr "Ön a legfrissebb verziót használja."
-
-#: ../gtk/buddylookup.c:85
-msgid "Firstname, Lastname"
-msgstr "Utónév, Családnév"
-
-#: ../gtk/buddylookup.c:160
-msgid "Error communicating with server."
-msgstr "Hiba a kiszolgálóval történő kommunikáció során."
-
-#: ../gtk/buddylookup.c:164
-msgid "Connecting..."
-msgstr "Kapcsolódás..."
-
-#: ../gtk/buddylookup.c:168
-msgid "Connected"
-msgstr "Kapcsolódva"
-
-#: ../gtk/buddylookup.c:172
-msgid "Receiving data..."
-msgstr "Adatok fogadása..."
-
-#: ../gtk/buddylookup.c:180
-#, c-format
-msgid "Found %i contact"
-msgid_plural "Found %i contacts"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../gtk/setupwizard.c:219
-msgid "Username is already in use!"
-msgstr ""
-
-#: ../gtk/setupwizard.c:223
-msgid "Failed to check username availability. Please try again later."
-msgstr ""
-
-#: ../gtk/incall_view.c:67 ../gtk/incall_view.c:87
-#, c-format
-msgid "Call #%i"
-msgstr "Hívás #%i"
-
-#: ../gtk/incall_view.c:145
-#, c-format
-msgid "Transfer to call #%i with %s"
-msgstr "Átirányítás #%i híváshoz ezzel: %s "
-
-#: ../gtk/incall_view.c:202 ../gtk/incall_view.c:205
-msgid "Not used"
-msgstr "Nem használt"
-
-#: ../gtk/incall_view.c:212
-msgid "ICE not activated"
-msgstr "ICE nincs aktiválva"
-
-#: ../gtk/incall_view.c:214
-msgid "ICE failed"
-msgstr "ICE nem sikerült"
-
-#: ../gtk/incall_view.c:216
-msgid "ICE in progress"
-msgstr "ICE folyamatban"
-
-#: ../gtk/incall_view.c:218
-msgid "Going through one or more NATs"
-msgstr "Átmegy egy vagy több NAT-on"
-
-#: ../gtk/incall_view.c:220
-msgid "Direct"
-msgstr "Közvetlen"
-
-#: ../gtk/incall_view.c:222
-msgid "Through a relay server"
-msgstr "Közvetítő kiszolgálón keresztül"
-
-#: ../gtk/incall_view.c:230
-msgid "uPnP not activated"
-msgstr "uPnP nincs aktiválva"
-
-#: ../gtk/incall_view.c:232
-msgid "uPnP in progress"
-msgstr "uPnP folyamatban"
-
-#: ../gtk/incall_view.c:234
-msgid "uPnp not available"
-msgstr "uPnP nem elérhető"
-
-#: ../gtk/incall_view.c:236
-msgid "uPnP is running"
-msgstr "uPnP fut"
-
-#: ../gtk/incall_view.c:238
-msgid "uPnP failed"
-msgstr "uPnP nem sikerült"
-
-#: ../gtk/incall_view.c:248 ../gtk/incall_view.c:249
-msgid "Direct or through server"
-msgstr "közvetlen vagy kiszolgálón keresztül"
-
-#: ../gtk/incall_view.c:258 ../gtk/incall_view.c:270
-#, c-format
-msgid ""
-"download: %f\n"
-"upload: %f (kbit/s)"
-msgstr "letöltés: %f\nfeltöltés: %f (kbit/mp)"
-
-#: ../gtk/incall_view.c:263 ../gtk/incall_view.c:265
-#, c-format
-msgid "%ix%i @ %f fps"
-msgstr ""
-
-#: ../gtk/incall_view.c:295
-#, c-format
-msgid "%.3f seconds"
-msgstr "%.3f másodperc"
-
-#: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10
-#: ../gtk/videowindow.c:248
-msgid "Hang up"
-msgstr "Befejezés"
-
-#: ../gtk/incall_view.c:558
-msgid "Calling..."
-msgstr "Hívás folyamatban..."
-
-#: ../gtk/incall_view.c:561 ../gtk/incall_view.c:793
-msgid "00:00:00"
-msgstr "00:00:00"
-
-#: ../gtk/incall_view.c:572
-msgid "Incoming call"
-msgstr "Beérkező hívás"
-
-#: ../gtk/incall_view.c:609
-msgid "good"
-msgstr "jó"
-
-#: ../gtk/incall_view.c:611
-msgid "average"
-msgstr "közepes"
-
-#: ../gtk/incall_view.c:613
-msgid "poor"
-msgstr "gyenge"
-
-#: ../gtk/incall_view.c:615
-msgid "very poor"
-msgstr "nagyon gyenge"
-
-#: ../gtk/incall_view.c:617
-msgid "too bad"
-msgstr "rossz"
-
-#: ../gtk/incall_view.c:618 ../gtk/incall_view.c:634
-msgid "unavailable"
-msgstr "nem elérhető"
-
-#: ../gtk/incall_view.c:732
-msgid "Secured by SRTP"
-msgstr "SRTP-vel titkosítva"
-
-#: ../gtk/incall_view.c:738
-msgid "Secured by DTLS"
-msgstr ""
-
-#: ../gtk/incall_view.c:744
-#, c-format
-msgid "Secured by ZRTP - [auth token: %s]"
-msgstr "ZRTP-vel titkosítva - [hitelesítési jel: %s]"
-
-#: ../gtk/incall_view.c:748
-msgid "Set unverified"
-msgstr "Beállítás ellenőrizetlenként"
-
-#: ../gtk/incall_view.c:748
-msgid "Set verified"
-msgstr "Beállítás ellenőrzöttként"
-
-#: ../gtk/incall_view.c:788
-msgid "In conference"
-msgstr "Konferencián"
-
-#: ../gtk/incall_view.c:788
-msgid "In call"
-msgstr "vonalban"
-
-#: ../gtk/incall_view.c:825
-msgid "Paused call"
-msgstr "Várakoztatott hívás"
-
-#: ../gtk/incall_view.c:862
-msgid "Call ended."
-msgstr "Hívás vége."
-
-#: ../gtk/incall_view.c:893
-msgid "Transfer in progress"
-msgstr "Átvitel folyamatban"
-
-#: ../gtk/incall_view.c:896
-msgid "Transfer done."
-msgstr "Átvitel befejezve."
-
-#: ../gtk/incall_view.c:899
-msgid "Transfer failed."
-msgstr "Az átvitel sikertelen."
-
-#: ../gtk/incall_view.c:930
-msgid "Resume"
-msgstr "Visszatérés"
-
-#: ../gtk/incall_view.c:930 ../gtk/in_call_frame.ui.h:7
-msgid "Pause"
-msgstr "Várakoztatás"
-
-#: ../gtk/incall_view.c:996
-#, c-format
-msgid ""
-"Recording into\n"
-"%s %s"
-msgstr "Felvétel a következőbe\n%s %s"
-
-#: ../gtk/incall_view.c:996
-msgid "(Paused)"
-msgstr "(Várakoztatva)"
-
-#: ../gtk/loginframe.c:75
-#, c-format
-msgid "Please enter login information for %s"
-msgstr "Kérem, adja meg a bejelentkezési információt %s -hoz"
-
-#: ../gtk/config-fetching.c:57
-#, c-format
-msgid "fetching from %s"
-msgstr ""
-
-#: ../gtk/config-fetching.c:73
-#, c-format
-msgid "Downloading of remote configuration from %s failed."
-msgstr ""
-
-#: ../gtk/audio_assistant.c:103
-msgid "No voice detected"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:104
-msgid "Too low"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:105
-msgid "Good"
-msgstr "Jó"
-
-#: ../gtk/audio_assistant.c:106
-msgid "Too loud"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:188
-msgid "Did you hear three beeps ?"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:301 ../gtk/audio_assistant.c:306
-msgid "Sound preferences not found "
-msgstr ""
-
-#: ../gtk/audio_assistant.c:315
-msgid "Cannot launch system sound control "
-msgstr ""
-
-#: ../gtk/audio_assistant.c:327
-msgid ""
-"Welcome!\n"
-"This assistant will help you to configure audio settings for Linphone"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:337
-msgid "Capture device"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:338
-msgid "Recorded volume"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:342
-msgid "No voice"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:343 ../gtk/audio_assistant.c:382
-msgid "System sound preferences"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:378
-msgid "Playback device"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:379
-msgid "Play three beeps"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:412
-msgid "Press the record button and say some words"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:413
-msgid "Listen to your record voice"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:414 ../gtk/conf_frame.ui.h:2
-#: ../gtk/in_call_frame.ui.h:4
-msgid "Record"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:415
-msgid "Play"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:442
-msgid "Let's start Linphone now"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:513
-msgid "Audio Assistant"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:523 ../gtk/main.ui.h:15
-msgid "Audio assistant"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:528
-msgid "Mic Gain calibration"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:534
-msgid "Speaker volume calibration"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:539
-msgid "Record and Play"
-msgstr ""
-
-#: ../gtk/audio_assistant.c:544 ../gtk/setup_wizard.ui.h:38
-msgid "Terminating"
-msgstr "Befejezés"
-
-#: ../gtk/about.ui.h:1
-msgid "About Linphone"
-msgstr ""
-
-#: ../gtk/about.ui.h:2
-msgid "(C) Belledonne Communications, 2010\n"
-msgstr ""
-
-#: ../gtk/about.ui.h:4
-msgid "An internet video phone using the standard SIP (rfc3261) protocol."
-msgstr "Internetes videó telefon, mely a szabványos SIP (rfc3261) protokolt használja."
-
-#: ../gtk/about.ui.h:5
-msgid ""
-"fr: Simon Morlat\n"
-"en: Simon Morlat and Delphine Perreau\n"
-"it: Alberto Zanoni \n"
-"de: Jean-Jacques Sarton \n"
-"sv: Daniel Nylander \n"
-"es: Jesus Benitez \n"
-"ja: YAMAGUCHI YOSHIYA \n"
-"pt_BR: Rafael Caesar Lenzi \n"
-"pl: Robert Nasiadek \n"
-"cs: Petr Pisar \n"
-"hu: anonymous\n"
-"he: Eli Zaretskii \n"
-msgstr ""
-
-#: ../gtk/buddylookup.ui.h:1
-msgid "Search contacts in directory"
-msgstr "Partnerek keresése könyvtárban"
-
-#: ../gtk/buddylookup.ui.h:2
-msgid "Add to my list"
-msgstr "Hozzáadása a listámhoz"
-
-#: ../gtk/buddylookup.ui.h:3
-msgid "Search somebody"
-msgstr "Keres valakit"
-
-#: ../gtk/callee_frame.ui.h:1
-msgid "Callee name"
-msgstr "Hívott neve"
-
-#: ../gtk/call_logs.ui.h:1
-msgid "Call history"
-msgstr "Híváselőzmények"
-
-#: ../gtk/call_logs.ui.h:2
-msgid "Clear all"
-msgstr "Mind törlése"
-
-#: ../gtk/call_logs.ui.h:3
-msgid "Call back"
-msgstr "Visszahívás"
-
-#: ../gtk/call_statistics.ui.h:1
-msgid "Call statistics"
-msgstr "Hívási statisztika"
-
-#: ../gtk/call_statistics.ui.h:2
-msgid "Audio codec"
-msgstr "Audió kódek"
-
-#: ../gtk/call_statistics.ui.h:3
-msgid "Video codec"
-msgstr "Videó kódek"
-
-#: ../gtk/call_statistics.ui.h:4
-msgid "Audio IP bandwidth usage"
-msgstr "Audió IP sávszélesség használat"
-
-#: ../gtk/call_statistics.ui.h:5
-msgid "Audio Media connectivity"
-msgstr "Audió média kapcsolat"
-
-#: ../gtk/call_statistics.ui.h:6
-msgid "Video IP bandwidth usage"
-msgstr "Videó IP sávszélesség használat"
-
-#: ../gtk/call_statistics.ui.h:7
-msgid "Video Media connectivity"
-msgstr "Videó média kapcsolat"
-
-#: ../gtk/call_statistics.ui.h:8
-msgid "Round trip time"
-msgstr "Körbeérés ideje"
-
-#: ../gtk/call_statistics.ui.h:9
-msgid "Video resolution received"
-msgstr ""
-
-#: ../gtk/call_statistics.ui.h:10
-msgid "Video resolution sent"
-msgstr ""
-
-#: ../gtk/call_statistics.ui.h:11
-msgid "RTP profile"
-msgstr ""
-
-#: ../gtk/call_statistics.ui.h:12
-msgid "Call statistics and information"
-msgstr "Hívási statisztika és információ"
-
-#: ../gtk/chatroom_frame.ui.h:1
-msgid "Send"
-msgstr "Küld"
-
-#: ../gtk/conf_frame.ui.h:1
-msgid "End conference"
-msgstr "Konferencia vége"
-
-#: ../gtk/config-uri.ui.h:1
-msgid "Specifying a remote configuration URI"
-msgstr ""
-
-#: ../gtk/config-uri.ui.h:2
-msgid ""
-"This dialog allows to set an http or https address when configuration is to be fetched at startup.\n"
-"Please enter or modify the configuration URI below. After clicking OK, Linphone will restart automatically in order to fetch and take into account the new configuration. "
-msgstr ""
-
-#: ../gtk/contact.ui.h:2
-msgid "SIP Address"
-msgstr "SIP cím"
-
-#: ../gtk/contact.ui.h:3
-msgid "Show this contact presence status"
-msgstr "A partner jelenlétének mutatása"
-
-#: ../gtk/contact.ui.h:4
-msgid "Allow this contact to see my presence status"
-msgstr "Megengedem ennek a partnernek, hogy lássa a jelenlétemet"
-
-#: ../gtk/contact.ui.h:5
-msgid "Contact information"
-msgstr "Partner információ"
-
-#: ../gtk/dscp_settings.ui.h:1
-msgid "DSCP settings"
-msgstr ""
-
-#: ../gtk/dscp_settings.ui.h:2
-msgid "SIP"
-msgstr "SIP"
-
-#: ../gtk/dscp_settings.ui.h:3
-msgid "Audio RTP stream"
-msgstr "Audió RTP folyam"
-
-#: ../gtk/dscp_settings.ui.h:4
-msgid "Video RTP stream"
-msgstr "Videó RTP folyam"
-
-#: ../gtk/dscp_settings.ui.h:5
-msgid "Set DSCP values (in hexadecimal)"
-msgstr "DSCP értékek beállítása (hexadecimális)"
-
-#: ../gtk/in_call_frame.ui.h:1
-msgid "Click here to set the speakers volume"
-msgstr ""
-
-#: ../gtk/in_call_frame.ui.h:5
-msgid "Record this call to an audio file"
-msgstr "Beszélgetés felvétele hangfájlba"
-
-#: ../gtk/in_call_frame.ui.h:6
-msgid "Video"
-msgstr "Videó"
-
-#: ../gtk/in_call_frame.ui.h:8
-msgid "Mute"
-msgstr "Elnémítás"
-
-#: ../gtk/in_call_frame.ui.h:9
-msgid "Transfer"
-msgstr "Átvitel"
-
-#: ../gtk/in_call_frame.ui.h:12
-msgid "In call"
-msgstr "vonalban"
-
-#: ../gtk/in_call_frame.ui.h:13
-msgid "Duration"
-msgstr "Időtartam"
-
-#: ../gtk/in_call_frame.ui.h:14
-msgid "Call quality rating"
-msgstr "Hívásminőség"
-
-#: ../gtk/ldap.ui.h:1
-msgid "LDAP Settings"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:2 ../gtk/parameters.ui.h:90
-msgid "Server address:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:3 ../gtk/parameters.ui.h:91
-msgid "Authentication method:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:4 ../gtk/parameters.ui.h:92 ../gtk/setup_wizard.ui.h:17
-msgid "Username:"
-msgstr "Felhasználónév:"
-
-#: ../gtk/ldap.ui.h:5 ../gtk/password.ui.h:4 ../gtk/setup_wizard.ui.h:18
-msgid "Password:"
-msgstr "Jelszó:"
-
-#: ../gtk/ldap.ui.h:6
-msgid "Use TLS Connection"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:7
-msgid "Not yet available"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:8
-msgid "Connection"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:9
-msgid "Bind DN"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:10
-msgid "Authname"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:11
-msgid "Realm"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:12
-msgid "SASL"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:13
-msgid "Base object:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:15
-#, no-c-format
-msgid "Filter (%s for name):"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:16
-msgid "Name Attribute:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:17
-msgid "SIP address attribute:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:18
-msgid "Attributes to query:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:19
-msgid "Search"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:20
-msgid "Timeout for search:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:21
-msgid "Max results:"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:22
-msgid "Follow Aliases"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:23
-msgid "Miscellaneous"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:24
-msgid "ANONYMOUS"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:25
-msgid "SIMPLE"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:26
-msgid "DIGEST-MD5"
-msgstr ""
-
-#: ../gtk/ldap.ui.h:27
-msgid "NTLM"
-msgstr ""
-
-#: ../gtk/login_frame.ui.h:1 ../gtk/tunnel_config.ui.h:7
-msgid "Username"
-msgstr "Felhasználónév"
-
-#: ../gtk/login_frame.ui.h:2 ../gtk/tunnel_config.ui.h:8
-msgid "Password"
-msgstr "Jelszó"
-
-#: ../gtk/login_frame.ui.h:3
-msgid "Internet connection:"
-msgstr "Internet kapcsolat:"
-
-#: ../gtk/login_frame.ui.h:4
-msgid "Automatically log me in"
-msgstr "Jelentkeztessen be automatikusan"
-
-#: ../gtk/login_frame.ui.h:5 ../gtk/password.ui.h:3
-msgid "UserID"
-msgstr "Felhasználó azonosító"
-
-#: ../gtk/login_frame.ui.h:6
-msgid "Login information"
-msgstr "Bejelentkezési információ"
-
-#: ../gtk/login_frame.ui.h:7
-msgid "Welcome!"
-msgstr ""
-
-#: ../gtk/login_frame.ui.h:8
-msgid "ADSL"
-msgstr "ADSL"
-
-#: ../gtk/login_frame.ui.h:9
-msgid "Fiber Channel"
-msgstr "Fiber csatorna"
-
-#: ../gtk/log.ui.h:1
-msgid "Linphone debug window"
-msgstr "Linphone Hibakereső Ablak"
-
-#: ../gtk/log.ui.h:2
-msgid "Scroll to end"
-msgstr "Görgetés a végéhez"
-
-#: ../gtk/main.ui.h:1
-msgid "Default"
-msgstr "Alapértelmezett"
-
-#: ../gtk/main.ui.h:2
-msgid "Delete"
-msgstr "Törlés"
-
-#: ../gtk/main.ui.h:3
-msgid "_Options"
-msgstr "_Beállítások"
-
-#: ../gtk/main.ui.h:4
-msgid "Set configuration URI"
-msgstr ""
-
-#: ../gtk/main.ui.h:5
-msgid "Always start video"
-msgstr "Videó indítása mindig"
-
-#: ../gtk/main.ui.h:6
-msgid "Enable self-view"
-msgstr "Saját nézet"
-
-#: ../gtk/main.ui.h:7
-msgid "Show keypad"
-msgstr ""
-
-#: ../gtk/main.ui.h:8
-msgid "Import contacts from vCards"
-msgstr ""
-
-#: ../gtk/main.ui.h:9
-msgid "Export contacts as vCards"
-msgstr ""
-
-#: ../gtk/main.ui.h:10
-msgid "_Help"
-msgstr "_Segítség"
-
-#: ../gtk/main.ui.h:11
-msgid "Show debug window"
-msgstr "Hibakeresési ablak mutatása"
-
-#: ../gtk/main.ui.h:12
-msgid "_Homepage"
-msgstr "_Honlap"
-
-#: ../gtk/main.ui.h:13
-msgid "Check _Updates"
-msgstr "Frissítések keresése"
-
-#: ../gtk/main.ui.h:14
-msgid "Account assistant"
-msgstr "Fiók varázsló"
-
-#: ../gtk/main.ui.h:16
-msgid "SIP address or phone number:"
-msgstr "Adja meg a SIP címet vagy a telefonszámot:"
-
-#: ../gtk/main.ui.h:17
-msgid "Initiate a new call"
-msgstr "Új hívás kezdeményezése"
-
-#: ../gtk/main.ui.h:18
-msgid "Contacts"
-msgstr "Partnerek"
-
-#: ../gtk/main.ui.h:19
-msgid "Search"
-msgstr "Keresés"
-
-#: ../gtk/main.ui.h:20
-msgid "Add contacts from directory"
-msgstr "Partnerek hozzáadása könyvtárból"
-
-#: ../gtk/main.ui.h:21
-msgid "Add contact"
-msgstr "Partner hozzáadása"
-
-#: ../gtk/main.ui.h:22
-msgid "Clear call history"
-msgstr ""
-
-#: ../gtk/main.ui.h:24
-msgid "My current identity:"
-msgstr "Jelenlegi identitásom:"
-
-#: ../gtk/main.ui.h:25
-msgid "Autoanswer is enabled"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:1
-msgid "anonymous"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:2
-msgid "GSSAPI"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:3
-msgid "SASL"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:4
-msgid "default soundcard"
-msgstr "alapértelmezett hangkártya"
-
-#: ../gtk/parameters.ui.h:5
-msgid "a sound card"
-msgstr "egy hangkártya"
-
-#: ../gtk/parameters.ui.h:6
-msgid "default camera"
-msgstr "alapértelmezett kamera"
-
-#: ../gtk/parameters.ui.h:7
-msgid "CIF"
-msgstr "CIF"
-
-#: ../gtk/parameters.ui.h:8
-msgid "Audio codecs"
-msgstr "Audió kódekek"
-
-#: ../gtk/parameters.ui.h:9
-msgid "Video codecs"
-msgstr "Videó kódekek"
-
-#: ../gtk/parameters.ui.h:10
-msgid "C"
-msgstr "C"
-
-#: ../gtk/parameters.ui.h:11
-msgid "SIP (UDP)"
-msgstr "SIP (UDP)"
-
-#: ../gtk/parameters.ui.h:12
-msgid "SIP (TCP)"
-msgstr "SIP (TCP)"
-
-#: ../gtk/parameters.ui.h:13
-msgid "SIP (TLS)"
-msgstr "SIP (TLS)"
-
-#: ../gtk/parameters.ui.h:14
-msgid "Settings"
-msgstr "Beállítások"
-
-#: ../gtk/parameters.ui.h:15
-msgid "This section defines your SIP address when not using a SIP account"
-msgstr "Ez a rész határozza meg az Ön SIP címét, amikor nem használ SIP fiókot"
-
-#: ../gtk/parameters.ui.h:16
-msgid "Your display name (eg: John Doe):"
-msgstr "Az Ön megjelenített neve (pl. Kis József):"
-
-#: ../gtk/parameters.ui.h:17
-msgid "Your username:"
-msgstr "Az Ön felhasználóneve:"
-
-#: ../gtk/parameters.ui.h:18
-msgid "Your resulting SIP address:"
-msgstr "Az Ön így keletkezett SIP címe:"
-
-#: ../gtk/parameters.ui.h:19
-msgid "Default identity"
-msgstr "Alapértelmezett identitás"
-
-#: ../gtk/parameters.ui.h:20
-msgid "Wizard"
-msgstr "Varázsló"
-
-#: ../gtk/parameters.ui.h:21
-msgid "Add"
-msgstr "Hozzáadás"
-
-#: ../gtk/parameters.ui.h:22
-msgid "Edit"
-msgstr "Szerkesztés"
-
-#: ../gtk/parameters.ui.h:23
-msgid "Remove"
-msgstr "Eltávolítás"
-
-#: ../gtk/parameters.ui.h:24
-msgid "Proxy accounts"
-msgstr "Proxy fiókok"
-
-#: ../gtk/parameters.ui.h:25
-msgid "Erase all passwords"
-msgstr "Minden kulcsszó törlése"
-
-#: ../gtk/parameters.ui.h:26
-msgid "Privacy"
-msgstr "Titoktartás"
-
-#: ../gtk/parameters.ui.h:27
-msgid "Automatically answer when a call is received"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:28
-msgid "Delay before answering (ms)"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:29
-msgid "Auto-answer"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:30
-msgid "Manage SIP Accounts"
-msgstr "SIP fiókok beállítása"
-
-#: ../gtk/parameters.ui.h:31
-msgid "Ring sound:"
-msgstr "Csengőhang:"
-
-#: ../gtk/parameters.ui.h:32
-msgid "ALSA special device (optional):"
-msgstr "Különleges ALSA eszköz (nem kötelező):"
-
-#: ../gtk/parameters.ui.h:33
-msgid "Capture device:"
-msgstr "Felvevő hang eszköz:"
-
-#: ../gtk/parameters.ui.h:34
-msgid "Ring device:"
-msgstr "Csengőhang eszköz:"
-
-#: ../gtk/parameters.ui.h:35
-msgid "Playback device:"
-msgstr "Lejátszó hang eszköz:"
-
-#: ../gtk/parameters.ui.h:36
-msgid "Enable echo cancellation"
-msgstr "Visszhang-elnyomás engedélyezése"
-
-#: ../gtk/parameters.ui.h:37
-msgid "Audio"
-msgstr "Audió"
-
-#: ../gtk/parameters.ui.h:38
-msgid "Video input device:"
-msgstr "Videó bemeneti eszköz:"
-
-#: ../gtk/parameters.ui.h:39
-msgid "Preferred video resolution:"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:40
-msgid "Video output method:"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:41
-msgid "Show camera preview"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:42
-msgid "Video preset:"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:43
-msgid "Preferred video framerate:"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:44
-msgid "0 stands for \"unlimited\""
-msgstr "A 0 jelentése \"végtelen\""
-
-#: ../gtk/parameters.ui.h:45
-msgid "Video"
-msgstr "Videó"
-
-#: ../gtk/parameters.ui.h:46
-msgid "Upload speed limit in Kbit/sec:"
-msgstr "Feltöltési sebesség korlát (kbit/mp):"
-
-#: ../gtk/parameters.ui.h:47
-msgid "Download speed limit in Kbit/sec:"
-msgstr "Letöltési sebesség korlát (kbit/mp):"
-
-#: ../gtk/parameters.ui.h:48
-msgid "Enable adaptive rate control"
-msgstr "Alkalmazkodó mérték-szabályozás engedélyezése"
-
-#: ../gtk/parameters.ui.h:49
-msgid ""
-"Adaptive rate control is a technique to dynamically guess the available "
-"bandwidth during a call."
-msgstr "Az alkalmazkodó mérték-szabályozás egy módszer, mely erőteljesen próbálja megállapítani a rendelkezésre álló sávszélességet hívás alatt."
-
-#: ../gtk/parameters.ui.h:50
-msgid "Bandwidth control"
-msgstr "Sávszélesség szabályozása"
-
-#: ../gtk/parameters.ui.h:51
-msgid "Multimedia settings"
-msgstr "Multimédia beállítások"
-
-#: ../gtk/parameters.ui.h:52
-msgid "Set Maximum Transmission Unit:"
-msgstr "Maximum Továbbítási Egység beállítása:"
-
-#: ../gtk/parameters.ui.h:53
-msgid "Send DTMFs as SIP info"
-msgstr "DTMF küldése SIP infóként"
-
-#: ../gtk/parameters.ui.h:54
-msgid "Allow IPv6"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:55
-msgid "Transport"
-msgstr "Átvitel"
-
-#: ../gtk/parameters.ui.h:56
-msgid "SIP/UDP port"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:58
-msgid "Random"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:59
-msgid "SIP/TCP port"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:60
-msgid "Audio RTP/UDP:"
-msgstr "Audió RTP/UDP:"
-
-#: ../gtk/parameters.ui.h:61
-msgid "Fixed"
-msgstr "Javítva"
-
-#: ../gtk/parameters.ui.h:62
-msgid "Video RTP/UDP:"
-msgstr "Videó RTP/UDP:"
-
-#: ../gtk/parameters.ui.h:63
-msgid "Tunnel"
-msgstr "Alagút"
-
-#: ../gtk/parameters.ui.h:64
-msgid "DSCP fields"
-msgstr "DSCP mezők"
-
-#: ../gtk/parameters.ui.h:65
-msgid "Network protocol and ports"
-msgstr "Hálózati protokoll és port"
-
-#: ../gtk/parameters.ui.h:66
-msgid "Direct connection to the Internet"
-msgstr "Közvetlen Internet kapcsolat"
-
-#: ../gtk/parameters.ui.h:67
-msgid "Behind NAT / Firewall (specify gateway IP )"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:68
-msgid "Behind NAT / Firewall (use STUN to resolve)"
-msgstr "NAT / tűzfal mögött (STUN használata a feloldáshoz)"
-
-#: ../gtk/parameters.ui.h:69
-msgid "Behind NAT / Firewall (use ICE)"
-msgstr "NAT / tűzfal mögött (ICE használata)"
-
-#: ../gtk/parameters.ui.h:70
-msgid "Behind NAT / Firewall (use uPnP)"
-msgstr "NAT / tűzfal mögött (uPnP használata)"
-
-#: ../gtk/parameters.ui.h:71
-msgid "Public IP address:"
-msgstr "Publikus IP cím:"
-
-#: ../gtk/parameters.ui.h:72
-msgid "Stun server:"
-msgstr "STUN kiszolgáló:"
-
-#: ../gtk/parameters.ui.h:73
-msgid "NAT and Firewall"
-msgstr "NAT és tűzfal"
-
-#: ../gtk/parameters.ui.h:74
-msgid "Media encryption type"
-msgstr "Média titkosítás típusa"
-
-#: ../gtk/parameters.ui.h:75
-msgid "Use Lime for outgoing chat messages"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:76
-msgid "Media encryption is mandatory"
-msgstr "Média titkosítás kötelező"
-
-#: ../gtk/parameters.ui.h:77
-msgid "Mandatory"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:78
-msgid "Preferred"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:79
-msgid "Encryption"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:80
-msgid "Network settings"
-msgstr "Hálózati beállítások"
-
-#: ../gtk/parameters.ui.h:81 ../gtk/tunnel_config.ui.h:4
-msgid "Enable"
-msgstr "Engedélyezés"
-
-#: ../gtk/parameters.ui.h:82 ../gtk/tunnel_config.ui.h:5
-msgid "Disable"
-msgstr "Tiltás"
-
-#: ../gtk/parameters.ui.h:83
-msgid "Audio codecs"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:84
-msgid "Video codecs"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:85
-msgid "Codecs"
-msgstr "Kódekek"
-
-#: ../gtk/parameters.ui.h:86
-msgid "Language"
-msgstr "Nyelv"
-
-#: ../gtk/parameters.ui.h:87
-msgid "Show advanced settings"
-msgstr "Haladó beállítások megjelenítése"
-
-#: ../gtk/parameters.ui.h:88
-msgid "Level"
-msgstr "Szint"
-
-#: ../gtk/parameters.ui.h:89
-msgid "User interface"
-msgstr "Felhasználói környezet"
-
-#: ../gtk/parameters.ui.h:93
-msgid "LDAP Account setup"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:94
-msgid "LDAP"
-msgstr ""
-
-#: ../gtk/parameters.ui.h:95
-msgid "Done"
-msgstr "Kész"
-
-#: ../gtk/password.ui.h:1
-msgid "Linphone - Authentication required"
-msgstr "Linphone - Hitelesítés szükséges"
-
-#: ../gtk/password.ui.h:2
-msgid "Please enter the domain password"
-msgstr "Kérem adja meg a tartomány jelszavát"
-
-#: ../gtk/provisioning-fetch.ui.h:1
-msgid "Configuring..."
-msgstr ""
-
-#: ../gtk/provisioning-fetch.ui.h:2
-msgid "Please wait while fetching configuration from server..."
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:1
-msgid "SIP account configuration assistant"
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:2
-msgid ""
-"Welcome!\n"
-"This assistant will help you to use a SIP account for your calls."
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:4
-msgid "Welcome to the account setup assistant"
-msgstr "A fiók beállítása varázsló üdvözli Önt"
-
-#: ../gtk/setup_wizard.ui.h:5
-msgid "Create an account on linphone.org"
-msgstr "Fiók létrehozása a linphone.org -on"
-
-#: ../gtk/setup_wizard.ui.h:6
-msgid "I have already a linphone.org account and I just want to use it"
-msgstr "Már rendelkezem linphone.org fiókkal, azt szeretném használni"
-
-#: ../gtk/setup_wizard.ui.h:7
-msgid "I have already a sip account and I just want to use it"
-msgstr "Már rendelkezem sip fiókkal, azt szeretném használni"
-
-#: ../gtk/setup_wizard.ui.h:8
-msgid "I want to specify a remote configuration URI"
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:9
-msgid "Account setup assistant"
-msgstr "Fiók beállítása varázsló"
-
-#: ../gtk/setup_wizard.ui.h:10
-msgid "Enter your account information"
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:11
-msgid "Username*"
-msgstr "Felhasználónév*"
-
-#: ../gtk/setup_wizard.ui.h:12
-msgid "Password*"
-msgstr "Jelszó*"
-
-#: ../gtk/setup_wizard.ui.h:13
-msgid "Domain*"
-msgstr "Tartomány"
-
-#: ../gtk/setup_wizard.ui.h:14
-msgid "Proxy"
-msgstr "Proxy"
-
-#: ../gtk/setup_wizard.ui.h:15
-msgid "Configure your account (step 1/1)"
-msgstr "Az Ön fiókjának beállítása (1/1 lépés)"
-
-#: ../gtk/setup_wizard.ui.h:16
-msgid "Enter your linphone.org username"
-msgstr "Adja meg linphone.org felhasználónevét"
-
-#: ../gtk/setup_wizard.ui.h:19
-msgid "Enter your sip username (step 1/1)"
-msgstr "Adja meg sip felhasználónevét (1/2 lépés)"
-
-#: ../gtk/setup_wizard.ui.h:20
-msgid "(*) Required fields"
-msgstr "(*) Mező kitöltése szükséges"
-
-#: ../gtk/setup_wizard.ui.h:21
-msgid "Email: (*)"
-msgstr "E-mail: (*)"
-
-#: ../gtk/setup_wizard.ui.h:22
-msgid "Username: (*)"
-msgstr "Felhasználónév: (*)"
-
-#: ../gtk/setup_wizard.ui.h:23
-msgid "Password: (*)"
-msgstr "Jelszó: (*)"
-
-#: ../gtk/setup_wizard.ui.h:24
-msgid "Confirm your password: (*)"
-msgstr "Jelszó megerősítése: (*)"
-
-#: ../gtk/setup_wizard.ui.h:25
-msgid "Keep me informed with linphone updates"
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:26
-msgid "Enter account information (step 1/2)"
-msgstr "Adja meg a fiókinformációt (1/2 lépés)"
-
-#: ../gtk/setup_wizard.ui.h:27
-msgid "Your account is being created, please wait."
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:28
-msgid "Account creation in progress"
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:29
-msgid ""
-"Please validate your account by clicking on the link we just sent you by email.\n"
-"Then come back here and press Next button."
-msgstr "Kérjük, érvényesítse fiókját az általunk elektronikus levélben küldött hivatkozásra kattintva.\nAzután térjen vissza ide és kattintson a Következő gombra."
-
-#: ../gtk/setup_wizard.ui.h:31
-msgid "Validation (step 2/2)"
-msgstr "Érvényesítés (2/2 lépés)"
-
-#: ../gtk/setup_wizard.ui.h:32
-msgid "Checking if your account is been validated, please wait."
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:33
-msgid "Account validation check in progress"
-msgstr ""
-
-#: ../gtk/setup_wizard.ui.h:34
-msgid ""
-"Error, account not validated, username already used or server unreachable.\n"
-"Please go back and try again."
-msgstr "Hiba, a fiók nincs érvényesítve. Valaki már használja ezt a felhasználónevet vagy a kiszolgáló nem elérhető.\nKérjük, lépjen vissza és próbálja újra."
-
-#: ../gtk/setup_wizard.ui.h:36
-msgid "Error"
-msgstr "Hiba"
-
-#: ../gtk/setup_wizard.ui.h:37
-msgid "Thank you. Your account is now configured and ready for use."
-msgstr "Köszönjük! Az Ön fiókját beállítottuk és használatra kész."
-
-#: ../gtk/sip_account.ui.h:1
-msgid "Linphone - Configure a SIP account"
-msgstr "Linphone - SIP fiók beállítása"
-
-#: ../gtk/sip_account.ui.h:2
-msgid "Your SIP identity:"
-msgstr "Az Ön SIP azonosítója:"
-
-#: ../gtk/sip_account.ui.h:3
-msgid "Looks like sip:@"
-msgstr "Így néz ki: sip:@"
-
-#: ../gtk/sip_account.ui.h:4
-msgid "sip:"
-msgstr "sip:"
-
-#: ../gtk/sip_account.ui.h:5
-msgid "SIP Proxy address:"
-msgstr "SIP Proxy cím:"
-
-#: ../gtk/sip_account.ui.h:6
-msgid "Looks like sip:"
-msgstr "Így néz ki: sip:"
-
-#: ../gtk/sip_account.ui.h:7
-msgid "Registration duration (sec):"
-msgstr "Regisztrálási Időköz (mp):"
-
-#: ../gtk/sip_account.ui.h:8
-msgid "Contact params (optional):"
-msgstr ""
-
-#: ../gtk/sip_account.ui.h:9
-msgid "AVPF regular RTCP interval (sec):"
-msgstr ""
-
-#: ../gtk/sip_account.ui.h:10
-msgid "Route (optional):"
-msgstr "Út (nem kötelező):"
-
-#: ../gtk/sip_account.ui.h:11
-msgid "Transport"
-msgstr ""
-
-#: ../gtk/sip_account.ui.h:12
-msgid "Register"
-msgstr "Regisztráció"
-
-#: ../gtk/sip_account.ui.h:13
-msgid "Publish presence information"
-msgstr "Jelenléti információ közlése"
-
-#: ../gtk/sip_account.ui.h:14
-msgid "Enable AVPF"
-msgstr ""
-
-#: ../gtk/sip_account.ui.h:15
-msgid "Configure a SIP account"
-msgstr "SIP fiók beállítása"
-
-#: ../gtk/tunnel_config.ui.h:1
-msgid "Configure VoIP tunnel"
-msgstr "VoIP alagút beállítása"
-
-#: ../gtk/tunnel_config.ui.h:2
-msgid "Host"
-msgstr "Hoszt"
-
-#: ../gtk/tunnel_config.ui.h:3
-msgid "Port"
-msgstr "Port"
-
-#: ../gtk/tunnel_config.ui.h:6
-msgid "