DB_SQLITE module
Admin Guide
Section titled “Admin Guide”Overview
Section titled “Overview”This is a module which provides SQLite support for OpenSIPS. It implements the DB API defined in OpenSIPS.
Dependencies
Section titled “Dependencies”OpenSIPS Modules
Section titled “OpenSIPS Modules”The following modules must be loaded before this module:
- No dependencies on other OpenSIPS modules.
Also this module provides two ways of creating the query. One is to use sqlite3_bind_* functions after opensips creates the prepared statement query. The second one directly uses only sqlite3_snprintf function to print the values into the opensips created query. In theory, the second one should be faster and should allow you to make more queries to the database in the same time, so by default this one will be active. You can use the sqlite3_bind_* interface by simply uncommenting the SQLITE_BIND line the Makefile.
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:
- libsqlite3-dev - the development libraries of sqlite.
Exported Parameters
Section titled “Exported Parameters”alloc_limit (integer)
Section titled “alloc_limit (integer)”Since the library does not support a function to return the number of rows in a query, this number is obtained using “count()” query. If we use multiple processes there is the risk ,since “count()” query and the actual “select” query, the number of rows in the result query to have changed, so realloc will be needed if the number is bigger. Using alloc_limit parameter you can specify the number with which the number of allocated rows in the result is raised.
Default value is 10.
...modparam("db_sqlite", "alloc_limit", 25)...load_extension (string)
Section titled “load_extension (string)”This parameter enables extension loading, similiar to “.load” functionality in sqlite3, extenions like sqlite3-pcre which enables REGEX function. In order to use this functionality you must specify the library path (.so file) and the entry point which represents the function to be called by the sqlite library (read more at sqlite load_extension official documentation), separated by ”;” delimiter. The entry point paramter can miss, so you won’t need to use the delimitier in this case.
By default, no extension is loaded.
...modparam("db_sqlite", "load_extension", "/usr/lib/sqlite3/pcre.so")modparam("db_sqlite", "load_extension", "/usr/lib/sqlite3/pcre.so;sqlite3_extension_init")...Exported Functions
Section titled “Exported Functions”No function exported to be used from configuration file.
Installation
Section titled “Installation”Because it dependes on an external library, the sqlite module is not compiled and installed by default. You can use one of the next options.
- edit the “Makefile” and remove “db_sqlite” from “excluded_modules” list. Then follow the standard procedure to install OpenSIPS: “make all; make install”.
- from command line use: ‘make all include_modules=“db_sqlite”; make install include_modules=“db_sqlite”’.
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. | Ionut Ionita (@ionutrazvanionita) | 82 | 28 | 3763 | 1295 |
| 2. | Razvan Crainea (@razvancrainea) | 15 | 13 | 98 | 35 |
| 3. | Liviu Chircu (@liviuchircu) | 11 | 9 | 22 | 52 |
| 4. | Stefan Darius (@dariusstefan) | 7 | 4 | 147 | 29 |
| 5. | Jarrod Baumann (@jarrodb) | 5 | 3 | 7 | 4 |
| 6. | Vlad Patrascu (@rvlad-patrascu) | 4 | 2 | 3 | 2 |
| 7. | Aron Podrigal (@ar45) | 3 | 1 | 10 | 1 |
| 8. | Daniel Fussia | 3 | 1 | 4 | 22 |
| 9. | Bogdan-Andrei Iancu (@bogdan-iancu) | 3 | 1 | 2 | 1 |
| 10. | Eric Green | 3 | 1 | 1 | 10 |
All remaining contributors: Peter Lemenkov (@lemenkov).
(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) | Aug 2015 - Jun 2026 |
| 3. | Liviu Chircu (@liviuchircu) | May 2016 - Jun 2024 |
| 4. | Eric Green | Aug 2020 - Aug 2020 |
| 5. | Bogdan-Andrei Iancu (@bogdan-iancu) | Apr 2019 - Apr 2019 |
| 6. | Vlad Patrascu (@rvlad-patrascu) | May 2017 - Apr 2019 |
| 7. | Peter Lemenkov (@lemenkov) | Jun 2018 - Jun 2018 |
| 8. | Ionut Ionita (@ionutrazvanionita) | Apr 2015 - Feb 2017 |
| 9. | Daniel Fussia | Jun 2016 - Jun 2016 |
| 10. | Jarrod Baumann (@jarrodb) | Apr 2015 - Mar 2016 |
All remaining contributors: Aron Podrigal (@ar45).
(1) including any documentation-related commits, excluding merge commits
Documentation
Section titled “Documentation”Contributors
Section titled “Contributors”Last edited by: Razvan Crainea (@razvancrainea), Liviu Chircu (@liviuchircu), Peter Lemenkov (@lemenkov), Ionut Ionita (@ionutrazvanionita).
License
Section titled “License”All documentation files (i.e. .md extension) are licensed under the Creative Common License 4.0