diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp index ad9c5b4fda9f83ca149e60643a34c0c69d64563b..24feb23d204aac3eb8a62867c3033a6e49afa46d 100644 --- a/sflphone-common/src/managerimpl.cpp +++ b/sflphone-common/src/managerimpl.cpp @@ -428,7 +428,15 @@ ManagerImpl::hangupCall (const CallID& call_id) int nbCalls = getCallList().size(); - // _debug("nbCalls: %i\n", nbCalls); + audiolayer = getAudioDriver(); + + // stop streams + if (audiolayer && (nbCalls <= 1)) + { + _debug(" hangupCall: stop audio stream, ther is only %i call(s) remaining\n", nbCalls); + audiolayer->stopStream(); + } + if(participToConference(call_id)) { @@ -469,15 +477,6 @@ ManagerImpl::hangupCall (const CallID& call_id) removeCallAccount (call_id); } - audiolayer = getAudioDriver(); - - // stop streams - if (audiolayer && (nbCalls <= 0)) - { - _debug(" hangupCall: stop audio stream, ther is only %i call(s) remaining\n", nbCalls); - audiolayer->stopStream(); - } - if (_audiodriver->getLayerType() == PULSEAUDIO) { pulselayer = dynamic_cast<PulseLayer *> (getAudioDriver()); }