Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

/portabilidade/instalacao

 

...

INFORMAÇÕES DE DISPONIBILIDADE E REQUISITOS

Para requisitar uma nova instalação da base de portabilidade é necessário entrar em contato com o N.O.C. da DirectCall,

solicitando um backup completo da base BDO atualizada. Este arquivo de backup será disponibilizado na área de atualização:

Para realizar o download atualizado, é necessário disponibilizar o IP de origem que irá realizar o download,

apenas o IP fornecido terá acesso ao conteúdo.

O Download estará condicionado a uma velocidade máxima de 256Kbps o que em média deve demorar em torno de 15 à 20 minutos.

 

O aquivo será disponibilizado de forma compactada utilizando gzip e contem aproximadamente 200MBs. Descompactado o aquivo

SQL deve ocupar 1.3GBs e contem uma cópia atualizada das seguintes tabelas:

  • bilhetesPortabilidade - Tabela com milhões de registros de portabilidade, que deve ser atualizada diariamente;
  • csp_operadoras Tabela com Código de Seleção de Operadora;

  • operadoras Tabela com a lista de todas as operadoras;

  • prefixos_operadorasTabela que relaciona operadora com seus prefixos originais;

  • updateControl Tabela de controle de atualização de bilhetes de portabilidade;

INSTALAÇÃO MANUAL DA BASE DE DADOS BDO

Após realizar o download e descompactá-lo será necessário inserir as tabelas e seus conteúdos em um banco de dados criados no mysql.

 

O conteúdo SQL do aquivo de backup contempla a instrução “DROP TABLE IF EXISTS” o que significa que a tabela será removida

previamente caso exista, para que depois seja feita a inserção dos dados.

 

Diversas técnicas de inserção deste aquivo SQL podem ser utilizadas para concluir o processo de inflar a base de dados. Aqui vamos

abordar a inserção direta via console conforme os passos:

 

  • Criar o banco de dados:

# mysql -u root -h localhost -p

Enter password:

mysql> create database bdo;

Query OK, 1 row affected (0.00 sec)

mysql> quit

Bye

 

  • Inserir os dados do aquivo no banco criado

# mysql -u root -h localhost -proot BDO < bdo_install.sql

Este processo de inserção dos dados deve demorar aproximadamente 5 minutos.

 

O processo de atualização da base BDO deve ser feita diariamente. Porém para poder realizar o processo de atualização é necessário

solicitar ao N.O.C. da DirectCall a liberação do IP de origem para acesso ao repositório de atualização.

 

O repositório de atualização só está disponível fora do horário comercial em um período restrito da 21h às 05h.

Você deve programar seu sistema para realizar a atualização durante este período de disponibilidade.

O controle de atualização é realizado na tabela updateControl, mantendo a informação dos arquivos de atualização baixados e

inseridos na tabela bilhetePortabilidade.

 

mysql> select * from updateControl order by LAST_UPDATE desc; 

ATUALIZAÇÃO MANUAL DA BASE BDO

DESCRIÇÃO DAS TABELAS

Tabela bilhetesPortabilidade

Image Added

 

Tabela operadoras

Image Added


Tabela prefixos_operadoras

Image Added

Tabela csp_operadoras


Image Added


 

ATUALIZAÇÃO VIA SCRIPT DA BASE BDO

BUSCA OPERADORA

Busca por Número

 

Para realizar busca por número descobrindo qual sua operadora de origem e qual sua operadora atual o processo pode ser feito da seguinte forma:

  • A busca deve ser sempre realizada incluindo-se o DDD do número;

  • Identifica-se o prefixo do número desejado (primeiros 6 dígitos do número, incluindo o DDD) para encontrar a operadora de origem. Por exemplo:

    • Número = 1120617756

    • DDD = 11

    • Prefixo = 112026

    • Sulfixo = 7756

  • Realiza-se a busca do EOT da operadora de origem baseado no prefixo: 

    mysql> select EOT from prefixos_operadoras where prefixo = SUBSTRING(1120617756,1,6);

    +-----+

    | EOT |

    +-----+

    | 011 |

    +-----+

 

  • Com o EOT da operadora, podemos encontrar os dados da operadora de origem, o campo holding representa o nome do grupo controlador da operadora:

mysql> select * from operadoras where EOT = '011' \G

*************************** 1. row ***************************

eot: 11

nome_fantasia: TELEFONICA SP - Setor 31

razao_social: Telecomunicações de São Paulo S.A.

csp: 15

tipo_servico: STFC

modalidade_banda: Local

area_prestacao: Setor 31

holding: Telefônica Brasil

 

  • Para procurar portabilidade para esse número é necessário buscar na tabela bilhetesPortabilidade, esta tabela guarda o registro histórico de

    portabilidades para o numero pesquisado, limitando-se a apenas ao resultado mais recente:

 

mysql> SELECT EOT, DATA_ATIVACAO_DESATIVACAO as DATA FROM bilhetesPortabilidade_tmp where

TN_BILHETE_PORTABILIDADE = '1120617756' ORDER BY DATA_ATIVACAO_DESATIVACAO DESC LIMIT 1;

+-----+---------------------+

| EOT | DATA |

+-----+--------

+

-------------+

| 13 | 2014-11-17 22:00:00 |

+-----+----------

+

-----------+

| LAST_UPDATE | UPDATE_TYPE | FILE_NAME | FILE_SIZE |

 

  • Neste caso a operadora a qual o número pertence atualmente é a de EOT 13:

mysql> select * from operadoras where EOT = '13' \G

eot: 13

nome_fantasia: TELEFONICA SP - Setor 34

razao_social: Telecomunicações de São Paulo S.A

csp: 15

tipo_servico: STFC

modalidade_banda: Local

area_prestacao: Setor 34

holding: Telefônica Brasil


  • Busca por Codigo de Seleção da Operadora:

mysql> SELECT operadora, csp as CODE_OPR from csp_operadoras where eot=430;

 +-----------+----------+

| operadora | CODE_OPR |

+-----------

--

+----------

--

+

| Claro | 21 |

+-----------

--

+----------

-

+

| 2014-11-21 10:01:56 | 1 | INCR-20141121100000.csv | 322964 |
| 2014-11-21 00:01:44 | 1 | INCR-20141121000001.csv | 365449 |


Busca Histórico de Portabilidade por Número


  • O processo de busca de portabilidade com dados históricos deve ser exatamente o mesmo descrito anteirormente,

    porém sem limitar o resultado a apenas o ultimo registro de bilhetes de portabilidade:

 

mysql> SELECT EOT, DATA_ATIVACAO_DESATIVACAO as DATA FROM bilhetesPortabilidade where

TN_BILHETE_PORTABILIDADE = '3499927266' ORDER BY DATA_ATIVACAO_DESATIVACAO DESC;

+-----+---------------------+

| EOT | DATA |

+-----+--------

+

-------------+

| 430 | 2014-11-19 22:00:59 |

| 30 | 2014-11-18 22:00:16 |

| 430 | 2011-

--

06-02 08:19:40 |

+-----+-----------

+

Os arquivos de atualização estão disponíveis em:

http://atualizabdo.globallink.net.br/BDO

-

UPDATE

-

MGW/

 

Sujeito a disponibilidade e acessibilidade descritas anteriormente. 

Deve

-

se fazer download de todos os aquivos que ainda não foram instalados e que estão disponíveis no endereço citado.

Os nomes dos arquivos de update tem a data e hora em sua composição para facilitar o controle:

 

INCR

-

20141121100000.csv – Onde: 2014 é o ano, 11 é o mês 21 é o dia e 10 é a hora;

O arquivo de update tem o seguinte formado:

 

# head -3 INCR-20141121100000.csv

802631|3133528924|55125|0125|102|20141121081319|0|1|1|31856|

1018775|6181163640|55314|0314|561|20141121082012|0|1|1||

1148253|3134572011|55121|0121|232|20141121081322|0|1|1|31000|

 

Onde os campos são sequencialmente referenciados aos campos:

  1. ID_VERSAO

  2. TN_BILHETE_PORTABILIDADE

  3. RN1

  4. ID_PRESTADORA_RECEPTORA_ATUAL

  5. EOT

  6. DATA_ATIVACAO_DESATIVACAO

  7. TIPO_LNP

  8. MOTIVO_DOWNLOAD

  9. TIPODE_LINHA

  10. LOCALIDADE_CD_OPERADORA

 

INSTALAÇÃO VIA SCRIPT DA BASE DE DADOS BDO

Requisitos do Script

O script de automação da DirectCall foi desenvolvido para funcionar em plataforma linux e necessita de alguns pacotes para

que possa funcionar apropriadamente.

Sistemas Operacionais baseados em Debian devem ser instalado os pacotes:

apt

-

get install php

-

pear
  • pear install DB

  • Sistemas Operacionais baseados em Redhat devem ser instalados os pacotes:

    yum install php

    -

    pear
  • pear install DB

  • OBS.: As aplicações básicas de PHP e Mysql também são pré-requisitos para o funcionamento da solução.

    Configurando o Script para Instalação do BDO

    Primeiramente é necessário editar o script para definir as informações de acesso ao banco de dados. Entre as linhas 90 e 100 do script existem as seguintes definições:

     

    private $MySQLConnection;

    private static $mysqlhost = "localhost";

    private static $mysqluser = "root";

    private static $mysqlpwd = "root";

    private static $mysqldb = "BDO";

    Basta alterar cada uma destas variáveis colocando as informações locais de acesso ao banco.

    Executando o Script para Instalação da Base BDO 

    Após instalar os pré-requisitos o script pode ser executado diretamente via modo texto, da seguinte forma:

    # php BDO_UPDATE_BilhetesPortabilidade.php installFromBackup

    20141121 17:16:42 - DEBUG: BilhetesPortabilidade::__construct: Creating class BilhetesPortabilidade

    20141121 17:16:42 - INFO: BilhetesPortabilidade::__construct: Creating MySQL connection

    20141121 17:16:42 - DEBUG: BilhetesPortabilidade::connectMySQL:

    20141121 17:16:42 - INFO: BilhetesPortabilidade::installFromBackup: Downloading backup file from http://atualizabdo.globallink.net.br/BDO-INSTALL-MGW/bdo_install.sql.gz

    20141121 17:16:42 - INFO: BilhetesPortabilidade::installFromBackup: This make take from 15 to 20 minutes to finish

    20141121 17:32:31 - INFO: BilhetesPortabilidade::installFromBackup: Download finished sucessful

    20141121 17:32:31 - INFO: BilhetesPortabilidade::installFromBackup: Descompressing the file bdo_install.sql.gz it may take a couple of minutes

    20141121 17:34:53 - INFO: BilhetesPortabilidade::installFromBackup: File decompressed sucessful

    20141121 17:34:53 - INFO: BilhetesPortabilidade::installFromBackup: Inflatig database with backup it may take 5 minutes

    20141121 17:39:01 - INFO: BilhetesPortabilidade::installFromBackup: Database inflated successful

     

    Após realizar a instalação do BDO é necessário realizar atualizações periódicas para manter a base de dados com os registros de portabilidades recentes.

    Executando o Script para Atualização do BDO 

     

    Abaixo segue o comando a ser utilizado para realizar a tarefa. Lembrando que é necessário solicitar a liberação do IP pelo N.O.C. da DirectCall e

    também respeitar os horários disponíveis para realizar o procedimento.

     

    # php BDO_UPDATE_BilhetesPortabilidade.php update

     

    20141123 23:56:24 - DEBUG: BilhetesPortabilidade::__construct: Creating class BilhetesPortabilidade

    20141123 23:56:24 - INFO: BilhetesPortabilidade::__construct: Creating MySQL connection

    20141123 23:56:24 - DEBUG: BilhetesPortabilidade::connectMySQL:

    20141123 23:56:24 - INFO: BilhetesPortabilidade::updateMGW: Updating Media Gateway Status first.

    20141123 23:56:24 - INFO: BilhetesPortabilidade::checkMGWStatus: Last update was a JA UPDATE at 2014-11-21 10:01:56 using fileINCR-20141121100000.csv

    20141123 23:56:25 - WARN: BilhetesPortabilidade::checkMGWStatus: There are update: INCR-20141123160000.csv

    20141123 23:56:25 - WARN: BilhetesPortabilidade::checkMGWStatus: There are update: INCR-20141123200000.csv

    20141123 23:56:25 - WARN: BilhetesPortabilidade::checkMGWStatus: There are 2 files to update.

    20141123 23:57:33 - DEBUG: BilhetesPortabilidade::processWebFile: Processing file INCR-20141123160000.csv

    20141123 23:57:34 - INFO: BilhetesPortabilidade::updateDatabase: Updating database control with last file INCR-20141123160000.csv

    20141123 23:57:35 - DEBUG: BilhetesPortabilidade::processWebFile: Processing file INCR-20141123200000.csv

    20141123 23:57:35 - INFO: BilhetesPortabilidade::updateDatabase: Updating database control with last file INCR-20141123200000.csv

    20141123 23:57:36 - INFO: BilhetesPortabilidade::updateMGW: All files updated!

     

    Sugerimos o agendamento desta atividade diariamente via crontab uma vez ao dia, conforme o exemplo abaixo (execução diária as 00:01):

    # m h dom mon dow command 

    01 0 * * * /usr/bin/php -f /root/BDO_UPDATE_BilhetesPortabilidade.php update 

    -+

     

    mysql> select * from operadoras where EOT = '430' \G

    eot: 430

    nome_fantasia: Claro - MG

    razao_social: Claro S/A

    csp: 0

    tipo_servico: SMP

    modalidade_banda: Banda E

    area_prestacao: CN 31, 32, 33,34, 35 E 37,38 (Setor 2

    holding: Claro

     

    mysql> select * from operadoras where EOT = '30' \G

    eot: 30

    nome_fantasia: VIVO - MG

    razao_social: VIVO S.A.

    csp: 0

    tipo_servico: SMP

    modalidade_banda: Banda A

    area_prestacao: Região I área 4 - MG

    holding: Telefônica Brasil

     

     

     

     

     

     

    Informações
    titleValidade dos tokens: Os tokens de acesso têm uma validade limitada, por isso convém que o sistema criado tenha em conta estes timings para que possa desenvolver rotinas de requisação de novos tokens.