<div dir="ltr">I'm using SimpleRTPSink to send audio to a client. Works great. I have it setup like this: <br><br><div>        SimpleRTPSink* sink = SimpleRTPSink::createNew(this->envir(), rtpGroupsock,</div><div>            payloadFormatCode, fSamplingFrequency,</div><div>            "audio", mimeType, fNumChannels);</div><div>.....</div><div>        RTCPInstance::createNew(this->envir(), _rtcpSock,</div><div>            estimatedSessionBandwidth, CNAME,</div><div>            sink, NULL /* we're a server */, False);</div><div><br></div><div>.....</div><div>        AudioInputDevice *audioSource = AudioInputDevice::createNew(this->envir(), 0, bitsPerSample,</div><div>            numChannels, samplingFrequency);</div><div>        FramedSource* swappedSource = EndianSwap16::createNew(this->envir(), audioSource);</div><div><br></div><div>        Boolean started = sink->startPlaying(*swappedSource, nullptr, sink);</div><div><br></div><div>I'm using the RTPSink/Source so I can implement two-way audio (full duplex). What I'd like to do is properly shut things down when one or both ends of the two-way audio disconnects or decides to not longer participate in the call. What is the best way to do this using the Live555 libraries? </div><div><br></div><div>I know to actually STOP playing I just do sink->stopPlaying(); but I need to know when to call this. <br><br>I'm still pretty green when it comes to RTP/RTCP, so I'm not sure if this is something supported, or if I'm going to need to implement my own communication channel (my own socket connection just for control).<br><br>I'm assuming that's what RTCPInstance affords me, though. <br><br><div>        RTCPInstance::createNew(this->envir(), _rtcpSock,</div><div>            estimatedSessionBandwidth, CNAME,</div><div>            sink, NULL /* we're a server */, False);</div></div><div><br></div><div>I see I have the ability to call sendBYE() via the RTCPInstance. Do I do this from the client to initiate a shutdown with the sender? <br><br>Thanks in advance. </div></div>