  COPYRIGHT
 
 (c) COPYRIGHT INRIA and MIT, 1997.
 Please first read the full copyright statement in file COPYRIGHT.html

 September 1, 1997
 
 RTSP PACKAGE
 -------------

 The RTSP package is a system that allows to play and control streaming
 audio and video over the Internet.
 It is a sample implementation of a client and a server using the
 RTSP protocol.

 WARNING: Since the definition of RTSP is not yet completely finished, the 
 integration of presentations containing both audio *and* video in this 
 release does yet conform to the current RTSP draft. 
 However, presentations containing only audio are standard-conform.

 The software was written by Olivier Sofia, INRIA, Sophia-Antipolis.
 The system has been tested on Solaris and Linux.
 
 This is still prototype software, so use with care.
 
 If you find bugs, contact jigsaw@w3.org.
 
 QuickStart
 ----------
 
 All you need to do to use the system is to
 
 1) read the section "Software required", and make sure that you
    have the software mentioned there
 2) start a client - read the section "Starting a client" to find out
    how to do this
 3) check out the audio and video files accessible via the "Sites" menu
 
 
 CLIENT
 ------
 
 Software required
 ------------------
 
 - Java version 1.1.1
 - To play back audio and video files, you need:
   - for audio: a tool that can play RTP PCM audio streams
     (e.g. vat, fphone)
   - for video: a tool that can play RTP H.261 streams (e.g. vic)
 
 Starting the precompiled client
 -------------------------------
 
 To launch the client:
 
 1. Set your CLASSPATH by typing:

    On Windows (not tested)
       set CLASSPATH=<instdir>/Jigsaw/classes/rtsp.zip
     On UNIX
       export CLASSPATH=<instdir>/Jigsaw/classes/rtsp.zip

 2. Go to the directory "rtsppath"/client and type:
 
    mediascape

 The "Bookmarks" menu of Mediascape allows to manage bookmarks.
 Some bookmarks are already present in the distribution, and can 
 be used to test out out the system.
 
 By going to the menu "options" and selecting the "General Preferences" 
 item, you can change
   - the programs that are used to interpret the audio and video
     streams sent by the server
   - the port number to which an audio stream will be sent.
     In this prototype version, the port number for the video stream 
     will be selected by the server.
     
 
 SERVER
 ------
 
 Software required
 ------------------
 
 - Java version 1.1.1
 - As "server helpers", you need to download:
   - for serving audio .au file format 
     (and .gsm precompressed with toast), use sfmike

     1) Get the source code from 
        http://www.fourmilab.ch/speakfree/unix/sfunix.html
     2) Compile it, and copy the binary "sfmike" into the 
        directory 
        "rtsppath"/helpers/sfmike

   - for audio and video (RTP file format): MBone vcr
     http://www.informatik.uni-mannheim.de/~whd/mbone-vcr/
     Copy the the whole installation into the directory 
        "rtsppath"/helpers/VCR


 Starting the precompiled server
 ------------------------------

 1. Set your CLASSPATH as described under "Starting the precompiled client"

 2. Go to the directory "rtsppath"/server and type:
 
 rtspd "port" "rtsppath"
 
 where
 - "port" is the port number on which the server will listen for rtsp requests,
   i.e. the number that will show up in a url as follows: rtsp://hostname:port/
 - "rtsppath" is the absolute path to the directory where the RTSP system
   resides.
   For example, if the RTSP system is stored in the directory
   /u/www45/0/osofia/RTSP, the "rtsppath" should be set to this directory

 To test the server with the preconfigured bookmarks, start it at portnumber
 8008.

 Adding Audio/Video files to the server
 --------------------------------------
 
 To serve .au files, copy them into the directory
   "rtsppath"/helpers/sfmike/audio

 Then, write an SDP file describing the .au files. For an .au file called
 XXX.au, create an sdp file called sdp-XXX.au.
 An example is given in "rtsppath"/Sdp/sdp-welcome.au
 
 To server RTP audio and video files, record them with the MBone VCR, and copy
 them into the directory
    "rtsppath"/helpers/VCR

 Then, write an SDP file describing the .vcr files. For an .vcr file called
 XXX.vcr, create an sdp file called sdp-XXX.vcr.
 An example is given in "rtsppath"/Sdp/sdp-welcome.au

 NOTE: Currently, only presentations containing exactly one audio stream and
 exactly one video stream can be played.

 
 Extent of RTSP Protocol Implementation
 --------------------------------------
 
   Method implementation :
 
   The following RTSP methods have been implemented:
 
        OPTIONS
        SETUP
        PLAY
        TEARDOWN
        DESCRIBE

   This includes all required methods.

   The following RTSP methods have not been implemented:

       GET_PARAMETER
       PAUSE
       RECORD
       REDIRECT
       SET_PARAMETER
  
   Header field implementation:
 
   Every field is parsed, but not all fields are currently interpreted.
   The following table gives an overview:


      Header               type    support    methods            Interpreted
      ______________________________________________________________________


     Accept                R       opt.      entity                yes
     Accept-Encoding       R       opt.      entity                yes
     Accept-Language       R       opt.      all                   yes
     Authorization         R       opt.      all                   no
     Bandwidth             R       opt.      SETUP                 no
     Blocksize             R       opt.      all                   no
     Cache-Control         Rr      opt.      SETUP                 no
     Conference            R       opt.      SETUP                 no           
     Connection            Rr      req.      all                   no
     Content-Encoding      R       req.      SET_PARAMETER         yes
     Content-Length        R       req.      SET_PARAMETER         yes
     Content-Length        r       req.      entity                yes
     Content-Type          R       req.      SET_PARAMETER         no
     Date                  Rr      opt.      all                   yes
     Expires               r       opt.      DESCRIBE              no
     If-Modified-Since     R       opt.      DESCRIBE, SETUP       no
     Last-Modified         r       opt.      entity                no
     Public                r       opt.      all                   yes
     Range                 R       opt.      PLAY, PAUSE, RECORD   no
     Referer               R       opt.      all                   no
     Require               R       req.      all                   no
     Retry-After           r       opt.      all                   no
     Scale                 Rr      opt.      PLAY, RECORD          no
     Session               Rr      req.      all                   yes
     Server                r       opt.      all                   no
     Speed                 Rr      opt.      PLAY                  no
     Transport             Rr      req.      SETUP                 yes
     Transport-Require     R       xeq.      all                   no
     User-Agent            R       opt.      all                   no
     Via                   Rr      opt.      all                   no


