aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoralecdavis <alecdavis@f38db490-d61c-443f-a65b-d21fe96a405b>2010-02-27 23:51:28 +0000
committeralecdavis <alecdavis@f38db490-d61c-443f-a65b-d21fe96a405b>2010-02-27 23:51:28 +0000
commitd3f9c3164a6313204fb0b57304fbed49c6664730 (patch)
tree46c25211d083a89beabf937009121965b0a2580c
parentc1055232f9565d0684f6ac501ac4c30951ffdbd4 (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: based on overlap_receiving_trunk.diff.txt uploaded by alecdavis (license 585) Tested by: alecdavis (closes issue #16789) git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@249365 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--channels/chan_dahdi.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c
index 67d0d1736..954c72352 100644
--- a/channels/chan_dahdi.c
+++ b/channels/chan_dahdi.c
@@ -5959,7 +5959,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);