FSC-0033                                                                    June 11, 1989
                       FidoNet Message ID Proposal
                              By Todd Kover
                          1:261/5016;1:261/1028

Since there are many proposals for Message-IDs, for dupe-checking, and
reply-linking, I figured, I may as well do my best to add confusion to
things, and come up with another one.  :-)  In my playing around with
different ideas, and such, I came out with the following format:

^AFMSGID:DDDYYHHMMSSLLNNNNOOOOPPPP[ZZZZ][Domain]

^AFREPLY: < Repeat of what is above >

Here's a brief explanation of what each area is...

DDD:    (01-366) The day of the year. (Julian calendar method).

YY:     (0x00-0xFF) The year.  Now, this only gives 255 year accuracy, but,
       if the message has been in circulation that long, then it deserves
       to be read again.  :-)

HH:     (00-23) Hour which the message was written

MM:     (00-59) Minute which the message was written

SS:     (00-59) Seconds which the message was written

LL:     (0x01-0xFF) In reading NET_DEV, and FTSC, and all of the debating
       over "What happens when someone enters a message at the EXACT same
       time, on my multiline system?) Well, the best way to avoid that,
       is to either A) Set the ID while packing the message up, and only
       pack all the lines messages in, at once, or, use this option, that
       sets the line number, of the caller (0-0xFF)..  I figure that there
       won't be more than 255 lines to a single node...  I would opt for
       the former, but, I put this in here, to shut everyone up.  :-)

NNNN:   (0x00-0xFFFF)  The Net Number of the node, that this message
       originates from.

OOOO:   (0x00-0xFFFF)  The Node Number of the node, that this message
       originates from.

PPPP:   (0x00-0xFFFF)  The Point Number of the node, that this message
       originates from.

------
Now for the Optional ones:

ZZZZ:   Since there is a question as to weather or not Zones should be
       implemented, and, some packages do not implement them, I figured
       that this should be optional.  If it is not there, then a Domain
       address would be there, or, nothing at all.

Domain: This is for the people that use these (SEADogians, for one).
       I am assuming that Domains are alphabetic characters, and no
       numbers are there (Which is probobly stupid on my part), so that
       software can distingish between Domains, and Zones.

------

The FREPLY: is just teh FMSGID of the message that the message is replying
too.  That way, you can just compare.


In order to allow dupe checking, a system has to keep a backlog of all of
the message IDs for some period of time (say 2 weeks?) that pass through
the system, and has to compare a new one to the old ones.  If it matches,
then the message is a dupe.  This doesn't seem too efficient, since there
are alot of messages that pass through something such as a backbone, but,
I am sure there is some way to make it fast, I just haven't put enough
thought into it, yet).

------

One of the more nicer features about this, is that if the ID is not there,
then it can be calculated by examinining parts of the message, and the
header to get all of the information, and, it can be put in there.  Pretty
simple, eh?

------

If you want to get in contact with me, to make contacts on this, you can
reach me at my private node, 1:261/5016, but, since I only poll the Net-
Coordinator once a week, or so, to pick up my NodeDiff, and FidoNews, I
will be a little slow in responding to it.  You can reach me pretty
quickly on 1:261/1028, which is the only BBS that I frequent, just about
daily, and, if I don't, the sysop there will tell me if there is anything
waiting for me...  Direct flames, and such things to NIL:, thank you..