# Configure External Message Source

Many other applications provide information that would be useful to deliver over APRS. YAAC provides a mechanism using TCP/IP sockets so that such information can be imported into YAAC in real-time and transmitted to all the connected APRS networks.

To connect to such applications, click the Add button on the Ports tab of the expert-mode Configure dialog. The port editing dialog will appear. Set the port type to ExtMsgSrc.

The parameters you will need to specify are:

- Whether YAAC is going to listen for TCP incoming connections from the other applications (server mode), or initiate a TCP connection to the other application (client mode), or accept UDP datagrams from other applications.
- For client mode, the host name or IP address of the computer running the other application; this is meaningless for server mode, as the server system is the computer running YAAC (i.e., localhost). Note that YAAC does not restrict the listening port only to connections from the same computer; any computer will network access to the YAAC computer can connect to the socket, and no authentication is performed.
- The TCP or UDP port number that YAAC will listen on in server mode or attempt to connect to in client mode, in the range 1000 to 65535. Note that a port number below 1024 should not be selected in server mode on a Linux or Unix system, as such port numbers are reserved to privileged applications on Unix.
- The format of the messages that YAAC will expect to receive over the socket connection. The formats currently supported by YAAC are:
  - plain ASCII APRS message bodies (according to the APRS protocol specifications), terminated by a carriage return (CR, 0x0D) or line feed (LF, 0x0A). Note that MicE messages cannot be used here, because the destination callsign (used to encode latitude and other values in MicE) is not user-specified in this format. The messages will be transmitted with YAAC's beacon callsign as the source, and the current beacon destination ToCall as the destination.
  - a source callsign, a greater-than sign '>', a destination callsign, a colon ':', and the plain ASCII APRS message body terminated by CR or LF. Note this allows the external application to specify its own unique source and destination callsigns, and YAAC does not validate the legality of such callsigns. Note that, if YAAC has open RF transmit ports (hardware or software TNCs), the callsigns must be legal for AX.25 transmission; messages with illegal-syntax callsigns will be rejected by YAAC, because they can't be transmitted on RF. IF YAAC only has a Internet connection, extended format callsigns with syntaxes that won't fit into an AX.25 frame header (such as SSID's that contain letters or a number greater than 15) are permissible.
- Whether or not messages received through this port should be processed and displayed locally, in addition to being transmitted to other stations.
- The digipeat path(s) to be used for messages received from the external application. If more than one path is specified, they will be used in proportional pathing order.

Note that, in client mode, YAAC will attempt to connect to only one external application per ExtMsgSrc port, and the external application must be ready and waiting for connections when the YAAC port is created or YAAC is restarted with an open ExtMsgSrc port definition. Any number of client applications can connect to a YAAC server-mode port, but all such applications must use the same message format (with or without source and destination callsigns).