Hi,

I have a basic yet weird problem with Rtimer module.
I cannot make it execute a route block for me at an interval of my choice (which is what it is supposed to do, right?)

Here is a simplified example with relevant parts of my config script:

Assume I want to print "hello" every 100 ms:

I have a script like this (I've put all my global variables, in case they matter and my relevant route blocks...)

Is there anything I am doing wrong here in the usage of rtimer?



####### Global Parameters #########

#!ifdef WITH_DEBUG
debug=4
log_stderror=yes
#!else
debug=-2
log_stderror=no
#!endif

memdbg=5
memlog=5

log_facility=LOG_LOCAL0

fork=yes
children=4

/* comment the next line to enable TCP */
disable_tcp=yes

/* uncomment the next line to disable the auto discovery of local aliases
   based on revers DNS on IPs (default on) */
auto_aliases=no

/* add local domain aliases */
# alias="mysipserver.com"
dns=no          # (cmd. line: -r)
rev_dns=no      # (cmd. line: -R)

port=5060

/* uncomment and configure the following line if you want Kamailio to
   bind on a specific interface/port/proto (default bind on all available) */
listen=eth0:5060

sip_warning=no

####### Modules Section ########

#set module path
#mpath="/usr/local/lib/kamailio/modules_k/:/usr/local/lib/kamailio/modules/"
loadpath "/usr/lib/x86_64-linux-gnu/kamailio/modules"


#loadmodule "db_mysql.so"
loadmodule "mi_fifo.so"
loadmodule "kex.so"
loadmodule "tm.so"
loadmodule "tmx.so"
loadmodule "sl.so"
loadmodule "rr.so"
loadmodule "pv.so"
loadmodule "maxfwd.so"
loadmodule "textops.so"
loadmodule "siputils.so"
loadmodule "xlog.so"
loadmodule "xprint.so"
loadmodule "sanity.so"
loadmodule "ctl.so"
loadmodule "mi_rpc.so"
loadmodule "acc.so"
loadmodule "dispatcher.so"
loadmodule "exec.so"
loadmodule "rtimer.so"
loadmodule "benchmark.so"


# ----------------- setting module-specific parameters ---------------


# ----- mi_fifo params -----
modparam("mi_fifo", "fifo_name", "/tmp/kamailio_fifo")


# ----- rr params -----
# add value to ;lr param to cope with most of the UAs
modparam("rr", "enable_full_lr", 1)
# do not append from tag to the RR (no need for this script)
modparam("rr", "append_fromtag", 0)


# ----- acc params -----
modparam("acc", "log_flag", 1)
modparam("acc", "failed_transaction_flag", 3)
modparam("acc", "log_extra",
    "src_user=$fU;src_domain=$fd;dst_ouser=$tU;dst_user=$rU;dst_domain=$rd;src_ip=$si")

# ----- tm params -----
modparam("tm", "fr_timer", 2000)
modparam("tm", "fr_inv_timer", 40000)

# ----- dispatcher params -----
modparam("dispatcher", "list_file", "/home/ubuntu/Downloads/dispatcher.list")
modparam("dispatcher", "flags", 2)
modparam("dispatcher", "dst_avp", "$avp(AVP_DST)")
modparam("dispatcher", "grp_avp", "$avp(AVP_GRP)")
modparam("dispatcher", "cnt_avp", "$avp(AVP_CNT)")

# ----- xlog params -----
modparam("xlog", "buf_size", 8192)
modparam("xlog", "log_facility", "LOG_LOCAL0")

# ----- rtimer params -----
modparam("rtimer", "timer", "name=ta;interval=1;mode=1;")
modparam("rtimer", "exec", "timer=ta;route=8")


####### Routing Logic ########


# main request routing logic
route {
    ...
    # calls various routing blocks, but no explicit call to route("8")

}

route[8] {
    # to be executed on timer   
    xplog("L_ALERT","hello");
}