Mike, havia esquecido completamente da possibilidade de puxar via variável de sistema ($#). Agora, depois de visto, ficou fácil.
É a história do parafuso. A máquina quebra ninguém consegue consertar, fábrica parada, vem alguém de fora aperta um parafuso e resolve o problema, ou seja, o problema parece pequeno depois de vista a solução mas o mérito é de quem sabia que poderia apertar aquele parafuso. Obrigadão cara!! Sucesso! João Marcelo Queiroz Em 06/06/2012, às 18:57, Mike Tesliuk escreveu: > Vamos la: > > Script1: > -------------- > #!/bin/bash > > TESTE=$1 > > echo "saida: ${TESTE}" > /tmp/teste.txt > > ------------ > extension: > > exten => 1111,1,Answer() > exten => 1111,n,Set(TESTE="CADE A VARIAVEL") > exten => 1111,n,Agi(teste.sh,${TESTE}) > exten => 1111,n,Hangup() > > -------------- > ao executar: > > root@pabx:/etc/asterisk# cat /tmp/teste.txt > saida: CADE A VARIAVEL > > > até aqui funcionou blz > > ---------------- > > Script 2: > > #!/bin/bash > > > TESTE=$1 > > > echo "NOOP \"TESTE DO MIKE\"" > > echo "saida: ${TESTE}" > /tmp/teste.txt > > > > > ------------ > > Execução após ativar o debug do agi (agi set debug on) > > <SIP/114-0000074a>AGI Tx >> agi_request: teste.sh > <SIP/114-0000074a>AGI Tx >> agi_channel: SIP/114-0000074a > <SIP/114-0000074a>AGI Tx >> agi_language: pt_BR > <SIP/114-0000074a>AGI Tx >> agi_type: SIP > <SIP/114-0000074a>AGI Tx >> agi_uniqueid: 1339018059.1904 > <SIP/114-0000074a>AGI Tx >> agi_version: 1.8.8.1 > <SIP/114-0000074a>AGI Tx >> agi_callerid: 114 > <SIP/114-0000074a>AGI Tx >> agi_calleridname: Mike > <SIP/114-0000074a>AGI Tx >> agi_callingpres: 0 > <SIP/114-0000074a>AGI Tx >> agi_callingani2: 0 > <SIP/114-0000074a>AGI Tx >> agi_callington: 0 > <SIP/114-0000074a>AGI Tx >> agi_callingtns: 0 > <SIP/114-0000074a>AGI Tx >> agi_dnid: 1111 > <SIP/114-0000074a>AGI Tx >> agi_rdnis: unknown > <SIP/114-0000074a>AGI Tx >> agi_context: interno > <SIP/114-0000074a>AGI Tx >> agi_extension: 1111 > <SIP/114-0000074a>AGI Tx >> agi_priority: 3 > <SIP/114-0000074a>AGI Tx >> agi_enhanced: 0.0 > <SIP/114-0000074a>AGI Tx >> agi_accountcode: > <SIP/114-0000074a>AGI Tx >> agi_threadid: 139687365965568 > <SIP/114-0000074a>AGI Tx >> agi_arg_1: CADE A VARIAVEL > <SIP/114-0000074a>AGI Tx >> > <SIP/114-0000074a>AGI Rx << NOOP "TESTE DO MIKE" > <SIP/114-0000074a>AGI Tx >> 200 result=0 > > --------------- > > Script 3 > > #!/bin/bash > > > TESTE=$1 > > echo "NOOP \"TESTE DO MIKE\"" > echo "saida: ${TESTE}" > /tmp/teste.txt > echo " SET VARIABLE TESTE2 \"mike testou\"" > > > ------------------ > > Extension: > > exten => 1111,1,Answer() > exten => 1111,n,Set(TESTE="CADE A VARIAVEL") > exten => 1111,n,Agi(teste.sh,${TESTE}) > exten => 1111,n,NoOp(TESTE2: ${TESTE2}) > exten => 1111,n,Hangup() > > > > -------------- > Execução: CLI > > -- Executing [1111@interno:1] Answer("SIP/114-0000075b", "") in new > stack > -- Executing [1111@interno:2] Set("SIP/114-0000075b", "TESTE="CADE > A VARIAVEL"") in new stack > -- Executing [1111@interno:3] AGI("SIP/114-0000075b", > "teste.sh,"CADE A VARIAVEL"") in new stack > -- Launched AGI Script /var/lib/asterisk/agi-bin/teste.sh > -- <SIP/114-0000075b>AGI Script teste.sh completed, returning 0 > -- Executing [1111@interno:4] NoOp("SIP/114-0000075b", "TESTE2: > mike testou") in new stack > -- Executing [1111@interno:5] Hangup("SIP/114-0000075b", "") in new > stack > > > ------------ > > Debug do agi > <SIP/114-0000075b>AGI Tx >> agi_request: teste.sh > <SIP/114-0000075b>AGI Tx >> agi_channel: SIP/114-0000075b > <SIP/114-0000075b>AGI Tx >> agi_language: pt_BR > <SIP/114-0000075b>AGI Tx >> agi_type: SIP > <SIP/114-0000075b>AGI Tx >> agi_uniqueid: 1339018657.1921 > <SIP/114-0000075b>AGI Tx >> agi_version: 1.8.8.1 > <SIP/114-0000075b>AGI Tx >> agi_callerid: 114 > <SIP/114-0000075b>AGI Tx >> agi_calleridname: Mike > <SIP/114-0000075b>AGI Tx >> agi_callingpres: 0 > <SIP/114-0000075b>AGI Tx >> agi_callingani2: 0 > <SIP/114-0000075b>AGI Tx >> agi_callington: 0 > <SIP/114-0000075b>AGI Tx >> agi_callingtns: 0 > <SIP/114-0000075b>AGI Tx >> agi_dnid: 1111 > <SIP/114-0000075b>AGI Tx >> agi_rdnis: unknown > <SIP/114-0000075b>AGI Tx >> agi_context: interno > <SIP/114-0000075b>AGI Tx >> agi_extension: 1111 > <SIP/114-0000075b>AGI Tx >> agi_priority: 3 > <SIP/114-0000075b>AGI Tx >> agi_enhanced: 0.0 > <SIP/114-0000075b>AGI Tx >> agi_accountcode: > <SIP/114-0000075b>AGI Tx >> agi_threadid: 139687364441856 > <SIP/114-0000075b>AGI Tx >> agi_arg_1: CADE A VARIAVEL > <SIP/114-0000075b>AGI Tx >> > <SIP/114-0000075b>AGI Rx << NOOP "TESTE DO MIKE" > <SIP/114-0000075b>AGI Tx >> 200 result=0 > <SIP/114-0000075b>AGI Rx << SET VARIABLE TESTE2 "mike testou" > <SIP/114-0000075b>AGI Tx >> 200 result=1 > -- <SIP/114-0000075b>AGI Script teste.sh completed, returning 0 > > > > acho que isso deve dar base pra voce fazer tuas brincadeiras > > > Em 06-06-2012 18:35, Mike Tesliuk escreveu: >> vou testar e ja posto :) >> >> Em 06-06-2012 17:49, João Marcelo Queiroz escreveu: >>> Mike, >>> >>> obrigado pela ajuda. Já havia visto esse site, porém nesse caso ele utiliza >>> uma variável já definida ($agi_callerid), no meu caso eu a defini >>> (${teste}). Já havia tentado dessa forma, ainda sem sucesso. >>> >>> Sobre a linguagem, quero primeiro fazer alguns exemplos em shell, depois >>> vou pra PHP. A documentação em shell é escassa. >>> >>> >>> Obrigado, >>> >>> João Marcelo >>> >>> >>> Em 06/06/2012, às 17:34, Mike Tesliuk escreveu: >>> >>>> da uma olhada aqui. >>>> >>>> http://yakko.cs.wmich.edu/~drclaw/asterisk/cidname/ >>>> >>>> eu pessoalmente recomendaria a utilização de outra linguagem, no meu >>>> caso eu utilizo perl, >>>> >>>> em perl ficaria algo assim >>>> >>>> >>>> #!/bin/bash >>>> >>>> use Asterisk::AGI; >>>> >>>> $AGI = new Asterisk::AGI; >>>> >>>> %input = $AGI->ReadParse(); >>>> >>>> >>>> $teste=$AGI->get_variable('TESTE'); >>>> >>>> $AGI->exec('NoOp","$teste"); >>>> >>>> >>>> >>>> >>>> >>>> Em 06-06-2012 17:27, João Marcelo Queiroz escreveu: >>>>> Estou ainda iniciando em AGI e resolvi fazer um pequeno script em Shell >>>>> para testar. >>>>> >>>>> Ele é bem simples, faz uma consulta em um banco MySQL, retorna uma data, >>>>> envia para o AGI que envia a data para o arquivo. >>>>> O problema é que, apesar de ler muita coisa, não encontrei como faço para >>>>> recuperar o valor da variável dentro do script. >>>>> Posso estar errando na sintaxe, mas tou no escuro. >>>>> >>>>> Como recuperaria esse valor para trabalhar com ele no script? Enviar de >>>>> volta para o * é simples, meu problema é recuperar. >>>>> >>>>> >>>>> >>>>> exten=>7713,1,Answer() >>>>> exten=>7713,n,MYSQL(Connect connid 127.0.0.1 root senha TesteCo) >>>>> exten=>7713,n,MYSQL(Query resultid ${connid} SELECT\ Marcado\ FROM\ >>>>> Coluna\ WHERE\ Campo=\"12345\") >>>>> exten=>7713,n,MYSQL(Fetch fetchid ${resultid} teste) >>>>> exten=>7713,n,MYSQL(Clear ${resultid}) >>>>> exten=>7713,n,AGI(echo_data.sh) -> tentei também >>>>> (echo_data.sh|${teste}) sem sucesso. >>>>> exten=>7713,n,MYSQL(Disconnect ${connid}) >>>>> exten=>7713,n,Hangup() >>>>> >>>>> >>>>> #!/bin/bash >>>>> >>>>> # Consume all variables sent by Asterisk >>>>> while read VAR&& [ -n ${VAR} ] ; do : ; done >>>>> >>>>> # Answer the call. >>>>> #echo "ANSWER" >>>>> #read RESPONSE >>>>> >>>>> # teste de fala >>>>> echo 'GET FULL VARIABLE ${teste}' >>>>> read RESPONSE >>>>> >>>>> #abaixo eu fiz várias tentativas de obter o valor da variável, sem >>>>> sucesso. >>>>> Dia=`[${teste}] | cut -f1 -d:` >>>>> Mes=`${teste} | cut -f2 -d:` >>>>> Ano=`"${teste}" | cut -f3 -d:` >>>>> >>>>> echo " Dia= $Dia , Mes= $Mes , Ano= $Ano"> teste.ler >>>>> >>>>> exit 0 >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> Obrigado, >>>>> >>>>> >>>>> João Marcelo Queiroz >>>>> _______________________________________________ >>>>> KHOMP Inovação: External Board Series >>>>> Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e >>>>> FreeSWITCH. >>>>> Tenha a External Series Experience na sua aplicação. Visite www.khomp.com >>>>> _______________________________________________ >>>>> DIGIVOICE Fabricante de Placas de Voz e Channel Bank >>>>> 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM >>>>> Centro Treinamento - Curso de PABX IP - Asterisk - Site >>>>> www.digivoice.com.br >>>>> ________ >>>>> YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do >>>>> mercado. >>>>> email: yeal...@commlogik.com.br | www.commlogik.com.br | (11) 5503-1011 >>>>> ______________________________________________ >>>>> Para remover seu email desta lista, basta enviar um email em branco para >>>>> asteriskbrasil-unsubscr...@listas.asteriskbrasil.org >>>> _______________________________________________ >>>> KHOMP Inovação: External Board Series >>>> Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e >>>> FreeSWITCH. >>>> Tenha a External Series Experience na sua aplicação. Visite www.khomp.com >>>> _______________________________________________ >>>> DIGIVOICE Fabricante de Placas de Voz e Channel Bank >>>> 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM >>>> Centro Treinamento - Curso de PABX IP - Asterisk - Site >>>> www.digivoice.com.br >>>> ________ >>>> YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do >>>> mercado. >>>> email: yeal...@commlogik.com.br | www.commlogik.com.br | (11) 5503-1011 >>>> ______________________________________________ >>>> Para remover seu email desta lista, basta enviar um email em branco para >>>> asteriskbrasil-unsubscr...@listas.asteriskbrasil.org >>> _______________________________________________ >>> KHOMP Inovação: External Board Series >>> Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e >>> FreeSWITCH. >>> Tenha a External Series Experience na sua aplicação. Visite www.khomp.com >>> _______________________________________________ >>> DIGIVOICE Fabricante de Placas de Voz e Channel Bank >>> 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM >>> Centro Treinamento - Curso de PABX IP - Asterisk - Site >>> www.digivoice.com.br >>> ________ >>> YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do >>> mercado. >>> email: yeal...@commlogik.com.br | www.commlogik.com.br | (11) 5503-1011 >>> ______________________________________________ >>> Para remover seu email desta lista, basta enviar um email em branco para >>> asteriskbrasil-unsubscr...@listas.asteriskbrasil.org >> _______________________________________________ >> KHOMP Inovação: External Board Series >> Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e >> FreeSWITCH. >> Tenha a External Series Experience na sua aplicação. Visite www.khomp.com >> _______________________________________________ >> DIGIVOICE Fabricante de Placas de Voz e Channel Bank >> 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM >> Centro Treinamento - Curso de PABX IP - Asterisk - Site >> www.digivoice.com.br >> ________ >> YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do >> mercado. >> email: yeal...@commlogik.com.br | www.commlogik.com.br | (11) 5503-1011 >> ______________________________________________ >> Para remover seu email desta lista, basta enviar um email em branco para >> asteriskbrasil-unsubscr...@listas.asteriskbrasil.org > > _______________________________________________ > KHOMP Inovação: External Board Series > Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e > FreeSWITCH. > Tenha a External Series Experience na sua aplicação. Visite www.khomp.com > _______________________________________________ > DIGIVOICE Fabricante de Placas de Voz e Channel Bank > 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM > Centro Treinamento - Curso de PABX IP - Asterisk - Site > www.digivoice.com.br > ________ > YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do > mercado. > email: yeal...@commlogik.com.br | www.commlogik.com.br | (11) 5503-1011 > ______________________________________________ > Para remover seu email desta lista, basta enviar um email em branco para > asteriskbrasil-unsubscr...@listas.asteriskbrasil.org _______________________________________________ KHOMP Inovação: External Board Series Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e FreeSWITCH. Tenha a External Series Experience na sua aplicação. Visite www.khomp.com _______________________________________________ DIGIVOICE Fabricante de Placas de Voz e Channel Bank 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM Centro Treinamento - Curso de PABX IP - Asterisk - Site www.digivoice.com.br ________ YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do mercado. email: yeal...@commlogik.com.br | www.commlogik.com.br | (11) 5503-1011 ______________________________________________ Para remover seu email desta lista, basta enviar um email em branco para asteriskbrasil-unsubscr...@listas.asteriskbrasil.org