GoSub & Call Forwarding problem

try use transfer from CALLING work ok BUT when
CALLER try transfer after press# listen transfer BUT after press
first number for transfer transfer canceled and hear pbx-invalid !

[ul]-- Called 102
– SIP/102-b7b05af0 is ringing
– SIP/102-b7b05af0 answered SIP/101-092cbe08
– Started music on hold, class ‘default’, on SIP/102-b7b05af0
– <SIP/101-092cbe08> Playing ‘pbx-transfer.gsm’ (language ‘en’)
– Unable to find extension ‘1’ in context ‘recchannel’
– <SIP/101-092cbe08> Playing ‘pbx-invalid.gsm’ (language ‘en’)
– Stopped music on hold on SIP/102-b7b05af0
– Executing [h@recchannel:1] StopMixMonitor(“SIP/101-092cbe08”, “”) in new stack[/ul]

[code][recchannel]
exten => s,1,NoOp(Start stdexten W RECORD)
exten => s,n,Set(ext=${ARG1})
exten => s,n,Set(dev=${ARG2})
exten => s,n,Set(cid=${ARG3})
;exten => s,n,Set(ctx=${ARG4})
exten => s,n,NoOp(parameter ext=${ext} dev=${dev} cid=${cid})
exten => s,n,set(FILENAME=${REC_PATH}${dev}-${cid}-${ext}-${STRFTIME(${EPOCH},%Y%m%d-%H%M%S)})
exten => s,n,NoOp(filename : ${FILENAME})
exten => s,n,Set(mbx="${ext}"$["${ctx}" ? “@${ctx}” :: “”])
exten => s,n,MixMonitor(${FILENAME}.wav)
exten => s,n,Dial(${dev}/${ext},20,tTwWkK) ; Ring the interface, 20 seconds maximum
exten => s,n,Hangup()
exten => s,n,Return
exten => h,1 ,StopMixMonitor
exten => h,n ,System(cd ${REC_PATH})
exten => h,n ,System(lame -v -V 9 --lowpass 9 --quiet ${FILENAME}.wav ${FILENAME}.mp3)
exten => h,n ,System(rm -f ${FILENAME}.wav)
(NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)
exten => h,n,Return

[Dialinternal]
exten => _1xx,1,NoOp()
exten => _1xx,n,GOSUB(recchannel,s,1(${EXTEN},SIP,${CALLERID(num)}))
;exten => _1xx,n,Dial(SIP/${EXTEN},20,tTwWkK) ; Ring the interface, 20 seconds maximum
exten => _1xx,n,Hangup() [/code]