Speak Freely for Unix: sfvod
by John Walker
sfvod - Speak Freely voice on demand server
sfvod [ -aduvx ] [ -lfile ] [ -pport ] [ -rprogram ] [
-ttimeout ] [ soundfile... ] [ - sfmike options ]
sfvod monitors connections to a given port. When a user
connects with Speak Freely, sfvod transmits an audio file
or live audio to the connected user. sfvod allows cre-
ation of servers which play audio on demand to any user
who connects to the host and port where a given audio file
is published. If the SPEAKFREE_LWL_TELL environment vari-
able is set to a one or more Look Who's Listening hosts,
sfvod will publish its existence on those hosts. See the
``Look Who's Listening'' section in the sfspeaker manual
page for details on how to set the environment variables.
-a Transmit live audio rather than a sound file.
-d Generate debug output on standard output.
-lfile Logs requests processed by the server in the
named file. The log is written in a format com-
patible with that of the NCSA HTTPD server. If
you're running multiple copies of sfvod, serving
different sound files, each must write a sepa-
rate log file which you can consolidate later.
-pport sfvod monitors the control port of the given
port pair (port specifies the data--even num-
bered--port of the pair). When a connection oc-
curs, transmission of the specified sound file
or live audio commences. When a BYE message ar-
rives on the control port, transmission is ter-
-rprogram The named program is executed to transmit the
message to the connected user. The default pro-
gram is sfmike.
-ttimeout If a remote site fails to send a BYE message, it
will be timed out (and hence become eligible for
retransmission of the sound file if another ID
message arrives) after timeout seconds. The de-
fault timeout is 30 seconds.
-u Prints how-to-call information.
-v Causes sfvod to log all connections, disconnec-
tions, and timeouts to standard output.
-x Dump host address records and packet contents to
standard output in hexadecimal.
- Any command line arguments that follow a single
dash are passed directly to sfmike.
sfvod is a Perl script that transmits sound by invoking
sfmike. In order to use it, you must have Perl installed
on your system. sfvod was developed using Perl 4.0, patch
level 36; the program has also been tested under Perl
When transmitting sound files, sfvod forks a copy of
sfmike to service each request. If many simultaneous re-
quests are received, the compression overhead of multiple
copies of sfmike may overload the CPU and create pauses in
the transmitted audio. If you're using GSM compression
and expect substantial traffic, consider pre-compressing
your audio files with toast (found in the gsm/bin directo-
ry) and specifying the resulting .gsm file as the sound-
file on the command line.
Multiple simultaneous requests may overload the outbound
network capacity, leading to pauses on the receiving end.
When sending live audio, sfvod kills and restarts sfmike
each time a host connects or disconnects. This may result
in a brief interruption in the audio transmission. This
could be eliminated by adding a signal handler to sfmike
that causes it to update its list of hosts directly.
perl(1), sfmike(1), sfspeaker(1), toast(1)
by John Walker
April 15, 1999