Well, it works for me .. YMMV. Yesterday I had a problem where I had a meridian talking to * via a PRI card, and from * to the pstn via an isdn30 link. The problem was that if the number was bad, or engaged then the meridian line simply dropped, not giving the operator any indication of what occurred. With much help from this list, I managed to construct a dialplan which solved our issues. I've attached below a snippet from the dialplan hoping that it will help someone else. If the hangup cause has not been catered for, the error number is read to the operator with a message to contact tech support. Julian. [dial-isdn30] exten => _XXXXXX,1,Dial(Zap/g3/${EXTEN},40) exten => _XXXXXX,2,NoOp(HANGUPCAUSE is ${HANGUPCAUSE}) exten => _XXXXXX,3,Goto(dial-result|r${HANGUPCAUSE},1) exten => _XXXXXX,4,Hangup() [dial-result] exten => r0,1,Hangup() exten => r1,1,playback(discon-or-out-of-service) exten => r1,2,Hangup exten => r16,1,Hangup() exten => r17,1,Busy() exten => r18,1,playback(the-number-u-dialed) exten => r18,2,playback(is-curntly-unavail) exten => r18,3,hangup exten => r27,1,playback(discon-or-out-of-service) exten => r27,2,hangup exten => r28,1,playback(that-is-not-rec-phn-num) exten => r28,2,hangup exten => r31,1,Congestion() exten => r34,1,Congestion() exten => r42,1,Congestion() exten => i,1,playback(error-number) exten => i,2,saydigits(${HANGUPCAUSE}) exten => i,3,playback(is-not-set) exten => i,4,playback(please-contact-tech-supt) exten => i,5,congestion()