Queue and problem with hangup detection


have problem with hangup detection on incoming calls.
My extension.conf:

exten => s,1,GotoIfTime(08:00-19:59,mon-fri,*,*?Sony_praca,s,1)
exten => s,n,GotoIfTime(10:00-15:59,sun,*,*?Sony_praca,s,1)
exten => s,n,GotoIfTime(08:00-15:59,sat,*,*?Sony_praca,s,1)
exten => s,n,GotoIfTime(*,*,1,nov?Sony_swiateczny,s,1)
exten => s,n,GotoIfTime(*,*,24-26,dec?Sony_swiateczny,s,1)
exten => s,n,GotoIfTime(*,*,1,jan?Sony_swiateczny,s,1)
;exten => s,n,GotoIfTime(*,*,11,nov?Sony_swiateczny,s,1)
exten => s,n,Playback(Sony/godziny)
exten => s,n,Hangup

exten => s,1,Playback(silence/1)
exten => s,n,Playback(Sony/powitalny)
exten => s,n,Set(MONITOR_FILENAME=Sony_${STRFTIME(${EPOCH},GMT+8,%C%y%m%d%H%M%S)}_${CALLERID(num)}_${UNIQUEID})
exten => s,n,Set(CALLERID(name)=Sony_${UNIQUEID}_${CALLERID(num)})
exten => s,n,Set(TRANSFER_CONTEXT=transfer_Sony)
exten => s,n,Queue(qSony|t)
exten => s,n,Hangup

exten => s,1,Playback(Sony/swiateczny)
exten => s,n,Hangup


When caller hangup while message is played asterisk doesn’t detect that remote party hangup. Empty call is added to queue and then redirected to agent. When agent aswer it asterisk hanging up the call. Any idea how to fix it?
Agents receive many calls like this - its very annoying.