diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp index 75b3fb021aa8471119097b4dfb9ede054a8b0238..d79591622f7655a8446b75f8992a5d855e1908aa 100644 --- a/sflphone-common/src/managerimpl.cpp +++ b/sflphone-common/src/managerimpl.cpp @@ -1855,17 +1855,6 @@ ManagerImpl::peerHungupCall (const CallID& call_id) } } - int nbCalls = getCallList().size(); - - // stop streams - - if (nbCalls <= 1) { - _debug (" hangupCall: stop audio stream, ther is only %i call(s) remaining", nbCalls); - - AudioLayer* audiolayer = getAudioDriver(); - audiolayer->stopStream(); - } - /* Direct IP to IP call */ if (getConfigFromCall (call_id) == Call::IPtoIP) { SIPVoIPLink::instance (AccountNULL)->hangup (call_id); @@ -1890,6 +1879,18 @@ ManagerImpl::peerHungupCall (const CallID& call_id) removeCallAccount (call_id); + int nbCalls = getCallList().size(); + + // stop streams + + if (nbCalls <= 0) { + _debug (" hangupCall: stop audio stream, ther is only %i call(s) remaining", nbCalls); + + AudioLayer* audiolayer = getAudioDriver(); + audiolayer->stopStream(); + } + + if (_audiodriver->getLayerType() == PULSEAUDIO) { pulselayer = dynamic_cast<PulseLayer *> (getAudioDriver()); }