"failed" extension DIALSTATUS in autocall files

I run Asterisk

In a *.call file I have:
Channel: SIP/123@UPLINK
Extension: 456

In extensions.conf:
exten => 456,1,Dial(Bla-Bla-Bla)
exten => 456,2,Hangup()
exten => failed,1,NoOp(${DIALSTATUS})
exten => failed,2,DeadAGI(application_to_make_decision)
exten => failed,4,Hangup()

If asterisk cannot open SIP/123@UPLINK in *.call file (e.g. - uplink connection problem) I want to get the reason in my “failed” extension to make a decision about re-dialing according to ${DIALSTATUS} (e.g. BUSY OR CANCEL - there is one situation, but CONGESTION is another one).

But ${DIALSTATUS} of “Channel: SIP/123@UPLINK” is empty in my “failed” extension. Further, in CDR I see only “Answered” or “Failed” status.

The question - how can I get the reason to proccess why SIP/123@UPLINK was not answered?

Thank you.