mirror of https://github.com/sipwise/rtpengine.git
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: I5267bd74358aa46d174ba4778f2f11651c6d0ba6pull/1646/head
parent
721dc8d34a
commit
461e7f131d
@ -0,0 +1,369 @@
|
|||||||
|
=head1 NAME
|
||||||
|
|
||||||
|
rtpengine-recording - media recording daemon for Sipwise rtpengine
|
||||||
|
|
||||||
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
|
B<rtpengine-recording> [I<option>...]
|
||||||
|
|
||||||
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
=head1 OPTIONS
|
||||||
|
|
||||||
|
All options can (and should) be provided in a config file instead of
|
||||||
|
at the command line. See the B<--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.
|
||||||
|
|
||||||
|
=over 4
|
||||||
|
|
||||||
|
=item B<--help>
|
||||||
|
|
||||||
|
Print the usage information.
|
||||||
|
|
||||||
|
=item B<-v>, B<--version>
|
||||||
|
|
||||||
|
If called with this option, the B<rtpengine-recording> daemon will simply print
|
||||||
|
its version number and exit.
|
||||||
|
|
||||||
|
=item B<--config-file=>I<FILE>
|
||||||
|
|
||||||
|
Specifies the location of a config file to be used. The config file is an
|
||||||
|
I<.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. B<table> instead of just B<t>) must be
|
||||||
|
used in the config file.
|
||||||
|
For boolean options that are either present or not (e.g. B<output-mixed>), a
|
||||||
|
boolean value (either B<true> or B<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, B<none> can be passed here to suppress loading of the
|
||||||
|
default config file.
|
||||||
|
|
||||||
|
=item B<--config-section=>I<STRING>
|
||||||
|
|
||||||
|
Specifies the I<.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 B<rtpengine-recording>.
|
||||||
|
A config file section is started in the config file using square brackets
|
||||||
|
(e.g. B<[rtpengine-recording]>).
|
||||||
|
|
||||||
|
=item B<-L>, B<--log-level=>I<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 L<syslog(3)> man page.
|
||||||
|
The default value is B<6>, equivalent to LOG_INFO.
|
||||||
|
The highest possible value is B<7> (LOG_DEBUG) which will log everything.
|
||||||
|
|
||||||
|
=item B<--log-facilty=>B<daemon>|B<local0>|...|B<local7>|...
|
||||||
|
|
||||||
|
The syslog facilty to use when sending log messages to the syslog daemon.
|
||||||
|
Defaults to B<daemon>.
|
||||||
|
|
||||||
|
=item B<-E>, B<--log-stderr>
|
||||||
|
|
||||||
|
Log to stderr instead of syslog.
|
||||||
|
Only useful in combination with B<--foreground>.
|
||||||
|
|
||||||
|
=item B<--split-logs>
|
||||||
|
|
||||||
|
Split multi-line log messages into individual log messages so that each
|
||||||
|
line receives its own log line prefix.
|
||||||
|
|
||||||
|
=item B<--no-log-timestamps>
|
||||||
|
|
||||||
|
Don't add timestamps to log lines written to stderr.
|
||||||
|
Only useful in combination with B<--log-stderr>.
|
||||||
|
|
||||||
|
=item B<--log-mark-prefix=>I<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.
|
||||||
|
|
||||||
|
=item B<--log-mark-suffix=>I<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.
|
||||||
|
|
||||||
|
=item B<-p>, B<--pidfile=>I<FILE>
|
||||||
|
|
||||||
|
Specifies a path and file name to write the daemon's PID number to.
|
||||||
|
|
||||||
|
=item B<-f>, B<--foreground>
|
||||||
|
|
||||||
|
If given, prevents the daemon from daemonizing, meaning it will stay in
|
||||||
|
the foreground.
|
||||||
|
Useful for debugging.
|
||||||
|
|
||||||
|
=item B<-t>, B<--table=>I<INT>
|
||||||
|
|
||||||
|
Takes an integer argument. The value must match the B<table> option given to
|
||||||
|
the B<rtpengine> media proxy to use for in-kernel packet forwarding.
|
||||||
|
Defaults to B<0> if not specified.
|
||||||
|
|
||||||
|
=item B<--spool-dir=>I<PATH>
|
||||||
|
|
||||||
|
The path given here must match the B<recording-dir> path given to the
|
||||||
|
B<rtpengine> media proxy. Defaults to F</var/spool/rtpengine>. The path must
|
||||||
|
reside on a file system that supports the B<inotify> mechanism.
|
||||||
|
|
||||||
|
=item B<--num-threads=>I<INT>
|
||||||
|
|
||||||
|
How many worker threads to launch. Defaults to the number of CPU cores
|
||||||
|
available, or B<8> if there are fewer than that or if the number is not
|
||||||
|
known.
|
||||||
|
|
||||||
|
=item B<--thread-stack=>I<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.
|
||||||
|
|
||||||
|
=item B<--evs-lib-path=>I<FILE>
|
||||||
|
|
||||||
|
Points to the shared object file (B<.so>) containing the reference
|
||||||
|
implementation for the EVS codec. See the F<README> for more details.
|
||||||
|
|
||||||
|
=item B<--output-storage=>B<file>|B<db>|B<both>
|
||||||
|
|
||||||
|
Where to store media files. By default, media files are written directly to the
|
||||||
|
file system (see B<output-dir>). They can also be stored as a B<BLOB> in a
|
||||||
|
MySQL database, either instead of, or in addition to, being written to the file
|
||||||
|
system.
|
||||||
|
|
||||||
|
=item B<--output-dir=>I<PATH>
|
||||||
|
|
||||||
|
Path for media files to be written to if file output is enabled. Defaults to
|
||||||
|
F</var/lib/rtpengine-recording>. The path must not be the same as used for the
|
||||||
|
B<spool-dir>.
|
||||||
|
|
||||||
|
=item B<--output-pattern=>I<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 B<%c-%t>.
|
||||||
|
|
||||||
|
The pattern must include B<printf>-style format sequences. Supported format
|
||||||
|
sequences are:
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item B<%%>
|
||||||
|
|
||||||
|
A literal percent sign.
|
||||||
|
|
||||||
|
=item B<%c>
|
||||||
|
|
||||||
|
The call ID. It is mandatory for the output pattern to include this format
|
||||||
|
sequence.
|
||||||
|
|
||||||
|
=item B<%t>
|
||||||
|
|
||||||
|
The stream type. For B<single> streams this is the SSRC written as hexadecimal;
|
||||||
|
for B<mix> stream this is the string B<mix>. It is mandatory for the output
|
||||||
|
pattern to include this format sequence.
|
||||||
|
|
||||||
|
=item B<%l>
|
||||||
|
|
||||||
|
The label for the participating party as communicated from the controlling
|
||||||
|
daemon.
|
||||||
|
|
||||||
|
=item B<%Y>
|
||||||
|
|
||||||
|
=item B<%m>
|
||||||
|
|
||||||
|
=item B<%d>
|
||||||
|
|
||||||
|
=item B<%H>
|
||||||
|
|
||||||
|
=item B<%M>
|
||||||
|
|
||||||
|
=item B<%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 L<date(1)>
|
||||||
|
or L<strftime(3)> (year, month, day, hours, minutes, and seconds,
|
||||||
|
respectively).
|
||||||
|
|
||||||
|
=item B<%u>
|
||||||
|
|
||||||
|
Microseconds, expanded to 6 digits (B<000000> through B<999999>).
|
||||||
|
|
||||||
|
=item B<%>I<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 B<abcdefgh> and the output pattern is configured as
|
||||||
|
B<%2/%3/%c>, then the resulting output file name would be B<ab/cde/abcdefgh>.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=item B<--output-format=>B<wav>|B<mp3>|B<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 B<none> is selected then file output is disabled.
|
||||||
|
|
||||||
|
=item B<--resample-to=>I<INT>
|
||||||
|
|
||||||
|
Resample all audio to the given sample rate (e.g. B<48000>). Resampling is
|
||||||
|
disabled by default, meaning that files will be written with the same sample
|
||||||
|
rate as the source media.
|
||||||
|
|
||||||
|
=item B<--mp3-bitrate=>I<INT>
|
||||||
|
|
||||||
|
If MP3 output is selected, use the given bitrate for the MP3 encoder (e.g.
|
||||||
|
B<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
|
||||||
|
B<resample-to>.
|
||||||
|
|
||||||
|
=item B<--output-mixed>
|
||||||
|
|
||||||
|
=item B<--output-single>
|
||||||
|
|
||||||
|
Whether to produce B<mixed> audio files, or B<single> audio files, or both. If
|
||||||
|
neither option is given, then by default both are enabled. If no file output is
|
||||||
|
desired, set B<output-format> to B<none>.
|
||||||
|
|
||||||
|
A B<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 B<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.
|
||||||
|
|
||||||
|
=item B<--mix-method=>B<direct>|B<channels>
|
||||||
|
|
||||||
|
Selects a method to mix multiple audio inputs into a single output file for
|
||||||
|
B<mixed> output. The default is B<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 (B<output-single>) would be.
|
||||||
|
|
||||||
|
The B<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. B<wav>).
|
||||||
|
|
||||||
|
=item B<--mix-num-inputs=>I<INT>
|
||||||
|
|
||||||
|
Change the number of recording channel in the output file. The value is between 1 to 4 (e.g. B<4>, which is also the default value).
|
||||||
|
|
||||||
|
=item B<--output-chmod=>I<INT>
|
||||||
|
|
||||||
|
Change the file permissions of recording files to the given mode. Must be given
|
||||||
|
as an octal integer, for example B<0660>.
|
||||||
|
|
||||||
|
=item B<--output-chmod-dir=>I<INT>
|
||||||
|
|
||||||
|
Change the file permissions of recording files to the given mode. Must be given
|
||||||
|
as an octal integer, for example B<0700> (which is also the default value).
|
||||||
|
|
||||||
|
=item B<--output-chown=>I<USER>|I<UID>
|
||||||
|
|
||||||
|
=item B<--output-chgrp=>I<GROUP>|I<GID>
|
||||||
|
|
||||||
|
Change the ownership of recording files. Either user/group names or numeric IDs
|
||||||
|
are supported. If the value is blank or given as B<-1> then the user/group is
|
||||||
|
left unchanged.
|
||||||
|
|
||||||
|
=item B<--mysql-host=>I<HOST>|I<IP>
|
||||||
|
|
||||||
|
=item B<--mysql-port=>I<INT>
|
||||||
|
|
||||||
|
=item B<--mysql-user=>I<USERNAME>
|
||||||
|
|
||||||
|
=item B<--mysql-pass=>I<PASSWORD>
|
||||||
|
|
||||||
|
=item B<--mysql-db=>I<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 B<output-storage>).
|
||||||
|
|
||||||
|
=item B<--forward-to=>I<PATH>
|
||||||
|
|
||||||
|
Forward raw RTP packets to a Unix socket. Disabled by default.
|
||||||
|
|
||||||
|
=item B<--tls-send-to=>I<IP>B<:>I<PORT>
|
||||||
|
|
||||||
|
=item B<--tls-resample=>I<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.
|
||||||
|
|
||||||
|
=item B<--notify-uri=>I<URI>
|
||||||
|
|
||||||
|
Enable HTTP notification about finished recordings to the specified URI, which
|
||||||
|
must be an HTTP or HTTPS URI. Information about the finished recording is
|
||||||
|
provided via custom HTTP headers, all of which use a prefix of B<X-Recording->.
|
||||||
|
|
||||||
|
=item B<--notify-post>
|
||||||
|
|
||||||
|
Use HTTP POST instead of GET for the HTTP notification requests. The request
|
||||||
|
body is empty even if POST is used.
|
||||||
|
|
||||||
|
=item B<--notify-no-verify>
|
||||||
|
|
||||||
|
Disable TLS peer certificate verification for HTTPS requests.
|
||||||
|
|
||||||
|
=item B<--notify-concurrency=>I<INT>
|
||||||
|
|
||||||
|
The maximum number of HTTP requests to perform simultaneously.
|
||||||
|
|
||||||
|
=item B<--notify-retries=>I<INT>
|
||||||
|
|
||||||
|
How many times to retry a failed HTTP notification before giving up. An
|
||||||
|
exponential falloff time is used for each subsequent attempt, starting with 5
|
||||||
|
seconds.
|
||||||
|
|
||||||
|
=item B<--notify-record>
|
||||||
|
|
||||||
|
Attach recorded file to HTTP notification request. If enabled, notification
|
||||||
|
request behaves as HTTP POST (ignoring B<--notify-post>). Note that this option
|
||||||
|
is incompatible with DB-only storage as no recording file exists on storage
|
||||||
|
(see B<output-storage>).
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=head1 EXIT STATUS
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item B<0>
|
||||||
|
|
||||||
|
Successful termination.
|
||||||
|
|
||||||
|
=item B<1>
|
||||||
|
|
||||||
|
An error occurred.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=head1 FILES
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item F</etc/rtpengine/rtpengine-recording.conf>
|
||||||
|
|
||||||
|
Configuration file.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=head1 SEE ALSO
|
||||||
|
|
||||||
|
L<rtpengine(8)>.
|
||||||
@ -1,369 +0,0 @@
|
|||||||
=head1 NAME
|
|
||||||
|
|
||||||
rtpengine-recording - media recording daemon for Sipwise rtpengine
|
|
||||||
|
|
||||||
=head1 SYNOPSIS
|
|
||||||
|
|
||||||
B<rtpengine-recording> [I<option>...]
|
|
||||||
|
|
||||||
=head1 DESCRIPTION
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
=head1 OPTIONS
|
|
||||||
|
|
||||||
All options can (and should) be provided in a config file instead of
|
|
||||||
at the command line. See the B<--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.
|
|
||||||
|
|
||||||
=over 4
|
|
||||||
|
|
||||||
=item B<--help>
|
|
||||||
|
|
||||||
Print the usage information.
|
|
||||||
|
|
||||||
=item B<-v>, B<--version>
|
|
||||||
|
|
||||||
If called with this option, the B<rtpengine-recording> daemon will simply print
|
|
||||||
its version number and exit.
|
|
||||||
|
|
||||||
=item B<--config-file=>I<FILE>
|
|
||||||
|
|
||||||
Specifies the location of a config file to be used. The config file is an
|
|
||||||
I<.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. B<table> instead of just B<t>) must be
|
|
||||||
used in the config file.
|
|
||||||
For boolean options that are either present or not (e.g. B<output-mixed>), a
|
|
||||||
boolean value (either B<true> or B<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, B<none> can be passed here to suppress loading of the
|
|
||||||
default config file.
|
|
||||||
|
|
||||||
=item B<--config-section=>I<STRING>
|
|
||||||
|
|
||||||
Specifies the I<.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 B<rtpengine-recording>.
|
|
||||||
A config file section is started in the config file using square brackets
|
|
||||||
(e.g. B<[rtpengine-recording]>).
|
|
||||||
|
|
||||||
=item B<-L>, B<--log-level=>I<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 L<syslog(3)> man page.
|
|
||||||
The default value is B<6>, equivalent to LOG_INFO.
|
|
||||||
The highest possible value is B<7> (LOG_DEBUG) which will log everything.
|
|
||||||
|
|
||||||
=item B<--log-facilty=>B<daemon>|B<local0>|...|B<local7>|...
|
|
||||||
|
|
||||||
The syslog facilty to use when sending log messages to the syslog daemon.
|
|
||||||
Defaults to B<daemon>.
|
|
||||||
|
|
||||||
=item B<-E>, B<--log-stderr>
|
|
||||||
|
|
||||||
Log to stderr instead of syslog.
|
|
||||||
Only useful in combination with B<--foreground>.
|
|
||||||
|
|
||||||
=item B<--split-logs>
|
|
||||||
|
|
||||||
Split multi-line log messages into individual log messages so that each
|
|
||||||
line receives its own log line prefix.
|
|
||||||
|
|
||||||
=item B<--no-log-timestamps>
|
|
||||||
|
|
||||||
Don't add timestamps to log lines written to stderr.
|
|
||||||
Only useful in combination with B<--log-stderr>.
|
|
||||||
|
|
||||||
=item B<--log-mark-prefix=>I<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.
|
|
||||||
|
|
||||||
=item B<--log-mark-suffix=>I<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.
|
|
||||||
|
|
||||||
=item B<-p>, B<--pidfile=>I<FILE>
|
|
||||||
|
|
||||||
Specifies a path and file name to write the daemon's PID number to.
|
|
||||||
|
|
||||||
=item B<-f>, B<--foreground>
|
|
||||||
|
|
||||||
If given, prevents the daemon from daemonizing, meaning it will stay in
|
|
||||||
the foreground.
|
|
||||||
Useful for debugging.
|
|
||||||
|
|
||||||
=item B<-t>, B<--table=>I<INT>
|
|
||||||
|
|
||||||
Takes an integer argument. The value must match the B<table> option given to
|
|
||||||
the B<rtpengine> media proxy to use for in-kernel packet forwarding.
|
|
||||||
Defaults to B<0> if not specified.
|
|
||||||
|
|
||||||
=item B<--spool-dir=>I<PATH>
|
|
||||||
|
|
||||||
The path given here must match the B<recording-dir> path given to the
|
|
||||||
B<rtpengine> media proxy. Defaults to F</var/spool/rtpengine>. The path must
|
|
||||||
reside on a file system that supports the B<inotify> mechanism.
|
|
||||||
|
|
||||||
=item B<--num-threads=>I<INT>
|
|
||||||
|
|
||||||
How many worker threads to launch. Defaults to the number of CPU cores
|
|
||||||
available, or B<8> if there are fewer than that or if the number is not
|
|
||||||
known.
|
|
||||||
|
|
||||||
=item B<--thread-stack=>I<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.
|
|
||||||
|
|
||||||
=item B<--evs-lib-path=>I<FILE>
|
|
||||||
|
|
||||||
Points to the shared object file (B<.so>) containing the reference
|
|
||||||
implementation for the EVS codec. See the F<README> for more details.
|
|
||||||
|
|
||||||
=item B<--output-storage=>B<file>|B<db>|B<both>
|
|
||||||
|
|
||||||
Where to store media files. By default, media files are written directly to the
|
|
||||||
file system (see B<output-dir>). They can also be stored as a B<BLOB> in a
|
|
||||||
MySQL database, either instead of, or in addition to, being written to the file
|
|
||||||
system.
|
|
||||||
|
|
||||||
=item B<--output-dir=>I<PATH>
|
|
||||||
|
|
||||||
Path for media files to be written to if file output is enabled. Defaults to
|
|
||||||
F</var/lib/rtpengine-recording>. The path must not be the same as used for the
|
|
||||||
B<spool-dir>.
|
|
||||||
|
|
||||||
=item B<--output-pattern=>I<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 B<%c-%t>.
|
|
||||||
|
|
||||||
The pattern must include B<printf>-style format sequences. Supported format
|
|
||||||
sequences are:
|
|
||||||
|
|
||||||
=over
|
|
||||||
|
|
||||||
=item B<%%>
|
|
||||||
|
|
||||||
A literal percent sign.
|
|
||||||
|
|
||||||
=item B<%c>
|
|
||||||
|
|
||||||
The call ID. It is mandatory for the output pattern to include this format
|
|
||||||
sequence.
|
|
||||||
|
|
||||||
=item B<%t>
|
|
||||||
|
|
||||||
The stream type. For B<single> streams this is the SSRC written as hexadecimal;
|
|
||||||
for B<mix> stream this is the string B<mix>. It is mandatory for the output
|
|
||||||
pattern to include this format sequence.
|
|
||||||
|
|
||||||
=item B<%l>
|
|
||||||
|
|
||||||
The label for the participating party as communicated from the controlling
|
|
||||||
daemon.
|
|
||||||
|
|
||||||
=item B<%Y>
|
|
||||||
|
|
||||||
=item B<%m>
|
|
||||||
|
|
||||||
=item B<%d>
|
|
||||||
|
|
||||||
=item B<%H>
|
|
||||||
|
|
||||||
=item B<%M>
|
|
||||||
|
|
||||||
=item B<%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 L<date(1)>
|
|
||||||
or L<strftime(3)> (year, month, day, hours, minutes, and seconds,
|
|
||||||
respectively).
|
|
||||||
|
|
||||||
=item B<%u>
|
|
||||||
|
|
||||||
Microseconds, expanded to 6 digits (B<000000> through B<999999>).
|
|
||||||
|
|
||||||
=item B<%>I<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 B<abcdefgh> and the output pattern is configured as
|
|
||||||
B<%2/%3/%c>, then the resulting output file name would be B<ab/cde/abcdefgh>.
|
|
||||||
|
|
||||||
=back
|
|
||||||
|
|
||||||
=item B<--output-format=>B<wav>|B<mp3>|B<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 B<none> is selected then file output is disabled.
|
|
||||||
|
|
||||||
=item B<--resample-to=>I<INT>
|
|
||||||
|
|
||||||
Resample all audio to the given sample rate (e.g. B<48000>). Resampling is
|
|
||||||
disabled by default, meaning that files will be written with the same sample
|
|
||||||
rate as the source media.
|
|
||||||
|
|
||||||
=item B<--mp3-bitrate=>I<INT>
|
|
||||||
|
|
||||||
If MP3 output is selected, use the given bitrate for the MP3 encoder (e.g.
|
|
||||||
B<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
|
|
||||||
B<resample-to>.
|
|
||||||
|
|
||||||
=item B<--output-mixed>
|
|
||||||
|
|
||||||
=item B<--output-single>
|
|
||||||
|
|
||||||
Whether to produce B<mixed> audio files, or B<single> audio files, or both. If
|
|
||||||
neither option is given, then by default both are enabled. If no file output is
|
|
||||||
desired, set B<output-format> to B<none>.
|
|
||||||
|
|
||||||
A B<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 B<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.
|
|
||||||
|
|
||||||
=item B<--mix-method=>B<direct>|B<channels>
|
|
||||||
|
|
||||||
Selects a method to mix multiple audio inputs into a single output file for
|
|
||||||
B<mixed> output. The default is B<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 (B<output-single>) would be.
|
|
||||||
|
|
||||||
The B<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. B<wav>).
|
|
||||||
|
|
||||||
=item B<--mix-num-inputs=>I<INT>
|
|
||||||
|
|
||||||
Change the number of recording channel in the output file. The value is between 1 to 4 (e.g. B<4>, which is also the default value).
|
|
||||||
|
|
||||||
=item B<--output-chmod=>I<INT>
|
|
||||||
|
|
||||||
Change the file permissions of recording files to the given mode. Must be given
|
|
||||||
as an octal integer, for example B<0660>.
|
|
||||||
|
|
||||||
=item B<--output-chmod-dir=>I<INT>
|
|
||||||
|
|
||||||
Change the file permissions of recording files to the given mode. Must be given
|
|
||||||
as an octal integer, for example B<0700> (which is also the default value).
|
|
||||||
|
|
||||||
=item B<--output-chown=>I<USER>|I<UID>
|
|
||||||
|
|
||||||
=item B<--output-chgrp=>I<GROUP>|I<GID>
|
|
||||||
|
|
||||||
Change the ownership of recording files. Either user/group names or numeric IDs
|
|
||||||
are supported. If the value is blank or given as B<-1> then the user/group is
|
|
||||||
left unchanged.
|
|
||||||
|
|
||||||
=item B<--mysql-host=>I<HOST>|I<IP>
|
|
||||||
|
|
||||||
=item B<--mysql-port=>I<INT>
|
|
||||||
|
|
||||||
=item B<--mysql-user=>I<USERNAME>
|
|
||||||
|
|
||||||
=item B<--mysql-pass=>I<PASSWORD>
|
|
||||||
|
|
||||||
=item B<--mysql-db=>I<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 B<output-storage>).
|
|
||||||
|
|
||||||
=item B<--forward-to=>I<PATH>
|
|
||||||
|
|
||||||
Forward raw RTP packets to a Unix socket. Disabled by default.
|
|
||||||
|
|
||||||
=item B<--tls-send-to=>I<IP>B<:>I<PORT>
|
|
||||||
|
|
||||||
=item B<--tls-resample=>I<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.
|
|
||||||
|
|
||||||
=item B<--notify-uri=>I<URI>
|
|
||||||
|
|
||||||
Enable HTTP notification about finished recordings to the specified URI, which
|
|
||||||
must be an HTTP or HTTPS URI. Information about the finished recording is
|
|
||||||
provided via custom HTTP headers, all of which use a prefix of B<X-Recording->.
|
|
||||||
|
|
||||||
=item B<--notify-post>
|
|
||||||
|
|
||||||
Use HTTP POST instead of GET for the HTTP notification requests. The request
|
|
||||||
body is empty even if POST is used.
|
|
||||||
|
|
||||||
=item B<--notify-no-verify>
|
|
||||||
|
|
||||||
Disable TLS peer certificate verification for HTTPS requests.
|
|
||||||
|
|
||||||
=item B<--notify-concurrency=>I<INT>
|
|
||||||
|
|
||||||
The maximum number of HTTP requests to perform simultaneously.
|
|
||||||
|
|
||||||
=item B<--notify-retries=>I<INT>
|
|
||||||
|
|
||||||
How many times to retry a failed HTTP notification before giving up. An
|
|
||||||
exponential falloff time is used for each subsequent attempt, starting with 5
|
|
||||||
seconds.
|
|
||||||
|
|
||||||
=item B<--notify-record>
|
|
||||||
|
|
||||||
Attach recorded file to HTTP notification request. If enabled, notification
|
|
||||||
request behaves as HTTP POST (ignoring B<--notify-post>). Note that this option
|
|
||||||
is incompatible with DB-only storage as no recording file exists on storage
|
|
||||||
(see B<output-storage>).
|
|
||||||
|
|
||||||
=back
|
|
||||||
|
|
||||||
=head1 EXIT STATUS
|
|
||||||
|
|
||||||
=over
|
|
||||||
|
|
||||||
=item B<0>
|
|
||||||
|
|
||||||
Successful termination.
|
|
||||||
|
|
||||||
=item B<1>
|
|
||||||
|
|
||||||
An error occurred.
|
|
||||||
|
|
||||||
=back
|
|
||||||
|
|
||||||
=head1 FILES
|
|
||||||
|
|
||||||
=over
|
|
||||||
|
|
||||||
=item F</etc/rtpengine/rtpengine-recording.conf>
|
|
||||||
|
|
||||||
Configuration file.
|
|
||||||
|
|
||||||
=back
|
|
||||||
|
|
||||||
=head1 SEE ALSO
|
|
||||||
|
|
||||||
L<rtpengine(8)>.
|
|
||||||
@ -0,0 +1 @@
|
|||||||
|
../docs/rtpengine-recording.pod
|
||||||
Loading…
Reference in new issue