<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hello Ross:<br>
    <br>
    <blockquote
      cite="mid:B78B61E8-63AF-4AB1-BEA1-2F94178FEB23@live555.com"
      type="cite">
      <div><small>Once the 'back-end' connection to the proxied stream
          has been established (as a result of a successful "DESCRIBE"
          command), the proxy server periodically (at an interval
          randomly chosen between 30 and 60 seconds (usually)) sends a
          command to the 'back-end' server, to test whether it's still
          alive.  (This command will be "OPTIONS", unless the server has
          specifically reported (in response to a previous "OPTIONS"
          command) that it supports "GET_PARAMETER", in which case the
          command will be "GET_PARAMETER".)</small></div>
      <div><small><br>
        </small></div>
      <div><small>The proxy server acts, based upon the response to each
          'liveness' command.  If the response is "OK", it goes ahead
          and sends another 'liveness' command later.  If the response
          is not "OK", or if it detects that the RTSP connection with
          the back-end server has failed, then it assumes that the
          back-end server is down, and it will then closes the back-end
          connection, and start again by sending another "DESCRIBE".
           (These "DESCRIBE" commands are also repeated - at increasing
          random intervals - until the server responds.)</small></div>
    </blockquote>
    Yes, that's what i understood about the liveness control mechanism,
    and it works properly when the backend connection is alive and
    working.<br>
    <br>
    <blockquote
      cite="mid:B78B61E8-63AF-4AB1-BEA1-2F94178FEB23@live555.com"
      type="cite">
      <div><small><br>
        </small></div>
      <div><small>What we don't do, however, is test whether the
          back-end server actually responds to each 'liveness' command
          ("OPTIONS" or "GET_PARAMETER").  So far, I've assumed that if
          the back-end server fails, it will do so by closing the TCP
          connection, which we (the proxy) will eventually detect.  The
          code currently does not allow for the TCP connection staying
          alive, but the back-end server simply failing to respond at
          all to a 'liveness' command.  Is this something that you are
          actually seeing happen??</small><br>
      </div>
    </blockquote>
    Yes, it is actually happening.<br>
    <br>
    I'm not sure if the assumption "<i>if the back-end server fails, it
      will do so by closing the TCP connection"</i> is strong enough.
    What i'm actually seeing is that sometimes the liveness is sent but
    no response is received, and the backend connection seems to be
    still alive because the proxy doesn't detect any closure, but the
    connection is not really working. This is a problem, because you
    can't stream the video throught this proxyRTSPClient anymore, so, i
    think that would be useful to have a timeout task to control how
    long should the proxy wait the liveness response in order to reset
    such connections.<br>
    <br>
    Conchi Abasolo<br>
    Vaelsys<br>
  </body>
</html>