name mode size
..
doc 040000
Makefile 100644 232B
README 100644 3.73kB
rtimer_mod.c 100644 8.76kB
README
RTimer Module Daniel-Constantin Mierla asipto.com <miconda@gmail.com> Edited by Daniel-Constantin Mierla <miconda@gmail.com> Copyright © 2009 http://www.asipto.com __________________________________________________________________ Table of Contents 1. Admin Guide 1. Overview 2. Dependencies 2.1. Kamailio Modules 2.2. External Libraries or Applications 3. Parameters 3.1. timer (str) 3.2. exec (str) List of Examples 1.1. Set timer parameter 1.2. Set exec parameter 1.3. Use exec parameter with a Kemi engine Chapter 1. Admin Guide Table of Contents 1. Overview 2. Dependencies 2.1. Kamailio Modules 2.2. External Libraries or Applications 3. Parameters 3.1. timer (str) 3.2. exec (str) 1. Overview The module executes route blocks on a timer base. It can create new timer processes and execute many route blocks on same timer. A static faked SIP message is given as parameter to called functions, so all functions available for REQUEST_ROUTE can be used. 2. Dependencies 2.1. Kamailio Modules 2.2. External Libraries or Applications 2.1. Kamailio Modules The following modules must be loaded before this module: * No dependencies on other Kamailio modules. 2.2. External Libraries or Applications The following libraries or applications must be installed before running Kamailio with this module loaded: * None. 3. Parameters 3.1. timer (str) 3.2. exec (str) 3.1. timer (str) The definition of a timer. The value of the parameter must have the following format: * "name=_string_;mode=_number_;interval=_number_" The parameter can be set multiple times to get more timers in same configuration file. * name - name of the timer. * mode - if set to 0, the timer will use the main (shared) timer. Any number > 0 will create the specified amount of new timer processes (which will only be handling this timer). * interval - timer interval in seconds or micro-seconds (the value must be ended in 'u'). For micro-seconds intervals, mode is set always to 1. Default value is NULL. Example 1.1. Set timer parameter ... # time interval set to 10 seconds modparam("rtimer", "timer", "name=ta;interval=10;mode=1;") # time interval set to 100 mili-seconds modparam("rtimer", "timer", "name=ta;interval=100000u;mode=1;") ... 3.2. exec (str) Specify route to be executed on timer. The value of the parameter must have the following format: * "timer=_string_;route=_number_" The parameter can be set multiple times to get more routes executed on same timer. * timer - name of the timer. * route - the name of the route block to be executed, or the name of the function from kemi script. The kemi function receives a string parameter with the value being the name of the module. Default value is NULL. Example 1.2. Set exec parameter ... modparam("rtimer", "timer", "name=ta;interval=10;mode=1;") modparam("rtimer", "exec", "timer=ta;route=ONTIMER") route[ONTIMER] { xlog("timer routine: time is $TF\n"); # delete from my sql cache table entries older than 2H sql_query("delete from kamailio_cache where last_updated<$TS-3600"); } ... Example 1.3. Use exec parameter with a Kemi engine ... modparam("rtimer", "timer", "name=ta;interval=10;mode=1;") modparam("rtimer", "exec", "timer=ta;route=ksr_rtimer") ... -- rtimer event callback function implemented in Lua function ksr_rtimer(evname) KSR.info("===== rtimer module triggered event\n"); return 1; end ...