Introdução
Hoje, a rede APRS-IS há 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, há a necessidade do uso dos 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 mais lhe
interessar e existem grande flexibilidade em se construir um tráfego
bem em particular.
Como funciona?
Pete Loveall AE5PL escreveu o APRS-IS javAPRSSrvr, software servidor em java
ao qual é usado por um grande número de servidores.
Pete foi muito amável liberando espaços no código fonte,
possibilitando outros programadores de escrever alguns adendos inseridos ao
servidor. Um exemplo é o javAPRSFilter ( tambem 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 examplo:
1 - Conecte ao T2BRAZIL na porta 14580 "brazil.aprs2.net:14580".
Se você usa o uiview, ao conectar será perguntado "Log on
when connected?" clique em SIM.
2 - Envie uma mensagem APRS ao servidor solicitando o filtro desejado.
Comandos dos Filtros.
Existem 14 diferentes tipos de filtros que podem ser usados em qualquer combinação.
Cada filtro trabalha independente e é aditivo e não supresivo
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 3 filtros de range ao mesmo tempo, para extender as áreas
quando existem dificuldades para encontrar 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/PU1WAX* (Isto deixará passar únicamente o tráfego do PY1EU-1 e todo o tráfego do PU1WAX 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/PU1WPN/PU* (Isto passará todo o tráfego de PU1WPN e todas as estações que começam com PU)
#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
Aqueles 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 APRS enviado ao servidor deve começarr com a palavra "filter" (sem aspas) e a continuação dos comandos.
Os filtros mencionados podem ser combinados como foi explicado anteriormente e cada filtro trabalhará porém 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 que é
enviado desde PU1WPN, 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 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 tenham sido sido
retransmitidos por uma particular estação. Você pode
definir mais de un digipeater e isto pode ser usado em combinações.
Lembre-se que um packet pode ter muitas vezes ir em diferentes rotas para chegar
ao APRS-IS e pode ser retransmitido
por outras diferentes estações e talvez isto podem ser excluidos
por otros filtros e/ou aplicações como duplicados.
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 funciona igual ao Filtro de Range porém se diferencia
por ser 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.
Maiores informações a cerca do filtro q Contruct veja aqui: 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 IGates identificados com qAr o qAR
Ejemplos: 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
O mesmo como o Filtro Budlist mas atua no nome do objeto em vez 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 sumare e aqueles que comecem com PUB.
Para maires informações ver 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ê
tem
uma estação móvel com conexão a internet. Então,
sempre deixará passar as estações locais sem se importar
de onde
onde você está.
Nota: Isto não trabalhará até que haja uma posição
válida que tenha sido enviada desde o mesmo indicativo e SSID que
que você utilizou para se logar no servidor.
Sintaxe: m/dist
Onde: m = Comando de Meu Range
dist= Distância em Kilometros da origem lat/lon.
Exemplo: m/500 Isto passará todo o tráfego em 500Km 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ê define qual indicativo-ssid deverá
ser usado. 9 filtros de amigos podem 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 combina o indicativo-ssid que segue
imediatamente após o filtro q-construct.
Este filtro suporta indicativos acompanhados do asteristico.
Sintaxe: e/indicativo/indicativo/indicativo*...
#13 Filtro de Unproto
Este filtro passará pacotes as quais combinam o Unproto ( ou destino
do tráfego) no packet.
Este filtro suporta indicativos acompanhados do asteristico.
Sintaxe: u/text/text/te*...
#14 Filtro de Exclusão
Todos os filtros anteriores 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 será processado
primeiro, então 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 dispõe da porta 14580 para os filtros definidos
pelos usuários,
e estamos disponíveis com o brazil.aprs2.net:14580, bastando você
incluir no seu Uiview
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
Os servidores Java utilizam o sistema da Sun Microsystem
O javAPRSSrvr pertence ao Peter Loveall AE5PL bem como o
javAPRSSFilter ao Roger Bille SM5NRK e o www.aprs2.net
seu autor é o Phill Pacier AD6NH.
Dúvidas ou possíveis sugestões de correções envie-nos um email para aprs@aprsbrasil.com