unixodbc Module


Table of Contents

1. Admin Guide
1.1. Overview
1.2. Dependencies
1.2.1. OpenSIPS Modules
1.2.2. External Libraries or Applications
1.3. Exported Parameters
1.3.1. auto_reconnect (int)
1.3.2. use_escape_common (int)
1.4. Exported Functions
1.5. Installation and Running
1.5.1. Installing
1.5.2. Configuring and Running
2. Developer Guide
3. Contributors
3.1. By Commit Statistics
3.2. By Commit Activity
4. Documentation
4.1. Contributors

List of Tables

3.1. Top contributors by DevScore(1), authored commits(2) and lines added/removed(3)
3.2. Most recently active contributors(1) to this module

List of Examples

1.1. Set the auto_reconnect parameter
1.2. Set the use_escape_common parameter

Chapter 1. Admin Guide

1.1. Overview

This module allows to use the unixodbc package with OpenSIPS. It have been tested with mysql and the odbc connector, but it should work also with other database. The auth_db module works.

For more information, see the http://www.unixodbc.org/ project web page.

To see what DB engines can be used via unixodbc, look at http://www.unixodbc.org/drivers.html.

1.2. Dependencies

1.2.1. OpenSIPS Modules

The following modules must be loaded before this module:

  • No dependencies on other OpenSIPS modules.

1.2.2. External Libraries or Applications

The following libraries or applications must be installed before running OpenSIPS with this module loaded:

  • None.

1.3. Exported Parameters

1.3.1. auto_reconnect (int)

Turns on or off the auto_reconnect mode.

Default value is 1, this means it is enabled.

Example 1.1. Set the auto_reconnect parameter

...
modparam("db_unixodbc", "auto_reconnect", 0)
...

1.3.2. use_escape_common (int)

Escape values in query using internal escape_common() function. It escapes single quote ''', double quote '"', backslash '\', and NULL characters.

You should enable this parameter if you know that the ODBC driver considers the above characters as special (for marking begin and end of a value, escape other characters ...). It prevents against SQL injection.

Default value is 0 (0 = disabled; 1 = enabled).

Example 1.2. Set the use_escape_common parameter

...
modparam("db_unixodbc", "use_escape_common", 1)
...

1.4. Exported Functions

NONE

1.5. Installation and Running

1.5.1. Installing

Prerequirement: you should first install unixodbc (or another program that implements the odbc standard, such iodbc), your database, and the right connector. Set the DSN in the odbc.ini file and the connector drivers in the odbcinst.ini file.

1.5.2. Configuring and Running

In the opensips.conf file, add the line:

....
loadmodule "/usr/local/lib/opensips/modules/db_unixodbc.so"
....

You should also uncomment this:

....
loadmodule "/usr/local/lib/opensips/modules/auth.so"
loadmodule "/usr/local/lib/opensips/modules/auth_db.so"
modparam("usrloc", "db_mode", 2)
modparam("auth_db", "calculate_ha1", yes)
modparam("auth_db", "password_column", "password")
....

and setting the DSN specified in the odbc.ini, inserting this with the url adding this line:

....
modparam("usrloc|auth_db", "db_url", 
    "unixodbc://opensips:opensipsrw@localhost/my_dsn")
....

replacing my_dsn with the correct value.

HINT: if unixodbc don't want to connect to mysql server, try restarting mysql server with:

shell>safe_mysqld --user=mysql --socket=/var/lib/mysql/mysql.sock

The connector search the socket in /var/lib/mysql/mysql.sock and not in /tmp/mysql.sock

Chapter 2. Developer Guide

The module implements the OpenSIPS DB API, in order to be used by other modules.

Chapter 3. Contributors

3.1. By Commit Statistics

Table 3.1. Top contributors by DevScore(1), authored commits(2) and lines added/removed(3)

 NameDevScoreCommitsLines ++Lines --
1. Henning Westerholt (@henningw)45223851129
2. Bogdan-Andrei Iancu (@bogdan-iancu)4431617418
3. Marco Lorrai23126600
4. Daniel-Constantin Mierla (@miconda)2015221140
5. Liviu Chircu (@liviuchircu)1810136313
6. Razvan Crainea (@razvancrainea)1086326
7. Maksym Sobolyev (@sobomax)4244
8. Vlad Patrascu (@rvlad-patrascu)4233
9. Anca Vamanu4189103
10. Elena-Ramona Modroiu31371

All remaining contributors: Anonymous, Konstantin Bokarius, Alex Massover, Razvan Pistolea, Norman Brandinger (@NormB), Peter Lemenkov (@lemenkov), Edson Gellert Schubert, Vlad Paiu (@vladpaiu), Carsten Bock.

(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. Regarding imported patches/code, we do our best to count the work on behalf of the proper owner, as per the "fix_authors" and "mod_renames" arrays in opensips/doc/build-contrib.sh. If you identify any patches/commits which do not get properly attributed to you, please submit a pull request which extends "fix_authors" and/or "mod_renames".

(3) ignoring whitespace edits, renamed files and auto-generated files

3.2. By Commit Activity

Table 3.2. Most recently active contributors(1) to this module

 NameCommit Activity
1. Maksym Sobolyev (@sobomax)Feb 2023 - Feb 2023
2. Razvan Crainea (@razvancrainea)Oct 2011 - Jan 2021
3. Bogdan-Andrei Iancu (@bogdan-iancu)Dec 2005 - Apr 2019
4. Vlad Patrascu (@rvlad-patrascu)May 2017 - Apr 2019
5. Peter Lemenkov (@lemenkov)Jun 2018 - Jun 2018
6. Liviu Chircu (@liviuchircu)Mar 2014 - Jun 2018
7. Vlad Paiu (@vladpaiu)Jul 2011 - Jul 2011
8. Razvan PistoleaJul 2009 - Jul 2009
9. Alex MassoverMar 2009 - Mar 2009
10. Carsten BockMay 2008 - May 2008

All remaining contributors: Henning Westerholt (@henningw), Daniel-Constantin Mierla (@miconda), Konstantin Bokarius, Edson Gellert Schubert, Anca Vamanu, Elena-Ramona Modroiu, Norman Brandinger (@NormB), Anonymous, Marco Lorrai.

(1) including any documentation-related commits, excluding merge commits

Chapter 4. Documentation

4.1. Contributors

Last edited by: Peter Lemenkov (@lemenkov), Liviu Chircu (@liviuchircu), Bogdan-Andrei Iancu (@bogdan-iancu), Daniel-Constantin Mierla (@miconda), Konstantin Bokarius, Edson Gellert Schubert, Henning Westerholt (@henningw), Elena-Ramona Modroiu, Marco Lorrai.

Documentation Copyrights:

Copyright © 2005-2006 Marco Lorrai