mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-01-19 20:18:09 +00:00
Merge branch 'master' into tunnel
This commit is contained in:
commit
ffa7c39d3c
13 changed files with 77 additions and 69 deletions
|
|
@ -1,6 +1,6 @@
|
|||
dnl Process this file with autoconf to produce a configure script.
|
||||
|
||||
AC_INIT([linphone],[3.5],[linphone-developers@nongnu.org])
|
||||
AC_INIT([linphone],[3.5.0],[linphone-developers@nongnu.org])
|
||||
AC_CANONICAL_SYSTEM
|
||||
AC_CONFIG_SRCDIR([coreapi/linphonecore.c])
|
||||
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
#include "mediastreamer2/msvolume.h"
|
||||
|
||||
static int convert_conference_to_call(LinphoneCore *lc);
|
||||
|
||||
static void conference_check_init(LinphoneConference *ctx, int samplerate){
|
||||
if (ctx->conf==NULL){
|
||||
MSAudioConferenceParams params;
|
||||
|
|
@ -48,24 +50,22 @@ static void remove_local_endpoint(LinphoneConference *ctx){
|
|||
}
|
||||
|
||||
static int remote_participants_count(LinphoneConference *ctx) {
|
||||
if (!ctx->conf || ctx->conf->nmembers==0) return 0;
|
||||
if (!ctx->local_participant) return ctx->conf->nmembers;
|
||||
return ctx->conf->nmembers -1;
|
||||
if (!ctx->conf || ms_audio_conference_get_size(ctx->conf)==0) return 0;
|
||||
if (!ctx->local_participant) return ms_audio_conference_get_size(ctx->conf);
|
||||
return ms_audio_conference_get_size(ctx->conf) -1;
|
||||
}
|
||||
|
||||
static int convert_conference_to_call(LinphoneCore *lc);
|
||||
void linphone_core_conference_check_uninit(LinphoneCore *lc){
|
||||
LinphoneConference *ctx=&lc->conf_ctx;
|
||||
if (ctx->conf){
|
||||
ms_message("conference_check_uninit(): nmembers=%i",ctx->conf->nmembers);
|
||||
ms_message("conference_check_uninit(): nmembers=%i",ms_audio_conference_get_size(ctx->conf));
|
||||
if (remote_participants_count(ctx)==1){
|
||||
convert_conference_to_call(lc);
|
||||
}
|
||||
if (ctx->conf->nmembers==1)
|
||||
if (ctx->conf->nmembers==1 && ctx->local_participant!=NULL){
|
||||
if (ms_audio_conference_get_size(ctx->conf)==1 && ctx->local_participant!=NULL){
|
||||
remove_local_endpoint(ctx);
|
||||
}
|
||||
if (ctx->conf->nmembers==0){
|
||||
if (ms_audio_conference_get_size(ctx->conf)==0){
|
||||
ms_audio_conference_destroy(ctx->conf);
|
||||
ctx->conf=NULL;
|
||||
}
|
||||
|
|
@ -298,5 +298,5 @@ int linphone_core_terminate_conference(LinphoneCore *lc) {
|
|||
}
|
||||
|
||||
int linphone_core_get_conference_size(LinphoneCore *lc) {
|
||||
return ms_audio_conference_size(lc->conf_ctx.conf);
|
||||
return ms_audio_conference_get_size(lc->conf_ctx.conf);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,86 +30,86 @@
|
|||
#include "private.h"
|
||||
#include "lpconfig.h"
|
||||
|
||||
static inline belledonnecomm::TunnelManager *bcTunnel(LinphoneTunnelManager *tunnel){
|
||||
static inline belledonnecomm::TunnelManager *bcTunnel(LinphoneTunnel *tunnel){
|
||||
return (belledonnecomm::TunnelManager *)tunnel;
|
||||
}
|
||||
|
||||
extern "C" LinphoneTunnelManager* linphone_core_tunnel_new(LinphoneCore *lc){
|
||||
LinphoneTunnelManager* tunnel= (LinphoneTunnelManager*) new belledonnecomm::TunnelManager(lc);
|
||||
extern "C" LinphoneTunnel* linphone_core_tunnel_new(LinphoneCore *lc){
|
||||
LinphoneTunnel* tunnel= (LinphoneTunnel*) new belledonnecomm::TunnelManager(lc);
|
||||
return tunnel;
|
||||
}
|
||||
|
||||
LinphoneTunnelManager* linphone_tunnel_get(LinphoneCore *lc){
|
||||
LinphoneTunnel* linphone_tunnel_get(LinphoneCore *lc){
|
||||
return lc->tunnel;
|
||||
}
|
||||
|
||||
void linphone_tunnel_destroy(LinphoneTunnelManager *tunnel){
|
||||
void linphone_tunnel_destroy(LinphoneTunnel *tunnel){
|
||||
delete bcTunnel(tunnel);
|
||||
}
|
||||
|
||||
void linphone_tunnel_add_server(LinphoneTunnelManager *tunnel, const char *host, int port){
|
||||
void linphone_tunnel_add_server(LinphoneTunnel *tunnel, const char *host, int port){
|
||||
bcTunnel(tunnel)->addServer(host, port);
|
||||
}
|
||||
|
||||
void linphone_tunnel_add_server_and_mirror(LinphoneTunnelManager *tunnel, const char *host, int port, int remote_udp_mirror, int delay){
|
||||
void linphone_tunnel_add_server_and_mirror(LinphoneTunnel *tunnel, const char *host, int port, int remote_udp_mirror, int delay){
|
||||
bcTunnel(tunnel)->addServer(host, port, remote_udp_mirror, delay);
|
||||
}
|
||||
|
||||
void linphone_tunnel_clean_servers(LinphoneTunnelManager *tunnel){
|
||||
void linphone_tunnel_clean_servers(LinphoneTunnel *tunnel){
|
||||
bcTunnel(tunnel)->cleanServers();
|
||||
}
|
||||
|
||||
void linphone_tunnel_enable(LinphoneTunnelManager *tunnel, bool_t enabled){
|
||||
void linphone_tunnel_enable(LinphoneTunnel *tunnel, bool_t enabled){
|
||||
bcTunnel(tunnel)->enable(enabled);
|
||||
}
|
||||
|
||||
bool_t linphone_tunnel_enabled(LinphoneTunnelManager *tunnel){
|
||||
bool_t linphone_tunnel_enabled(LinphoneTunnel *tunnel){
|
||||
return bcTunnel(tunnel)->isEnabled();
|
||||
}
|
||||
|
||||
void linphone_tunnel_enable_logs(LinphoneTunnelManager *tunnel, bool_t enabled){
|
||||
void linphone_tunnel_enable_logs(LinphoneTunnel *tunnel, bool_t enabled){
|
||||
bcTunnel(tunnel)->enableLogs(enabled);
|
||||
}
|
||||
|
||||
void linphone_tunnel_enable_logs_with_handler(LinphoneTunnelManager *tunnel, bool_t enabled, LogHandler logHandler){
|
||||
void linphone_tunnel_enable_logs_with_handler(LinphoneTunnel *tunnel, bool_t enabled, LogHandler logHandler){
|
||||
bcTunnel(tunnel)->enableLogs(enabled, logHandler);
|
||||
}
|
||||
|
||||
void linphone_tunnel_set_http_proxy_auth_info(LinphoneTunnelManager *tunnel, const char* username,const char* passwd){
|
||||
void linphone_tunnel_set_http_proxy_auth_info(LinphoneTunnel *tunnel, const char* username,const char* passwd){
|
||||
bcTunnel(tunnel)->setHttpProxyAuthInfo(username, passwd);
|
||||
}
|
||||
|
||||
void linphone_tunnel_reconnect(LinphoneTunnelManager *tunnel){
|
||||
void linphone_tunnel_reconnect(LinphoneTunnel *tunnel){
|
||||
bcTunnel(tunnel)->reconnect();
|
||||
}
|
||||
|
||||
void linphone_tunnel_auto_detect(LinphoneTunnelManager *tunnel){
|
||||
void linphone_tunnel_auto_detect(LinphoneTunnel *tunnel){
|
||||
bcTunnel(tunnel)->autoDetect();
|
||||
}
|
||||
|
||||
|
||||
static inline _LpConfig *config(LinphoneTunnelManager *tunnel){
|
||||
static inline _LpConfig *config(LinphoneTunnel *tunnel){
|
||||
return ((belledonnecomm::TunnelManager *)tunnel)->getLinphoneCore()->config;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set tunnel server addresses. "host1:port1 host2:port2 host3:port3"
|
||||
**/
|
||||
void linphone_tunnel_set_server_addresses(LinphoneTunnelManager *tunnel, const char *addresses){
|
||||
void linphone_tunnel_set_server_addresses(LinphoneTunnel *tunnel, const char *addresses){
|
||||
lp_config_set_string(config(tunnel),"tunnel","server_addresses",addresses);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get tunnel server addresses. "host1:port1 host2:port2 host3:port3"
|
||||
**/
|
||||
const char *linphone_tunnel_get_server_addresses(LinphoneTunnelManager *tunnel){
|
||||
const char *linphone_tunnel_get_server_addresses(LinphoneTunnel *tunnel){
|
||||
return lp_config_get_string(config(tunnel),"tunnel","server_addresses", NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set tunnel state.
|
||||
**/
|
||||
void linphone_tunnel_set_state(LinphoneTunnelManager *tunnel, LinphoneTunnelState state){
|
||||
void linphone_tunnel_set_state(LinphoneTunnel *tunnel, LinphoneTunnelState state){
|
||||
switch (state) {
|
||||
case LinphoneTunnelEnabled:
|
||||
lp_config_set_string(config(tunnel),"tunnel","tunnel_state","enabled");
|
||||
|
|
@ -126,7 +126,7 @@ void linphone_tunnel_set_state(LinphoneTunnelManager *tunnel, LinphoneTunnelStat
|
|||
/**
|
||||
* Get tunnel state.
|
||||
**/
|
||||
LinphoneTunnelState linphone_tunnel_get_state(LinphoneTunnelManager *tunnel){
|
||||
LinphoneTunnelState linphone_tunnel_get_state(LinphoneTunnel *tunnel){
|
||||
const char *state=lp_config_get_string(config(tunnel),"tunnel","tunnel_state","disabled");
|
||||
if (0==strcmp("enabled", state)){
|
||||
return LinphoneTunnelEnabled;
|
||||
|
|
|
|||
|
|
@ -33,21 +33,21 @@ extern "C"
|
|||
{
|
||||
#endif
|
||||
|
||||
typedef struct LinphoneTunnelManager LinphoneTunnelManager;
|
||||
typedef struct LinphoneTunnel LinphoneTunnel;
|
||||
typedef void (*LogHandler)(int log_level, const char *str, va_list l);
|
||||
|
||||
|
||||
LinphoneTunnelManager *linphone_tunnel_get(LinphoneCore *lc);
|
||||
void linphone_tunnel_destroy(LinphoneTunnelManager *tunnel);
|
||||
void linphone_tunnel_add_server(LinphoneTunnelManager *tunnel, const char *host, int port);
|
||||
void linphone_tunnel_add_server_and_mirror(LinphoneTunnelManager *tunnel, const char *host, int port, int remote_udp_mirror, int delay);
|
||||
void linphone_tunnel_clean_servers(LinphoneTunnelManager *tunnel);
|
||||
void linphone_tunnel_enable(LinphoneTunnelManager *tunnel, bool_t enabled);
|
||||
bool_t linphone_tunnel_enabled(LinphoneTunnelManager *tunnel);
|
||||
void linphone_tunnel_enable_logs(LinphoneTunnelManager *tunnel, bool_t enabled);
|
||||
void linphone_tunnel_enable_logs_with_handler(LinphoneTunnelManager *tunnel, bool_t enabled, LogHandler logHandler);
|
||||
void linphone_tunnel_reconnect(LinphoneTunnelManager *tunnel);
|
||||
void linphone_tunnel_auto_detect(LinphoneTunnelManager *tunnel);
|
||||
LinphoneTunnel *linphone_tunnel_get(LinphoneCore *lc);
|
||||
|
||||
void linphone_tunnel_add_server(LinphoneTunnel *tunnel, const char *host, int port);
|
||||
void linphone_tunnel_add_server_and_mirror(LinphoneTunnel *tunnel, const char *host, int port, int remote_udp_mirror, int delay);
|
||||
void linphone_tunnel_clean_servers(LinphoneTunnel *tunnel);
|
||||
void linphone_tunnel_enable(LinphoneTunnel *tunnel, bool_t enabled);
|
||||
bool_t linphone_tunnel_enabled(LinphoneTunnel *tunnel);
|
||||
void linphone_tunnel_enable_logs(LinphoneTunnel *tunnel, bool_t enabled);
|
||||
void linphone_tunnel_enable_logs_with_handler(LinphoneTunnel *tunnel, bool_t enabled, LogHandler logHandler);
|
||||
void linphone_tunnel_reconnect(LinphoneTunnel *tunnel);
|
||||
void linphone_tunnel_auto_detect(LinphoneTunnel *tunnel);
|
||||
void linphone_tunnel_set_http_proxy_auth_info(const char* username,const char* passwd);
|
||||
|
||||
|
||||
|
|
@ -63,22 +63,22 @@ typedef enum _LinphoneTunnelState{
|
|||
/**
|
||||
* Set tunnel addresses.
|
||||
**/
|
||||
void linphone_tunnel_set_server_addresses(LinphoneTunnelManager *tunnel, const char *lists);
|
||||
void linphone_tunnel_set_server_addresses(LinphoneTunnel *tunnel, const char *lists);
|
||||
|
||||
/**
|
||||
* Get tunnel addresses.
|
||||
**/
|
||||
const char *linphone_tunnel_get_server_addresses(LinphoneTunnelManager *tunnel);
|
||||
const char *linphone_tunnel_get_server_addresses(LinphoneTunnel *tunnel);
|
||||
|
||||
/**
|
||||
* Set tunnel state.
|
||||
**/
|
||||
void linphone_tunnel_set_state(LinphoneTunnelManager *tunnel, LinphoneTunnelState state);
|
||||
void linphone_tunnel_set_state(LinphoneTunnel *tunnel, LinphoneTunnelState state);
|
||||
|
||||
/**
|
||||
* Get tunnel state.
|
||||
**/
|
||||
LinphoneTunnelState linphone_tunnel_get_state(LinphoneTunnelManager *tunnel);
|
||||
LinphoneTunnelState linphone_tunnel_get_state(LinphoneTunnel *tunnel);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
|||
|
|
@ -349,7 +349,7 @@ LinphoneCall * linphone_call_new_incoming(LinphoneCore *lc, LinphoneAddress *fro
|
|||
/*the following sends an option request back to the caller so that
|
||||
we get a chance to discover our nat'd address before answering.*/
|
||||
call->ping_op=sal_op_new(lc->sal);
|
||||
from_str=linphone_address_as_string(from);
|
||||
from_str=linphone_address_as_string_uri_only(from);
|
||||
sal_op_set_route(call->ping_op,sal_op_get_network_origin(call->op));
|
||||
sal_op_set_user_pointer(call->ping_op,call);
|
||||
sal_ping(call->ping_op,linphone_core_find_best_identity(lc,from,NULL),from_str);
|
||||
|
|
|
|||
|
|
@ -998,7 +998,7 @@ static void misc_config_read (LinphoneCore *lc) {
|
|||
}
|
||||
|
||||
#ifdef TUNNEL_ENABLED
|
||||
static void tunnel_add_servers_from_config(LinphoneTunnelManager *tunnel, const char* confaddress){
|
||||
static void tunnel_add_servers_from_config(LinphoneTunnel *tunnel, const char* confaddress){
|
||||
char *addresses=(char*)ms_strdup(confaddress);
|
||||
char *str1;
|
||||
for(str1=addresses;;str1=NULL){
|
||||
|
|
@ -3801,6 +3801,9 @@ static MSFilter *get_dtmf_gen(LinphoneCore *lc){
|
|||
if (lc->ringstream==NULL){
|
||||
float amp=0.1;
|
||||
MSSndCard *ringcard=lc->sound_conf.lsd_card ?lc->sound_conf.lsd_card : lc->sound_conf.ring_sndcard;
|
||||
if (ringcard == NULL)
|
||||
return NULL;
|
||||
|
||||
lc->ringstream=ring_start(NULL,0,ringcard);
|
||||
ms_filter_call_method(lc->ringstream->gendtmf,MS_DTMF_GEN_SET_DEFAULT_AMPLITUDE,&);
|
||||
lc->dmfs_playing_start_time=time(NULL);
|
||||
|
|
|
|||
|
|
@ -1599,7 +1599,7 @@ extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setMaxCalls(JNIEnv *env,
|
|||
extern "C" void Java_org_linphone_core_LinphoneCoreImpl_tunnelAddServerAndMirror(JNIEnv *env,jobject thiz,jlong pCore,
|
||||
jstring jHost, jint port, jint mirror, jint delay) {
|
||||
#ifdef TUNNEL_ENABLED
|
||||
LinphoneTunnelManager *tunnel=((LinphoneCore *) pCore)->tunnel; if (!tunnel) return;
|
||||
LinphoneTunnel *tunnel=((LinphoneCore *) pCore)->tunnel; if (!tunnel) return;
|
||||
const char* cHost=env->GetStringUTFChars(jHost, NULL);
|
||||
linphone_tunnel_add_server_and_mirror(tunnel, cHost, port, mirror, delay);
|
||||
env->ReleaseStringUTFChars(jHost, cHost);
|
||||
|
|
@ -1608,28 +1608,28 @@ extern "C" void Java_org_linphone_core_LinphoneCoreImpl_tunnelAddServerAndMirror
|
|||
|
||||
extern "C" void Java_org_linphone_core_LinphoneCoreImpl_tunnelAutoDetect(JNIEnv *env,jobject thiz,jlong pCore) {
|
||||
#ifdef TUNNEL_ENABLED
|
||||
LinphoneTunnelManager *tunnel=((LinphoneCore *) pCore)->tunnel; if (!tunnel) return;
|
||||
LinphoneTunnel *tunnel=((LinphoneCore *) pCore)->tunnel; if (!tunnel) return;
|
||||
linphone_tunnel_auto_detect(tunnel);
|
||||
#endif
|
||||
}
|
||||
|
||||
extern "C" void Java_org_linphone_core_LinphoneCoreImpl_tunnelCleanServers(JNIEnv *env,jobject thiz,jlong pCore) {
|
||||
#ifdef TUNNEL_ENABLED
|
||||
LinphoneTunnelManager *tunnel=((LinphoneCore *) pCore)->tunnel; if (!tunnel) return;
|
||||
LinphoneTunnel *tunnel=((LinphoneCore *) pCore)->tunnel; if (!tunnel) return;
|
||||
linphone_tunnel_clean_servers(tunnel);
|
||||
#endif
|
||||
}
|
||||
|
||||
extern "C" void Java_org_linphone_core_LinphoneCoreImpl_tunnelEnable(JNIEnv *env,jobject thiz,jlong pCore, jboolean enable) {
|
||||
#ifdef TUNNEL_ENABLED
|
||||
LinphoneTunnelManager *tunnel=((LinphoneCore *) pCore)->tunnel; if (!tunnel) return;
|
||||
LinphoneTunnel *tunnel=((LinphoneCore *) pCore)->tunnel; if (!tunnel) return;
|
||||
linphone_tunnel_enable(tunnel, enable);
|
||||
#endif
|
||||
}
|
||||
|
||||
extern "C" void Java_org_linphone_core_LinphoneCoreImpl_tunnelEnableLogs(JNIEnv *env,jobject thiz,jlong pCore, jboolean enable) {
|
||||
#ifdef TUNNEL_ENABLED
|
||||
LinphoneTunnelManager *tunnel=((LinphoneCore *) pCore)->tunnel; if (!tunnel) return;
|
||||
LinphoneTunnel *tunnel=((LinphoneCore *) pCore)->tunnel; if (!tunnel) return;
|
||||
linphone_tunnel_enable_logs(tunnel, enable);
|
||||
#endif
|
||||
}
|
||||
|
|
|
|||
|
|
@ -476,11 +476,12 @@ struct _LinphoneCore
|
|||
int device_rotation;
|
||||
bool_t ringstream_autorelease;
|
||||
int max_calls;
|
||||
LinphoneTunnelManager *tunnel;
|
||||
LinphoneTunnel *tunnel;
|
||||
};
|
||||
|
||||
LinphoneTunnelManager *linphone_core_tunnel_new(LinphoneCore *lc);
|
||||
|
||||
LinphoneTunnel *linphone_core_tunnel_new(LinphoneCore *lc);
|
||||
void linphone_tunnel_destroy(LinphoneTunnel *tunnel);
|
||||
|
||||
bool_t linphone_core_can_we_add_call(LinphoneCore *lc);
|
||||
int linphone_core_add_call( LinphoneCore *lc, LinphoneCall *call);
|
||||
int linphone_core_del_call( LinphoneCore *lc, LinphoneCall *call);
|
||||
|
|
@ -544,6 +545,8 @@ void __linphone_core_invalidate_registers(LinphoneCore* lc);
|
|||
#endif
|
||||
void call_logs_write_to_config_file(LinphoneCore *lc);
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -722,6 +722,7 @@ int sal_ping(SalOp *op, const char *from, const char *to){
|
|||
|
||||
sal_op_set_from(op,from);
|
||||
sal_op_set_to(op,to);
|
||||
|
||||
/*bug here: eXosip2 does not honor the route argument*/
|
||||
eXosip_options_build_request (&options, sal_op_get_to(op),
|
||||
sal_op_get_from(op),sal_op_get_route(op));
|
||||
|
|
|
|||
|
|
@ -1004,7 +1004,7 @@ void linphone_gtk_edit_tunnel_closed(GtkWidget *button){
|
|||
}
|
||||
|
||||
#ifdef TUNNEL_ENABLED
|
||||
static void tunnel_get_server_host_and_port(LinphoneTunnelManager *tunnel, char *host, int size, int *port){
|
||||
static void tunnel_get_server_host_and_port(LinphoneTunnel *tunnel, char *host, int size, int *port){
|
||||
char *colon;
|
||||
char *addresses=(char*)ms_strdup(linphone_tunnel_get_server_addresses(tunnel));
|
||||
char *str1=addresses;
|
||||
|
|
@ -1023,7 +1023,7 @@ void linphone_gtk_edit_tunnel(GtkButton *button){
|
|||
#ifdef TUNNEL_ENABLED
|
||||
LinphoneCore *lc=linphone_gtk_get_core();
|
||||
GtkWidget *w=linphone_gtk_create_window("tunnel_config");
|
||||
LinphoneTunnelManager *tunnel=linphone_tunnel_get(lc);
|
||||
LinphoneTunnel *tunnel=linphone_tunnel_get(lc);
|
||||
char host[50]={'\0'};
|
||||
int port=0;
|
||||
tunnel_get_server_host_and_port(tunnel, host, sizeof(host), &port);
|
||||
|
|
@ -1050,7 +1050,7 @@ void linphone_gtk_tunnel_ok(GtkButton *button){
|
|||
LinphoneCore *lc=linphone_gtk_get_core();
|
||||
GtkWidget *w=gtk_widget_get_toplevel(GTK_WIDGET(button));
|
||||
char address[50]={'\0'};
|
||||
LinphoneTunnelManager *tunnel=linphone_tunnel_get(lc);
|
||||
LinphoneTunnel *tunnel=linphone_tunnel_get(lc);
|
||||
|
||||
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")));
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit 698cadf4ed473f4d1291238852492222209916da
|
||||
Subproject commit c1f6d3e6d4f36928fffd2e7380759544bcd23d84
|
||||
2
oRTP
2
oRTP
|
|
@ -1 +1 @@
|
|||
Subproject commit cb6bd1b8684d94d473bed38dd02029bd3a48df6e
|
||||
Subproject commit 73dff1e14c73e76e5d46f617a320389e29606ffd
|
||||
17
po/de.po
17
po/de.po
|
|
@ -6,8 +6,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: linphone 0.7.1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-12-05 12:41+0100\n"
|
||||
"PO-Revision-Date: 2011-11-27 23:42+0100\n"
|
||||
"POT-Creation-Date: 2011-12-10 01:18+0100\n"
|
||||
"PO-Revision-Date: 2011-12-10 01:28+0100\n"
|
||||
"Last-Translator: Gerhard Stengel <gstengel@gmx.net>\n"
|
||||
"Language-Team: German <kde-i18n-de@kde.org>\n"
|
||||
"Language: \n"
|
||||
|
|
@ -21,15 +21,15 @@ msgstr ""
|
|||
#, c-format
|
||||
msgid "%i minute"
|
||||
msgid_plural "%i minutes"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[0] "%i Minute"
|
||||
msgstr[1] "%i Minuten"
|
||||
|
||||
#: ../gtk/calllogs.c:74
|
||||
#, c-format
|
||||
msgid "%i second"
|
||||
msgid_plural "%i seconds"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[0] "%i Sekunde"
|
||||
msgstr[1] "%i Sekunden"
|
||||
|
||||
#: ../gtk/calllogs.c:77
|
||||
#, c-format
|
||||
|
|
@ -37,6 +37,8 @@ msgid ""
|
|||
"<big><b>%s</b></big>\t<small><i>%s</i>\t<i>Quality: %s</i></small>\n"
|
||||
"%s\t%s %s\t"
|
||||
msgstr ""
|
||||
"<big><b>%s</b></big>\t<small><i>%s</i>\t<i>Qualität: %s</i></small>\n"
|
||||
"%s\t%s %s\t"
|
||||
|
||||
#: ../gtk/calllogs.c:79
|
||||
msgid "n/a"
|
||||
|
|
@ -644,9 +646,8 @@ msgid "C"
|
|||
msgstr ""
|
||||
|
||||
#: ../gtk/main.ui.h:24
|
||||
#, fuzzy
|
||||
msgid "Call"
|
||||
msgstr "„%s“ anrufen"
|
||||
msgstr "Anrufen"
|
||||
|
||||
#: ../gtk/main.ui.h:25
|
||||
msgid "Call quality rating"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue