Flash transfer problem in asterisk integration with old PBX

I’ve tried to transfer a call using the Flash command, but with my configuration it doesn’t work.
I have a traditional PBX connected with a zap channel to Asterisk that acts like an IVR:

TELCO line --> traditional PBX (FXS) --> (FXO) Asterisk

From the TELCO line I can make a call to the traditional PBX and reach Asterisk, the IVR system on Asterisk answers the call and I can dial an

extension (for example 42 that is on the traditional PBX). In the asterisk dialplan I’ve set to transfer the call using Flash() like in this example:

exten => 42,1,Flash()
exten => 42,2,Background(silence/1) wait 1 second for the traditional PBX
exten => 42,3,SendDTMF(42,250)
exten => 42,4,Background(silence/1) wait 1 second for the traditional PBX
exten => 42,5,Hangup()

When I dial the extension 42, the phone 42 on the traditional PBX rings but when I answer there isn’t communication with the call from the TELCO line

and after a few seconds the line hangup.
Here you can see what happen in asterisk CLI console:

   Executing Answer("Zap/4-1", "") in new stack
-- Executing BackGround("Zap/4-1", "a_suoni_plink/menu_esterno2") in new stack
-- Playing 'a_suoni_plink/menu_esterno2' (language 'it')

== CDR updated on Zap/4-1
– Executing Flash(“Zap/4-1”, “”) in new stack
– Flashed channel Zap/4-1
– Executing BackGround(“Zap/4-1”, “silence/1”) in new stack
– Playing ‘silence/1’ (language ‘it’)
– Executing SendDTMF(“Zap/4-1”, “42”) in new stack
– Executing BackGround(“Zap/4-1”, “silence/1”) in new stack
– Playing ‘silence/1’ (language ‘it’)
– Executing Hangup(“Zap/4-1”, “”) in new stack
== Spawn extension (incoming, 42, 5) exited non-zero on ‘Zap/4-1’
– Hungup ‘Zap/4-1’

I’ve tried the following changes to the dialplan in my example but transfer still doesn’t work:

  • I’ve tried to use wait(1) instead of Background(silence/1)

  • I’ve tried without Background(silence/1) or wait(1):

exten => 42,1,Flash()
exten => 42,2,SendDTMF(42,250)
exten => 42,3,Hangup()

  • I’ve tried without the Hangup() instructions at the end

Has anyone the same problem like me and any suggestions?

please don’t cross-post … it’s considered rude.