diff options
Diffstat (limited to 'channels/chan_dahdi.c')
-rw-r--r-- | channels/chan_dahdi.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c index 74cf4f719..3e2d9c70a 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) { |