File: README

package info (click to toggle)
kamailio 4.2.0-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 56,100 kB
  • sloc: ansic: 552,832; xml: 166,484; sh: 8,659; makefile: 7,676; sql: 6,235; perl: 3,487; yacc: 3,428; python: 1,457; cpp: 1,219; php: 1,047; java: 449; pascal: 194; cs: 40; awk: 27
file content (184 lines) | stat: -rw-r--r-- 4,450 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184

timer module

Tomas Mandys

   Iptel.org

   Copyright  2007 iptelorg GmbH
     _________________________________________________________________

   Table of Contents

   1. Admin Guide

        1. Overview
        2. Dependencies
        3. ABNF syntax
        4. Parameters

              4.1. declare_timer (string)

        5. Functions

              5.1. timer_enable(timer_id, enable_disable) 
              5.2. @timer.timer.timer_id.enabled 
              5.3. @timer.executed 

        6. Examples

   List of Examples

   1.1. Example declare_timer
   1.2. timer_enable usage
   1.3. timer.timer.timer_id.enabled usage
   1.4. timer.executed usage
   1.5. timer common example
   1.6. Using timer module for testing a functionality

Chapter 1. Admin Guide

   Table of Contents

   1. Overview
   2. Dependencies
   3. ABNF syntax
   4. Parameters

        4.1. declare_timer (string)

   5. Functions

        5.1. timer_enable(timer_id, enable_disable) 
        5.2. @timer.timer.timer_id.enabled 
        5.3. @timer.executed 

   6. Examples

1. Overview

   The module supports triggering specific route block on timer.

2. Dependencies

   none

3. ABNF syntax

        timer_id = alphanum
        slow_fast = "slow" | "fast"
        declare_timer_syntax = timer_id "=" (route#|route_name) "," interval ",
" slow_fast "," ["enable"]
        enable_disable = "0" | "1"

4. Parameters

   4.1. declare_timer (string)

4.1. declare_timer (string)

   Declares timer route which will be called in specific interval.

   The format is:
                        declare_timer = declare_timer_syntax

   timer_id is timer identifier, route is handler to be called when timer
   is  triggered,  interval  is timer interval in milliseconds, slow_fast
   determines if handler will be hooked in slow or fast timer queue, fast
   timer  handler  returns as quickly as possible, slow timer handler may
   spend longer time, see ser/doc/timers.txt documentation. Use enable to
   enable timer when ser is starting, otherwise use timer_enable to start
   it later.

   Example 1.1. Example declare_timer
        ...
        modparam("timer", "declare_timer", "MY_TIMER=MY_TIMER_ROUTE,10,slow,ena
ble");
        ...

5. Functions

   5.1. timer_enable(timer_id, enable_disable) 
   5.2. @timer.timer.timer_id.enabled 
   5.3. @timer.executed 

5.1.  timer_enable(timer_id, enable_disable)

   Enable/disable  timer  route  specified  by timer_id. Because of timer
   core  API the callback is not disabled immediately but is removed from
   handler  by itself not to decrease performance. Disabling and enabling
   in  sequence  may  be tricky. timer_id references to timer declared by
   declare_timer.

   Example 1.2. timer_enable usage
        ...
        timer_enable("MY_TIMER", 1);
        ...

5.2.  @timer.timer.timer_id.enabled

   Return true ("1") if timer specified by timer_id is enabled, otherwise
   returns false ("0").

   Example 1.3. timer.timer.timer_id.enabled usage
        if (@timer.timer.MY_TIMER.enabled == "1") {
        ....
        }

5.3.  @timer.executed

   Returns name of timer which has been executed, i.e. non empty value is
   returned only when handler is being processed.

   Example 1.4. timer.executed usage
        if (@timer.executed != "") {
                # timer is being handled
        ....
        }

6. Examples

   Example 1.5. timer common example
loadmodule "modules/xprint/xprint.so"
loadmodule "modules/timer/timer.so"

modparam("timer", "declare_timer", "tmr1=ONTIMER,1000");
modparam("timer", "declare_timer", "tmr2=ONTIMER2,2000,slow,enable");

route["print"] {
        xplog("L_INFO", "fired: %@timer.executed\n");
}

route["ONTIMER"] {
        # do something
        route("print");}


route["ONTIMER2"] {
        # do something
        timer_enable("tmr1", 0);
        route("print");
}

   Example 1.6. Using timer module for testing a functionality

   The  timer  module may be used to test a functionality being developed
   and  not  requiring  real  request.A  developer may put tested code in
   route section which is called once after ser starts.
loadmodule "timer";
loadmodule "xprint";

modparam("timer", "declare_timer", "TIMER_TEST=TEST,100,,enable");

route {
        xplog("L_E","main route");
}

route[TEST] {
        timer_enable("TIMER_TEST", "0");
        xplog("L_E","test start\n");

        # add here tested functionality

        xplog("L_E","test end\n");
}