[AsteriskBrasil] Calcula distâncias entre cidades utilizando latitude e longitude. MYSQL - ASTERISK 1.6
Gustavo Cordeiro
gustavo em advent.com.br
Quinta Setembro 10 09:54:40 BRT 2009
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
>
Mais detalhes sobre a lista de discussão AsteriskBrasil