Caller and Callee Dropped after Transfer

Hi , I know this is a repost but I have refined my .conf files and still have the same result. Once the user is caller on hold for the blind call transfer and the calle enters the new extension , both the caller and the callee are hangup and the transfer seems to fail. I want to use my Zap channel to transfer the calls received via the phone line to other channels , mainly IAX channels.

I have no idea why this happens , and this is a really important feature I need to use… I am using version Asterisk 1.4.10.1

Please let me know if I need to display any other information,

Below is the output of my CLI When I try transfer an IAX to IAX call to extension 444

    > priority = mine
    -- Executing [102@internal:1] Dial("IAX2/103-1", "IAX2/102|10|rtT") in new stack
    -- Called 102
    -- Call accepted by 192.168.10.19 (format gsm)
    -- Format for call is gsm
    -- IAX2/102-8 is ringing
    -- IAX2/102-8 answered IAX2/103-1
    -- Started music on hold, class 'default', on IAX2/103-1
    -- <IAX2/102-8> Playing 'pbx-transfer' (language 'en')
    -- Stopped music on hold on IAX2/103-1
    -- Transferring IAX2/103-1 to '444' (context internal) priority 1
    -- Hungup 'IAX2/102-8'
    -- Hungup 'IAX2/103-1'

Cli output when I call a zap channel from an IAX channel and transfer the IAX to extension 103

- Executing [104@internal:1] Dial("IAX2/102-6", "ZAP/1|10|rtT") in new stack
    -- Called 1
    -- Zap/1-1 is ringing
    -- Zap/1-1 is ringing
    -- Zap/1-1 answered IAX2/102-6
    -- Started music on hold, class 'default', on IAX2/102-6
    -- <Zap/1-1> Playing 'pbx-transfer' (language 'en')
    -- Stopped music on hold on IAX2/102-6
    -- Transferring IAX2/102-6 to '103' (context incoming) priority 1
    -- Hungup 'Zap/1-1'
    -- Hungup 'IAX2/102-6'

Extensions.conf

[code][globals]
OUTBOUNDTRUNK=Zap/4

[internal]
include => outbound-local
include => office
exten => 122,1,Dial(SIP/alain,10,trT)
exten => 133,1,Dial(SIP/rd,10,trT)
exten => 500,1,VoiceMailMain( )
exten => 104,1,Dial(ZAP/1,10,rtT)
exten => 104,n,VoiceMail(u104@default)
exten => 104,n,Hangup()
exten => 444,1,Playback(tt-monkeys)

[office]
exten => _XXX,1,Dial(IAX2/${EXTEN},10,rtT)
exten => _XXX,2,VoiceMail(u${EXTEN}@default)

[outbound-local]
exten => _9.,1,Dial(${OUTBOUNDTRUNK}/${EXTEN:1})
exten => _0.,1,Dial(${OUTBOUNDTRUNK}/${EXTEN})

[incoming]
include => internal
exten => 444,1,Playback(tt-monkeys)
exten => s,1,Dial(ZAP/1,15,rtT)
exten => s,n,VoiceMail(u104@default)
exten => s,n,Hangup()
~[/code]

IAX.conf

[general]
bandwidth=low
disallow=lpc10
jitterbuffer=no
forcejitterbuffer=no
tos=lowdelay
autokill=yes
notransfer=no

[101]
callerid=Nico Pretorius
secret=nico
type=friend
host=dynamic
context=internal


[102]
callerid=Alain Millward
secret=alain
type=friend
host=dynamic
context=internal

[103]
callerid=Ardi Coetzee
secret=rd
type=friend
host=dynamic
context=internal

Features.conf

[code]

[general]
parkext => 70 ; What ext. to dial to park
parkpos => 71-79 ; What extensions to park calls on
;context => parkedcalls ; Which context parked calls are in
;parkingtime => 60 ; Number of seconds a call can be
; parked for (default is 45 seconds)

transferdigittimeout =>3 ; Number of seconds to wait between digits
; when transferring a call (in seconds)
courtesytone = beep ;Sound file to play to the parked callerwhen someone dials a parked call
xfersound = beep ; to indicate an attended transfer is complete
xferfailsound = beeperr ; to indicate a failed transfer
;adsipark = yes ; if you want ADSI parking announcements
;pickupexten = *8 ; Configure the pickup extension. Default is *8
featuredigittimeout = 800 ;Max time (ms) between digits for
; feature activation. Default is 500

[featuremap]
;blindxfer =>* ; Blind Transfer (default is # - change if having
; problem with external DTMF that requires #)
;disconnect => ** ; Disconnect Call
automon => *1 ; One Touch Record
;atxfer => *2 ; Attended Xfer
~
~[/code]