From 64ce4857e948c3deb546f31f91cd867c2193a2f3 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandre.savard@savoirfairelinux.net>
Date: Tue, 22 Sep 2009 17:23:26 -0400
Subject: [PATCH] [#2176] Remove iax audio stream on peer hungup

---
 sflphone-common/src/iax/iaxvoiplink.cpp | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/sflphone-common/src/iax/iaxvoiplink.cpp b/sflphone-common/src/iax/iaxvoiplink.cpp
index 2e1201bfff..3faabe566a 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());
-- 
GitLab