avp_radius Module Juha Heinanen Edited by Daniel-Constantin Mierla Copyright © 2004 Juha Heinanen __________________________________________________________ Table of Contents 1. User's Guide 1.1. Overview 1.2. Dependencies 1.2.1. OpenSER Modules 1.2.2. External Libraries or Applications 1.3. Exported Parameters 1.3.1. radius_config (string) 1.3.2. caller_service_type (integer) 1.3.3. callee_service_type (integer) 1.4. Exported Functions 1.4.1. avp_load_radius(user) 2. Developer's Guide 3. Frequently Asked Questions List of Examples 1-1. "SIP-AVP" RADIUS AVP exmaples 1-2. radius_config parameter usage 1-3. caller_service_type parameter usage 1-4. callee_service_type parameter usage 1-5. avp_load_radius() usage __________________________________________________________ Chapter 1. User's Guide 1.1. Overview avp_radius module allows loading of user's attributes into AVPs from Radius. User's name and domain can be based on From URI, Request URI, or authenticated credentials. The module assumes that Radius returns the AVPs as values of reply attribute SIP-AVP. Its value must be a string of form: * value = SIP_AVP_NAME SIP_AVP_VALUE * SIP_AVP_NAME = STRING_NAME | '#'ID_NUMBER * SIP_AVP_VALUE = ':'STRING_VALUE | '#'NUMBER_VALUE Example 1-1. "SIP-AVP" RADIUS AVP exmaples .... "email:joe@yahoo.com" -> STRING NAME AVP (email) with STRING VALUE (joe@yahoo.com) "#14:joe@yahoo.com" -> ID AVP (14) with STRING VALUE (joe@yahoo.com) "age#28" -> STRING NAME AVP (age) with INTEGER VALUE (28) "#14#28" -> ID AVP (14) with INTEGER VALUE (28) .... For AVP with STRING NAME, the module prefixes each attribute name as returned from Radius by string "caller_" or "callee_" depending if caller's or callee's attributes are loaded. __________________________________________________________ 1.2. Dependencies 1.2.1. OpenSER Modules The module depends on the following modules (in the other words the listed modules must be loaded before this module): * none __________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before compilling OpenSER with this module loaded: * radiusclient-ng 0.5.0 or higher -- library and development files. See http://developer.berlios.de/projects/radiusclient-ng/. __________________________________________________________ 1.3. Exported Parameters 1.3.1. radius_config (string) This is the location of the configuration file of radius client libraries. Default value is "/usr/local/etc/radiusclient-ng/radiusclient.conf". Example 1-2. radius_config parameter usage modparam("avp_radius", "radius_config", "/etc/radiusclient.conf") __________________________________________________________ 1.3.2. caller_service_type (integer) This is the value of the Service-Type radius attribute to be used, when caller's attributes are loaded. Default value is dictionary value of "SIP-Caller-AVPs" Service-Type. Example 1-3. caller_service_type parameter usage modparam("avp_radius", "caller_service_type", 18) __________________________________________________________ 1.3.3. callee_service_type (integer) This is the value of the Service-Type radius attribute to be used, when callee's attributes are loaded. Default value is dictionary value of "SIP-Callee-AVPs" Service-Type. Example 1-4. callee_service_type parameter usage modparam("avp_radius", "callee_service_type", 19) __________________________________________________________ 1.4. Exported Functions 1.4.1. avp_load_radius(user) The functions loads user's attributes from radius and stores them into AVPs. Parameter "user" is used to indicate, whose attributes are loaded. Possible values are: * caller - attributes belong to the user of the From URI are loaded * callee - attributes belong to the user of the Request URI are loaded * digest - attributes belong to the authenticated user are loaded AVP name returned from Radius is prefixed by string "caller_", if avp_load_radius parameter is "caller" or "digest", and by "callee_", if parameter is "callee". This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. Example 1-5. avp_load_radius() usage ... avp_load_radius("callee"); ... __________________________________________________________ Chapter 2. Developer's Guide The module does not provide any API to use in other OpenSER modules. __________________________________________________________ Chapter 3. Frequently Asked Questions 3.1. Where can I find more about OpenSER? 3.2. Where can I post a question about this module? 3.3. How can I report a bug? 3.1. Where can I find more about OpenSER? Take a look at http://www.openser.org/. 3.2. Where can I post a question about this module? First at all check if your question was already answered on one of our mailing lists: * User Mailing List - http://lists.openser.org/cgi-bin/mailman/listinfo/users * Developer Mailing List - http://lists.openser.org/cgi-bin/mailman/listinfo/devel E-mails regarding any stable OpenSER release should be sent to <users@lists.openser.org> and e-mails regarding development versions should be sent to <devel@lists.openser.org>. If you want to keep the mail private, send it to <team@lists.openser.org>. 3.3. How can I report a bug? Please follow the guidelines provided at: http://sourceforge.net/tracker/?group_id=139143.