aprsd TCP port functions for versions 2.1.5 July 2002
All port numbers are defined in /home/aprsd2/aprsd.conf. If a port is not
defined there it is inactive. The exceptions are the ipwatchport and httpport
ports which are enabled unless defined to zero in aprsd.conf.
Omni Port #14600 (or system operator defined)
- aprsd.conf key word: omniport
- Function: User may select any available data stream on this port.
- Bidirectional
- Echos: User requested data streams. Data streams may be selected
either before logon with simple ascii strings or after logon with aprs messages.
Click here for details.
Main Port #10151 (or System operator defined)**
- aprsd.conf key word: mainport
- Function: User access via various aprs clients to all data streams.
- Bidirectional
- echos:
- Internet user data
- Data from other IGATES and hubs
- TNC data
- Internal system status messages
- UDP data
- Sends 30 minute* history of all data streams when user connects
Main Port-NH #10152 (or System operator defined)**
- aprsd.conf key word: mainport-nh
- Same as Main Port above but doesn't send 30 minute history when user connects.
Local Port #14579 (or System operator defined)
- aprsd.conf key word: localport
- Function: User access via various aprs clients to local TNC data only.
- Bidirectional
- echos:
- TNC data
- UDP data
- Internal system status messages
- Sends 30 minute history of TNC data only
Raw TNC Port #14580 (or System operator defined)
- aprsd.conf key word: rawtncport
- Function: User access via various aprs clients to RAW local TNC data only.
- Bidirectional
- echos: TNC data
- No 30 minute history dump.
Note: This port doesn't reformat the TNC data or
filter duplicates. Every packet the TNC hears
is sent the the user unchanged.
Link Port #1313 (or System operator defined)
- aprsd.conf key word: linkport
- Function: Other hubs such as APRServe connect here
to get local TNC data and Internet user data. As of
version 2.1.5 status messages (javamsg) are no longer echoed here.
- Bidirectional
- echos:
- TNC data
- Internet user data (from other ports)
- UDP data
- Does NOT send 30 minute history
- Does NOT echo data from other IGATEs
Messsage Port #1314 (or System operator defined)
- aprsd.conf key word: msgport
- Function: Other hubs such as APRServe or aprsd connect here
to get 3rd party station to station messages.
All station to station messages from all data sources
and a corresponding position report are available
on this port. All other packets are filtered out.
This is useful for clients that need to conserve
Internet link bandwidth but want access to the
global station to station message stream
for Internet to RF messaging.
- Bidirectional
- echos:
- 3rd party staton to station messages from all sources.
- Does NOT send 30 minute history.
UDP Port #1315 or defined by system operator
- aprsd.conf key word: udpport
- Function: Allows other programs such
as Perl scripts to send
short packets of data into
the aprs stream or the TNC.
Packets addressed to the TNC
are directed to RF. All others
go to the Internet. I use it to
inject weather packets from
a Perl script.
The path data (up to and including the colon) are stripped off before the TNC gets it.
eg:
WA4DSY>TNC:This data goes to the TNC
WA4DSY>APRS:This whole line goes to the Internet (no path stripping)
- Unidirectional (Input only)
- echos: nothing
- security: System operator defines IP addresses
of trusted users. These will usually
be a local host or subnet but could be any host.
HTTP Port #14501 or defined by system operator [New in 2.1.2]
- aprsd.conf keyword: httpport
- Note: You don't need to add this to your aprsd.conf file unless
you want to change it to a port other than 14501. To disable it, set it to zero.
- Function: Defines the port which suppiles server status information in HTML format.
This port is accessed with any web browser by entering the
URL: http://wa4dsy.net:14501/
(replace "wa4dsy.net" with the domain name of the
aprsd server you want ) To refresh the data click the RELOAD button on your browser.
IP Source monitor port #14502 or system operator defined.
- aprsd.conf keyword: ipwatchport
- Note: You don't need to add this to your aprsd.conf file unless
you want to change it to a port other than 14502. To disable it, set it to zero.
- Function: Supplies all data streams without dup filtering with
a special header prepended. The header contains the source IP address of the
packet and the user login name, "IGATE" or "UDP". An example: !44.36.16.48:WA4DSY!
Packets from other igates this server connected to will show the domain name
instead of the IP address and the user will be "IGATE". Packets from the UDP port
will have the IP address and the user field will be "UDP". Packets from the TNC
will have "TNC" in the IP address field and "*" in the user field .
Use telnet or nc optionally with grep to determine the source of packets.
eg: telnet first.aprs.net 23 | grep '199.45.66.88'
Will display only packets from IP address 199.45.66.88.
Error Port 14503 [New in 2.1.5]
- aprsd.conf keyword: errorport
- Note: You don't need to add this to your aprsd.conf file unless
you want to change it to a port other than 14503. To disable it, set it to zero.
- Function: Supplies the packets that were rejected for various reasons.
Duplicates do not appear here.
A special header is prepended to indicate the IP address and logon call.
IGATE connection ports
These are client ports which connect to distant
IGATEs, Servers or Hubs to harvest their data streams. Connections
are reestablished when they drop. The system
operator defines the domain names and optional user/pass logon.
If the optional user/pass information is supplied the
server will send out to the distant Servers the
same data provided by port 1313 above. This is usefull
for those who use a dialup connection without a static IP
address. Up to 100 distant Servers can be defined.
(this limit can be increased by editing an recompiling)
* The 30 minute time is now user definable.
** All ports are optional. They will not be activated
unless a port number is defined in the aprsd.conf file.
REFORMATTING
Mic-E packets may optionally be converted to standard APRS format before being
sent to clients. Generally Mic-E conversion is undesirable. There is
an option in the aprsd.conf file to control conversion.
Data from AEA TNCs is converted to TAPR format before being sent
to clients.
Station to station messages of the 3rd party kind:
This program will reformat and relay aprs
station to station messages from the Internet
to the TNC for RF transmission under the following
conditions.
If it came from a logged on verified registered user.
and
The originator was not seen on the TNC RF data stream
in the past 30 minutes.
and
The destination HAS been seen on the TNC RF data stream
in the past 30 minutes and doesn't have "GATE*" in his path
and has been repeated less than 3 times.
For each 3rd party messge delivered to RF the latest position report
packet of the originating station will also be sent after reformating
the path in 3rd party format. The program pulls the posit from the
history list.
eg:
KE6DJZ>AP0917,KB6TLJ-5,RELAY,WIDE:=3415.99N/11844.34WyAPRS+SA
becomes:
}KE6DJZ>AP0917,TCPIP,WA4DSY*:=3415.99N/11844.34WyAPRS+SA
(assuming "MyCall" is WA4DSY )
During a series of messages the position packet will only
be sent with a message every 10 minutes unless the station emits a new one.
This server will NOT igate a 3rd party reformatted
message from RF to the Internet if the packet has been previously Igated
from Internet to RF. A packet from any source that does not
have TCPIP in the 3rd party path will be converted to normal
format and handled in the usually way.
Users of unregisterd client programs can send their own
station-to-station messages to other Internet users. These
messages will not go out on the TNC RF channel and the path
will be modified (TCPIP* is changed to TCPXX*) so other
hubs will know not to send these messages out on their RF
channels. Unregistered users cannot Igate packets other
than their own. In other words, the ax25 source call
in their packets must match their logon call.
eg; assume N0CLU is unregistered and attempts to send
the following into the server.
N0CLU>APRS,TCPIP:>TESTING
This will be converted to N0CLU>APRS,TCPXX*:>TESTING
and gated to other users (but not to RF ever!)
However...
W4ZZZ>APRS,TCPIP:>TESTING
will be deleted and not sent anywhere.
Telnet users must provide a user name or call sign
before any of their data can be relayed to the internet.
They need to enter "user callsign pass -1" so the server will
accept the data. The ax25 FROM call in packets they send
must match the call sign they loggon with. If they provide
a valid password full priviliges are granted since they
used the keyboard to emulate a client program logon string.
(Not that anyone would want to do this except for testing)
This server will also accept valid user/password combinations
for the Linux system it is running on. These users must be in
the aprs group. This group can be added by editing the /etc/group file.
See the README for details.
This program trusts other versions of itself and APRServe to
flag the paths of data from unregistered Internet users with "TCPXX*".
Station to station messages flagged this way will not be sent out on RF.
The IGATE commands in the aprsd.conf file should specify a remote host port
which is secure. For IGATES it must be a port which doesn't echo any
Internet user data, only TNC data. Full function servers such as APRServe
and this version (2.x.x) of aprsd will change TCPIP* to TCPXX* in the paths
of unregistered users on all ports.
Omni Port operation
The Omni Port provides user requested data streams. The streams are selected
by filter commands. Currently the only filter available is the Port Filter.
The syntax of the Port Filter command is "portfilter(arg1,arg2,arg3,.....)".
The short form "pf(arg1,arg2,arg3,...)" may also be used. The command
may be issued in raw ascii form prior to user logon or as a message
addressed to "SERVER" after logon. Messages addressed to "SERVER"
can be sent from any aprs client program capable of sending messages.
The command may be issued any number of times.
The commands and arguments are not case sensitive.
Examples.
Raw: pf(all,history)
In message: WA4DSY>APRS::SERVER :pf(all,history)
Port Filter arguments.
- ALL: All data streams
- FULL: Same as above
- LOCAL: Data from TNC, UDP port, internal system msgs, and server beacon
- LINK: Data from TNC, UDP port, users, and server beacon
- MSG: Messages and associated posits only
- HISTORY: History list dump
- TNC: Data from the TNC attached to the server
- USER: Data from connected users
- HUB: Data from Hub or Server connections
- SERVER: Same as above
- UDP: Data from aprsds UDP port
- RAW: Unfiltered TNC data
- DUP: Duplicate packets
- SYSTEM: System generated packets
- STATS: Non-ax25 formated server system status info
- REJECT: Data that the server has rejected
- HEADER: Same data as ipwatchport 14502 described above
- ECHO: Users own data is echoed back to him
- CLEAR: No data streams
- -HUB: remove data from Hubs/Servers
- -TNC: remove TNC data
- -USER: remove user data
- -SYSTEM: remove system messages
- -BEACON: remove system beacon packets
Arguments are scanned in the order they appear. For example,
if you want everything including a history dump but don't
want the system status messages:
pf(all,-system,history)
You may connect to the Omni Port with telnet and watch the servers
operaton in real time.
telnet wa4dsy.net 14600
pf(stats)
If you require you own data echoed back to you simply add the
"ECHO" argument to the list.
pf(all,-system,echo)
Note: Filter messages are only accepted from your logon callsign.
If you want to freeze the filter configuration for the duration of the
connecton issue the "LOCK" command. eg: lock(). No more commands
will be accepted.
The Omniport will be easier to user if client software authors add
automatic transmission of the stream requests at logon. They could
be specified with simple checkboxes in a dialog window.