[AsteriskBrasil] RES: AGI

Andre Emerich aemerich em gmail.com
Quarta Novembro 18 14:19:12 BRST 2009


Eder,

Obrigado pelo exemplo..
Mas e como fica o dialplan neste caso?


2009/11/18 Eder Souza <eder.souza em bsd.com.br>

>
> #!/usr/bin/perl
> #    _
> #   |_)\_/
> #   |_) |
> #
> #
> #    ___    _              _       ___
> #   | __|__| |___ _ _   __| |___  / __| ___ _  _ _____ _
> #   | _|/ _` / -_) '_| / _` / -_) \__ \/ _ \ || |_ / _` |
> #   |___\__,_\___|_|   \__,_\___| |___/\___/\_,_/__\__,_|
>
>
>
> use DBI;
> use Asterisk::AGI;
>
>
>
> my $AGI = new Asterisk::AGI;
> my %input = $AGI->ReadParse();
> my $dbh;
> my $teclado;
> my $callerid = $input{'callerid'};
>
>
> $dbh = DBI->connect('DBI:mysql:dbname=bancoo:10.5.120.23', 'user',
> 'senha');
> if ($dbh) {
>
>         $AGI->exec("NoOp"," binei $callerid");
>         #aqui a variavel "teclado" pega o q for digitado pelo usuario
>         $teclado = $AGI->get_data ('MsgDigite', -1, 1);
>
>         $AGI->exec("NoOp"," teclado $teclado");
>         #fazendo um simples update no banco mude para insert por exemplo
>         my $query = "UPDATE Tabela SET Teclado = '$teclado' WHERE ID =
> '55'";
>         my $query_handle = $dbh->prepare($query);
>         # EXECUTE THE QUERY
>         $query_handle->execute();
>         $AGI->exec('Background','MesgObrigado');
>         $AGI->hangup();
>
>         }
>
> }
>
>
> Ae um exemplo mysql + ura Perfeito para vc
>
>
> Att,
>
>
> Eng Eder de Souza
>
> 2009/11/18 Andre Emerich <aemerich em gmail.com>
>
>> Eder,
>>
>> Você tem uma URA em AGI para que eu possa usar de exemplo?
>>
>>
>> 2009/11/18 Eder Souza <eder.souza em bsd.com.br>
>>
>>> André faça uma URA em AGI e o seu problema acaba hehehe
>>>
>>> em qual ponto vc está enroscado ?
>>>
>>>   2009/11/18 Andre Emerich <aemerich em gmail.com>
>>>
>>>> Quanto aos TXT's, posso usar a variavel UNIQUEID para colocar o TXT e
>>>> não ter problema..
>>>> Isso é o de menos..
>>>>
>>>> 2009/11/18 Daviramos Roussenq Fortunato <daviramosrf em gmail.com>
>>>>
>>>>> "repare q tudo é colocado dentro de *.txt" Com AGI terá o mesmo
>>>>> problema de "inconsistencia" se o mesmo não for Tratado.
>>>>>
>>>>> Se você ler o problemas inicial verá que ele não precisara mais do TXT.
>>>>>
>>>>>
>>>>>
>>>>> 2009/11/18 Eder Souza <eder.souza em bsd.com.br>
>>>>>
>>>>>> Daviramos só que isso gera um problema mt grave que é inconsistencia
>>>>>> se isso não for Gambiarra então nao sei mais o que é essa palavra !!!
>>>>>>
>>>>>> repare q tudo é colocado dentro de *.txt se duas pessoas ligarem ao
>>>>>> mesmo tempo ?
>>>>>>
>>>>>> os valores serão sobrepostos "inconsistencia" !!
>>>>>>
>>>>>> Tudo bem o Asterisk tem suporte, mas quem disse que é para ser
>>>>>> realmente usado dessa maneira ?
>>>>>>
>>>>>> []'s
>>>>>>
>>>>>> Eng Eder de Souza
>>>>>>
>>>>>>
>>>>>>
>>>>>> 2009/11/18 Daviramos Roussenq Fortunato <daviramosrf em gmail.com>
>>>>>>
>>>>>>> Se fosse gambiarra, o próprio Asterisk não teria suporte ao mesmo.
>>>>>>>
>>>>>>> "bagunça no plano de discagem" só se você não souber contrui um bom
>>>>>>> plano de discagem.
>>>>>>>
>>>>>>> Particularmente também prefiro AGI. Mas para um simples SELECT, pra
>>>>>>> que está começando e mais facil no plano de discagem mesmo.
>>>>>>>
>>>>>>>  2009/11/18 Eder Souza <eder.souza em bsd.com.br>
>>>>>>>
>>>>>>>> Meu Deus pq você fez isso huahua ....
>>>>>>>>
>>>>>>>> Trofeu Gambiarra huahuahua !!
>>>>>>>>
>>>>>>>> Brincadeira a parte mas olha só um simples AGI feito em em sua
>>>>>>>> linguagem preferida mataria essa sua bagunça no plano de discagem, dentro
>>>>>>>> dele seria só inserir uma rotina de consultas no banco de dados e depois
>>>>>>>> dentro deste mesmo agi contruir sua URA, tenho várias destas rodando aqui,
>>>>>>>> se precisar da um grito !!!
>>>>>>>>
>>>>>>>> Eng Eder de Souza
>>>>>>>>
>>>>>>>> 2009/11/18 Daviramos Roussenq Fortunato <daviramosrf em gmail.com>
>>>>>>>>
>>>>>>>> Porque não faz o Select direto no MySQL pelo Asterisk sem o AGI?
>>>>>>>>> Pode usar o ODBC e fazer em qualquer banco, com a func_odbc.
>>>>>>>>>
>>>>>>>>> http://www.voip-info.org/wiki/view/Asterisk+func+func_odbc
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2009/11/18 Andre Emerich <aemerich em gmail.com>
>>>>>>>>>
>>>>>>>>> Itamar,
>>>>>>>>>> Se eu tivesse achado no Google algo que tivesse entendido, não
>>>>>>>>>> teria postado aqui pedindo ajuda..
>>>>>>>>>>
>>>>>>>>>> André,
>>>>>>>>>> Segue..
>>>>>>>>>>
>>>>>>>>>> [URA_BD]
>>>>>>>>>> exten => s,1,Answer
>>>>>>>>>> exten => s,n,Playback(custom/BD/BD_INFO_boatarde)
>>>>>>>>>> exten => s,n,Playback(custom/BD/BD_INFO_bv)
>>>>>>>>>> exten => s,n,Read(CODE,,,,,5)
>>>>>>>>>> exten => s,n,Noop( ## ${CODE} ## )
>>>>>>>>>> exten => s,n,System(echo "SELECT codigo FROM clientes WHERE codigo
>>>>>>>>>> = \'${CODE}\' LIMIT 1" > /var/lib/asterisk/agi-bin/BDINFO/select.sql)
>>>>>>>>>> exten => s,n,System(mysql bd_info -u root -ppassword <
>>>>>>>>>> /var/lib/asterisk/agi-bin/BDINFO/select.sql >
>>>>>>>>>> /var/lib/asterisk/agi-bin/BDINFO/resultado.txt)
>>>>>>>>>> exten => s,n,Noop( ## ${STATUS} ##)
>>>>>>>>>> exten => s,n,GotoIf($[${STATUS}!=""]?20:60)
>>>>>>>>>> exten => s,20,Playback(custom/BD/BD_INFO_senha)
>>>>>>>>>> exten => s,n,Read(SENHA,,,,,5)
>>>>>>>>>> exten => s,n,Noop( ## ${SENHA} ## )
>>>>>>>>>> exten => s,n,System(echo "SELECT saldo FROM clientes WHERE codigo
>>>>>>>>>> = \'${CODE}\' AND senha = \'${SENHA}\' LIMIT 1" >
>>>>>>>>>> /var/lib/asterisk/agi-bin/BDINFO/select_senha.sql)
>>>>>>>>>> exten => s,n,System(mysql bd_info -u root -ppassword <
>>>>>>>>>> /var/lib/asterisk/agi-bin/BDINFO/select_senha.sql >
>>>>>>>>>> /var/lib/asterisk/agi-bin/BDINFO/resultado_senha.txt)
>>>>>>>>>> exten => s,n,System(grep -n .
>>>>>>>>>> /var/lib/asterisk/agi-bin/BDINFO/resultado_senha.txt | grep ^2: | cut -f2
>>>>>>>>>> -d":"  > /var/lib/asterisk/agi-bin/BDINFO/status_senha.txt)
>>>>>>>>>> exten =>
>>>>>>>>>> s,n,ReadFile(STATUS_SENHA=/var/lib/asterisk/agi-bin/BDINFO/status_senha.txt,1)
>>>>>>>>>> exten => s,n,Noop( ## ${STATUS_SENHA} ##)
>>>>>>>>>> exten => s,n,GotoIf($[${STATUS_SENHA}!=""]?80:60)
>>>>>>>>>> exten => s,n,Hangup()
>>>>>>>>>> exten => s,60,Playback(vm-goodbye)
>>>>>>>>>> exten => s,n,Hangup()
>>>>>>>>>> exten => s,80,Playback(custom/BD/BD_INFO_saldo)
>>>>>>>>>> exten => s,n,Saydigits(${STATUS_SENHA})
>>>>>>>>>> exten => s,n,Set(TIMEOUT=10)
>>>>>>>>>> exten => s,83,Background(custom/BD/BD_INFO_opcoes)
>>>>>>>>>> exten => s,n,WaitExten(5)
>>>>>>>>>> exten => 1,1,Goto(URA_BD_CONSULTA,s,1)
>>>>>>>>>> exten => 4,1,Noop(DISCA PARA ATENDIMENTO)
>>>>>>>>>> exten => t,1,Goto(URA_BD,s,83)
>>>>>>>>>> exten => i,1,Goto(URA_BD,s,83)
>>>>>>>>>> exten => s,n,Hangup()
>>>>>>>>>>
>>>>>>>>>> [URA_BD_CONSULTA]
>>>>>>>>>> exten => s,1,Playback(custom/BD/BD_INFO_CPF_CNPJ)
>>>>>>>>>> exten => s,n,Read(CPF_CNPJ,,,,,5)
>>>>>>>>>> exten => s,n,Noop( ## ${CPF_CNPJ} ## )
>>>>>>>>>> exten => s,n,System(echo "SELECT cpf FROM base_consulta WHERE cpf
>>>>>>>>>> = \'${CPF_CNPJ}\' LIMIT 1" >
>>>>>>>>>> /var/lib/asterisk/agi-bin/BDINFO/select_cpfcnpj.sql)
>>>>>>>>>> exten => s,n,System(mysql bd_info -u root -ppassword <
>>>>>>>>>> /var/lib/asterisk/agi-bin/BDINFO/select_cpfcnpj.sql >
>>>>>>>>>> /var/lib/asterisk/agi-bin/BDINFO/resultado_cpfcnpj.txt)
>>>>>>>>>> exten => s,n,System(grep -n .
>>>>>>>>>> /var/lib/asterisk/agi-bin/BDINFO/resultado_cpfcnpj.txt | grep ^2: | cut -f2
>>>>>>>>>> -d":" | cut -f1 -d"\ " >
>>>>>>>>>> /var/lib/asterisk/agi-bin/BDINFO/status_cpfcnpj.txt)
>>>>>>>>>> exten =>
>>>>>>>>>> s,n,ReadFile(STATUS_CPF_CNPJ=/var/lib/asterisk/agi-bin/BDINFO/status_cpfcnpj.txt)
>>>>>>>>>> exten => s,n,Noop( ## STATUS CPF ${STATUS_CPF_CNPJ} ## )
>>>>>>>>>> ;exten => s,n,Agi(BDINFO/consulta_cpf.php|${CPF_CNPJ})
>>>>>>>>>> ;exten => s,n,Noop(${stdout})
>>>>>>>>>> exten => s,n,GotoIf($[${STATUS_CPF_CNPJ}!=""]?20:60)
>>>>>>>>>> exten => s,20,Playback(beep)
>>>>>>>>>> exten => s,n,Hangup()
>>>>>>>>>> exten => s,60,Playback(vm-goodbye)
>>>>>>>>>> exten => s,n,Hangup()
>>>>>>>>>>
>>>>>>>>>> A parte do AGI está comentado, pois como não veio o resultado
>>>>>>>>>> esperado, não estou usando..
>>>>>>>>>>
>>>>>>>>>> Valeu..
>>>>>>>>>>
>>>>>>>>>> 2009/11/17 andre <andre em sertelinfo.com.br>
>>>>>>>>>>
>>>>>>>>>>>    André
>>>>>>>>>>>
>>>>>>>>>>> Eu utilizo um script em agi que faz isso que deseja...
>>>>>>>>>>>
>>>>>>>>>>> Me passe os dados que crio e coloco aqui explicando pra você..
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> *De:* asteriskbrasil-bounces em listas.asteriskbrasil.org [mailto:
>>>>>>>>>>> asteriskbrasil-bounces em listas.asteriskbrasil.org] *Em nome de *Andre
>>>>>>>>>>> Emerich
>>>>>>>>>>> *Enviada em:* terça-feira, 17 de novembro de 2009 20:54
>>>>>>>>>>> *Para:* asteriskbrasil em listas.asteriskbrasil.org
>>>>>>>>>>> *Assunto:* [AsteriskBrasil] AGI
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Pessoal,
>>>>>>>>>>>
>>>>>>>>>>> Preciso de uma ajuda com AGI.
>>>>>>>>>>> Tenho um Select que faço num MySql.
>>>>>>>>>>> O resultado, tenho que ler em uma variavel..
>>>>>>>>>>> Estava fazendo isto com o System (para dar um echo num txt com a
>>>>>>>>>>> instrução SQL, para executar o SELECT, para dar um GREP e ler somente a
>>>>>>>>>>> segunda linha do arquivo) e uso o ReadFile para ler o resultado.
>>>>>>>>>>> Porém se sempre voltasse a mesma quantidade de digitos, eu
>>>>>>>>>>> poderia colocar a quantidade de caracteres como opção no ReadFile.
>>>>>>>>>>> Porém, como é variavel, eu preciso arrumar alguma outra forma..
>>>>>>>>>>>
>>>>>>>>>>> Comecei a usar o AGI com PHP.
>>>>>>>>>>> Já consigo fazer o SELECT, mas não consigo passar o resultado
>>>>>>>>>>> para o Asterisk.
>>>>>>>>>>> Li algo sobre STDIN e STDOUT, mas não tive progresso..
>>>>>>>>>>>
>>>>>>>>>>> Como eu poderia fazer?
>>>>>>>>>>> Alguém tem alguma idéia?
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> André Emerich
>>>>>>>>>>> MSN - aemerich em gmail.com
>>>>>>>>>>> (51) 8122-6423
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>         http://www.voipmania.com.br
>>>>>>>>>>> Telefone IP sem fio Gigaset A580IP por 6 x R$59,90.
>>>>>>>>>>>         Promoção por tempo limitado!
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Lista de discussões AsteriskBrasil.org
>>>>>>>>>>> AsteriskBrasil em listas.asteriskbrasil.org
>>>>>>>>>>> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>>  André Emerich
>>>>>>>>>> MSN - aemerich em gmail.com
>>>>>>>>>> (51) 8122-6423
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>>         http://www.voipmania.com.br
>>>>>>>>>> Telefone IP sem fio Gigaset A580IP por 6 x R$59,90.
>>>>>>>>>>         Promoção por tempo limitado!
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Lista de discussões AsteriskBrasil.org
>>>>>>>>>> AsteriskBrasil em listas.asteriskbrasil.org
>>>>>>>>>> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Atenciosamente
>>>>>>>>> Daviramos Roussenq Fortunato
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>>         http://www.voipmania.com.br
>>>>>>>>> Telefone IP sem fio Gigaset A580IP por 6 x R$59,90.
>>>>>>>>>         Promoção por tempo limitado!
>>>>>>>>> _______________________________________________
>>>>>>>>> Lista de discussões AsteriskBrasil.org
>>>>>>>>> AsteriskBrasil em listas.asteriskbrasil.org
>>>>>>>>> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>>         http://www.voipmania.com.br
>>>>>>>> Telefone IP sem fio Gigaset A580IP por 6 x R$59,90.
>>>>>>>>         Promoção por tempo limitado!
>>>>>>>> _______________________________________________
>>>>>>>> Lista de discussões AsteriskBrasil.org
>>>>>>>> AsteriskBrasil em listas.asteriskbrasil.org
>>>>>>>> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Atenciosamente
>>>>>>> Daviramos Roussenq Fortunato
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>>         http://www.voipmania.com.br
>>>>>>> Telefone IP sem fio Gigaset A580IP por 6 x R$59,90.
>>>>>>>         Promoção por tempo limitado!
>>>>>>> _______________________________________________
>>>>>>> Lista de discussões AsteriskBrasil.org
>>>>>>> AsteriskBrasil em listas.asteriskbrasil.org
>>>>>>> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>>         http://www.voipmania.com.br
>>>>>> Telefone IP sem fio Gigaset A580IP por 6 x R$59,90.
>>>>>>         Promoção por tempo limitado!
>>>>>> _______________________________________________
>>>>>> Lista de discussões AsteriskBrasil.org
>>>>>> AsteriskBrasil em listas.asteriskbrasil.org
>>>>>> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Atenciosamente
>>>>> Daviramos Roussenq Fortunato
>>>>>
>>>>> _______________________________________________
>>>>>         http://www.voipmania.com.br
>>>>> Telefone IP sem fio Gigaset A580IP por 6 x R$59,90.
>>>>>         Promoção por tempo limitado!
>>>>> _______________________________________________
>>>>> Lista de discussões AsteriskBrasil.org
>>>>> AsteriskBrasil em listas.asteriskbrasil.org
>>>>> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> André Emerich
>>>> MSN - aemerich em gmail.com
>>>> (51) 8122-6423
>>>>
>>>> _______________________________________________
>>>>         http://www.voipmania.com.br
>>>> Telefone IP sem fio Gigaset A580IP por 6 x R$59,90.
>>>>         Promoção por tempo limitado!
>>>> _______________________________________________
>>>> Lista de discussões AsteriskBrasil.org
>>>> AsteriskBrasil em listas.asteriskbrasil.org
>>>> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>>>
>>>
>>>
>>> _______________________________________________
>>>         http://www.voipmania.com.br
>>> Telefone IP sem fio Gigaset A580IP por 6 x R$59,90.
>>>         Promoção por tempo limitado!
>>> _______________________________________________
>>> Lista de discussões AsteriskBrasil.org
>>> AsteriskBrasil em listas.asteriskbrasil.org
>>> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>>
>>
>>
>>
>> --
>> André Emerich
>> MSN - aemerich em gmail.com
>> (51) 8122-6423
>>
>> _______________________________________________
>>         http://www.voipmania.com.br
>> Telefone IP sem fio Gigaset A580IP por 6 x R$59,90.
>>         Promoção por tempo limitado!
>> _______________________________________________
>> Lista de discussões AsteriskBrasil.org
>> AsteriskBrasil em listas.asteriskbrasil.org
>> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>
>
>
> _______________________________________________
>         http://www.voipmania.com.br
> Telefone IP sem fio Gigaset A580IP por 6 x R$59,90.
>         Promoção por tempo limitado!
> _______________________________________________
> Lista de discussões AsteriskBrasil.org
> AsteriskBrasil em listas.asteriskbrasil.org
> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>



-- 
André Emerich
MSN - aemerich em gmail.com
(51) 8122-6423
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20091118/e1dbf5eb/attachment-0001.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil