Início > 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

      https://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.

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

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: