diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp index f91a520417a8b30b13f680e68fbfd56d09ee2324..e5ca864f0b70a124994544057d6bcdd24115e1ca 100644 --- a/sflphone-common/src/managerimpl.cpp +++ b/sflphone-common/src/managerimpl.cpp @@ -173,6 +173,15 @@ void ManagerImpl::terminate () _debug ("Manager: Terminate "); + std::vector<std::string> callList = getCallList(); + _debug ("Manager: Hangup %d remaining call", callList.size()); + std::vector<std::string>::iterator iter = callList.begin(); + + while (iter != callList.end()) { + hangupCall (*iter); + iter++; + } + unloadAccountMap(); _debug ("Manager: Unload DTMF key"); @@ -393,7 +402,6 @@ bool ManagerImpl::hangupCall (const CallID& call_id) _info ("Manager: Hangup call %s", call_id.c_str()); - PulseLayer *pulselayer; AccountID account_id; bool returnValue = true; @@ -453,10 +461,6 @@ bool ManagerImpl::hangupCall (const CallID& call_id) audiolayer->stopStream(); } - if (_audiodriver->getLayerType() == PULSEAUDIO) { - pulselayer = dynamic_cast<PulseLayer *> (getAudioDriver()); - } - return returnValue; }