<!-- Kamailio Pull Request Template -->
<!-- IMPORTANT: - for detailed contributing guidelines, read: https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md - pull requests must be done to master branch, unless they are backports of fixes from master branch to a stable branch - backports to stable branches must be done with 'git cherry-pick -x ...' - code is contributed under BSD for core and main components (tm, sl, auth, tls) - code is contributed GPLv2 or a compatible license for the other components - GPL code is contributed with OpenSSL licensing exception -->
#### Pre-Submission Checklist <!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply --> <!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above--> <!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list --> - [x] Commit message has the format required by CONTRIBUTING guide - [x] Commits are split per component (core, individual modules, libs, utils, ...) - [x] Each component has a single commit (if not, squash them into one commit) - [x] No commits to README files for modules (changes must be done to docbook files in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change - [ ] Small bug fix (non-breaking change which fixes an issue) - [x] New feature (non-breaking change which adds new functionality) - [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist: <!-- Go over all points below, and after creating the PR, tick the checkboxes that apply --> - [ ] PR should be backported to stable branches - [x] Tested changes locally - [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description <!-- Describe your changes in detail --> This pull request is intended to introduce a new, straightforward module that can efficiently stream output to files while also handling changes based on a specific interval. The module contains only one function that streams a chunk of text to the current output file handle associated with the given file index.
It's not 100% completed but the basic features are there. Any reviews and of course naming of the module, much appreciated.
---
How the module works:
- Set parameter `base_folder` to define where you want your logs to be saved. - Set `base_filename` (up to 10) to define the names of your files. Each is associated with an index according to the order you defined it. First `base_filename`'s index is 0, second's index is 1 and so on. This is appended with a new timestamp when `interval_seconds` are passed. - Set `interval_seconds` to define how much time before the file is closed and a new one is opened. Right now shared for all files. - Set `extension` to define what should be the extension of files. Right now shared for all files.
Use the provided function `file_out` to write any text (including pvs) to a specific file you want.
--- **Example:**
Define parameters such as: ``` # kamailio.cfg ... loadmodule "file_out.so" modparam("file_out", "base_folder", "/tmp/kamailio/file_out/") modparam("file_out", "base_filename", "accounting") modparam("file_out", "base_filename", "missed_calls") modparam("file_out","interval_seconds", 600) modparam("file_out","extension", ".txt") ...
request_route { ... file_out("0", "Writing to accounting.txt file $rm from $fu (IP:$si:$sp)"); file_out("1", "Writing to missed_calls.txt file $rm from $fu (IP:$si:$sp)"); ... } ```
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/3741
-- Commit Summary --
* file_out: Add new module * file_out: Add docs
-- File Changes --
A src/modules/file_out/Makefile (8) A src/modules/file_out/doc/Makefile (4) A src/modules/file_out/doc/file_out.xml (39) A src/modules/file_out/doc/file_out_admin.xml (191) A src/modules/file_out/file_out.c (380) A src/modules/file_out/types.c (88) A src/modules/file_out/types.h (25)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/3741.patch https://github.com/kamailio/kamailio/pull/3741.diff