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)

Main Port #10151 (or System operator defined)**

Main Port-NH #10152 (or System operator defined)**

Local Port #14579 (or System operator defined)

Raw TNC Port #14580 (or System operator defined)

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)

Messsage Port #1314 (or System operator defined)

UDP Port #1315 or defined by system operator

HTTP Port #14501 or defined by system operator [New in 2.1.2]

IP Source monitor port #14502 or system operator defined.

Error Port 14503 [New in 2.1.5]

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.

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.