Playing file lead to call leg a missed,still playing

I have one callback ,from call file ,it first call to one number,then play voice prompt.so call leg a is calling to one number ,but I find during playing file,the call leg a disconnected ,look at below call log,during play voice, it output
Spawn extension (a2billingbc, 8615821513595, 1) exited non-zero on ‘Local/8615821513595@a2billingbc-f699;2’

and
when I show channels, only 1 channel now
dev*CLI> core show channels
Channel Location State Application(Data)
SIP/TERMINATIONIP:70 1000187725@phonereco Up Playback(1/jt500)

Called TERMINATIONIP:7060/015821513595
– SIP/TERMINATIONIP:7060-00000002 is making progress passing it to Local/8615821513595@a2billingbc-f699;2
– SIP/TERMINATIONIP:7060-00000002 answered Local/8615821513595@a2billingbc-f699;2
– Executing [1000187725@phonerecord:1] Answer(“Local/8615821513595@a2billingbc-f699;1”, “”) in new stack
– Executing [1000187725@phonerecord:2] Wait(“Local/8615821513595@a2billingbc-f699;1”, “2”) in new stack
– Executing [1000187725@phonerecord:3] Playback(“Local/8615821513595@a2billingbc-f699;1”, “1/jt500”) in new stack
– <Local/8615821513595@a2billingbc-f699;1> Playing ‘1/jt500.gsm’ (language ‘en’)
== Spawn extension (a2billingbc, 8615821513595, 1) exited non-zero on 'Local/8615821513595@a2billingbc-f699;2’
dev*CLI> core show channels
Channel Location State Application(Data)
SIP/TERMINATIONIP:70 1000187725@phonereco Up Playback(1/jt500)
1 active channel

the call file is :
priority: 1
maxretries: 0
extension: 1000187725
Waittime: 90
retrytime: 60
account: 5178493210
channel: Local/8615821513595@a2billingbc
context: phonerecord
set: var1=2
set: VOICE=1/jt500

I tried asterisk 1.4.x,1.8.x etc, Local channels, sip channels

if I replace call leg A to a2billing.php,then I can see call leg a answered time is 0 seconds or 2 seconds (random),this make me unable to billing correct

thanks in advance