Ross Finlayson wrote:
Our server impelmentation uses both RTSP commands *and* RTCP ("RR") packets from clients to indicate liveness. Therefore, the "timeout" parameter in a "Session:" header is not needed, because periodic RTSP commands (e.g., "GET_PARAMETER") from the client are not needed in order to tell the server that the session is alive. Instead, the server gets this information from RTCP reports.

I have a client here that doesn't send RTCP RR packets to the server.

Your client is broken, because RTCP is a required part of the RTP/RTCP standard. It is not optional functionality.


It does send GET_PARAMETER, every ~60 seconds unless told different. Therefore, the server times out, since its hard-coded timeout is shorter.

Feel free to change the "reclamationTestSeconds" value (in "DynamicRTSPServer.cpp") to 60.


If the server tells the client that it has a shorter timeout than the RFC recommends as a default, it would send its GET_PARAMETER commands more often, so the connection wouldn't time out.

I would think this patch would be a no-brainer. The spec says "do X," and the patch makes the server do X. What's the downside?

The downside would be that the server would be telling the client - incorrectly - that it needs to send RTSP commands at least every N seconds. That would be incorrect, because standard RTCP packets ("RR") could also be used to indicate client liveness. I might end up changing the default "reclamationTestSeconds" value from 45 to 60 (which would also solve your problem), but I won't be adding your patch to add the "timeout=" parameter, because that would be misleading.
--

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
_______________________________________________
live-devel mailing list
[email protected]
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to