Index: asterisk/channels/chan_zap.c =================================================================== RCS file: /usr/cvsroot/asterisk/channels/chan_zap.c,v retrieving revision 1.462 diff -u -r1.462 chan_zap.c --- asterisk/channels/chan_zap.c 9 Jun 2005 22:34:29 -0000 1.462 +++ asterisk/channels/chan_zap.c 23 Jun 2005 11:27:36 -0000 @@ -8445,6 +8445,8 @@ else if (pri->pvts[chanpos]->owner) { /* Queue a BUSY instead of a hangup if our cause is appropriate */ pri->pvts[chanpos]->owner->hangupcause = e->hangup.cause; + if (pri->pvts[chanpos]->owner->_state != AST_STATE_UP) + pri->pvts[chanpos]->owner->_softhangup |= AST_SOFTHANGUP_DEV; switch(e->hangup.cause) { case PRI_CAUSE_USER_BUSY: pri->pvts[chanpos]->subs[SUB_REAL].needbusy =1; @@ -8504,6 +8506,8 @@ pri_hangup_all(pri->pvts[chanpos]->realcall, pri); else if (pri->pvts[chanpos]->owner) { pri->pvts[chanpos]->owner->hangupcause = e->hangup.cause; + if (pri->pvts[chanpos]->owner->_state != AST_STATE_UP) + pri->pvts[chanpos]->owner->_softhangup |= AST_SOFTHANGUP_DEV; switch(e->hangup.cause) { case PRI_CAUSE_USER_BUSY: pri->pvts[chanpos]->subs[SUB_REAL].needbusy =1;