From 1c14bd4bfdf817ae082fe0d18de9f7828a75e9cb Mon Sep 17 00:00:00 2001
From: Moises Silva <moises.silva@gmail.com>
Date: Fri, 21 Aug 2009 04:09:26 +0000
Subject: [PATCH] increment the mfcr2 monitor count when clearing the call
 request

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@213454 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 channels/chan_dahdi.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c
index 74cf4f7191..3e2d9c70a7 100644
--- a/channels/chan_dahdi.c
+++ b/channels/chan_dahdi.c
@@ -5271,7 +5271,12 @@ static int dahdi_hangup(struct ast_channel *ast)
 			dahdi_r2_update_monitor_count(p->mfcr2, 1);
 		} else if (p->mfcr2call) {
 			ast_log(LOG_DEBUG, "Clearing call request on channel %d\n", p->channel);
+			/* since ast_request() was called but not ast_call() we have not yet dialed
+			and the openr2 stack will not call on_call_end callback, we need to unset
+			the mfcr2call flag and bump the monitor count so the monitor thread can take
+			care of this channel events from now on */
 			p->mfcr2call = 0;
+			dahdi_r2_update_monitor_count(p->mfcr2, 1);
 		}
 #endif
 		switch (p->sig) {
-- 
GitLab