Julio, estou no DF e ligo para uma cidade do GO que fica a mais de 40km
de distância e não digitamos o Código de Área nem pra fixo e nem pra
celular. Portanto o que vc afirmou não é regra. 
 
Ciro
 
-----Mensagem original-----
De: asteriskbrasil-boun...@listas.asteriskbrasil.org
[mailto:asteriskbrasil-boun...@listas.asteriskbrasil.org] Em nome de JP
Telecom- Julio
Enviada em: quinta-feira, 10 de setembro de 2009 09:13
Para: asteriskbrasil@listas.asteriskbrasil.org
Assunto: Re: [AsteriskBrasil]Calcula distâncias entre cidades utilizando
latitude e longitude. MYSQL - ASTERISK 1.6
 
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 <mailto:pscam...@gmail.com>  
To: asteriskbrasil@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=`ro...@`%` 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@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@listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil

Responder a