TAP/SNPP Relay

Introduction

TAP/SNPP Relay (TSR) is a program which listens for TAP (Telocator Alphanumeric Protocol) paging commands on a network link, connects to an SNPP (Simple Network Paging Protocol) server and converts the TAP requests to SNPP. This allows an existing TAP-only application to send pages via SNPP.

Note: TAP is typically used to send pages via a serial link (e.g. a modem connection), but TSR can only listen to network requests. Consequently it relies on an application such as TAL Technologies' TCP-Com for Microsoft Windows to redirect serial traffic to a network link.

These instructions assume you are using Microsoft Windows.

TSR is Free/Open source software licensed under the General Public License.

How it Works

TSR listens for TCP/IP socket connections containing TAP commands. As TAP commands are normally sent via a serial link, a program such as TCP-Com must be used to redirect the messages sent to a serial port to a TCP/IP socket. TCP-Com can create virtual COM ports for this purpose. When paging requests are received, TSR establishes a second socket connection, this time to the SNPP server of your paging bureau and sends the message to the pager using SNPP commands.

Although it uses TCP/IP sockets your TAP application, TCP-Com and TSR would typically run on one computer as shown in the diagram below:

How TSR works

If the SNPP server is slow, pagers are queued so that TSR continues to respond to TAP requests. Because of this, any failures are not sent to the TAP application, although they are listed in the TSR window.

Should you require messages to some pagers to be sent by a different provider, you can configure additional queues with a list of pagers to be diverted.

Installing and Running

Prerequisites

TSR requires the Mono runtime, download and install this.

TCP-Com is proprietary software, please contact TalTech regarding pricing for this. An evaluation version is available at no cost. Prior to using TSR you will need to use TCP-Com to set up a client connection on the port for TSR (see Configuration). Your port settings (baud, parity, etc.) will need to match those of your TAP application.

Extracting the files

Extract the files from the archive in the location required.

Configuration

Configuration settings are stored in the XML file TapSnppRelay.exe.config. A simple example configuration file to send pages via a single provider is shown below:

<configuration>
  <appSettings>
    <add key="QueueCount" value="1"/>
    <add key="Queue1.Servers" value="10.0.0.1;10.0.0.2"/>
    <add key="Queue1.Login" value="LETMEIN"/>
    <add key="MaxQueue" value="5"/>
    <add key="MaxHistory" value="100" />
    <add key="TAPServerPort" value="21210" />
  </appSettings>
</configuration>

The example below uses the diversion feature to send messages to 283931 and 207216 to different servers:

<configuration>
  <appSettings>
    <add key="QueueCount" value="1"/>
    <add key="Queue1.Servers" value="10.0.0.1;10.0.0.2"/>
    <add key="Queue1.Login" value="LETMEIN"/>
    <add key="Queue2.Servers" value="172.168.8.12;172.168.8.13"/>
    <add key="Queue2.Login" value="PASSWORD"/>
    <add key="Queue2.Pagers value="283931;207216"/>
    <add key="MaxHistory" value="100" />
    <add key="TAPServerPort" value="21210" />
  </appSettings>
</configuration>

Note that Queue1 is always the default and any pager IDs that are not included for other queues are sent to this one (i.e. you cannot set Queue1.Pagers).

The table below describes these options.

Option Description Required Default Range
QueueCount Number of SNPP queues Mandatory 1 Positive integer
Queue1.Servers One or more SNPP servers separated by semicolons for default queue Mandatory N/A IP addresses
Queue1.Login Login ID for default queue Optional N/A String value
Queuen.Servers One or more SNPP servers separated by semicolons if QueueCount > 1 Optional N/A IP addresses
Queuen.Login Login ID if QueueCount > 1 Optional N/A String value
Queuen.Pagers List of pagers separated by semicolons to be diverted to this queue Optional N/A String value
MaxQueue Maximum number of pages to queue if SNPP server slow/fails Optional N/A Positive integer
MaxHistory Maximum entries in history list Optional 100 Integer value
TAPServerPort TCP/IP port to listen on for TAP requests Optional 2100 1 - 65535
SuppressDuplicates If the pager message and recipient is identical to the previous message and recipient, the message is not sent. Optional False True/False
MaxDuplicateHistory If SuppressDuplicates is enabled, this is the number of recent message/recipient pairs to check Optional 1 Positive integer

Running the Program

The program can be started in two ways:

  1. From the command line with the Mono environment set (e.g. Start→Programs→Mono for Windows→Mono Command Prompt) and type mono <path to TSR directory>\TapSnppRelay.exe.
  2. By creating a shortcut to the Mono executable with the parameter <path to TSR directory>\TapSnppRelay.exe.

Once running, TAP pages should appear in the TSR window's list. This is shown below, the red background for the fourth page indicates a failure:

TSR running

Compiling the source

TSR is written in C#. The source code is available from the src directory. To compile the source, open a command window with the Mono environment set (see Running the Program), change to the TapSnppRelay directory and type mcs src/*.cs -out:TapSnppRelay.exe -pkg:gtk-sharp-2.0 -target:winexe.

Leon Stringer (leon.stringer@ntlworld.com)
$Date: 2007-03-29$
Issue 4