Commit 07c02dbd authored by Simon Morlat's avatar Simon Morlat
Browse files

Merge branch 'master' of git.linphone.org:linphone

Conflicts:
	po/ar.po
	po/cs.po
	po/de.po
	po/es.po
	po/fr.po
	po/he.po
	po/hu.po
	po/it.po
	po/ja.po
	po/nb_NO.po
	po/nl.po
	po/pl.po
	po/pt_BR.po
	po/ru.po
	po/sr.po
	po/sv.po
	po/zh_CN.po
	po/zh_TW.po
parents 039dafd0 e57b0da0
......@@ -94,6 +94,7 @@ endif()
find_package(BelleSIP REQUIRED)
find_package(Mediastreamer2 REQUIRED)
find_package(XML2 REQUIRED)
find_package(Zlib)
if(ENABLE_UNIT_TESTS)
find_package(CUnit)
if(CUNIT_FOUND)
......@@ -148,6 +149,10 @@ include_directories(
${MEDIASTREAMER2_INCLUDE_DIRS}
${XML2_INCLUDE_DIRS}
)
if(ZLIB_FOUND)
include_directories(${ZLIB_INCLUDE_DIRS})
set(HAVE_ZLIB 1)
endif()
if(SQLITE3_FOUND)
include_directories(${SQLITE3_INCLUDE_DIRS})
add_definitions("-DMSG_STORAGE_ENABLED")
......
############################################################################
# FindZlib.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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
############################################################################
#
# - Find the zlib include file and library
#
# ZLIB_FOUND - system has zlib
# ZLIB_INCLUDE_DIRS - the zlib include directory
# ZLIB_LIBRARIES - The libraries needed to use zlib
set(_ZLIB_ROOT_PATHS
${CMAKE_INSTALL_PREFIX}
)
find_path(ZLIB_INCLUDE_DIRS
NAMES zlib.h
HINTS _ZLIB_ROOT_PATHS
PATH_SUFFIXES include
)
if(ZLIB_INCLUDE_DIRS)
set(HAVE_ZLIB_H 1)
endif()
find_library(ZLIB_LIBRARIES
NAMES z zlib zlibd
HINTS ${_ZLIB_ROOT_PATHS}
PATH_SUFFIXES bin lib
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Zlib
DEFAULT_MSG
ZLIB_INCLUDE_DIRS ZLIB_LIBRARIES HAVE_ZLIB_H
)
mark_as_advanced(ZLIB_INCLUDE_DIRS ZLIB_LIBRARIES HAVE_ZLIB_H)
......@@ -39,5 +39,6 @@
#cmakedefine BUILD_WIZARD
#cmakedefine HAVE_NOTIFY4
#cmakedefine HAVE_ZLIB 1
#cmakedefine HAVE_CU_GET_SUITE 1
#cmakedefine HAVE_CU_CURSES 1
\ No newline at end of file
#cmakedefine HAVE_CU_CURSES 1
......@@ -127,6 +127,9 @@ set(LIBS
${MEDIASTREAMER2_LIBRARIES}
${XML2_LIBRARIES}
)
if(ZLIB_FOUND)
list(APPEND LIBS ${ZLIB_LIBRARIES})
endif()
if(SQLITE3_FOUND)
list(APPEND LIBS ${SQLITE3_LIBRARIES})
endif()
......@@ -139,7 +142,7 @@ endif()
if(ENABLE_ASSISTANT)
list(APPEND LIBS ${SOUP_LIBRARIES})
endif()
if(WIN32)
if(WIN32 AND NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsPhone")
list(APPEND LIBS shlwapi)
endif()
......
......@@ -491,8 +491,6 @@ static void call_accepted(SalOp *op){
#endif //BUILD_UPNP
md=sal_call_get_final_media_description(op);
if (md) /*make sure re-invite will not propose video again*/
call->params->has_video &= linphone_core_media_description_contains_video_stream(md);
switch (call->state){
case LinphoneCallOutgoingProgress:
......
......@@ -647,7 +647,7 @@ void linphone_call_make_local_media_description(LinphoneCore *lc, LinphoneCall *
ms_warning("Cannot get audio local ssrc for call [%p]",call);
nb_active_streams++;
if (call->params->has_video){
if (call->params->has_video && (!call->params->internal_call_update || !call->current_params->video_declined)){
strncpy(md->streams[1].rtp_addr,linphone_call_get_public_ip_for_stream(call,1),sizeof(md->streams[1].rtp_addr));
strncpy(md->streams[1].rtcp_addr,linphone_call_get_public_ip_for_stream(call,1),sizeof(md->streams[1].rtcp_addr));
strncpy(md->streams[1].name,"Video",sizeof(md->streams[1].name)-1);
......@@ -670,6 +670,8 @@ void linphone_call_make_local_media_description(LinphoneCore *lc, LinphoneCall *
else
ms_warning("Cannot get video local ssrc for call [%p]",call);
nb_active_streams++;
} else {
ms_message("Don't put video stream on local offer for call [%p]",call);
}
if (md->nb_streams < nb_active_streams)
......@@ -973,7 +975,6 @@ static void linphone_call_incoming_select_ip_version(LinphoneCall *call){
*/
void linphone_call_set_compatible_incoming_call_parameters(LinphoneCall *call, const SalMediaDescription *md) {
int i;
call->params->has_video &= linphone_core_media_description_contains_video_stream(md);
/* Handle AVPF, SRTP and DTLS. */
call->params->avpf_enabled = sal_media_description_has_avpf(md);
......@@ -1171,8 +1172,11 @@ static void linphone_call_set_terminated(LinphoneCall *call){
}
void linphone_call_fix_call_parameters(LinphoneCall *call){
call->params->has_video=call->current_params->has_video;
if (sal_call_is_offerer(call->op)) {
/*get remote params*/
const LinphoneCallParams* lcp = linphone_call_get_remote_params(call);
call->current_params->video_declined = call->params->has_video && !lcp->has_video;
}
switch(call->params->media_encryption) {
case LinphoneMediaEncryptionZRTP:
case LinphoneMediaEncryptionDTLS:
......@@ -1292,6 +1296,11 @@ void linphone_call_set_state(LinphoneCall *call, LinphoneCallState cstate, const
linphone_core_multicast_lock_release(call->core);
#endif
break;
case LinphoneCallStreamsRunning:
if (call->prevstate == LinphoneCallUpdating || call->prevstate == LinphoneCallUpdatedByRemote) {
linphone_core_notify_display_status(lc,_("Call parameters were successfully modified."));
}
break;
default:
break;
}
......@@ -1669,7 +1678,11 @@ void linphone_call_enable_camera (LinphoneCall *call, bool_t enable){
**/
void linphone_call_send_vfu_request(LinphoneCall *call) {
#ifdef VIDEO_ENABLED
if (call->core->sip_conf.vfu_with_info) {
const LinphoneCallParams *current_params = linphone_call_get_current_params(call);
if (current_params->avpf_enabled && call->videostream && media_stream_get_state((const MediaStream *)call->videostream) == MSStreamStarted) {
ms_message("Request Full Intra Request on call [%p]", call);
video_stream_send_fir(call->videostream);
} else if (call->core->sip_conf.vfu_with_info) {
if (LinphoneCallStreamsRunning == linphone_call_get_state(call))
sal_call_send_vfu_request(call->op);
} else {
......@@ -3313,6 +3326,17 @@ static void report_bandwidth(LinphoneCall *call, MediaStream *as, MediaStream *v
call->stats[LINPHONE_CALL_STATS_AUDIO].rtcp_upload_bandwidth=(as_active) ? (media_stream_get_rtcp_up_bw(as)*1e-3) : 0;
call->stats[LINPHONE_CALL_STATS_VIDEO].rtcp_download_bandwidth=(vs_active) ? (media_stream_get_rtcp_down_bw(vs)*1e-3) : 0;
call->stats[LINPHONE_CALL_STATS_VIDEO].rtcp_upload_bandwidth=(vs_active) ? (media_stream_get_rtcp_up_bw(vs)*1e-3) : 0;
if (as_active) {
call->stats[LINPHONE_CALL_STATS_AUDIO].updated|=LINPHONE_CALL_STATS_PERIODICAL_UPDATE;
linphone_core_notify_call_stats_updated(call->core, call, &call->stats[LINPHONE_CALL_STATS_AUDIO]);
call->stats[LINPHONE_CALL_STATS_AUDIO].updated=0;
}
if (vs_active) {
call->stats[LINPHONE_CALL_STATS_VIDEO].updated|=LINPHONE_CALL_STATS_PERIODICAL_UPDATE;
linphone_core_notify_call_stats_updated(call->core, call, &call->stats[LINPHONE_CALL_STATS_VIDEO]);
call->stats[LINPHONE_CALL_STATS_VIDEO].updated=0;
}
ms_message( "Bandwidth usage for call [%p]:\n"
"\tRTP audio=[d=%5.1f,u=%5.1f], video=[d=%5.1f,u=%5.1f] kbits/sec\n"
......@@ -3327,6 +3351,7 @@ static void report_bandwidth(LinphoneCall *call, MediaStream *as, MediaStream *v
call->stats[LINPHONE_CALL_STATS_VIDEO].rtcp_download_bandwidth,
call->stats[LINPHONE_CALL_STATS_VIDEO].rtcp_upload_bandwidth
);
}
static void linphone_core_disconnected(LinphoneCore *lc, LinphoneCall *call){
......@@ -3394,6 +3419,7 @@ static void handle_ice_events(LinphoneCall *call, OrtpEvent *ev){
ice_session_select_candidates(call->ice_session);
if (ice_session_role(call->ice_session) == IR_Controlling
&& lp_config_get_int(call->core->config, "sip", "update_call_when_ice_completed", TRUE)) {
params->internal_call_update = TRUE;
linphone_core_update_call(call->core, call, params);
}
change_ice_media_destinations(call);
......@@ -3404,6 +3430,7 @@ static void handle_ice_events(LinphoneCall *call, OrtpEvent *ev){
ice_session_select_candidates(call->ice_session);
if (ice_session_role(call->ice_session) == IR_Controlling) {
/* At least one ICE session has succeeded, so perform a call update. */
params->internal_call_update = TRUE;
linphone_core_update_call(call->core, call, params);
}
}
......@@ -3499,7 +3526,13 @@ void linphone_call_notify_stats_updated(LinphoneCall *call, int stream_index){
LinphoneCallStats *stats=&call->stats[stream_index];
LinphoneCore *lc=call->core;
if (stats->updated){
linphone_reporting_on_rtcp_update(call, stream_index);
switch(stats->updated) {
case LINPHONE_CALL_STATS_RECEIVED_RTCP_UPDATE:
case LINPHONE_CALL_STATS_SENT_RTCP_UPDATE:
linphone_reporting_on_rtcp_update(call, stream_index);
break;
default:break;
}
linphone_core_notify_call_stats_updated(lc, call, stats);
stats->updated = 0;
}
......@@ -3563,18 +3596,29 @@ void linphone_call_background_tasks(LinphoneCall *call, bool_t one_second_elapse
int disconnect_timeout = linphone_core_get_nortp_timeout(call->core);
bool_t disconnected=FALSE;
if ((call->state==LinphoneCallStreamsRunning || call->state==LinphoneCallOutgoingEarlyMedia || call->state==LinphoneCallIncomingEarlyMedia) && one_second_elapsed){
float audio_load=0, video_load=0;
if (call->audiostream!=NULL){
if (call->audiostream->ms.sessions.ticker)
audio_load=ms_ticker_get_average_load(call->audiostream->ms.sessions.ticker);
}
if (call->videostream!=NULL){
if (call->videostream->ms.sessions.ticker)
video_load=ms_ticker_get_average_load(call->videostream->ms.sessions.ticker);
switch (call->state) {
case LinphoneCallStreamsRunning:
case LinphoneCallOutgoingEarlyMedia:
case LinphoneCallIncomingEarlyMedia:
case LinphoneCallPausedByRemote:
case LinphoneCallPaused:
if (one_second_elapsed){
float audio_load=0, video_load=0;
if (call->audiostream!=NULL){
if (call->audiostream->ms.sessions.ticker)
audio_load=ms_ticker_get_average_load(call->audiostream->ms.sessions.ticker);
}
if (call->videostream!=NULL){
if (call->videostream->ms.sessions.ticker)
video_load=ms_ticker_get_average_load(call->videostream->ms.sessions.ticker);
}
report_bandwidth(call,(MediaStream*)call->audiostream,(MediaStream*)call->videostream);
ms_message("Thread processing load: audio=%f\tvideo=%f",audio_load,video_load);
}
report_bandwidth(call,(MediaStream*)call->audiostream,(MediaStream*)call->videostream);
ms_message("Thread processing load: audio=%f\tvideo=%f",audio_load,video_load);
break;
default:
/*no stats for other states*/
break;
}
#ifdef BUILD_UPNP
......
......@@ -3643,7 +3643,6 @@ int _linphone_core_accept_call_update(LinphoneCore *lc, LinphoneCall *call, cons
ms_warning("Video isn't supported in conference");
call->params->has_video = FALSE;
}
call->params->has_video &= linphone_core_media_description_contains_video_stream(remote_desc);
linphone_call_init_media_streams(call); /*so that video stream is initialized if necessary*/
if (call->ice_session != NULL) {
if (linphone_call_prepare_ice(call,TRUE)==1)
......@@ -6890,9 +6889,7 @@ const char *linphone_media_encryption_to_string(LinphoneMediaEncryption menc){
return "INVALID";
}
/**
* Returns whether a media encryption scheme is supported by the LinphoneCore engine
**/
bool_t linphone_core_media_encryption_supported(const LinphoneCore *lc, LinphoneMediaEncryption menc){
switch(menc){
case LinphoneMediaEncryptionSRTP:
......
......@@ -513,6 +513,7 @@ typedef enum _LinphoneUpnpState LinphoneUpnpState;
#define LINPHONE_CALL_STATS_RECEIVED_RTCP_UPDATE (1 << 0) /**< received_rtcp field of LinphoneCallStats object has been updated */
#define LINPHONE_CALL_STATS_SENT_RTCP_UPDATE (1 << 1) /**< sent_rtcp field of LinphoneCallStats object has been updated */
#define LINPHONE_CALL_STATS_PERIODICAL_UPDATE (1 << 2) /**< Every seconds LinphoneCallStats object has been updated */
/**
......@@ -529,7 +530,7 @@ typedef struct _LinphoneCallStats LinphoneCallStats;
* The LinphoneCallStats objects carries various statistic informations regarding quality of audio or video streams.
*
* To receive these informations periodically and as soon as they are computed, the application is invited to place a #LinphoneCoreCallStatsUpdatedCb callback in the LinphoneCoreVTable structure
* it passes for instanciating the LinphoneCore object (see linphone_core_new() ).
* it passes for instantiating the LinphoneCore object (see linphone_core_new() ).
*
* At any time, the application can access last computed statistics using linphone_call_get_audio_stats() or linphone_call_get_video_stats().
**/
......
......@@ -696,18 +696,12 @@ const char* lp_config_get_default_string(const LpConfig *lpconfig, const char *s
static char *_lp_config_dirname(char *path) {
#ifdef _MSC_VER
#ifdef WINAPI_FAMILY_PHONE_APP
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];
char fname[_MAX_FNAME];
char ext[_MAX_EXT];
_splitpath(path, drive, dir, fname, ext);
return ms_strdup_printf("%s%s", drive, dir);
#else
char *dir = ms_strdup(path);
PathRemoveFileSpec(dir);
return dir;
#endif
#else
char *tmp = ms_strdup(path);
char *dir = ms_strdup(dirname(tmp));
......@@ -735,9 +729,14 @@ void lp_config_write_relative_file(const LpConfig *lpconfig, const char *filenam
}
int lp_config_read_relative_file(const LpConfig *lpconfig, const char *filename, char *data, size_t max_length) {
char *dir = _lp_config_dirname(lpconfig->filename);
char *filepath = ms_strdup_printf("%s/%s", dir, filename);
FILE *file = fopen(filepath, "r");
char *dir;
char *filepath;
FILE *file;
if (lpconfig->filename == NULL) return -1;
dir = _lp_config_dirname(lpconfig->filename);
filepath = ms_strdup_printf("%s/%s", dir, filename);
file = fopen(filepath, "r");
if(file != NULL) {
if(fread(data, 1, max_length, file)<=0) {
ms_error("%s could not be loaded. %s", filepath, strerror(errno));
......
......@@ -110,6 +110,8 @@ struct _LinphoneCallParams{
LinphonePrivacyMask privacy;
LinphoneMediaDirection audio_dir;
LinphoneMediaDirection video_dir;
bool_t video_declined; /*use to keep traces of declined video to avoid to re-offer video in case of automatic RE-INVITE*/
bool_t internal_call_update; /*use mark that call update was requested internally (might be by ice)*/
};
......@@ -438,6 +440,9 @@ void linphone_core_stop_waiting(LinphoneCore *lc);
int linphone_core_proceed_with_invite_if_ready(LinphoneCore *lc, LinphoneCall *call, LinphoneProxyConfig *dest_proxy);
int linphone_core_start_invite(LinphoneCore *lc, LinphoneCall *call, const LinphoneAddress* destination/* = NULL if to be taken from the call log */);
int linphone_core_restart_invite(LinphoneCore *lc, LinphoneCall *call);
/*
* param automatic_offering aims is to take into account previous answer for video in case of automatic re-invite.
* Purpose is to avoid to re-ask video previously declined */
int linphone_core_start_update_call(LinphoneCore *lc, LinphoneCall *call);
int linphone_core_start_accept_call_update(LinphoneCore *lc, LinphoneCall *call, LinphoneCallState next_state, const char *state_info);
void linphone_core_notify_incoming_call(LinphoneCore *lc, LinphoneCall *call);
......
......@@ -92,7 +92,6 @@ static gint main_window_y=0;
#endif
static gboolean verbose=0;
static gboolean quit_done=FALSE;
static gboolean auto_answer = 0;
static gchar * addr_to_call = NULL;
static int start_option = START_LINPHONE;
static gboolean no_video=FALSE;
......@@ -139,7 +138,6 @@ static GOptionEntry linphone_options[]={
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("auto-answer", 'a', G_OPTION_ARG_NONE, (gpointer) & auto_answer, N_("if set automatically answer incoming calls")),
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")),
......@@ -1375,7 +1373,7 @@ static void linphone_gtk_call_state_changed(LinphoneCore *lc, LinphoneCall *call
linphone_gtk_create_in_call_view(call);
linphone_gtk_in_call_view_set_incoming(call);
linphone_gtk_status_icon_set_blinking(TRUE);
if (auto_answer) {
if (linphone_gtk_get_ui_config_int("auto_answer", 0)) {
linphone_call_ref(call);
g_timeout_add(2000,(GSourceFunc)linphone_gtk_auto_answer ,call);
}
......
......@@ -1141,6 +1141,7 @@
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="resize_mode">immediate</property>
<property name="image">add_image</property>
<property name="xalign">1</property>
<signal name="clicked" handler="linphone_gtk_add_button_clicked" swapped="no"/>
</object>
......@@ -1333,7 +1334,6 @@
<property name="label" translatable="yes">Add contact</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="image">add_image</property>
<signal name="clicked" handler="linphone_gtk_add_contact" swapped="no"/>
</object>
<packing>
......
This diff is collapsed.
......@@ -1582,6 +1582,8 @@ void linphone_gtk_show_parameters(void){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb,"adaptive_rate_control")),
linphone_core_adaptive_rate_control_enabled(lc));
/* CALL PARAMS CONFIG */
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb, "auto_answer")), linphone_gtk_get_ui_config_int("auto_answer", 0));
/* UI CONFIG */
linphone_gtk_fill_langs(pb);
......@@ -1770,3 +1772,8 @@ void linphone_gtk_dscp_edit_response(GtkWidget *dialog, guint response_id){
}
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);
}
This diff is collapsed.
......@@ -9,10 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: linphone-gtk\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-03-20 17:05+0100\n"
"PO-Revision-Date: 2015-02-17 11:28+0000\n"
"Last-Translator: Belledonne Communications <support@belledonne-"
"communications.com>\n"
"POT-Creation-Date: 2015-03-23 16:57+0100\n"
"PO-Revision-Date: 2015-03-23 15:58+0000\n"
"Last-Translator: Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>\n"
"Language-Team: Czech (http://www.transifex.com/projects/p/linphone-gtk/"
"language/cs/)\n"
"Language: cs\n"
......@@ -99,31 +98,27 @@ msgstr "Nelze najít soubor s obrázkem: %s"
msgid "Invalid sip contact !"
msgstr "Neplatný sipový kontakt!"
#: ../gtk/main.c:137
#: ../gtk/main.c:136
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:138
#: ../gtk/main.c:137
msgid "path to a file to write logs into."
msgstr "Soubor, kam zapisovat protokol."
#: ../gtk/main.c:139
#: ../gtk/main.c:138
msgid "Start linphone with video disabled."
msgstr "Spustí linphone se zakázaným obrazem."
#: ../gtk/main.c:140
#: ../gtk/main.c:139
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:141
#: ../gtk/main.c:140
msgid "address to call right now"
msgstr "Zavolá právě teď na tuto adresu"
#: ../gtk/main.c:142
msgid "if set automatically answer incoming calls"
msgstr "je-li nastaveno, automaticky zvedne příchozí hovor"
#: ../gtk/main.c:143
#: ../gtk/main.c:141
msgid ""
"Specifiy a working directory (should be the base of the installation, eg: c:"
"\\Program Files\\Linphone)"
......@@ -131,19 +126,19 @@ msgstr ""
"Zadejte pracovní adresář (měl by být základní instalační adresář, například "
"c:\\Program Files\\Linphone)"
#: ../gtk/main.c:144
#: ../gtk/main.c:142
msgid "Configuration file"
msgstr ""
#: ../gtk/main.c:145
#: ../gtk/main.c:143
msgid "Run the audio assistant"
msgstr ""
#: ../gtk/main.c:146
#: ../gtk/main.c:144
msgid "Run self test and exit 0 if succeed"
msgstr ""
#: ../gtk/main.c:1061
#: ../gtk/main.c:1059
#, c-format
msgid ""
"%s would like to add you to his contact list.\n"
......@@ -156,66 +151,66 @@ msgstr ""
"do svého adresáře?\n"
"Odpovíte-li ne, tato osobo bude dočasně blokována."
#: ../gtk/main.c:1138
#: ../gtk/main.c:1136
#, c-format
msgid ""
"Please enter your password for username <i>%s</i>\n"
" at realm <i>%s</i>:"
msgstr ""
#: ../gtk/main.c:1259
#: ../gtk/main.c:1257
msgid "Call error"
msgstr "Chyba hovoru"
#: ../gtk/main.c:1262 ../coreapi/linphonecore.c:3827
#: ../gtk/main.c:1260 ../coreapi/linphonecore.c:3826
msgid "Call ended"
msgstr "Hovor ukončen"
#: ../gtk/main.c:1265 ../coreapi/call_log.c:221
#: ../gtk/main.c:1263 ../coreapi/call_log.c:221
msgid "Incoming call"
msgstr "Příchozí hovor"
#: ../gtk/main.c:1267 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
#: ../gtk/main.c:1265 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
msgid "Answer"
msgstr "Odpovědět"
#: ../gtk/main.c:1269 ../gtk/main.ui.h:6
#: ../gtk/main.c:1267 ../gtk/main.ui.h:6
msgid "Decline"
msgstr "Odmítnout"
#: ../gtk/main.c:1275
#: ../gtk/main.c:1273
msgid "Call paused"
msgstr "Hovor odložen"
#: ../gtk/main.c:1275
#: ../gtk/main.c:1273
#, c-format
msgid "<b>by %s</b>"
msgstr "<b>kým: %s</b>"
#: ../gtk/main.c:1345
#: ../gtk/main.c:1343
#, c-format
msgid "%s proposed to start video. Do you accept ?"
msgstr "%s navrhuje začít videohovor. Přijímáte?"
#: ../gtk/main.c:1507
#: ../gtk/main.c:1505
msgid "Website link"
msgstr "Odkaz na webovou stránku"
#: ../gtk/main.c:1556
#: ../gtk/main.c:1554
msgid "Linphone - a video internet phone"
msgstr "Lipnhone – internetový videofon"
#: ../gtk/main.c:1648
#: ../gtk/main.c:1646
#, c-format
msgid "%s (Default)"
msgstr "%s (Výchozí)"
#: ../gtk/main.c:1980 ../coreapi/callbacks.c:1050
#: ../gtk/main.c:1978 ../coreapi/callbacks.c:1048
#, c-format
msgid "We are transferred to %s"
msgstr "Byly jsme přepojeni na %s"
#: ../gtk/main.c:1990
#: ../gtk/main.c:1988
msgid ""
"No sound cards have been detected on this computer.\n"
"You won't be able to send or receive audio calls."
......@@ -223,15 +218,10 @@ msgstr ""
"Na tomto počítači nebyla objevena žádná zvuková karta.\n"
"Nebudete moci vytáčet a přijímat a zvukové hovory."
#: ../gtk/main.c:2138
#: ../gtk/main.c:2136
msgid "A free SIP video-phone"
msgstr "Volný SIP videofon"
#: ../gtk/main.c:2243
#, c-format
msgid "Hello\n"
msgstr ""
#: ../gtk/friendlist.c:505
msgid "Add to addressbook"
msgstr "Přidat do adresáře"
......@@ -297,7 +287,7 @@ msgstr "Parametry"
msgid "Enabled"
msgstr "Povoleno"
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763 ../gtk/parameters.ui.h:20
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763 ../gtk/parameters.ui.h:17
msgid "Disabled"
msgstr "Zakázáno"
......@@ -465,7 +455,7 @@ msgstr ""
msgid "Enter your linphone.org username"
msgstr "Zadejte uživatelské jméno na linphone.org"
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:82 ../gtk/ldap.ui.h:4
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:81 ../gtk/ldap.ui.h:4
msgid "Username:"
msgstr "Uživatelské jméno:"
......@@ -1213,250 +1203,238 @@ msgid "C"
msgstr "C"
#: ../gtk/parameters.ui.h:11