Introdução
Hoje na rede APRS-IS existe um intenso tráfego e requer uma alta banda larga, em particular os servidores APRS-IS.
Para acomodar estes vários servidores e vocês usuários que conectam e que estão interessados em um tráfego de seu particular interesse, existe a necessidade de utilizar-se filtros de tráfego.
Existem vários tipos de filtros, alguns bem específicos como por exemplo os meteorológicos. Tudo isso para facilitar a vida dos usuários e mantenedores dos servidores.
Cada um de vocês poderá escolher o tráfego que lhe interessar e existe grande flexibilidade em se construir um tráfego bem em particular.
Como funciona?
O Radioamador Pete Loveall AE5PL escreveu o APRS-IS javAPRSSrvr, é um programa de computador (software) servidor que utiliza a linguagem Java e é largamente utilizado por um grande número de servidores.
Por ser Radioamador e preocupar-se com o crescimento do APRS no mundo, Pete liberou espaços no código fonte do programa, possibilitando que outros programadores pudessem modificar alguns adendos inseridos ao servidor. Um exemplo é o javAPRSFilter (também em Java). Estas duas aplicações juntas promovem os filtros.
O status dos servidores APRS-IS podem ser encontrados em http://www.aprs2.net/
Você define o filtro seguindo este exemplo:
1 - Conecte-se ao T2BRAZIL na porta 14580 utilizando um programa específico para APRS utilizando a porta "brazil.aprs2.net:14580". Se você usar o Ui-View, ao conectar aparecerá uma pequena janela perguntado "Log on when connected?" clique em SIM.
2 - Será enviado uma mensagem APRS automática ao servidor solicitando o filtro desejado.
Comandos dos Filtros.
Existem 14 diferentes tipos de filtros que são utilizados com qualquer combinação.
Cada filtro trabalha independente e é aditivo e não supressivo ao tráfego. Isto significa que se o filtro encontra uma coincidência dentro dos parâmetros que foi estabelecido, ele deixará passar para você a soma de um determinado tráfego.
Os comandos do filtro enviados em forma de mensagens APRS, começam com a palavra "filter" (sem as aspas), e cada comando de filtro esta delimitado por um espaço simples. Uma mensagem que contenha somente "filter?" (sem aspas), responderá a definição atual do filtro.
#1 Filtro Range
O Filtro Range deverá passar todas as estações e objetos dentro de uma distância, tomada desde um ponto estabelecido. Também mensagens a estações dentro do range do filtro e posições enviadas incluso se estão fora do range.
Pode-se utilizar-se 3 filtros de range ao mesmo tempo, para estender as áreas quando existem dificuldades, para encontrar-se uma área bem delimitada.
Sintaxe: r/lat/lon/dist [r/lat1/lon2/dist2 [[r/lat2/lon2/dist2]]
onde:
r= Comando de Range
lat = Latitude em graus (sem decimais). Negativo para o sul
lon= Longitude em graus (sem decimais) negativo para o Oeste
dist= Distância em Kilômetros desde lat./lon.
Exemplos: r/55/-4/600 (Isto deixará passar todo o tráfego do Reino Unido)
r/37/-81/1500 (Isto deixará passar todo o tráfego da costa leste do USA)
#2 Filtro de Prefixos
O filtro de Prefixo deixará passar o tráfego baseado nas iniciais dos indicativos do emissor com uma estrutura específica.
Sintaxe:
p/p1/p2/p3...
Onde: p= Comando de Prefixo
p#= A estrutura (inicial) de Prefixo
Exemplos: p/P Isto deixará passar todo o tráfego de estações que começam com a letra P
p/PU/PY Isto deixará passar estações que começam com PU e PY
p/PY1EU Isto deixará passar todo o tráfego do PY1EU e qualquer SSID
#3 Filtro Budlist
O Filtro Budlist deixará passar o tráfego baseado nas iniciais exatas dos indicativos do emissor com uma estrutura específica, também o SSID e partes dessas iniciais.
Sintaxe: b/indicativo1/p1*/indicativo3/p2*...
Onde: b = Comando Budlist
Indicativo# = A estrutura do Indicativo
p#= A estrutura (inicial) do Indicativo
Exemplos: b/PY1EU (Isto deixará passar todo o tráfego do PY1EU sen nenhum SSID)
b/PY1EU-1/PY1AG* (Isto deixará passar únicamente o tráfego do PY1EU-1 e todo o tráfego do PY1AG incluindo todos os seus SSID)
b/PY* (Isto deixará passar todo ol tráfego de estações que começam com PY do mesmo modo que faz o Filtro de Prefixo)
b/PY2PE-1/PU* (Isto passará todo o tráfego de PY2PE-1 e todas as estações que começam com PY)
#4 Filtro de Tipo
O Filtro de Tipo deixará passar o tráfego dependendo do tipo de packet. Em um só comando podem ser definidos mais de um tipo.
Sintaxe: t/tipo
Onde: t= Comando de Tipo
tipo = É um o mais das seguintes letras:
p = Pacotes de posição
o = Objetos
i = Ítems
m = Mensagem
n = Boletins e objetos de áreas meteorológicas NWS
w = Estações meteorológicas
t = Telemetría
q = Query
s = Status
u = Definidos pelos usuarios
Exemplos: t/p Isto deixará passar todo o tráfego contendo uma posição
t/w Isto deixará passar todo o tráfego de estaçõess meteorológicas
Objetos meteorológicos sem dados de posição passarão logo da segunda vez que for escutado pelo servidor.
t/mos Isto deixará passar todos as mensagens, objetos e mensagens de status
Lembre-se que mensagens de APRS enviadas ao servidor deverão começar com a palavra "filter" (sem aspas) e a continuação dos comandos.
Os filtros mencionados serão combinados como foi explicado anteriormente, e cada filtro trabalhará de maneira independente dos outros, por exemplo:
filter r/63/16/1000 r/55/-4/600 p/CT/EA/EB b/PU1WAX t/o
|__________||_________| |_________||_______||__|
1º Range 2º Range Prefixos Budlist
O filtro anterior deixará passar todo o tráfego dentro de um range determinado, 1º Filtro de Range e um segundo range, 2º Filtro de Range. As demais estações que começam com CT, EA e EB (Filtro de Prefixos) somando todo o que é enviado desde PY1AG, sem nenhum SSID, Filtro Budlist e todos os objetos escutados,Filtro de Tipos.
#5 Filtro de Símbolos
O filtro de Símbolos deixará passar todo o tráfego baseados no símbolos do pacote.
Sintaxes: s/pri/alt/over
Onde: s = Comando de Símbolos
pri = Símbolos da tabela primaria
alt = Símbolos da tabela alternativa
over = Caracteres de "overlay", lembre-se que estes são os casos sensitivos
Exemplos: s/-> Isto passará todos os símbolos das casas e automóveis da tabela primaria
s//# Isto passará todos as digipeaters sem um Overlay
s//#/T Isto passará todos los digipeaters com um overlay que contenham um "T" maiúscula, por exemplo uma Digi Wide.
#6 Filtro de Digipeaters
O Filtro de Digipeater passará todos os pacotes que foram retransmitidos por uma particular estação. Você poderá definir mais de 1 digipeater e isto poderá ser utilizado em várias combinações.
Lembre-se que um (Radio pacote) pode seguir em diferentes rotas para chegar ao APRS-IS e poderá ser retransmitido por outras diferentes estações e talvez algum pacote pode ser excluido por alguns filtros e/ou aplicações como poderá chegar de forma duplicada.
Sintaxis: d/digi1/digi2...
Onde: s = Comando de Digipeater
digi# = Indicativo da digipeater, você pode utilizar o SSID.
Exemplos: d/PY2TK-15 Isto passará todos os packets retransmitidos por PY2TK-15
d/PY2TK-15/MORUMBI Isto passará todos os packets retransmitidos por PY2TK-15 e MORUMBI
#7 Filtro de Área
O filtro de área funcionará igual ao Filtro de Range porém se diferencia por ser um filtro circular. É definido como uma caixa de coordenadas.
As coordenadas devem ser lidas na seguinte ordem:
Acima -> Esquerda e abaixo ->
Direita. Você pode definir 9 Filtros de Área ao mesmo tempo.
Lembre-se que lat/lon são em graus inteiros sem decimais e que sul e oeste são negativos.
Sintaxis: a/latN/lonW/latS/lonE
Onde: a = Comando de Áreas
latN = Borda de Latitude Norte (-90° a 90° )
lonW = Borda de Longitude Oeste (-180° a 180°)
latS = Borda de Latitude Sul (-90° a 90 °)
lonE = Borda de Longitude Leste (-180° a 180°)
Exemplo: a/50/-130/20/-70 Isto passará todo o tráfego gerado desde o território dos USA
#8 Filtro q Construct
O filtro q Construct baseará todos os filtros q construct (protocolos) usados no APRS-IS.
Obtenha maiores informações a cerca do filtro q Contruct neste link: http://www.aprs-is.net/q.htm
Sintaxe: q/con/ana
Onde: q = Comando q Construct
con = Lista dos q Construct que passarão, lembre-se que estes parâmetros são os casos sensitivos
ana = Análises baseado no q contruct
I = Envío de posições que passão através dos Igate identificados com qAr o qAR
>Exemplos: q/C Isto passará todo o tráfego com qAC
q/rR Isto passará todo o tráfego com qAr o qAR
q//i Isto passará todo o tráfego de posição dos IGates identificados em outros packets por qAr o qAR
#9 Filtro de Objetos
Trabalha da mesma forma que o Filtro Budlist mas atua no nome do objeto ao invés de enviar com o indicativo.
Sintaxe: o/nome1/n2*/nome3/n3*
Onde: o = Comando de Objetos
n = Nome ou parte do nome de um objeto
Eexemplos: o/SUMARE (Deixará passar todos os objetos que contenham a palavra SUMARE)
o/SUMARE/PUB* (Deixará passar todos os objetos que contenham a palavra Sumaré e aqueles que comecem com PUB.
Para maires informações vá até o item 3 deste tutorial e veja sobre o filtro Budlist.
#10 Meu range Filtro
O filtro meu Range passará todas as estações e objetos em menos de uma distância da sua própria estação local.
Utilizará a localização enviada do indicativo que você utilizou para se logar a um servidor. Isto é útil se você possui uma estação móvel com conexão a internet. Então ele sempre deixará passar as estações locais sem se importar de onde você está.
Nota: Este comando não trabalhará até que haja uma posição válida que seja enviada desde o mesmo indicativo e SSID que você utilizou para se logar no servidor.
Sintaxe: m/dist
Onde: m = Comando de Meu Range
dist= Distância em quilômetros da origem lat/lon.
Exemplo: m/500 Isto passará todo o tráfego em 500 quilômetros ao redor de minha localização.
#11 Filtro Range de Amigos - Friend Range Filter
O Filtro Range de Amigos trabalha igual ao filtro "Meu range Filtro", exceto que você quem define qual indicativo-ssid será utilizado e 9 filtros de amigos poderão ser definidos.
Isto é uma mudança do filtro, então isto é o último indicativo-ssid de posição conhecida.
Sintaxe: f/indicativo/dist
Onde: f = Comando Range de Amigos
Indicativo = Indicativo utilizado como centro do range
dist = Distância em Kilômetros com respeito a lat/lon do indicativo - SSID
Exemplo: f/PY2PE/500 Isto passará todo o tráfego em 500 Km ao redor de PY2PE da última posição recebida de PY2PE.
#12 Porta de Entrada Filtro
Este filtro passará pacotes que combinarão o indicativo-ssid que segue imediatamente após o filtro q-construct.
Este filtro suporta indicativos acompanhados com asterisco.
Sintaxe: e/indicativo/indicativo/indicativo*...
#13 Filtro de Unproto
Este filtro passará pacotes que combinarão o Unproto (ou destino do tráfego) no packet.
Este filtro suporta indicativos acompanhados do asterisco.
Sintaxe: u/text/text/te*...
#14 Filtro de Exclusão
Todos os filtros anteriores mencionados acima, também suportam exclusão. Sendo inserido anteposto aos filtros anteriores o resultado será o oposto.
Qualquer pacote que estiver no filtro de exclusão não passará. O filtro de exclusão processará primeiro se existe um combinação para uma exclusão, então o pacote não passará, mesmo com algum outro filtro definido.
Amostra:
-a/50/-130/20/-70 -b/CW* Esta área do filtro diz que passa todo o
tráfego US. O filtro -b diz para excluir
qualquer estação que iniciar com CW.
-a/50/-130/20/-70 -s/>j Esta área do filtro diz que passa todo o
o tráfego US.O filtro -s diz para excluir
qualquer estação com ícone carro ou Jeep.
Comentário Final:
Todos os servidores que utilizam o javAPRSSrvr são mostrados em http://www.aprs2.net
Todos esses servidores disponibilizam a porta 14580 para os filtros definidos pelos usuários.
O Portal APRS Brasil também disponibiliza a você usuário a porta brazil.aprs2.net:14580. Para utilizá-la basta incluir em seu Ui-view em setup -> aprsserver setup.
Este tutorial do javAPRSFilter é de autoria do Roger Bille SM5NRK e adaptado para o português por: Eudoxio J.Mondego PY1EU e corrigido por Mauricio Beraldo PY4MAB.
Os servidores Java utilizam o sistema da Sun Microsystem.
O javAPRSSrvr pertence ao Peter Loveall AE5PL bem como o javAPRSSFilter a Roger Bille SM5NRK e o www.aprs2.net pertence a seu autor é o Phill Pacier AD6NH.
Dúvidas ou possíveis sugestões de correções envie-nos um email para py1eu@globo.com