rtpengine-recording - media recording daemon for Sipwise
rtpengine
rtpengine-recording [option...]
The Sipwise rtpengine media proxy has support for exporting media
(RTP) packets that it forwards. The rtpengine-recording daemon collects
these exported packets and decodes them into an audio format that can be
listened to.
All options can (and should) be provided in a config file instead
of at the command line. See the --config-file option below for
details.
If no options are given, then default values are assumed, which
should be sufficient for a standard installation of rtpengine.
- --help
- Print the usage information.
- -v, --version
- If called with this option, the rtpengine-recording daemon will
simply print its version number and exit.
- --config-file=FILE
- Specifies the location of a config file to be used. The config file is an
.ini style config file, with all command-line options listed here
also being valid options in the config file. For all command-line options,
the long name version instead of the single-character version (e.g.
table instead of just t) must be used in the config file.
For boolean options that are either present or not (e.g.
output-mixed), a boolean value (either true or false)
must be used in the config file. If an option is given in both the config
file and at the command line, the command-line value overrides the value
from the config file.
As a special value, none can be passed here to suppress
loading of the default config file.
- --config-section=STRING
- Specifies the .ini style section to be used in the config file.
Multiple sections can be present in the config file, but only one can be
used at a time. The default value is rtpengine-recording. A config
file section is started in the config file using square brackets (e.g.
[rtpengine-recording]).
- -L,
--log-level=INT
- Takes an integer as argument and controls the highest log level which will
be sent to syslog. The log levels correspond to the ones found in the
syslog(3) man page. The default value is 6, equivalent to
LOG_INFO. The highest possible value is 7 (LOG_DEBUG) which will
log everything.
- --log-facilty=daemon|local0|...|local7|...
- The syslog facilty to use when sending log messages to the syslog daemon.
Defaults to daemon.
- -E,
--log-stderr
- Log to stderr instead of syslog. Only useful in combination with
--foreground.
- --split-logs
- Split multi-line log messages into individual log messages so that each
line receives its own log line prefix.
- --no-log-timestamps
- Don't add timestamps to log lines written to stderr. Only useful in
combination with --log-stderr.
- --log-mark-prefix=STRING
- Prefix to be added to particular data fields in log files that are deemed
sensitive and/or private information. Defaults to an empty string.
- --log-mark-suffix=STRING
- Suffix to be added to particular data fields in log files that are deemed
sensitive and/or private information. Defaults to an empty string.
- -p,
--pidfile=FILE
- Specifies a path and file name to write the daemon's PID number to.
- -f,
--foreground
- If given, prevents the daemon from daemonizing, meaning it will stay in
the foreground. Useful for debugging.
- -t,
--table=INT
- Takes an integer argument. The value must match the table option
given to the rtpengine media proxy to use for in-kernel packet
forwarding. Defaults to 0 if not specified.
- --spool-dir=PATH
- The path given here must match the recording-dir path given to the
rtpengine media proxy. Defaults to /var/spool/rtpengine. The
path must reside on a file system that supports the inotify
mechanism.
- --num-threads=INT
- How many worker threads to launch. Defaults to the number of CPU cores
available, or 8 if there are fewer than that or if the number is
not known.
- --thread-stack=INT
- Set the stack size of each thread to the value given in kB. Defaults to
2048 kB. Can be set to -1 to leave the default provided by the OS
unchanged.
- --output-storage=file|db|both
- Where to store media files. By default, media files are written directly
to the file system (see output-dir). They can also be stored as a
BLOB in a MySQL database, either instead of, or in addition to,
being written to the file system.
- --output-dir=PATH
- Path for media files to be written to if file output is enabled. Defaults
to /var/lib/rtpengine-recording. The path must not be the same as
used for the spool-dir.
- --output-pattern=STRING
- File name pattern to be used for recording files. The pattern can
reference sub-directories. Parent directories will be created on demand.
The default setting is %c-%t.
The pattern must include printf-style format sequences.
Supported format sequences are:
- %%
- A literal percent sign.
- %c
- The call ID. It is mandatory for the output pattern to include this format
sequence.
- %t
- The stream type. For single streams this is the SSRC written as
hexadecimal; for mix stream this is the string mix. It is
mandatory for the output pattern to include this format sequence.
- %l
- The label for the participating party as communicated from the controlling
daemon.
- %Y
- %m
- %d
- %H
- %M
- %S
- These format sequence reference the current system time (when the output
file was created) and are the same as the format sequences supported by
date(1) or strftime(3) (year, month, day, hours, minutes,
and seconds, respectively).
- %u
- Microseconds, expanded to 6 digits (000000 through
999999).
- %INT
- References a prefix from the call ID of the given length. If this format
sequence is present more than once, then the prefixes are cumulative. For
example, if the call ID is abcdefgh and the output pattern is
configured as %2/%3/%c, then
the resulting output file name would be ab/cde/abcdefgh.
- --output-format=wav|mp3|none
- File format to be used for media files that are produced. Defaults to PCM
WAV (RIFF) files. Applicable for both files stored on the file system and
in a database. If none is selected then file output is
disabled.
- --resample-to=INT
- Resample all audio to the given sample rate (e.g. 48000).
Resampling is disabled by default, meaning that files will be written with
the same sample rate as the source media.
- --mp3-bitrate=INT
- If MP3 output is selected, use the given bitrate for the MP3 encoder (e.g.
64000). There is no default value, so this option must be given if
MP3 output is selected. Note that not all bitrates are valid in
combinations with all sample rates. For MP3 output it's therefore
recommended to also set resample-to.
- --output-mixed
- --output-single
- Whether to produce mixed audio files, or single audio files,
or both. If neither option is given, then by default both are enabled. If
no file output is desired, set output-format to none.
A single audio file contains the audio for a single RTP
SSRC, which usually means an unidirectional audio stream. These are
decoded directly from an RTP stream and do not take timestamping into
account, meaning that gaps or pauses in the RTP stream are not reflected
in the output audio file.
A mixed audio file consists of the first four RTP SSRC
seen, mixed together into a single output file, which usually means that
a bidirectional audio stream is produced. Audio mixing takes RTP
timestamping into account, so gaps and pauses in the RTP media are
reflected in the output audio to keep the multiple audio sources in
sync.
- --mix-method=direct|channels
- Selects a method to mix multiple audio inputs into a single output file
for mixed output. The default is direct which directly mixes
all audio inputs together, producing a mixed output file with the same
format as an audio file from a single input (output-single) would
be.
The channels mixing method puts each audio input into
its own audio channel in the output file, therefore producing a
multi-channel output file. Up to four separate RTP SSRCs are supported
for a mixed output, which means that if each input is mono audio, then
the mixed output file would contain 4 audio channels. This mixing method
requires an output file format which supports these kinds of
multi-channel audio formats (e.g. wav).
- --output-chmod=INT
- Change the file permissions of recording files to the given mode. Must be
given as an octal integer, for example 0660.
- --output-chmod-dir=INT
- Change the file permissions of recording files to the given mode. Must be
given as an octal integer, for example 0700 (which is also the
default value).
- --output-chown=USER|UID
- --output-chgrp=GROUP|GID
- Change the ownership of recording files. Either user/group names or
numeric IDs are supported. If the value is blank or given as -1
then the user/group is left unchanged.
- --mysql-host=HOST|IP
- --mysql-port=INT
- --mysql-user=USERNAME
- --mysql-pass=PASSWORD
- --mysql-db=STRING
- Configuration for a MySQL storage backend. Details about calls and media
files that are produced are stored into the database. Optionally the media
files themselves can be stored as well (see output-storage).
- --forward-to=PATH
- Forward raw RTP packets to a Unix socket. Disabled by default.
- --tls-send-to=IP:PORT
- --tls-resample=INT
- Send decoded audio over a TCP TLS connection to the specified destination.
Audio is sent as raw mono 16-bit PCM in the given sample rate.
- 0
- Successful termination.
- 1
- An error occurred.
- /etc/rtpengine/rtpengine-recording.conf
- Configuration file.