Keepalive with GET_PARAMETER broken
A change from January to stop using GET_PARAMETER as a keepalive except for WMS (actually, anything using ASF) breaks session keepalive in our RTSP server and probably other commercial IPTV video servers:
https://trac.videolan.org/vlc/changeset/07e7a9048dbad0d54d73d8c8b92e4f99fd3da0a5
GET_PARAMETER (or in rarer cases SET_PARAMETER or non-changing PLAY) is the mechanism used by all IPTV STBs we've tested against. I realise it would be possible to use RTCP RRs for this if RTP is being used (unfortunately, we don't, yet), but remember that many IPTV STBs use raw UDP. We support both.
This change claims to have been introduced because DSS apparently drops the connection because it doesn't recognise GET_PARAMETER. This sounds like a DSS bug to me, but in any case it should be possible to establish support (or not) of GET_PARAMETER in OPTIONS, or block GET_PARAMETER specifically for DSS.
So, my proposal - one of:
(1) Use SET_PARAMETER(vlc=1) which apparently works for DSS and WMS (and us), although I agree this is non-RFC - see comments when it was introduced, and then removed again:
https://trac.videolan.org/vlc/changeset/bc55afb50ef27a43cf95050d01d0376e974af23e https://trac.videolan.org/vlc/changeset/64fcf937ace17e82f5fff6d5be7f79305be10da7
(2) Use GET_PARAMETER only if declared as available in OPTIONS (as suggested in the second changeset above, but not implemented)
(3) Invert the test so that the default is to use GET_PARAMETER, and provide some detection of DSS as a workround for their failure to implement it (or its absence) properly.
The safest and easiest option at the moment would seem to be (3), but I leave that to you!
Many thanks
Paul Clark