git-svn-id: https://openser.svn.sourceforge.net/svnroot/openser/trunk@3351 689a6050-402a-0410-94f2-e92a70836424
... | ... |
@@ -1,4 +1,3 @@ |
1 |
- |
|
2 | 1 |
Acc Module |
3 | 2 |
|
4 | 3 |
Jiri Kuthan |
... | ... |
@@ -20,7 +19,7 @@ Bogdan-Andrei Iancu |
20 | 19 |
Copyright � 2002, 2003 FhG FOKUS |
21 | 20 |
|
22 | 21 |
Copyright � 2004, 2006 voice-system.ro |
23 |
- _________________________________________________________ |
|
22 |
+ __________________________________________________________ |
|
24 | 23 |
|
25 | 24 |
Table of Contents |
26 | 25 |
1. User's Guide |
... | ... |
@@ -130,7 +129,7 @@ Bogdan-Andrei Iancu |
130 | 129 |
1-35. acc_db_request usage |
131 | 130 |
1-36. acc_rad_request usage |
132 | 131 |
1-37. acc_diam_request usage |
133 |
- _________________________________________________________ |
|
132 |
+ __________________________________________________________ |
|
134 | 133 |
|
135 | 134 |
Chapter 1. User's Guide |
136 | 135 |
|
... | ... |
@@ -140,22 +139,22 @@ Chapter 1. User's Guide |
140 | 139 |
different backends like syslog, SQL, RADIUS and DIAMETER (beta |
141 | 140 |
version). |
142 | 141 |
|
143 |
- To account a transaction and to choose which set of backends |
|
144 |
- to be used, the script writer just has to set some flags (see |
|
145 |
- the module parameters section for flag definitions Section |
|
146 |
- 1.5). If the accouting flag for a specific backend is set, the |
|
147 |
- acc module will then report on completed transaction. A |
|
148 |
- typical usage of the module takes no acc-specific script |
|
149 |
- command -- the functionality binds invisibly through |
|
150 |
- transaction processing. Script writers just need to mark the |
|
151 |
- transaction for accounting with proper setflag. Even so, the |
|
152 |
- module allows the script writter to force accouting in special |
|
153 |
- cases via some script functions. |
|
142 |
+ To account a transaction and to choose which set of backends to |
|
143 |
+ be used, the script writer just has to set some flags (see the |
|
144 |
+ module parameters section for flag definitions Section 1.5). If |
|
145 |
+ the accouting flag for a specific backend is set, the acc |
|
146 |
+ module will then report on completed transaction. A typical |
|
147 |
+ usage of the module takes no acc-specific script command -- the |
|
148 |
+ functionality binds invisibly through transaction processing. |
|
149 |
+ Script writers just need to mark the transaction for accounting |
|
150 |
+ with proper setflag. Even so, the module allows the script |
|
151 |
+ writter to force accouting in special cases via some script |
|
152 |
+ functions. |
|
154 | 153 |
|
155 | 154 |
The accouting module will log by default a fixed set of |
156 |
- attributes for the transaction - if you customize you |
|
157 |
- accouting by adding more information to be logged, please see |
|
158 |
- the next chapter about extra accouting - Section 1.2. |
|
155 |
+ attributes for the transaction - if you customize you accouting |
|
156 |
+ by adding more information to be logged, please see the next |
|
157 |
+ chapter about extra accouting - Section 1.2. |
|
159 | 158 |
|
160 | 159 |
The fixed minimal accouting information is: |
161 | 160 |
|
... | ... |
@@ -182,11 +181,11 @@ Chapter 1. User's Guide |
182 | 181 |
with BYEs for generating proper CDRs for example for |
183 | 182 |
purpose of billing, then it is better done in the entity |
184 | 183 |
which collects accounting information. |
185 |
- * If a UA fails in middle of conversation, a proxy will |
|
186 |
- never learn it. In general, a better practice is to |
|
187 |
- account from an end-device (such as PSTN gateway), which |
|
188 |
- best knows about call status (including media status and |
|
189 |
- PSTN status in case of the gateway). |
|
184 |
+ * If a UA fails in middle of conversation, a proxy will never |
|
185 |
+ learn it. In general, a better practice is to account from |
|
186 |
+ an end-device (such as PSTN gateway), which best knows |
|
187 |
+ about call status (including media status and PSTN status |
|
188 |
+ in case of the gateway). |
|
190 | 189 |
|
191 | 190 |
The SQL backend support is compiled in the moduls. For RADIUS |
192 | 191 |
and DIAMETER you need to enable it by recompiling the module |
... | ... |
@@ -198,13 +197,13 @@ Chapter 1. User's Guide |
198 | 197 |
radius client needs to be configured properly. To do so, use |
199 | 198 |
the template at etc/radiusclient.conf and make sure that |
200 | 199 |
module's radius_config parameter points to its location. In |
201 |
- particular, accounting secret must match that one configured |
|
202 |
- in server and proper dictionary is used (one is available at |
|
200 |
+ particular, accounting secret must match that one configured in |
|
201 |
+ server and proper dictionary is used (one is available at |
|
203 | 202 |
etc/sip_dictionary). Uses along with FreeRadius ( |
204 | 203 |
http://www.freeradius.org/) and Radiator ( |
205 |
- http://www.open.com.au/radiator/) servers have been reported |
|
206 |
- to us. |
|
207 |
- _________________________________________________________ |
|
204 |
+ http://www.open.com.au/radiator/) servers have been reported to |
|
205 |
+ us. |
|
206 |
+ __________________________________________________________ |
|
208 | 207 |
|
209 | 208 |
1.1.1. General Example |
210 | 209 |
|
... | ... |
@@ -215,8 +214,8 @@ modparam("acc", "log_flag", 1) |
215 | 214 |
if (uri=~"sip:+40") /* calls to Romania */ { |
216 | 215 |
if (!proxy_authorize("sip_domain.net" /* realm */, |
217 | 216 |
"subscriber" /* table name */)) { |
218 |
- proxy_challenge("sip_domain.net" /* realm */, "0" /* no qop */ |
|
219 |
-); |
|
217 |
+ proxy_challenge("sip_domain.net" /* realm */, "0" /* no qop */ ) |
|
218 |
+; |
|
220 | 219 |
exit; |
221 | 220 |
} |
222 | 221 |
|
... | ... |
@@ -228,7 +227,7 @@ if (uri=~"sip:+40") /* calls to Romania */ { |
228 | 227 |
setflag(1); /* set for accounting (the same value as in log_flag!) |
229 | 228 |
t_relay(); /* enter stateful mode now */ |
230 | 229 |
}; |
231 |
- _________________________________________________________ |
|
230 |
+ __________________________________________________________ |
|
232 | 231 |
|
233 | 232 |
1.2. Extra accounting |
234 | 233 |
|
... | ... |
@@ -238,19 +237,18 @@ if (uri=~"sip:+40") /* calls to Romania */ { |
238 | 237 |
dynamical selection of extra information to be logged. This |
239 | 238 |
allows you to log any pseudo-variable (AVPs, parts of the |
240 | 239 |
request, etc). |
241 |
- _________________________________________________________ |
|
240 |
+ __________________________________________________________ |
|
242 | 241 |
|
243 | 242 |
1.2.2. Definitions and syntax |
244 | 243 |
|
245 |
- Selection of extra information is done via xxx_extra |
|
246 |
- parameters by specifying the names of additional information |
|
247 |
- you want to log. This information is defined via |
|
248 |
- pseudo-variables and may include headers or AVPs values or |
|
249 |
- other message or system values. The syntax of the parameter |
|
250 |
- is: |
|
244 |
+ Selection of extra information is done via xxx_extra parameters |
|
245 |
+ by specifying the names of additional information you want to |
|
246 |
+ log. This information is defined via pseudo-variables and may |
|
247 |
+ include headers or AVPs values or other message or system |
|
248 |
+ values. The syntax of the parameter is: |
|
251 | 249 |
|
252 |
- * xxx_extra = extra_definition (';'extra_definition)* |
|
253 |
- * extra_definition = log_name '=' pseudo_variable |
|
250 |
+ * xxx_extra = extra_definition (';'extra_definition)* |
|
251 |
+ * extra_definition = log_name '=' pseudo_variable |
|
254 | 252 |
|
255 | 253 |
The full list of supported pseudo-variables in OpenSER is |
256 | 254 |
availabe at: |
... | ... |
@@ -263,24 +261,23 @@ if (uri=~"sip:+40") /* calls to Romania */ { |
263 | 261 |
the data in log_name=data format; |
264 | 262 |
* DB accounting - log_name will be the name of the DB column |
265 | 263 |
where the data will be stored.IMPORTANT: add in db acc |
266 |
- table the columns corresponding to each extra data; |
|
264 |
+ table the columns corresponding to each extra data; |
|
267 | 265 |
* RADIUS accounting - log_name will be the AVP name used for |
268 | 266 |
packing the data into RADIUS message. The log_name will be |
269 |
- translated to AVP number via the dictionary. IMPORTANT: |
|
270 |
- add in RADIUS dictionary the log_name attribute. |
|
267 |
+ translated to AVP number via the dictionary. IMPORTANT: add |
|
268 |
+ in RADIUS dictionary the log_name attribute. |
|
271 | 269 |
* DIAMETER accounting - log_name will be the AVP code used |
272 |
- for packing the data into DIAMETER message. The AVP code |
|
273 |
- is given directly as integer, since DIAMETER has no |
|
274 |
- dictionary support yet. IMPORTANT: log_name must be a |
|
275 |
- number. |
|
276 |
- _________________________________________________________ |
|
270 |
+ for packing the data into DIAMETER message. The AVP code is |
|
271 |
+ given directly as integer, since DIAMETER has no dictionary |
|
272 |
+ support yet. IMPORTANT: log_name must be a number. |
|
273 |
+ __________________________________________________________ |
|
277 | 274 |
|
278 | 275 |
1.2.3. How it works |
279 | 276 |
|
280 | 277 |
Some pseudo variables may return more than one value (like |
281 | 278 |
headers or AVPs). In this case, the returned values are |
282 | 279 |
embedded in a single string in a comma-separated format. |
283 |
- _________________________________________________________ |
|
280 |
+ __________________________________________________________ |
|
284 | 281 |
|
285 | 282 |
1.3. Multi Call-Legs accounting |
286 | 283 |
|
... | ... |
@@ -294,9 +291,9 @@ if (uri=~"sip:+40") /* calls to Romania */ { |
294 | 291 |
billed, user B must pay for the call -as last party modifing |
295 | 292 |
the call destination-, and not A -as initiator of the call. |
296 | 293 |
Call forwarding on server is only one example which shows the |
297 |
- necessity of the having an accounting engine with multiple |
|
298 |
- legs support. |
|
299 |
- _________________________________________________________ |
|
294 |
+ necessity of the having an accounting engine with multiple legs |
|
295 |
+ support. |
|
296 |
+ __________________________________________________________ |
|
300 | 297 |
|
301 | 298 |
1.3.2. Configuration |
302 | 299 |
|
... | ... |
@@ -304,8 +301,8 @@ if (uri=~"sip:+40") /* calls to Romania */ { |
304 | 301 |
each call leg to store another set of values of the AVPs. The |
305 | 302 |
meaning the AVP content is stricly decided by the script |
306 | 303 |
writter - it can be the origin and source of the leg, its |
307 |
- status or any other related imformation. If you have a set of |
|
308 |
- 4 AVPS (AVP1, AVP2, AVP3, AVP4), then, for the A call B and B |
|
304 |
+ status or any other related imformation. If you have a set of 4 |
|
305 |
+ AVPS (AVP1, AVP2, AVP3, AVP4), then, for the A call B and B |
|
309 | 306 |
forwards to C example, the for each leg ([A,B] and [B,C]) you |
310 | 307 |
need to set a different set of values for the AVPs. The script |
311 | 308 |
writer must take care and properly insert all these AVP from |
... | ... |
@@ -318,7 +315,7 @@ if (uri=~"sip:+40") /* calls to Romania */ { |
318 | 315 |
By default, the multiple call-legs support is disable - it can |
319 | 316 |
be enabled just be setting the per-leg set of AVPs via the |
320 | 317 |
multi_leg_info module parameter. |
321 |
- _________________________________________________________ |
|
318 |
+ __________________________________________________________ |
|
322 | 319 |
|
323 | 320 |
1.3.3. Logged data |
324 | 321 |
|
... | ... |
@@ -328,38 +325,38 @@ if (uri=~"sip:+40") /* calls to Romania */ { |
328 | 325 |
|
329 | 326 |
* syslog -- all leg-sets will be added to one record string |
330 | 327 |
as AVP1=xxx, AVP2=xxxx ,... sets. |
331 |
- * database -- each pair will be separatly logged (due DB |
|
332 |
- data structure constraints); several records will be |
|
333 |
- written, the difference between them being only the fields |
|
328 |
+ * database -- each pair will be separatly logged (due DB data |
|
329 |
+ structure constraints); several records will be written, |
|
330 |
+ the difference between them being only the fields |
|
334 | 331 |
corresponding to the call-leg info. |
335 | 332 |
|
336 |
- Note |
|
333 |
+ Note |
|
337 | 334 |
|
338 |
- You will need to add in your DB (all acc related tables) the |
|
339 |
- colums for call-leg info (a column for each AVP for the set). |
|
335 |
+ You will need to add in your DB (all acc related tables) the |
|
336 |
+ colums for call-leg info (a column for each AVP for the set). |
|
340 | 337 |
* Radius -- all sets will be added to same Radius accounting |
341 | 338 |
message as RADIUS AVPs - for each call-leg a set of RADIUS |
342 | 339 |
AVPs will be added (corresponding to the per-leg AVP set) |
343 | 340 |
|
344 |
- Note |
|
341 |
+ Note |
|
345 | 342 |
|
346 |
- You will need to add in your dictionaty the RADIUS AVPs used |
|
347 |
- in call-leg AVP set definition. |
|
343 |
+ You will need to add in your dictionaty the RADIUS AVPs used in |
|
344 |
+ call-leg AVP set definition. |
|
348 | 345 |
* Diameter same as for RADIUS. |
349 |
- _________________________________________________________ |
|
346 |
+ __________________________________________________________ |
|
350 | 347 |
|
351 | 348 |
1.4. Dependencies |
352 | 349 |
|
353 | 350 |
1.4.1. OpenSER Modules |
354 | 351 |
|
355 |
- The module depends on the following modules (in the other |
|
356 |
- words the listed modules must be loaded before this module): |
|
352 |
+ The module depends on the following modules (in the other words |
|
353 |
+ the listed modules must be loaded before this module): |
|
357 | 354 |
|
358 | 355 |
* tm -- Transaction Manager |
359 | 356 |
* a database module -- If SQL support is used. |
360 | 357 |
* rr -- Record Route, if "detect_direction" module parameter |
361 | 358 |
is enabled. |
362 |
- _________________________________________________________ |
|
359 |
+ __________________________________________________________ |
|
363 | 360 |
|
364 | 361 |
1.4.2. External Libraries or Applications |
365 | 362 |
|
... | ... |
@@ -369,7 +366,7 @@ if (uri=~"sip:+40") /* calls to Romania */ { |
369 | 366 |
* radiusclient-ng 0.5.0 or higher -- if compiled with RADIUS |
370 | 367 |
support. See |
371 | 368 |
http://developer.berlios.de/projects/radiusclient-ng/. |
372 |
- _________________________________________________________ |
|
369 |
+ __________________________________________________________ |
|
373 | 370 |
|
374 | 371 |
1.5. Exported Parameters |
375 | 372 |
|
... | ... |
@@ -381,7 +378,7 @@ if (uri=~"sip:+40") /* calls to Romania */ { |
381 | 378 |
|
382 | 379 |
Example 1-1. early_media example |
383 | 380 |
modparam("acc", "early_media", 1) |
384 |
- _________________________________________________________ |
|
381 |
+ __________________________________________________________ |
|
385 | 382 |
|
386 | 383 |
1.5.2. failed_transaction_flag (integer) |
387 | 384 |
|
... | ... |
@@ -392,7 +389,7 @@ modparam("acc", "early_media", 1) |
392 | 389 |
|
393 | 390 |
Example 1-2. failed_transaction_flag example |
394 | 391 |
modparam("acc", "failed_transaction_flag", 4) |
395 |
- _________________________________________________________ |
|
392 |
+ __________________________________________________________ |
|
396 | 393 |
|
397 | 394 |
1.5.3. report_ack (integer) |
398 | 395 |
|
... | ... |
@@ -405,7 +402,7 @@ modparam("acc", "failed_transaction_flag", 4) |
405 | 402 |
|
406 | 403 |
Example 1-3. report_ack example |
407 | 404 |
modparam("acc", "report_ack", 1) |
408 |
- _________________________________________________________ |
|
405 |
+ __________________________________________________________ |
|
409 | 406 |
|
410 | 407 |
1.5.4. report_cancels (integer) |
411 | 408 |
|
... | ... |
@@ -417,15 +414,15 @@ modparam("acc", "report_ack", 1) |
417 | 414 |
|
418 | 415 |
Example 1-4. report_cancels example |
419 | 416 |
modparam("acc", "report_cancels", 1) |
420 |
- _________________________________________________________ |
|
417 |
+ __________________________________________________________ |
|
421 | 418 |
|
422 | 419 |
1.5.5. detect_direction (integer) |
423 | 420 |
|
424 | 421 |
Controlles the direction detection for sequential requests. If |
425 |
- enabled (non zero value), for sequential requests with |
|
426 |
- upstream direction (from callee to caller), the FROM and TO |
|
427 |
- will be swapped (the direction will be preserved as in the |
|
428 |
- original request). |
|
422 |
+ enabled (non zero value), for sequential requests with upstream |
|
423 |
+ direction (from callee to caller), the FROM and TO will be |
|
424 |
+ swapped (the direction will be preserved as in the original |
|
425 |
+ request). |
|
429 | 426 |
|
430 | 427 |
It affects all values related to TO and FROM headers (body, |
431 | 428 |
URI, username, domain, TAG). |
... | ... |
@@ -434,7 +431,7 @@ modparam("acc", "report_cancels", 1) |
434 | 431 |
|
435 | 432 |
Example 1-5. detect_direction example |
436 | 433 |
modparam("acc", "detect_direction", 1) |
437 |
- _________________________________________________________ |
|
434 |
+ __________________________________________________________ |
|
438 | 435 |
|
439 | 436 |
1.5.6. multi_leg_info (string) |
440 | 437 |
|
... | ... |
@@ -459,18 +456,18 @@ modparam("acc", "multi_leg_info", |
459 | 456 |
# for DIAMETER-based accouting, use the DIAMETER AVP ID (as integer) |
460 | 457 |
modparam("acc", "multi_leg_info", |
461 | 458 |
"2345=$avp(src);2346=$avp(dst)") |
462 |
- _________________________________________________________ |
|
459 |
+ __________________________________________________________ |
|
463 | 460 |
|
464 | 461 |
1.5.7. log_flag (integer) |
465 | 462 |
|
466 |
- Request flag which needs to be set to account a transaction |
|
467 |
- via syslog. |
|
463 |
+ Request flag which needs to be set to account a transaction via |
|
464 |
+ syslog. |
|
468 | 465 |
|
469 | 466 |
Default value is not-set (no flag). |
470 | 467 |
|
471 | 468 |
Example 1-7. log_flag example |
472 | 469 |
modparam("acc", "log_flag", 2) |
473 |
- _________________________________________________________ |
|
470 |
+ __________________________________________________________ |
|
474 | 471 |
|
475 | 472 |
1.5.8. log_missed_flag (integer) |
476 | 473 |
|
... | ... |
@@ -481,7 +478,7 @@ modparam("acc", "log_flag", 2) |
481 | 478 |
|
482 | 479 |
Example 1-8. log_missed_flag example |
483 | 480 |
modparam("acc", "log_missed_flag", 3) |
484 |
- _________________________________________________________ |
|
481 |
+ __________________________________________________________ |
|
485 | 482 |
|
486 | 483 |
1.5.9. log_level (integer) |
487 | 484 |
|
... | ... |
@@ -491,7 +488,7 @@ modparam("acc", "log_missed_flag", 3) |
491 | 488 |
|
492 | 489 |
Example 1-9. log_level example |
493 | 490 |
modparam("acc", "log_level", 2) # Set log_level to 2 |
494 |
- _________________________________________________________ |
|
491 |
+ __________________________________________________________ |
|
495 | 492 |
|
496 | 493 |
1.5.10. log_extra (string) |
497 | 494 |
|
... | ... |
@@ -501,7 +498,7 @@ modparam("acc", "log_level", 2) # Set log_level to 2 |
501 | 498 |
|
502 | 499 |
Example 1-10. log_extra example |
503 | 500 |
modparam("acc", "log_extra", "ua=$hdr(User-Agent);uuid=$avp(i:123)") |
504 |
- _________________________________________________________ |
|
501 |
+ __________________________________________________________ |
|
505 | 502 |
|
506 | 503 |
1.5.11. radius_config (string) |
507 | 504 |
|
... | ... |
@@ -515,12 +512,12 @@ modparam("acc", "log_extra", "ua=$hdr(User-Agent);uuid=$avp(i:123)") |
515 | 512 |
If the parameter is set to empty string, the RADIUS accouting |
516 | 513 |
support will be disabled (even if compiled). |
517 | 514 |
|
518 |
- Default value is |
|
519 |
- "/usr/local/etc/radiusclient/radiusclient.conf ". |
|
515 |
+ Default value is "/usr/local/etc/radiusclient/radiusclient.conf |
|
516 |
+ ". |
|
520 | 517 |
|
521 | 518 |
Example 1-11. radius_config example |
522 | 519 |
modparam("acc", "radius_config", "/etc/radiusclient/radiusclient.conf") |
523 |
- _________________________________________________________ |
|
520 |
+ __________________________________________________________ |
|
524 | 521 |
|
525 | 522 |
1.5.12. radius_flag (integer) |
526 | 523 |
|
... | ... |
@@ -531,7 +528,7 @@ modparam("acc", "radius_config", "/etc/radiusclient/radiusclient.conf") |
531 | 528 |
|
532 | 529 |
Example 1-12. radius_flag example |
533 | 530 |
modparam("acc", "radius_flag", 2) |
534 |
- _________________________________________________________ |
|
531 |
+ __________________________________________________________ |
|
535 | 532 |
|
536 | 533 |
1.5.13. radius_missed_flag (integer) |
537 | 534 |
|
... | ... |
@@ -542,7 +539,7 @@ modparam("acc", "radius_flag", 2) |
542 | 539 |
|
543 | 540 |
Example 1-13. radius_missed_flag example |
544 | 541 |
modparam("acc", "radius_missed_flag", 3) |
545 |
- _________________________________________________________ |
|
542 |
+ __________________________________________________________ |
|
546 | 543 |
|
547 | 544 |
1.5.14. service_type (integer) |
548 | 545 |
|
... | ... |
@@ -552,7 +549,7 @@ modparam("acc", "radius_missed_flag", 3) |
552 | 549 |
|
553 | 550 |
Example 1-14. service_type example |
554 | 551 |
modparam("acc", "service_type", 16) |
555 |
- _________________________________________________________ |
|
552 |
+ __________________________________________________________ |
|
556 | 553 |
|
557 | 554 |
1.5.15. radius_extra (string) |
558 | 555 |
|
... | ... |
@@ -561,9 +558,8 @@ modparam("acc", "service_type", 16) |
561 | 558 |
Default value is NULL. |
562 | 559 |
|
563 | 560 |
Example 1-15. radius_extra example |
564 |
-modparam("acc", "radius_extra", "via=$hdr(Via[*]); email=$avp(s:email)" |
|
565 |
-) |
|
566 |
- _________________________________________________________ |
|
561 |
+modparam("acc", "radius_extra", "via=$hdr(Via[*]); email=$avp(s:email)") |
|
562 |
+ __________________________________________________________ |
|
567 | 563 |
|
568 | 564 |
1.5.16. db_flag (integer) |
569 | 565 |
|
... | ... |
@@ -574,7 +570,7 @@ modparam("acc", "radius_extra", "via=$hdr(Via[*]); email=$avp(s:email)" |
574 | 570 |
|
575 | 571 |
Example 1-16. db_flag example |
576 | 572 |
modparam("acc", "db_flag", 2) |
577 |
- _________________________________________________________ |
|
573 |
+ __________________________________________________________ |
|
578 | 574 |
|
579 | 575 |
1.5.17. db_missed_flag (integer) |
580 | 576 |
|
... | ... |
@@ -585,7 +581,7 @@ modparam("acc", "db_flag", 2) |
585 | 581 |
|
586 | 582 |
Example 1-17. db_missed_flag example |
587 | 583 |
modparam("acc", "db_missed_flag", 3) |
588 |
- _________________________________________________________ |
|
584 |
+ __________________________________________________________ |
|
589 | 585 |
|
590 | 586 |
1.5.18. db_table_acc (string) |
591 | 587 |
|
... | ... |
@@ -596,7 +592,7 @@ modparam("acc", "db_missed_flag", 3) |
596 | 592 |
|
597 | 593 |
Example 1-18. db_table_acc example |
598 | 594 |
modparam("acc", "db_table_acc", "myacc_table") |
599 |
- _________________________________________________________ |
|
595 |
+ __________________________________________________________ |
|
600 | 596 |
|
601 | 597 |
1.5.19. db_table_missed_calls (string) |
602 | 598 |
|
... | ... |
@@ -606,7 +602,7 @@ modparam("acc", "db_table_acc", "myacc_table") |
606 | 602 |
|
607 | 603 |
Example 1-19. db_table_missed_calls example |
608 | 604 |
modparam("acc", "db_table_missed_calls", "myMC_table") |
609 |
- _________________________________________________________ |
|
605 |
+ __________________________________________________________ |
|
610 | 606 |
|
611 | 607 |
1.5.20. db_url (string) |
612 | 608 |
|
... | ... |
@@ -617,7 +613,7 @@ modparam("acc", "db_table_missed_calls", "myMC_table") |
617 | 613 |
|
618 | 614 |
Example 1-20. db_url example |
619 | 615 |
modparam("acc", "db_url", "mysql://user:password@localhost/openser") |
620 |
- _________________________________________________________ |
|
616 |
+ __________________________________________________________ |
|
621 | 617 |
|
622 | 618 |
1.5.21. acc_method_column (string) |
623 | 619 |
|
... | ... |
@@ -628,7 +624,7 @@ modparam("acc", "db_url", "mysql://user:password@localhost/openser") |
628 | 624 |
|
629 | 625 |
Example 1-21. acc_method_column example |
630 | 626 |
modparam("acc", "acc_method_column", "method") |
631 |
- _________________________________________________________ |
|
627 |
+ __________________________________________________________ |
|
632 | 628 |
|
633 | 629 |
1.5.22. acc_from_tag_column (string) |
634 | 630 |
|
... | ... |
@@ -639,7 +635,7 @@ modparam("acc", "acc_method_column", "method") |
639 | 635 |
|
640 | 636 |
Example 1-22. acc_from_tag_column example |
641 | 637 |
modparam("acc", "acc_from_tag_column", "from_tag") |
642 |
- _________________________________________________________ |
|
638 |
+ __________________________________________________________ |
|
643 | 639 |
|
644 | 640 |
1.5.23. acc_to_tag_column (string) |
645 | 641 |
|
... | ... |
@@ -650,7 +646,7 @@ modparam("acc", "acc_from_tag_column", "from_tag") |
650 | 646 |
|
651 | 647 |
Example 1-23. acc_to_tag_column example |
652 | 648 |
modparam("acc", "acc_to_tag_column", "to_tag") |
653 |
- _________________________________________________________ |
|
649 |
+ __________________________________________________________ |
|
654 | 650 |
|
655 | 651 |
1.5.24. acc_callid_column (string) |
656 | 652 |
|
... | ... |
@@ -661,7 +657,7 @@ modparam("acc", "acc_to_tag_column", "to_tag") |
661 | 657 |
|
662 | 658 |
Example 1-24. acc_callid_column example |
663 | 659 |
modparam("acc", "acc_callid_column", "callid") |
664 |
- _________________________________________________________ |
|
660 |
+ __________________________________________________________ |
|
665 | 661 |
|
666 | 662 |
1.5.25. acc_sip_code_column (string) |
667 | 663 |
|
... | ... |
@@ -672,7 +668,7 @@ modparam("acc", "acc_callid_column", "callid") |
672 | 668 |
|
673 | 669 |
Example 1-25. acc_sip_code_column example |
674 | 670 |
modparam("acc", "acc_sip_code_column", "sip_code") |
675 |
- _________________________________________________________ |
|
671 |
+ __________________________________________________________ |
|
676 | 672 |
|
677 | 673 |
1.5.26. acc_sip_reason_column (string) |
678 | 674 |
|
... | ... |
@@ -683,7 +679,7 @@ modparam("acc", "acc_sip_code_column", "sip_code") |
683 | 679 |
|
684 | 680 |
Example 1-26. acc_sip_reason_column example |
685 | 681 |
modparam("acc", "acc_sip_reason_column", "sip_reason") |
686 |
- _________________________________________________________ |
|
682 |
+ __________________________________________________________ |
|
687 | 683 |
|
688 | 684 |
1.5.27. acc_time_column (string) |
689 | 685 |
|
... | ... |
@@ -694,7 +690,7 @@ modparam("acc", "acc_sip_reason_column", "sip_reason") |
694 | 690 |
|
695 | 691 |
Example 1-27. acc_time_column example |
696 | 692 |
modparam("acc", "acc_time_column", "time") |
697 |
- _________________________________________________________ |
|
693 |
+ __________________________________________________________ |
|
698 | 694 |
|
699 | 695 |
1.5.28. db_extra (string) |
700 | 696 |
|
... | ... |
@@ -703,9 +699,9 @@ modparam("acc", "acc_time_column", "time") |
703 | 699 |
Default value is NULL. |
704 | 700 |
|
705 | 701 |
Example 1-28. db_extra example |
706 |
-modparam("acc", "db_extra", "ct=$hdr(Content-type); email=$avp(s:email) |
|
707 |
-") |
|
708 |
- _________________________________________________________ |
|
702 |
+modparam("acc", "db_extra", "ct=$hdr(Content-type); email=$avp(s:email)" |
|
703 |
+) |
|
704 |
+ __________________________________________________________ |
|
709 | 705 |
|
710 | 706 |
1.5.29. diameter_flag (integer) |
711 | 707 |
|
... | ... |
@@ -716,7 +712,7 @@ modparam("acc", "db_extra", "ct=$hdr(Content-type); email=$avp(s:email) |
716 | 712 |
|
717 | 713 |
Example 1-29. diameter_flag example |
718 | 714 |
modparam("acc", "diameter_flag", 2) |
719 |
- _________________________________________________________ |
|
715 |
+ __________________________________________________________ |
|
720 | 716 |
|
721 | 717 |
1.5.30. diameter_missed_flag (integer) |
722 | 718 |
|
... | ... |
@@ -727,18 +723,18 @@ modparam("acc", "diameter_flag", 2) |
727 | 723 |
|
728 | 724 |
Example 1-30. diameter_missed_flag example |
729 | 725 |
modparam("acc", "diameter_missed_flag", 3) |
730 |
- _________________________________________________________ |
|
726 |
+ __________________________________________________________ |
|
731 | 727 |
|
732 | 728 |
1.5.31. diameter_client_host (string) |
733 | 729 |
|
734 |
- Hostname of the machine where the DIAMETER Client is running |
|
735 |
- -- DIAMETER specific. |
|
730 |
+ Hostname of the machine where the DIAMETER Client is running -- |
|
731 |
+ DIAMETER specific. |
|
736 | 732 |
|
737 | 733 |
Default value is "localhost". |
738 | 734 |
|
739 | 735 |
Example 1-31. diameter_client_host example |
740 | 736 |
modparam("acc", "diameter_client_host", "3a_server.net") |
741 |
- _________________________________________________________ |
|
737 |
+ __________________________________________________________ |
|
742 | 738 |
|
743 | 739 |
1.5.32. diameter_client_port (int) |
744 | 740 |
|
... | ... |
@@ -749,7 +745,7 @@ modparam("acc", "diameter_client_host", "3a_server.net") |
749 | 745 |
|
750 | 746 |
Example 1-32. diameter_client_host example |
751 | 747 |
modparam("acc", "diameter_client_port", 3000) |
752 |
- _________________________________________________________ |
|
748 |
+ __________________________________________________________ |
|
753 | 749 |
|
754 | 750 |
1.5.33. diameter_extra (string) |
755 | 751 |
|
... | ... |
@@ -758,17 +754,17 @@ modparam("acc", "diameter_client_port", 3000) |
758 | 754 |
Default value is NULL. |
759 | 755 |
|
760 | 756 |
Example 1-33. diameter_extra example |
761 |
-modparam("acc", "diameter_extra", "7846=$hdr(Content-type);7847=$avp(s: |
|
762 |
-email)") |
|
763 |
- _________________________________________________________ |
|
757 |
+modparam("acc", "diameter_extra", "7846=$hdr(Content-type);7847=$avp(s:e |
|
758 |
+mail)") |
|
759 |
+ __________________________________________________________ |
|
764 | 760 |
|
765 | 761 |
1.6. Exported Functions |
766 | 762 |
|
767 | 763 |
1.6.1. acc_log_request(comment) |
768 | 764 |
|
769 | 765 |
acc_request reports on a request, for example, it can be used |
770 |
- to report on missed calls to off-line users who are replied |
|
771 |
- 404 - Not Found. To avoid multiple reports on UDP request |
|
766 |
+ to report on missed calls to off-line users who are replied 404 |
|
767 |
+ - Not Found. To avoid multiple reports on UDP request |
|
772 | 768 |
retransmission, you would need to embed the action in stateful |
773 | 769 |
processing. |
774 | 770 |
|
... | ... |
@@ -782,7 +778,7 @@ email)") |
782 | 778 |
... |
783 | 779 |
acc_log_request("Some comment"); |
784 | 780 |
... |
785 |
- _________________________________________________________ |
|
781 |
+ __________________________________________________________ |
|
786 | 782 |
|
787 | 783 |
1.6.2. acc_db_request(comment, table) |
788 | 784 |
|
... | ... |
@@ -801,7 +797,7 @@ acc_log_request("Some comment"); |
801 | 797 |
... |
802 | 798 |
acc_log_request("Some comment", "Some table"); |
803 | 799 |
... |
804 |
- _________________________________________________________ |
|
800 |
+ __________________________________________________________ |
|
805 | 801 |
|
806 | 802 |
1.6.3. acc_rad_request(comment) |
807 | 803 |
|
... | ... |
@@ -818,12 +814,12 @@ acc_log_request("Some comment", "Some table"); |
818 | 814 |
... |
819 | 815 |
acc_rad_request("Some comment"); |
820 | 816 |
... |
821 |
- _________________________________________________________ |
|
817 |
+ __________________________________________________________ |
|
822 | 818 |
|
823 | 819 |
1.6.4. acc_diam_request(comment) |
824 | 820 |
|
825 |
- Like acc_log_request, acc_diam_request reports on a request. |
|
826 |
- It reports to the configured Diameter server. |
|
821 |
+ Like acc_log_request, acc_diam_request reports on a request. It |
|
822 |
+ reports to the configured Diameter server. |
|
827 | 823 |
|
828 | 824 |
Meaning of the parameters is as follows: |
829 | 825 |
|
... | ... |
@@ -835,13 +831,13 @@ acc_rad_request("Some comment"); |
835 | 831 |
... |
836 | 832 |
acc_diam_request("Some comment"); |
837 | 833 |
... |
838 |
- _________________________________________________________ |
|
834 |
+ __________________________________________________________ |
|
839 | 835 |
|
840 | 836 |
Chapter 2. Developer's Guide |
841 | 837 |
|
842 | 838 |
The module does not provide any API to use in other OpenSER |
843 | 839 |
modules. |
844 |
- _________________________________________________________ |
|
840 |
+ __________________________________________________________ |
|
845 | 841 |
|
846 | 842 |
Chapter 3. Frequently Asked Questions |
847 | 843 |
|
... | ... |
@@ -880,8 +876,8 @@ Chapter 3. Frequently Asked Questions |
880 | 876 |
|
881 | 877 |
3.5. Where can I post a question about this module? |
882 | 878 |
|
883 |
- First at all check if your question was already answered on |
|
884 |
- one of our mailing lists: |
|
879 |
+ First at all check if your question was already answered on one |
|
880 |
+ of our mailing lists: |
|
885 | 881 |
|
886 | 882 |
* User Mailing List - |
887 | 883 |
http://openser.org/cgi-bin/mailman/listinfo/users |
... | ... |
@@ -1,4 +1,3 @@ |
1 |
- |
|
2 | 1 |
ALIAS_DB Module |
3 | 2 |
|
4 | 3 |
Daniel-Constantin Mierla |
... | ... |
@@ -10,7 +9,7 @@ Edited by |
10 | 9 |
Daniel-Constantin Mierla |
11 | 10 |
|
12 | 11 |
Copyright � 2005 voice-system.ro |
13 |
- _________________________________________________________ |
|
12 |
+ __________________________________________________________ |
|
14 | 13 |
|
15 | 14 |
Table of Contents |
16 | 15 |
1. User's Guide |
... | ... |
@@ -47,7 +46,7 @@ Daniel-Constantin Mierla |
47 | 46 |
1-6. Set use_domain parameter |
48 | 47 |
1-7. Set domain_prefix parameter |
49 | 48 |
1-8. alias_db_lookup() usage |
50 |
- _________________________________________________________ |
|
49 |
+ __________________________________________________________ |
|
51 | 50 |
|
52 | 51 |
Chapter 1. User's Guide |
53 | 52 |
|
... | ... |
@@ -59,10 +58,10 @@ Chapter 1. User's Guide |
59 | 58 |
for search (no memory caching). |
60 | 59 |
|
61 | 60 |
Having no memory caching the speed of search can decrease but |
62 |
- the provisioning is easier. With very fast databases like |
|
63 |
- MySQL the speed penalty can be lowered. Also, the search can |
|
64 |
- be performed on different tables in the same script. |
|
65 |
- _________________________________________________________ |
|
61 |
+ the provisioning is easier. With very fast databases like MySQL |
|
62 |
+ the speed penalty can be lowered. Also, the search can be |
|
63 |
+ performed on different tables in the same script. |
|
64 |
+ __________________________________________________________ |
|
66 | 65 |
|
67 | 66 |
1.2. Dependencies |
68 | 67 |
|
... | ... |
@@ -71,7 +70,7 @@ Chapter 1. User's Guide |
71 | 70 |
The following modules must be loaded before this module: |
72 | 71 |
|
73 | 72 |
* database module (mysql, dbtext, ...). |
74 |
- _________________________________________________________ |
|
73 |
+ __________________________________________________________ |
|
75 | 74 |
|
76 | 75 |
1.2.2. External Libraries or Applications |
77 | 76 |
|
... | ... |
@@ -79,7 +78,7 @@ Chapter 1. User's Guide |
79 | 78 |
before running OpenSER with this module loaded: |
80 | 79 |
|
81 | 80 |
* None. |
82 |
- _________________________________________________________ |
|
81 |
+ __________________________________________________________ |
|
83 | 82 |
|
84 | 83 |
1.3. Exported Parameters |
85 | 84 |
|
... | ... |
@@ -87,61 +86,61 @@ Chapter 1. User's Guide |
87 | 86 |
|
88 | 87 |
Database URL. |
89 | 88 |
|
90 |
- Default value is "DEFAULT_RODB_URL". |
|
89 |
+ Default value is "DEFAULT_RODB_URL". |
|
91 | 90 |
|
92 | 91 |
Example 1-1. Set db_url parameter |
93 | 92 |
... |
94 | 93 |
modparam("alias_db", "db_url", "mysql://user:passwd@localhost/openser") |
95 | 94 |
... |
96 |
- _________________________________________________________ |
|
95 |
+ __________________________________________________________ |
|
97 | 96 |
|
98 | 97 |
1.3.2. user_column (str) |
99 | 98 |
|
100 | 99 |
Name of the column storing username. |
101 | 100 |
|
102 |
- Default value is "username". |
|
101 |
+ Default value is "username". |
|
103 | 102 |
|
104 | 103 |
Example 1-2. Set user_column parameter |
105 | 104 |
... |
106 | 105 |
modparam("alias_db", "user_column", "susername") |
107 | 106 |
... |
108 |
- _________________________________________________________ |
|
107 |
+ __________________________________________________________ |
|
109 | 108 |
|
110 | 109 |
1.3.3. domain_column (str) |
111 | 110 |
|
112 | 111 |
Name of the column storing user's domain. |
113 | 112 |
|
114 |
- Default value is "domain". |
|
113 |
+ Default value is "domain". |
|
115 | 114 |
|
116 | 115 |
Example 1-3. Set domain_column parameter |
117 | 116 |
... |
118 | 117 |
modparam("alias_db", "domain_column", "sdomain") |
119 | 118 |
... |
120 |
- _________________________________________________________ |
|
119 |
+ __________________________________________________________ |
|
121 | 120 |
|
122 | 121 |
1.3.4. alias_user_column (str) |
123 | 122 |
|
124 | 123 |
Name of the column storing alias username. |
125 | 124 |
|
126 |
- Default value is "alias_username". |
|
125 |
+ Default value is "alias_username". |
|
127 | 126 |
|
128 | 127 |
Example 1-4. Set alias_user_column parameter |
129 | 128 |
... |
130 | 129 |
modparam("alias_db", "alias_user_column", "auser") |
131 | 130 |
... |
132 |
- _________________________________________________________ |
|
131 |
+ __________________________________________________________ |
|
133 | 132 |
|
134 | 133 |
1.3.5. alias_domain_column (str) |
135 | 134 |
|
136 | 135 |
Name of the column storing alias domain. |
137 | 136 |
|
138 |
- Default value is "alias_domain". |
|
137 |
+ Default value is "alias_domain". |
|
139 | 138 |
|
140 | 139 |
Example 1-5. Set alias_domain_column parameter |
141 | 140 |
... |
142 | 141 |
modparam("alias_db", "alias_domain_column", "adomain") |
143 | 142 |
... |
144 |
- _________________________________________________________ |
|
143 |
+ __________________________________________________________ |
|
145 | 144 |
|
146 | 145 |
1.3.6. use_domain (int) |
147 | 146 |
|
... | ... |
@@ -149,37 +148,37 @@ modparam("alias_db", "alias_domain_column", "adomain") |
149 | 148 |
searching for alias. If set to 0, the domain from R-URI is not |
150 | 149 |
used, if set to 1 the domain from R-URI is used. |
151 | 150 |
|
152 |
- Default value is "o". |
|
151 |
+ Default value is "o". |
|
153 | 152 |
|
154 | 153 |
Example 1-6. Set use_domain parameter |
155 | 154 |
... |
156 | 155 |
modparam("alias_db", "use_domain", 1) |
157 | 156 |
... |
158 |
- _________________________________________________________ |
|
157 |
+ __________________________________________________________ |
|
159 | 158 |
|
160 | 159 |
1.3.7. domain_prefix (str) |
161 | 160 |
|
162 | 161 |
Specifies the prefix to be stripped from the domain in R-URI |
163 | 162 |
before doing the search. |
164 | 163 |
|
165 |
- Default value is "NULL". |
|
164 |
+ Default value is "NULL". |
|
166 | 165 |
|
167 | 166 |
Example 1-7. Set domain_prefix parameter |
168 | 167 |
... |
169 | 168 |
modparam("alias_db", "domain_prefix", "sip.") |
170 | 169 |
... |
171 |
- _________________________________________________________ |
|
170 |
+ __________________________________________________________ |
|
172 | 171 |
|
173 | 172 |
1.4. Exported Functions |
174 | 173 |
|
175 | 174 |
1.4.1. alias_db_lookup(table_name) |
176 | 175 |
|
177 |
- The function takes the R-URI and search to see whether it is |
|
178 |
- an alias or not. If it is an alias for a local user, the R-URI |
|
179 |
- is replaced with user's SIP uri. |
|
176 |
+ The function takes the R-URI and search to see whether it is an |
|
177 |
+ alias or not. If it is an alias for a local user, the R-URI is |
|
178 |
+ replaced with user's SIP uri. |
|
180 | 179 |
|
181 |
- The function returns TRUE if R-URI is alias and it was |
|
182 |
- replaced by user's SIP uri. |
|
180 |
+ The function returns TRUE if R-URI is alias and it was replaced |
|
181 |
+ by user's SIP uri. |
|
183 | 182 |
|
184 | 183 |
Meaning of the parameters is as follows: |
185 | 184 |
|
... | ... |
@@ -192,13 +191,13 @@ modparam("alias_db", "domain_prefix", "sip.") |
192 | 191 |
... |
193 | 192 |
alias_db_lookup("dbaliases"); |
194 | 193 |
... |
195 |
- _________________________________________________________ |
|
194 |
+ __________________________________________________________ |
|
196 | 195 |
|
197 | 196 |
Chapter 2. Developer's Guide |
198 | 197 |
|
199 | 198 |
The module does not provide any API to use in other OpenSER |
200 | 199 |
modules. |
201 |
- _________________________________________________________ |
|
200 |
+ __________________________________________________________ |
|
202 | 201 |
|
203 | 202 |
Chapter 3. Frequently Asked Questions |
204 | 203 |
|
... | ... |
@@ -212,8 +211,8 @@ Chapter 3. Frequently Asked Questions |
212 | 211 |
|
213 | 212 |
3.2. Where can I post a question about this module? |
214 | 213 |
|
215 |
- First at all check if your question was already answered on |
|
216 |
- one of our mailing lists: |
|
214 |
+ First at all check if your question was already answered on one |
|
215 |
+ of our mailing lists: |
|
217 | 216 |
|
218 | 217 |
* User Mailing List - |
219 | 218 |
http://openser.org/cgi-bin/mailman/listinfo/users |
... | ... |
@@ -1,4 +1,3 @@ |
1 |
- |
|
2 | 1 |
AUTH_DIAMETER Module |
3 | 2 |
|
4 | 3 |
Elena-Ramona Modroiu |
... | ... |
@@ -10,7 +9,7 @@ Edited by |
10 | 9 |
Elena-Ramona Modroiu |
11 | 10 |
|
12 | 11 |
Copyright � 2003, 2004 FhG FOKUS |
13 |
- _________________________________________________________ |
|
12 |
+ __________________________________________________________ |
|
14 | 13 |
|
15 | 14 |
Table of Contents |
16 | 15 |
1. User's Guide |
... | ... |
@@ -46,7 +45,7 @@ Elena-Ramona Modroiu |
46 | 45 |
1-5. diameter_www_authorize usage |
47 | 46 |
1-6. diameter_proxy_authorize usage |
48 | 47 |
1-7. diameter_is_user_in usage |
49 |
- _________________________________________________________ |
|
48 |
+ __________________________________________________________ |
|
50 | 49 |
|
51 | 50 |
Chapter 1. User's Guide |
52 | 51 |
|
... | ... |
@@ -86,7 +85,7 @@ Chapter 1. User's Guide |
86 | 85 |
Result-Code=2001 |
87 | 86 |
|
88 | 87 |
... |
89 |
- _________________________________________________________ |
|
88 |
+ __________________________________________________________ |
|
90 | 89 |
|
91 | 90 |
1.2. Dependencies |
92 | 91 |
|
... | ... |
@@ -95,7 +94,7 @@ Chapter 1. User's Guide |
95 | 94 |
The following modules must be loaded before this module: |
96 | 95 |
|
97 | 96 |
* sl - used to send stateless replies. |
98 |
- _________________________________________________________ |
|
97 |
+ __________________________________________________________ |
|
99 | 98 |
|
100 | 99 |
1.2.2. External Libraries or Applications |
101 | 100 |
|
... | ... |
@@ -103,7 +102,7 @@ Chapter 1. User's Guide |
103 | 102 |
before running OpenSER with this module loaded: |
104 | 103 |
|
105 | 104 |
* None. |
106 |
- _________________________________________________________ |
|
105 |
+ __________________________________________________________ |
|
107 | 106 |
|
108 | 107 |
1.3. Exported Parameters |
109 | 108 |
|
... | ... |
@@ -111,48 +110,48 @@ Chapter 1. User's Guide |
111 | 110 |
|
112 | 111 |
Hostname of the machine where the DIAMETER Client is running. |
113 | 112 |
|
114 |
- Default value is "localhost". |
|
113 |
+ Default value is "localhost". |
|
115 | 114 |
|
116 | 115 |
Example 1-2. Set diameter_client_host parameter |
117 | 116 |
... |
118 | 117 |
modparam("auth_diameter", "diameter_client_host", "10.10.10.10") |
119 | 118 |
... |
120 |
- _________________________________________________________ |
|
119 |
+ __________________________________________________________ |
|
121 | 120 |
|
122 | 121 |
1.3.2. diameter_client_port (int) |
123 | 122 |
|
124 | 123 |
Port number where the DIAMETER Client is listening. |
125 | 124 |
|
126 |
- Default value is "3000". |
|
125 |
+ Default value is "3000". |
|
127 | 126 |
|
128 | 127 |
Example 1-3. Set diameter_client_port parameter |
129 | 128 |
... |
130 | 129 |
modparam("auth_diameter", "diameter_client_port", 3000) |
131 | 130 |
... |
132 |
- _________________________________________________________ |
|
131 |
+ __________________________________________________________ |
|
133 | 132 |
|
134 | 133 |
1.3.3. use_domain (int) |
135 | 134 |
|
136 | 135 |
Specifies whether the domain name part of URI is used when |
137 | 136 |
checking the user's privileges. |
138 | 137 |
|
139 |
- Default value is "0 (0==false and 1==true )". |
|
138 |
+ Default value is "0 (0==false and 1==true )". |
|
140 | 139 |
|
141 | 140 |
Example 1-4. Set use_domain parameter |
142 | 141 |
... |
143 | 142 |
modparam("auth_diameter", "use_domain", 1) |
144 | 143 |
... |
145 |
- _________________________________________________________ |
|
144 |
+ __________________________________________________________ |
|
146 | 145 |
|
147 | 146 |
1.4. Exported Functions |
148 | 147 |
|
149 | 148 |
1.4.1. diameter_www_authorize(realm) |
150 | 149 |
|
151 |
- SIP Server checks for authorization having a DIAMETER server |
|
152 |
- in backend. If no credentials are provided inside the SIP |
|
153 |
- request then a challenge is sent back to UAC. If the |
|
154 |
- credentials don't match the ones computed by DISC then "403 |
|
155 |
- Forbidden" is sent back. |
|
150 |
+ SIP Server checks for authorization having a DIAMETER server in |
|
151 |
+ backend. If no credentials are provided inside the SIP request |
|
152 |
+ then a challenge is sent back to UAC. If the credentials don't |
|
153 |
+ match the ones computed by DISC then "403 Forbidden" is sent |
|
154 |
+ back. |
|
156 | 155 |
|
157 | 156 |
Negative codes may be interpreted as follows: |
158 | 157 |
|
... | ... |
@@ -174,7 +173,7 @@ if(!diameter_www_authorize("siphub.net")) |
174 | 173 |
exit; |
175 | 174 |
}; |
176 | 175 |
... |
177 |
- _________________________________________________________ |
|
176 |
+ __________________________________________________________ |
|
178 | 177 |
|
179 | 178 |
1.4.2. diameter_proxy_authorize(realm) |
180 | 179 |
|
... | ... |
@@ -199,7 +198,7 @@ if(!diameter_proxy_authorize("siphub.net")) |
199 | 198 |
exit; |
200 | 199 |
}; |
201 | 200 |
... |
202 |
- _________________________________________________________ |
|
201 |
+ __________________________________________________________ |
|
203 | 202 |
|
204 | 203 |
1.4.3. diameter_is_user_in(who, group) |
205 | 204 |
|
... | ... |
@@ -222,18 +221,18 @@ if(!diameter_is_user_in("From", "voicemail")) |
222 | 221 |
exit; |
223 | 222 |
}; |
224 | 223 |
... |
225 |
- _________________________________________________________ |
|
224 |
+ __________________________________________________________ |
|
226 | 225 |
|
227 | 226 |
1.5. Installation & Running |
228 | 227 |
|
229 | 228 |
Notes about installation and running. |
230 |
- _________________________________________________________ |
|
229 |
+ __________________________________________________________ |
|
231 | 230 |
|
232 | 231 |
Chapter 2. Developer's Guide |
233 | 232 |
|
234 | 233 |
The module does not provide any API to use in other OpenSER |
235 | 234 |
modules. |
236 |
- _________________________________________________________ |
|
235 |
+ __________________________________________________________ |
|
237 | 236 |
|
238 | 237 |
Chapter 3. Frequently Asked Questions |
239 | 238 |
|
... | ... |
@@ -247,8 +246,8 @@ Chapter 3. Frequently Asked Questions |
247 | 246 |
|
248 | 247 |
3.2. Where can I post a question about this module? |
249 | 248 |
|
250 |
- First at all check if your question was already answered on |
|
251 |
- one of our mailing lists: |
|
249 |
+ First at all check if your question was already answered on one |
|
250 |
+ of our mailing lists: |
|
252 | 251 |
|
253 | 252 |
* User Mailing List - |
254 | 253 |
http://openser.org/cgi-bin/mailman/listinfo/users |
... | ... |
@@ -1,4 +1,3 @@ |
1 |
- |
|
2 | 1 |
Auth_radius Module |
3 | 2 |
|
4 | 3 |
Jan Janak |
... | ... |
@@ -22,7 +21,7 @@ Jan Janak |
22 | 21 |
Copyright � 2002, 2003 FhG FOKUS |
23 | 22 |
|
24 | 23 |
Copyright � 2005 voice-system.ro |
25 |
- _________________________________________________________ |
|
24 |
+ __________________________________________________________ |
|
26 | 25 |
|
27 | 26 |
Table of Contents |
28 | 27 |
1. User's Guide |
... | ... |
@@ -53,7 +52,7 @@ Jan Janak |
53 | 52 |
1-3. service_type parameter usage |
54 | 53 |
1-4. radius_www_authorize usage |
55 | 54 |
1-5. proxy_authorize usage |
56 |
- _________________________________________________________ |
|
55 |
+ __________________________________________________________ |
|
57 | 56 |
|
58 | 57 |
Chapter 1. User's Guide |
59 | 58 |
|
... | ... |
@@ -71,21 +70,21 @@ Chapter 1. User's Guide |
71 | 70 |
draft-sterman-aaa-sip-00. This module requires radiusclient-ng |
72 | 71 |
library version 0.5.0 or higher which is available from |
73 | 72 |
http://developer.berlios.de/projects/radiusclient-ng/. |
74 |
- _________________________________________________________ |
|
73 |
+ __________________________________________________________ |
|
75 | 74 |
|
76 | 75 |
1.2. Additional Credentials |
77 | 76 |
|
78 |
- When performing authentification, the RADIUS server may |
|
79 |
- include in the response additional credentials. This scheme is |
|
80 |
- very useful in fetching additional user information from the |
|
81 |
- RADIUS server without making extra queries. |
|
77 |
+ When performing authentification, the RADIUS server may include |
|
78 |
+ in the response additional credentials. This scheme is very |
|
79 |
+ useful in fetching additional user information from the RADIUS |
|
80 |
+ server without making extra queries. |
|
82 | 81 |
|
83 | 82 |
The additional credentials are embedded in the RADIUS reply as |
84 | 83 |
AVPs "SIP-AVP". The syntax of the value is: |
85 | 84 |
|
86 |
- * value = SIP_AVP_NAME SIP_AVP_VALUE |
|
87 |
- * SIP_AVP_NAME = STRING_NAME | '#'ID_NUMBER |
|
88 |
- * SIP_AVP_VALUE = ':'STRING_VALUE | '#'NUMBER_VALUE |
|
85 |
+ * value = SIP_AVP_NAME SIP_AVP_VALUE |
|
86 |
+ * SIP_AVP_NAME = STRING_NAME | '#'ID_NUMBER |
|
87 |
+ * SIP_AVP_VALUE = ':'STRING_VALUE | '#'NUMBER_VALUE |
|
89 | 88 |
|
90 | 89 |
All additional credentials will be stored as OpenSER AVPs |
91 | 90 |
(SIP_AVP_NAME = SIP_AVP_VALUE). |
... | ... |
@@ -103,17 +102,17 @@ Chapter 1. User's Guide |
103 | 102 |
"#14#28" |
104 | 103 |
-> ID AVP (14) with INTEGER VALUE (28) |
105 | 104 |
.... |
106 |
- _________________________________________________________ |
|
105 |
+ __________________________________________________________ |
|
107 | 106 |
|
108 | 107 |
1.3. Dependencies |
109 | 108 |
|
110 | 109 |
1.3.1. OpenSER Modules |
111 | 110 |
|
112 |
- The module depends on the following modules (in the other |
|
113 |
- words the listed modules must be loaded before this module): |
|
111 |
+ The module depends on the following modules (in the other words |
|
112 |
+ the listed modules must be loaded before this module): |
|
114 | 113 |
|
115 | 114 |
* auth -- Generic authentication functions |
116 |
- _________________________________________________________ |
|
115 |
+ __________________________________________________________ |
|
117 | 116 |
|
118 | 117 |
1.3.2. External Libraries or Applications |
119 | 118 |
|
... | ... |
@@ -123,21 +122,21 @@ Chapter 1. User's Guide |
123 | 122 |
* radiusclient-ng 0.5.0 or higher -- library and development |
124 | 123 |
files. See |
125 | 124 |
http://developer.berlios.de/projects/radiusclient-ng/. |
126 |
- _________________________________________________________ |
|
125 |
+ __________________________________________________________ |
|
127 | 126 |
|
128 | 127 |
1.4. Exported Parameters |
129 | 128 |
|
130 | 129 |
1.4.1. radius_config (string) |
131 | 130 |
|
132 |
- This is the location of the configuration file of radius |
|
133 |
- client libraries. |
|
131 |
+ This is the location of the configuration file of radius client |
|
132 |
+ libraries. |
|
134 | 133 |
|
135 | 134 |
Default value is |
136 | 135 |
"/usr/local/etc/radiusclient-ng/radiusclient.conf". |
137 | 136 |
|
138 | 137 |
Example 1-2. radius_config parameter usage |
139 | 138 |
modparam("auth_radius", "radius_config", "/etc/radiusclient.conf") |
140 |
- _________________________________________________________ |
|
139 |
+ __________________________________________________________ |
|
141 | 140 |
|
142 | 141 |
1.4.2. service_type (integer) |
143 | 142 |
|
... | ... |
@@ -150,7 +149,7 @@ modparam("auth_radius", "radius_config", "/etc/radiusclient.conf") |
150 | 149 |
|
151 | 150 |
Example 1-3. service_type parameter usage |
152 | 151 |
modparam("auth_radius", "service_type", 15) |
153 |
- _________________________________________________________ |
|
152 |
+ __________________________________________________________ |
|
154 | 153 |
|
155 | 154 |
1.5. Exported Functions |
156 | 155 |
|
... | ... |
@@ -179,15 +178,15 @@ modparam("auth_radius", "service_type", 15) |
179 | 178 |
|
180 | 179 |
Meaning of the parameter is as follows: |
181 | 180 |
|
182 |
- * realm - Realm is a opaque string that the user agent |
|
183 |
- should present to the user so he can decide what username |
|
184 |
- and password to use. Usually this is domain of the host |
|
185 |
- the server is running on. |
|
186 |
- If an empty string "" is used then the server will |
|
187 |
- generate it from the request. In case of REGISTER requests |
|
188 |
- To header field domain will be used (because this header |
|
189 |
- field represents a user being registered), for all other |
|
190 |
- messages From header field domain will be used. |
|
181 |
+ * realm - Realm is a opaque string that the user agent should |
|
182 |
+ present to the user so he can decide what username and |
|
183 |
+ password to use. Usually this is domain of the host the |
|
184 |
+ server is running on. |
|
185 |
+ If an empty string "" is used then the server will generate |
|
186 |
+ it from the request. In case of REGISTER requests To header |
|
187 |
+ field domain will be used (because this header field |
|
188 |
+ represents a user being registered), for all other messages |
|
189 |
+ From header field domain will be used. |
|
191 | 190 |
The string may contain pseudo variables. |
192 | 191 |
|
193 | 192 |
This function can be used from REQUEST_ROUTE. |
... | ... |
@@ -198,7 +197,7 @@ if (!radius_www_authorize("siphub.net")) { |
198 | 197 |
www_challenge("siphub.net", "1"); |
199 | 198 |
}; |
200 | 199 |
... |
201 |
- _________________________________________________________ |
|
200 |
+ __________________________________________________________ |
|
202 | 201 |
|
203 | 202 |
1.5.2. radius_proxy_authorize(realm [, uri_user]) |
204 | 203 |
|
... | ... |
@@ -218,12 +217,12 @@ if (!radius_www_authorize("siphub.net")) { |
218 | 217 |
|
219 | 218 |
Meaning of the parameters is as follows: |
220 | 219 |
|
221 |
- * realm - Realm is a opaque string that the user agent |
|
222 |
- should present to the user so he can decide what username |
|
223 |
- and password to use. This is usually one of the domains |
|
224 |
- the proxy is responsible for. If an empty string "" is |
|
225 |
- used then the server will generate realm from host part of |
|
226 |
- From header field URI. |
|
220 |
+ * realm - Realm is a opaque string that the user agent should |
|
221 |
+ present to the user so he can decide what username and |
|
222 |
+ password to use. This is usually one of the domains the |
|
223 |
+ proxy is responsible for. If an empty string "" is used |
|
224 |
+ then the server will generate realm from host part of From |
|
225 |
+ header field URI. |
|
227 | 226 |
The string may contain pseudo variables. |
228 | 227 |
* uri_user - Uri_user is an optional pseudo variable |
229 | 228 |
parameter whose value, if present, will be given to Radius |
... | ... |
@@ -236,24 +235,23 @@ if (!radius_www_authorize("siphub.net")) { |
236 | 235 |
|
237 | 236 |
Example 1-5. proxy_authorize usage |
238 | 237 |
... |
239 |
-if (!radius_proxy_authorize("")) { # Realm and URI user will be autog |
|
240 |
-enerated |
|
238 |
+if (!radius_proxy_authorize("")) { # Realm and URI user will be autoge |
|
239 |
+nerated |
|
241 | 240 |
proxy_challenge("", "1"); |
242 | 241 |
}; |
243 | 242 |
... |
244 |
-if (!radius_proxy_authorize("$pd", "$pU")) { # Realm and URI user are t |
|
245 |
-aken |
|
246 |
- proxy_challenge("$pd", "1"); # from P-Preferred-Identit |
|
247 |
-y |
|
243 |
+if (!radius_proxy_authorize("$pd", "$pU")) { # Realm and URI user are ta |
|
244 |
+ken |
|
245 |
+ proxy_challenge("$pd", "1"); # from P-Preferred-Identity |
|
248 | 246 |
}; # header field |
249 | 247 |
... |
250 |
- _________________________________________________________ |
|
248 |
+ __________________________________________________________ |
|
251 | 249 |
|
252 | 250 |
Chapter 2. Developer's Guide |
253 | 251 |
|
254 | 252 |
The module does not provide any API to use in other OpenSER |
255 | 253 |
modules. |
256 |
- _________________________________________________________ |
|
254 |
+ __________________________________________________________ |
|
257 | 255 |
|
258 | 256 |
Chapter 3. Frequently Asked Questions |
259 | 257 |
|
... | ... |
@@ -267,8 +265,8 @@ Chapter 3. Frequently Asked Questions |
267 | 265 |
|
268 | 266 |
3.2. Where can I post a question about this module? |
269 | 267 |
|
270 |
- First at all check if your question was already answered on |
|
271 |
- one of our mailing lists: |
|
268 |
+ First at all check if your question was already answered on one |
|
269 |
+ of our mailing lists: |
|
272 | 270 |
|
273 | 271 |
* User Mailing List - |
274 | 272 |
http://openser.org/cgi-bin/mailman/listinfo/users |
... | ... |
@@ -1,4 +1,3 @@ |
1 |
- |
|
2 | 1 |
AVPops Module |
3 | 2 |
|
4 | 3 |
Ramona-Elena Modroiu |
... | ... |
@@ -10,7 +9,7 @@ Edited by |
10 | 9 |
Ramona-Elena Modroiu |
11 | 10 |
|
12 | 11 |
Copyright � 2004, 2005 voice-system.ro |
13 |
- _________________________________________________________ |
|
12 |
+ __________________________________________________________ |
|
14 | 13 |
|
15 | 14 |
Table of Contents |
16 | 15 |
1. User's Guide |
... | ... |
@@ -39,20 +38,20 @@ Ramona-Elena Modroiu |
39 | 38 |
|
40 | 39 |
1.5. Exported Functions |
41 | 40 |
|
42 |
- 1.5.1. avp_db_load(source,name) |
|
41 |
+ 1.5.1. avp_db_load(source,name) |
|
43 | 42 |
1.5.2. avp_db_store(source,name) |
44 | 43 |
1.5.3. avp_db_delete(source,name) |
45 | 44 |
1.5.4. avp_db_query(query[,dest]) |
46 | 45 |
1.5.5. avp_write(value,name) - removed |
47 |
- 1.5.6. avp_delete(name) |
|
48 |
- 1.5.7. avp_pushto(destination,name) |
|
49 |
- 1.5.8. avp_check(name,op_value) |
|
50 |
- 1.5.9. avp_copy(old_name,new_name) |
|
51 |
- 1.5.10. avp_printf(dest, format) |
|
46 |
+ 1.5.6. avp_delete(name) |
|
47 |
+ 1.5.7. avp_pushto(destination,name) |
|
48 |
+ 1.5.8. avp_check(name,op_value) |
|
49 |
+ 1.5.9. avp_copy(old_name,new_name) |
|
50 |
+ 1.5.10. avp_printf(dest, format) |
|
52 | 51 |
1.5.11. avp_subst(avps, subst) |
53 |
- 1.5.12. avp_op(name,op_value) |
|
54 |
- 1.5.13. is_avp_set(name) |
|
55 |
- 1.5.14. avp_print() |
|
52 |
+ 1.5.12. avp_op(name,op_value) |
|
53 |
+ 1.5.13. is_avp_set(name) |
|
54 |
+ 1.5.14. avp_print() |
|
56 | 55 |
|
57 | 56 |
2. Developer's Guide |
58 | 57 |
3. Frequently Asked Questions |
... | ... |
@@ -84,7 +83,7 @@ Ramona-Elena Modroiu |
84 | 83 |
1-24. avp_op usage |
85 | 84 |
1-25. is_avp_set usage |
86 | 85 |
1-26. avp_print usage |
87 |
- _________________________________________________________ |
|
86 |
+ __________________________________________________________ |
|
88 | 87 |
|
89 | 88 |
Chapter 1. User's Guide |
90 | 89 |
|
... | ... |
@@ -93,11 +92,11 @@ Chapter 1. User's Guide |
93 | 92 |
AVPops (AVP-operations) modules implements a set of script |
94 | 93 |
functions which allow access and manipulation of user AVPs |
95 | 94 |
(preferences) and pseudo-variables. AVPs are a powerful tool |
96 |
- for implementing services/preferences per user/domain. Now |
|
97 |
- they are usable directly from configuration script. Functions |
|
98 |
- for interfacing DB resources (loading/storing/removing), |
|
99 |
- functions for swapping information between AVPs and SIP |
|
100 |
- messages, function for testing/checking the value of an AVP. |
|
95 |
+ for implementing services/preferences per user/domain. Now they |
|
96 |
+ are usable directly from configuration script. Functions for |
|
97 |
+ interfacing DB resources (loading/storing/removing), functions |
|
98 |
+ for swapping information between AVPs and SIP messages, |
|
99 |
+ function for testing/checking the value of an AVP. |
|
101 | 100 |
|
102 | 101 |
AVPs are persistent per SIP transaction, being available in |
103 | 102 |
"route", "branch_route" and "failure_route". To make them |
... | ... |
@@ -110,7 +109,7 @@ Chapter 1. User's Guide |
110 | 109 |
explanations and commented examples) can be found on Voice |
111 | 110 |
Sistem documentation web page at |
112 | 111 |
http://voice-system.ro/docs/avpops . |
113 |
- _________________________________________________________ |
|
112 |
+ __________________________________________________________ |
|
114 | 113 |
|
115 | 114 |
1.2. Dependencies |
116 | 115 |
|
... | ... |
@@ -119,7 +118,7 @@ Chapter 1. User's Guide |
119 | 118 |
The following modules must be loaded before this module: |
120 | 119 |
|
121 | 120 |
* Optionally a database module |
122 |
- _________________________________________________________ |
|
121 |
+ __________________________________________________________ |
|
123 | 122 |
|
124 | 123 |
1.2.2. External Libraries or Applications |
125 | 124 |
|
... | ... |
@@ -127,7 +126,7 @@ Chapter 1. User's Guide |
127 | 126 |
before running OpenSER with this module loaded: |
128 | 127 |
|
129 | 128 |
* None |
130 |
- _________________________________________________________ |
|
129 |
+ __________________________________________________________ |
|
131 | 130 |
|
132 | 131 |
1.3. AVP naming format |
133 | 132 |
|
... | ... |
@@ -142,9 +141,9 @@ Chapter 1. User's Guide |
142 | 141 |
The type flag is mandatory. |
143 | 142 |
script_flags must be an 8 bit unsigned number, therefore |
144 | 143 |
can be set up to 8 flags. If no script flag is provided, |
145 |
- the name will match all AVPs, regardless they have or not |
|
146 |
- a script flag set (preserves the compatibility with the |
|
147 |
- old naming schema). |
|
144 |
+ the name will match all AVPs, regardless they have or not a |
|
145 |
+ script flag set (preserves the compatibility with the old |
|
146 |
+ naming schema). |
|
148 | 147 |
* avp_name = string | integer |
149 | 148 |
string - might be any alphanumeric string, wich contain |
150 | 149 |
following characters: [a-z] [A-Z] [0-9] '_' |
... | ... |
@@ -159,11 +158,11 @@ Chapter 1. User's Guide |
159 | 158 |
$avp(i:11) - the AVP identified by integer 11 |
160 | 159 |
$avp(s:foo) - the AVP identified by the string 'foo' |
161 | 160 |
$avp(bar) - the AVP identified by the AVP alias 'bar' |
162 |
-$avp(i3:123) - the AVP identified by the integer 123 which has script f |
|
163 |
-lags 1 |
|
161 |
+$avp(i3:123) - the AVP identified by the integer 123 which has script fl |
|
162 |
+ags 1 |
|
164 | 163 |
and 2 set |
165 | 164 |
... |
166 |
- _________________________________________________________ |
|
165 |
+ __________________________________________________________ |
|
167 | 166 |
|
168 | 167 |
1.4. Exported Parameters |
169 | 168 |
|
... | ... |
@@ -171,30 +170,30 @@ lags 1 |
171 | 170 |
|
172 | 171 |
DB URL for database connection. |
173 | 172 |
|
174 |
- This parameter is optional, it's default value being NULL. |
|
173 |
+ This parameter is optional, it's default value being NULL. |
|
175 | 174 |
|
176 | 175 |
Example 1-2. Set avp_url parameter |
177 | 176 |
... |
178 | 177 |
modparam("avpops","avp_url","mysql://user:passwd@host/database") |
179 | 178 |
... |
180 |
- _________________________________________________________ |
|
179 |
+ __________________________________________________________ |
|
181 | 180 |
|
182 | 181 |
1.4.2. db_url (string) |
183 | 182 |
|
184 | 183 |
This parameter has the same meaning as "avp_url" parameter. |
185 |
- _________________________________________________________ |
|
184 |
+ __________________________________________________________ |
|
186 | 185 |
|
187 | 186 |
1.4.3. avp_table (string) |
188 | 187 |
|
189 | 188 |
DB table to be used. |
190 | 189 |
|
191 |
- This parameter is optional, it's default value being NULL. |
|
190 |
+ This parameter is optional, it's default value being NULL. |
|
192 | 191 |
|
193 | 192 |
Example 1-3. Set avp_table parameter |
194 | 193 |
... |
195 | 194 |
modparam("avpops","avp_table","avptable") |
196 | 195 |
... |
197 |
- _________________________________________________________ |
|
196 |
+ __________________________________________________________ |
|
198 | 197 |
|
199 | 198 |
1.4.4. avp_aliases (string) - removed |
200 | 199 |
|
... | ... |
@@ -206,101 +205,101 @@ modparam("avpops","avp_table","avptable") |
206 | 205 |
... |
207 | 206 |
avp_aliases="uuid=I:660;email=s:email_addr;fwd=i:753" |
208 | 207 |
... |
209 |
- _________________________________________________________ |
|
208 |
+ __________________________________________________________ |
|
210 | 209 |
|
211 | 210 |
1.4.5. use_domain (integer) |
212 | 211 |
|
213 |
- If the domain part of the an URI should be used for |
|
214 |
- identifying an AVP in DB operations. |
|
212 |
+ If the domain part of the an URI should be used for identifying |
|
213 |
+ an AVP in DB operations. |
|
215 | 214 |
|
216 |
- Default value is 0 (no). |
|
215 |
+ Default value is 0 (no). |
|