[Live-devel] ProxyRTSPClient::sendLivenessCommand Timeout

Conchi Abasolo conchi.ap at vaelsys.com
Thu Jan 24 01:30:03 PST 2013


Hello Ross:

> 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".)
>
> 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.)
Yes, that's what i understood about the liveness control mechanism, and 
it works properly when the backend connection is alive and working.

>
> 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??
Yes, it is actually happening.

I'm not sure if the assumption "/if the back-end server fails, it will 
do so by closing the TCP connection"/ 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.

Conchi Abasolo
Vaelsys
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20130124/7ae87e32/attachment.html>


More information about the live-devel mailing list