<div class="gmail_quote"><div>Hi Ross,</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>The "ProxyServerMediaSession" class was intended to be a self-contained, fully-featured class that could be used 'as is' to build RTSP proxy servers.  For now at least, it is not intended to be customizable.  (This may change in the future, depending on how the code ends up being used, but right now the intention is that the code be used 'as is'.)</div>

<div><br></div><div>In particular, the proxy is implemented using a (single) "RTSPClient" object for each 'back end' stream (e.g., a network camera), and therefore keeps open a (single) RTSP connection to the 'back-end' server.</div>

<div><br></div></div></blockquote><div>Thanks for your explication :-) I have been reading the code and the headers this last days and found and alternative design, that i believe is closest to how Live555 design was intended for according to what have you say:</div>

<div><br></div><div>* instead of clients connect directly to ProxyServerMediaSession, they connect to RTSPServer, and this creates new RTSPServer::RTSPClientSession objects, one for each new client connection, and later this ones are being given to the ProxyServerMediaSession to be processed by the proxy.</div>

<div><br></div><div>* So, what i have done are two new RTSPServer and RTSPServer::RTSPClientSession child classes so i can be able to catch when new connections are created (RTSPServer::RTSPClientSession constructor) or deleted (RTSPServer::RTSPClientSession destructor).</div>

<div><br></div><div>At least until this moment it seems to work... :-D Is this the correct way to do it? There's another better, more direct way to be notified so i don't need to create the two new child classes?</div>

<div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div></div><div>However, as you noted, we don't want the 'back-end' server to be streaming data when it's not needed.  Our implementation accomplishes this not by closing the connection when the last client leaves, but instead by automatically sending a RTSP "PAUSE" command to stop the stream.  (Later, if a new client arrives, the proxy will automatically resume the streaming by sending another RTSP "PLAY" command.)</div>

</div></blockquote></div><br>This are REALLY great news! :-D I was thinking about to close the connection checking the ProxyServerMediaSession referenceCount, but if this is done internally by the proxy and in a better way (pause the stream instead of close the connection) i think is a great improve :-) Thanks! :-D<br clear="all">

<div><br></div><div><br></div><div>P.D.: As a side note, to put just a single line on the Doxygen explain what each method is intended for would be a huge imprevent... ;-)</div><div><br></div>-- <br><a href="mailto:jesus.lc@vaelsys.com" target="_blank">Jesús Leganés Combarro</a><div>

Software developer at <a href="http://www.vaelsys.com" target="_blank">Vaelsys</a></div><br>