Asterisk and call pending

Hi. I have this scenario in a development environment:
Asterisk 1.6.1.0 on a Linux virtual machine,
Speech Server 2007 on a Windows Machine with an IVR Application responding on TCP Port 5070
Two eyebeam SoftPhones registered on Asterisk, and communicating with Asterisk via TCP
The first phone call a number and asterisk redirect to the speech server
the speech server execute an IVR and ask for a number to redirect the call, then starts a transfer to that call passing from the asterisk dialplan.
The call is estabilished correctly, but when one of the phones hangs up, the other remain connected.

Except from sip.conf

[3471046773]
type=friend
secret=cp10993
callerid=“Andrea Perazzolo” <3470146773>
host=dynamic
disallow=all
allow=g723
allow=alaw
allow=ulaw
transport=tcp
insecure=invite
nat=no

[3471046774]
type=friend
secret=cp10993
callerid=“Andrea” <3470146774>
host=dynamic
disallow=all
allow=g723
allow=alaw
allow=ulaw
transport=tcp
insecure=invite
nat=no

[speechserver5070]
type=friend
host=10.2.1.51
fromdomain=10.2.1.49
disallow=all
allow=alaw
allow=g723.1
allow=ulaw
canreinvite=yes
transport=tcp
port=5070

Except fom extensions.conf:

exten => 045955317,1,Dial(SIP/$(EXTEN)::::tcp@speechserver5070)

exten => _055.,1,Set(called=${EXTEN:10})
exten => _055.,n,Set(Pref=${EXTEN:0:3})
exten => _055.,n,Set(Duration=${EXTEN:3:7}0000)
exten => _055.,n,NoOp(${called})
exten => _055.,n,NoOp(${Duration})
exten => _055.,n,Dial(SIP/${called}::::tcp@${called},L(${Duration}))
;exten => _055.,n,Dial(SIP/${called}::::tcp@${called})
;exten => h,1,Hangup()

Anyone can help me?
Maybe is only a question of the eyebeams and have to try on a real world phone environment.

Thanks

Andrea

I would throw on a new line in extensions.conf underneath your Dial command:

Not sure if that will do the trick, but i make it a habit of always hanging up at the last step of my dial plans.