[AsteriskBrasil] RES: Calcula distâncias entre cidades utilizando latitude e longitude. MYSQL - ASTERISK 1.6

Fabio Domingos Luzia fabio.luzia em tellfree.com.br
Quinta Setembro 10 10:19:05 BRT 2009


Gente,

As localidades que não precisam de DDD são chamadas de áreas conurbadas, isso tem disponível no site da Anatel:

http://sistemas.anatel.gov.br/areaarea/N_Download/Tela.asp?varMod=Publico&SISQSmodulo=7179

após download vem 2 arquivos, um explicando o layout e outro com todo CNL do estado.

Te recomendo a importar dados para o Excel e importar o arquivo conforme segue a documentação explicada no layout.

Depois de importar, procure o município e no final da linha a sigla CNL, exemplo:

Município de Porto Alegre a sigla é PAE, realizando o filtro pela sigla você vai ver todas as cidades que são conurbadas de Porto Alegre e atendidas como local.

Os prefixos estão nessa seleção também, ai é só montar o diaplan.


Abraços..

-----Mensagem original-----
De: asteriskbrasil-bounces em listas.asteriskbrasil.org [mailto:asteriskbrasil-bounces em listas.asteriskbrasil.org] Em nome de Gustavo Cordeiro
Enviada em: quinta-feira, 10 de setembro de 2009 09:55
Para: asteriskbrasil em listas.asteriskbrasil.org
Assunto: Re: [AsteriskBrasil]Calcula distâncias entre cidades utilizando latitude e longitude. MYSQL - ASTERISK 1.6

Olá,

  As ligações são consideradas de longa distância quando são
estabelecidas entre áreas locais distintas. Você pode ter mais de uma
cidade dentro de uma mesma área local na telefonia fixa.

  http://www.teleco.com.br/tarif_alocal.asp


Sds,
Gustavo Cordeiro
Advent Tecnologia Ltda.
Telefone: 48 3024-9350
Celular: 48 8809-0764

www.advent.com.br


2009/9/10 JP Telecom- Julio <juliojptelecom em gmail.com>:
> Pablo,
>
> O uso de DDD não é só apenas qdo ultrapassar 50KM, pode ser mesmo sendo bem
> menos, essa regra não existe mais ( é uma regra antiga), agora a regra é se
> for cidade diferente mesmo tendo o mesmo DDD tem que discar o Código de área
> ( isso para telefones fixo) e para celular sendo o mesmo DDD não precisa de
> código de área.
>
>
> ----- Original Message -----
> From: Pablo Câmara
> To: asteriskbrasil em listas.asteriskbrasil.org
> Sent: Thursday, September 10, 2009 8:56 AM
> Subject: [AsteriskBrasil] Calcula distâncias entre cidades utilizando
> latitude e longitude. MYSQL - ASTERISK 1.6
> Olá pessoal...
> Quando devo utilizar o código de area dentro de um mesmo estado? Não sei se
> a informação procede, mas quando a distancia ultrapassa 50 km, o uso do
> código da area é obrigatório.
> Logo resolvi apelar. Calcular as distancias utilizando latitude e longitude
> utilizando os dados da Tabela cnlfixo da anatel.
> E uma tabela de preferencias (filiais) que tem as informações da filial.
> Porem não tenho certeza se esses cálculos estão corretos.
> Passo como paramento o número discado. ('11', '9999' '9999')
>
> DELIMITER $$
> DROP FUNCTION IF EXISTS `asterisk`.`fn_calculaDistancia` $$
> CREATE DEFINER=`root`@`%` FUNCTION `fn_calculaDistancia`(varDDD varchar(2),
> varFaixa1 varchar(6), varFaixa2 varchar(4)) RETURNS varchar(10) CHARSET
> latin1
> BEGIN
> declare radiano float default 0;
> declare unidade float default 0;
> declare area varchar(2) default 0;
> declare latitude_1 float default 0;
> declare longitude_1 float default 0;
> declare latitude_2 float default 0;
> declare longitude_2 float default 0;
> declare distancia float default 50;
>   set radiano = 180/PI();
>   set unidade = 60 * 1.1515 * 1.609344;
>   select substr(prefixo,1,2), substr(latitude,1,4)/100,
> substr(longitude,1,4)/100
>   into area, latitude_1, longitude_1
>   from asterisk.preferencias
>   where principal = 1;
>   if (area = varDDD) then
>    select substr(latitude,1,4)/100, substr(longitude,1,4)/100
>    into latitude_2, longitude_2
>    from asterisk.cnlfixo
>    where prefixo = concat(varDDD,varFaixa1)
>    and   varFaixa2 between faixainicial and faixafinal;
>    set distancia = ((ACOS(SIN(latitude_1/radiano) * SIN(latitude_2/radiano)
> +
>         COS(latitude_1/radiano) * COS(latitude_2/radiano) *
>         COS(longitude_2/radiano - longitude_1/radiano))) * unidade);
>    end if;
>    if (distancia >= 50) then
>       return 0; -- usa ddd
>    else
>       return 1; -- remove ddd
>    end if;
>
> END $$
> DELIMITER ;
> Porem meus resultados não estao muito confiáveis.
> Alguem consegue ver algum problema nessa procedure?
>
> ________________________________
>
> _______________________________________________
> Participe do IV Encontro VoIPCenter, 16 a 18 de setembro - São Paulo.
> VoIP, Asterisk e Convergência de Redes.
> http://www.encontrovoipcenter.com.br
>
> Compre uma camiseta da AsteriskBrasil.org!
> http://www.voipmania.com.br
>
> Acesse o canal IRC de discussão sobre Asterisk em Português Brasileiro na
> rede Freenode.net: #asterisk-br
> _______________________________________________
> Lista de discussões AsteriskBrasil.org
> AsteriskBrasil em listas.asteriskbrasil.org
> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>
> _______________________________________________
> Participe do IV Encontro VoIPCenter, 16 a 18 de setembro - São Paulo.
> VoIP, Asterisk e Convergência de Redes.
> http://www.encontrovoipcenter.com.br
>
> Compre uma camiseta da AsteriskBrasil.org!
> http://www.voipmania.com.br
>
> Acesse o canal IRC de discussão sobre Asterisk em Português Brasileiro na
> rede Freenode.net: #asterisk-br
> _______________________________________________
> Lista de discussões AsteriskBrasil.org
> AsteriskBrasil em listas.asteriskbrasil.org
> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>

_______________________________________________
Participe do IV Encontro VoIPCenter, 16 a 18 de setembro - São Paulo.
VoIP, Asterisk e Convergência de Redes.
http://www.encontrovoipcenter.com.br

Compre uma camiseta da AsteriskBrasil.org!
http://www.voipmania.com.br

Acesse o canal IRC de discussão sobre Asterisk em Português Brasileiro na rede Freenode.net: #asterisk-br
_______________________________________________
Lista de discussões AsteriskBrasil.org
AsteriskBrasil em listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil


Mais detalhes sobre a lista de discussão AsteriskBrasil