Call transfer problem with Grandstream devices

Please help !!!

Grandstream devices (Budgetones and HT488) hangs up while transfrerring calls. Hang up means that device must be restarted to work again.

OS FreeBSD 6
Asterisk 1.2.9

sip.conf

[1000]
type=friend
username=1000
secret=1000
nat=yes
host=dynamic
context=from-internal
dtmfmode=info
canreinvite=no
qualify=yes
disallow=all
allow=alaw
allow=ulaw
allow=gsm

[2000]
type=friend
username=2000
secret=2000
nat=yes
host=dynamic
context=from-internal
dtmfmode=info
canreinvite=no
qualify=yes
disallow=all
allow=alaw
allow=ulaw
allow=gsm

[3000]
type=friend
username=3000
secret=3000
nat=yes
host=dynamic
context=from-internal
dtmfmode=info
canreinvite=no
qualify=yes
disallow=all
allow=alaw
allow=ulaw
allow=gsm

extension.conf

[from-internal]

exten=>1000,1,Dial(SIP/1000,60,Tt)
exten=>2000,1,Dial(SIP/2000,60,Tt)
exten=>3000,1,Dial(SIP/3000,60,Tt)

all extensions are Grandstream devices

extension 1000 calls to 2000
extension 2000 answer call and want to transfer call to extension 3000
extension 2000 press flash and call 3000
Transfer 1000 to 3000 sucsess!!!
But extension 2000 hangs up!!! Grandstream device must be restarted !!