[AsteriskBrasil] Ajuda com Macro em um plano de discagem

2008-02-18 Por tôpico Gilberto Nunes Ferreira
Olá a todos...
tenho o seguinte plano de discagem:

[macro-inicio]
exten = s, 1, Wait,1
exten = s, n, Answer()
exten = s, n, Noop()
exten = s, n, Set(LANGUAGE()=pt_BR)
exten = s, n, Set(OS=/etc/asterisk/OS)
exten = s, n, System(psql -U postgres -h xxx.yyy.zzz.www -d YZY -c SELECT * 
FROM tabela  ${OS}/${ARG1}/os
_${ARG1})
exten = s, n, System(cat ${OS}/${ARG1}/os_${ARG1} | grep | | cut -d| -f6 | 
grep -v sta_cod | tail -n -1  ${OS}/${ARG1}/tec_${ARG1})
exten = s, n, Set(TEC=$(cat ${OS}/${ARG1}/tec_${ARG1})

exten = s, n, Background(inicio)
exten = 8, 1, Set(LANGUAGE()=pt_BR)
exten = 8, 2, Macro(disctec,${TEC})
exten = 9, 1, Set(LANGUAGE()=pt_BR)
exten = 9, 2, Macro(Grava_msg_tecnico,${TEC})
exten = 7, 1, Set(LANGUAGE()=pt_BR)
exten = 7, 2, Goto(s,7)
exten = i, 1, Playback(invalid)
exten = i, 2, Wait,1
exten = i, 3, Goto(s,7)
exten = t, 1, Wait,1
exten = t, 2, Queue(telefonista|tT|||150)
exten = s, 8, hangup()

[macro-disctec]
exten = s, 1, Answer()
exten = s, 2, Gotoif($[${TEC} = 71]?100)

exten = s, 100, Dial(SIP/8030,150,tT)

exten = s, HangUp()

Esse plano de discagem está intergrado a um plano anterior, em que o originador 
da chamada disca um numero determinado e após uma consulta em um banco de dados 
PostgreSQL, ele retornar uma variavel especifica.
Ok...
Acontece que após o chamador ouve a gravação 'inicio' ( Background(inicio)), 
ele é orientado a discar 8.
Porém quando ele digita 8, para ser jogado na Macro-inicio, a chamada 
simplesmente cai!
Será que eu estou deixando alguma coisa de fora!
Por gentileza, se puderem me ajudar agradeço..
Obrigado



   
-
Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! ___
Compre uma camiseta da AsteriskBrasil.org!
http://www.voipmania.com.br
== VoIPMania.com.br ==

___
LIsta de discussões AsteriskBrasil.org
AsteriskBrasil@listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil

Re: [AsteriskBrasil] Ajuda com Macro em um plano de discagem

2008-02-18 Por tôpico José Carlos Messias
Opa, a galera pode até dizer que funciona mas tentei isso na sexta
passada e a ura não funcionou quando dentro de uma macro, acho que vai
ter que usar o goto e um contexto.



Em 18/02/08, Gilberto Nunes Ferreira[EMAIL PROTECTED] escreveu:
 Olá a todos...
 tenho o seguinte plano de discagem:

 [macro-inicio]
 exten = s, 1, Wait,1
 exten = s, n, Answer()
 exten = s, n, Noop()
 exten = s, n, Set(LANGUAGE()=pt_BR)
 exten = s, n, Set(OS=/etc/asterisk/OS)
 exten = s, n, System(psql -U postgres -h xxx.yyy.zzz.www -d YZY -c SELECT
 * FROM tabela  ${OS}/${ARG1}/os
 _${ARG1})
 exten = s, n, System(cat ${OS}/${ARG1}/os_${ARG1} | grep | | cut -d|
 -f6 | grep -v sta_cod | tail -n -1  ${OS}/${ARG1}/tec_${ARG1})
 exten = s, n, Set(TEC=$(cat ${OS}/${ARG1}/tec_${ARG1})

 exten = s, n, Background(inicio)
 exten = 8, 1, Set(LANGUAGE()=pt_BR)
 exten = 8, 2, Macro(disctec,${TEC})
 exten = 9, 1, Set(LANGUAGE()=pt_BR)
 exten = 9, 2, Macro(Grava_msg_tecnico,${TEC})
 exten = 7, 1, Set(LANGUAGE()=pt_BR)
 exten = 7, 2, Goto(s,7)
 exten = i, 1, Playback(invalid)
 exten = i, 2, Wait,1
 exten = i, 3, Goto(s,7)
 exten = t, 1, Wait,1
 exten = t, 2, Queue(telefonista|tT|||150)
 exten = s, 8, hangup()

 [macro-disctec]
 exten = s, 1, Answer()
 exten = s, 2, Gotoif($[${TEC} = 71]?100)

 exten = s, 100, Dial(SIP/8030,150,tT)

 exten = s, HangUp()

 Esse plano de discagem está intergrado a um plano anterior, em que o
 originador da chamada disca um numero determinado e após uma consulta em um
 banco de dados PostgreSQL, ele retornar uma variavel especifica.
 Ok...
 Acontece que após o chamador ouve a gravação 'inicio' ( Background(inicio)),
 ele é orientado a discar 8.
 Porém quando ele digita 8, para ser jogado na Macro-inicio, a chamada
 simplesmente cai!
 Será que eu estou deixando alguma coisa de fora!
 Por gentileza, se puderem me ajudar agradeço..
 Obrigado




  
 Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
 armazenamento!


 ___
 Compre uma camiseta da AsteriskBrasil.org!
 http://www.voipmania.com.br
 == VoIPMania.com.br ==

 ___
 LIsta de discussões AsteriskBrasil.org
 AsteriskBrasil@listas.asteriskbrasil.org
 http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil

___
Compre uma camiseta da AsteriskBrasil.org!
http://www.voipmania.com.br
== VoIPMania.com.br ==

___
LIsta de discussões AsteriskBrasil.org
AsteriskBrasil@listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil


Re: [AsteriskBrasil] Ajuda com Macro em um plano de discagem

2008-02-18 Por tôpico Gilberto Nunes Ferreira
Desculpem-me!
Quando o chamador discar 8, ele deve ser jogado na macro disctec.
Será que a ligação cai por que estou chamando uma macro dentro de outra macro?
Tem alguma coisa a ver?

Macro aninhadas?!?!?

Obrigado
 


   
-
Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! ___
Compre uma camiseta da AsteriskBrasil.org!
http://www.voipmania.com.br
== VoIPMania.com.br ==

___
LIsta de discussões AsteriskBrasil.org
AsteriskBrasil@listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil

Re: [AsteriskBrasil] Ajuda com Macro em um plano de discagem

2008-02-18 Por tôpico Rafael Puga
Porém quando ele digita 8, para ser jogado na Macro-inicio...

...
exten = 8, 2, Macro(disctec,${TEC})
...

Qual macro vc deseja utilizar mesmo?



2008/2/18 Gilberto Nunes Ferreira [EMAIL PROTECTED]:
 Olá a todos...
 tenho o seguinte plano de discagem:

 [macro-inicio]
 exten = s, 1, Wait,1
 exten = s, n, Answer()
 exten = s, n, Noop()
 exten = s, n, Set(LANGUAGE()=pt_BR)
 exten = s, n, Set(OS=/etc/asterisk/OS)
 exten = s, n, System(psql -U postgres -h xxx.yyy.zzz.www -d YZY -c SELECT
 * FROM tabela  ${OS}/${ARG1}/os
 _${ARG1})
 exten = s, n, System(cat ${OS}/${ARG1}/os_${ARG1} | grep | | cut -d|
 -f6 | grep -v sta_cod | tail -n -1  ${OS}/${ARG1}/tec_${ARG1})
 exten = s, n, Set(TEC=$(cat ${OS}/${ARG1}/tec_${ARG1})

 exten = s, n, Background(inicio)
 exten = 8, 1, Set(LANGUAGE()=pt_BR)
 exten = 8, 2, Macro(disctec,${TEC})
 exten = 9, 1, Set(LANGUAGE()=pt_BR)
 exten = 9, 2, Macro(Grava_msg_tecnico,${TEC})
 exten = 7, 1, Set(LANGUAGE()=pt_BR)
 exten = 7, 2, Goto(s,7)
 exten = i, 1, Playback(invalid)
 exten = i, 2, Wait,1
 exten = i, 3, Goto(s,7)
 exten = t, 1, Wait,1
 exten = t, 2, Queue(telefonista|tT|||150)
 exten = s, 8, hangup()

 [macro-disctec]
 exten = s, 1, Answer()
 exten = s, 2, Gotoif($[${TEC} = 71]?100)

 exten = s, 100, Dial(SIP/8030,150,tT)

 exten = s, HangUp()

 Esse plano de discagem está intergrado a um plano anterior, em que o
 originador da chamada disca um numero determinado e após uma consulta em um
 banco de dados PostgreSQL, ele retornar uma variavel especifica.
 Ok...
 Acontece que após o chamador ouve a gravação 'inicio' ( Background(inicio)),
 ele é orientado a discar 8.
 Porém quando ele digita 8, para ser jogado na Macro-inicio, a chamada
 simplesmente cai!
 Será que eu estou deixando alguma coisa de fora!
 Por gentileza, se puderem me ajudar agradeço..
 Obrigado




  
 Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
 armazenamento!
 ___
 Compre uma camiseta da AsteriskBrasil.org!
 http://www.voipmania.com.br
 == VoIPMania.com.br ==

 ___
 LIsta de discussões AsteriskBrasil.org
 AsteriskBrasil@listas.asteriskbrasil.org
 http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil

___
Compre uma camiseta da AsteriskBrasil.org!
http://www.voipmania.com.br
== VoIPMania.com.br ==

___
LIsta de discussões AsteriskBrasil.org
AsteriskBrasil@listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil


Re: [AsteriskBrasil] Ajuda com Macro em um plano de discagem

2008-02-18 Por tôpico Gilberto Nunes Ferreira
Aqui vai um fragmento:

-- Executing [EMAIL PROTECTED]:5] Set(SIP/bitmixinfo-0b7a38c0, 
LANGUAGE()=pt_BR) in new stack
-- Executing [EMAIL PROTECTED]:6] Set(SIP/bitmixinfo-0b7a38c0, 
CALLFILENAME=/var/spool/asterisk/monitor/entrada/) in new stack
-- Executing [EMAIL PROTECTED]:7] Set(SIP/bitmixinfo-0b7a38c0, 
DYNAMIC_FEATURES = hangup#pickupexten#atxfer#blidxfer) in new stack
-- Executing [EMAIL PROTECTED]:8] Wait(SIP/bitmixinfo-0b7a38c0, 1) in 
new stack
-- Executing [EMAIL PROTECTED]:9] Set(SIP/bitmixinfo-0b7a38c0, 
TIMEOUT(digit)=3) in new stack
-- Digit timeout set to 3
-- Executing [EMAIL PROTECTED]:10] Set(SIP/bitmixinfo-0b7a38c0, 
TIMEOUT(response)=5) in new stack
-- Response timeout set to 5
-- Executing [EMAIL PROTECTED]:11] BackGround(SIP/bitmixinfo-0b7a38c0, 
bemvindobit2) in new stack
-- SIP/bitmixinfo-0b7a38c0 Playing 'bemvindobit2' (language 'pt_BR')
  == CDR updated on SIP/bitmixinfo-0b7a38c0
-- Executing [EMAIL PROTECTED]:1] Set(SIP/bitmixinfo-0b7a38c0, 
LANGUAGE()=pt_BR) in new stack
-- Executing [EMAIL PROTECTED]:2] Playback(SIP/bitmixinfo-0b7a38c0, 
consulta) in new stack
-- SIP/bitmixinfo-0b7a38c0 Playing 'consulta' (language 'pt_BR')
-- Executing [EMAIL PROTECTED]:3] Goto(SIP/bitmixinfo-0b7a38c0, 
consulta|_*XX|1) in new stack
-- Goto (consulta,_*XX,1)
-- Executing [EMAIL PROTECTED]:1] Answer(SIP/bitmixinfo-0b7a38c0, ) in 
new stack
-- Executing [EMAIL PROTECTED]:2] WaitExten(SIP/bitmixinfo-0b7a38c0, ) 
in new stack
  == CDR updated on SIP/bitmixinfo-0b7a38c0
-- Executing [EMAIL PROTECTED]:1] Answer(SIP/bitmixinfo-0b7a38c0, ) in 
new stack
-- Executing [EMAIL PROTECTED]:2] WaitExten(SIP/bitmixinfo-0b7a38c0, ) 
in new stack
-- Timeout on SIP/bitmixinfo-0b7a38c0, continuing...
-- Executing [EMAIL PROTECTED]:3] Set(SIP/bitmixinfo-0b7a38c0, 
LANGUAGE()=pt_BR) in new stack
-- Executing [EMAIL PROTECTED]:4] Set(SIP/bitmixinfo-0b7a38c0, 
OS=/etc/asterisk/OS) in new stack
-- Executing [EMAIL PROTECTED]:5] System(SIP/bitmixinfo-0b7a38c0, 
/bin/mkdir /etc/asterisk/OS/023500) in new stack
-- Executing [EMAIL PROTECTED]:6] System(SIP/bitmixinfo-0b7a38c0, psql 
-U postgres -h 192.168.0.10 -d BIS -c SELECT * FROM t_os_situacao where 
ord_cod=023500 order by sit_ini asc  /etc/asterisk/OS/023500/os_023500) in 
new stack
-- Executing [EMAIL PROTECTED]:7] System(SIP/bitmixinfo-0b7a38c0, cat 
/etc/asterisk/OS/023500/os_023500 | grep | | cut -d| -f3 | grep -v sta_cod 
| tail -n -1  /etc/asterisk/OS/023500/sit_final_023500) in new stack
-- Executing [EMAIL PROTECTED]:8] Set(SIP/bitmixinfo-0b7a38c0, 
SITUACAO=$(cat /etc/asterisk/OS/023500/sit_final_023500) in new stack
-- Executing [EMAIL PROTECTED]:9] GotoIf(SIP/bitmixinfo-0b7a38c0, 
$?100) in new stack
-- Goto (consulta,*023500,100)
-- Executing [EMAIL PROTECTED]:100] Macro(SIP/bitmixinfo-0b7a38c0, 
inicio|023500) in new stack
-- Executing [EMAIL PROTECTED]:1] Wait(SIP/bitmixinfo-0b7a38c0, 1) in 
new stack
-- Executing [EMAIL PROTECTED]:2] Answer(SIP/bitmixinfo-0b7a38c0, ) in 
new stack
-- Executing [EMAIL PROTECTED]:3] NoOp(SIP/bitmixinfo-0b7a38c0, ) in 
new stack
-- Executing [EMAIL PROTECTED]:4] Set(SIP/bitmixinfo-0b7a38c0, 
LANGUAGE()=pt_BR) in new stack
-- Executing [EMAIL PROTECTED]:5] Set(SIP/bitmixinfo-0b7a38c0, 
OS=/etc/asterisk/OS) in new stack
-- Executing [EMAIL PROTECTED]:6] System(SIP/bitmixinfo-0b7a38c0, psql 
-U postgres -h 192.168.0.10 -d BIS -c SELECT * FROM t_os_situacao where 
ord_cod=023500 order by sit_ini asc  /etc/asterisk/OS/023500/os_023500) in 
new stack
-- Executing [EMAIL PROTECTED]:7] System(SIP/bitmixinfo-0b7a38c0, cat 
/etc/asterisk/OS/023500/os_023500 | grep | | cut -d| -f6 | grep -v sta_cod 
| tail -n -1  /etc/asterisk/OS/023500/tec_023500) in new stack
-- Executing [EMAIL PROTECTED]:8] Set(SIP/bitmixinfo-0b7a38c0, TEC=$(cat 
/etc/asterisk/OS/023500/tec_023500) in new stack
-- Executing [EMAIL PROTECTED]:9] Set(SIP/bitmixinfo-0b7a38c0, 
TIMEOUT(digit)=3) in new stack
-- Digit timeout set to 3
-- Executing [EMAIL PROTECTED]:10] Set(SIP/bitmixinfo-0b7a38c0, 
TIMEOUT(response)=5) in new stack
-- Response timeout set to 5
-- Executing [EMAIL PROTECTED]:11] BackGround(SIP/bitmixinfo-0b7a38c0, 
inicio) in new stack
-- SIP/bitmixinfo-0b7a38c0 Playing 'inicio' (language 'pt_BR')
voip*CLI  

Depois de [EMAIL PROTECTED]:11, a ligação cai quando o chamador tecla 8.
Quando ele teclar 8, era pra executar outra macro, conforme o dialplan abaixo:

exten = s, n, Background(inicio)
exten = 8, 1, Wait,1
exten = 8, 2, Macro(tec,${EXTEN:1})
exten = 8, 3, HangUp()
exten = 9, 1, Set(LANGUAGE()=pt_BR)
exten = 9, 2, Macro(Grava_msg_tecnico,${TEC})
exten = 7, 1, Set(LANGUAGE()=pt_BR)
exten = 7, 2, Goto(s,7)
exten = i, 1, Playback(invalid)
exten = i, 2, Wait,1
exten = i, 3, Goto(s,7)
exten = t, 1, Wait,1
exten 

Re: [AsteriskBrasil] Ajuda com Macro em um plano de discagem

2008-02-18 Por tôpico Gilberto Nunes Ferreira
Olá José

Realmente. no sábado fiz testes com o goto, mas acho que o mesmo não permite 
passagem de parametros, como no caso da macro.

Eu tenho que passar parametros para a proxima etapa do URA dentro da macro, mas 
com o goto não consigo


 


   
-
Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! ___
Compre uma camiseta da AsteriskBrasil.org!
http://www.voipmania.com.br
== VoIPMania.com.br ==

___
LIsta de discussões AsteriskBrasil.org
AsteriskBrasil@listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil

Re: [AsteriskBrasil] Ajuda com Macro em um plano de discagem

2008-02-18 Por tôpico Gilberto Nunes Ferreira
Achei no Voip-info, algo falando sobre quando o Background() for usado dentro 
de uma macro, ele é executado como se estivesse dentro do contexto que o 
chamou, pelo que entendi... Ou pode ser que eu esteja errado..
Vejam: http://www.voip-info.org/wiki/index.php?page=Asterisk+cmd+Background
(Na parte onde se lê: Background() inside a macro )

Então eu alterei o meu dialplan para:
[macro-inicio]
[]
exten = s, n, Background(inicio|consulta)
exten = 1, 1, Wait,1
exten = 1, 2, Goto(tec,s,1)
exten = 9, 1, Set(LANGUAGE()=pt_BR)
[..]

Mas mesmo assim não funciona...
A ligação continua caindo...


 


   
-
Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! ___
Compre uma camiseta da AsteriskBrasil.org!
http://www.voipmania.com.br
== VoIPMania.com.br ==

___
LIsta de discussões AsteriskBrasil.org
AsteriskBrasil@listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil

Re: [AsteriskBrasil] Ajuda com Macro em um plano de discagem

2008-02-18 Por tôpico José Carlos Messias
use variáveis, veja meu teste


[ramais]
exten=,1,Dial(SIP/${EXTEN},10,rt)
exten=,n,NoOP(${DIALSTATUS})
exten=,n,Set(__DESTINO=${EXTEN})
exten=,n,GotoIf($[${DIALSTATUS} = CHANUNAVAIL]?BUSY)
exten=,n,GotoIf($[${DIALSTATUS} = BUSY]?BUSY)
exten=,n,GotoIf($[${DIALSTATUS} = NOANSWER]?BUSY)
exten=,n,Hangup()
exten=,n(BUSY),Goto(reserva,s,1)


[reserva]
exten=s,1,Answer()
exten=s,n,Set(TIMEOUT(digit)=5)
exten=s,n,Set(TIMEOUT(response)=10)
exten=s,n,Set(TRIES=0)
exten=s,n,Wait(1)
exten=s,n(repeat),Background(msgReserva)
exten=s,n,WaitExten(3)
;exten=s,n,Goto(repeat)

exten=1,1,AGI(reserva.php|${CALLERID(num)}|${DESTINO})
exten=1,n,Playback(msgReservado)
exten=1,n,HangUp()

exten=h,1,NoOp(Shucks, they hung up!)

exten = t,1,Playback(invalid)
exten = t,n,GoTo(s,repeat)

exten = i,1,Playback(invalid)
exten = i,n,GoTo(s,repeat)




Em 18/02/08, Gilberto Nunes Ferreira[EMAIL PROTECTED] escreveu:
 Olá José

 Realmente. no sábado fiz testes com o goto, mas acho que o mesmo não permite
 passagem de parametros, como no caso da macro.

 Eu tenho que passar parametros para a proxima etapa do URA dentro da macro,
 mas com o goto não consigo







  
 Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
 armazenamento!


 ___
 Compre uma camiseta da AsteriskBrasil.org!
 http://www.voipmania.com.br
 == VoIPMania.com.br ==

 ___
 LIsta de discussões AsteriskBrasil.org
 AsteriskBrasil@listas.asteriskbrasil.org
 http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil

___
Compre uma camiseta da AsteriskBrasil.org!
http://www.voipmania.com.br
== VoIPMania.com.br ==

___
LIsta de discussões AsteriskBrasil.org
AsteriskBrasil@listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil