From 80f67ad1fa8c7301ce234bc7459fd90c2c825523 Mon Sep 17 00:00:00 2001
From: Mark Spencer <markster@digium.com>
Date: Sun, 10 Jul 2005 16:05:59 +0000
Subject: [PATCH] Pass along proceeding and progress even when overlap mode is
 not on

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6072 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 apps/app_dial.c     | 6 ++++++
 channels/chan_zap.c | 6 +++---
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/apps/app_dial.c b/apps/app_dial.c
index 1775620710..07d07aaebd 100755
--- a/apps/app_dial.c
+++ b/apps/app_dial.c
@@ -486,6 +486,12 @@ static struct ast_channel *wait_for_answer(struct ast_channel *in, struct localu
 							if (!ast_test_flag(outgoing, DIAL_RINGBACKONLY))
 								ast_indicate(in, AST_CONTROL_PROGRESS);
 							break;
+						case AST_CONTROL_PROCEEDING:
+							if (option_verbose > 2)
+								ast_verbose ( VERBOSE_PREFIX_3 "%s is proceeding passing it to %s\n", o->chan->name,in->name);
+							if (!ast_test_flag(outgoing, DIAL_RINGBACKONLY))
+								ast_indicate(in, AST_CONTROL_PROCEEDING);
+							break;
 						case AST_CONTROL_HOLD:
 							if (option_verbose > 2)
 								ast_verbose(VERBOSE_PREFIX_3 "Call on %s placed on hold\n", o->chan->name);
diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index f9c5c0f35e..e3ac80dc4e 100755
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -8295,9 +8295,9 @@ static void *pri_dchannel(void *vpri)
 				chanpos = pri_find_principle(pri, e->proceeding.channel);
 				if (chanpos > -1) {
 #ifdef PRI_PROGRESS_MASK
-					if ((pri->overlapdial && !pri->pvts[chanpos]->proceeding) || (e->proceeding.progressmask & PRI_PROG_INBAND_AVAILABLE)) {
+					if ((!pri->pvts[chanpos]->proceeding) || (e->proceeding.progressmask & PRI_PROG_INBAND_AVAILABLE)) {
 #else
-					if ((pri->overlapdial && !pri->pvts[chanpos]->proceeding) || (e->proceeding.progress == 8)) {
+					if ((!pri->pvts[chanpos]->proceeding) || (e->proceeding.progress == 8)) {
 #endif
 						struct ast_frame f = { AST_FRAME_CONTROL, AST_CONTROL_PROGRESS, };
 
@@ -8339,7 +8339,7 @@ static void *pri_dchannel(void *vpri)
 			case PRI_EVENT_PROCEEDING:
 				chanpos = pri_find_principle(pri, e->proceeding.channel);
 				if (chanpos > -1) {
-					if (pri->overlapdial && !pri->pvts[chanpos]->proceeding) {
+					if (!pri->pvts[chanpos]->proceeding) {
 						struct ast_frame f = { AST_FRAME_CONTROL, AST_CONTROL_PROCEEDING, };
 						
 						ast_mutex_lock(&pri->pvts[chanpos]->lock);
-- 
GitLab