We currently discovered a problem when we used openRTSP to download a
stream. The server includes a timeout parameter in the Session header
but openRTSP ignores it. The timeout is set to 50 s and after 60 s
play time the server stops sending RTP packets and sends TCP-RST on
the RTSP port. Of course, the RTCP RRs are sent from openRTSP and we
know that they are recieved on the server. However, it's not enough as
keep-alive indication.

Then that's a problem with the server; it should be using these incoming RTCP "RR"s as a 'keep-alive'.


I saw in the changelog that in 2006 you added parsing the timeout
parameter of the Session header and the sessionTimeoutParameter()
function. However, openRTSP doesn't use it. Is this a bug or intended
behaviour?

Intended behavior. The standard mechanism by which servers detect the continued liveness of clients is via RTCP "RR"s. Note that the intention of the "timeout" parameter in the RTSP "SETUP" response is to indicate how long the server can wait after the last detection of client liveness before closing the session. It is *not* intended to indicate the desired frequency of some alternative 'keep-alive' mechanism (such as sending periodic "GET_PARAMETER" requests, for example).

I think that VLC, however, might be using the "timeout" parameter this way (as the frequency for sending "GET_PARAMETER" requests). However, this is non-standard, and there are no plans to do this for "openRTSP". (It might conceivable be added as an option (i.e., not default behavior) sometime in the future, but this would be low-priority, as is support for non-standards-complant servers in general.)


PS: Are you interested in a patch that allows to set the User-Agent
header in openRTSP on the command line? In our experience in mobile
networks it's only possible to get a reasonable stream quality if the
User-Agent matches one of some known mobile types.

Mumble... I detest the idea that some servers may be modifying their behavior based on the client's "User-Agent" field. Can you give some examples of this?

However, I might consider a patch for setting the "User-Agent" field in "openRTSP", because it should be quite simple (because there's already a function "RTSPClient::setUserAgentString()" for doing this). I suggest using the "-U" (upper-case) option for this.

If you make a patch, be sure to do so against the latest version of the code - 2010.07.13 - because "openRTSP" has undergone extensive changes in that version (to use the new asynchronous RTSPClient interface exclusively).
--

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