args "--conf-parser --no-handle-version"
include(header.m4)
define(CURRENT_PROGRAM,para_server)
define(DEFAULT_CONFIG_FILE,~/.paraslash/server.conf)
#########################
section "General options"
#########################
include(loglevel.m4)
include(log_timing.m4)
include(color.m4)
include(daemon.m4)
include(user.m4)
include(group.m4)
option "port" p
#~~~~~~~~~~~~~~
"listening port"
int typestr="portnumber"
default="2990"
optional
details="
para_server listens on this tcp port for incoming connections
from clients such as para_client. If the default port is
changed, the corresponding option of para_client must be used
to connect to para_server.
"
#############################
section "Configuration files"
#############################
include(logfile.m4)
include(config_file.m4)
option "user_list" -
#~~~~~~~~~~~~~~~~~~~
"(default='~/.paraslash/server.users')"
string typestr="filename"
optional
##################################
section "virtual streaming system"
##################################
option "autoplay" a
#~~~~~~~~~~~~~~~~~~
"start playing on startup"
flag off
option "autoplay_delay" -
#~~~~~~~~~~~~~~~~~~~~~~~~
"time to wait before streaming"
int typestr="ms"
default="0"
optional
dependon="autoplay"
details="
If para_server is started with the autoplay option, this option
may be used to set up a delay before para_server streams its
first audio file. This is useful for example if para_server
and para_audiod are started during system startup. The delay
time should be choosen large enough so that para_audiod is
already up when para_server starts to stream. Of course, this
option depends on the autoplay option.
"
option "announce_time" A
#~~~~~~~~~~~~~~~~~~~~~~~
"grace time for clients"
int typestr="ms"
default="300"
optional
details="
Clients such as para_audiod connect to para_server and execute
the stat command to find out whether an audio stream is
currently available. This sets the delay betweeen announcing
the stream via the output of the stat command and sending
the first chunk of data.
"
#############################
section "audio file selector"
#############################
option "afs_database_dir" D
#~~~~~~~~~~~~~~~~~~~~~~~~~~
"location of the database"
string typestr="path"
optional
details="
Where para_server should look for the osl database of the audio
file selector. The default is '~/.paraslash/afs_database-0.4'.
"
option "afs_socket" s
#~~~~~~~~~~~~~~~~~~~~
"Command socket for afs"
string typestr="path"
default="/var/paraslash/afs_command_socket-0.4"
optional
details="
For each server command that is handled by the audio file
selector, the child process of para_server connects to the
audio file selector via a local socket. This option specifies
the location of that socket in the file system.
"
option "afs_initial_mode" i
#~~~~~~~~~~~~~~~~~~~~~~~~~~
"Mood or playlist to load on startup."
string typestr="/"
optional
details="
The argument of this option must be prefixed with either 'p/'
or 'm/' to indicate whether a playlist or a mood should be
loaded. Example:
--afs_initial_mode p/foo
loads the playlist named 'foo'.
"
#####################
section "http sender"
#####################
option "http_port" -
#~~~~~~~~~~~~~~~~~~~
"tcp port for http streaming"
int typestr="portnumber"
default="8000"
optional
details="
The http sender of para_server listens on this port for
incoming connections. Clients are expected to send the usual
http request message such as 'GET / HTTP/'.
"
option "http_default_deny" -
#~~~~~~~~~~~~~~~~~~~~~~~~~~~
"make the http ACL a whitelist"
flag off
details="
The default is to use blacklists instead, i.e. connections
to the http sender are allowed unless the connecting host
matches a pattern given by a http_access option. This allows
to use access control the other way round: Connections are
denied from hosts which are not explicitly allowed by one or
more http_access options.
"
option "http_access" -
#~~~~~~~~~~~~~~~~~~~~~
"add an entry to the http ACL"
string typestr="a.b.c.d/n"
optional
multiple
details="
Add given host/network to access control list (whitelist if
http_default_deny was given, blacklist otherwise) before
opening the tcp port. This option can be given multiple
times. Example: '192.168.0.0/24' whitelists/blacklists the
256 hosts 192.168.0.x
"
option "http_no_autostart" -
#~~~~~~~~~~~~~~~~~~~~~~~~~~~
"do not open tcp port on startup"
flag off
details="
If this option is given, the http sender does not listen on
its tcp port. It may be instructed to open this port at a
later time by using the sender command.
"
option "http_max_clients" -
#~~~~~~~~~~~~~~~~~~~~~~~~~~
"maximal number of connections"
int typestr="number"
default="-1"
optional
details="
The http sender will refuse connections if already that number
of clients are currently connected. A non-positive value
(the default) allows an unlimited number of simultaneous
connections.
"
#####################
section "dccp sender"
#####################
option "dccp_port" -
#~~~~~~~~~~~~~~~~~~~
"port for dccp streaming"
int typestr="portnumber"
default="8000"
optional
details="
See http_port for details.
"
option "dccp_default_deny" -
#~~~~~~~~~~~~~~~~~~~~~~~~~~~
"make the dccp ACL a whitelist"
flag off
details="
See http_default_deny for details.
"
option "dccp_access" -
#~~~~~~~~~~~~~~~~~~~~~
"add an entry to the dccp ACL"
string typestr="a.b.c.d/n"
optional
multiple
details="
See http_access for details.
"
option "dccp_max_clients" -
#~~~~~~~~~~~~~~~~~~~~~~~~~~
"maximal number of connections"
int typestr="number"
default="-1"
optional
details="
See http_max_clients for details.
"
option "dccp_max_slice_size" -
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"Upper bound for the FEC slice size"
int typestr = "size"
optional
default = "0"
details = "
If this value is non-positive (the default) the dccp sender
uses the maximum packet size (MPS) of the connection as the
slice size. The MPS is a network parameter and depends on
the path maximum transmission unit (path MTU) of an incoming
connection, i.e. on the largest packet size that can be
transmitted without causing fragmentation.
This option allows to use a value less than the MPS in order
to fine-tune application performance. Values greater than
the MPS of an incoming connection can not be set.
"
option "dccp_data_slices_per_group" -
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"The number of non-redundant slices per FEC group"
int typestr = "num"
optional
default = "3"
details = "
This determines the number of slices in each FEC group that are
necessary to decode the group. The given number must be smaller
than the value of the dccp_slices_per_group option below.
Note that the duration of a FEC group is proportional to the
product dccp_max_slice_size * dccp_data_slices_per_group.
"
option "dccp_slices_per_group" -
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"The total number of slices per FEC group"
int typestr = "num"
optional
default = "4"
details = "
This value must be larger than the value given for above
dccp_data_slices_per_group above. The difference being the
number of redundant slices per group, i.e. the number of
data packets that may be lost without causing interruptions
of the resulting audio stream.
Increase this value if for lossy networks.
"
####################
section "udp sender"
####################
option "udp_target" -
#~~~~~~~~~~~~~~~~~~~~
"add udp target with optional port"
string typestr="host[:port]"
optional
multiple
details="
Add given host/port to the list of targets. The 'host' argument
can be either an IPv4/v6 address or hostname (RFC 3986 syntax).
The 'port' argument is an optional port number. If the 'port'
part is absent, the 'udp_default_port' value is used.
The following examples are possible targets:
'10.10.1.2:8000' (host:port); '10.10.1.2' (with default port);
'224.0.1.38:1500' (IPv4 multicast); 'localhost:8001' (hostname
with port); '[::1]:8001' (IPv6 localhost); '[badc0de::1]' (IPv6
host with default port); '[FF00::beef]:1500' (IPv6 multicast).
This option can be given multiple times, for multiple targets.
"
option "udp_no_autostart" -
#~~~~~~~~~~~~~~~~~~~~~~~~~~
"do not start sending"
flag off
details="
If this option is given, udp streaming may be activated at
a later time by using the sender command.
"
option "udp_default_port" -
#~~~~~~~~~~~~~~~~~~~~~~~~~~
"udp port to send to"
int typestr="port"
default="8000"
optional
option "udp_mcast_iface" -
#~~~~~~~~~~~~~~~~~~~~~~~~~~
"outgoing udp multicast interface"
string
optional
option "udp_header_interval" H
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"duration for sending header"
int typestr="ms"
default="2000"
optional
details="
As the udp sender has no idea about connected clients it
sends the audio file header periodically if necessary. This
option is used to specify the duration of the interval between
sending the header. Shorter values decrease the average time
clients have to wait before being able to start playback,
but this also increases the amount network traffic. Note
that this affects only ogg vorbis streams as this is the only
audio format that needs an audio file header.
"
option "udp_ttl" t
#~~~~~~~~~~~~~~~~~
"set time to live value"
int typestr="num"
default="-1"
optional
details="
This option applies exclusively to multicast UDPv4/v6 streaming.
For the sending UDPv4 socket it sets the multicast Time-To-Live
value to \"num\". Traditional TTL scope values are: 0=host,
1=network, 32=same site, 64=same region, 128=same continent,
255=unrestricted. Please note however that this scoping is not
a good solution: RFC 2365 e.g. presents a better alternative.
When using UDPv6 multicasting, the option sets the number of
multicast hops (as described in RFC 3493); a value of -1
allows the kernel to auto-select the hop value.
"