diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-06-14 21:40:02 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-06-14 21:40:02 +0000 |
commit | e26b7c77e421599c10ad53e77e4f4b729f95ac36 (patch) | |
tree | 4416fb7a3098c4684ed4966fe9ca2a51455bb506 /channels/chan_zap.c | |
parent | ba1892811d6ffb2bb724985cb636eba291bdf584 (diff) |
Handle PROGRESS event
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3207 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_zap.c')
-rwxr-xr-x | channels/chan_zap.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/channels/chan_zap.c b/channels/chan_zap.c index 7ab42edbf..3f1b7dc3e 100755 --- a/channels/chan_zap.c +++ b/channels/chan_zap.c @@ -55,7 +55,7 @@ #include <ctype.h> #ifdef ZAPATA_PRI #include <libpri.h> -#ifndef PRI_ENSLAVE_SUPPORT +#ifndef PRI_EVENT_PROGRESS #error "You need newer libpri" #endif #endif @@ -7147,10 +7147,20 @@ static void *pri_dchannel(void *vpri) ast_log(LOG_DEBUG, "Deferring ringing notification because of extra digits to dial...\n"); } break; - case PRI_EVENT_PROCEEDING: + case PRI_EVENT_PROGRESS: /* Get chan value if e->e is not PRI_EVNT_RINGING */ - if (e->e == PRI_EVENT_PROCEEDING) - chanpos = pri_find_principle(pri, e->proceeding.channel); + chanpos = pri_find_principle(pri, e->proceeding.channel); + if (chanpos > -1) { + if (pri->overlapdial && !pri->pvts[chanpos]->proceeding) { + struct ast_frame f = { AST_FRAME_CONTROL, AST_CONTROL_PROGRESS, }; + ast_log(LOG_DEBUG, "Queuing frame from PRI_EVENT_PROGRESS on channel %d/%d span %d\n", + pri->pvts[chanpos]->logicalspan, pri->pvts[chanpos]->prioffset,pri->span); + zap_queue_frame(pri->pvts[chanpos], &f); + } + } + break; + case PRI_EVENT_PROCEEDING: + chanpos = pri_find_principle(pri, e->proceeding.channel); if (chanpos > -1) { if (pri->overlapdial && !pri->pvts[chanpos]->proceeding) { struct ast_frame f = { AST_FRAME_CONTROL, AST_CONTROL_PROGRESS, }; |