diff --git a/coreapi/proxy.c b/coreapi/proxy.c index 80eb5d522..babd13e34 100644 --- a/coreapi/proxy.c +++ b/coreapi/proxy.c @@ -244,7 +244,13 @@ static char *guess_contact_for_register(LinphoneProxyConfig *obj){ contact=linphone_address_new(obj->reg_identity); linphone_address_set_domain (contact,localip); linphone_address_set_port_int(contact,linphone_core_get_sip_port(obj->lc)); - ret=linphone_address_as_string_uri_only (contact); + linphone_address_set_display_name(contact,NULL); + LCSipTransports tr; + linphone_core_get_sip_transports(obj->lc,&tr); + if (tr.udp_port <= 0 && tr.tcp_port>0) { + sal_address_add_param(contact,"transport","tcp"); + } + ret=linphone_address_as_string(contact); linphone_address_destroy(contact); } linphone_address_destroy (proxy); diff --git a/coreapi/sal.h b/coreapi/sal.h index 58d250e90..d8d02edd9 100644 --- a/coreapi/sal.h +++ b/coreapi/sal.h @@ -60,7 +60,7 @@ void sal_address_clean(SalAddress *addr); char *sal_address_as_string(const SalAddress *u); char *sal_address_as_string_uri_only(const SalAddress *u); void sal_address_destroy(SalAddress *u); - +void sal_address_add_param(SalAddress *u,const char* name,const char* value); diff --git a/coreapi/sal_eXosip2.c b/coreapi/sal_eXosip2.c index 8a427a2df..bd3e7e664 100644 --- a/coreapi/sal_eXosip2.c +++ b/coreapi/sal_eXosip2.c @@ -1749,6 +1749,9 @@ char *sal_address_as_string_uri_only(const SalAddress *u){ osip_free(tmp); return ret; } +void sal_address_add_param(SalAddress *u,const char* name,const char* value) { + osip_uri_uparam_add (((osip_from_t*)u)->url,ms_strdup(name),ms_strdup(value)); +} void sal_address_destroy(SalAddress *u){ osip_from_free((osip_from_t*)u); diff --git a/java/common/org/linphone/core/LinphoneCoreFactory.java b/java/common/org/linphone/core/LinphoneCoreFactory.java index cd34cfe36..b3e2952fb 100644 --- a/java/common/org/linphone/core/LinphoneCoreFactory.java +++ b/java/common/org/linphone/core/LinphoneCoreFactory.java @@ -61,5 +61,5 @@ abstract public class LinphoneCoreFactory { */ abstract public void setDebugMode(boolean enable); - //abstract public void setLogHandler(LinphoneLogHandler handler); + abstract public void setLogHandler(LinphoneLogHandler handler); }