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