IPXGTW gets a single file via Gateway.

Both Classified (IAS) and Editorial files may be sent over with the header
being processed accordingly.

It is started from an xstart on the j11 as per the example in Appendix A of the
Gateway installation manual.
ie  wrklst  sy:lib-usr,xstart,/d,liberr-usr,,mpb4:<ipxgtw,PRAM,$f-$q-$g

The type of processing is determined by the name of the parameter file before
the $f-$q-$g :
Note that there should be a comma between the PRAM and the f-q-g as the < or >
signs have other meanings to Unix.

IPXGTW can be run manually on the Gateway by running at the unix prompt :
    fip>ipxgtw atx2web,file-queue-grp
where   atx2web is the parameter file
    file    is the atex filename
    queue   is the atex queue name
    grp is the atex group name.
    (fip> is the unix prompt, not the command by the way!)

If the file is actually a 16 bit Atex file residing NOT on the Atex file system
but on a Unix (or Windows) file syntem, the systax can be :
    fip>ipxgtw param,/data1/exports/filename
ie there is no queue and group added and the path is hard coded.
If using this method for files which have NOT been generated on the Atex - such
as Babble - you may need to use the parameter 'allow-short-header:' to process
files with Header which have not been padded out to the end of a block.

Defining the actual destination can be a one or a two step affair.
First a route is found which is either the contents of a particular J11 field
OR forced to a fixed route using the 'force:' parameter.
IF the parameter 'noroutefile' is flagged, this route is the final destination
IF NOT this route is checked against the tables/gateway/ROUTE routing table and
the match is the final destination. This allows multiple destinations/copies
from a single outbound file.
The resultant destination(s) is the DU field as required for IPWHEEL and the
tables/sys/USERS file.

The two steps allow multiple or group destinations from a single Atex code.

The first step or route is normally the contents of the J11 header field 'TO'.
This field can be any other J11 field if specified with the 'fiphdr:NO'
parameter (see below). However it is more often forced to a specific route
(using the 'force:' parameter)

The name of the file is either the original filename or it can be changed to a
j11 header field (the SLug or CAtch for example where the actual filename may
be a SysGen $xxx type filename) or any FIPseq name. If not the original name,
the 'fiphdr' parameter for SN needs to be present in the parameter file. This
name is forced lowercase.

While the J11 header is stripped, individual J11 header fields can be converted
to those FIP header fields according to the parameter file, PRAM.

IAS files SHOULD be identified correctly from its start-of-header. But you can
force it with the 'ias:' keyword.
IAS files need multiple 'arecord:' keywords to PRECISELY map out the hold A
record (including fillers). Pls confer with whoever has the correct (?) doc on
A record for the IAS field names and sizes.

Syntax of the parameter file is :
    ; comment
    force   : force the route to this parameter which is then compared to
        the tables/gateway/ROUTE file. Normally EITHER the TO field
        OR force is used to define the route.   default: use TO field.
    default : default route if the TO field is blank or has not been
        specified or is not in the header. default: no default ROUTE
    type    : type of text processing (see below)   default: blank
    modes   : if the type of processing included mode strip, these
            are the modes to strip      default: 2678
    pchr    : (mode precedent chr)          default: {
    end-modes: use this flag to end modes with (pchr) E (mode). default: no
        For conversions to XML/HTML/NITF, this allows end tags to be added
        before the start of the next mode.
    noshowmodes: do not insert the mode change string - eg {M0. default: do
    noroutefile : do NOT use the tables/gateway/ROUTE file. def: use ROUTE
        In this case the 'force' or the 'TO' hdr field contains the
        destination to use (DU Fip Header field) which needs to be in
        the parameter file tables/sys/USERS.

For the type of processing for the TEXT - If type is NOT specified then the
modes, hnj and markup are stripped. Type is one or more single letter flags
which can be b=bin, t=typsetter file, m=pass modes, k=pass markup, h=leave hnj
There is also a type:a for all-modes (ie up to mode 14 rather than to mode 8).
Do NOT specify both type:m and type:a.

    For each header field that needs filling in :

    fiphdr: (2 letter FIP header field) (space/tab) (Atex sequence field)
        The Atex sequence field is any fixed text and/or 2letter Atex
        hdr fields (must be uppercase with preceeding Backslash) and/or 
        Unix escape chrs (\r, \n etc) or Escaped Numbers (\003)
        Note that Atex header fields are stripped of leading and 
        trailing spaces.

    Certain FIP header fields are used to control the routing/processing.
        SN - slugname -> FIP header field SN
        TO - to field - checked against entries in the ROUTE file
            To force ALL traffic to a destination, do NOT specify TO
            and set 'force:' to force the destination to the same
            as the parameter file name.
        PR - Priority (if necessary)
        DI - Msg line for Mailbox (only)
        SY - Atex Sys and Terminal number for logging purposes
        DE - delay until time/date
        DL - limit until time/date (Broadcast only)
    ; use the CATCH j11 field for SN, the FIP filename
    fiphdr:SN  \CA
    ; use the TO j11 field for TO, the FIP routing field
    fiphdr:TO  \TO
    fiphdr:PR  \PR
    fiphdr:DI  \MS
    fiphdr:SY  \SY
    : for the DELAY FIP header field, DE, use the j11 TIME (spc) (plus) DATE
    fiphdr:DE  \TI +\DA

Pseudo J11 header field '$$' may be used to put the first line of the J11 text
into a FIP header field. Eg:
    fiphdr:DI \$$
This allows only text in the chosen modes, strips leading quads, strips leading
and multiple spaces up to a quad or characters up to the line size (default 80
chrs or environment variable FIP_GTWY_LINE).

In addition FipHdr field SJ is always filled in with the actual j11 filename -
while SsG will have the queue and group.

The two FIP header fields DE and DL are flagged for DELAY and LIMIT fields and
hold the date/time for when the file should be delayed before sending OR by
which the file must be sent.
Delay and Limit are converted to a time in seconds from a header field of
format :
     hh:mm +d   where d is no of days relative from now
If the parameter 'date:abs' is set the format is :
     hh:mm dd/mm    where dd/mm is the day/month
If the parameter 'date:abs' and 'usadate:' is set the format is :
     hh:mm mm/dd    where mm/dd is the month/day if parameter usadate is set

There are a number of further Optional parameters which normally do not need to
be changed.
    queue   : queue to put output file in.      default: spool/2go
        This is a queue under 'spool' unless the parameter starts with
        a '/' when it is considered the full pathname.
        For example, specify 'queue:hdrchk' when you want all files
        to be routed via iphdrchk.
    private : queuename. If specified, this parameter creates a file
        named the same as the J11 in that queue. Only the text is
        placed in (the header is ignored) and all IPXGTW routing
        parameters, like 'queue', 'force' 'route', are ignored.
        There is neither an Atex J11 header nor a FIP header on the
        new file.
    privname: For private sessions, replace the filename with the following
        Normally the original Atex filename is used but this can be used
        to replace or add information.
        privname:\SN.\$Z    will add an extention with a sequence number
    nolog   : do NOT log incoming files     default: log
    chrset  : source chrset             default: atex
    usadate : Delay and/or Limit dates are in USA Date format
                            default: no
    before  : FIP sequence of text to go at the top of the text
    after   : FIP sequence of text to go after the text
                default for both before and after is none
    noj11hdr:   The j11 file is headerless  default: file has hdr
        This will also use the mount point /Atex/commgr/noh by default
        rather than /Atex/commgr/x11. This can be overridden by the 
        keyword 'j11path'.
    nofiphdr: do NOT place a FIP header at the top of the data. ie the data
        part of the file contains TEXT only.    default: do
    atex012 : The 1st non-space character of the parameter is that used for
            any Octal 12 atex chrs. The octal 12 chr is a NL which
            is what we normally use for any Quad. This defaults to
            octal 220. The parameter can be a chr, unix escape or
            octal number.
    softquad: Where non-quad end-of-lines need to be preserved, this is the
            string, which can be one or more fipseq chrs, to flag
            such a being. A non-quad eoln is, for example, an hnj
            loose line. A quad is QL to QM (2, 3, 4, 5) unless
            changed by the FIP_GTWY_EOLN environment variable.
    date    : Delay and/or Limit dates are in absolute
            ie actual days/month like 16/03 for 16th March
            The default is relative dates : +1 for tomorrow
    maxdelay : Maximum number of days for Delay and Limit.
            This logs a message in the Item Log if the delay is
            longer. Without this parameter, files are NEVER delayed.
                        default: no delay
    olddelay :(no of days) If the Delay or Limit field is BEFORE the current
            date/time and within this period, send it immediately.
            default: ignored if no maxdelay, 60 days otherwise.
    j11path : Gateway Unix path name    default: /Atex/commgr/x11
    route   : routing file in tables/gateway    default: ROUTE
    preserve-dishy: allow te discretionatry hyphen (034) thru.  default: strip it.
        If dishy is NOT 034, there can be an optional chr (in FipSeq) to use as the

IAS A record fields are specified with :
    arecord: 2 letter code and length of an IAS Classified Arecord field.
        These are in sequential order or use; any fillers - use a junk
        code (often the same junk code will do). While it is good
        practise to use the same codes as for IAS, Be careful NOT to
        reuse Fields that FIP uses for programs downstream.
        eg: arecord:AB  10
            arecord:AD  4
            arecord:ZZ  7   ; filler
            arecord:CC  12  .. etc

Extra FIP header fields can also be specified on the j11 by specifying on the
wrklst line:

wrklst  sy:lib-usr,xstart,/d,liberr-usr,,mpb4:<ipxgtw,PRAM,$f-$q-$g/QP:212777121

As per normal, take care to choose a hdr field that does not conflict with any
other FIP hdr field - we advise using ones starting with Q.

IPXGTW is also in /atx/prgms as UPPERCASE as required by gateway. This should
be a symbolic link to the program in /fip/bin

For checking the version number, type :
    ipxgtw -v 
to print version number and exit

Version Control
;014l   19oct98 ias better
    ;a/b 17aug01 allow modes up to 13 with type:a for allmodes
    ;c 24may02 allmodes now even leaves flashing....
    ;d 14jun02 added end-modes
    ;e 19sep02 allow unix files as is /fip/spool/xbabble/thision
    ;f 28sep02 added 'allow-short-header:'
    ;g-h 05feb03 added preserve-dishy:
    ;i 18jul03 added -F to allow for a FipHdr in the incoming file
    ;j-l 21aug03 flashing L for Loose line MAY be mode 8 or 9

(copyright) 2017 and previous years FingerPost Ltd.