<system>
tag. In general, a specific komssys executable is configured from one type-dependant system block, and possible one type- and host-dependant system block.
A system block in the configuration file may be either type-dependent, in which case it is introduced with the type parameter such as <system type="client">
, which means that it is valid for client executables, or type- and host-dependant, in which case it is introduced with a line like <system type="proxy" host="bansuri">
. The host name may be an unqualified or qualified hostname, or it may be given in dotted decimal notation. IPv6 is currently not supported in either case, except on platforms with an integrated gethostbyname() call for IPv4 and IPv6.
Some of the configuration settings in the system block are unstructured configuration values of this basic data types bool, int, string, or enumeration values, others are structured and will be explained in cross-referenced sections. Here is an overview:
<system> <cseq1 value="false" /> <no-patching /> <no-caching /> <caching-strategy value="FIFO" /> <cachedir value="/tmp" /> <cachesize value="1" /> <tfrc-reply value="false" /> <rootdir value="/home/sweet/home" /> <client-nw value="-1" /> <mcast-if value="eth0" /> <rtsp> ... </rtsp> <sdp> ... </sdp> <media> ... </media> <gui> ... </gui> <client-emulation> ... </client-emulation> <server-emulation> ... </server-emulation> <debug> ... </debug> </system>
And the individual attributes mean:
<cseq1>
is a boolean configuration value. Boolean values can (as expected) assume the settings true or false. They can be specified by prefix or by value setting. This means that the value true can be assumed by specifying either <cseq1 />
, <cseq1 value="true" />
, or <cseq1 value="yes" />
. The value false can be assumed by specifying either <no-cseq1 />
, <cseq1 value="false" />
, or <cseq1 value="no" />
. This specific value affects the choice of the CSEQ value in the RTSP header. The standard propose that a random start value for the sequence numbering of the RTSP header packages should be chosen to inhibit man-in-the-middle attacks. Setting <cseq1>
to true forces komssys clients and proxies to initiate the communication with a CSEQ value 1. This is at least necessary to Real Server G2. The default value is false.<patching>
is a boolean flag that defines whether a server or proxy should use patching to deliver requested video streams. Patching uses multicast, out-of-order transmission, and buffering to increase efficiency. It is described in the literature. The default value is false.<caching>
is a boolean flag that defines whether a proxy should use caching. The default value is false. If it is true, further information is derived from the settings <caching-strategy>
, <cachedir>
and <cachesize>
.<caching-strategy>
is a string value that specifies the caching strategy to use. The default is FIFO. The only supported strategies at the time of this writing are two FIFO variations, FIFO and FIFO2.<cachedir>
is a string value that specifies where cached files are stored on disk. The default value is /tmp.<cachesize>
is an int value that specifies the size that should at most be used by the cache. The value is given in megabytes, and the default it 1, which is obviously hardly enough for a single video clip.<reflection>
is a boolean flag that defines whether a proxy should use reflection. The default value is true. Reflection means that the proxy will be included in the RTP-datapath. If it is true, RTP data will be received from the media server and will be forwarded to the client by the proxy. If it is false the proxy will act as a controlling proxy and the data will be send by the media server directly to the client. In the latter case the setting <caching>
will overwrite <reflection>
if set to true. <br/> Examples:<br/> <reflection> | <caching> | semantics |
---|---|---|
true | true | caching proxy |
false | true | caching proxy |
true | false | proxy with RTP port forwarding |
false | false | controlling proxy (no RTP communication on the proxy) |
<tfrc-reply>
is a boolean flag that defines whether a client or proxy should require the use of TFRC to control the bandwidth consumption of the RTP stream. At the time of this writing we don't have scalable video codec, so the TFRC does not allow smooth streaming. It is meant for research purposes only. The default is false.<rootdir>
is the directory that the server prepends to the file names that are specified in URLs in RTSP DESCRIBE and SETUP messages. The default setting is the user's home directory, as derived from getenv("HOME").<client-bw>
is an integer setting that limits the client's bandwidth when TFRC is used. The value is the upper bandwidth limit of the client in bits per second. The default is -1, which means unlimited.<mcast-if>
is a string value that specifies the name of a multicast interface that should be used for multicast delivery. The default setting is NULL.
<datapump>
dok_configuration_system_datapump<rtsp>
Configuration: DATAPUMP<sdp>
Configuration: SDP<media>
Configuration: Media<gui>
Configuration: GUI<server-emulation>
Configuration: SERVER-EMULATION<client-emulation>
Configuration: CLIENT-EMULATION<debug>
Configuration: Debug