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
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