Commit ffa7c39d authored by jehan's avatar jehan
Browse files

Merge branch 'master' into tunnel

parents 851420c8 93e9e0fa
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,&amp);
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")));
......
mediastreamer2 @ c1f6d3e6
Subproject commit 698cadf4ed473f4d1291238852492222209916da
Subproject commit c1f6d3e6d4f36928fffd2e7380759544bcd23d84
oRTP @ 73dff1e1
Subproject commit cb6bd1b8684d94d473bed38dd02029bd3a48df6e
Subproject commit 73dff1e14c73e76e5d46f617a320389e29606ffd
......@@ -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"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment