[Live-devel] End RTSP client session cleanly

Ross Finlayson finlayson at live555.com
Tue Mar 31 14:25:29 PDT 2009


>  > >What is the correct way to initiate the shutdown of a specific
>>  >RTSP client session from the server side?
>>
>>  Right now there isn't a clean way to do this, unfortunately.  If you
>>  know the "RTSPServer::RTSPClientSession" object, then you could try
>>  deleting it; that will likely work.
>
>That does work -- it's what we do and how inactive sessions are terminated by
>the server.  From my examining of the code, it looks like it cleans
>everything up properly too :).  However, the client gets no notification that
>it happened -- the RTSP stream is just rudely closed and RTP data stops
>arriving.  This gets back to the RTCP BYE message not gettng sent issue Matt
>was talking about a few weeks ago.

Yes.  I'll need to fix this...


>FYI, you'll have to invent a mechanism to be able to get a pointer to the
>running RTCPClientSession instance so you can call its destructor..

The trouble is, more than one client (and thus, more than one 
"RTSPClientSession") can be using the same "ServerMediaSession" 
simultaneously.  So if you're starting just from the 
"ServerMediaSession" (e.g., you want to both remove it from the RTSP 
server, *and* shut down all streams that use it), then you need to do 
this for all clients (but that's probably what you want anyway). 
Again, this is a mechanism that I'll need to provide.  Stay tuned...


>  and of
>course you can only do it safely via a scheduled task.

That's not a problem; in LIVE555 *everything* is a scheduled task.


More information about the live-devel mailing list