[AsteriskBrasil] Ajuda com Macro em um plano de discagem
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
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
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
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
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
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
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
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