The pathtest
program allows testing of nearly all possible
combinations of Prosody speech processing which use datafeeds. It allows
for the interactive construction and control of arbitrary numbers of
different multi-stage Prosody functions. The Prosody functions which can
be used are:
play
" - Replay
rec
" - Record
path
" - signal path processing
rtcp
" - an RTCP handler
rtprx
" - receive from RTP stream
rtptx
" - transmit to RTP stream
tdmrx
" - receive from TDM timeslot
tdmtx
" - transmit to TDM timeslot
Combinations of these are built by commands read from standard input,
and operations are managed in the background while further commands
are being read and processed. For each type of operation (for
example, "play
"), there can be an arbitrary number of
instances running. These are referred to individually, as
"play[0]
", "play[1]
", "play[2]
"
etc or by a range of them: "play[2:5]
" which refers to
"play[2]
", "play[3]
", "play[4]
",
and "play[5]
".
pathtest [ -i inifile]
If an initialisation file is specified, it is opened and read as if
its contents has been entered as commands. At the end of it,
pathtest
reads further commands from standard input.
Each line of input is interpreted as a command. A blank line causes a status summary to be printed. The summary shows the status of each instance of the operations in progress. The operations are shown with short tags introducing each type of operation:
P:...play...R:...rec...H:...path...C:...rtcp...Rr:...rtprx...Rt:...rtptx...Tr:...tdmrx...Tt:...tdmtx...
Within each type of operation, the individual instances are shown in order (0, 1, 2, ... etc) with one character used for each. A blank character indicates that the operation has completed, and trailing blanks are only shown once, after which the underlying item is destroyed. The significance of other characters depends on the operation being performed.
The command "?
" prints a summary of the commands
available. When followed by the name of a type of operation, it shows
the current values for that type of operation.
A command which starts with the name of a type of operation specifies the current settings to be used when creating new items of that type or adjusting an existing item. For example:
play agc 1 speed 150
makes new plays start with agc enabled and a speed of 150%. Settings not mentioned are left unchanged. The settings available for each type of operation are described separately:
The command "+
" followed by a pipeline starts the
operations in the specified pipeline, connected to one another in
order. For example,
+play | tdmtx ts 64:0
starts a new play, changes the tdmtx settings to use stream 64, timeslot 0, starts a tdmtx, and connects the new play to the new tdmtx.
Each part of the pipeline consists of the name of a type of operation, and any values of the current settings to change. Settings which are not specified use their current values.
The whole pipeline is run on the module currently selected with the mod command.
The command "-
", followed by a range of running
operations, stops them. For example,
-play[4]
stops the fifth play operation currently running.
The command "=
" followed by the name of an operation
type, a range, and optional settings makes the specified range of
currently running operations use the current settings. For example,
=play[4] agc 1
changes the current settings to enable agc, and then makes the fifth play currently running use the current value of the all play settings, including the newly changed agc setting.
This is one of the Prosody test programs .