HTTP/1.1 200 OK Date: Tue, 09 Apr 2002 02:19:33 GMT Server: Apache/1.3.20 (Unix) Last-Modified: Thu, 18 Sep 1997 11:31:00 GMT ETag: "2ed958-58b9-342110f4" Accept-Ranges: bytes Content-Length: 22713 Connection: close Content-Type: text/plain Network Working C. Allocchio Group GARR-Italy INTERNET-DRAFT September 1997 Expires: March 1998 File: draft-ietf-fax-addressing-00.txt Fax address format in e-mail services v3.1 Status of this Memo This document is an Internet Draft. Internet Drafts are working documents of the Internet Engineering Task Force (IETF), its Areas, and its Working Groups. Note that other groups may also distribute working documents as Internet Drafts. Internet Drafts are draft documents valid for a maximum of six months. Internet Drafts may be updated, replaced, or obsoleted by other documents at any time. It is not appropriate to use Internet Drafts as reference material or to cite them other than as a ``working draft'' or ``work in progress.'' Please check the I-D abstract listing contained in each Internet Draft directory to learn the current status of this or any other Internet Draft. 1. Introduction Since the very first e-mail to fax gateway objects appeared, a number of different methods to specify a fax address into an e-mail address have been used by implementors. Two major objectives for this were - enable an e-mail user to send faxes from his/her e-mail interface; - enable some kind of "fax over e-mail service" transport, to reduce the costs of fax transmissions, and use the existing e-mail infrastructure. This memo describes a method to encode fax addresses into e-mail addresses. The opposite problem, i.e. to allow a traditional numeric-only fax machine user to access the e-mail transport service is not discussed here. This memo focuses on a generic e-mail service, being mainly composed by the two major standard interconnected e-mail services, Internet Mail and X.400, surrounded by a variety of non standard (mainly LAN-based) e-mail serivces with their gateways to one or both of the standard services. The TPC.INT experiment already proposes a method to encode into the Internet DNS fax Public Switched Telephone Network (PSTN) addresses. However TPC.INT approach is more oriented towards a "fax routing strategy", i.e. to create a public fax routing service that uses the Internet e-mail service, where the Internet DNS service provides embedded fax routing information. Such an approach, however, does not scale to closed users' group, or to LAN-based fax services. TPC.INT approach is not in competition with this proposal, though. In fact the TPC.INT addressing schema is one of the many possible methods to address a so called "I-fax device" in the Internet. Finally, in this proposal we try to obtain maximum compatibility with existing e-mail gateway services and standard specifications. In particular it allows tunneling of the Internet e-mail fax messages across X.400 services (via MIXER gateways), and also facilitate access to existing fax gateway services over different e-mail transport systems with minimal or null modifications to existing installed base. 2. Fax address In order to create a flexible and extensible set of definition, we need to define uniquely the meaning of the diffrerent tokens composing what is commonly called "fax address". A fax-address is composed of two main parts: - a global or local fax telephone number (possibly supplemented by a subaddress), called fax-mbox - an optional set of additional items, useful to add information about the fax recipient, called fax-recipient. The fax-mbox element is sometimes not enough to specify additional details, like intended recipient name, physical address, etc. The optional fax-recipient element provides information which can also be used by the offramp gateway to compose a fax cover page. NOTE: The fax-address is the "local" (also known as "Left Hand Side" or LHS) section of an e-mail address, i.e. the element on the left of the "@" sign. We define: fax-address ::= fax-mbox [ fax-recipient ] fax-mbox ::= "FAX=" ( global-phone / local-phone ) [ sub-sep sub-addr ] [post-sep post-dial] ; note that "FAX=" is case INSENSITIVE. NOTE: see section 4 in case multiple sub-addr need to be specified. global-phone ::= "+" int-country-code [ area-code ] local-number ; This is in agreement with ITU E.164 specification. ; area-code can be omitted only for countries ; which do not use an area-code system. ; This is a globally unique identifier on the PSTN ; and it must be reachable from anywhere. NOTE: the pause character is not allowed in global-phone. If the User Agent (UA) allow insertion of the pause character also into the global-phone object, then this must be removed before submission to the MTA. local-phone ::= ( local-type1 / local-type2 / local-type3 ) NOTE: a local-phone specification is a sequence of digits and pauses which should be dialled by the MTA specified by mta-I-fax (see section 3) to reach the destination fax device. Other MTAs should only transfer the message around without modification until then given destination MTA is reached. However the implementation scenario is complex and its full discussion is out of scope in this document. local-type1 ::= [ exit-code ] int-access-code int-country-code [ [ pause ] area-code ] [ pause ] local-number ; this is the usual number dialed on traditional ; fax devices for an international call. ; area-code can be omitted only for countries ; which do not use an area-code system. local-type2 ::= [ exit-code ] long-distance-access area-code [ pause ] local-number ; this is the usual number dialed on traditional ; fax devices for a national long distance call. local-type3 ::= [ exit-code ] [ local-number ] ; this is the usual number dialed on traditional ; fax devices for a local call or in countries ; where the area-code is not in use. ; Note that it could also be totally missing for ; cases where the local dialling device rely on ; local post-dial sequences only. int-country-code ::= 1*DIGIT ; without the local international access ; prefix int-access-code ::= 1*DIGIT ; examples: "00", "010", "19" long-distance-access ::= 1*DIGIT ; in many countries this code is "0" or "1" exit-code ::= phone-string ; this include anything needed to enable dialling, like ; the digit to access outside line, the long distance ; carrier access code, the access password to the service ; and also allows special DTMF "#" and "*" codes area-code ::= 1*DIGIT ; without the eventual leading long-distance-access code. ; NOTE: some countries do not use an internal area-code ; structure local-number ::= 1*( DIGIT / pause ) ; this is the usual number dialed on traditional ; fax devices for a local call IMPORTANT NOTE: the description of local-phone is complex due to a large number of possible variants in the existing phone systems. However its own structure can also be described as a 'sequence of DIGIT, pause, tonewait, "#" and "*" appropriate to the local dialling environment in order to reach the final destination device'. phone-string ::= 1*( DIGIT / pause / tonewait / "#" / "*" ) ; this includes also "#" and "*" DTMF codes. sub-sep ::= ( t33-sep / isdn-sep ) t33-sep ::= ( "s" / "S" ) isdn-sep ::= ( "i" / "I") > Alternative: we can consider sub-addr as more explicitly separated with > > t33-sep ::= "/TSUB=" > ; note that "/TSUB=" is case INSENSITIVE > > isdn-sep ::= "/ISUB=" > ; note that "/ISUB=" is case INSENSITIVE > sub-addr ::= 1*DIGIT pause ::= ( "p" / "P" ) tonewait ::= ( "w" / "W" ) NOTE: "pause" and "tonewait" character interpretation in local-phone numbers depends on the specific MTA implementation. Thus its exact meaning need not to be defined here. post-sep ::= ( "a" / "A" ) > Alternative: we can consider post-dial as more explicitly separated with > > post-sep ::= "/POSTD=" > ; note that "/POSTD=" is case INSENSITIVE > post-dial ::= phone-string ; this include anything needed to access the final device ; on the PSTN, like further dialing sequenes ; and also allows special DTMF "#" and "*" codes A number of fax-mbox examples are listed in section 5.1 We define now the optional and extensible fax-recipient item: fax-recipient ::= [ recipient-name ] [ 1*( recipient-qualifier ) ] recipient-name ::= ( personal-type1 / personal-type2 ) personal-type1 ::= "/PN=" [ givenname [ "." ] ] [ initials [ "." ] ] surname ; this is compatible with ITU F.401 personal-type2 ::= [ "/G=" givenname ] [ "/I=" initials ] "/S=" surname ; this is compatible with ITU F.401 givenname ::= 1*( DIGIT / ALPHA ) initials ::= 1*( DIGIT / ALPHA ) surname ::= 1*( DIGIT / ALPHA ) NOTE: the two possible formats of recipient-name are both in common use. Implementations should accept both, but generate personal-type1 only. And also the extensible recipient-qualifier: recipient-qualifier :== ( qualif-type1 / qualif-type2 ) qualif-type1 ::= "/" keyword "=" string keyword ::= 1*( DIGIT / ALPHA / "-" ) ; note that SP (space) is not allowed in keyword qualif-type2 ::= "/" x400-label "=" printablestring x400-label ::= ( "GQ" / "O" / "OU1" / "OU2" / "OU3" / "OU4" / "P" / "A" / "C" / "PD-PN" / "PD-EA" / "PD-ED" / "PD-OFN" / "PD-OF" / "PD-O" / "PD-S" / "PD-A" / "PD-U" / "PD-L" / "PD-R" / "PD-B" / "PD-PC" / "PD-SN" / "PD-C" / "X121" / "E164" / "PSAP" / "N-ID" / "T-ID" / "T-TY" / "DD." dd-key ) ; this is the full list of existing text labels ; according to ITU F.401. "PD-x" labels provide ; a set of predefined attributes for physical ; delivery which can be also useful for fax ; recipient identification. dd-key ::= 1*( DIGIT / ALPHA / "-" ) ; note that SP (space) is not allowed in dd-key string ::= PCHAR ; note that printable characters are %x20-7E printablestring ::= 1*( DIGIT / ALPHA / SP / "'" / "(" / ")" / "+" / "," / "-" / "." / "/" / ":" / "=" / "?" ) ; this definition comes from ITU F.401 and ; [MIXER]. NOTE: if we use WSP and other specials in string, the obtained fax-address will result in quoted-string; this could create problems to some existing broken MTA and UA implementations. WSP and specials are defined in [rfc822bis]. The specific use of extension keywords, and the eventual registration of extension keyword is out of the scope of this specification. Specific qualif-type1 and qualif-type2 use is an implementation issue. The fax-recipient object is intended to specify per-recipient elements to be used on the fax cover page generated by the MTA given in mta-I-fax. See also appendix A for additional details on cover generation elements. See section 5.2 for fax-recipient examples. 3. The e-mail address of the I-fax device: mta-I-fax An "I-fax device" owns an e-mail address, or to be more exact, a name which enables a mail system to identify it on the e-mail global system. In Internet mail, this is the Right Hand Side (RHS) part of the address, i.e. the part on the right of the "@" sign. We will call this mta-I-fax. mta-I-fax ::= domain where domain SHALL be a fully-qualified canonical domain name as defined in RFC 1035 and the SMTP specification syntax production for as defined in RFC 821. > Note: check for correct reference definition 4. The fax-email The complete structure used to transfer a fax address over the Internet e-mail transport system is called fax-email. This object is a an e-mail address which conforms to RFC822 addr-spec syntax, with extra structure which allows the fax number to be identified. fax-email ::= ["/"] fax-address ["/"] "@" mta-I-fax NOTE: the optional "/" characters can result from other mail transport services gateways, where it is also an optional element. Implementations should accept it, but should not generate such element. In case there are multiple sub-addr to be given on the same fax-mbox then multiple fax-email elements will be used. The UA could accept multiple sub-addr elements for the same global-phone / local-phone, but it must generate multiple fax-mbox, when passing the message to the MTA. 5. Examples In order to clarify the specification we present here a limited set of examples. 5.1 fax-mbox examples A fax-mbox address in Italy, using global-phone, without sub-addr: FAX=+3940226338 A fax-mbox address in Germany, using global-phone, with T.33 sub-addr 1234: FAX=+49817856345s1234 A fax-mbox address in U.S.A., using global-phone, with ISDN sub-addr 8745 and post-dial sequence p1w7005393w373 FAX=+12024557622i8745Ap1w7005393w373 A fax-mbox address in Italy, using local-phone, dialed from an MTA in Germany, with int-access-code "00", with T.33 subaddress "4312" and without pause: FAX=003940226338s4312 The same fax-mbox address in Italy, using local-phone dialed from an MTA in Italy (long distance call), with long-distant-access "0", with exit-code "9", T.33 subaddress "4312" and pause "p": FAX=9p040p226338s4312 A fax-mbox address in North America, using global-phone, without sub-addr: FAX=+12023445723 A fax-mbox address in France (no real area-code system), using local-phone dialed from an MTA in France (long distance call), with exit-code "0", T.33 subaddress "3345" and pause "p": FAX=0p34782289s3345 A fax-mbox address in North America, using local-phone, without sub-addr, without local-number, using only post-dial sequences to reach numbers stored in a locally defined short-dial numbers database, where 6743 is an access password, and 99p51 is the sequence to access the local short-dial number: FAX=w6743w99p51 5.2 fax-recipient examples Here are a number of fax-recipient examples. Please note that fax-recipient is just an optional element, and thus a fax-mbox element also is required in a fax-address. A fax-recipient using only recipient-name of personal-type1, with givenname initials and surname: /PN=Tom.J.Smiths A fax-recipient using only recipient-name of personal-type1, with givenname and surname: /PN=Mark.Collins A fax-recipient using only recipient-name of personal-type2, with surname only: /S=Smiths A fax-recipient using recipient-name of personal-type1, and one recipient-qualifier extension: /PN=J.Smiths/dept=Quaility-control A fax-recipient using two recipient-qualifier extension, only: /office=T2-33A/dept=Q-C A fax-reciepint using some recipient-quelifier extension derived from ITU F.401 physical delivery label set: /PD-S=Main.Street/PD-SN=45/PD-OF=Sales.dept 5.3 fax-address examples Some fax-address examples, obtained combining elements from previous examples. There are complete addresses which can be used as "local part" (LHS) element of an e-mail address. Without optional fax-recipient: FAX=+12023445723 With fax-recipient of personal-type1: FAX=+3940226338/PN=Mark.Collins With fax-recipient made of two recipient-qualifier extensions: FAX=9p040p226338s4312/office=T2-33A/dept=Q-C 5.4 fax-email examples Here are the same addresses as before, where "faxgw" is the mta-I-fax field: FAX=+12023445723@faxgw FAX=+3940226338/PN=Mark.Collins@faxgw FAX=9p040p226338s4312/office=T2-33A/dept=Q-C@faxgw FAX=+3940226338/PN=Mark.Collins/@faxgw NOTE: the optional "/" in front for the "@" sign can be generated by gateways to other services, like MIXER. 5.5 A complete SMTP transaction example: Here is an example of complete SMTP transaction. S: C: S: 220 foo.mailfax.com ESMTP service ready C: EHLO pc.mailfax.com S: 250 foo.mailfax.com says hello C: MAIL FROM: S: 250 Sender ok C: RCPT TO: S: 250 recipient ok C: DATA S: 354 Enter your data C: From: Thomas Blake C: To: C: Subject: Hello there C: MIME-version: 1.0 C: Date: Mon, 01 Sep 1997 18:14:23 -0700 C: C: This is a MIME message. It contains a C: TIFF-F fax bodypart C: C:--16820115-1435684603#2306 C: Content-Type: image/TIFF-F C: Content-Tranfer-Encoding: BASE64 C: Content-Description: FAX C: C: ABAA745HDKLSW932ALSDL3ANCVSASDFLALSDFA C: 87AASS2999499ASDANASDF0000ASDFASDFNANN C: 87BBHDXBADS00288SADFNAZBZNNDNNSNNA11A0 C: C:--16820115-1435684603#2306 C: . S: 250 Okay C: QUIT S: 221 Goodbye 6. Conclusion With this proposal we try to create a standard encoding for fax addresses within global e-mail transport system. The proposal requires no changes to existing e-mail software. An update to existing MIXER gateways specification is envisaged, to extend accessibility also to X.400 fax gateway services in a transparent way. 7. Security Considerations Security consideration are still to be defined... 8. Author's Address Claudio Allocchio Sincrotrone Trieste SS 14 Km 163.5 Basovizza I 34012 Trieste Italy RFC822: Claudio.Allocchio@elettra.trieste.it X.400: C=it;A=garr;P=Trieste;O=Elettra; S=Allocchio;G=Claudio; Phone: +39 40 3758523 Fax: +39 40 3758565 A. Fax cover generation issues In electronic mail world, messages contain an header which gives information about different items: some of them are intended for message identification, while others contain information usable by the recipient. The equivalent of the message headers for faxes is the fax cover, as it also conveys similar information. Moreover for faxes there are sometimes legal and official requirements which makes compulsory the generation of certain information of the fax cover. The fax cover generation is a complex topic and needs a detailed study. In this appendix we only define some methods and equivalences for fax cover generation starting from RFC822 message headers and we suggest some examples on how fax-recipient optional fields can be used on the fax cover. For the complete description of fax cover generation methods, please refer to [document in preparation]. A.1 Use of message header fields for cover generation In this section we define a set of message headers which should be included in fax message cover. These headers will be included for all recipients of the fax message. The following header fields, when present, must be included into the generated fax cover page: Date Message-Id Reply-To Sensitivity From Importance Subject To Cc Bcc NOTE: if fax message is generated from a Bcc destination address, "blind carbon copy" rules apply, i.e. other recipients must not be present on fax cover. Any other header field may be included, when present, into the generated fax cover page. A.2 Cover page elements generated from fax-recipient information Using the optional fax-recipient information, the sender can specify further detailed information to be used (also for) fax cover generation. This information will be included only on the fax cover page being generated for the specific fax-mbox. A.2.1 recipient-name The recipient-name field, if present, must be included on the fax cover page. The field must be used to specify the name of the intended fax recipient. A.2.2 recipient-qualifier The recipient-qualifier field, if present, should be included on the fax cover page. Due to its "label" = "value" format, it is suggested to generate fax cover fields in a consistent syntax, for example: label: value A set of "label" human readable descriptions for x400-label is given in ITU F.401, tables B-1/F.401, B-2/F.401, B-3/F.401; they could suggest a consistent method for some fax cover fields representation. B. References to be completed * * reference for Importance and Sensitivity (RFCxxx) * reference for ITU F.401 * reference for ITU E.164 * reference for RFC1035 (and others)