Lcr problem if the peer no response back

hi, now i’m implement lcr it’s a simple logic for me to start
if termiation A return the DIALSTATUS to congestion,noawer,busy,etc,i’ll try termination B

but if termination B no any response back (even no sip messages) ,I don’t know how to do

please see the extensions.conf below


exten => _XXXXXX.,1,AGI(agiastar.agi,${EXTEN})
exten => _XXXXXX.,2,GotoIf($["${BILLSTATUS}" = “NOCREDIT”]?20)
exten => _XXXXXX.,3,GotoIf($["${BILLSTATUS}" = “NOACCOUNT”]?20)
exten => _XXXXXX.,4,GotoIf($["${BILLSTATUS}" = “INVALID”]?30)
exten => _XXXXXX.,5,Set(CALLERID(all)=${ASTCALLERID})
exten => _XXXXXX.,6,Dial(${DIALSTRING},20,r)
exten => _XXXXXX.,7,Goto(s-${DIALSTATUS},1)

exten => _s-.,1,AGI(agi-test.agi,${ARG1}) ; if unavailabe or no eply, send to transfered number
exten => _s-.,2,Dial(${ANOTHER_DIALSTRING})
exten => _s-.,3,Hangup

exte => _XXXXXX.,20,Playback(beep)
exten => _XXXXXX.,21,Playback(not-enough-credit) ; Tells them they do not have enough money
exten => _XXXXXX.,22,Hangup

exten => _XXXXXX.,30,Playback(beep)
exten => _XXXXXX.,31,Playback(that-is-not-rec-phn-num) ; "That is not a recognized phone number."
exten => _XXXXXX.,32,Hangup

if the termination A never give me any sip message ,iT won’t goto _s-.
dial map

it get the logs below in asterisk -r,look, it goes into default context

== Spawn extension (default, 86133913333110, 6) exited non-zero on ‘SIP/80100001-a5e0’
– Executing DeadAGI(“SIP/80100001-a5e0”, “agistardead.agi”) in new stack

someone must have met this situation also ?
please help me