[AsteriskBrasil] Dúvidas com Acesso a banco de dados
Guilherme Rezende
asterisk em guilherme.eti.br
Sexta Abril 5 09:12:47 BRT 2013
Exemplo 100% funcional. Esse exemplo consulta se o callerid está no
banco e em caso de sim, toma uma decisão, que no caso envia um SMS e
envia a ligação p/ telefonista.
Aconselho e estudar mais a fundo sobre o caso, pois estou postando
apenas a receita de bolo e se não entender, realmente vai complicar.
DialPlan:
exten => _5199,1,Answer
exten => _5199,2,Wait(1)
exten => _5199,3,AGI(teste.php)
exten => _5199,4,NoOp(Numero=${RETORNO})
exten => _5199,5,NoOp(Consulta=${CONSULTA})
exten => _5199,6,GoToIf($[${CONSULTA} = 1]?9)
exten => _5199,7,Dial(SIP/${EXTEN},40,tTrwWkK)
exten => _5199,8,Hangup
exten => _5199,9,DgSendSMS(r1,02187813860,'Alarme de Ligacao Entrante do
Numero ${RETORNO} em BlackList !!')
exten => _5199,10,Goto(liberados,5150,1)
código teste.php
#!/usr/local/bin/php
<?php
require('phpagi.php');
$AGI = new AGI();
//$parametro=$argv[1];
$parametro = $AGI->request['agi_callerid'];
$MYSQL_HOST = 'localhost';
$MYSQL_PORT = '3306';
$MYSQL_USER = 'root';
$MYSQL_PASS = 'simples01';
// link com banco de dados
$link = mysql_pconnect("$MYSQL_HOST:$MYSQL_PORT", $MYSQL_USER,
$MYSQL_PASS);
if(!$link){
echo "Erro ao conectar no servidor mysql
$MYSQL_HOST:$MYSQL_PORT :" . mysql_error();
exit();
}
$select = "select * from banco1.cbqclientes where telefone = '" .
$parametro . "'";
$blacklist = mysql_query($select, $link) or die(mysql_error());
$row_blacklist = mysql_fetch_assoc($blacklist);
$totalRows_blacklist = mysql_num_rows($blacklist);
if($totalRows_blacklist > 0){
$AGI->set_variable("RETORNO", $parametro);
$AGI->set_variable("CONSULTA", $totalRows_blacklist);
//$AGI->set_variable("CONSULTA", 'verdade');
$AGI->exec("NoOp", "verdade");
}else{
$AGI->set_variable("RETORNO", $parametro);
$AGI->set_variable("CONSULTA", $totalRows_blacklist);
//$AGI->set_variable("CONSULTA", 'falso');
$AGI->exec("NoOp", "falso");
}
?>
Em 05/04/2013 08:25, JefãoKPTA JOKER escreveu:
> Além da ideia do Roger vc pode fazer o Asterisk se conectar ao BD
> usando funções ODBC, ficaria tipo assim:
>
> exten => _X.,1,Read(validacaodesenha,beep,6)
> same => n,Set(SENHA=${ODBC_PASS(${CALLERID(num)})})
> same => n,GotoIf($[${VALIDACAODESENHA} = ${SENHA}]?ok:errado)
> same => n(ok),Goto(menu1,,1)
> same => n(errado),Playback(errado)
> same => n,Goto(inicio,,1)
>
> Se interessar t mando um tuto dos passos.
>
> Falows
>
> ------------------------------------------------------------------------
> Date: Fri, 5 Apr 2013 01:20:06 -0300
> From: rogerwinter em gmail.com
> To: asteriskbrasil em listas.asteriskbrasil.org
> Subject: Re: [AsteriskBrasil] Dúvidas com Acesso a banco de dados
>
> Daniel,
>
> Acredito que a melhor maneira de implementar esse tipo de
> funcionaliidade seja utilizando AGI.
> Você, pode optar por fazer com a linguagem que preferir (PHP, PERL,
> SHELL,..).
> A linguagem fica responsável por fazer a conexão e as consultas na
> base, voce só precisa mandar os parametros (no seu caso, o CID e a
> Senha) e retornar valores ou executar comandos conforme a sua necessidade.
>
> Ex:
> exten => _X.,1,Read(validacaodesenha,beep,6)
> same => n,Set(SENHA=123456)
> *same => n,AGI(validarcliente.php,${CALLERID(num)},${SENHA});*
> same => n(ok),Goto(menu1,,1)
> same => n(errado),Playback(errado)
>
>
> Att,
>
>
> Em 5 de abril de 2013 00:28, Daniel Feliciano
> <danielfelicianoseg em hotmail.com
> <mailto:danielfelicianoseg em hotmail.com>> escreveu:
>
> Pessoal gostaria de implantar um sistema simples com consulta ao
> um BD (poderia ser Mysql mesmo) no Asterisk, mas devido ao pouco
> conhecimento em BD, teho minhas duvidas. Bom, gostaria de fazer o
> seguinte.
>
> 1° - Criar 3 usuarios, onde constariam seu n° telefonico + senha
> 2° - O usuario ao ligar para o Asterisk, tem que coincidir a senha
> com o n° tel. cadastrado, ou seja, pode até digitar a senha certa,
> mas se estiver em outro tel. nao rola...
>
> 3° - em caso de sucesso, a central acesso o BD e diz qts vezes vc
> ja ligou
> OBS: Paralelo a isso, gostaria de futuramente colocar outros tipos
> de dados, como saldo, dizer o nome do usuario etc
>
> O que me vem na minha cabeca a nivel de dialplan e isso:
>
> exten => _X.,1,Read(validacaodesenha,beep,6)
> same => n,Set(SENHA=123456)
> same => n,GotoIf($[${VALIDACAODESENHA} = ${SENHA}]?ok:errado)
> same => n(ok),Goto(menu1,,1)
> same => n(errado),Playback(errado)
> same => n,Goto(inicio,,1)
>
> Nao consigo enxergar onde eu faco o comparativo (faco para me
> conectar) com o BD para a verificacao do TEL+SENHA cadastrados....
> e quais seriam os itens de preenchimento essenciais/obrigatorios
> no Mysql (estou usando o phpmyadmin para facilitar).
>
> Nessa altura, qualquer tipo de luz ja é valida p/ dar
> continuidade. Agradeco a atencao de todos.
> Abs
>
> _______________________________________________
> KHOMP: completa linha de placas externas FXO, FXS, GSM e E1;
> Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7;
> Intercomunicadores para acesso remoto via rede IP. Conheça em
> www.Khomp.com <http://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 <http://www.digivoice.com.br>
> _______________________________________________
> ALIGERA -- Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7.
> Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express.
> Channel Bank -- Appliance Asterisk - Acesse www.aligera.com.br
> <http://www.aligera.com.br>.
> _______________________________________________
> Para remover seu email desta lista, basta enviar um email em
> branco para asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
> <mailto:asteriskbrasil-unsubscribe em listas.asteriskbrasil.org>
>
>
>
>
> --
> --
> Roger Pitigliani
> rogerwinter em gmail.com <mailto:rogerwinter em gmail.com>
> Skype: roger.pitigliani
>
> _______________________________________________ KHOMP: completa linha
> de placas externas FXO, FXS, GSM e E1; Media Gateways de 1 a 64 E1s
> para SIP com R2, ISDN e SS7; Intercomunicadores para acesso remoto via
> rede IP. Conhe?a em 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
> _______________________________________________ ALIGERA ? Fabricante
> nacional de Gateways SIP-E1 para R2, ISDN e SS7. Placas de 1E1, 2E1,
> 4E1 e 8E1 para PCI ou PCI Express. Channel Bank ? Appliance Asterisk -
> Acesse www.aligera.com.br.
> _______________________________________________ Para remover seu email
> desta lista, basta enviar um email em branco para
> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>
>
> _______________________________________________
> KHOMP: completa linha de placas externas FXO, FXS, GSM e E1;
> Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7;
> Intercomunicadores para acesso remoto via rede IP. Conheça em 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
> _______________________________________________
> ALIGERA -- Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7.
> Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express.
> Channel Bank -- Appliance Asterisk - Acesse www.aligera.com.br.
> _______________________________________________
> Para remover seu email desta lista, basta enviar um email em branco para asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20130405/db7ccf2e/attachment-0001.htm
Mais detalhes sobre a lista de discussão AsteriskBrasil