**********************************************************************
FTSC FIDONET TECHNICAL STANDARDS COMMITTEE
**********************************************************************

Publication: FTS-4009
Revision: 1
Title: Netmail tracking (Via)
Author: FTSC
Issue Date: 16 May 2003
Review Date: 16 May 2005
----------------------------------------------------------------------
Contents:
1. Current practice
2. Control paragraph specification
3. Examples
4. Deprecated formats
A. References
B. History
----------------------------------------------------------------------

Status of this document
-----------------------

This document is a Fidonet Technical Standard (FTS), issued by the
FTSC for the benefit of the Fidonet community.

This document is based on the FSP-1010 proposal by Colin Turner,
2:443/13, and Joaquim Homrighausen, 2:201/330.
This document is released to the public domain, and may be used,
copied or modified for any purpose whatsoever.

1. Current practice
-------------------

As Netmail messages are routed through FidoNet, or as they are
processed on a system, Via control paragraphs are added to track
their progress.
The Via control paragraphs are stored in a block which starts after
any message text. New Via lines should be added to the end of the
block separated from the preceding control paragraph by a single
ASCII carriage-return character (0Dh). There is no limit to the
number of Via control paragraphs in each message.

Note that the "Via" tag is in mixed case, not all upper case like
most control tags.
A Via control paragraph is typically added:
when a Netmail packer packs the Netmail for transmission to
another system;
when a netmail tracker inspects a Netmail.

2. Control paragraph specification
----------------------------------

The Via control paragraph is formatted as a number of fields,
separated by single space (20h) characters, as follows
^AVia <FTN Address> @YYYYMMDD.HHMMSS[.Precise][.Time Zone]
<Program Name> <Version> [Serial Number]<CR>
Where ^A denotes the ASCII <SOH> (01h) character, and <CR> is the
carriage-return character (0Dh).
The fields are defined as follows:
FTN Address
-----------

This field is mandatory and is the FidoNet Technology address of
the system inserting the control paragraph, using standard Fidonet
addressing notation, Z:N/F[.P][@domain]
@YYYYMMDD.HHMMSS
----------------
This field is mandatory and consists of a time stamp. This is the
time at which the stamp was placed. The subcomponents are
YYYY, the calendar year, in full four digit, decimal form;
MM, the calendar month, in the range 01 to 12, this must be a
zero padded, two digit decimal number;
DD, the day of the month, in the range 01 to 31, this must be a
zero padded, two digit decimal number;
HH, hours, in the range 00 to 23, this must be a zero padded,
two digit decimal number;
MM, minutes, in the range 00 to 59, this must be a zero padded,
two digit decimal number;
SS. seconds, in the range 00 to 59, this must be a zero padded,
two digit decimal number.
Precise
-------
This field is optional and takes the form of extra precision in the
time stamp.
If this field is present:
it must begin with a single period character;
this period must be followed by one or more decimal digits;
the field has ended when another period or space is encountered;
each decimal digit in the field following this character
represents the time of the via line in fractions of a second,
such that the the first digit represents tenths of a second,
the second digit represents hundreds of a second and so on.

Robust implementations must check to ensure this field is numeric to
avoid confusion with the Time Zone field.
Time Zone
---------

This field is optional, and must be a short, widely accepted
alphabetical abbreviation of the time zone that the time stamp
in the Via line pertains to.
The use of various Time Zone values is deprecated, implementations
should attempt to convert the timestamp in the control paragraph to
Universal Time (GMT or UTC) and use the "UTC" Time Zone indicator,
where possible.
The Time Zone field may only be omitted when it is not possible for
the implementation to determine the correct offset from UTC, and in
this case the time stamp must represent local time on the generating
system.

Robust implementations must check to ensure this field is not
numeric to avoid confusion with the Precise field.
Program Name
------------
This field is a mandatory string field of up to ten (10) characters
naming the product inserting the Via line.
Version
-------

This field is a mandatory string field of up to ten (10) characters
specifying the version of the product inserting the Via line,
including any alpha, beta or gamma status.
Serial Number
-------------
This field is an optional string field of up to ten (10) characters
identifying the specific copy of the product inserting the Via line.

3. Examples
-----------

Example of valid usage are
^AVia 1:2/3 @19990305.043212.UTC O/T-Track+ 2.69
^AVia 1:2/3@fidonet @19980331.231202.UTC FrontDoor 2.32.mL
^AVia 1:2/3.0 @19990101.002102.UTC FastEcho 1.46.1 21321
^AVia 1:2/3 @19990323.230132 FakeMail 1.2
^AVia 1:2/3 @20030403.182824.UTC Gleipner/Java 1.0/pre
^AVia 1:2/3 @20030403.193223.UTC hpt 1.2.2-stable/os2
^AVia D'Bridge 1.58 1:2/3 04/03 20:47
^AVia 1:2/3@fidonet @20030404.030004.UTC O/T-Track+ 2.66b
^AVia Squish/386 1.11 1:2/3, Thu Apr 03 2003 at 23:16 UTC
^AVia 1:2/3 FTrack 3.1/W32 04 Apr 2003 09:33:07 UTC+1000
^AVia ifmail 1:2/3@fidonet, Fri Apr 11 2003 at 06:01 (2.15)
^AVia RTrk+ 1:2/3@fidonet, Apr 22 2003 at 18:25
^AVia BBBS/NT v4.01 Flag-4 1:2/3.0, @030505155114 EDT+5

4. Deprecated formats
---------------------

Some other formats for the Via line are in use today, but these
formats are rather variable and inconsistent in nature, while
the format specified above is both more widespread and more
consistent.
New implementations may need to parse these formats, but must not
generate them.
The formats in use include, but are not limited to
<NAME> [VERSION] [SERIAL] <ADDRESS> <TIMESTAMP> <TIMEZONE>
<NAME> <ADDRESS>, <TIMESTAMP> <TIMEZONE> <VERSION>
Not that the time stamp in the above formats is also widely
variable, and takes forms which include, but may not be limited to
<Day> <Month> <Year> AT <Hour>:<Min>:[Sec]
<Day of Week> <Month> <Day of Month> <Year> <Hour>:<Min>:<Sec>
ON <Day of Month> <Month> <Year> <Hour>:<Min>:<Sec>
<Month>/<Day> <Hour>:<Min>
@YYMMDDHHMMSS
In the last listed format, observe in particular the two digit year
and lack of period to separate the date from time.

A. References
-------------

[FTS-1] "A Basic FidoNet(r) Technical Standard Revision 16", Randy
Bush. September 1995.

[FSC-46] "A Product Identifier for FidoNet Message Handlers",
Joaquim Homrighausen, August 1994.

B. History
----------

Rev.1, 20030516: First release (revised from FSP-1010 by FTSC; note
the lack of a colon after the "Via" tag)

**********************************************************************