RFC 1528

Principles of Operation for the TPC.INT Subdomain: Remote Printing -- Technical Procedures

๐Ÿ“… published October 1993, from ietf

RFC 1528 ๐Ÿ’– Principles of Operation for the TPC.INT Subdomain: Remote Printing -- Technical Procedures

Okay bestie, let's get into it ๐ŸŽ€ This RFC came out of the Network Working Group in October 1993, and it's classed as Experimental ๐Ÿงช Carl Malamud (Internet Multicasting Service) and Marshall Rose (Dover Beach Consulting, Inc.) wrote it, and it obsoletes RFC 1486 ๐Ÿ’…


Status of This Memo โœจ

This memo defines an Experimental Protocol for the Internet community, so it doesn't specify an Internet standard ๐Ÿฆ‹ They're asking for discussion and suggestions for improvement. For the standardization state and status of this protocol, check the current edition of "Internet Official Protocol Standards." Distribution of this memo is unlimited ๐Ÿ’Œ


Table of Contents ๐Ÿ“–

1. Introduction ..........................................   2
2. Naming, Addressing, and Routing .......................   2
2.1 Addressing ...........................................   2
2.2 Routing ..............................................   3
3. Procedure .............................................   3
3.1 Content-Types ........................................   4
3.2 Generating a Cover-Sheet .............................   4
3.3 Return Receipt .......................................   6
4. Usage Examples ........................................   6
4.1 Explicit Cover Sheet .................................   6
4.2 Implicit Cover Sheet .................................   7
4.3 Minimal, Text-only ...................................   7
5. Prototype Implementation ..............................   7
6. Future Issues .........................................   9
7. Security Considerations ...............................   9
8. Acknowledgements ......................................   9
9. References ............................................   9
10. Authors' Addresses ..................................   10
A. The application/remote-printing Content-Type .........   11
B. The image/tiff Content-Type ..........................   12

1. Introduction ๐ŸŒธ

Email is the preferred way to do third-party communication, but sometimes you need to print something in hard-copy form at a remote location ๐Ÿ“  The remote output device could be a standard line printer, a printer with multiple fonts and faces, a printer that can reproduce graphics, or a facsimile device. The output might also come with info that identifies the intended recipient ๐Ÿซถ This memo describes a technique for "remote printing" that uses the Internet mail infrastructure. It focuses especially on the case where the remote printers are connected to the international telephone network โ˜Ž๏ธ


2. Naming, Addressing, and Routing ๐Ÿงš

A printer is identified by a telephone number that corresponds to a G3-facsimile device connected to the international telephone network, for example:

+1 415 968 2510

Here, "+1" is the IDDD country code, and the rest of the string is a telephone number within that country ๐ŸŒ

2.1 Addressing ๐Ÿ’Œ

The number gets used to build the address of a remote printer server, and that address becomes the recipient address for the message. For example, the address can be either remote-printer@0.1.5.2.8.6.9.5.1.4.1.tpc.int or remote-printer.ATOM@0.1.5.2.8.6.9.5.1.4.1.tpc.int.

Here, "ATOM" is an optional RFC 822 atom [1]. It's an opaque string used for recipient identification when a cover-sheet gets generated. The domain-part is built by reversing the telephone number, converting each digit into a domain-label, and placing those labels under "tpc.int." ๐Ÿ”

Note that the mailbox syntax is purposefully restricted for the sake of pragmatism ๐Ÿ› ๏ธ To paraphrase RFC 822, an atom is defined as:

atom    = 1*atomchar

atomchar=  <any upper or lowercase alphabetic character
           (A-Z a-z)>
          / <any digit (0-9)>
          / "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+"
          / "-" / "/" / "=" / "?" / "^" / "_" / "`" / "{"
          / "|" / "}" / "~"

Finally, some Internet mail software (especially gateways from outside the Internet) puts strict limits on the size of a mailbox-string ๐Ÿ‘€ So originating user agents should take care to limit the local-part to no more than 70 or so characters ๐Ÿ™ˆ

2.2 Routing ๐Ÿ›ฃ๏ธ

The message gets routed in exactly the same way as all other electronic mail, which means it uses the MX algorithm [2]. A remote printer server might be able to reach lots of printers, so the wildcarding facilities of the DNS [3,4] are used for that ๐ŸŒˆ For example, say a remote printer server living at "dbc.mtview.ca.us" is willing to access any printer whose telephone number starts with the prefix +1 415 968. Then this resource record might be present:

*.8.6.9.5.1.4.1.tpc.int.    IN MX 10 dbc.mtview.ca.us.

If several remote printer servers were willing to access any printer in that prefix, then multiple MX resource records would be present ๐Ÿ“

It should be noted that a wildcard RR matching a remote printer server's address doesn't mean the telephone number is valid. And even if the number is valid, it doesn't mean a G3-facsimile device is actually connected to it ๐Ÿคทโ€โ™€๏ธ


3. Procedure ๐Ÿ“‹

When information is going to be remotely printed, the user application builds an RFC 822 message that contains a "Message-ID" field ๐Ÿ’œ

If the local-part of the address doesn't contain an opaque string for recipient identification, then the body must consist of "multipart/mixed" content [5] with two parts. The first part is an "application/remote-printing" content-type (defined in Appendix A), which gets used to generate a cover-sheet. The second part is an arbitrary content-type that matches the information to be printed. If the local-part of the address does contain an opaque string for recipient identification, then the body just consists of an arbitrary content-type matching the information to be printed โœจ

Either way, the message then gets sent to the remote printer server's electronic mail address ๐Ÿ“จ

3.1 Content-Types ๐ŸŽ€

Not all content-types have a natural printing representation, like "audio" or "video" content, and that's the reason for this rule ๐Ÿ”Š The second part of the "multipart/mixed" content should be one of the following:

text/plain, message/rfc822, application/postscript image/tiff
(defined in Appendix B), any multipart.

Note that:

  • (1) With the "text/plain" content-type, not all character sets may be available for printing.
  • (2) With the "message" content-type, the subordinate content will be processed recursively.
  • (3) With the "application/postscript" content-type, the remote printer server should evaluate the contents in a safe execution environment ๐Ÿ”
  • (4) With the "multipart" content-type, the subordinate contents will be processed recursively. For a "multipart/mixed" or "multipart/digest" content, each subordinate content starts on a new page. For a "multipart/parallel" content, all subordinate contents will, if possible, start on the same page. Naturally, when processing a "multipart/alternative" content, only one subordinate content will be printed ๐Ÿ“„

3.2 Generating a Cover-Sheet ๐Ÿช„

If the "application/remote-printing" content-type is present, it has all the info needed to generate a cover-sheet. Otherwise, the cover-sheet must be generated from whatever other information is available ๐Ÿงพ

Typically, a cover sheet has three sections:

  • information identifying the originator;
  • information identifying the recipient; and,
  • additional information supplied by the remote printer server.

To identify the originator, the remote printer server uses the message headers ๐Ÿ’ It usually strips any trace headers (that is, "Received" and "Return-Path") and then re-orders the remaining headers, starting with the "From" header.

To identify the recipient, the remote printer server consults the opaque string in the local-part of its address. For example, if the address is:

remote-printer.Arlington_Hewes/Room_403@0.1.5.2.8.6.9.5.1.4.1.tpc.int

then the opaque string consulted is Arlington_Hewes/Room_403 ๐Ÿ”

When generating a cover-sheet from this opaque string, the remote printer server interprets an underscore character ("_") as a space, and a solidus character ("/") as an end-of-line sequence. Two consecutive underscore characters in the opaque string get interpreted as a single underscore, and two consecutive solidus characters get interpreted as a single solidus ๐Ÿง  So the opaque string Arlington_Hewes/Room_403 might appear on the cover-sheet as:

To: Arlington Hewes
Room 403

3.3 Return Receipt ๐Ÿ’Œ

When the remote printer server finishes processing, a message is sent back to the originator. It says either that the message was successfully sent to the facsimile device, or that it failed, along with an explanation. For example, after several repeated attempts, there was no answer ๐Ÿ“ฌ


Part 1 ends here, bestie! ๐Ÿ’… Part 2 is coming next and it covers Section 4 (Usage Examples) through Appendix B, so stay tuned ๐Ÿงš๐Ÿ’–

5. Prototype Implementation โœจ

okay so good news bestie, there's an openly available prototype implementation ๐ŸŽ€ and you can literally go grab it. Here are the MIME instructions for retrieving it:

MIME-Version: 1.0
Content-Type: multipart/alternative;
        boundary="----- =_aaaaaaaaaa0"
Content-Description:  pointers to ftp and e-mail access

------- =_aaaaaaaaaa0
Content-Type: message/external-body;
        access-type="mail-server";
        server="archive-server@ftp.ics.uci.edu"

Content-Type: application/octet-stream; type="tar";
        x-conversions="x-compress"
Content-ID: <4599.735726126.1@dbc.mtview.ca.us>

mimesend mrose/tpc/rp.tar.Z

------- =_aaaaaaaaaa0
Content-Type: message/external-body;
        access-type="anon-ftp"; name="rp.tar.Z";
        directory="mrose/tpc"; site="ftp.ics.uci.edu"

Content-Type: application/octet-stream; type="tar";
        x-conversions="x-compress"
Content-ID: <4599.735726126.2@dbc.mtview.ca.us>

 ------- =_aaaaaaaaaa0--

ngl this package is giving UNIX vibes ๐Ÿง. It was built and tested under SunOS, and it pairs with an openly available facsimile package (Sam Leffler's FlexFAX package) ๐Ÿ“ . It has info for sites acting as either client or server participants, plus zone administrators ๐Ÿงš.


6. Future Issues ๐Ÿ”ฎ

okay so there are a few things this doc literally doesn't address yet ๐Ÿ™ˆ like:

  • determining which content-types and character sets are supported by a remote printer server;
  • introduction of authentication, integrity, privacy, authorization, and accounting services;
  • preferential selection of a remote printer server; and,
  • aggregation of multiple print recipients in a single message.

Future work might dig into these in detail ๐Ÿ’œ.

7. Security Considerations ๐Ÿšจ

โš ๏ธ Heads up, bestie: Internet mail may be subject to monitoring by third parties, and in particular, message relays. Yes, that means someone in the middle could be watching ๐Ÿ‘€. Treat it accordingly ๐Ÿ˜ญ.

8. Acknowledgements ๐Ÿซถ

This document is based on RFC 1486, "An Experiment in Remote Printing". Shoutout to the original work that made all of this possible ๐ŸŒธ.

9. References ๐Ÿ“š

[1] Crocker, D., "Standard for the Format of ARPA Internet Text Messages", STD 11, RFC 822, UDEL, August 1982.

[2] Partridge, C., "Mail Routing and the Domain System" STD 14, RFC 974, CSNET CIC BBN, January 1986.

[3] Mockapetris, P., "Domain Names -- Concepts and Facilities", STD 13, RFC 1034, USC/Information Sciences Institute, November 1987).

[4] Mockapetris, P., "Domain Names -- Implementation and Specification", STD 13, RFC 1035, USC/Information Sciences Institute, November 1987.

[5] Borenstein, N., and N. Freed, "MIME (Multipurpose Internet Mail Extensions) Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies", RFC 1521, Bellcore, Innosoft, September 1993.

10. Authors' Addresses ๐Ÿ’Œ

Carl Malamud
Internet Multicasting Service
Suite 1155, The National Press Building
Washington, DC 20045
US

Phone: +1 202 628 2044
Fax:   +1 202 628 2042
Email: carl@malamud.com


Marshall T. Rose
Dover Beach Consulting, Inc.
420 Whisman Court
Mountain View, CA  94043-2186
US

Phone: +1 415 968 1052
Fax:   +1 415 968 2510
Email: mrose@dbc.mtview.ca.us

Appendix A. The application/remote-printing Content-Type ๐Ÿ’…

  • (1) MIME type name: application
  • (2) MIME subtype name: remote-printing
  • (3) Required parameters: none
  • (4) Optional parameters: none
  • (5) Encoding considerations: 7bit preferred
  • (6) Security considerations: none
  • (7) Specification:

The "application/remote-printing" content-type contains originator and recipient information used when generating a cover-sheet ๐Ÿงพ. Using the ABNF notation of RFC 822, the syntax for this content is:

<content>         ::=  <recipient-info> CRLF
                       <originator-info>
                       [CRLF <cover-info>]

<recipient-info>  ::=   "Recipient"    ":" <value> CRLF
                         <address-info>
<originator-info> ::=   "Originator"   ":" <value> CRLF
                         <address-info>

<address-info>    ::=  ["Title"        ":" <value> CRLF]
                       ["Department"   ":" <value> CRLF]
                       ["Organization" ":" <value> CRLF]
                       ["Mailstop"     ":" <value> CRLF]
                       ["Address"      ":" <value> CRLF]
                       ["Telephone"    ":" <value> CRLF]
                        "Facsimile"    ":" <value> CRLF
                       ["Email"        ":" <value> CRLF]
<value>           ::=  *text
                       [CRLF LWSP-char     <value>     ]

<cover-info>      ::=  *(*text CRLF)

Note that the value of the Email field is an RFC 822 mailbox address ๐Ÿ’–.

Appendix B. The image/tiff Content-Type ๐Ÿฆ‹

  • (1) MIME type name: image
  • (2) MIME subtype name: tiff
  • (3) Required parameters: none
  • (4) Optional parameters: none
  • (5) Encoding considerations: base64
  • (6) Security considerations: none
  • (7) Published specification: TIFF class F, as defined in:
Tag Image File Format (TIFF)  revision 6.0

Developer's Desk
Aldus Corporation
411 First Ave. South
Suite 200
Seattle, WA  98104
206-622-5500

that's the whole thing bestie ๐ŸŒˆโœจ we did it ๐Ÿ‘‘

๐Ÿ“ฆ where this page comes from