b2f:ascii
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
b2f:ascii [2025/02/12 10:54] – [Pending mail proposal] f4hof | b2f:ascii [2025/02/21 13:40] (current) – [Pending mail proposal] f4hof | ||
---|---|---|---|
Line 4: | Line 4: | ||
Commands and payload exchange is reduced to a minimum by pipelining multiple requests at a time. In typical transactions, | Commands and payload exchange is reduced to a minimum by pipelining multiple requests at a time. In typical transactions, | ||
- | |||
- | FIXME // | ||
* The protocol availability is indicated by the '' | * The protocol availability is indicated by the '' | ||
* All protocol command lines start in first column with the '' | * All protocol command lines start in first column with the '' | ||
* All protocol command lines are terminated by a Carriage Return (CR) character ('' | * All protocol command lines are terminated by a Carriage Return (CR) character ('' | ||
+ | * | ||
+ | The ASCII Basic Protocol protocol MUST operate over a communication bearer which provides reliable and ordered delivery of at least 7-bit US-ASCII characters ([[https:// | ||
===== Commands ===== | ===== Commands ===== | ||
==== Pending mail proposal ==== | ==== Pending mail proposal ==== | ||
+ | The message pending proposal ('' | ||
+ | It is composed of 7 mandatory fields. | ||
+ | |||
+ | When multiple messages are to be proposed, up to five proposals can be grouped for transmission in a single block. A group of proposals SHALL be followed by the prompt proposal ('' | ||
ABNF Grammar: | ABNF Grammar: | ||
- | < | + | < |
- | ASCII_MESG_TYPE = " | + | ASCII_MESG_FROM |
+ | ASCII_MESG_RCPT_BBS = 1*VCHAR ; Recipient FQDN / BBS | ||
+ | ASCII_MESG_RCPT_TO | ||
+ | ASCII_MESG_MID | ||
+ | ASCII_MESG_SIZE | ||
ASCII_PEND_PROPOSAL = " | ASCII_PEND_PROPOSAL = " | ||
- | ASCII_PEND_PROMPT = " | + | ASCII_PEND_CSUM = 0x20 2*2HEXDIG |
- | ASCII_XFER_PEND = </ | + | ASCII_PEND_PROMPT = " |
+ | ASCII_XFER_PEND = 1*5ASCII_PEND_PROPOSAL ASCII_PEND_PROMPT</ | ||
==== No message pending ==== | ==== No message pending ==== | ||
Line 51: | Line 60: | ||
ABNF Grammar: | ABNF Grammar: | ||
- | <code abnf> | + | <code abnf>RETR_TOKEN |
+ | ASCII_XFER_RETR = " | ||
==== Disconnection request ==== | ==== Disconnection request ==== | ||
Line 65: | Line 75: | ||
<code abnf> | <code abnf> | ||
- | ==== Message exchange | + | ==== Data transfer |
- | ABNF Grammar: | + | The data transfer direction is reversed after every block of data. |
+ | Each message is structured as following: | ||
+ | * The message title on the first line, | ||
+ | * The message text on the following lines, | ||
+ | * The end of message symbol (Ctrl Z / '' | ||
- | FIXME clarify the SUB end of message: is it '' | + | ABNF Grammar: |
- | <code abnf> | + | FIXME clarify the end of message marker: is it '' |
- | ASCII_MESG_HEADER = 1*(WSP / VCHAR) %x0D | + | <code abnf>ASCII_MESG_HEADER = 1*(WSP / VCHAR) %x0D |
ASCII_MESG_BODY = 1*( 1*(WSP / HTAB / VCHAR) %x0D ) | ASCII_MESG_BODY = 1*( 1*(WSP / HTAB / VCHAR) %x0D ) | ||
- | ASCII XFER_FRAME = 1*5( ASCII_MESG_HEADER ASCII_MESG_BODY %x1A %x0D) ASCII_MESG_PROPOSAL</ | + | ASCII XFER_FRAME = 1*5( ASCII_MESG_HEADER ASCII_MESG_BODY %x1A %x0D)</ |
===== Transaction flow ===== | ===== Transaction flow ===== | ||
+ | |||
+ | FIXME | ||
A transaction happens as following: | A transaction happens as following: | ||
Line 85: | Line 101: | ||
- The calling party answers with its SID banner, and either a proposal for messages pending expedition followed by the '' | - The calling party answers with its SID banner, and either a proposal for messages pending expedition followed by the '' | ||
- The called party issues a '' | - The called party issues a '' | ||
- | - The calling party transfers the selected messages, | + | - The calling party transfers the selected messages, |
- The called party sends either a list of pending message proposals, or we jump to the penultimate step. | - The called party sends either a list of pending message proposals, or we jump to the penultimate step. | ||
- The calling party issues a '' | - The calling party issues a '' | ||
Line 111: | Line 127: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | ==== Exchange with message transfer ==== | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | < | ||
+ | |||
+ | hscale=" | ||
+ | |||
+ | a [label=" | ||
+ | |||
+ | --- [label=" | ||
+ | c => a [label=" | ||
+ | c => a [label=" | ||
+ | c => a [label=">" | ||
+ | a => c [label=" | ||
+ | a => c [label=" | ||
+ | a => c [label=" | ||
+ | a => c [label=" | ||
+ | a => c [label=" | ||
+ | c => a [label=" | ||
+ | a => c [label=" | ||
+ | a => c [label=" | ||
+ | a => c [label=" | ||
+ | a => c [label=" | ||
+ | a => c [label=" | ||
+ | a => c [label=" | ||
+ | c => a [label=" | ||
+ | c => a [label=" | ||
+ | c => a [label=" | ||
+ | a => c [label=" | ||
+ | a => c [label=" | ||
+ | a => c [label=" | ||
+ | c => a [label=" | ||
+ | a => c [label=" | ||
+ | a => c [label=" | ||
+ | a => c [label=" | ||
+ | c => a [label=" | ||
+ | c => a [label=" | ||
+ | c => a [label=" | ||
+ | a => c [label=" | ||
+ | c => a [label=" | ||
+ | c => a [label=" | ||
+ | c => a [label=" | ||
+ | a => c [label=" | ||
+ | c => a [label=" | ||
+ | --- [label=" | ||
+ | }</ | ||
+ |
b2f/ascii.1739357669.txt.gz · Last modified: 2025/02/12 10:54 by f4hof