aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_zap.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-06-14 21:40:02 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-06-14 21:40:02 +0000
commite26b7c77e421599c10ad53e77e4f4b729f95ac36 (patch)
tree4416fb7a3098c4684ed4966fe9ca2a51455bb506 /channels/chan_zap.c
parentba1892811d6ffb2bb724985cb636eba291bdf584 (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-xchannels/chan_zap.c18
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, };