--- asterisk-issue8824-2009-01-29/channels/chan_dahdi.c 2009-09-10 18:50:03.000000000 +0200 +++ asterisk-issue8824-2009-01-29.new/channels/chan_dahdi.c 2009-09-10 18:55:43.000000000 +0200 @@ -13278,16 +13278,19 @@ unsigned int handle; int cr = e->hangup.cref; unsigned int state = 0; - + struct ast_channel *peer; handle = CCBS_HANDLE(ccbsnronprispan,cr); cclink = ccbsnr_get_link(handle, &state); + peer = cclink->peer; if (cclink) { switch (state) { case CC_WAIT_ACK: + ast_verbose(VERBOSE_PREFIX_4 "PRI_EVENT_HANGUP: PRI_CC_ERROR:set per peer %x state ABORTED\n", (int)peer); + pbx_builtin_setvar_helper(peer, "CCBSNRREQSTATE", "ABORTED"); case CC_WAIT_USER_A_ANSWER_N: case CC_INVOKED_A_RET: ast_verbose(VERBOSE_PREFIX_4 "PRI_EVENT_HANGUP: CCBS-List-Obj 0x%x: handle %x e->hangup.channel(0x%x) span(%d) explicit(%d) channel(%d) error(%d) peer=%x\n", - (int)cclink, handle, e->hangup.channel, ccbsnronprispan, explicit, channel, errorvalue, (int)cclink->peer); + (int)cclink, handle, e->hangup.channel, ccbsnronprispan, explicit, channel, errorvalue, (int)peer); pri_hangup(pri->pri, cclink->call, e->hangup.cause); cclink->call = NULL;