Inicial > Programação, Telecom, Visao Computacional > Portabilidade + DBO + Descobrir Operadoras

Portabilidade + DBO + Descobrir Operadoras

Olá Povo !!

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&#8217;).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

  1. novembro 30, 2009 às 1:47 pm

    Parabéns pelo script! Muito legal mesmo, mas vê se pára com esse negócio de Python…

  2. Fernando
    novembro 30, 2009 às 3:02 pm

    Vc é muito loko !!! Parabéns brow…
    Abraços

  3. dudu bettega
    abril 13, 2010 às 12:58 am

    o meu nao funcionou porque nao achou um tal de clientcookie na hora da importacao.
    se puder ajudar agradeço

    • ederwander
      abril 13, 2010 às 12:13 pm

      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

  4. dudu bettega
    abril 19, 2010 às 2:05 am

    sinceramente, ta mto dificil pra mim :S
    to tentando instalar no trixbox ou no elastix… valeu

    • ederwander
      abril 19, 2010 às 2:25 pm

      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

      AGI Portabilidade para números móveis em Asterisk

      Porem este só retorna operadoras de celulares, este sim pode ser utilizado em seu Servidor sem impacto para os usuários finais.

  5. Lu
    novembro 12, 2010 às 11:59 am

    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

  1. No trackbacks yet.

Deixe um comentário