


SFSPEAKER(1)                                         SFSPEAKER(1)


NAME
       sfspeaker - Speak Freely sound receiver utility

SYNOPSIS
       sfspeaker [ -dnqv ] [ -areply_file ] [ -iIDEAkey ] [
            -kDESkey ] [ -mmulti_group ] [ -okeyfile ] [ -pport ]
            [ -r[+]recfile ] [ -wport ] [ -z[Pass_phrase] ]

DESCRIPTION
       Speak  Freely  allows users of a variety of Unix and Unix-
       like workstations equipped with audio  hardware  connected
       by a network to converse, using the audio input and output
       facilities of the workstation to digitise and later recon­
       struct  the  sound and the network to relay sound packets.
       Optional compression is provided,  allowing  conversations
       over  relatively  low-bandwidth  Internet links as well as
       local area networks.  Speak Freely consists  of  two  pro­
       grams,  sfmike  and sfspeaker.  The sfspeaker program must
       be running on a workstation to allow it to  receive  sound
       sent  with  the sfmike program.  You can execute sfspeaker
       in the background; it only uses the  audio  hardware  when
       sound is actually being received.

       If requested by setting various environment variables, sf­
       speaker can publish your identity and Internet address  on
       a  Look Who's Listening server.  This enables other users,
       by querying the server, to determine if  you're  on  line.
       If you have a dial-up Internet connection that assigns you
       a different host name and Internet address each  time  you
       connect,  Look  Who's Listening permits others to find the
       address of your current connection, whatever it may be.

       You can supply an image of your face (or anything else you
       like)  as  a 256 colour Microsoft bitmap (.bmp) file which
       will be sent to hosts you connect to.  If you have the  xv
       image  display  utility  installed  on  your  workstation,
       you'll be able to see the face images published  by  users
       who connect to you.

OPTIONS
       -areply_file
                 When  a  new host connects, sfspeaker will write
                 an executable shell script into  the  given  re­
                 ply_file   containing  a  command  that  invokes
                 sfmike to reply to the host.   By  default,  the
                 command  is  ``sfmike  -t  $*  hostname'', where
                 hostname is the Internet host name or IP address
                 of  the  connecting host.  The user can reply to
                 the host simply  by  executing  the  reply_file.
                 You  can create a custom reply command by speci­
                 fying it after the reply_file,  separated  by  a
                 space (be sure to enclose the argument to the -a
                 option in quotes when doing this).   The  ``$*''
                 specification  allows  you  to supply additional



                            8 APR 1996                          1





SFSPEAKER(1)                                         SFSPEAKER(1)


                 options to sfmike by including them on  the  re­
                 ply_file command line.

       -d        Enables  debug output from sfspeaker whether re­
                 quested by the remote copy of sfmike or not.

       -ikey     The specified key is used to decrypt  sound  re­
                 ceived  using  the International Data Encryption
                 Algorithm (IDEA).

       -kkey     The specified key is used to decrypt  sound  re­
                 ceived  using a slightly modified version of the
                 Data Encryption Standard algorithm (the  initial
                 and  final permutations, which do not contribute
                 to the security of the algorithm and exist pure­
                 ly  to deter software implementations of DES are
                 not performed).

       -mmulti_group
                 In addition to messages directed specifically to
                 the  host on which it is running, sfspeaker will
                 listen for messages sent  to  the  IP  multicast
                 group multi_group, which can be specified either
                 as a symbolic group name or as a numeric IP  ad­
                 dress.   Any  number  of multicast groups can be
                 monitored simultaneously, up to the system maxi­
                 mum  (usually  20).  If the system on which sfs­
                 peaker is running does  not  support  multicast,
                 this option will not be available.

       -n        Disables remote ring requests.     Sun users who
                 have connected the audio output jack to a higher
                 quality  speaker may wish to set this to prevent
                 remote users from diverting audio  back  to  the
                 built-in speaker.

       -ofilename
                 The  contents of the specified filename are used
                 as a ``key file''  to  decrypt  sound  data  re­
                 ceived.

       -pport    Causes sfspeaker to listen on the specified port
                 number instead of the default port specified  by
                 ``INTERNET_PORT'' in the Makefile.

       -q        Quiet--disables  debug output from sfspeaker un­
                 conditionally.

       -r[+]filename
                 Record all audio received in the named  filename
                 in Sun audio file format.  This provides a crude
                 ``answering machine'' facility.  If you're going
                 to be away from your machine, run sfspeaker with
                 this option  so  any  sound  you  miss  will  be



                            8 APR 1996                          2





SFSPEAKER(1)                                         SFSPEAKER(1)


                 recorded in your absence.  When you return, play
                 the sound file to hear messages from people  who
                 tried  to  get in touch while you were away.  If
                 filename already exists and a plus sign precedes
                 the  name,  sound is appended to the file rather
                 than overwriting previously saved sound.

       -u        Prints how-to-call information.

       -vtimeout When sfspeaker receives a packet from a host  it
                 hasn't  heard  from  in timeout seconds, it will
                 attempt to find the host name and print  a  mes­
                 sage  on  standard  error noting the new connec­
                 tion.  If the host name can't be found, the  nu­
                 meric  IP  address is given.  After timeout sec­
                 onds of inactivity a message is issued  indicat­
                 ing  the  host is idle.  If no timeout is speci­
                 fied, 180 seconds is used.

       -wport    sfspeaker publishes the identity of the  machine
                 it  is  running  on  and the given port (2074 if
                 none is given), on Look Who's Listening  servers
                 as  specified  by the SPEAKFREE_LWL_xxx environ­
                 ment variables, but does not open network  input
                 or  listen  for packets.  This option is used by
                 the Voice on Demand server, sfvod,  to  identify
                 itself to Look Who's Listening servers.

       -zpass_phrase
                 When  a  pgp-encrypted  session key is received,
                 pgp is invoked to decrypt  it.   Decryption  re­
                 quires  your RSA private key, for which the pass
                 phrase must be provided.  By default,  pgp  asks
                 you  for  the pass phrase each time a session is
                 initiated.  You can override this by  specifying
                 the  pass  phrase  using the PGPPASS environment
                 variable (see the pgp documentation for  details
                 and  a  discussion of the vulnerability this may
                 create) or by using the -z option on speaker  to
                 supply  the  pass phrase.  The given pass phrase
                 is then passed to PGP with its  own   -z  option
                 each  time  it  is  invoked.  If the pass phrase
                 consists of more than one word, be sure  to  en­
                 close it in quotes.  If no pass phrase is given,
                 sfspeaker prompts you for the pass  phrase  when
                 it  is  first  invoked.  If you're worried about
                 your pass phrase being compromised through spec­
                 ification  as an environment variable or command
                 line argument, this allows you to enter the pass
                 phrase only once per execution of sfspeaker.  Be
                 aware, however, that sfspeaker continues to pass
                 the  phrase  to  pgp via a command line argument
                 when it is invoked to decode the session key.




                            8 APR 1996                          3





SFSPEAKER(1)                                         SFSPEAKER(1)


LOOK WHO'S LISTENING
       Speak Freely's Look Who's Listening mechanism  allows  you
       to publish information in an electronic telephone directo­
       ry at a cooperating Internet site.  Whenever  you're  con­
       nected  to the Internet and running sfspeaker, other users
       anywhere on the Internet can, by querying that site,  find
       out  you're on line and where to contact you.  If you have
       a dial-up connection to the Internet which assigns  you  a
       different  host  name  and Internet (IP) address each time
       you connect, Look Who's Listening allows  people  to  find
       you at the address you're currently connected to.

       To  publish  your  information with a Look Who's Listening
       server, set the  following  environment  variables  before
       running  sfspeaker.   As  long as you don't set the SPEAK­
       FREE_LWL_TELL variable, no other site will be notified  of
       your use of Speak Freely and remote users will have no way
       to determine whether you're running sfspeaker or not.   If
       privacy  and  discretion are important to you, think care­
       fully before publishing your information and if you decide
       to  proceed,  what  information  you supply.  Anything you
       send to a Look Who's Listening site is potentially  avail­
       able  to  any  user  on the Internet.  Remember that Speak
       Freely won't disclose anything you  don't  explicitly  re­
       quest be published.

       To enable publication, set the environment variable SPEAK­
       FREE_LWL_TELL to the name of the Look Who's Listening host
       where  you  wish to publish your address.  An experimental
       host is currently available at the site  lwl.fourmilab.ch.
       Anybody  can create a host simply by installing the sflwld
       program supplied with Speak Freely;  this  allows  private
       networks to maintain directories that aren't accessible to
       users from the Internet at large, or  interest  groups  to
       create  ``meeting rooms'' for those interested in specific
       topics.  If the site uses a port  number  other  than  the
       standard  of  2076,  you can specify the port number after
       the host name, separated by a comma.

       Setting SPEAKFREE_LWL_TELL to a valid Look Who's Listening
       host publishes default information about you and your site
       determined from your password file entry.  You can publish
       your entry on multiple hosts by listing them on the SPEAK­
       FREE_LWL_TELL variable, separated by commas.  You can sup­
       ply  more complete and accurate information by setting the
       environment variable SPEAKFREE_ID to a string of the form:

       full name: E-mail address: phone number: location

       With most shells you'll have to enclose this specification
       in quotes.  Think about the consequences  of  making  your
       telephone  number  and  geographical  location potentially
       available to any user on the Internet before  you  include
       them  on a SPEAKFREE_ID statement.  Your E-mail address is



                            8 APR 1996                          4





SFSPEAKER(1)                                         SFSPEAKER(1)


       the primary means by which others contact you; this should
       be the address you usually give to individuals who wish to
       contact you or include,  for  example,  on  your  business
       card.   It  needn't  have anything to do with the host and
       network on which you're running sfspeaker.   For  example,
       if  you  usually give out your E-mail address at work, you
       might specify jetson@sprockets.com even though you connect
       to the Internet at home as george@slip3986.terra.ssol.net.
       Normally, the server will reply to a query with all active
       sites  which contain the query string in either the E-mail
       address or full name fields.  If you  precede  the  E-mail
       address with an asterisk, only queries which exactly match
       the E-mail address will return your  contact  information.
       This  allows dial-up users to allow those knowing their E-
       mail address to contact them without informing any  Inter­
       net  user who's curious that they're on line.  The securi­
       ty-conscious should note that this protection is  provided
       by  the  Look Who's Listening server, and assumes the site
       you contact is running an unmodified version of the sflwld
       program which is operating as intended.

       Look  Who's Listening uses the Internet Real-Time Protocol
       (RTP) to communicate with the  host  running  the  server.
       This protocol uses a ``canonical name'' to identify a user
       and machine so that remote users can usually  contact  the
       individual  with Unix tools such as finger and talk.  sfs­
       peaker creates a canonical name  automatically  from  your
       user  ID and domain name.  If no domain name is available,
       the user ID and Internet (IP) address are used to create a
       unique  name.   If  for some reason this process yields an
       unusable canonical name, you can override  it  by  setting
       the  SPEAKFREE_CNAME  variable  to  the canonical name you
       prefer.

SHOW YOUR FACE
       If you'd like remote users to see an image  of  your  face
       (or  any  other  image you like, for that matter), set the
       environment variable SPEAKFREE_FACE to point to the  image
       file.  The image file must be in Microsoft Device Indepen­
       dent Bitmap (.bmp) format, in 256 colour mode, and  should
       not be larger than 128x128 pixels.  The xv utility, avail­
       able by anonymous FTP from ftp.cis.upenn.edu and many oth­
       er  public FTP archives can be used to convert images into
       this format.  If xv is installed on your system, face  im­
       ages  for  remote  users  will appear on the right side of
       your  screen  shortly  after  they  connect.   The  SPEAK­
       FREE_FACE  variable  must  be defined when both sfmike and
       sfspeaker are run.

FILES
       On Sun workstations audio is written to the /dev/audio de­
       vice  file.   sfspeaker acquires the audio device upon re­
       ceiving sound, but automatically releases  /dev/audio  for
       output  after  20  seconds elapse without any sound having



                            8 APR 1996                          5





SFSPEAKER(1)                                         SFSPEAKER(1)


       been received.  On Silicon Graphics machines  the  digital
       media  development  toolkit  (a  standard component of the
       Iris Development Option in IRIX 5.3 and above) is used  to
       access the audio hardware.

BUGS
       If  sound  from multiple sources arrives simultaneously at
       one machine, sfspeaker interleaves  the  audio  packet-by-
       packet.  This usually results in unintelligible gibberish,
       although it's normally adequate to allow ``butting  into''
       a  conversation.   It  might be possible to have sfspeaker
       mix the sound into one output stream, but I haven't exper­
       imented with this approach.

       In  order  to  deliver  acceptable (or at least tolerable)
       performance across international links,  sfmike  and  sfs­
       peaker  use ``Internet datagram'' socket protocol which is
       essentially a ``fire and forget'' mechanism; neither  flow
       control  nor  acknowledgement  are  provided.  Since sound
       must be delivered at the correct time in order to  be  in­
       telligible,  in  real time transmission there's little one
       can do anyway if data are lost.  Consequently, bogged down
       lines,  transmission  errors,  etc., simply degrade or de­
       stroy the quality of the audio without providing  explicit
       warnings at either end that anything's amiss.

       IDEA, DES, and key file options encrypt every sound packet
       with the same key--no key chaining is performed.  (DES and
       IDEA  encryption  do,  however,  use cipher block chaining
       within each packet.)  Chaining from packet to packet would
       increase  security  but then loss of any packet would make
       it impossible to decrypt all that followed.

       Certain governments attempt to restrict the  availability,
       use,  and exportation of software with cryptographic capa­
       bilities.  Speak  Freely  was  developed  in  Switzerland,
       which  has  no  such restrictions.  The DES, MD5, and IDEA
       packages it uses was obtained from an Internet site in an­
       other  European country which has no restrictions on cryp­
       tographic software.  If you import this  software  into  a
       country  with  restrictions  on cryptographic software, be
       sure to comply with whatever restrictions apply.  The  re­
       sponsibility  to  obey the law in your jurisdiction is en­
       tirely yours.

       By default, sfspeaker  listens  to  Internet  port  number
       2074.  It is conceivable, albeit unlikely, that this might
       conflict with some other locally-developed network server.
       You can specify a different port number with the -p to op­
       tion, but your sfspeaker won't receive audio  from  others
       that  use  the  standard  port number.  When communicating
       with other applications using VAT  or  RTP  protocol,  you
       must  specify  the  port on which the other application is
       sending.  RFC 1890 recommends port  5004  as  the  default



                            8 APR 1996                          6





SFSPEAKER(1)                                         SFSPEAKER(1)


       port  for  RTP applications.    Many VAT protocol applica­
       tions default to port 3456.

       No verification that the SPEAKFREE_FACE image is  actually
       a  256  colour Microsoft .bmp file is performed.  You can,
       in fact, send an image in any format xv is  able  to  dis­
       play,  as  long  as you're communicating with another Unix
       user.  But if you supply a non-.bmp file, Speak Freely for
       Windows won't be able to display the image.

ACKNOWLEDGEMENTS
       The Silicon Graphics audio drivers are based on the stand-
       alone SGI version developed by  Paul  Schurman  of  Espoo,
       Finland.   Without his generous contribution, Speak Freely
       would have probably remained forever confined in an  orbit
       around the Sun.

       Andrey  A.  Chernov  contributed  code  that enables Speak
       Freely to build and run on FreeBSD.

       Hans Werner Strube contributed code to allow  the  program
       to  build  under Solaris 2.4 without any source changes or
       need for compatibility modes.

       Frank Gadegast, ``KeyJ Phade'', contributed code that  al­
       lows Speak Freely to work on Linux.

       The  GSM  compression and decompression code was developed
       by Jutta Degener and Carsten Bormann of the Communications
       and  Operating Systems Research Group, Technische  Univer­
       sitaet    Berlin:     Fax:     +49.30.31425156,     Phone:
       +49.30.31424315.   They  note  that THERE IS ABSOLUTELY NO
       WARRANTY FOR THIS SOFTWARE.  Please  see  the  readme  and
       copyright  files in the gsm directory for further details.

       The ADPCM compression and decompression code was developed
       by  Jack Jansen of the Centre for Mathematics and Computer
       Science,  Amsterdam,  The  Netherlands.   Please  see  the
       readme and copyright files in the adpcm directory for fur­
       ther details.

       The linear predictive coding compression algorithm was de­
       veloped by Ron Frederick of Xerox PARC.

       The  DES encryption code was developed by Phil Karn, KA9Q.
       Please see the readme file in the des directory  for  fur­
       ther details.

       The  public domain implementation of U.S. Federal Standard
       1015 -lpc10 compression algorithm  was  developed  by  the
       United  States  Department  of  Defense, National Security
       Agency (NSA).   Please see the README and FAQ files in the
       lpc10 directory for additional details.




                            8 APR 1996                          7





SFSPEAKER(1)                                         SFSPEAKER(1)


       The  DES  encryption  library  used for encrypting and de­
       crypting VAT and RTP protocol packets was developed by Er­
       ic  Young.   Please  see the README and COPYRIGHT files in
       the libdes directory for further details.

       The IDEA algorithm was developed by Xuejia Lai  and  James
       L.  Massey,  of  ETH  Zurich.   The implementation used in
       Speak Freely was modified and derived from original C code
       developed  by  Xuejia Lai and optimised for speed by Colin
       Plumb.  The IDEA[tm] block cipher is  patented  by  Ascom-
       Tech  AG.  The  Swiss patent number is PCT/CH91/00117, the
       European patent number is EP 0 482 154 B1,  and  the  U.S.
       patent  number is US005214703.  IDEA[tm] is a trademark of
       Ascom-Tech AG.  There is no license fee required for  non­
       commercial use.  Commercial users may obtain licensing de­
       tails from Dr. Dieter  Profos,  Ascom-Tech  AG,  Solothurn
       Lab, Postfach 151, CH-4502 Solothurn, Switzerland, Tel +41
       65 242 885, Fax +41 65 235 761.

       The implementation  of  MD5  message-digest  algorithm  is
       based on a public domain version written by Colin Plumb in
       1993.  The algorithm is due to Ron Rivest.  The  algorithm
       is described in Internet RFC 1321.

SEE ALSO
       audio(4),  audiopanel(1), audiotool(1), finger(1), pgp(1),
       sflwld(1), sfmike(1), sfvod(1), soundeditor(1),  soundfil­
       er(1), talk(1), xv(1)

AUTHOR
            John Walker
            WWW: http://www.fourmilab.ch/

       All  modules  of  Speak  Freely developed by me are in the
       public domain.  See the readme and/or copyright  files  in
       the  adpcm,  des, gsm, and idea directories for conditions
       of use and distribution of those components.   This  soft­
       ware is provided ``as is'' without express or implied war­
       ranty.


















                            8 APR 1996                          8


