URI_RADIUS module
Admin Guide
Section titled “Admin Guide”Overview
Section titled “Overview”This module implements some URI related Radius based tests.
Dependencies
Section titled “Dependencies”OpenSIPS Modules
Section titled “OpenSIPS Modules”The module depends on the following modules (in the other words the listed modules must be loaded before this module):
- none
External Libraries or Applications
Section titled “External Libraries or Applications”The following libraries or applications must be installed before compilling OpenSIPS with this module loaded:
- radiusclient-ng 0.5.0 or higher — library and development files. See http://developer.berlios.de/projects/radiusclient-ng/.
Exported Parameters
Section titled “Exported Parameters”radius_config (string)
Section titled “radius_config (string)”Radiusclient configuration file.
Default value is “/usr/local/etc/radiusclient-ng/radiusclient.conf”.
...modparam("uri_radius", "radius_config", "/etc/radiusclient.conf")...service_type (integer)
Section titled “service_type (integer)”Radius service type used in
radius_does_uri_exist and radius_does_uri_user_exist checks.
Default value is 10 (Call-Check).
...modparam("uri_radius", "service_type", 11)...use_sip_uri_host (integer)
Section titled “use_sip_uri_host (integer)”If zero, radius_does_uri_exist
sends to RADIUS server Request URI user@host in UserName
attribute. If non-zero, radius_does_uri_exist
sends to RADIUS server Request URI user in UserName attribute
and host in SIP-URI-Host attribute.
Default value is 0.
...modparam("uri_radius", "use_sip_uri_host", 1)...Exported Functions
Section titled “Exported Functions”radius_does_uri_exist([pvar])
Section titled “radius_does_uri_exist([pvar])”Checks from Radius if user@host in Request-URI or in URI stored in pseudo variable argument belongs to a local user. Can be used to decide if 404 or 480 should be returned after lookup has failed. If yes, loads AVP based on SIP-AVP reply items returned from Radius. Each SIP-AVP reply item must have a string value of form:
- value = SIP_AVP_NAME SIP_AVP_VALUE
- SIP_AVP_NAME = STRING_NAME | ’#‘ID_NUMBER
- SIP_AVP_VALUE = ’:‘STRING_VALUE | ’#‘NUMBER_VALUE
Returns 1 if Radius returns Access-Accept, -1 if Radius returns Access-Reject, and -2 in case of internal error.
This function can be used from REQUEST_ROUTE.
...if (radius_does_uri_exist()) { ...};...radius_does_uri_user_exist([pvar])
Section titled “radius_does_uri_user_exist([pvar])”Similar to radius_does_uri_exist, but check is done based only on Request-URI user part or user stored in pseudo variable argument. User should thus be unique among all users, such as an E.164 number.
This function can be used from REQUEST_ROUTE.
...if (radius_does_uri_user_exist()) { ...};...Contributors
Section titled “Contributors”By Commit Statistics
Section titled “By Commit Statistics”Top contributors by DevScore(1), authored commits(2) and lines added/removed(3)
| # | Name | DevScore | Commits | Lines++ | Lines— |
|---|---|---|---|---|---|
| 1. | Bogdan-Andrei Iancu (@bogdan-iancu) | 25 | 18 | 261 | 212 |
| 2. | Juha Heinanen (@juha-h) | 14 | 6 | 494 | 156 |
| 3. | Daniel-Constantin Mierla (@miconda) | 12 | 10 | 23 | 18 |
| 4. | Jan Janak (@janakj) | 12 | 5 | 613 | 11 |
| 5. | Stefan Darius (@dariusstefan) | 6 | 3 | 177 | 23 |
| 6. | Maksym Sobolyev (@sobomax) | 5 | 2 | 31 | 62 |
| 7. | Andrei Pelinescu-Onciul | 4 | 2 | 2 | 1 |
| 8. | Anca Vamanu | 3 | 1 | 11 | 11 |
| 9. | Peter Nixon | 3 | 1 | 4 | 7 |
| 10. | Razvan Crainea (@razvancrainea) | 3 | 1 | 2 | 2 |
All remaining contributors: Konstantin Bokarius, Edson Gellert Schubert, Elena-Ramona Modroiu, Jiri Kuthan (@jiriatipteldotorg).
(1) DevScore = author_commits + author_lines_added / (project_lines_added / project_commits) + author_lines_deleted / (project_lines_deleted / project_commits)
(2) including any documentation-related commits, excluding merge commits
(3) ignoring whitespace edits, renamed files and auto-generated files
By Commit Activity
Section titled “By Commit Activity”| # | Name | Commit Activity |
|---|---|---|
| 1. | Stefan Darius (@dariusstefan) | Jun 2026 - Jul 2026 |
| 2. | Razvan Crainea (@razvancrainea) | Jun 2026 - Jun 2026 |
| 3. | Bogdan-Andrei Iancu (@bogdan-iancu) | Jun 2005 - Sep 2008 |
| 4. | Juha Heinanen (@juha-h) | May 2003 - Apr 2008 |
| 5. | Daniel-Constantin Mierla (@miconda) | Feb 2006 - Mar 2008 |
| 6. | Konstantin Bokarius | Mar 2008 - Mar 2008 |
| 7. | Edson Gellert Schubert | Feb 2008 - Feb 2008 |
| 8. | Anca Vamanu | Oct 2007 - Oct 2007 |
| 9. | Peter Nixon | Jan 2007 - Jan 2007 |
| 10. | Elena-Ramona Modroiu | Oct 2005 - Oct 2005 |
All remaining contributors: Jan Janak (@janakj), Maksym Sobolyev (@sobomax), Andrei Pelinescu-Onciul, Jiri Kuthan (@jiriatipteldotorg).
(1) including any documentation-related commits, excluding merge commits
Documentation
Section titled “Documentation”Contributors
Section titled “Contributors”Last edited by: Razvan Crainea (@razvancrainea), Bogdan-Andrei Iancu (@bogdan-iancu), Juha Heinanen (@juha-h), Daniel-Constantin Mierla (@miconda), Konstantin Bokarius, Edson Gellert Schubert, Elena-Ramona Modroiu, Jan Janak (@janakj).
License
Section titled “License”All documentation files (i.e. .md extension) are licensed under the Creative Common License 4.0