Browse code

modules: readme files regenerated - modules ... [skip ci]

Kamailio Dev authored on 12/06/2017 15:16:33
Showing 18 changed files
... ...
@@ -854,11 +854,11 @@ modparam("acc", "log_missed_flag", 3)
854 854
 
855 855
    Log level at which accounting messages are issued to syslog.
856 856
 
857
-   Default value is L_NOTICE.
857
+   Default value is 1 (L_NOTICE).
858 858
 
859 859
    Example 1.12. log_level example
860 860
 ...
861
-modparam("acc", "log_level", 2)   # Set log_level to 2
861
+modparam("acc", "log_level", 2)   # Set log_level to 2 (L_INFO)
862 862
 ...
863 863
 
864 864
 6.13. log_facility (string)
... ...
@@ -1241,7 +1241,7 @@ modparam("acc", "cdrs_table", "acc_cdrs")
1241 1241
      * 0 - (default), save only unix timestamp for syslog and datetime for
1242 1242
        database.
1243 1243
      * 1 - save seconds in time_attr and microseconds in time_exten.
1244
-     * 2 - save seconds.miliseconds in time_attr.
1244
+     * 2 - save seconds.milliseconds in time_attr.
1245 1245
      * 3 - save formatted time according to time_format parameter, using
1246 1246
        the output of localtime().
1247 1247
      * 4 - save formatted time according to time_format parameter, using
... ...
@@ -1282,7 +1282,7 @@ modparam("acc", "time_attr", "seconds")
1282 1282
 
1283 1283
    Example 1.46. time_exten example
1284 1284
 ...
1285
-modparam("acc", "time_exten", "micorsecs")
1285
+modparam("acc", "time_exten", "microsecs")
1286 1286
 ...
1287 1287
 
1288 1288
 6.47. time_format (str)
... ...
@@ -36,7 +36,8 @@ Daniel-Constantin Mierla
36 36
 
37 37
         5. RPC Commands
38 38
 
39
-              5.1. app_jsrt.reload
39
+              5.1. app_jsdt.reload
40
+              5.2. app_jsdt.api_list
40 41
 
41 42
         6. Example of usage
42 43
 
... ...
@@ -71,7 +72,8 @@ Chapter 1. Admin Guide
71 72
 
72 73
    5. RPC Commands
73 74
 
74
-        5.1. app_jsrt.reload
75
+        5.1. app_jsdt.reload
76
+        5.2. app_jsdt.api_list
75 77
 
76 78
    6. Example of usage
77 79
 
... ...
@@ -194,12 +196,13 @@ if(!jsdt_runstring('KSR.dbg("Hello World from $fU\n")'))
194 196
 
195 197
 5. RPC Commands
196 198
 
197
-   5.1. app_jsrt.reload
199
+   5.1. app_jsdt.reload
200
+   5.2. app_jsdt.api_list
198 201
 
199
-5.1.  app_jsrt.reload
202
+5.1.  app_jsdt.reload
200 203
 
201 204
    Marks the need to reload the js script. The actual reload is done by
202
-   every working process when the next call to jsrt_run() function or KEMI
205
+   every working process when the next call to jsdt_run() function or KEMI
203 206
    config is executed.
204 207
 
205 208
    Name: app_jsdt.reload
... ...
@@ -208,7 +211,20 @@ if(!jsdt_runstring('KSR.dbg("Hello World from $fU\n")'))
208 211
 
209 212
    Example:
210 213
 ...
211
-kamcmd app_jsrt.reload
214
+kamcmd app_jsdt.reload
215
+...
216
+
217
+5.2.  app_jsdt.api_list
218
+
219
+   List the functions available via Kemi framework.
220
+
221
+   Name: app_jsdt.api_list
222
+
223
+   Parameters: none
224
+
225
+   Example:
226
+...
227
+kamcmd app_jsdt.api_list
212 228
 ...
213 229
 
214 230
 6. Example of usage
... ...
@@ -16,13 +16,14 @@ Andrei Pelinescu-Onciul
16 16
         3. Parameters
17 17
 
18 18
               3.1. binrpc (string)
19
-              3.2. mode (integer)
20
-              3.3. user (integer or string)
21
-              3.4. group (integer or string)
22
-              3.5. fifo (integer)
23
-              3.6. autoconversion (integer)
24
-              3.7. binrpc_max_body_size (integer)
25
-              3.8. binrpc_struct_max_body_size (integer)
19
+              3.2. binrpc_buffer_size (integer or string)
20
+              3.3. mode (integer)
21
+              3.4. user (integer or string)
22
+              3.5. group (integer or string)
23
+              3.6. fifo (integer)
24
+              3.7. autoconversion (integer)
25
+              3.8. binrpc_max_body_size (integer)
26
+              3.9. binrpc_struct_max_body_size (integer)
26 27
 
27 28
         4. RPC Functions
28 29
 
... ...
@@ -34,16 +35,17 @@ Andrei Pelinescu-Onciul
34 35
 
35 36
    1.1. kamcmd example usage
36 37
    1.2. Set binrpc parameter
37
-   1.3. Set mode parameter
38
-   1.4. Set user parameter
39
-   1.5. Set group parameter
40
-   1.6. Set fifo parameter
41
-   1.7. Set the autoconversion parameter
42
-   1.8. Set the binrpc_max_body_size parameter
43
-   1.9. Set the binrpc_struct_max_body_size parameter
44
-   1.10. print usage
45
-   1.11. ctl.connections usage
46
-   1.12. ctl.who usage
38
+   1.3. Set binrpc_buffer_size parameter
39
+   1.4. Set mode parameter
40
+   1.5. Set user parameter
41
+   1.6. Set group parameter
42
+   1.7. Set fifo parameter
43
+   1.8. Set the autoconversion parameter
44
+   1.9. Set the binrpc_max_body_size parameter
45
+   1.10. Set the binrpc_struct_max_body_size parameter
46
+   1.11. print usage
47
+   1.12. ctl.connections usage
48
+   1.13. ctl.who usage
47 49
 
48 50
 Chapter 1. Admin Guide
49 51
 
... ...
@@ -54,13 +56,14 @@ Chapter 1. Admin Guide
54 56
    3. Parameters
55 57
 
56 58
         3.1. binrpc (string)
57
-        3.2. mode (integer)
58
-        3.3. user (integer or string)
59
-        3.4. group (integer or string)
60
-        3.5. fifo (integer)
61
-        3.6. autoconversion (integer)
62
-        3.7. binrpc_max_body_size (integer)
63
-        3.8. binrpc_struct_max_body_size (integer)
59
+        3.2. binrpc_buffer_size (integer or string)
60
+        3.3. mode (integer)
61
+        3.4. user (integer or string)
62
+        3.5. group (integer or string)
63
+        3.6. fifo (integer)
64
+        3.7. autoconversion (integer)
65
+        3.8. binrpc_max_body_size (integer)
66
+        3.9. binrpc_struct_max_body_size (integer)
64 67
 
65 68
    4. RPC Functions
66 69
 
... ...
@@ -113,13 +116,14 @@ $ kamcmd ps
113 116
 3. Parameters
114 117
 
115 118
    3.1. binrpc (string)
116
-   3.2. mode (integer)
117
-   3.3. user (integer or string)
118
-   3.4. group (integer or string)
119
-   3.5. fifo (integer)
120
-   3.6. autoconversion (integer)
121
-   3.7. binrpc_max_body_size (integer)
122
-   3.8. binrpc_struct_max_body_size (integer)
119
+   3.2. binrpc_buffer_size (integer or string)
120
+   3.3. mode (integer)
121
+   3.4. user (integer or string)
122
+   3.5. group (integer or string)
123
+   3.6. fifo (integer)
124
+   3.7. autoconversion (integer)
125
+   3.8. binrpc_max_body_size (integer)
126
+   3.9. binrpc_struct_max_body_size (integer)
123 127
 
124 128
 3.1. binrpc (string)
125 129
 
... ...
@@ -156,7 +160,7 @@ loadmodule "ctl"
156 160
 # optional listen addresses, if no one is specified,
157 161
 # ctl will listen on unixs:/tmp/ser_ctl
158 162
 
159
-modparam("ctl", "binrpc", "unix:/tmp/kamailio_ctl") # default
163
+modparam("ctl", "binrpc", "unix:/var/run/kamailio/kamailio_ctl") # default
160 164
 modparam("ctl", "binrpc", "udp:localhost:2046")
161 165
 modparam("ctl", "binrpc", "tcp:localhost:2046")
162 166
 modparam("ctl", "binrpc", "unixd:/tmp/unix_dgram")  # unix datagram
... ...
@@ -167,38 +171,49 @@ modparam("ctl", "binrpc", "localhost:3000")         # udp
167 171
 modparam("ctl", "binrpc", "tcp:3012")               # tcp any , port 3012
168 172
 modparam("ctl", "binrpc", "udp:*:3012")             # udp any , port 3012
169 173
 
170
-3.2. mode (integer)
174
+3.2. binrpc_buffer_size (integer or string)
175
+
176
+   the size of the internal buffer.
177
+
178
+   Default: 1024.
179
+
180
+   Example 1.3. Set binrpc_buffer_size parameter
181
+            ...
182
+            modparam("ctl", "binrpc_buffer_size", 4096)
183
+            ...
184
+
185
+3.3. mode (integer)
171 186
 
172 187
    Permissions used for the created Unix sockets or for the fifo.
173 188
 
174 189
    Default: 0600.
175 190
 
176
-   Example 1.3. Set mode parameter
191
+   Example 1.4. Set mode parameter
177 192
 modparam("ctl", "mode", 0600) # permissions
178 193
 
179
-3.3. user (integer or string)
194
+3.4. user (integer or string)
180 195
 
181 196
    Username or uid used for the created Unix sockets or for the fifo.
182 197
 
183 198
    Default: not set (the user under which SER runs).
184 199
 
185
-   Example 1.4. Set user parameter
200
+   Example 1.5. Set user parameter
186 201
 ...
187 202
 modparam("ctl", "user", "andrei")
188 203
 ...
189 204
 
190
-3.4. group (integer or string)
205
+3.5. group (integer or string)
191 206
 
192 207
    Group name or gid used for the created Unix sockets or for the fifo.
193 208
 
194 209
    Default: not set (the group under which SER runs).
195 210
 
196
-   Example 1.5. Set group parameter
211
+   Example 1.6. Set group parameter
197 212
 ...
198 213
 modparam("ctl", "group", 100)
199 214
 ...
200 215
 
201
-3.5. fifo (integer)
216
+3.6. fifo (integer)
202 217
 
203 218
    fifo used for the obsolete fifo protocol. The fifo protocol can be run
204 219
    over a real fifo, over UDP or over TCP. Format:
... ...
@@ -210,7 +225,7 @@ modparam("ctl", "group", 100)
210 225
 
211 226
    Default: not set (no fifo will be used).
212 227
 
213
-   Example 1.6. Set fifo parameter
228
+   Example 1.7. Set fifo parameter
214 229
 ...
215 230
 # old fifo support
216 231
 modparam("ctl", "fifo", "fifo:/tmp/ser_fifo")      # clasic fifo
... ...
@@ -219,7 +234,7 @@ modparam("ctl", "fifo", "udp:*:2050")              # fifo protocol over udp
219 234
 modparam("ctl", "fifo", "tcp:*:2050")              # fifo over tcp
220 235
 ...
221 236
 
222
-3.6. autoconversion (integer)
237
+3.7. autoconversion (integer)
223 238
 
224 239
    Enable or disable automatic type conversion globally, for all the
225 240
    methods parameters. If on, a type mismatch in a method parameter will
... ...
@@ -233,31 +248,31 @@ modparam("ctl", "fifo", "tcp:*:2050")              # fifo over tcp
233 248
    or to modify the target rpc to accept any type (see the rpc scan '.'
234 249
    modifier).
235 250
 
236
-   Example 1.7. Set the autoconversion parameter
251
+   Example 1.8. Set the autoconversion parameter
237 252
 ...
238 253
 modparam("ctl", "autoconversion", 1)
239 254
 ...
240 255
 
241
-3.7. binrpc_max_body_size (integer)
256
+3.8. binrpc_max_body_size (integer)
242 257
 
243 258
    Set the size of binrpc buffer for RPC reply. Value represents
244 259
    kilobytes.
245 260
 
246 261
    Default: 32 (meaning 32KB);
247 262
 
248
-   Example 1.8. Set the binrpc_max_body_size parameter
263
+   Example 1.9. Set the binrpc_max_body_size parameter
249 264
 ...
250 265
 modparam("ctl", "binrpc_max_body_size", 16)
251 266
 ...
252 267
 
253
-3.8. binrpc_struct_max_body_size (integer)
268
+3.9. binrpc_struct_max_body_size (integer)
254 269
 
255 270
    Set the size of binrpc structure buffer for RPC reply. Value represents
256 271
    kilobytes.
257 272
 
258 273
    Default: 8 (meaning 8KB);
259 274
 
260
-   Example 1.9. Set the binrpc_struct_max_body_size parameter
275
+   Example 1.10. Set the binrpc_struct_max_body_size parameter
261 276
 ...
262 277
 modparam("ctl", "binrpc_struct_max_body_size", 4)
263 278
 ...
... ...
@@ -272,9 +287,9 @@ modparam("ctl", "binrpc_struct_max_body_size", 4)
272 287
 
273 288
    List all the sockets on which the ctl module listens.
274 289
 
275
-   Example 1.10. print usage
290
+   Example 1.11. print usage
276 291
  $ kamcmd -f"[%v] %v:%v %v\n" ctl.listen
277
-[binrpc] unix_stream:/tmp/kamailio_ctl
292
+[binrpc] unix_stream:/var/run/kamailio/kamailio_ctl
278 293
 
279 294
 # note: the above command is equivalent with kamcmd listen
280 295
 
... ...
@@ -282,7 +297,7 @@ modparam("ctl", "binrpc_struct_max_body_size", 4)
282 297
 
283 298
    Returns the number of open binrpc connections (to the ctl module).
284 299
 
285
-   Example 1.11. ctl.connections usage
300
+   Example 1.12. ctl.connections usage
286 301
  $ kamcmd ctl.connections
287 302
 1
288 303
 
... ...
@@ -290,8 +305,8 @@ modparam("ctl", "binrpc_struct_max_body_size", 4)
290 305
 
291 306
    List open binrpc connections (to the ctl module).
292 307
 
293
-   Example 1.12. ctl.who usage
308
+   Example 1.13. ctl.who usage
294 309
  $ kamcmd -f"[%v] %v: %v %v -> %v %v\n" ctl.who
295
-[binrpc] unix_stream: <anonymous unix socket>  -> /tmp/kamailio_ctl
310
+[binrpc] unix_stream: <anonymous unix socket>  -> /var/run/kamailio/kamailio_ctl
296 311
 
297 312
 # note the above command is equivalent to kamcmd who
... ...
@@ -1428,10 +1428,9 @@ redlg_setflag("1");
1428 1428
 
1429 1429
    Meaning of the parameters is as follows:
1430 1430
      * side - where to send the BYE. It can be: 'caller', 'callee', or
1431
-       both.
1431
+       'all' (send to both sides).
1432 1432
 
1433
-   This function can be used from BRANCH_ROUTE, REQUEST_ROUTE,
1434
-   ONREPLY_ROUTE and FAILURE_ROUTE.
1433
+   This function can be used from ANY_ROUTE.
1435 1434
 
1436 1435
    Example 1.63. dlg_bye usage
1437 1436
 ...
... ...
@@ -326,7 +326,7 @@ Chapter 1. Admin Guide
326 326
 
327 327
 3.1. list_file (string)
328 328
 
329
-   Path to the file with destination sets.
329
+   Path to the file with destination sets (destination groups).
330 330
 
331 331
    Default value is “/etc/kamailio/dispatcher.list” or
332 332
    “/usr/local/etc/kamailio/dispatcher.list”.
... ...
@@ -338,7 +338,7 @@ modparam("dispatcher", "list_file", "/var/run/kamailio/dispatcher.list")
338 338
 
339 339
 3.2. db_url (string)
340 340
 
341
-   If you want to load the sets of gateways from the database you must set
341
+   If you want to load the list of gateways from the database you must set
342 342
    this parameter.
343 343
 
344 344
    Default value is “NULL” (disable DB support).
... ...
@@ -350,7 +350,7 @@ modparam("dispatcher", "db_url", "mysql://user:passwb@localhost/database")
350 350
 
351 351
 3.3. table_name (string)
352 352
 
353
-   If you want to load the sets of gateways from the database you must set
353
+   If you want to load the list of gateways from the database you must set
354 354
    this parameter as the database name.
355 355
 
356 356
    Default value is “dispatcher”.
... ...
@@ -362,7 +362,7 @@ modparam("dispatcher", "table_name", "my_dispatcher")
362 362
 
363 363
 3.4. setid_col (string)
364 364
 
365
-   The column's name in the database storing the gateway's group id.
365
+   The column's name in the database storing the gateway's set (group) id.
366 366
 
367 367
    Default value is “setid”.
368 368
 
... ...
@@ -1207,8 +1207,8 @@ kamcmd dispatcher.ping_active 0
1207 1207
 6.1. Destination List File
1208 1208
 
1209 1209
    Each destination point must be on one line. First token is the set id
1210
-   (an integer value), followed by destination address (s string value in
1211
-   SIP URI format).
1210
+   (an integer value, also referenced by group id), followed by
1211
+   destination address (string value in full SIP URI format).
1212 1212
 
1213 1213
    Optionally, these fields can be followed by:
1214 1214
      * flags (listed by index - can be bitwise mask of values): 0 (value
... ...
@@ -1259,21 +1259,21 @@ setid(int) destination(sip uri) flags(int,opt) priority(int,opt) attrs(str,opt)
1259 1259
 
1260 1260
    Example 1.42. dispatcher list file
1261 1261
 ...
1262
-# $Id$
1263
-# dispatcher destination sets
1262
+#
1263
+# dispatcher destination sets (groups)
1264 1264
 #
1265 1265
 
1266 1266
 # line format
1267
-# setit(int) destination(sip uri) flags(int,opt) priority(int,opt) attributes(st
1267
+# setid(int) destination(sip uri) flags(int,opt) priority(int,opt) attributes(st
1268 1268
 r,opt)
1269 1269
 
1270 1270
 # proxies
1271
-2 sip:127.0.0.1:5080
1272
-2 sip:127.0.0.1:5082
1271
+2 sip:127.0.0.1:5080;transport=tcp 0 10 class=4;prefix=448;strip=2
1272
+2 sip:127.0.0.1:5082;px=vx 0 5 duid=abc;socket=udp:192.168.0.125:5060;pipe=p10
1273 1273
 
1274 1274
 # gateways
1275
-1 sip:127.0.0.1:7070
1276
-1 sip:127.0.0.1:7072
1275
+1 sip:127.0.0.1:7070 0 0 duid=xyz;maxload=20
1276
+1 sip:127.0.0.1:7072 0 5
1277 1277
 1 sip:127.0.0.1:7074
1278 1278
 
1279 1279
 ...
... ...
@@ -35,8 +35,8 @@ Juha Heinanen
35 35
 
36 36
               4.1. is_from_local()
37 37
               4.2. is_uri_host_local()
38
-              4.3. is_domain_local(pseudo_variable)
39
-              4.4. lookup_domain(domain[, prefix])
38
+              4.3. is_domain_local(domain)
39
+              4.4. lookup_domain(domain [, prefix])
40 40
 
41 41
         5. RPC Commands
42 42
 
... ...
@@ -89,8 +89,8 @@ Chapter 1. Admin Guide
89 89
 
90 90
         4.1. is_from_local()
91 91
         4.2. is_uri_host_local()
92
-        4.3. is_domain_local(pseudo_variable)
93
-        4.4. lookup_domain(domain[, prefix])
92
+        4.3. is_domain_local(domain)
93
+        4.4. lookup_domain(domain [, prefix])
94 94
 
95 95
    5. RPC Commands
96 96
 
... ...
@@ -223,8 +223,8 @@ modparam("domain", "register_myself", 1)
223 223
 
224 224
    4.1. is_from_local()
225 225
    4.2. is_uri_host_local()
226
-   4.3. is_domain_local(pseudo_variable)
227
-   4.4. lookup_domain(domain[, prefix])
226
+   4.3. is_domain_local(domain)
227
+   4.4. lookup_domain(domain [, prefix])
228 228
 
229 229
 4.1. is_from_local()
230 230
 
... ...
@@ -259,10 +259,10 @@ if (is_uri_host_local()) {
259 259
 };
260 260
 ...
261 261
 
262
-4.3. is_domain_local(pseudo_variable)
262
+4.3. is_domain_local(domain)
263 263
 
264
-   This function checks if the domain contained in the pseudo_variable is
265
-   local.
264
+   This function checks if the domain contained in the parameter is local.
265
+   The parameter can be a static string or contain pseduo-variables.
266 266
 
267 267
    This function is a generalized form of the is_from_local() and
268 268
    is_uri_host_local() functions, being able to completely replace them
... ...
@@ -278,28 +278,33 @@ if (is_uri_host_local()) {
278 278
 ...
279 279
 if (is_domain_local("$rd")) {
280 280
         ...
281
-};
281
+}
282
+if (is_domain_local("my.domain.com")) {
283
+        ...
284
+}
282 285
 if (is_domain_local("$fd")) {
283 286
         ...
284
-};
287
+}
285 288
 if (is_domain_local("$avp(some_avp_alias)")) {
286 289
         ...
287
-};
290
+}
288 291
 if (is_domain_local("$avp(i:850)")) {
289 292
         ...
290
-};
293
+}
291 294
 if (is_domain_local("$avp(s:some_avp)")) {
292 295
         ...
293
-};
296
+}
294 297
 ...
295 298
 
296
-4.4. lookup_domain(domain[, prefix])
299
+4.4. lookup_domain(domain [, prefix])
300
+
301
+   This function checks if domain given in domain argument is local and,
302
+   if so, adds attributes associated with domain's id (did) to AVPs. If
303
+   prefix argument (string) is given, names of attributes are prefixes by
304
+   it. In addition to attributes given in domain_attrs table, AVP named
305
+   did containing the did of domain is added.
297 306
 
298
-   This function checks if domain given in domain argument (pseudo
299
-   variable) is local and, if so, adds attributes associated with domain's
300
-   id (did) to AVPs. If prefix argument (string) is given, names of
301
-   attributes are prefixes by it. In addition to attributes given in
302
-   domain_attrs table, AVP did containing did of domain is added.
307
+   Both parameters can contain pseudo-variables.
303 308
 
304 309
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
305 310
    BRANCH_ROUTE, and LOCAL_ROUTE.
... ...
@@ -27,9 +27,9 @@ Otmar Lendl
27 27
 
28 28
         4. Functions
29 29
 
30
-              4.1. enum_query(["suffix"[,"service"]])
31
-              4.2. enum_pv_query("pvar"[,"suffix"[,"service"]])
32
-              4.3. i_enum_query(["suffix"[,"service"]])
30
+              4.1. enum_query(["suffix" [,"service"]])
31
+              4.2. enum_pv_query("pvar" [,"suffix" [,"service"]])
32
+              4.3. i_enum_query(["suffix" [,"service"]])
33 33
               4.4. is_from_user_enum()
34 34
 
35 35
    List of Examples
... ...
@@ -61,9 +61,9 @@ Chapter 1. Admin Guide
61 61
 
62 62
    4. Functions
63 63
 
64
-        4.1. enum_query(["suffix"[,"service"]])
65
-        4.2. enum_pv_query("pvar"[,"suffix"[,"service"]])
66
-        4.3. i_enum_query(["suffix"[,"service"]])
64
+        4.1. enum_query(["suffix" [,"service"]])
65
+        4.2. enum_pv_query("pvar" [,"suffix" [,"service"]])
66
+        4.3. i_enum_query(["suffix" [,"service"]])
67 67
         4.4. is_from_user_enum()
68 68
 
69 69
 1. Overview
... ...
@@ -224,12 +224,12 @@ modparam("enum", "bl_algorithm", "txt")
224 224
 
225 225
 4. Functions
226 226
 
227
-   4.1. enum_query(["suffix"[,"service"]])
228
-   4.2. enum_pv_query("pvar"[,"suffix"[,"service"]])
229
-   4.3. i_enum_query(["suffix"[,"service"]])
227
+   4.1. enum_query(["suffix" [,"service"]])
228
+   4.2. enum_pv_query("pvar" [,"suffix" [,"service"]])
229
+   4.3. i_enum_query(["suffix" [,"service"]])
230 230
    4.4. is_from_user_enum()
231 231
 
232
-4.1.  enum_query(["suffix"[,"service"]])
232
+4.1.  enum_query(["suffix" [,"service"]])
233 233
 
234 234
    The function performs an enum query and rewrites the Request-URI with
235 235
    the result of the query. See Section 1, “Overview” for more
... ...
@@ -241,6 +241,8 @@ modparam("enum", "bl_algorithm", "txt")
241 241
      * service - Service string to be used in the service field. String
242 242
        may contain pseudo variables.
243 243
 
244
+   Parameters can include pseudo-variables.
245
+
244 246
    This function can be used from REQUEST_ROUTE.
245 247
 
246 248
    Example 1.8. enum_query usage
... ...
@@ -265,11 +267,11 @@ enum_query("e164.arpa.","voice");
265 267
 enum_query("e164.arpa.","+sip+voice:sip");
266 268
 ...
267 269
 
268
-4.2.  enum_pv_query("pvar"[,"suffix"[,"service"]])
270
+4.2.  enum_pv_query("pvar" [,"suffix" [,"service"]])
269 271
 
270
-   The function performs an enum query on E.164 number stored in its
271
-   pseudo variable argument and rewrites the Request-URI with the result
272
-   of the query. See Section 1, “Overview” for more information.
272
+   The function performs an enum query on E.164 number stored in its first
273
+   argument and rewrites the Request-URI with the result of the query. See
274
+   Section 1, “Overview” for more information.
273 275
 
274 276
    Meaning of the parameters is as follows:
275 277
      * pvar - Pseudo variable that holds an E.164 number on which enum
... ...
@@ -277,6 +279,8 @@ enum_query("e164.arpa.","+sip+voice:sip");
277 279
      * suffix - Suffix to be appended to the domain name.
278 280
      * service - Service string to be used in the service field.
279 281
 
282
+   Parameters can include pseudo-variables.
283
+
280 284
    This function can be used from REQUEST_ROUTE.
281 285
 
282 286
    Example 1.9. enum_pv_query usage
... ...
@@ -301,13 +305,15 @@ enum_pv_query("$avp(i:100)","e164.arpa.","voice");
301 305
 enum_pv_query("$avp(i:100)","e164.arpa.","+sip+voice:sip");
302 306
 ...
303 307
 
304
-4.3.  i_enum_query(["suffix"[,"service"]])
308
+4.3.  i_enum_query(["suffix" [,"service"]])
305 309
 
306 310
    The function performs an enum query and rewrites the Request-URI with
307 311
    the result of the query. This the Infrastructure-ENUM version of
308 312
    enum_query(). The only difference to enum_query() is in the calculation
309 313
    of the FQDN where NAPTR records are looked for.
310 314
 
315
+   Parameters can include pseudo-variables.
316
+
311 317
    See
312 318
    ftp://ftp.rfc-editor.org/in-notes/internet-drafts/draft-haberler-carrie
313 319
    r-enum-01.txt for the rationale behind this function.
... ...
@@ -60,6 +60,7 @@ Ovidiu Sas
60 60
               4.12. keepalive_timeout (int)
61 61
               4.13. udpping_from_path (int)
62 62
               4.14. append_sdp_oldmediaip (int)
63
+              4.15. filter_server_id (int)
63 64
 
64 65
         5. Functions
65 66
 
... ...
@@ -104,19 +105,20 @@ Ovidiu Sas
104 105
    1.12. Set keepalive_timeout parameter
105 106
    1.13. Set udpping_from_path parameter
106 107
    1.14. Set append_sdp_oldmediaip parameter
107
-   1.15. fix_nated_contact usage
108
-   1.16. fix_nated_sdp usage
109
-   1.17. add_rcv_paramer usage
110
-   1.18. fix_nated_register usage
111
-   1.19. nat_uac_test usage
112
-   1.20. is_rfc1918 usage
113
-   1.21. add_contact_alias usage
114
-   1.22. handle_ruri_alias usage
115
-   1.23. set_contact_alias usage
116
-   1.24. $rr_count usage
117
-   1.25. $rr_top_count usage
118
-   1.26. nathelper.enable_ping usage
119
-   1.27. @nathelper.rewrite_contact usage
108
+   1.15. Set filter_server_id parameter
109
+   1.16. fix_nated_contact usage
110
+   1.17. fix_nated_sdp usage
111
+   1.18. add_rcv_paramer usage
112
+   1.19. fix_nated_register usage
113
+   1.20. nat_uac_test usage
114
+   1.21. is_rfc1918 usage
115
+   1.22. add_contact_alias usage
116
+   1.23. handle_ruri_alias usage
117
+   1.24. set_contact_alias usage
118
+   1.25. $rr_count usage
119
+   1.26. $rr_top_count usage
120
+   1.27. nathelper.enable_ping usage
121
+   1.28. @nathelper.rewrite_contact usage
120 122
 
121 123
 Chapter 1. Admin Guide
122 124
 
... ...
@@ -145,6 +147,7 @@ Chapter 1. Admin Guide
145 147
         4.12. keepalive_timeout (int)
146 148
         4.13. udpping_from_path (int)
147 149
         4.14. append_sdp_oldmediaip (int)
150
+        4.15. filter_server_id (int)
148 151
 
149 152
    5. Functions
150 153
 
... ...
@@ -242,6 +245,7 @@ Chapter 1. Admin Guide
242 245
    4.12. keepalive_timeout (int)
243 246
    4.13. udpping_from_path (int)
244 247
    4.14. append_sdp_oldmediaip (int)
248
+   4.15. filter_server_id (int)
245 249
 
246 250
 4.1. force_socket (string)
247 251
 
... ...
@@ -444,6 +448,18 @@ modparam("nathelper", "udpping_from_path", 1)
444 448
 modparam("nathelper", "append_sdp_oldmediaip", 1)
445 449
 ...
446 450
 
451
+4.15. filter_server_id (int)
452
+
453
+   Filter contacts by “server_id” core parameter. Use this parameter to
454
+   limit pinging. When set to “1”, only proxy instances which send packets
455
+   are those where core server_id matches server_id saved in usrloc.
456
+   Default value is “0” (disabled).
457
+
458
+   Example 1.15. Set filter_server_id parameter
459
+...
460
+modparam("nathelper", "filter_server_id", 1)
461
+...
462
+
447 463
 5. Functions
448 464
 
449 465
    5.1. fix_nated_contact()
... ...
@@ -464,7 +480,7 @@ modparam("nathelper", "append_sdp_oldmediaip", 1)
464 480
    This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,
465 481
    BRANCH_ROUTE.
466 482
 
467
-   Example 1.15. fix_nated_contact usage
483
+   Example 1.16. fix_nated_contact usage
468 484
 ...
469 485
 if (search("User-Agent: Cisco ATA.*") {fix_nated_contact();};
470 486
 ...
... ...
@@ -494,7 +510,7 @@ if (search("User-Agent: Cisco ATA.*") {fix_nated_contact();};
494 510
    This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,
495 511
    FAILURE_ROUTE, BRANCH_ROUTE.
496 512
 
497
-   Example 1.16. fix_nated_sdp usage
513
+   Example 1.17. fix_nated_sdp usage
498 514
 ...
499 515
 if (search("User-Agent: Cisco ATA.*") {fix_nated_sdp("3");};
500 516
 ...
... ...
@@ -516,7 +532,7 @@ if (search("User-Agent: Cisco ATA.*") {fix_nated_sdp("3");};
516 532
 
517 533
    This function can be used from REQUEST_ROUTE.
518 534
 
519
-   Example 1.17. add_rcv_paramer usage
535
+   Example 1.18. add_rcv_paramer usage
520 536
 ...
521 537
 add_rcv_param(); # add the parameter to the Contact header
522 538
 ....
... ...
@@ -536,7 +552,7 @@ add_rcv_param("1"); # add the parameter to the Contact URI
536 552
 
537 553
    This function can be used from REQUEST_ROUTE.
538 554
 
539
-   Example 1.18. fix_nated_register usage
555
+   Example 1.19. fix_nated_register usage
540 556
 ...
541 557
 fix_nated_register();
542 558
 ...
... ...
@@ -570,7 +586,7 @@ fix_nated_register();
570 586
    This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,
571 587
    FAILURE_ROUTE, BRANCH_ROUTE.
572 588
 
573
-   Example 1.19. nat_uac_test usage
589
+   Example 1.20. nat_uac_test usage
574 590
 ...
575 591
 if(nat_uac_test("19")) {
576 592
     rtpproxy_manage("co");
... ...
@@ -584,7 +600,7 @@ if(nat_uac_test("19")) {
584 600
 
585 601
    This function can be used from ANY_ROUTE.
586 602
 
587
-   Example 1.20. is_rfc1918 usage
603
+   Example 1.21. is_rfc1918 usage
588 604
 ...
589 605
 if(is_rfc1918("$rd")) {
590 606
     # domain in r-uri is private address
... ...
@@ -601,7 +617,7 @@ if(is_rfc1918("$rd")) {
601 617
    This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,
602 618
    BRANCH_ROUTE, and LOCAL_ROUTE.
603 619
 
604
-   Example 1.21. add_contact_alias usage
620
+   Example 1.22. add_contact_alias usage
605 621
 ...
606 622
     if (!is_present_hf("Record-Route")) {
607 623
         if (!add_contact_alias("$var(src_ip)", "$Rp", "tcp")) {
... ...
@@ -628,7 +644,7 @@ if(is_rfc1918("$rd")) {
628 644
    This function can be used from REQUEST_ROUTE, BRANCH_ROUTE, and
629 645
    LOCAL_ROUTE.
630 646
 
631
-   Example 1.22. handle_ruri_alias usage
647
+   Example 1.23. handle_ruri_alias usage
632 648
 ...
633 649
     if ($du == "") {
634 650
         handle_ruri_alias();
... ...
@@ -657,7 +673,7 @@ if(is_rfc1918("$rd")) {
657 673
    This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,
658 674
    BRANCH_ROUTE, and FAILURE_ROUTE.
659 675
 
660
-   Example 1.23. set_contact_alias usage
676
+   Example 1.24. set_contact_alias usage
661 677
 ...
662 678
     if (!is_present_hf("Record-Route")) {
663 679
         if (!set_contact_alias()) {
... ...
@@ -677,7 +693,7 @@ if(is_rfc1918("$rd")) {
677 693
 
678 694
    Number of Record Routes in received SIP request or reply.
679 695
 
680
-   Example 1.24. $rr_count usage
696
+   Example 1.25. $rr_count usage
681 697
 ...
682 698
     $avp(rr_count) = $rr_count;
683 699
 ...
... ...
@@ -689,7 +705,7 @@ if(is_rfc1918("$rd")) {
689 705
    value of $rr_top_count is 1. If there is no Record Route(s), value of
690 706
    $rr_top_count is 0.
691 707
 
692
-   Example 1.25. $rr_top_count usage
708
+   Example 1.26. $rr_top_count usage
693 709
 ...
694 710
     if ($rr_count == $avp(rr_count) + $rr_top_count) {
695 711
         route(ADD_CONTACT_ALIAS);
... ...
@@ -707,7 +723,7 @@ if(is_rfc1918("$rd")) {
707 723
 
708 724
    The function takes only one parameter - a number in decimal format.
709 725
 
710
-   Example 1.26. nathelper.enable_ping usage
726
+   Example 1.27. nathelper.enable_ping usage
711 727
 ...
712 728
 $ kamcmd nathelper.enable_ping 1
713 729
 ...
... ...
@@ -722,7 +738,7 @@ $ kamcmd nathelper.enable_ping 1
722 738
    counted from 1. Only IP:port is rewritten, remaining part are left
723 739
    unchanged. Full nameaddr is supported.
724 740
 
725
-   Example 1.27. @nathelper.rewrite_contact usage
741
+   Example 1.28. @nathelper.rewrite_contact usage
726 742
 ...
727 743
 $c = @nathelper.rewrite_contact[1];
728 744
 ...
... ...
@@ -351,7 +351,7 @@ kamcmd cfg.set_now_string pipelimit reply_reason "Limiting"
351 351
        ratelimit module for details on each algorithm.
352 352
      * limit - the integer or pseudovariable with the limit value.
353 353
 
354
-   This function can be used from REQUEST_ROUTE.
354
+   This function can be used from ANY_ROUTE.
355 355
 
356 356
    Example 1.12. pl_check usage
357 357
 ...
... ...
@@ -419,7 +419,8 @@ with unexpected retcode=$var(check_result)\n");
419 419
      * min - the minimum value of "Retry-After" header.
420 420
      * max - the maximum value of "Retry-After" header.
421 421
 
422
-   This function can be used from REQUEST_ROUTE.
422
+   This function can be used from
423
+   REQUEST_ROUTE|BRANCH_ROUTE|FAILURE_ROUTE|ONSEND_ROUTE.
423 424
 
424 425
    Example 1.13. pl_drop usage
425 426
 ...
... ...
@@ -879,12 +879,14 @@ if(method=="SUBSCRIBE")
879 879
 
880 880
 4.3.  pres_auth_status(watcher_uri, presentity_uri)
881 881
 
882
-   The function checks if watcher is authorized to subscribe event
883
-   'presence' of presentity. Both watcher_uri and presentity_uri are
884
-   pseudo variables. Function returns ACTIVE_STATUS, if subscription is
885
-   allowed and PENDING_STATUS, TERMINATED_STATUS, or WAITING_STATUS
886
-   otherwise. See presence/subscribe.h for the corresponding integer
887
-   codes. In case of error, function returns -1.
882
+   The function checks if watcher URI is authorized to subscribe event
883
+   'presence' of presentity URI. Both watcher_uri and presentity_uri can
884
+   be static strings or contain pseudo variables.
885
+
886
+   The function returns ACTIVE_STATUS, if subscription is allowed, and
887
+   PENDING_STATUS, TERMINATED_STATUS, or WAITING_STATUS otherwise. See
888
+   presence/subscribe.h for the corresponding integer codes. In case of
889
+   error, function returns -1.
888 890
 
889 891
    This function can be used from REQUEST_ROUTE.
890 892
 
... ...
@@ -51,7 +51,7 @@ Hendrik Scholz
51 51
         6. Functions
52 52
 
53 53
               6.1. rl_check([pvar])
54
-              6.2. rl_check_pipe([pipe_no])
54
+              6.2. rl_check_pipe(pipe_no)
55 55
 
56 56
         7. RPC Commands
57 57
 
... ...
@@ -103,7 +103,7 @@ Chapter 1. Admin Guide
103 103
    6. Functions
104 104
 
105 105
         6.1. rl_check([pvar])
106
-        6.2. rl_check_pipe([pipe_no])
106
+        6.2. rl_check_pipe(pipe_no)
107 107
 
108 108
    7. RPC Commands
109 109
 
... ...
@@ -325,7 +325,7 @@ modparam("ratelimit", "pipe", "4:NETWORK:10000")
325 325
 6. Functions
326 326
 
327 327
    6.1. rl_check([pvar])
328
-   6.2. rl_check_pipe([pipe_no])
328
+   6.2. rl_check_pipe(pipe_no)
329 329
 
330 330
 6.1.  rl_check([pvar])
331 331
 
... ...
@@ -334,8 +334,7 @@ modparam("ratelimit", "pipe", "4:NETWORK:10000")
334 334
    type, and then the pipe will be identified based on the matched queue.
335 335
    If a pipe number is provided as a parameter, then the given pipe number
336 336
    will be used for identifying the ratelimit algorithm. The pipe number
337
-   must be provided via a pseudovariable. It is recommended to provide the
338
-   pipe number via an integer pseudovariable.
337
+   must be provided as number or via a pseudovariable.
339 338
 
340 339
    The method will return an error code if the limit for the matched
341 340
    algorithm is reached.
... ...
@@ -344,7 +343,7 @@ modparam("ratelimit", "pipe", "4:NETWORK:10000")
344 343
      * pvar - the pseudovariable holding the pipe id to be used by
345 344
        ratelimit.
346 345
 
347
-   This function can be used from REQUEST_ROUTE.
346
+   This function can be used from ANY_ROUTE.
348 347
 
349 348
    Example 1.4. rl_check usage
350 349
 ...
... ...
@@ -353,7 +352,7 @@ modparam("ratelimit", "pipe", "4:NETWORK:10000")
353 352
                 append_to_reply("Retry-After: 5\r\n");
354 353
                 sl_send_reply("503","Limiting");
355 354
                 exit;
356
-        };
355
+        }
357 356
 ...
358 357
         # use pipe no 1 for the current method
359 358
         # set int pvar to 1
... ...
@@ -362,25 +361,14 @@ modparam("ratelimit", "pipe", "4:NETWORK:10000")
362 361
                 append_to_reply("Retry-After: 5\r\n");
363 362
                 sl_send_reply("503","Limiting");
364 363
                 exit;
365
-        };
366
-...
367
-        # use pipe no 1 for the current method
368
-        # set str pvar to 1
369
-        $var(p) = "1";
370
-        if (!rl_check("$var(p)") {
371
-                append_to_reply("Retry-After: 5\r\n");
372
-                sl_send_reply("503","Limiting");
373
-                exit;
374
-        };
364
+        }
375 365
 ...
376 366
 
377
-6.2.  rl_check_pipe([pipe_no])
367
+6.2.  rl_check_pipe(pipe_no)
378 368
 
379
-   Check the current request against the matched ratelimit algorithm. If
380
-   no parameter is provided, the queue will be matched based on method
381
-   type, and then the pipe will be identified based on the matched queue.
382
-   If a pipe number is provided as a parameter, then the given pipe number
383
-   will be used for identifying the ratelimit algorithm.
369
+   Check the current request against the matched ratelimit algorithm of
370
+   the pipe provided as parameter. The parameter can be provided as number
371
+   or variable.
384 372
 
385 373
    The method will return an error code if the limit for the matched
386 374
    algorithm is reached.
... ...
@@ -391,20 +379,13 @@ modparam("ratelimit", "pipe", "4:NETWORK:10000")
391 379
    This function can be used from REQUEST_ROUTE.
392 380
 
393 381
    Example 1.5. rl_check_pipe usage
394
-...
395
-        # perform queue/pipe match for current method
396
-        if (!rl_check_pipe()) {
397
-                append_to_reply("Retry-After: 5\r\n");
398
-                sl_send_reply("503","Limiting");
399
-                exit;
400
-        };
401 382
 ...
402 383
         # use pipe no 1 for the current method
403 384
         if (!rl_check_pipe("1") {
404 385
                 append_to_reply("Retry-After: 5\r\n");
405 386
                 sl_send_reply("503","Limiting");
406 387
                 exit;
407
-        };
388
+        }
408 389
 ...
409 390
 
410 391
 7. RPC Commands
... ...
@@ -123,7 +123,7 @@ modparam("rtimer", "timer", "name=ta;interval=10;mode=1;")
123 123
 modparam("rtimer", "exec", "timer=ta;route=8")
124 124
 
125 125
 route[8] {
126
-    xlog("timer routine: time is %TF\n");
126
+    xlog("timer routine: time is $TF\n");
127 127
     # delete from my sql cache table entries older than 2H
128 128
     sql_query("delete from kamailio_cache where last_updated<$TS-3600");
129 129
 }
... ...
@@ -75,8 +75,8 @@ Carsten Bock
75 75
               5.7. rtpproxy_stream2uac(prompt_name, count),
76 76
               5.8. rtpproxy_stream2uas(prompt_name, count)
77 77
               5.9. rtpproxy_stop_stream2uac(),
78
-              5.10. start_recording()
79
-              5.11. rtpproxy_stop_stream2uas(prompt_name, count)
78
+              5.10. rtpproxy_stop_stream2uas()
79
+              5.11. start_recording()
80 80
 
81 81
         6. Exported Pseudo Variables
82 82
 
... ...
@@ -109,10 +109,11 @@ Carsten Bock
109 109
    1.16. rtpproxy_destroy usage
110 110
    1.17. rtpproxy_manage usage
111 111
    1.18. rtpproxy_stream2xxx usage
112
-   1.19. start_recording usage
113
-   1.20. $rtpstat-Usage
114
-   1.21. rtpproxy.enable usage
115
-   1.22. rtpproxy.list usage
112
+   1.19. rtpproxy_stop_stream2uas usage
113
+   1.20. start_recording usage
114
+   1.21. $rtpstat-Usage
115
+   1.22. rtpproxy.enable usage
116
+   1.23. rtpproxy.list usage
116 117
 
117 118
 Chapter 1. Admin Guide
118 119
 
... ...
@@ -150,8 +151,8 @@ Chapter 1. Admin Guide
150 151
         5.7. rtpproxy_stream2uac(prompt_name, count),
151 152
         5.8. rtpproxy_stream2uas(prompt_name, count)
152 153
         5.9. rtpproxy_stop_stream2uac(),
153
-        5.10. start_recording()
154
-        5.11. rtpproxy_stop_stream2uas(prompt_name, count)
154
+        5.10. rtpproxy_stop_stream2uas()
155
+        5.11. start_recording()
155 156
 
156 157
    6. Exported Pseudo Variables
157 158
 
... ...
@@ -415,8 +416,8 @@ xlog("L_INFO", "Chose rtpp instance $var(RTP_INSTANCE)\n");
415 416
    5.7. rtpproxy_stream2uac(prompt_name, count),
416 417
    5.8. rtpproxy_stream2uas(prompt_name, count)
417 418
    5.9. rtpproxy_stop_stream2uac(),
418
-   5.10. start_recording()
419
-   5.11. rtpproxy_stop_stream2uas(prompt_name, count)
419
+   5.10. rtpproxy_stop_stream2uas()
420
+   5.11. start_recording()
420 421
 
421 422
 5.1.  set_rtp_proxy_set(setid)
422 423
 
... ...
@@ -714,7 +715,23 @@ rtpproxy_manage();
714 715
 
715 716
    These functions can be used from REQUEST_ROUTE, ONREPLY_ROUTE.
716 717
 
717
-5.10.  start_recording()
718
+5.10.  rtpproxy_stop_stream2uas()
719
+
720
+   See function rtpproxy_stop_stream2uac().
721
+
722
+   Example 1.19. rtpproxy_stop_stream2uas usage
723
+...
724
+    if (is_method("INVITE")) {
725
+        rtpproxy_offer();
726
+        if (is_audio_on_hold()) {
727
+            rtpproxy_stream2uas("/var/rtpproxy/prompts/music_on_hold", "-1");
728
+        } else {
729
+            rtpproxy_stop_stream2uas();
730
+        };
731
+    };
732
+...
733
+
734
+5.11.  start_recording()
718 735
 
719 736
    This function will send a signal to the RTP-Proxy to record the RTP
720 737
    stream on the RTP-Proxy. This function is only supported by Sippy
... ...
@@ -722,15 +739,11 @@ rtpproxy_manage();
722 739
 
723 740
    This function can be used from REQUEST_ROUTE and ONREPLY_ROUTE.
724 741
 
725
-   Example 1.19. start_recording usage
742
+   Example 1.20. start_recording usage
726 743
 ...
727 744
 start_recording();
728 745
 ...
729 746
 
730
-5.11.  rtpproxy_stop_stream2uas(prompt_name, count)
731
-
732
-   See function rtpproxy_stop_stream2uac(prompt_name, count).
733
-
734 747
 6. Exported Pseudo Variables
735 748
 
736 749
    6.1. $rtpstat
... ...
@@ -742,7 +755,7 @@ start_recording();
742 755
    packet-counters. The statistics must be retrieved before the session is
743 756
    deleted (before unforce_rtpproxy()).
744 757
 
745
-   Example 1.20. $rtpstat-Usage
758
+   Example 1.21. $rtpstat-Usage
746 759
 ...
747 760
     append_hf("X-RTP-Statistics: $rtpstat\r\n");
748 761
 ...
... ...
@@ -765,7 +778,7 @@ start_recording();
765 778
    NOTE: if a rtpproxy is defined multiple times (in the same or different
766 779
    sets), all of its instances will be enabled/disabled.
767 780
 
768
-   Example 1.21.  rtpproxy.enable usage
781
+   Example 1.22.  rtpproxy.enable usage
769 782
 ...
770 783
 $ kamcmd rtpproxy.enable udp:192.168.2.133:8081 0
771 784
 ...
... ...
@@ -777,7 +790,7 @@ $ kamcmd rtpproxy.enable udp:192.168.2.133:8081 0
777 790
 
778 791
    No parameter.
779 792
 
780
-   Example 1.22.  rtpproxy.list usage
793
+   Example 1.23.  rtpproxy.list usage
781 794
 ...
782 795
 $ kamcmd rtpproxy.list
783 796
 ...
... ...
@@ -298,6 +298,26 @@ if(sdp_with_active_media("video"))
298 298
    Remove the streams that match on 'm=type ...' line. The parameter can
299 299
    be static string or variable holding the media type.
300 300
 
301
+   Note: If this is executed on a request, the callee should reply without
302
+   the Media too. However, RFC 3264 mandates, that the reply should
303
+   contain the exact same number of "m=" lines as the request.
304
+
305
+
306
+     6 Generating the Answer
307
+
308
+     [...]
309
+
310
+     For each "m=" line in the offer, there MUST be a corresponding "m="
311
+     line in the answer. The answer MUST contain exactly the same number of
312
+     "m=" lines as the offer. This allows for streams to be matched up based
313
+     on their order. This implies that if the offer contained zero "m="
314
+     lines, the answer MUST contain zero "m=" lines.
315
+
316
+                                                                  --RFC 3264
317
+
318
+   So this may not work with all Endpoints, especially if they follow RFC
319
+   3264 precisely (e.g. JSSIP).
320
+
301 321
    This function can be used from ANY_ROUTE.
302 322
 
303 323
    Example 1.8. sdp_remove_media usage
... ...
@@ -1,4 +1,4 @@
1
-The SL Module - Statless request handling
1
+The SL Module - Stateless request handling
2 2
 
3 3
 Bogdan Iancu
4 4
 
... ...
@@ -1589,7 +1589,7 @@ modparam("tm", "dns_reuse_rcv_socket", 1)
1589 1589
 3.46. xavp_contact (string)
1590 1590
 
1591 1591
    The name of XAVP storing the attributes per contact. This must be the
1592
-   same as the usrloc parameter xavp_contacts.
1592
+   same as the usrloc parameter xavp_contact.
1593 1593
 
1594 1594
    Default value is “NULL”.
1595 1595
 
... ...
@@ -816,7 +816,7 @@ modparam("usrloc", "timer_procs", 4)
816 816
 
817 817
    Example 1.34. Set xavp_contact parameter
818 818
 ...
819
-modparam("usrloc", "xavp_contact", "ulattrs")
819
+modparam("tm|usrloc", "xavp_contact", "ulattrs")
820 820
 ...
821 821
 
822 822
 3.35. db_ops_ruid (int)
... ...
@@ -40,6 +40,10 @@ Alex Balashov
40 40
 
41 41
               5.1. xhttp_reply(code, reason, ctype, body)
42 42
 
43
+        6. Event Routes
44
+
45
+              6.1. xhttp:request
46
+
43 47
    List of Examples
44 48
 
45 49
    1.1. Set url_skip parameter
... ...
@@ -67,6 +71,10 @@ Chapter 1. Admin Guide
67 71
 
68 72
         5.1. xhttp_reply(code, reason, ctype, body)
69 73
 
74
+   6. Event Routes
75
+
76
+        6.1. xhttp:request
77
+
70 78
 1. Overview
71 79
 
72 80
    This module provides basic HTTP/1.0 server functionality inside
... ...
@@ -180,3 +188,17 @@ event_route[xhttp:request] {
180 188
         "<html><body>OK - [$si:$sp]</body></html>");
181 189
 }
182 190
 ...
191
+
192
+6. Event Routes
193
+
194
+   6.1. xhttp:request
195
+
196
+6.1.  xhttp:request
197
+
198
+   The event route is executed when a new HTTP request is received.
199
+...
200
+event_route[xhttp:request] {
201
+    xhttp_reply("200", "OK", "text/html",
202
+        "<html><body>OK - [$si:$sp]</body></html>");
203
+}
204
+...