sal_use_session_timers(lc->sal,200);
}
+ sal_use_rport(lc->sal,lp_config_get_int(lc->config,"sip","use_rport",1));
+
tmp=lp_config_get_int(lc->config,"sip","use_rfc2833",0);
linphone_core_set_use_rfc2833_for_dtmf(lc,tmp);
void sal_use_session_timers(Sal *ctx, int expires);
void sal_use_double_registrations(Sal *ctx, bool_t enabled);
void sal_use_one_matching_codec_policy(Sal *ctx, bool_t one_matching_codec);
+void sal_use_rport(Sal *ctx, bool_t use_rports);
+
int sal_iterate(Sal *sal);
MSList * sal_get_pending_auths(Sal *sal);
sal=ms_new0(Sal,1);
sal->keepalive_period=30;
sal->double_reg=TRUE;
+ sal->use_rports=TRUE;
return sal;
}
eXosip_set_option(13,&err); /*13=EXOSIP_OPT_SRV_WITH_NAPTR, as it is an enum value, we can't use it unless we are sure of the
version of eXosip, which is not the case*/
/*see if it looks like an IPv6 address*/
+ eXosip_set_option(EXOSIP_OPT_USE_RPORT,&ctx->use_rports);
ipv6=strchr(addr,':')!=NULL;
eXosip_enable_ipv6(ipv6);
ctx->double_reg=enabled;
}
+void sal_use_rport(Sal *ctx, bool_t use_rports){
+ ctx->use_rports=use_rports;
+}
+
static int extract_received_rport(osip_message_t *msg, const char **received, int *rportval){
osip_via_t *via=NULL;
osip_generic_param_t *param=NULL;
void *up;
bool_t one_matching_codec;
bool_t double_reg;
+ bool_t use_rports;
};
struct SalOp{
eXosip_lock();
eXosip_subscribe_build_initial_request(&msg,sal_op_get_to(op),sal_op_get_from(op),
sal_op_get_route(op),"presence",600);
- if (msg!=NULL){
+ if (msg==NULL){
ms_error("Could not build subscribe request to %s",to);
eXosip_unlock();
return -1;