Hi,
I'd like to implement a couple of helper functions for time handling, e.g. checking day of week, day of month etc. from within the kamailio config file. What would you prefer, a new module ("timeutils" maybe?) or adding it to cfgutils (there are already time-based functions there like sleep and usleep)?
The idea is to implement time based call-forwards, and an approach could be to provision various time-related values in usr_preferences table, and then check it in the config. For example, when doing call-forwards from Monday to Friday only, I could put this into usr_preferences:
attribute: cf_weekday value: [1, 2, 3, 4, 5] (each entry is a separate row in usr_preferences)
And in kamailio config, I'd call this:
avp_db_load(...); if(is_weekday("$avp(s:cf_weekday)")) { do CF }
So is_weekday would iterate over the entries in the avp list and return true if the weekday at the time of routing matches an entry in the list. A module config param could control whether to use gmtime or localtime for matching.
Does this make sense? Suggestions for other approaches? I'd rather prefer to do it directly in config instead of using some external interpreter like lua, python etc.
Andreas