<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<base href=""><style>
<!--
@font-face
{font-family:Helvetica}
@font-face
{font-family:"Cambria Math"}
@font-face
{font-family:Calibri}
@font-face
{font-family:Tahoma}
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman","serif"}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
text-decoration:underline}
span.apple-style-span
{}
span.EmailStyle18
{font-family:"Calibri","sans-serif";
color:#1F497D}
.MsoChpDefault
{font-size:10.0pt}
@page WordSection1
{margin:1.0in 1.0in 1.0in 1.0in}
div.WordSection1
{}
-->
</style>
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1F497D">Hi Ross,
</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1F497D"> </span></p>
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1F497D">Does the requirement of the RTCP (keepalive) change at all when using RTP over RTSP?</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1F497D"> </span></p>
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1F497D">We’ve seen a few clients that DO NOT send keepalives when configured for RTP over RTSP, as the RTP “data” is interleaved over the same TCP “Session” as the
the RTSP control.</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1F497D">Apparently, they have determined that the TCP session “liveness” can be determined by the TCP stack, and that that is “adequate”.</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1F497D"> </span></p>
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1F497D">Live555 certainly does still require the keepalives in that “configuration”.</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1F497D"> </span></p>
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1F497D">Certainly, applications get notifications (from the TCP stack) when their peer “goes away” (stops responding to TCP keepalives).</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1F497D"> </span></p>
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1F497D">Are you aware of any specifications (based on alternate configuration) that remove the obligation of the RTCP (or noop message) keepalives?</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1F497D"> </span></p>
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1F497D">Thanks,<br>
Randy Roberts</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1F497D"> </span></p>
<div>
<div style="border:none; border-top:solid #B5C4DF 1.0pt; padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt; font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt; font-family:"Tahoma","sans-serif""> live-devel-bounces@ns.live555.com [mailto:live-devel-bounces@ns.live555.com]
<b>On Behalf Of </b>Ross Finlayson<br>
<b>Sent:</b> Thursday, January 26, 2012 9:12 AM<br>
<b>To:</b> LIVE555 Streaming Media - development & use<br>
<b>Subject:</b> Re: [Live-devel] Server disconnects clients every 60 seconds</span></p>
</div>
</div>
<p class="MsoNormal"> </p>
<div>
<blockquote style="margin-top:5.0pt; margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt; font-family:"Calibri","sans-serif"">I’ve talked to the developers of the NVR software (our client) and they tell me they do send regular RTCP reports, but they don’t send GET_PARAMETER messages
like VLC does. However, my streams don’t keep alive and I don’t see their RTCP report messages coming in.</span></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"> </p>
</div>
<p class="MsoNormal">Then your client - despite the claims of its developers - must not be sending RTCP reports correctly. (I encourage these developers to get in touch with us - via this mailing list - to help fix this.)</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">(Note, BTW, that "openRTSP" - which you noted works correctly with your server - doesn't send "GET_PARAMETER" requests either. But it keeps the session alive, because it sends periodic RTCP "RR" packets.)</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal"><br>
<br>
</p>
<p class="MsoNormal"><span class="apple-style-span"><span style="font-size:11.5pt; font-family:"Calibri","sans-serif"">When I look at testOnDemandRTSPServer, I don’t see any specify RTCPInstance:createNew() call</span></span></p>
<div>
<p class="MsoNormal"> </p>
</div>
<p class="MsoNormal">That is done in the "OnDemandServerMediaSubsession" class.</p>
</div>
<div>
<p class="MsoNormal"><br>
<br>
<br>
</p>
<p class="MsoNormal"><span class="apple-style-span"><span style="font-size:11.5pt; font-family:"Calibri","sans-serif"">Where can I put some debug to catch the RTCP reports coming in?</span></span></p>
<div>
<p class="MsoNormal"> </p>
</div>
<p class="MsoNormal">Add</p>
</div>
<div>
<p class="MsoNormal">#define DEBUG 1</p>
</div>
<div>
<p class="MsoNormal">to the start of "liveMedia/RTCP.cpp". You will see reports of RTCP "SR" packets being sent by the server, and - if your client is working correctly (e.g., "openRTSP") - RTCP "RR" packets arriving from the client.</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal"><br>
<br>
</p>
<p class="MsoNormal"><span class="apple-style-span"><span style="font-size:11.5pt; font-family:"Calibri","sans-serif"">I enabled the debug in RTSPServer::RTSPClientSession:: handleRequestBytes() after parseRTSPRequestString(), but I don’t see the RTCP messages
there.</span></span></p>
<div>
<p class="MsoNormal"> </p>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">No. That function is used only for incoming RTSP commands, not RTCP packets.</p>
<div>
<p class="MsoNormal"><span class="apple-style-span"><span style="font-size:13.5pt; font-family:"Helvetica","sans-serif"; color:black">Ross Finlayson</span></span><span style="font-size:13.5pt; font-family:"Helvetica","sans-serif"; color:black"><br>
<span class="apple-style-span">Live Networks, Inc.</span><br>
<span class="apple-style-span"><a href="http://www.live555.com/">http://www.live555.com/</a></span></span>
</p>
</div>
<p class="MsoNormal"> </p>
</div>
<br>
<hr>
<font face="Verdana" color="Gray" size="1"><br>
Notice to recipient: This email is meant for only the intended recipient of the transmission, and may be a communication privileged by law, subject to export control restrictions or that otherwise contains proprietary information. If you receive this email
by mistake, please notify us immediately by replying to this message and then destroy it and do not review, disclose, copy or distribute it. Thank you in advance for your cooperation.<br>
</font>
</body>
</html>