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