<div dir="ltr"><div><div>É mais ou menos isso aí mesmo, Anivaldo. Eu mudaria 2 coisas se fosse implantar essa sua implementação em um ambiente de alto tráfego:<br><br></div>1. Em vez de usar o DB_EXISTS eu usaria o DB e verificaria se a variável está vazia, assim eu já teria a operadora caso exista, consultando apenas uma vez o banco ao invés de duas.<br><br></div>2. Não sei como você está fazendo a consulta no seu AGI, mas em ambiente de alto tráfego eu faria a consulta usando SIP (caso o serviço contratado ofereça este tipo de consulta) ou importaria a base da portabilidade em um banco local.<br></div><div class="gmail_extra"><br><div class="gmail_quote">Em 9 de maio de 2015 02:16, Anivaldo <span dir="ltr"><<a href="mailto:w.nelson@ig.com.br" target="_blank">w.nelson@ig.com.br</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
Boa noite pessoal<br>
<br>
Estou eu aqui voltando pra dar feedback e deixar o registro na lista
para futuras consultas.<br>
Obrigado a todos pela ajuda.<br>
Consegui até uma conta no servidor do Everton pra fazer consultas
grátis. Obrigado cara!<br>
Eu preferi seguir a sugestão do Thiago Coutinho e usar o banco do
asterisk (AstDB) para que fique o mais simples possível.<br>
<br>
Meu extensions.conf ficou assim: <br>
<br>
exten => _X.,1,NoOp(--> DE ${CALLERID(num)} PARA ${EXTEN}
<--)<br>
same => n,Set(OPERADORA=${DB_EXISTS(portabilidade/${EXTEN})})<br>
same => n,GoToIf($["${OPERADORA}" =
"1"]?consultado,${EXTEN},1:novo) <br>
same => n(novo),Noop( --> NUMERO NOVO <-- )<br>
same => n,AGI(consulta_op.php,${EXTEN})<br>
same => n,NoOp(--> ${OPERADORA} <--)<br>
same => n,Set(CDR(userfield)=${OPERADORA})<br>
same => n,Set(DB(portabilidade/${EXTEN})=${OPERADORA})<br>
same => .... continuação para sair pelo chan_dongle...<br>
same => n,HangUp()<br>
<br>
Caso já tenha havido consulta, vai para o contexto [consultado]<br>
<br>
[consultado]<br>
exten => _X.,1,Noop( ---> CONSULTADO <--- )<br>
same => n,Set(OPERADORA=${DB(portabilidade/${EXTEN})})<br>
same => n,Set(CDR(userfield)=${OPERADORA})<br>
same => n,NoOp(--> ${OPERADORA} <--)<br>
same => ... continuação para sair pelo chan_dongle <br>
same => n,HangUp()<br>
<br>
No final do dia posso colocar o comando asterisk -x 'database
deltree portabilidade' na cron pra apagar a family portabilidade e,
com isso, zerar tudo para re-começar no dia seguinte.<br>
<br>
E ai ? Tá bom ?? Aceito sugestões.<br>
<br>
Obrigado novamente pela colaboração dos colegas de lista<span class="HOEnZb"><font color="#888888"><br>
<br>
Anivaldo<br>
</font></span></div>
<br>_______________________________________________<br>
WORKOFFEE KHOMP: em Junho serão 2 edições do workshop<br>
gratuito da Khomp: dia 11 em Brasília, e dia 18 em Curitiba<br>
Aproveite e conheça os lançamentos: EBS Server PRO e UMG 100<br>
Garanta sua vaga e saiba mais em: <a href="http://www.workoffee.com.br" target="_blank">www.workoffee.com.br</a><br>
_______________________________________________<br>
DIGIVOICE: Fabricante pioneiro em Banco de Canais e Placas E1, GSM, FXO e FXS para Asterisk e Elastix. Temos Cursos de Telefonia IP e Asterisk.<br>
Construa soluções de PABX IP com produtos DigiVoice - visite <a href="http://www.digivoice.com.br" target="_blank">www.digivoice.com.br</a><br>
_______________________________________________<br>
Para remover seu email desta lista, basta enviar um email em branco para <a href="mailto:asteriskbrasil-unsubscribe@listas.asteriskbrasil.org">asteriskbrasil-unsubscribe@listas.asteriskbrasil.org</a><br></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature">Thiago Coutinho<br><br>"O povo não deveria temer o governo. O governo é quem deveria temer o povo."<br>V de Vingança</div>
</div>