diff --git a/sflphone-common/src/iax/iaxvoiplink.cpp b/sflphone-common/src/iax/iaxvoiplink.cpp index 2e1201bfffffbb02f2f370ac69f2b6ebc92e3da2..3faabe566a7fff8cc51445408da73ad4ebe51053 100644 --- a/sflphone-common/src/iax/iaxvoiplink.cpp +++ b/sflphone-common/src/iax/iaxvoiplink.cpp @@ -539,6 +539,8 @@ IAXVoIPLink::peerHungup (const CallID& id) std::string reason = "Dumped Call"; CHK_VALID_CALL; + audiolayer->getMainBuffer()->unBindAll(call->getCallId()); + _mutexIAX.enterMutex(); _mutexIAX.leaveMutex(); @@ -564,6 +566,8 @@ IAXVoIPLink::onhold (const CallID& id) CHK_VALID_CALL; + audiolayer->getMainBuffer()->unBindAll(call->getCallId()); + //if (call->getState() == Call::Hold) { _debug("Call is already on hold\n"); return false; } _mutexIAX.enterMutex(); @@ -581,6 +585,8 @@ IAXVoIPLink::offhold (const CallID& id) CHK_VALID_CALL; + Manager::instance().addStream(call->getCallId()); + //if (call->getState() == Call::Active) { _debug("Call is already active\n"); return false; } _mutexIAX.enterMutex(); iax_unquelch (call->getSession());