summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorAlec L Davis <sivad.a@paradise.net.nz>2010-02-27 22:49:51 +0000
committerAlec L Davis <sivad.a@paradise.net.nz>2010-02-27 22:49:51 +0000
commit98154867e66c496e97cdd5f31f85650f3b8311f9 (patch)
tree1ad231d6c7071e362f41d1c1fc96be796c69fff4 /channels
parent7e2145b9ac96e0b282ce995abee8c334f136481b (diff)
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
Diffstat (limited to 'channels')
-rw-r--r--channels/sig_pri.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/channels/sig_pri.c b/channels/sig_pri.c
index 76f8f41e0..8997f6840 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);