Second Flash not working

I have an asterisk server with a 4 FXO port Digium card.

The asterisk server is connected to the Panasonic PBX through these ports. Four analog extensions come out from this PBX and enter to the asterisk server like trunks. When I call to one of these extensions I listen to the voicemail of the asterisk server. Until there everything is working fine.

The problem comes when the voicemail wants to make a supervised transfer to another extension of the Panasonic PBX:

The application (incoming extension) inside Asterisk answers the call (WORKING)
The application (incoming extension) plays a greeting message to the external caller (WORKING)
The application (incoming extension) waits for digits from the external caller (WORKING)
The application (incoming extension) receives the digits from the external caller (WORKING)
The application (incoming extension) generates a flash, receives a second dial tone and sends the received digits (WORKING)
The application (incoming extension) waits 15 seconds for the call to be answered (WORKING)

At this moment 3 different things can happen:

Case 1 The call is answered
The application (incoming extension) detects that the call was answered (WORKING)
The application (incoming extension) plays a message (WORKING)
The application (incoming extension) generates a flash, returns to the first call (WORKING)
The application (incoming extension) plays a message (WORKING)
The application (incoming extension) hangs up (WORKING) The call was succesfully transfered.

Case 2 The call is not answered
The application (incoming extension) detects timeout of the answering time
The application (incoming extension) generates a flash, returns to the first call (NOT WORKING)
The application (incoming extension) plays a no answer message (WORKING)
The application (incoming extension) waits for confirmation digit from the external caller (WORKING)
The application (incoming extension) goes to the voicemail context, and plays a message (WORKING)
The application (incoming extension) waits for mailbox digits from the external caller (WORKING)
The application (incoming extension) plays a voicemail greeting message of the called extension (WORKING)
The application (incoming extension) hangs up (WORKING) The voice mailbox has succesfully received a message.

Case 3 The call is busy
The application (incoming extension) detects a busy tone
The application (incoming extension) generates a flash, returns to the first call (NOT WORKING)
The application (incoming extension) plays a busy message (WORKING)
The application (incoming extension) waits for confirmation digit from the external caller (WORKING)
The application (incoming extension) goes to the voicemail context, and plays a message (WORKING)
The application (incoming extension) waits for mailbox digits from the external caller (WORKING)
The application (incoming extension) plays a voicemail greeting message of the called extension (WORKING)
The application (incoming extension) hangs up (WORKING) The voice mailbox has succesfully received a message.

The panasonic PBX sends DTMF confirmation tones to asterisk to let him know about the status of the call (ringback tone, answer tone, busy tone). This is possible, because the extensions that are connected to the asterisk server are programmed as Voice Mail DTMF extensions.

I made a dial plan for this but it only works on case 1, on case 2 and 3 it was working on the beginning and after a few days it stopped working. As you can see, the only thing that the dial plan is not doing, is generating the second flash to go back to the first call. I know this, because I putted a test phone on the asterisk incoming extensions in monitor mode and heard everything that happened when asterisk answers the line.

What could be wrong?, is there a bug on this dial plan?, what can I do?

I am attaching the dial plan.

[general]

static=yes

writeprotect=no

[globals]

TRUNK1=Zap/g1

TRUNK2=Zap/g2

TRUNKMSD=1

[salientes]

exten=_8.,1,Dial(${TRUNK1}/${EXTEN:${TRUNKMSD}}) ; llamadas de Arista

exten=_9.,1,Dial(${TRUNK2}/${EXTEN:${TRUNKMSD}}) ; llamadas de Quasarlink

[default]

exten => 1,n,Answer ; Contestar la l?nea

exten => s,n,Set(TIMEOUT(digit)=3) ; Tiempo de Espera por digitos a 5 seg.

exten => s,n,Set(TIMEOUT(response)=7) ; Tiempo de Espera por respuesta de digitos a 10 seg.
exten => 125,1,Goto(arista-in,s,1)
exten => 126,1,Goto(qls-in,s,1)

include= salientes

include= rtp-analogicas

include= arista-in

include= qls-in
include= macro-qls
include= demo

;Enviar a la administracion del correo de voz cuando se marca la extension 127

;

exten => 127,1,VoicemailMain

exten => 127,n,Goto(s,6)

exten => 128,1,Goto(demo,128,1)

[buzondevoz]

exten => 1,1,Background(vm-buzondevoz) ;Reproducir mensaje buzon de voz
exten => 1,2,WaitExten,5 ;Esperar a que marque un buzon de voz.
exten => 101,1,Voicemail,u101@default ;Enviar al buz?n de voz

exten => 102,1,Voicemail,u102@default ;Enviar al buz?n de voz
exten => 103,1,Voicemail, u103@default ;Enviar al buz?n de voz
exten => 104,1,Voicemail,u104@default ;Enviar al buz?n de voz
exten => 105,1,Voicemail,u105@default ;Enviar al buz?n de voz
exten => 106,1,Voicemail,u106@default ;Enviar al buz?n de voz
exten => 107,1,Voicemail,u107@default ;Enviar al buz?n de voz
exten => 108,1,Voicemail,u108@default ;Enviar al buz?n de voz

exten => 109,1,Voicemail,u109@default ;Enviar al buz?n de voz
exten => 110,1,Voicemail, u110@default ;Enviar al buz?n de voz
exten => 111,1,Voicemail,u111@default ;Enviar al buz?n de voz
exten => 112,1,Voicemail,u112@default ;Enviar al buz?n de voz
exten => i,1,Playback(invalid) ;Reproducir mensaje extension invalida"

[demo]

;Empieza el demo, cuando se marca la extension 128

exten => 128,1,Answer ; Contestar la l?nea

exten => 128,n,Set(TIMEOUT(digit)=3) ; Tiempo de Espera por digitos a 5 seg.

exten => 128,n,Set(TIMEOUT(response)=7) ; Tiempo de Espera por respuesta de digitos a 10 seg.

exten => 128,n(restart),BackGround(demo-congrats); Reproducir mensaje de felicitaciones

exten => 128,n(instruct),BackGround(demo-instruct); Reproducir instrucciones

exten => 128,n,WaitExten ; Esperar a que marque una extensi?n.

exten => 2,1,BackGround(demo-moreinfo) ; Dar m?s informaci?n.

exten => 2,n,Goto(s,instruct)

exten => 3,1,Set(LANGUAGE()=fr) ; Poner el idioma en frances

exten => 3,n,Goto(s,restart) ; Empezar con felicitaciones

;

; Creamos un usuario de muestra,ext 129, que es la consola y tiene correo de voz, etc

;

exten => 129,1,Playback(transfer,skip) ; “Please hold while…”

                         ; (but skip if channel is not up) 

exten => 129,n,Macro(default,129,${CONSOLE})

exten => 129,1,Voicemail(u129) ; Right to voicemail

exten => 129,1,Dial(Console/dsp) ; Ring forever

exten => 129,n,Voicemail(u129) ; Unless busy

;

; # for when they’re done with the demo

;

exten => #,1,Playback(demo-thanks) ; “Thanks for trying the demo”

exten => #,n,Hangup ; Hang them up.

;

; A timeout and “invalid extension rule”

;

exten => t,1,Goto(#,1) ; If they take too long, give up

exten => i,1,Playback(invalid) ; “That’s not valid, try again”

;

; Crear la extensi?n, 130, para discar al

; servidor de demostraci?n de Asterisk en digium Estados Unidos.

;

exten => 130,1,Playback(demo-abouttotry); Let them know what’s going on

exten => 130,n,Dial( IAX2/guest@misery.digium.com/s@default) ; Call the Asterisk demo

exten => 130,n,Playback(demo-nogo) ; Couldn’t connect to the demo site

exten => 130,n,Goto(s,6) ; Return to the start over message.

;

; Crear la extensi?n, 131, para evaluar la latencia del eco.

;

exten => 131,1,Playback(demo-echotest) ; Let them know what’s going on

exten => 131,n,Echo ; Do the echo test

exten => 131,n,Playback(demo-echodone) ; Let them know it’s over

exten => 131,n,Goto(s,6) ; Start over

[arista-in]

include=macro-qls
include=rtp-analogicas

;Empieza la bienvenida de Administradora Arista cuando se marca la ext 125 o entra una llamada por las lineas del grupo 1

exten => s,1,Wait,1 ; Esperar un segundo

exten => s,n,Answer ; Contestar el repique de la l?nea grupo 1

exten => s,n,Set(TIMEOUT(digit)=3) ; Ajust.t.de esp. de ent. de d?g. a 3 seg.

exten => s,n,Set(TIMEOUT(response)=7) ; Ajust.t.de resp. de ent. de d?g. a 7 seg.

exten => s,n(restart),BackGround(arista); Bienvenida de Arista

exten => s,n,WaitExten ; Esperar a que marque una extensi?n

exten => 132,1,Playback(Aristamezcla) ; Reproducir el mensaje corporativo de Arista

[qls-in]

include=macro-qls
include=rtp-analogicas
include=demo

;Empieza la bienvenida de Quasarlink Systems cuando se marca la ext 126 o entra una llamada por las lineas del grupo 2

;

exten => s,1,Wait,1 ; Esperar un segundo

exten => s,n,Answer ; Contestar el repique de la l?nea grupo 2

exten => s,n,Set(TIMEOUT(digit)=3) ; Ajust.t.de esp. de ent. de d?g. a 3 seg.

exten => s,n,Set(TIMEOUT(response)=5) ; Ajust.t.de resp. de ent. de d?g. a 7 seg.

exten => s,n(restart),BackGround(qls) ; Bienvenida de Quasarlink

exten => s,n,WaitExten ; Esperar a que marque una extensi?n

exten => 128,1,Goto(demo,s,1)
exten => 133,1,Playback(mezclafinalqls) ; Reproducir el mensaje corporativo de Quasarlink

[rtp-analogicas]

include=demo

exten => 1,1,WaitExten(15) ; Esperar un 15 segundos
exten => 1,2,Hangup() ; poner llamada en espera, se oye tono para discar
exten => 1,3,Background(vm-nocontestaext); Reproduce mensaje "no contesta"
exten => 1,4,WaitExten ; Esperar a que marque una extensi?n

exten => 2,1,Goto(buzondevoz,1,1) ; Start over

exten => 5,1,Wait,1 ; Esperar un segundo
exten => 5,2,Playback(tieneunallamada)
exten => 5,3,Hangup() ; Colgar

exten => 6,1,Wait,15 ; Esperar 15 segundos

exten => 8,1,Goto(buzondevoz,1,1) ; Start over

exten=> 101,1,Playback(transfer)
exten=> 101,2,Flash() ;poner llamada en espera, se oye tono para discar
exten=> 101,3,SendDTMF(101) ;llamar a la extensi?n 101
exten=> 101,4,WaitExten,2 ;Esperar 15 segundos
exten=> 101,5,Voicemail,u101@default ;Enviar al buz?n de voz

exten=> 102,1,Playback(transfer)
exten=> 102,2,Flash() ;poner llamada en espera, se oye tono para discar
exten=> 102,3,SendDTMF(102) ;llamar a la extensi?n 103
exten=> 102,4,WaitExten,2 ;Esperar 15 segundos
exten=> 102,5,Voicemail,u102@default ;Enviar al buz?n de voz

exten=> 103,1,Playback(transfer)
exten=> 103,2,Flash() ;poner llamada en espera, se oye tono para discar
exten=> 103,3,SendDTMF(103) ;llamar a la extensi?n 103
exten=> 103,4,WaitExten,2 ;Esperar 15 segundos
exten=> 103,5,Voicemail,u103@default ;Enviar al buz?n de voz

exten=> 104,1,Playback(transfer)
exten=> 104,2,Flash() ;poner llamada en espera, se oye tono para discar
exten=> 104,3,SendDTMF(104) ;llamar a la extensi?n 104
exten=> 104,4,Wait(10) ;Esperar 15 segundos
exten=> 104,5,Hangup() ;Colgar

exten=> 105,1,Playback(transfer)
exten=> 105,2,Flash() ;poner llamada en espera, se oye tono para discar
exten=> 105,3,SendDTMF(105) ;llamar a la extensi?n 105
exten=> 105,4,WaitExten,2 ;Esperar 15 segundos
exten=> 105,5,Voicemail,u105@default ;Enviar al buz?n de voz

exten=> 106,1,Playback(transfer)
exten=> 106,2,Flash() ;poner llamada en espera, se oye tono para discar
exten=> 106,3,SendDTMF(106) ;llamar a la extensi?n 106
exten=> 106,4,WaitExten,2 ;Esperar 15 segundos
exten=> 106,5,Voicemail,u106@default ;Enviar al buz?n de voz

exten=> 107,1,Playback(transfer)
exten=> 107,2,Flash() ;poner llamada en espera, se oye tono para discar
exten=> 107,3,SendDTMF(107) ;llamar a la extensi?n 107
exten=> 107,4,WaitExten,2 ;Esperar 15 segundos
exten=> 107,5,Voicemail,u107@default ;Enviar al buz?n de voz

exten=> 108,1,Playback(transfer)
exten=> 108,2,Flash() ;poner llamada en espera, se oye tono para discar
exten=> 108,3,SendDTMF(108) ;llamar a la extensi?n 108
exten=> 108,4,WaitExten,2 ;Esperar 15 segundos
exten=> 108,5,Voicemail, u108@default ;Enviar al buz?n de voz

exten=> 109,1,Playback(transfer)
exten=> 109,2,Flash() ;poner llamada en espera, se oye tono para discar
exten=> 109,3,SendDTMF(109) ;llamar a la extensi?n 109
exten=> 109,4,WaitExten,2 ;Esperar 15 segundos
exten=> 109,5,Voicemail,u109@default ;Enviar al buz?n de voz

exten=> 110,1,Playback(transfer)
exten=> 110,2,Flash() ;poner llamada en espera, se oye tono para discar
exten=> 110,3,SendDTMF(110) ;llamar a la extensi?n 110
exten=> 110,4,WaitExten,2 ;Esperar 15 segundos
exten=> 110,5,Voicemail,u110@default ;Enviar al buz?n de voz

exten=> 111,1,Playback(transfer)
exten=> 111,2,Flash() ;poner llamada en espera, se oye tono para discar
exten=> 111,3,SendDTMF(111) ;llamar a la extensi?n 104
exten=> 111,4,Wait(10) ;Esperar 15 segundos
exten=> 111,5,Hangup() ;Colgar

exten=> 112,1,Playback(transfer)
exten=> 112,2,Flash() ;poner llamada en espera, se oye tono para discar
exten=> 112,3,SendDTMF(112) ;llamar a la extensi?n 112
exten=> 112,4,WaitExten,2 ;Esperar 15 segundos
exten=> 112,5,Voicemail, u112@default ;Enviar al buz?n de voz