From 98154867e66c496e97cdd5f31f85650f3b8311f9 Mon Sep 17 00:00:00 2001
From: Alec L Davis <sivad.a@paradise.net.nz>
Date: Sat, 27 Feb 2010 22:49:51 +0000
Subject: [PATCH] overlap receiving: automatically send CALL PROCEEDING when
 dialplan starts

Following Q.931 5.2.4
When the user has determined that sufficient call information has been received the
user shall stop T302 and send CALL PROCEEDING to the network.

Previously timeouts were possible if the dialplan took a long time to issue any
response back to the network.

Verified that our local TELCO also does the same.

(issue #16789)
Reported by: alecdavis
Patches:
      overlap_receiving_trunk.diff.txt uploaded by alecdavis (license 585)
Tested by: alecdavis



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

diff --git a/channels/sig_pri.c b/channels/sig_pri.c
index 76f8f41e0a..8997f68409 100644
--- a/channels/sig_pri.c
+++ b/channels/sig_pri.c
@@ -1308,6 +1308,18 @@ static void *pri_ss_thread(void *data)
 		/* Start the real PBX */
 		ast_copy_string(chan->exten, exten, sizeof(chan->exten));
 		sig_pri_dsp_reset_and_flush_digits(p);
+		if (p->pri->overlapdial & DAHDI_OVERLAPDIAL_INCOMING) {
+			if (p->pri->pri) {		
+				if (!pri_grab(p, p->pri)) {
+					pri_proceeding(p->pri->pri, p->call, PVT_TO_CHANNEL(p), 0);
+					p->proceeding = 1;
+					pri_rel(p->pri);
+				} else {
+					ast_log(LOG_WARNING, "Unable to grab PRI on span %d\n", p->pri->span);
+				}
+			}
+		}
+
 		sig_pri_set_echocanceller(p, 1);
 		ast_setstate(chan, AST_STATE_RING);
 		res = ast_pbx_run(chan);
-- 
GitLab