Post call survey Not Playing

I have following dial plan but i am unable to play post call survey.

[in_coming_call]
exten => s,1,NoOp(Incoming call from ${CALLERID(all)})
same => n,Goto(ivr-menu,s,1)

[post_call_survey]
exten => s,1,Answer()
same => n,Background(q1)
same => n,Read(rating1)
same => n,Hangup()

[ivr-menu]
exten => s,1,Answer()
exten => s,n,Progress()
exten => s,n,Playtones(ring)
exten => s,n,Wait(3)
exten => s,n,WaitExten() ; Wait for user input

exten => 1,2,Goto(ivr-english,s,1)

; Timeout or Invalid Entry
exten => i,1,Playback(invalid-option)
exten => i,n,Goto(ivr-menu,s,1)

; Return to main menu
exten => t,1,Playback(no-input)
exten => t,n,Goto(ivr-menu,s,1)

[ivr-english]
exten => s,1,Answer()
exten => s,n,WaitExten(5)

exten => 0,1,NoOp(Customer pressed 0 to speak with representative)
same => n,Queue(squeue,c)
same => n,Hangup()

exten => i,1,Playback(Invalid) ; Invalid option
exten => t,1,Goto(ivr-english,s,1) ; time out option

I add following h option in different place [in_coming_call] [ivr-menu] [ivr-english] context but no luck as soon as one party hang up the call call from both side disconected survey is not played . some time i got spawn extension message.

exten => h,1,NoOp(Closing call from ${CALLERID(all)})
same => n,Goto(post_call_survey,s,1)
same => n,Hangup()

Channels are no more existing after hangup.

what has to be done to play survey ?

If the agent hangs up first, use the g option on dial, and check that DIALSTATUS is ANSWERED. If the caller hung up first, you can’t.

There are similar options for Queue. You can probably find them as fast as I can.

I fixed this issue by adding following line same => n,Goto(post_call_survey,s,1)
after same => n,Queue(squeue,c) and before same => n,Hangup()

Solution
exten => 0,1,NoOp(Customer pressed 0 to speak with representative)
same => n,Queue(squeue,c)
same => n,Goto(post_call_survey,s,1)
same => n,Hangup()