[OpenSIPS-Users] sstCheckMin("1") doesn't enter the block when returns 1

Iñaki Baz Castillo ibc at aliax.net
Thu Nov 27 02:32:00 CET 2008


El Jueves, 27 de Noviembre de 2008, Iñaki Baz Castillo escribió:
> Hi, "sst" doc has an example:
>   http://www.opensips.org/html/docs/modules/devel/sst.html#id2503829
>
> 	if (sstCheckMin("1")) {
>                 xlog("L_ERR", "422 Session Timer Too Small reply sent.\n");
>                 exit;
>         }
>
> Well, this is not what I see. When the request has a Session-Expires lower
> than "min_se" and "reject_to_small" = 1, OpenSIPS replies a 422, but the
> block code is not executed and the script continues (for example doing a
> normal routing/lookup).
>
> My "sst" configuration:
>
>   modparam("sst", "min_se", 40)
>   modparam("sst", "reject_to_small", 1)
>   modparam("sst", "sst_flag", FLAG_SST)
>
> Is it normal?
>
> PD: Could I understand the purpose of "reject_to_small" parameter and how
> it affects on "sstCheckMin()" function?

I'm doing some tests and I'm really tired, Ive got no conclusion (except 
perphas that the module doens't work properly?) The block for:
  if sstCheckMin("1") {
    # block
  }
is never runned, even if parameter is 1/0, "reject_to_small" is 1/0 and, of 
course, the request has Session-Expires: X (being X minor than "min_se").

If "reject_to_small" is 1 and the SST flag is set, then 422 is *alway* replied 
by OpenSIPS even if "sstCheckMin()" is called with param 1 or 0. And again: 
the code block of "if sstCheckMin() {..." is *never* runned.

If "reject_to_small" is 0, then 422 is never sent automatically, and there is 
no way of doing it manually since, again, "sstCheckMin(1/0)" returns no 
true/false.... how to explain:


a)
----------
modparam("sst", "reject_to_small", 1)
...
xlog("L_INFO", "\n\n########## starting SST...... ###########\n");
sstCheckMin("1");
xlog("L_INFO", "********** sstCheckMin: $rc ***********\n");
setflag(FLAG_SST);
-----------

This generates 422 and the log:
---------
########## starting SST...... ###########
********** sstCheckMin: 18446744073709551615 ***********
---------


b)
----------
modparam("sst", "reject_to_small", 1)
...
xlog("L_INFO", "\n\n########## starting SST...... ###########\n");
sstCheckMin("0");
xlog("L_INFO", "********** sstCheckMin: $rc ***********\n");
setflag(FLAG_SST);
-----------

Exaclty the SAME. This generates 422 and the log:
---------
########## starting SST...... ###########
********** sstCheckMin: 18446744073709551615 ***********
---------


c)
----------
modparam("sst", "reject_to_small", 0)
...
xlog("L_INFO", "\n\n########## starting SST...... ###########\n");
sstCheckMin("1");
xlog("L_INFO", "********** sstCheckMin: $rc ***********\n");
setflag(FLAG_SST);
-----------

This DOES NOT generate 422, and the log:
---------
########## starting SST...... ###########
********** sstCheckMin: 18446744073709551615 ***********
---------


d)
----------
modparam("sst", "reject_to_small", 0)
...
xlog("L_INFO", "\n\n########## starting SST...... ###########\n");
sstCheckMin("0");
xlog("L_INFO", "********** sstCheckMin: $rc ***********\n");
setflag(FLAG_SST);
-----------

Exaclty the SAME. NO 422 and the log:
---------
########## starting SST...... ###########
********** sstCheckMin: 18446744073709551615 ***********
---------



And when using "if sstCheckMin() { block }" I've **never** got running the 
block code, never.

Am I doing something wrong?

Thanks.


-- 
Iñaki Baz Castillo



More information about the Users mailing list