diff --git a/daemon/src/iax/iaxvoiplink.cpp b/daemon/src/iax/iaxvoiplink.cpp index 647608ceef4456c49d1c8e24995353ac1daaec7f..66221b798578317e2e60723fc2e8e344d7fd8fe5 100644 --- a/daemon/src/iax/iaxvoiplink.cpp +++ b/daemon/src/iax/iaxvoiplink.cpp @@ -68,6 +68,7 @@ IAXVoIPLink::~IAXVoIPLink() handlingEvents_ = false; regSession_ = NULL; // shall not delete it // XXX: but why? terminate(); + clearCallMap(); } void @@ -419,7 +420,7 @@ IAXVoIPLink::sendTextMessage(const std::string& callID, #endif void -IAXVoIPLink::clearCallMap(Call *call) +IAXVoIPLink::clearCallMap() { ost::MutexLock m(iaxCallMapMutex_); diff --git a/daemon/src/iax/iaxvoiplink.h b/daemon/src/iax/iaxvoiplink.h index 9db1ff16fc3cc1b9232a7ee60f549348409d1cfd..0b2b1283c61ab208b5d9755779af32578d5f0c4a 100644 --- a/daemon/src/iax/iaxvoiplink.h +++ b/daemon/src/iax/iaxvoiplink.h @@ -176,7 +176,7 @@ class IAXVoIPLink : public VoIPLink { #if HAVE_INSTANT_MESSAGING virtual void sendTextMessage(const std::string& callID, const std::string& message, const std::string& from); #endif - virtual void clearCallMap(Call* call); + virtual void clearCallMap(); virtual void addCall(Call* call); virtual Call* getCall(const std::string& id); virtual void removeCall(const std::string &id); diff --git a/daemon/src/sip/sipvoiplink.cpp b/daemon/src/sip/sipvoiplink.cpp index 8fbe4f927db5288b58462eaf1a27e474ee45dade..f8fde08b8366038188f5f64e7beac01e647d6b09 100644 --- a/daemon/src/sip/sipvoiplink.cpp +++ b/daemon/src/sip/sipvoiplink.cpp @@ -516,6 +516,8 @@ SIPVoIPLink::~SIPVoIPLink() pj_caching_pool_destroy(cp_); pj_shutdown(); + + clearCallMap(); } SIPVoIPLink* SIPVoIPLink::instance() @@ -1044,7 +1046,7 @@ void SIPVoIPLink::sendTextMessage(const std::string &callID, #endif // HAVE_INSTANT_MESSAGING void -SIPVoIPLink::clearCallMap(Call *call) +SIPVoIPLink::clearCallMap() { ost::MutexLock m(sipCallMapMutex_); diff --git a/daemon/src/sip/sipvoiplink.h b/daemon/src/sip/sipvoiplink.h index cfbe1bb448d476afc18dc645aae3c611e365026e..29f8e0131337146079411e90870fb7b5c8444e02 100644 --- a/daemon/src/sip/sipvoiplink.h +++ b/daemon/src/sip/sipvoiplink.h @@ -256,7 +256,7 @@ class SIPVoIPLink : public VoIPLink { const std::string& message, const std::string& from); #endif - virtual void clearCallMap(Call* call); + virtual void clearCallMap(); virtual void addCall(Call* call); virtual Call* getCall(const std::string& id); virtual void removeCall(const std::string &id); diff --git a/daemon/src/voiplink.h b/daemon/src/voiplink.h index 5d04834afcf395c8b68912bc324c31d5c60d2bdd..a6659e2fc8c3b734ffbeb1c85be71494a30610a6 100644 --- a/daemon/src/voiplink.h +++ b/daemon/src/voiplink.h @@ -70,7 +70,7 @@ class VoIPLink { /** * Virtual method * Build and send account registration request - *SIP/ + */ virtual void sendRegister(Account *a) = 0; /** @@ -167,7 +167,7 @@ class VoIPLink { const std::string &message, const std::string &from) = 0; #endif - virtual void clearCallMap(Call* call) = 0; + virtual void clearCallMap() = 0; /** Add a call to the call map (protected by mutex) * @param call A call pointer with a unique pointer