Portabilidade + DBO + Descobrir Operadoras
Já faz um bom tempo que tento rotear chamadas de acordo com a operadora na qual o número discado pertence, as rotas ficaram uma bagunça com a chegada da portabilidade, como não tenho dinheiro para pagar um DBO tentei improvisar.
O Script feito em Python ainda falha algumas vezes, mas já é um começo o correto seria treinar o banco de dados do gocr para capturar o captcha com mais precisão mas nao estou tendo tempo de brincar com isso…
# -*- coding: iso-8859-1 -*-
#Eder de Souza 23/11/2009
import re
import ClientCookie
import commands
import sys
import os
import re
inc = 0
MaxTentativas = 15
tel=sys.argv[1]
while inc < MaxTentativas:
inc = inc + 1
cj = ClientCookie.MozillaCookieJar()
opener = ClientCookie.build_opener(ClientCookie.HTTPCookieProcessor(cj))
ClientCookie.install_opener(opener)
r = ClientCookie.urlopen(“http://consultanumero.abr.net.br:8080/consultanumero/jCaptcha.do?metodo=carregar“)
fp = open(‘Captcha.jpg’,'w’)
fp.write(r.read())
fp.close()
cj.save(“infer”, ignore_discard=True, ignore_expires=True)
commands.getoutput(‘convert Captcha.jpg Captcha.png’)
commands.getoutput(‘pngtopnm Captcha.png > Captcha.pnm’)
commands.getoutput(‘ppmchange -remainder black -closeness 20 rgbi:.91/.8/.58 white rgbi:.8/.8/.91 white rgbi:.69/.91/.91 white Captcha.pnm > Captcha_End.pnm’)
captcha = commands.getoutput(‘gocr -C a-zA-Z0-9 -m 2 -a 90 -d 2 Captcha_End.pnm’)
rmspace = captcha.replace(‘ ‘, ”)
rmreturn = rmspace.replace(‘\n’, ”)
rmunderline = rmreturn.replace(‘_’,”)
res = re.search(‘([a-zA-Z0-9]+)’, rmunderline)
result = res.group(1)
cj = ClientCookie.MozillaCookieJar()
cj.load(“infer”, ignore_discard=True, ignore_expires=True)
opener = ClientCookie.build_opener(ClientCookie.HTTPCookieProcessor(cj))
ClientCookie.install_opener(opener)
pagina = opener.open(‘http://consultanumero.abr.net.br:8080/consultanumero/consultarTnSemLogin.do?tn=’+tel+’&captcha=’+result+’&metodo=consultar’).read()
if “Nome da prestadora” in pagina:
pagina = pagina.replace(‘<br>’,”)
find = re.search(‘Nome da prestadora: (.*)’, pagina)
operadora = find.group(1)
print operadora
sys.exit()
segue uma tela dele funcionando:
Até mais
Eder

Parabéns pelo script! Muito legal mesmo, mas vê se pára com esse negócio de Python…
Vc é muito loko !!! Parabéns brow…
Abraços
o meu nao funcionou porque nao achou um tal de clientcookie na hora da importacao.
se puder ajudar agradeço
se estiver em algum solo debiano execute
apt-get install python-clientcookie
Lembrando que além desta dependencia você tera que compilar o gocr baixe o source e compile no braço !!
[]‘s
Eng Eder de Souza
sinceramente, ta mto dificil pra mim :S
to tentando instalar no trixbox ou no elastix… valeu
Olá sei que vc ta tentando de tudo hehehe mas o script deste post não tem a finalidade do uso em servidores em produção pois o mesmo é um protótipo, a quebra do captcha em alguns casos é bem demorado tornando a saida da rota para as aperadoras um tanto desgastante para usuários finais…
Para tal eu postei um script rápido perfeitamente utilizável em produção neste post
http://ederwander.wordpress.com/2010/01/15/agi-portabilidade-para-numeros-moveis-em-asterisk
Porem este só retorna operadoras de celulares, este sim pode ser utilizado em seu Servidor sem impacto para os usuários finais.
Para isto funcionar vc precisa instalar algumas aplicações;
Quem usa Linux CentOS/ RedHAT pode fazer isso com YUM. Executar os comandos abaixo. Para Debian vc precisa usar APT-get
yum install python-setuptools
easy_install ClientCookie
yum install tetex*
yum install ImageMagick
Baixar GOCR daqui http://www-e.uni-magdeburg.de/jschulen/ocr/gocr-0.49.tar.gz
Executar os comandos
wget http://www-e.uni-magdeburg.de/jschulen/ocr/gocr-0.49.tar.gz
tar -zxf gocr-0.49.tar.gz
cd gocr-0.49/bin
./create_db # isso vai construir o banco de dados do GOCR para reconhecimento de imagens
agora vc pode executar o script do Ederwander ( antes disso precisa modificar as aspas porque o forum esta reescrevendo elas e o script acaba de morrer com erro )
Cheers,
Lu