From 10e2c47c75376bb7978d59680914d1c185d36d67 Mon Sep 17 00:00:00 2001
From: Richard Mudgett <rmudgett@digium.com>
Date: Fri, 4 Jun 2010 14:45:03 +0000
Subject: [PATCH] Incoming overlap dialing no longer works after sig_pri
 extraction.

The problem would manifest itself if your dialplan matching could accept
more digits to match than were actually dialed.  The time out waiting for
overlap digits disconnected the call instead of matching any accumulated
digits to the dialplan.

Accidental conversion of a break out of loop as a break out of switch.

(closes issue #17401)
Reported by: avalentin
Patches:
      issue17401_digit_timeout.patch uploaded by rmudgett (license 664)
Tested by: avalentin, rmudgett


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

diff --git a/channels/sig_pri.c b/channels/sig_pri.c
index 8e7c73c22c..e931403300 100644
--- a/channels/sig_pri.c
+++ b/channels/sig_pri.c
@@ -1477,7 +1477,7 @@ static void *pri_ss_thread(void *data)
 			exten[len++] = res;
 			exten[len] = '\0';
 		} else
-			goto exit;
+			break;
 	}
 	/* if no extension was received ('unspecified') on overlap call, use the 's' extension */
 	if (ast_strlen_zero(exten)) {
@@ -1522,13 +1522,6 @@ static void *pri_ss_thread(void *data)
 		p->call = NULL;
 	}
 	return NULL;
-
-exit:
-	res = sig_pri_play_tone(p, SIG_PRI_TONE_CONGESTION);
-	if (res < 0)
-		ast_log(LOG_WARNING, "Unable to play congestion tone on channel %d\n", p->channel);
-	ast_hangup(chan);
-	return NULL;
 }
 
 void pri_event_alarm(struct sig_pri_pri *pri, int index, int before_start_pri)
-- 
GitLab