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

R2 r2 em infolink.com.br
Quinta Setembro 10 12:46:05 BRT 2009


Meus caros,

A Anatel especificou uma regra para áreas locais: 
http://www.anatel.gov.br/Portal/exibirPortalRedireciona.do?codigoDocumento=98740
Quando você pega o arquivo na Anatel, antes de verificar se é D1, 
verifique primeiro a se estão com o mesmo código de área local., Se o 
código de área local for igual, você não utiliza o "ddd" para fazer a 
ligação e a tarifa é local.
O Campo no arquivo da Anatel é chamado de SiglaCNLAreaLocal.
Um exemplo:
 Quando disco do município do Rio de Janeiro para Magé, eu não preciso 
discar o "ddd" 21 porque estão na mesma área local, mas quando ligo do 
Rio de Janeiro para Teresópolis, eu preciso discar o "ddd" mesmo os 
números estando com o mesmo CodAreaTarifacao. O que diferencia nesse 
caso é SiglaCNLAreaLocal. O Rio de Janeiro e Magé tem SiglaCNLAreaLocal 
igual a RJO e Teresópolis é TRL


Pablo Câmara escreveu:
> Fábio,
>
> Estava utilizando o críterio areatarifacao.
> Agora vou utilizar o critério: siglacnlarealocal
>
>
> 2009/9/10 Fabio Domingos Luzia <fabio.luzia em tellfree.com.br 
> <mailto:fabio.luzia em tellfree.com.br>>
>
>     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
>     <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>
>     [mailto: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
>     <mailto: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 <http://www.advent.com.br>
>
>
>     2009/9/10 JP Telecom- Julio <juliojptelecom em gmail.com
>     <mailto: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
>     <mailto: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
>     <mailto: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
>     <mailto: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
>     <mailto: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
>     <mailto: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
>
>
> __________ Informação do ESET NOD32 Antivirus, versão da vacina 4413 (20090910) __________
>
> A mensagem foi verificada pelo  ESET NOD32 Antivirus.
>
> http://www.eset.com
>
>   


Mais detalhes sobre a lista de discussão AsteriskBrasil