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

Publication:    FSP-1010
Revision:       1
Title:          Via kludge specification
Author:         Colin Turner,
               Joaquim Homrighausen
Revision Date:  26 April 1999
Expiry Date:    26 April 2001
----------------------------------------------------------------------
Contents:
               1. Current practice
               2. Kludge specification
               3. Examples
               4. Deprecated formats
----------------------------------------------------------------------

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

 This document is a Fidonet Standards Proposal (FSP).

 This document specifies an optional Fidonet standard protocol for
 the Fidonet community, and requests discussion and suggestions for
 improvements.

 This document is released to the public domain, and may be used,
 copied or modified for any purpose whatever.


Abstract
--------

 Current practice for Fidonet Technology Network (FTN) NetMail
 messages is to track their progress through the network and
 programs by using control lines. These control lines are in
 the form of a kludge named Via.


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

 As NetMail messages are routed through a FidoNet Technology Network
 or as they are processed on a system, Via control lines are used to
 track their progress.

 A single NetMail message may have any number of Via control lines.

 The Via control lines 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 line by a single ASCII <CR>
 character (0Dh).

 A Via control line is typically added:

   when a netmail packer packs the NetMail for transmission to
   another system;

   when a netmail tracker inspects a NetMail.

2. Kludge specification
-----------------------

 The Via control line 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
 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 kludge. This may or may not include a
 domain indicator.

 @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.

 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 kludge to Universal
 Time (GMT or UTC) and use the "UTC" Time Zone indicator, where
 possible.

 The Time Zone field may only be ommitted 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.

 Program Name
 ------------

 This field is mandatory, and must follow the format used in the PID
 control line (detailed in FSC-46).

 Version
 -------

 This field is mandatory, and must follow the format used in the PID
 control line (detailed in FSC-46).

 Serial Number
 -------------

 This field is optional, and must follow the format used in the PID
 control line (detailed in FSC-46).

 Note that unlike many kludges, the "Via" text of the kludge itself
 is in mixed, and not all upper case.

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

 Example of valid usage are

 ^AVia 2:443/13 @19990305.043212.UTC O/T-Track+ 2.69
 ^AVia 2:443/13@fidonet @19980331.231202.UTC FrontDoor 2.32.mL
 ^AVia 2:443/13.0 @19990101.002102.UTC FastEcho 1.46.1 21321
 ^AVia 2:443/13 @19990323.230132 FakeMail 1.2
 ^AVia 2:2480/18@fidonet @19990307.182128.47.UTC ITrack+ 1.3/G6 FP000069

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 implentations 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 seperate 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. Author contact data
----------------------

 Colin Turner
 Fidonet: 2:443/13
 E-mail:  [email protected]
 WWW:     http://www.piglets.com

 Joaquim Homrighausen
 Fidonet: 2:201/330
 E-mail:  [email protected]
 WWW:     http://www.defsol.se


C. History
----------

 Rev.1, 990426: First release.

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