]> sjero.net Git - linphone/commitdiff
Merge branch 'master' of git.linphone.org:linphone into upnp
authorYann Diorcet <yann.diorcet@belledonne-communications.com>
Thu, 17 Jan 2013 14:34:58 +0000 (15:34 +0100)
committerYann Diorcet <yann.diorcet@belledonne-communications.com>
Thu, 17 Jan 2013 14:34:58 +0000 (15:34 +0100)
Conflicts:
coreapi/linphone_tunnel.cc
mediastreamer2

13 files changed:
1  2 
configure.ac
coreapi/Makefile.am
coreapi/callbacks.c
coreapi/linphone_tunnel.cc
coreapi/linphone_tunnel.h
coreapi/linphone_tunnel_config.c
coreapi/linphone_tunnel_stubs.c
coreapi/linphonecore.c
coreapi/linphonecore.h
coreapi/private.h
gtk/parameters.ui
gtk/propertybox.c
mediastreamer2

diff --cc configure.ac
Simple merge
index c5abd0360b9ae9127aeb62e9b60069b4cefffd66,790612cab48b7b59ece5d5664e575cc6b78b077e..eab65b147577d072245bb4fb5c60a00908a815ec
@@@ -57,10 -54,8 +57,11 @@@ if BUILD_WIZAR
  liblinphone_la_SOURCES+=sipwizard.c 
  endif
  
++liblinphone_la_SOURCES+=linphone_tunnel_config.c
  if BUILD_TUNNEL
 -liblinphone_la_SOURCES+=TunnelManager.cc TunnelManager.hh 
 +liblinphone_la_SOURCES+=linphone_tunnel.cc TunnelManager.cc TunnelManager.hh 
 +else
 +liblinphone_la_SOURCES+=linphone_tunnel_stubs.c
  endif
  
  
Simple merge
index 18fabbbe95eb7d7654ac3622bf80ccc0eaea0b91,c76441f5a7f5f3b321ba50d5e8499a6f89ab8bc4..f0de56694d02a564cf1ea8376a981d2b584b6c8b
@@@ -34,48 -35,243 +33,185 @@@ LinphoneTunnel* linphone_core_get_tunne
        return lc->tunnel;
  }
  
 -struct _LinphoneTunnelConfig {
 -      char *host;
 -      int port;
 -      int remote_udp_mirror_port;
 -      int delay;      
 -};
 -
 -LinphoneTunnelConfig *linphone_tunnel_config_new() {
 -      LinphoneTunnelConfig *ltc = ms_new0(LinphoneTunnelConfig,1);
 -      ltc->remote_udp_mirror_port = 12345;
 -      ltc->delay = 1000;
 -      return ltc;
 -}
 -
 -void linphone_tunnel_config_set_host(LinphoneTunnelConfig *tunnel, const char *host) {
 -      if(tunnel->host != NULL) {
 -              ms_free(tunnel->host);
 -              tunnel->host = NULL;
 -      }
 -      if(host != NULL && strlen(host)) {
 -              tunnel->host = ms_strdup(host);
 -      }
 -}
 -
 -const char *linphone_tunnel_config_get_host(LinphoneTunnelConfig *tunnel) {
 -      return tunnel->host;
 -}
 -
 -void linphone_tunnel_config_set_port(LinphoneTunnelConfig *tunnel, int port) {
 -      tunnel->port = port;
 -}
 -
 -int linphone_tunnel_config_get_port(LinphoneTunnelConfig *tunnel) {
 -      return tunnel->port;
 -}
 -
 -void linphone_tunnel_config_set_remote_udp_mirror_port(LinphoneTunnelConfig *tunnel, int remote_udp_mirror_port) {
 -      tunnel->remote_udp_mirror_port = remote_udp_mirror_port;
 -}
 -
 -int linphone_tunnel_config_get_remote_udp_mirror_port(LinphoneTunnelConfig *tunnel) {
 -      return tunnel->remote_udp_mirror_port;
 -}
 -
 -void linphone_tunnel_config_set_delay(LinphoneTunnelConfig *tunnel, int delay) {
 -      tunnel->delay = delay;
 -}
 -
 -int linphone_tunnel_config_get_delay(LinphoneTunnelConfig *tunnel) {
 -      return tunnel->delay;
 -}
 -
 -void linphone_tunnel_config_destroy(LinphoneTunnelConfig *tunnel) {
 -      if(tunnel->host != NULL) {
 -              ms_free(tunnel->host);
 -      }
 -      ms_free(tunnel);
 -}
 -
 -#ifdef TUNNEL_ENABLED
 -
+ struct _LinphoneTunnel {
+       belledonnecomm::TunnelManager *manager;
+       MSList *config_list;
+ };
+ extern "C" LinphoneTunnel* linphone_core_tunnel_new(LinphoneCore *lc){
+       LinphoneTunnel* tunnel = ms_new0(LinphoneTunnel, 1);
+       tunnel->manager = new belledonnecomm::TunnelManager(lc);
+       return tunnel;
+ }
  static inline belledonnecomm::TunnelManager *bcTunnel(LinphoneTunnel *tunnel){
-       return (belledonnecomm::TunnelManager *)tunnel;
+       return tunnel->manager;
  }
  
  static inline _LpConfig *config(LinphoneTunnel *tunnel){
-       return ((belledonnecomm::TunnelManager *)tunnel)->getLinphoneCore()->config;
+       return tunnel->manager->getLinphoneCore()->config;
  }
  
extern "C" LinphoneTunnel* linphone_core_tunnel_new(LinphoneCore *lc){
-       LinphoneTunnel* tunnel= (LinphoneTunnel*) new belledonnecomm::TunnelManager(lc);
-       return tunnel;
void linphone_tunnel_destroy(LinphoneTunnel *tunnel){
+       delete tunnel->manager;
+       ms_free(tunnel);
  }
  
void linphone_tunnel_destroy(LinphoneTunnel *tunnel){
-       delete bcTunnel(tunnel);
static char *linphone_tunnel_config_to_string(const LinphoneTunnelConfig *tunnel_config) {
+       char *str = NULL;
 -      if(tunnel_config->remote_udp_mirror_port != -1) {
++      if(linphone_tunnel_config_get_remote_udp_mirror_port(tunnel_config) != -1) {
+               str = ms_strdup_printf("%s:%d:%d:%d", 
 -                      tunnel_config->host,
 -                      tunnel_config->port,
 -                      tunnel_config->remote_udp_mirror_port,
 -                      tunnel_config->delay);
++                      linphone_tunnel_config_get_host(tunnel_config),
++                      linphone_tunnel_config_get_port(tunnel_config),
++                      linphone_tunnel_config_get_remote_udp_mirror_port(tunnel_config),
++                      linphone_tunnel_config_get_delay(tunnel_config));
+       } else {
+               str = ms_strdup_printf("%s:%d",
 -                      tunnel_config->host,
 -                      tunnel_config->port);
++                      linphone_tunnel_config_get_host(tunnel_config),
++                      linphone_tunnel_config_get_port(tunnel_config));
+       }
+       return str;
+ }
+ static LinphoneTunnelConfig *linphone_tunnel_config_from_string(const char *str) {
+       LinphoneTunnelConfig *tunnel_config = NULL;
+       char * dstr = ms_strdup(str);
+       const char *host = NULL;
+       int port = -1;
+       int remote_udp_mirror_port = -1;
+       int delay = -1;
+       int pos = 0;
+       char *pch;
+       pch = strtok(dstr, ":");
+       while(pch != NULL) {
+               switch(pos) {
+               case 0:
+                       host = pch;
+                       break;
+               case 1:
+                       port = atoi(pch);
+                       break;
+               case 2:
+                       remote_udp_mirror_port = atoi(pch);
+                       break;
+               case 3:
+                       delay = atoi(pch);
+                       break;  
+               default:
+                       // Abort
+                       pos = 0;
+                       break;
+                       
+               }
+               ++pos;
+               pch = strtok(NULL, ":");
+       }
+       if(pos >= 2) {
+               tunnel_config = linphone_tunnel_config_new();
+               linphone_tunnel_config_set_host(tunnel_config, host);
+               linphone_tunnel_config_set_port(tunnel_config, port);
+       }
+       if(pos >= 3) {
+               linphone_tunnel_config_set_remote_udp_mirror_port(tunnel_config, remote_udp_mirror_port);
+       }
+       if(pos == 4) {
+               linphone_tunnel_config_set_delay(tunnel_config, delay);
+       }
+       ms_free(dstr);  
+       return tunnel_config;
  }
  
- static void add_server_to_config(LinphoneTunnel *tunnel, const char *host, int port){
-       const char *orig=lp_config_get_string(config(tunnel),"tunnel","server_addresses", NULL);
+ static void linphone_tunnel_save_config(LinphoneTunnel *tunnel) {
+       MSList *elem = tunnel->config_list;
+       char *tmp = NULL, *old_tmp = NULL, *tc_str = NULL;
+       while(elem != NULL) {
+               LinphoneTunnelConfig *tunnel_config = (LinphoneTunnelConfig *)elem->data;
+               tc_str = linphone_tunnel_config_to_string(tunnel_config);
+               if(tmp != NULL) {
+                       old_tmp = tmp;
+                       tmp = ms_strdup_printf("%s %s", old_tmp, tc_str);
+                       ms_free(old_tmp);
+                       ms_free(tc_str);
+               } else {
+                       tmp = tc_str;
+               }
+               elem = elem->next;
+       }
+       lp_config_set_string(config(tunnel), "tunnel", "server_addresses", tmp);
+       if(tmp != NULL) {
+               ms_free(tmp);
+       }
+ }
+ static void linphone_tunnel_add_server_intern(LinphoneTunnel *tunnel, LinphoneTunnelConfig *tunnel_config) {
 -      if(tunnel_config->remote_udp_mirror_port == -1) {
 -              bcTunnel(tunnel)->addServer(tunnel_config->host, tunnel_config->port);
++      if(linphone_tunnel_config_get_remote_udp_mirror_port(tunnel_config) == -1) {
++              bcTunnel(tunnel)->addServer(linphone_tunnel_config_get_host(tunnel_config), 
++                      linphone_tunnel_config_get_port(tunnel_config));
+       } else {
 -              bcTunnel(tunnel)->addServer(tunnel_config->host, tunnel_config->port, 
 -                      tunnel_config->remote_udp_mirror_port, tunnel_config->delay);
++              bcTunnel(tunnel)->addServer(linphone_tunnel_config_get_host(tunnel_config), 
++                      linphone_tunnel_config_get_port(tunnel_config), 
++                      linphone_tunnel_config_get_remote_udp_mirror_port(tunnel_config), 
++                      linphone_tunnel_config_get_delay(tunnel_config));
+       }
+       tunnel->config_list = ms_list_append(tunnel->config_list, tunnel_config);
+ }
+ static void linphone_tunnel_load_config(LinphoneTunnel *tunnel){
+       const char * confaddress = lp_config_get_string(config(tunnel), "tunnel", "server_addresses", NULL);
        char *tmp;
-       if (orig){
-               tmp=ms_strdup_printf("%s %s:%i",orig,host,port);
-       }else tmp=ms_strdup_printf("%s:%i",host, port);
-       lp_config_set_string(config(tunnel),"tunnel","server_addresses",tmp);
-       ms_free(tmp);
+       const char *it;
+       LinphoneTunnelConfig *tunnel_config;
+       int adv;
+       if(confaddress != NULL) {
+               tmp = ms_strdup(confaddress);
+               it = confaddress;
+               while(confaddress[0] != '\0') {
+                       int ret = sscanf(it,"%s%n", tmp, &adv);
+                       if (ret >= 1){
+                               it += adv;
+                               tunnel_config = linphone_tunnel_config_from_string(tmp);
+                               if(tunnel_config != NULL) {
+                                       linphone_tunnel_add_server_intern(tunnel, tunnel_config);
+                               } else {
+                                       ms_error("Tunnel server address incorrectly specified from config file: %s", tmp);
+                               }
+                       } else break;
+               }
+               ms_free(tmp);
+       }
+ }
+ static void linphone_tunnel_refresh_config(LinphoneTunnel *tunnel) {
+       MSList *old_list = tunnel->config_list;
+       tunnel->config_list = NULL;
+       bcTunnel(tunnel)->cleanServers();
+       while(old_list != NULL) {
+               LinphoneTunnelConfig *tunnel_config = (LinphoneTunnelConfig *)old_list->data;
+               linphone_tunnel_add_server_intern(tunnel, tunnel_config);
+               old_list = old_list->next;
+       }
  }
  
- void linphone_tunnel_add_server(LinphoneTunnel *tunnel, const char *host, int port){
-       bcTunnel(tunnel)->addServer(host, port);
-       add_server_to_config(tunnel,host,port);
+ void linphone_tunnel_add_server(LinphoneTunnel *tunnel, LinphoneTunnelConfig *tunnel_config) {
+       linphone_tunnel_add_server_intern(tunnel, tunnel_config);
+       linphone_tunnel_save_config(tunnel);
  }
  
- 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);
-       /*FIXME, udp-mirror feature not saved in config*/
-       add_server_to_config(tunnel,host,port);
+ void linphone_tunnel_remove_server(LinphoneTunnel *tunnel, LinphoneTunnelConfig *tunnel_config) {
+       MSList *elem = ms_list_find(tunnel->config_list, tunnel_config);
+       if(elem != NULL) {
+               tunnel->config_list = ms_list_remove(tunnel->config_list, tunnel_config);
+               linphone_tunnel_config_destroy(tunnel_config);          
+               linphone_tunnel_refresh_config(tunnel);
+               linphone_tunnel_save_config(tunnel);
+       }       
  }
  
- char *linphone_tunnel_get_servers(LinphoneTunnel *tunnel){
-       const char *tmp=lp_config_get_string(config(tunnel),"tunnel","server_addresses",NULL);
-       if (tmp) return ms_strdup(tmp);
-       return NULL;
+ const MSList *linphone_tunnel_get_servers(LinphoneTunnel *tunnel){
+       return tunnel->config_list;
  }
  
  void linphone_tunnel_clean_servers(LinphoneTunnel *tunnel){
index bb343008a667272e0d5a77db4e5eed7667aac77f,03c568e4e4aca24d9e2673f536ea9f20fa8349bd..e42a054dcc4023bb9385979eb788f28b3f650c0f
@@@ -48,24 -48,96 +48,96 @@@ extern "C
  {
  #endif
  
+ typedef struct _LinphoneTunnelConfig LinphoneTunnelConfig;
  /**
-  * Add a tunnel server. At least one should be provided to be able to connect.
-  * When several addresses are provided, the tunnel client may try each of them until it gets connected.
-  * @param  tunnel object
-  * @param host server ip address
-  * @param port tunnel server tls port, recommended value is 443
+  * Create a new tunnel configuration
   */
- void linphone_tunnel_add_server(LinphoneTunnel *tunnel, const char *host, int port);
+ LinphoneTunnelConfig *linphone_tunnel_config_new();
  /**
-  *Add tunnel server with auto detection capabilities
+  * Set address of server.
   *
-  * @param  tunnel object
+  * @param tunnel configuration object
   * @param host tunnel server ip address
 -const char *linphone_tunnel_config_get_host(LinphoneTunnelConfig *tunnel);
+  */
+ void linphone_tunnel_config_set_host(LinphoneTunnelConfig *tunnel, const char *host);
+ /**
+  * Get address of server.
+  *
+  * @param tunnel configuration object
+  */
++const char *linphone_tunnel_config_get_host(const LinphoneTunnelConfig *tunnel);
+ /**
+  * Set tls port of server.
+  *
+  * @param tunnel configuration object
   * @param port tunnel server tls port, recommended value is 443
-  * @param remote_udp_mirror_port remote port on the tunnel server side used to test udp reachability
+  */
+ void linphone_tunnel_config_set_port(LinphoneTunnelConfig *tunnel, int port);
+ /**
+  * Get tls port of server.
+  *
+  * @param tunnel configuration object
+  */
 -int linphone_tunnel_config_get_port(LinphoneTunnelConfig *tunnel);
++int linphone_tunnel_config_get_port(const LinphoneTunnelConfig *tunnel);
+ /**
+  * Set the remote port on the tunnel server side used to test udp reachability. 
+  *
+  * @param tunnel configuration object
+  * @param remote_udp_mirror_port remote port on the tunnel server side used to test udp reachability, set to -1 to disable the feature
+  */
+ void linphone_tunnel_config_set_remote_udp_mirror_port(LinphoneTunnelConfig *tunnel, int remote_udp_mirror_port);
+ /**
+  * Get the remote port on the tunnel server side used to test udp reachability.
+  *
+  * @param tunnel configuration object
+  */
 -int linphone_tunnel_config_get_remote_udp_mirror_port(LinphoneTunnelConfig *tunnel);
++int linphone_tunnel_config_get_remote_udp_mirror_port(const LinphoneTunnelConfig *tunnel);
+ /**
+  * Set the udp packet round trip delay in ms for a tunnel configuration.
+  *
+  * @param tunnel configuration object
   * @param delay udp packet round trip delay in ms considered as acceptable. recommended value is 1000 ms.
   */
- void linphone_tunnel_add_server_and_mirror(LinphoneTunnel *tunnel, const char *host, int port, int remote_udp_mirror_port, int delay);
+ void linphone_tunnel_config_set_delay(LinphoneTunnelConfig *tunnel, int delay);
+ /**
+  * Get the udp packet round trip delay in ms for a tunnel configuration.
+  * 
+  * @param tunnel configuration object
+  */
 -int linphone_tunnel_config_get_delay(LinphoneTunnelConfig *tunnel);
++int linphone_tunnel_config_get_delay(const LinphoneTunnelConfig *tunnel);
+ /**
+  * Destroy a tunnel configuration
+  *
+  * @param tunnel configuration object
+  */
+ void linphone_tunnel_config_destroy(LinphoneTunnelConfig *tunnel);
+ /**
+  * Add tunnel server configuration
+  *
+  * @param tunnel object
+  * @param tunnel_config object
+  */
+ void linphone_tunnel_add_server(LinphoneTunnel *tunnel, LinphoneTunnelConfig *tunnel_config);
+ /**
+  * Remove tunnel server configuration
+  * 
+  * @param tunnel object
+  * @param tunnel_config object
+  */
+ void linphone_tunnel_remove_server(LinphoneTunnel *tunnel, LinphoneTunnelConfig *tunnel_config);
  /**
   * @param  tunnel object
   * returns a string of space separated list of host:port of tunnel server addresses
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..f385680164d41a8eb06511f373ac25eeaad8c733
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,83 @@@
++/***************************************************************************
++ *            linphone_tunnel_config.c
++ *
++ *  Copyright  2012  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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++ */
++
++#include "linphone_tunnel.h"
++
++struct _LinphoneTunnelConfig {
++      char *host;
++      int port;
++      int remote_udp_mirror_port;
++      int delay;      
++};
++
++LinphoneTunnelConfig *linphone_tunnel_config_new() {
++      LinphoneTunnelConfig *ltc = ms_new0(LinphoneTunnelConfig,1);
++      ltc->remote_udp_mirror_port = 12345;
++      ltc->delay = 1000;
++      return ltc;
++}
++
++void linphone_tunnel_config_set_host(LinphoneTunnelConfig *tunnel, const char *host) {
++      if(tunnel->host != NULL) {
++              ms_free(tunnel->host);
++              tunnel->host = NULL;
++      }
++      if(host != NULL && strlen(host)) {
++              tunnel->host = ms_strdup(host);
++      }
++}
++
++const char *linphone_tunnel_config_get_host(const LinphoneTunnelConfig *tunnel) {
++      return tunnel->host;
++}
++
++void linphone_tunnel_config_set_port(LinphoneTunnelConfig *tunnel, int port) {
++      tunnel->port = port;
++}
++
++int linphone_tunnel_config_get_port(const LinphoneTunnelConfig *tunnel) {
++      return tunnel->port;
++}
++
++void linphone_tunnel_config_set_remote_udp_mirror_port(LinphoneTunnelConfig *tunnel, int remote_udp_mirror_port) {
++      tunnel->remote_udp_mirror_port = remote_udp_mirror_port;
++}
++
++int linphone_tunnel_config_get_remote_udp_mirror_port(const LinphoneTunnelConfig *tunnel) {
++      return tunnel->remote_udp_mirror_port;
++}
++
++void linphone_tunnel_config_set_delay(LinphoneTunnelConfig *tunnel, int delay) {
++      tunnel->delay = delay;
++}
++
++int linphone_tunnel_config_get_delay(const LinphoneTunnelConfig *tunnel) {
++      return tunnel->delay;
++}
++
++void linphone_tunnel_config_destroy(LinphoneTunnelConfig *tunnel) {
++      if(tunnel->host != NULL) {
++              ms_free(tunnel->host);
++      }
++      ms_free(tunnel);
++}
++
index d7fb2779672804bc062e78127ca30553cb92a584,0000000000000000000000000000000000000000..0560b3956d945a150b6cda0f74f599e55257aeb4
mode 100644,000000..100644
--- /dev/null
@@@ -1,81 -1,0 +1,83 @@@
- void linphone_tunnel_add_server(LinphoneTunnel *tunnel, const char *host, int port){
 +/***************************************************************************
 + *            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 "linphonecore.h"
 +#include "private.h"
 +#include "lpconfig.h"
 +
 +
 +LinphoneTunnel* linphone_core_get_tunnel(LinphoneCore *lc){
 +      return lc->tunnel;
 +}
 +
 +/*stubs to avoid to have #ifdef TUNNEL_ENABLED in upper layers*/
 +
 +void linphone_tunnel_destroy(LinphoneTunnel *tunnel){
 +}
 +
- void linphone_tunnel_add_server_and_mirror(LinphoneTunnel *tunnel, const char *host, int port, int remote_udp_mirror, int delay){
++
++void linphone_tunnel_add_server(LinphoneTunnel *tunnel, LinphoneTunnelConfig *tunnel_config){
 +}
 +
- char *linphone_tunnel_get_servers(LinphoneTunnel *tunnel){
-       return NULL;
++void linphone_tunnel_remove_server(LinphoneTunnel *tunnel, LinphoneTunnelConfig *tunnel_config){
 +}
 +
-       return FALSE;
++const MSList *linphone_tunnel_get_servers(LinphoneTunnel *tunnel){
++        return NULL;
 +}
 +
 +void linphone_tunnel_clean_servers(LinphoneTunnel *tunnel){
 +}
 +
 +void linphone_tunnel_enable(LinphoneTunnel *tunnel, bool_t enabled){
 +}
 +
 +bool_t linphone_tunnel_enabled(LinphoneTunnel *tunnel){
++        return FALSE;
 +}
 +
++
 +void linphone_tunnel_enable_logs_with_handler(LinphoneTunnel *tunnel, bool_t enabled, OrtpLogFunc logHandler){
 +}
 +
 +void linphone_tunnel_set_http_proxy_auth_info(LinphoneTunnel *tunnel, const char* username,const char* passwd){
 +}
 +
 +void linphone_tunnel_set_http_proxy(LinphoneTunnel*tunnel, const char *host, int port, const char* username,const char* passwd){
 +}
 +
 +void linphone_tunnel_get_http_proxy(LinphoneTunnel*tunnel,const char **host, int *port, const char **username, const char **passwd){
 +}
 +
 +void linphone_tunnel_reconnect(LinphoneTunnel *tunnel){
 +}
 +
 +void linphone_tunnel_auto_detect(LinphoneTunnel *tunnel){
 +}
 +
 +void linphone_tunnel_configure(LinphoneTunnel *tunnel){
 +}
 +
index b1b6e6c6bbb0e917c2fe764e297b14022e6e7dbc,ee0be33be22e2cfe0e59c2c9b17fcdad1d111b76..9545af23ffc2cdfec817f7769838e70c1360133d
@@@ -65,7 -65,9 +65,8 @@@ static void linphone_core_run_hooks(Lin
  static void linphone_core_free_hooks(LinphoneCore *lc);
  
  #include "enum.h"
  const char *linphone_core_get_nat_address_resolved(LinphoneCore *lc);
 -void linphone_core_get_local_ip(LinphoneCore *lc, const char *dest, char *result);
  static void toggle_video_preview(LinphoneCore *lc, bool_t val);
  
  /* relative path where is stored local ring*/
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc mediastreamer2
index b8dffb2741223e13baa4c9d1514a1911d070b0e7,d5811e376759433da3c19585b2d8d0329e1c06b2..1cf3b8e36d832d763220b762c6bceef0db88c04c
@@@ -1,1 -1,1 +1,1 @@@
- Subproject commit b8dffb2741223e13baa4c9d1514a1911d070b0e7
 -Subproject commit d5811e376759433da3c19585b2d8d0329e1c06b2
++Subproject commit 1cf3b8e36d832d763220b762c6bceef0db88c04c