... to control output buffer flushing behavior
This commit introduces a new configuration flag `flush_packets`,
allowing control over whether the output buffer is flushed after each
packet during recording. When enabled, the file will grow continuously,
reducing latency and ensuring immediate availability for processing.
Closes#1848
Change-Id: I842bd1b2d6e6cf321cfda4cc3520bab47dafcaf4
The option flag `replace-origin-full` should replace whole
origin (o=) line of the SDP body, so that all origin fields
in the `o=` line always remain the same in all SDPs going to a
particular RTP endpoint.
So, not just a straight-forward replacing with own values.
A behavior in relation to the address field is the same
as by the `origin` option flag.
Correct according tests and add one more.
Change-Id: I4bcb740db5cd68a75fb754f5f6b5d21e19b05e1b
Two version of the origin replace exist from now on:
- `origin-replace` - replaces only the origin address
- `origin-replace-full` - replaces all the values,
so name, id, version and IP family with address.
Values for replacing are taken from the rtpengine instance,
so local values provided by the daemon.
Additionally: documentation updated accordingly.
Additionally: revert changes in pub-sub test.
Change-Id: I4d068944726d1ab82683ca5aa641a954890aefcf
Since the `replace-session-connection` has been
deprecated by the 9f8820bd36 then the docs have
to be updated accordingly.
Change-Id: I57200440f360b7e72168989f9dde8c3a38a18867
Support is desired for Kamailio/Rtpengine traffic via UDP.
Adding homer-disable-rtcp-stats and homer-enable-ng config params to
separately control sending to Homer each traffic type. By default rtcp
is `on` when homer parameter is configured. NG is by default disabled.
closes#1802
Change-Id: Ib68fb133cffc5d8945f9b6bf60bab3e80fab9630
Describe generally: what are option flags and how the parsing
of them is done. Also add a description of two currently supported
approaches:
- parsing using a module (e.g. kamailio)
- parsing using the daemon
Change-Id: I55cee8fc82c2de8eb1f8cef565d19d73023d8be9
Refactor the text in the NG-protocol description header:
- fix typos
- fix grammatical mistakes
- reformat the text for simpler reading in blocks
Change-Id: I4aa66d11607ddab6cf12d4571a3fd07e4a850c4a
For convenience we provide extra HTTP and WS endpoints that accept a
cookie-less NG or JSON message string. Not all commands are sensitive to
retransmits and this makes it easier to query call status etc.
Change-Id: Iffbc4ef9a5fdf916a374dfdd4042c61b437d18c9
Support a replacement pattern of %{...} to look up arbitrary keys from
the given metadata and use the respective values.
Change-Id: I2cc6c791629ed494b32e3352a555298c3b9cb4fc
Handle the `output-destination` flag in the same way as the `metadata`
flag, eliminating the need to do it explicitly everywhere it's relevant.
Add a few alternative spellings of `output-destination`.
Rename the member from flags to `recording_file` to make it more clear
what it is.
Add save/restore capabilities of that field to the Redis code.
Unify printing of monologue LABEL into the same function that handles
the metadata.
Update documentation to better explain this option, and use the new
clearer name.
Change-Id: I4496341013b0ccab5b1dec026cf3a1a0ea879018
For the use case with a separate base chain, we want to preempt other
firewall rules by default and insert our immediate jump rule at the
beginning, rather than at the end. Add an option to provide the other
behaviour.
Change-Id: I16171f7c028c89b94823ecc99387771be3ba9443
In order to let the docs comply with what we have in the code,
we have to adjust some of docs definitions and also remove partially.
Change-Id: Ied5791d196267abfc1e1717d23751b1acf8e9dc1
As we now natively support nftables, we no longer need to rely on the
iptables helper script. We can completely remove it.
Change-Id: I214bfee6ada534754141cb86bb50e87556de977d
Beginning from the 25th Sep 2023, usage of the
configuration file v2 is required. This commit
introduces it.
Change-Id: Ib6d154195621e5939e7d0bd2d6ca9ec62e487077
It's been noticed the previous default (static)
binding has been broken, hence explicitely define
usage of `sphinx_rtd_theme` and set appropriate
versioning requirements.
Change-Id: I847f7f3d0128fc2269449b7487524c8cd57e36b3
Convert each listener entity into a list.
Support a list of values for each option so that multiple
ports/addresses can be listed.
Keep previous behaviour unchanged: If ANY address is given, open
listeners for IPv4 and IPv6.
Change-Id: Ic54f28d1262f60d5e5c9d824a95e7c33ebc2aba9
To be able to use this feature from controlling agents which don't
directly support the new dictionary keys, add an alternative syntax via
the `flags` list. This is in line with all other similar dictionary keys
(e.g. `codec-` etc)
Change-Id: I7210c74c9cd3b31338052efa1c3504fe775c1c46
Make it possible to set output-destination immediately when starting the
reording, not only afterwards.
Closes#1667
Change-Id: Idb7de770ad5a41d6ae6055784213e7983df9bfec
Pandoc is available even on stretch, and unlike ronn is
actively maintained.
Fix -- markdown escaping.
Use __x__ for bold, and *x* for italics.
Remove .8.ronn symlinks.
Change-Id: Iff70e2b405f3b9ede856abf94d42fc51afb9f809
For a compatibility reasons (with other doc files and with RTD)
the `rtpengine.pod` and `rtpengine-recording.pod` file get
converted to the Markdown syntax.
The compilation of MD syntax synopsis files will work
using `ronn` application, which converts them to man pages.
Change-Id: I75b54a712786a0a237c51c702ed1a2cc09e3a033
Due to a unification of the way we store documentation files,
the 'rtpengine-recording.pod' has been moved to the 'docs/' folder.
This 'docs/rtpengine-recording.pod' will be later used for the RTD a source.
Change-Id: I5267bd74358aa46d174ba4778f2f11651c6d0ba6
Due to a unification of the way we store documentation files,
the 'rtpengine.pod' has been moved to the 'docs/' folder.
This 'docs/rtpengine.pod' will be later used for the RTD a source.
Change-Id: Iba9d77e397c042f7d84e8e51d2367b42ecb5b07c
When the `discard-recording` flag is given in one of the commands to
rtpengine (e.g. in the `delete` command), the metafile is renamed to a
.DISCARD suffix and then deleted.
The recording daemon then, seeing the .DISCARD suffix, proceeds to
immediately close all recordings, delete the files if any, and delete
the entries from the DB.
Change-Id: I3f0cac129f2d56cbccd770d43bf434dea6c0a0db
There's a mixture of RTPengine and RTPEngine, though we lowercase it
entirely most of the time, so let's stick to this and unify its style.
While at it remove the "the" article for rtpengine as well,
where applicable.
Change-Id: Idbad9313499942ad12ade2c9ce76fe3ec4cd2762
It substitutes a specified `a=` line taken from the concerned
media attributes list. If such line has been not found,
the attributes list remains untouched.
It subsitutes one attribute at a time, so one attribute into
another attribute.
Change-Id: Ie0a48ba46a1b196fbe33b09dedc40e4498640e34
Track audio writes in the mix buffer to set the `active` flag to true
whenever a write occurs, which makes it possible to create the buffer in
an inactivate state and implicitly set it active on demand.
Handle the mix buffer not returning any data in the RTP sending logic
(which is what happens for an inactive buffer) by simply not sending any
packets.
Change-Id: Iaeb0f6deadb3d90020c8c62872735cc94db80504
Similar to the existing media_player, but instead of simply producing
its own standalone output media stream, the audio_player takes over the
entire media stream flowing to the receiver, including media forwarded
from the opposite side of the call, as well as media produced by the
media_player.
Change-Id: Ic34ecf08fc73b04210cfffb1a7d795b462ece5ea
We have to restructure project's general README.md
in order to make all recently added documentation sources
(including RTD) be compliant and let it look centralized and
good organized.
The root of the repository still has the README.md, but
it only shows general summary on the project and then gives
links to the extended documentation sources:
- RTD stored
- GitHub stored
Change-Id: Ief160669432ecb3e22df16d9278df863da995991
Deprecate `asserts/` as it's only used for keeping images now.
(github wiki links fixed accordingly)
Create `docs/images` to keep visual materials and to properly
link them from the RTD with markdown.
Change-Id: Icbb8b22c57e087a57495b37bd7ecd1a15de05b43
(cherry picked from commit 99e0d936503a9026dbd55e2e0606b45853abb53b)
We have to unify the approach we use for setting these main blocks
of the documentation to let it: 1) be unified; 2) be compliant
with RTD.
Change-Id: Ifc1f491c14688f0151429a80c8a0cfb1e6a22aaa
This is a first commit introducing general readthedocs wiki
structure.
It introduced the following main chapters:
- Overview (is a symlink to the README.md), the readthedocs
parses the markdown from here and creates the overview page
- Architecture overview (with the sources taken from the git wiki)
- Unit-tests (with the sources taken from the git wiki)
- Troubleshooting Overview (now only memory leaks)
- Glossary (doesn't have much information for now)
Change-Id: I1a7db7ab1b169a5d002d251debbe1ad0f5d195ce