Commit 9563b0d1 authored by Simon Morlat's avatar Simon Morlat
Browse files

fix missing "lr" causing old fashioned outbound proxy routing

parent 2b0e5347
...@@ -350,7 +350,7 @@ LinphoneCall * linphone_call_new_incoming(LinphoneCore *lc, LinphoneAddress *fro ...@@ -350,7 +350,7 @@ LinphoneCall * linphone_call_new_incoming(LinphoneCore *lc, LinphoneAddress *fro
we get a chance to discover our nat'd address before answering.*/ we get a chance to discover our nat'd address before answering.*/
call->ping_op=sal_op_new(lc->sal); call->ping_op=sal_op_new(lc->sal);
from_str=linphone_address_as_string_uri_only(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_route(call->ping_op,sal_op_get_network_origin(op));
sal_op_set_user_pointer(call->ping_op,call); sal_op_set_user_pointer(call->ping_op,call);
sal_ping(call->ping_op,linphone_core_find_best_identity(lc,from,NULL),from_str); sal_ping(call->ping_op,linphone_core_find_best_identity(lc,from,NULL),from_str);
ms_free(from_str); ms_free(from_str);
......
...@@ -172,16 +172,20 @@ int linphone_proxy_config_set_route(LinphoneProxyConfig *obj, const char *route) ...@@ -172,16 +172,20 @@ int linphone_proxy_config_set_route(LinphoneProxyConfig *obj, const char *route)
obj->reg_route=NULL; obj->reg_route=NULL;
} }
if (route!=NULL){ if (route!=NULL){
LinphoneAddress *addr; SalAddress *addr;
char *tmp;
/*try to prepend 'sip:' */ /*try to prepend 'sip:' */
if (strstr(route,"sip:")==NULL){ if (strstr(route,"sip:")==NULL){
obj->reg_route=ms_strdup_printf("sip:%s",route); tmp=ms_strdup_printf("sip:%s",route);
}else obj->reg_route=ms_strdup(route); }else tmp=ms_strdup(route);
addr=linphone_address_new(obj->reg_route); addr=sal_address_new(tmp);
if (addr==NULL){ if (addr!=NULL){
ms_free(obj->reg_route); sal_address_destroy(addr);
obj->reg_route=NULL; }else{
}else linphone_address_destroy(addr); ms_free(tmp);
tmp=NULL;
}
obj->reg_route=tmp;
} }
return 0; return 0;
} }
......
...@@ -717,8 +717,8 @@ int sal_ping(SalOp *op, const char *from, const char *to){ ...@@ -717,8 +717,8 @@ int sal_ping(SalOp *op, const char *from, const char *to){
sal_op_set_from(op,from); sal_op_set_from(op,from);
sal_op_set_to(op,to); sal_op_set_to(op,to);
sal_exosip_fix_route(op);
/*bug here: eXosip2 does not honor the route argument*/
eXosip_options_build_request (&options, sal_op_get_to(op), eXosip_options_build_request (&options, sal_op_get_to(op),
sal_op_get_from(op),sal_op_get_route(op)); sal_op_get_from(op),sal_op_get_route(op));
if (options){ if (options){
...@@ -2216,10 +2216,10 @@ void sal_address_set_param(SalAddress *u,const char* name,const char* value) { ...@@ -2216,10 +2216,10 @@ void sal_address_set_param(SalAddress *u,const char* name,const char* value) {
osip_uri_param_t *param=NULL; osip_uri_param_t *param=NULL;
osip_uri_uparam_get_byname(((osip_from_t*)u)->url,(char*)name,&param); osip_uri_uparam_get_byname(((osip_from_t*)u)->url,(char*)name,&param);
if (param == NULL){ if (param == NULL){
osip_uri_uparam_add (((osip_from_t*)u)->url,ms_strdup(name),ms_strdup(value)); osip_uri_uparam_add (((osip_from_t*)u)->url,ms_strdup(name),value ? ms_strdup(value) : NULL);
} else { } else {
osip_free(param->gvalue); osip_free(param->gvalue);
param->gvalue=osip_strdup(value); param->gvalue=value ? osip_strdup(value) : NULL;
} }
} }
......
...@@ -92,6 +92,7 @@ int sal_text_send(SalOp *op, const char *from, const char *to, const char *msg){ ...@@ -92,6 +92,7 @@ int sal_text_send(SalOp *op, const char *from, const char *to, const char *msg){
if (to) if (to)
sal_op_set_to(op,to); sal_op_set_to(op,to);
sal_exosip_fix_route(op);
eXosip_lock(); eXosip_lock();
eXosip_message_build_request(&sip,"MESSAGE",sal_op_get_to(op), eXosip_message_build_request(&sip,"MESSAGE",sal_op_get_to(op),
sal_op_get_from(op),sal_op_get_route(op)); sal_op_get_from(op),sal_op_get_route(op));
......
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