[SR-Users] Unexpected behavior on tmrec with monthly recurrence

Daniel-Constantin Mierla miconda at gmail.com
Mon Mar 2 17:56:20 CET 2020


Thanks for troubleshooting further and reporting back. I actually looked
a bit to the code and indeed the months seems to be 0-11.

Can you check if the code matches with the one in cpl-c module. The
tmrec library I wrote long time ago was embedded in cplc back in the
days of 2003-2005, inside the file src/modules/cplc/cpl_time.c.

Later when other modules were added needing time recurrence matching,
another clone of tmrec library was made internal lib for kamailio (in
master now is src/core/utils/tmrec.c, older stable should be
src/lib/srutils/tmrec.c), but maybe some bugs were fixed in cpl-c
module, as it was quite used in the past, and not propagated to the
stand alone lib.

Cheers,
Daniel

On 02.03.20 17:48, David Gonçalves wrote:
> During our tests with yearly scenarios, we think we found two
> unexpected behaviors.
>
> First, on the documentation, it is indicated that months can have a
> value between 1-12. However, we think that acceptable values can be
> between 0-11.
>
> Second, we tested a yearly recurrence on the last day of the month
> (e.g., 31 of December, 30 of November). With a valid timestamp, we
> always obtain not match on tmrec.
> We tested the penultimate day of the month (e.g., 30 of December, 29
> of November) and, both days work with a valid timestamp.
>
> With these scenarios, it seems that the monthly and yearly problems
> always occur with the last occurrence of an event.
>
> On Tue, Feb 25, 2020 at 11:56 AM David Gonçalves
> <david.goncalves at itcenter.com.pt
> <mailto:david.goncalves at itcenter.com.pt>> wrote:
>
>     Hi,
>
>     During some tests with the module tmrec, we stumble upon an
>     unexpected behavior of the monthly recurrence with days of the week.
>     The last week does not match our expected date.
>     For example, the last  Monday of  March 2020 is day 30 (fifth
>     Monday of the month) however, neither the 5MO or -1MO
>     configuration on the bday parameter match with a timestamp
>     configured to day 30. The same situation is verified on months
>     with only 4 weeks.
>
>     To easily explain the behavior we create this configuration:
>
>     $var(ts)="1584355625"; # Monday, March 16, 2020 10:47:05
>     if(tmrec_match("20200101T090000|PT8H|monthly||1|3MO||||","$(var(ts){s.int
>     <http://s.int>})")) {
>         xlog("L_INFO","Epoch $var(ts) matches with 3MO\n");
>     }else{
>         xlog("L_INFO","Epoch $var(ts) doesn't match with 3MO\n");
>     }
>
>     $var(ts)="1584960425"; #  Monday, March 23, 2020 10:47:05
>     if(tmrec_match("20200101T090000|PT8H|monthly||1|4MO||||","$(var(ts){s.int
>     <http://s.int>})")) {
>         xlog("L_INFO","Epoch $var(ts) matches with 4MO\n");
>     }else{
>         xlog("L_INFO","Epoch $var(ts) doesn't match with 4MO\n");
>     }
>
>     $var(ts)="1585565225"; #  Monday, March 30, 2020 10:47:05
>     if(tmrec_match("20200101T090000|PT8H|monthly||1|5MO||||","$(var(ts){s.int
>     <http://s.int>})")){
>         xlog("L_INFO","Epoch $var(ts) matches with 5MO\n");
>     }else{
>         xlog("L_INFO","Epoch $var(ts) doesn't match with 5MO\n");
>     }
>
>     $var(ts)="1584960425"; #  Monday, March 23, 2020 10:47:05
>     if(tmrec_match("20200101T090000|PT8H|monthly||1|-1MO||||","$(var(ts){s.int
>     <http://s.int>})")){
>         xlog("L_INFO","Epoch $var(ts) matches with -1MO\n");
>     }else{
>         xlog("L_INFO","Epoch $var(ts) doesn't match with -1MO\n");
>     }
>      
>     The results were:
>     Epoch 1584355625 matches with 3MO
>     Epoch 1584960425 matches with 4MO
>     Epoch 1585565225 doesn't match with 5MO
>     Epoch 1584960425 matches with -1MO
>
>     Are we configuring the tmrec_match wrongly?
>
>     -- 
>
>
>     Cumprimentos / Best regards,
>
>     *David Gonçalves*
>     Research and Development Technician
>
>     Phone: +351 256 370 980
>     Email:david.goncalves at itcenter.com.pt
>     <mailto:david.goncalves at itcenter.com.pt>
>
>
>
>
>
>
> -- 
>
>
> Cumprimentos / Best regards,
>
> *David Gonçalves*
> Research and Development Technician
>
> Phone: +351 256 370 980
> Email:david.goncalves at itcenter.com.pt
> <mailto:david.goncalves at itcenter.com.pt>
>
>
>
>
>
> _______________________________________________
> Kamailio (SER) - Users Mailing List
> sr-users at lists.kamailio.org
> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users

-- 
Daniel-Constantin Mierla -- www.asipto.com
www.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - March 9-11, 2020, Berlin - www.asipto.com
Kamailio World Conference - April 27-29, 2020, in Berlin -- www.kamailioworld.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20200302/c2f5934b/attachment.html>


More information about the sr-users mailing list