--- chan_zap.c.old 2007-10-10 13:39:53.000000000 -0700 +++ chan_zap.c 2007-10-12 09:21:08.000000000 -0700 @@ -8584,6 +8584,13 @@ if (option_verbose > 2) ast_verbose(VERBOSE_PREFIX_3 "PROGRESS with cause code %d received\n", e->proceeding.cause); + if (e->proceeding.cause == 1 && option_verbose > 4) { + pri_hangup(pri->pri, pri->pvts[chanpos]->call, PRI_CAUSE_UNALLOCATED); + pri->pvts[chanpos]->owner->hangupcause == AST_CAUSE_UNALLOCATED; + pri->pvts[chanpos]->call = NULL; + pri->pvts[chanpos]->exten[0] = '\0'; + f.subclass = AST_CONTROL_ANSWER; + } /* Work around broken, out of spec USER_BUSY cause in a progress message */ if (e->proceeding.cause == AST_CAUSE_USER_BUSY) { if (pri->pvts[chanpos]->owner) {