UAC module
Admin Guide
Section titled “Admin Guide”Overview
Section titled “Overview”UAC (User Agent Client) module provides some basic UAC functionalities like FROM header manipulation (anonymization) or client authentication.
Known limitations in this version:
- authentication does not support qop auth-int, just qop auth;
- CSeq not increased during authentication - the response may be rejected.
Dependencies
Section titled “Dependencies”OpenSIPS Modules
Section titled “OpenSIPS Modules”The following modules must be loaded before this module:
- TM - Transaction Module
- RR - Record-Route Module, but only if restore mode for FROM URI is set to “auto”.
External Libraries or Applications
Section titled “External Libraries or Applications”The following libraries or applications must be installed before running OpenSIPS with this module loaded:
- None
Exported Parameters
Section titled “Exported Parameters”rr_store_param (string)
Section titled “rr_store_param (string)”Name of Record-Route header parameter that will be used to store (encoded) the original FROM URI.
This parameter is optional, it’s default value being “vsf”.
...modparam("uac","rr_store_param","my_param")...from_restore_mode (string)
Section titled “from_restore_mode (string)”There are 3 mode of restoring the original FROM URI:
- “none” - no information about original URI is stored; restoretion is not possible.
- “manual” - all following replies will be restored, but not also the sequential requests - this must be manually updated based on original URI.
- “auto” - all sequential requests and replies will be automatically updated based on stored original URI.
This parameter is optional, it’s default value being “auto”.
...modparam("uac","from_restore_mode","auto")...from_passwd (string)
Section titled “from_passwd (string)”String password to be used to encrypt the RR storing paramter. If empty, no encryption will be used.
Default value of this parameter is empty.
...modparam("uac","from_passwd","my_secret_passwd")...credential (string)
Section titled “credential (string)”Contains a multiple definition of credentials used to perform authentication.
This parameter is required if UAC authentication is used.
...modparam("uac","credential","username:domain:password")...auth_realm_avp (string)
Section titled “auth_realm_avp (string)”The definition of an AVP that might contain the realm to be used to perform authentication.
If you define it, you also need to define “auth_username_avp” (auth username avp id) and “auth_username_avp” (auth password avp id).
...modparam("uac","auth_realm_avp","$avp(i:10)")...auth_username_avp (string)
Section titled “auth_username_avp (string)”The definition of an AVP that might contain the username to be used to perform authentication.
If you define it, you also need to define “auth_realm_avp” (auth realm avp id) and “auth_username_avp” (auth password avp id).
...modparam("uac","auth_username_avp","$avp(i:11)")...auth_password_avp (string)
Section titled “auth_password_avp (string)”The definition of an AVP that might contain the password to be used to perform authentication.
If you define it, you also need to define “auth_password_avp” (auth password avp id) and “auth_username_avp” (auth password avp id).
...modparam("uac","auth_password_avp","$avp(i:12)")...Exported Functions
Section titled “Exported Functions”uac_replace_from(display,uri)
Section titled “uac_replace_from(display,uri)”Replace in FROM header the display name and the URI part.
display and URI parameters can include pseudo-variables.
This function can be used from REQUEST_ROUTE, BRANCH_ROUTE and FAILURE_ROUTE.
...# replace both display and uriuac_replace_from("$avp(s:display)","$avp(s:uri)");# replace only display and do not touch uriuac_replace_from("batman","");# remove display and replace uriuac_replace_from("","sip:robin@gotham.org");# remove display and do not touch uriuac_replace_from("","");...uac_replace_from(uri)
Section titled “uac_replace_from(uri)”Replace in FROM header the URI part without altering the display name.
URI parameter can include pseudo-variables.
This function can be used from REQUEST_ROUTE.
...uac_replace_from("sip:batman@gotham.org");...uac_restore_from()
Section titled “uac_restore_from()”This function will check if the FROM URI was modified and will use the information stored in header parameter to restore the original FROM URI value.
This function can be used from REQUEST_ROUTE.
...uac_restore_from();...uac_auth()
Section titled “uac_auth()”This function can be called only from failure route and will build the authentication response header and insert it into the request without sending anything.
This function can be used from FAILURE_ROUTE.
...uac_auth();...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) | 83 | 45 | 3260 | 548 |
| 2. | Daniel-Constantin Mierla (@miconda) | 14 | 11 | 119 | 73 |
| 3. | Stefan Darius (@dariusstefan) | 10 | 4 | 362 | 63 |
| 4. | Andreas Heise | 7 | 3 | 105 | 129 |
| 5. | Elena-Ramona Modroiu | 4 | 2 | 85 | 44 |
| 6. | Henning Westerholt (@henningw) | 4 | 2 | 9 | 9 |
| 7. | Razvan Crainea (@razvancrainea) | 3 | 1 | 2 | 2 |
| 8. | Dan Pascu (@danpascu) | 3 | 1 | 2 | 2 |
| 9. | Konstantin Bokarius | 3 | 1 | 2 | 5 |
| 10. | Sergio Gutierrez | 3 | 1 | 1 | 1 |
All remaining contributors: Jesus Rodrigues, Edson Gellert Schubert.
(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 - Jul 2010 |
| 4. | Sergio Gutierrez | Nov 2008 - Nov 2008 |
| 5. | Dan Pascu (@danpascu) | Nov 2008 - Nov 2008 |
| 6. | Daniel-Constantin Mierla (@miconda) | Nov 2006 - Mar 2008 |
| 7. | Konstantin Bokarius | Mar 2008 - Mar 2008 |
| 8. | Edson Gellert Schubert | Feb 2008 - Feb 2008 |
| 9. | Henning Westerholt (@henningw) | Aug 2007 - Dec 2007 |
| 10. | Jesus Rodrigues | Dec 2007 - Dec 2007 |
All remaining contributors: Andreas Heise, Elena-Ramona Modroiu.
(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), Daniel-Constantin Mierla (@miconda), Konstantin Bokarius, Edson Gellert Schubert, Jesus Rodrigues, Elena-Ramona Modroiu.
License
Section titled “License”All documentation files (i.e. .md extension) are licensed under the Creative Common License 4.0