EVENT_FLATSTORE module
Admin Guide
Section titled “Admin Guide”Overview
Section titled “Overview”The event_flatstore module provides a logging facility for different events, triggered through the OpenSIPS Event Interface, directly from the OpenSIPS script. The module logs the events along with their parameters in plain text files.
Flatstore socket syntax
Section titled “Flatstore socket syntax”flatstore:path_to_file
Meanings:
- flatstore: - informs the Event Interface that the events sent to this subscriber should be handled by the event_flatstore module.
- path_to_file - path to the file where the logged events will be appended to. The file will be created if it does not exist. It must be a valid path and not a directory.
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.
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”max_open_sockets (integer)
Section titled “max_open_sockets (integer)”Defines the maximum number of simultaneously opened files by the module. If the maximum limit is reached, an error message will be thrown, and further subscriptions will only be possible after at least one of the current subscriptions will expire.
Default value is “100”.
...modparam("event_flatstore", "max_open_sockets", 200)...delimiter (string)
Section titled “delimiter (string)”Sets the separator between the parameters of the event in the logging file.
Default value is ”,“.
...modparam("event_flatstore", "delimiter", ";")...escape_delimiter (string)
Section titled “escape_delimiter (string)”Optional replacement sequence that will be written instead
of the delimiter
whenever this character (or sequence) occurs inside a string
parameter.
This allows you to keep the log file parse-friendly even when user
data itself may contain delimiter symbols.
If set, its length must be exactly equal to the
length of delimiter.
Default value is """" (escaping disabled).
...modparam("event_flatstore", "delimiter", ",")modparam("event_flatstore", "escape_delimiter", "|")...file_permissions (string)
Section titled “file_permissions (string)”Sets the permissions for the newly created logs. It expects a string representation of a octal value.
Default value is “644”.
...modparam("event_flatstore", "file_permissions", "664")...suppress_event_name (int)
Section titled “suppress_event_name (int)”Suppresses the name of the event in the log file.
Default value is “0/OFF” (the event’s name is printed).
...modparam("event_flatstore", "suppress_event_name", 1)...rotate_period (int)
Section titled “rotate_period (int)”When used, it triggers a file auto-rotate. The period is matched against the absolute time of the machine, can be useful to trigger auto-rotate every minute, or every hour.
Default value is “0/OFF” (the file is never auto-rotated)
...modparam("event_flatstore", "rotate_period", 60) # rotate every minutemodparam("event_flatstore", "rotate_period", 3660) # rotate every hour...rotate_count (int|string)
Section titled “rotate_count (int|string)”Defines after how many written lines the log file is rotated. The value may exceed the 32-bit integer limit; in that case pass it as a string, e.g. “5000000000”.
Default value is “0/OFF”.
...modparam("event_flatstore", "rotate_count", "5000000000")...rotate_size (int|string)
Section titled “rotate_size (int|string)”Sets the maximum size of a file before it is rotated. A size suffix of “k”, “m” or “g” (multiples of 1024) may be provided. Very large values can be supplied as strings, e.g. “8589934592” for 8 GiB.
Default value is “0/OFF”.
...modparam("event_flatstore", "rotate_size", "2g")...suffix (string)
Section titled “suffix (string)”Modifies the file that OpenSIPS writes events into by appending a suffix to the the file specified in the flatstore socket.
The suffix can contain string formats (i.e. variables mixed with strings). The path of the resulted file is evaluated when the first event is raised/written in the file after a reload happend, or when the rotate_period, if specified, triggers a rotate.
This parameter does not affect the matching of the event socket - the matching will be done exclusively using the flatstore socket registered.
Default value is """" (no suffix is added)
...modparam("event_flatstore", "suffix", "$time(%Y)")...Exported Functions
Section titled “Exported Functions”No exported functions to be used in the configuration file.
Exported MI Functions
Section titled “Exported MI Functions”event_flatstore:rotate
Section titled “event_flatstore:rotate”Replaces obsolete MI command: evi_flat_rotate.
It makes the processes reopen the file specified as a parameter to the command in order to be compatible with a logrotate command. If the function is not called after the mv command is executed, the module will continue to write in the renamed file.
Name: event_flatstore:rotate
Parameters: path_to_file
MI FIFO Command Format:
opensips-cli -x mi event_flatstore:rotate _path_to_log_file_Exported Events
Section titled “Exported Events”E_FLATSTORE_ROTATION
Section titled “E_FLATSTORE_ROTATION”The event is raised every time event_flatstore
opens a new log file (manual event_flatstore:rotate,
auto-rotate by rotate_period, or
thresholds rotate_count/rotate_size).
External apps can subscribe to monitor log-rotation activity.
Parameters:
- timestamp – Unix epoch (seconds) when the rotation was performed.
- reason – one of the strings count, size, period or mi.
- filename – full path of the new log file.
- old_filename – full path of the previous log file, or empty string if none existed.
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. | Vlad Patrascu (@rvlad-patrascu) | 31 | 16 | 687 | 508 |
| 2. | Ionel Cerghit (@ionel-cerghit) | 23 | 13 | 774 | 139 |
| 3. | Razvan Crainea (@razvancrainea) | 13 | 11 | 60 | 25 |
| 4. | Liviu Chircu (@liviuchircu) | 12 | 9 | 36 | 67 |
| 5. | Stefan Darius (@dariusstefan) | 9 | 5 | 354 | 52 |
| 6. | Nick Altmann (@nikbyte) | 8 | 1 | 620 | 16 |
| 7. | Eseanu Marius Cristian (@eseanucristian) | 7 | 3 | 273 | 28 |
| 8. | Bogdan-Andrei Iancu (@bogdan-iancu) | 5 | 3 | 7 | 4 |
| 9. | Maksym Sobolyev (@sobomax) | 5 | 3 | 4 | 4 |
| 10. | Peter Lemenkov (@lemenkov) | 3 | 1 | 1 | 1 |
(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. | Nick Altmann (@nikbyte) | May 2025 - May 2025 |
| 4. | Maksym Sobolyev (@sobomax) | Feb 2017 - Feb 2023 |
| 5. | Liviu Chircu (@liviuchircu) | Jan 2016 - Dec 2021 |
| 6. | Vlad Patrascu (@rvlad-patrascu) | Jun 2015 - Jul 2020 |
| 7. | Bogdan-Andrei Iancu (@bogdan-iancu) | Jun 2018 - Apr 2019 |
| 8. | Peter Lemenkov (@lemenkov) | Jun 2018 - Jun 2018 |
| 9. | Ionel Cerghit (@ionel-cerghit) | Jun 2015 - Jul 2015 |
| 10. | Eseanu Marius Cristian (@eseanucristian) | Jun 2015 - Jul 2015 |
(1) including any documentation-related commits, excluding merge commits
Documentation
Section titled “Documentation”Contributors
Section titled “Contributors”Last edited by: Razvan Crainea (@razvancrainea), Nick Altmann (@nikbyte), Peter Lemenkov (@lemenkov), Liviu Chircu (@liviuchircu), Vlad Patrascu (@rvlad-patrascu), Ionel Cerghit (@ionel-cerghit).
License
Section titled “License”All documentation files (i.e. .md extension) are licensed under the Creative Common License 4.0