lc->sip_conf.keepalive_period=lp_config_get_int(lc->config,"sip","keepalive_period",10000);
sal_set_keepalive_period(lc->sal,lc->sip_conf.keepalive_period);
sal_use_one_matching_codec_policy(lc->sal,lp_config_get_int(lc->config,"sip","only_one_codec",0));
+ sal_use_double_registrations(lc->sal,lp_config_get_int(lc->config,"sip","use_double_registrations",1));
}
static void rtp_config_read(LinphoneCore *lc)
* */
unsigned int sal_get_keepalive_period(Sal *ctx);
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);
int sal_iterate(Sal *sal);
MSList * sal_get_pending_auths(Sal *sal);
eXosip_init();
sal=ms_new0(Sal,1);
sal->keepalive_period=30;
+ sal->double_reg=TRUE;
return sal;
}
return ms_list_copy(sal->pending_auths);
}
+void sal_use_double_registrations(Sal *ctx, bool_t enabled){
+ ctx->double_reg=enabled;
+}
+
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;
char *tmp;
char port[20];
SalAddress *addr;
+ Sal *sal=op->base.root;
+
+ if (sal->double_reg==FALSE) return FALSE;
if (extract_received_rport(last_answer,&received,&rport)==-1) return FALSE;
osip_message_get_contact(orig_request,0,&ctt);
int keepalive_period;
void *up;
bool_t one_matching_codec;
+ bool_t double_reg;
};
struct SalOp{