Help with FastAGI Dial

I am working on an IVR application where the script or call flow resides externally from the asterisk box. It communicates with Asterisk using AGI.

I have an odd situation that I have been battling for a few days. When the call is answered by Asterisk in my script, I’m issuing a Dial in order to do a 3 way call. When I answer the phone on the dialed number, both calls are bridged but a few seconds later (after the timeout?), Asterisk issues a HANGUP, while both calls continue to be bridged.
The Dial function never gets to return a result.

I will post next my script, what the CLI is reporting and what the AMI channel is reporting

My script:

EXEC DIAL IAX2/voipms/9544489172,20,a
GET VARIABLE DIALSTATUS

What the CLI is displaying:

<IAX2/voipms-130>AGI Rx << ANSWER
<IAX2/voipms-130>AGI Tx >> 200 result=0
<IAX2/voipms-130>AGI Rx << EXEC DIAL IAX2/voipms/9544480000,20,a
<IAX2/voipms-130>AGI Tx >> 200 result=-1
<IAX2/voipms-130>AGI Tx >> HANGUP
<IAX2/voipms-130>AGI Rx << GET VARIABLE DIALSTATUS
<IAX2/voipms-130>AGI Tx >> 200 result=1 (ANSWER)
<IAX2/voipms-130>AGI Tx >> HANGUP

AMI

Event: AGIExec
Privilege: agi,all
SubEvent: Start
Channel: IAX2/voipms-1127
CommandId: 1575772709
Command: EXEC DIAL IAX2/voipms/9544480000,20,a

Event: VarSet
Privilege: dialplan,all
Channel: IAX2/voipms-1127
Variable: DIALSTATUS
Value: 
Uniqueid: 1410266197.495

Event: VarSet
Privilege: dialplan,all
Channel: IAX2/voipms-1127
Variable: DIALEDPEERNUMBER
Value: 
Uniqueid: 1410266197.495

Event: VarSet
Privilege: dialplan,all
Channel: IAX2/voipms-1127
Variable: DIALEDPEERNAME
Value: 
Uniqueid: 1410266197.495

Event: VarSet
Privilege: dialplan,all
Channel: IAX2/voipms-1127
Variable: ANSWEREDTIME
Value: 
Uniqueid: 1410266197.495

Event: VarSet
Privilege: dialplan,all
Channel: IAX2/voipms-1127
Variable: DIALEDTIME
Value: 
Uniqueid: 1410266197.495

Event: Newchannel
Privilege: call,all
Channel: IAX2/voipms-14884
ChannelState: 0
ChannelStateDesc: Down
CallerIDNum: 
CallerIDName: 
AccountCode: 
Exten: s
Context: 
Uniqueid: 1410266203.496

Event: ChannelUpdate
Privilege: system,all
Channel: 
Channeltype: IAX2
IAX2-callno-local: 14884
IAX2-callno-remote: 0
IAX2-peer: 

Event: VarSet
Privilege: dialplan,all
Channel: IAX2/voipms-14884
Variable: DIALEDPEERNUMBER
Value: voipms/9544480000
Uniqueid: 1410266203.496

Event: NewCallerid
Privilege: call,all
Channel: IAX2/voipms-14884
CallerIDNum: 8287710000
CallerIDName: 
Uniqueid: 1410266203.496
CID-CallingPres: 0 (Presentation Allowed, Not Screened)

Event: Newstate
Privilege: call,all
Channel: IAX2/voipms-14884
ChannelState: 5
ChannelStateDesc: Ringing
CallerIDNum: 8287710459
CallerIDName: 
ConnectedLineNum: 8285820000
ConnectedLineName: 8285820000
Uniqueid: 1410266203.496

Event: Dial
Privilege: call,all
SubEvent: Begin
Channel: IAX2/voipms-1127
Destination: IAX2/voipms-14884
CallerIDNum: 8285820000
CallerIDName: 8285820000
ConnectedLineNum: <unknown>
ConnectedLineName: <unknown>
UniqueID: 1410266197.495
DestUniqueID: 1410266203.496
Dialstring: voipms/9544480000

Event: Newstate
Privilege: call,all
Channel: IAX2/voipms-14884
ChannelState: 6
ChannelStateDesc: Up
CallerIDNum: 8287710459
CallerIDName: 
ConnectedLineNum: 8285820000
ConnectedLineName: 8285820000
Uniqueid: 1410266203.496

Event: VarSet
Privilege: dialplan,all
Channel: IAX2/voipms-1127
Variable: DIALSTATUS
Value: ANSWER
Uniqueid: 1410266197.495

Event: VarSet
Privilege: dialplan,all
Channel: IAX2/voipms-1127
Variable: DIALEDPEERNAME
Value: IAX2/voipms-14884
Uniqueid: 1410266197.495

Event: VarSet
Privilege: dialplan,all
Channel: IAX2/voipms-1127
Variable: DIALEDPEERNUMBER
Value: voipms/9544480000
Uniqueid: 1410266197.495

Event: VarSet
Privilege: dialplan,all
Channel: IAX2/voipms-1127
Variable: BRIDGEPEER
Value: IAX2/voipms-14884
Uniqueid: 1410266197.495

Event: VarSet
Privilege: dialplan,all
Channel: IAX2/voipms-14884
Variable: BRIDGEPEER
Value: IAX2/voipms-1127
Uniqueid: 1410266203.496

Event: NewAccountCode
Privilege: call,all
Channel: IAX2/voipms-14884
Uniqueid: 1410266203.496
AccountCode: 
OldAccountCode: 

Event: Bridge
Privilege: call,all
Bridgestate: Link
Bridgetype: core
Channel1: IAX2/voipms-1127
Channel2: IAX2/voipms-14884
Uniqueid1: 1410266197.495
Uniqueid2: 1410266203.496
CallerID1: 8285820000
CallerID2: 8287710000

Event: VarSet
Privilege: dialplan,all
Channel: IAX2/voipms-1127
Variable: BRIDGEPEER
Value: IAX2/voipms-14884
Uniqueid: 1410266197.495

Event: VarSet
Privilege: dialplan,all
Channel: IAX2/voipms-14884
Variable: BRIDGEPEER
Value: IAX2/voipms-1127
Uniqueid: 1410266203.496

Event: Bridge
Privilege: call,all
Bridgestate: Unlink
Bridgetype: core
Channel1: IAX2/voipms-1127
Channel2: IAX2/voipms-14884
Uniqueid1: 1410266197.495
Uniqueid2: 1410266203.496
CallerID1: 8285820000
CallerID2: 8287710000

Event: Bridge
Privilege: call,all
Bridgestate: Link
Bridgetype: core
Channel1: IAX2/voipms-1127
Channel2: IAX2/voipms-14884
Uniqueid1: 1410266197.495
Uniqueid2: 1410266203.496
CallerID1: 8285820000
CallerID2: 8287710000

Event: VarSet
Privilege: dialplan,all
Channel: IAX2/voipms-1127
Variable: BRIDGEPEER
Value: IAX2/voipms-14884
Uniqueid: 1410266197.495

Event: VarSet
Privilege: dialplan,all
Channel: IAX2/voipms-14884
Variable: BRIDGEPEER
Value: IAX2/voipms-1127
Uniqueid: 1410266203.496

Event: Bridge
Privilege: call,all
Bridgestate: Unlink
Bridgetype: core
Channel1: IAX2/voipms-1127
Channel2: IAX2/voipms-14884
Uniqueid1: 1410266197.495
Uniqueid2: 1410266203.496
CallerID1: 8285820000
CallerID2: 8287710000

Event: VarSet
Privilege: dialplan,all
Channel: IAX2/voipms-1127
Variable: ANSWEREDTIME
Value: 12
Uniqueid: 1410266197.495

Event: VarSet
Privilege: dialplan,all
Channel: IAX2/voipms-1127
Variable: DIALEDTIME
Value: 27
Uniqueid: 1410266197.495

Event: HangupRequest
Privilege: call,all
Channel: IAX2/voipms-14884
Uniqueid: 1410266203.496

Event: Hangup
Privilege: call,all
Channel: IAX2/voipms-14884
Uniqueid: 1410266203.496
CallerIDNum: 8287710000
CallerIDName: <unknown>
ConnectedLineNum: 8285820000
ConnectedLineName: 8285820667
AccountCode: 
Cause: 16
Cause-txt: Normal Clearing

Event: VarSet
Privilege: dialplan,all
Channel: IAX2/voipms-1127
Variable: DIALSTATUS
Value: ANSWER
Uniqueid: 1410266197.495

Event: Dial
Privilege: call,all
SubEvent: End
Channel: IAX2/voipms-1127
UniqueID: 1410266197.495
DialStatus: ANSWER

Event: AGIExec
Privilege: agi,all
SubEvent: End
Channel: IAX2/voipms-1127
CommandId: 1575772709
Command: EXEC DIAL IAX2/voipms/9544489172,20,a
ResultCode: 200
Result: Unknown Result

Event: AGIExec
Privilege: agi,all
SubEvent: Start
Channel: IAX2/voipms-1127
CommandId: 1597418246
Command: GET VARIABLE DIALSTATUS

Event: AGIExec
Privilege: agi,all
SubEvent: End
Channel: IAX2/voipms-1127
CommandId: 1597418246
Command: GET VARIABLE DIALSTATUS
ResultCode: 200
Result: Success

Event: VarSet
Privilege: dialplan,all
Channel: IAX2/voipms-1127
Variable: AGISTATUS
Value: HANGUP
Uniqueid: 1410266197.495

Event: SoftHangupRequest
Privilege: call,all
Channel: IAX2/voipms-1127
Uniqueid: 1410266197.495
Cause: 16

Event: HangupRequest
Privilege: call,all
Channel: IAX2/voipms-1127
Uniqueid: 1410266197.495

Event: Hangup
Privilege: call,all
Channel: IAX2/voipms-1127
Uniqueid: 1410266197.495
CallerIDNum: 8285820000
CallerIDName: 8285820000
ConnectedLineNum: <unknown>
ConnectedLineName: <unknown>
AccountCode: 
Cause: 16
Cause-txt: Normal Clearing

Thank you for the help