From f1bf1c4cf83e6cd123b81e797544a1fa78a69924 Mon Sep 17 00:00:00 2001 From: alecdavis Date: Sat, 27 Feb 2010 23:37:16 +0000 Subject: 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: http://svn.digium.com/svn/asterisk/branches/1.6.1@249363 f38db490-d61c-443f-a65b-d21fe96a405b --- channels/chan_dahdi.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'channels') diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c index 738939bc9..51c436ca1 100644 --- a/channels/chan_dahdi.c +++ b/channels/chan_dahdi.c @@ -6636,7 +6636,20 @@ static void *ss_thread(void *data) if (ast_exists_extension(chan, chan->context, exten, 1, p->cid_num)) { /* Start the real PBX */ ast_copy_string(chan->exten, exten, sizeof(chan->exten)); - if (p->dsp) ast_dsp_digitreset(p->dsp); + if (p->dsp) { + ast_dsp_digitreset(p->dsp); + } + 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->span); + } + } + } dahdi_enable_ec(p); ast_setstate(chan, AST_STATE_RING); res = ast_pbx_run(chan); -- cgit v1.2.3