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