Index: channels/chan_dahdi.c =================================================================== --- channels/chan_dahdi.c (revision 203106) +++ channels/chan_dahdi.c (working copy) @@ -13129,6 +13129,17 @@ pri->pvts[chanpos]->subs[SUB_REAL].needanswer =1; /* Enable echo cancellation if it's not on already */ dahdi_enable_ec(pri->pvts[chanpos]); + if (!pri->pvts[chanpos]->proceeding && !pri->pvts[chanpos]->progress) { + /* only bring up voice if neither Proceeding or Progress have been seen */ + ast_log(LOG_WARNING, "PRI_EVENT_ANSWER Bring up voice\n"); + struct ast_frame f = { AST_FRAME_CONTROL, AST_CONTROL_ANSWER, }; + /* Bring voice path up */ + f.subclass = AST_CONTROL_ANSWER; + dahdi_queue_frame(pri->pvts[chanpos], &f, pri); + } else { + ast_log(LOG_WARNING, "PRI_EVENT_ANSWER Voice already up, proceeding=%d progress=%d dialing=%d\n", + pri->pvts[chanpos]->proceeding, pri->pvts[chanpos]->progress, pri->pvts[chanpos]->dialing); + } } #ifdef SUPPORT_USERUSER