diff --git a/src/modules/registrar/sip_msg.c b/src/modules/registrar/sip_msg.c index d2dfba0aee2..802435865fe 100644 --- a/src/modules/registrar/sip_msg.c +++ b/src/modules/registrar/sip_msg.c @@ -277,10 +277,6 @@ void calc_contact_expires(struct sip_msg* _m, param_t* _ep, int* _e, int novaria if ( *_e != 0 ) { - if (!novariation) { - *_e = randomize_expires( *_e, range ); - } - if (*_e < cfg_get(registrar, registrar_cfg, min_expires)) { if(reg_min_expires_mode) { rerrno = R_LOW_EXP; @@ -290,6 +286,13 @@ void calc_contact_expires(struct sip_msg* _m, param_t* _ep, int* _e, int novaria } } + if (!novariation) { + *_e = randomize_expires( *_e, range ); + if (*_e < cfg_get(registrar, registrar_cfg, min_expires)) { + *_e = cfg_get(registrar, registrar_cfg, min_expires); + } + } + if (cfg_get(registrar, registrar_cfg, max_expires) && (*_e > cfg_get(registrar, registrar_cfg, max_expires))) { *_e = cfg_get(registrar, registrar_cfg, max_expires); }