## Process this file with automake to produce Makefile.in
linphone_includedir=$(includedir)/linphone
-linphone_include_HEADERS=linphonecore.h linphonefriend.h linphonecore_utils.h ../config.h lpconfig.h sipsetup.h
+linphone_include_HEADERS=linphonecore.h linphonefriend.h linphonecore_utils.h ../config.h lpconfig.h sipsetup.h
+
+if BUILD_TUNNEL
+linphone_include_HEADERS+=linphone_tunnel.h
+endif
INCLUDES = \
-I$(top_srcdir)
siplogin.c \
lsd.c linphonecore_utils.h \
ec-calibrator.c \
- conference.c \
- linphone_tunnel_manager.h
+ conference.c
if BUILD_TUNNEL
-liblinphone_la_SOURCES+=TunnelManager.cc TunnelManager.hh linphone_tunnel_manager.cc
+liblinphone_la_SOURCES+=TunnelManager.cc TunnelManager.hh linphone_tunnel.cc
endif
const ServerAddr &addr=*it;
mTunnelClient->addServer(addr.mAddr.c_str(), addr.mPort);
}
+ if(!mHttpUserName.empty()) {
+ mTunnelClient->setHttpProxyAuthInfo(mHttpUserName.c_str(), mHttpPasswd.c_str());
+ }
}
mTunnelClient->start();
}
void TunnelManager::setHttpProxyAuthInfo(const char* username,const char* passwd) {
- mTunnelClient->setHttpProxyAuthInfo(username,passwd);
+ mHttpUserName=username?username:"";
+ mHttpPasswd=passwd?passwd:"";
+ if (mTunnelClient) mTunnelClient->setHttpProxyAuthInfo(username,passwd);
}
LinphoneCore *TunnelManager::getLinphoneCore(){
#ifndef __TUNNEL_CLIENT_MANAGER_H__
#define __TUNNEL_CLIENT_MANAGER_H__
#include <list>
+#include <string>
#include "linphonecore.h"
#include "tunnel/client.hh"
extern "C" {
static Mutex sMutex;
bool mAutoDetectStarted;
LinphoneRtpTransportFactories mTransportFactories;
+ std::string mHttpUserName;
+ std::string mHttpPasswd;
};
/**
--- /dev/null
+/***************************************************************************
+ * linphone_tunnel.cc
+ *
+ * Fri Dec 9, 2011
+ * Copyright 2011 Belledonne Communications
+ * Author: Guillaume Beraudo
+ * Email: guillaume dot beraudo 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_tunnel.h"
+#include "TunnelManager.hh"
+#include "linphonecore.h"
+#include "private.h"
+#include "lpconfig.h"
+
+static inline belledonnecomm::TunnelManager *bcTunnel(LinphoneTunnel *tunnel){
+ return (belledonnecomm::TunnelManager *)tunnel;
+}
+
+extern "C" LinphoneTunnel* linphone_core_tunnel_new(LinphoneCore *lc){
+ LinphoneTunnel* tunnel= (LinphoneTunnel*) new belledonnecomm::TunnelManager(lc);
+ return tunnel;
+}
+
+LinphoneTunnel* linphone_core_get_tunnel(LinphoneCore *lc){
+ return lc->tunnel;
+}
+
+void linphone_tunnel_destroy(LinphoneTunnel *tunnel){
+ delete bcTunnel(tunnel);
+}
+
+void linphone_tunnel_add_server(LinphoneTunnel *tunnel, const char *host, int port){
+ bcTunnel(tunnel)->addServer(host, port);
+}
+
+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(LinphoneTunnel *tunnel){
+ bcTunnel(tunnel)->cleanServers();
+}
+
+void linphone_tunnel_enable(LinphoneTunnel *tunnel, bool_t enabled){
+ bcTunnel(tunnel)->enable(enabled);
+}
+
+bool_t linphone_tunnel_enabled(LinphoneTunnel *tunnel){
+ return bcTunnel(tunnel)->isEnabled();
+}
+
+void linphone_tunnel_enable_logs(LinphoneTunnel *tunnel, bool_t enabled){
+ bcTunnel(tunnel)->enableLogs(enabled);
+}
+
+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(LinphoneTunnel *tunnel, const char* username,const char* passwd){
+ bcTunnel(tunnel)->setHttpProxyAuthInfo(username, passwd);
+}
+
+void linphone_tunnel_reconnect(LinphoneTunnel *tunnel){
+ bcTunnel(tunnel)->reconnect();
+}
+
+void linphone_tunnel_auto_detect(LinphoneTunnel *tunnel){
+ bcTunnel(tunnel)->autoDetect();
+}
+
+
+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(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(LinphoneTunnel *tunnel){
+ return lp_config_get_string(config(tunnel),"tunnel","server_addresses", NULL);
+}
+
+/**
+ * Set tunnel state.
+**/
+void linphone_tunnel_set_state(LinphoneTunnel *tunnel, LinphoneTunnelState state){
+ switch (state) {
+ case LinphoneTunnelEnabled:
+ lp_config_set_string(config(tunnel),"tunnel","tunnel_state","enabled");
+ break;
+ case LinphoneTunnelDisabled:
+ lp_config_set_string(config(tunnel),"tunnel","tunnel_state","disabled");
+ break;
+ case LinphoneTunnelAuto:
+ lp_config_set_string(config(tunnel),"tunnel","tunnel_state","auto");
+ break;
+ }
+}
+
+/**
+ * Get tunnel state.
+**/
+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;
+ } else if (0==strcmp("auto", state)){
+ return LinphoneTunnelAuto;
+ } else {
+ return LinphoneTunnelDisabled;
+ }
+}
--- /dev/null
+/***************************************************************************
+ * linphone_tunnel.h
+ *
+ * Fri Dec 9, 2011
+ * Copyright 2011 Belledonne Communications
+ * Author: Guillaume Beraudo
+ * Email: guillaume dot beraudo 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.
+ */
+
+#ifndef LINPHONETUNNELMANAGER_H
+#define LINPHONETUNNELMANAGER_H
+
+#include "linphonecore.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef void (*LogHandler)(int log_level, const char *str, va_list l);
+
+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(LinphoneTunnel*tunnel, const char* username,const char* passwd);
+
+
+/**
+ * LinphoneTunnelState describes the tunnel activation states.
+ */
+typedef enum _LinphoneTunnelState{
+ LinphoneTunnelDisabled, /**<The tunnel is always on */
+ LinphoneTunnelEnabled, /**<The tunnel is always off */
+ LinphoneTunnelAuto /**<The tunnel is active if needed */
+}LinphoneTunnelState;
+
+/**
+ * Set tunnel addresses.
+**/
+void linphone_tunnel_set_server_addresses(LinphoneTunnel *tunnel, const char *lists);
+
+/**
+ * Get tunnel addresses.
+**/
+const char *linphone_tunnel_get_server_addresses(LinphoneTunnel *tunnel);
+
+/**
+ * Set tunnel state.
+**/
+void linphone_tunnel_set_state(LinphoneTunnel *tunnel, LinphoneTunnelState state);
+
+/**
+ * Get tunnel state.
+**/
+LinphoneTunnelState linphone_tunnel_get_state(LinphoneTunnel *tunnel);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif
+++ /dev/null
-/***************************************************************************
- * linphone_tunnel_manager.cc
- *
- * Fri Dec 9, 2011
- * Copyright 2011 Belledonne Communications
- * Author: Guillaume Beraudo
- * Email: guillaume dot beraudo 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_tunnel_manager.h"
-#include "TunnelManager.hh"
-#include "linphonecore.h"
-#include "private.h"
-#include "lpconfig.h"
-
-static inline belledonnecomm::TunnelManager *bcTunnel(LinphoneTunnel *tunnel){
- return (belledonnecomm::TunnelManager *)tunnel;
-}
-
-extern "C" LinphoneTunnel* linphone_core_tunnel_new(LinphoneCore *lc){
- LinphoneTunnel* tunnel= (LinphoneTunnel*) new belledonnecomm::TunnelManager(lc);
- return tunnel;
-}
-
-LinphoneTunnel* linphone_tunnel_get(LinphoneCore *lc){
- return lc->tunnel;
-}
-
-void linphone_tunnel_destroy(LinphoneTunnel *tunnel){
- delete bcTunnel(tunnel);
-}
-
-void linphone_tunnel_add_server(LinphoneTunnel *tunnel, const char *host, int port){
- bcTunnel(tunnel)->addServer(host, port);
-}
-
-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(LinphoneTunnel *tunnel){
- bcTunnel(tunnel)->cleanServers();
-}
-
-void linphone_tunnel_enable(LinphoneTunnel *tunnel, bool_t enabled){
- bcTunnel(tunnel)->enable(enabled);
-}
-
-bool_t linphone_tunnel_enabled(LinphoneTunnel *tunnel){
- return bcTunnel(tunnel)->isEnabled();
-}
-
-void linphone_tunnel_enable_logs(LinphoneTunnel *tunnel, bool_t enabled){
- bcTunnel(tunnel)->enableLogs(enabled);
-}
-
-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(LinphoneTunnel *tunnel, const char* username,const char* passwd){
- bcTunnel(tunnel)->setHttpProxyAuthInfo(username, passwd);
-}
-
-void linphone_tunnel_reconnect(LinphoneTunnel *tunnel){
- bcTunnel(tunnel)->reconnect();
-}
-
-void linphone_tunnel_auto_detect(LinphoneTunnel *tunnel){
- bcTunnel(tunnel)->autoDetect();
-}
-
-
-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(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(LinphoneTunnel *tunnel){
- return lp_config_get_string(config(tunnel),"tunnel","server_addresses", NULL);
-}
-
-/**
- * Set tunnel state.
-**/
-void linphone_tunnel_set_state(LinphoneTunnel *tunnel, LinphoneTunnelState state){
- switch (state) {
- case LinphoneTunnelEnabled:
- lp_config_set_string(config(tunnel),"tunnel","tunnel_state","enabled");
- break;
- case LinphoneTunnelDisabled:
- lp_config_set_string(config(tunnel),"tunnel","tunnel_state","disabled");
- break;
- case LinphoneTunnelAuto:
- lp_config_set_string(config(tunnel),"tunnel","tunnel_state","auto");
- break;
- }
-}
-
-/**
- * Get tunnel state.
-**/
-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;
- } else if (0==strcmp("auto", state)){
- return LinphoneTunnelAuto;
- } else {
- return LinphoneTunnelDisabled;
- }
-}
+++ /dev/null
-/***************************************************************************
- * linphone_tunnel_manager.h
- *
- * Fri Dec 9, 2011
- * Copyright 2011 Belledonne Communications
- * Author: Guillaume Beraudo
- * Email: guillaume dot beraudo 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.
- */
-
-#ifndef LINPHONETUNNELMANAGER_H
-#define LINPHONETUNNELMANAGER_H
-
-#include "linphonecore.h"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-typedef struct LinphoneTunnel LinphoneTunnel;
-typedef void (*LogHandler)(int log_level, const char *str, va_list l);
-
-
-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);
-
-
-/**
- * LinphoneTunnelState describes the tunnel activation states.
- */
-typedef enum _LinphoneTunnelState{
- LinphoneTunnelDisabled, /**<The tunnel is always on */
- LinphoneTunnelEnabled, /**<The tunnel is always off */
- LinphoneTunnelAuto /**<The tunnel is active if needed */
-}LinphoneTunnelState;
-
-/**
- * Set tunnel addresses.
-**/
-void linphone_tunnel_set_server_addresses(LinphoneTunnel *tunnel, const char *lists);
-
-/**
- * Get tunnel addresses.
-**/
-const char *linphone_tunnel_get_server_addresses(LinphoneTunnel *tunnel);
-
-/**
- * Set tunnel state.
-**/
-void linphone_tunnel_set_state(LinphoneTunnel *tunnel, LinphoneTunnelState state);
-
-/**
- * Get tunnel state.
-**/
-LinphoneTunnelState linphone_tunnel_get_state(LinphoneTunnel *tunnel);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif
*/
const char *linphone_registration_state_to_string(LinphoneRegistrationState cs);
-/**
- * True if tunnel support was compiled.
- */
-bool_t linphone_core_tunnel_available();
-
-/**
- * Update tunnel using configuration.
- */
-void linphone_core_update_tunnel(LinphoneCore *lc);
-
LinphoneProxyConfig *linphone_proxy_config_new(void);
int linphone_proxy_config_set_server_addr(LinphoneProxyConfig *obj, const char *server_addr);
int linphone_proxy_config_set_identity(LinphoneProxyConfig *obj, const char *identity);
*/
void linphone_core_init_default_params(LinphoneCore*lc, LinphoneCallParams *params);
+/**
+ * True if tunnel support was compiled.
+ */
+bool_t linphone_core_tunnel_available();
+
+/**
+ * Update tunnel using configuration.
+ */
+void linphone_core_update_tunnel(LinphoneCore *lc);
+typedef struct LinphoneTunnel LinphoneTunnel;
+/**
+* get tunnel instance if available
+*/
+LinphoneTunnel *linphone_core_get_tunnel(LinphoneCore *lc);
+
#ifdef __cplusplus
}
#endif
#include <ortp/zrtp.h>
#ifdef TUNNEL_ENABLED
-#include "linphone_tunnel_manager.h"
+#include "linphone_tunnel.h"
#endif
extern "C" {
extern "C" {
#endif
#include "linphonecore.h"
-#include "linphone_tunnel_manager.h"
+#include "linphone_tunnel.h"
#include "linphonecore_utils.h"
#include "sal.h"
*/
#include "linphone.h"
-#include "linphone_tunnel_manager.h"
+#include "linphone_tunnel.h"
typedef enum {
CAP_IGNORE,
#ifdef TUNNEL_ENABLED
LinphoneCore *lc=linphone_gtk_get_core();
GtkWidget *w=linphone_gtk_create_window("tunnel_config");
- LinphoneTunnel *tunnel=linphone_tunnel_get(lc);
+ LinphoneTunnel *tunnel=linphone_core_get_tunnel(lc);
char host[50]={'\0'};
int port=0;
tunnel_get_server_host_and_port(tunnel, host, sizeof(host), &port);
LinphoneCore *lc=linphone_gtk_get_core();
GtkWidget *w=gtk_widget_get_toplevel(GTK_WIDGET(button));
char address[50]={'\0'};
- LinphoneTunnel *tunnel=linphone_tunnel_get(lc);
+ LinphoneTunnel *tunnel=linphone_core_get_tunnel(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")));