RFC 3191

Minimal GSTN address format in Internet Mail

πŸ“… published October 2001, from ietf

RFC 3191 πŸ’– Minimal GSTN address format in Internet Mail

Okay bestie, this is RFC 3191 and it is SO cute πŸŽ€ It's about how you squeeze a phone number into an email address so the mail system can hand it off to phone-ish services. Here's the title block so you know the deets:

  • Network Working Group 🌸
  • Request for Comments: 3191
  • Author: C. Allocchio (GARR-Italy) 🧚
  • Date: October 2001
  • Category: Standards Track
  • Obsoletes: 2303
  • Updates: 2846

Status of This Memo ✨

This document specifies an Internet standards track protocol for the Internet community, and asks for discussion and suggestions for improvements. Check the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

Copyright (C) The Internet Society (2001). All Rights Reserved.

Abstract πŸ’…

This memo describes a simple method of encoding Global Switched Telephone Network (GSTN) addresses (commonly called "telephone numbers") in the local-part of Internet email addresses. It also brings in an extension mechanism so email gateways can encode extra standard attributes needed to reach GSTN-based services. πŸ“ž

1. Introduction πŸ¦‹

Okay so, like with every Internet mail address, the left-hand-side (local-part) of an address made under this spec is not supposed to be interpreted by anyone except the MTA that handles messages for the domain on the right-hand-side. Hands off! πŸ™ˆ

Ever since the very first e-mail to GSTN services gateway showed up, implementors have been coming up with different ways to write a GSTN address as an email address. People had a few goals in mind: letting an email user reach GSTN services straight from their inbox, and allowing a "GSTN over e-mail service" transport that could cut the cost of long distance calls, all while using the email infrastructure that already exists. πŸ’Έ

This memo describes the MINIMAL addressing method for encoding GSTN addresses into email addresses, plus the standard extension mechanism for defining more standard elements. The opposite problem, letting a traditional numeric-only GSTN device user get onto the email transport service, is not covered here. πŸ“Ÿ

The IANA registration templates that MUST be used to register any standard element defined under this spec are in the "IANA Considerations" chapter (section 7 of this document). πŸ“‹

All implementations supporting this GSTN over e-mail service MUST support, at minimum, the specification in this document. Converting the entire range of GSTN addressing into email is a whole complicated situation, and it's out of scope for this minimal spec. πŸ™…β€β™€οΈ

1.1 Terminology and Syntax conventions

Here the formal definitions are written in ABNF syntax, as defined in [7]. This memo also uses some of the "CORE DEFINITIONS" from "APPENDIX A - CORE" of that document. The exact meaning of the capitalized words below is defined in reference [6]:

"MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "MAY", "OPTIONAL"

This document also defines some new terms, and they are super important so pay attention πŸ‘€

  • I-pstn device: a device that has an Internet domain name and can communicate either directly or indirectly with the GSTN network. πŸ“±
  • mta-I-pstn: the Internet domain name that uniquely identifies an I-pstn device over the Internet. πŸͺͺ
  • pstn-email: the complete Internet e-mail address structure used to carry a GSTN address over the Internet e-mail service. πŸ’Œ

2. Minimal GSTN address πŸ’Ž

The minimal way to write a GSTN address inside an email address looks like this:

pstn-address = pstn-mbox  [ qualif-type1 ]

pstn-mbox = service-selector "=" global-phone

service-selector = 1*( DIGIT / ALPHA / "-" )
                   ; note that SP (space) is not allowed in
                   ; service-selector.
                   ; service-selector MUST be handled as a case
                   ; INSENSITIVE string by implementations.

Other specs that adopt the "pstn-address" definition MUST define and register a unique case insensitive "service-selector" with IANA. That's how the messaging service involved gets identified. 🏷️

Those specs and registrations MUST also define which minimal "qualif-type1" extensions, if any, MUST be supported for that messaging service. 🧩

Implementations that conform to this minimal requirements spec are allowed to ignore any other non-minimal extension address elements that show up in the "pstn-address". However, conforming implementations MUST preserve all "qualif-type1" address elements they receive. Don't drop the good stuff! 🫢

The generic "qualif-type1" element is defined as:

qualif-type1 = "/" keyword "=" string

keyword = 1*( DIGIT / ALPHA / "-" )
          ; note that SP (space) is not allowed in keyword

string = PCHAR
         ; note that printable characters are %x20-7E

So basically, every "pstn-address" extension element MUST be defined in the "qualif-type1" form when it gets registered with IANA. πŸ“

2.1 Minimal "global-phone" definition 🌍

The job of the global-phone element is to represent standard E.164 numeric addresses [10] inside an e-mail addressing syntax that complies with the standard e-mail specs given in [1] and [2]. πŸ“ž

The minimal supported syntax for the global-phone element looks like this:

global-phone = "+" 1*( DIGIT / written-sep )

written-sep = ( "-" / "." )

Other dialing schemes for GSTN numbers (like private numbering plans or local dialing conventions) are allowed too. That doesn't cancel out the mandatory requirement to support the "global-phone" syntax within the minimal GSTN address format, though. Both can coexist! 🀝

Any other dialing scheme MUST NOT use the leading "+" defined here between the "=" sign and the dialing string. The "+" sign is strictly reserved for the standard "global-phone" syntax. Hands off the plus! βž•πŸš«

Note: The specification of alternate dialing schemas is out of scope for this minimal specification.

This document also lets you use written-sep elements to make GSTN e-mail addresses easier for humans to read. Written-sep elements can go between dial elements, like digits and so on. πŸ‘€

Implementors' note: Using written-sep elements is allowed, but NOT recommended for transmission. Any occurrences of written-sep elements in a pstn-mbox MUST be ignored by all conformant implementations. πŸ™ƒ

Oops, I'm capitalizing "NOT recommended" on purpose there because that's how the spec says it. Fine, bestie.

2.2 The minimal "pstn-address" examples πŸŽ€

Here are some examples of minimal pstn-address:

VOICE=+3940226338

FAX=+12027653000/T33S=6377

SMS=+33-1-88335215
Note: These examples are given as illustrations only; they do not necessarily represent valid pstn-addresses. πŸ™ˆ

3. The e-mail address of the I-pstn device: mta-I-pstn πŸ›°οΈ

An "I-pstn device" has, among its characteristics, a unique Internet domain name that identifies it on the Internet. In Internet mail, that's the Right Hand Side (RHS) of the address, meaning the part on the right of the "@" sign. For this document we'll call it "mta-I-pstn". ✨

mta-I-pstn = domain

For "domain" strings used in SMTP transmissions, the string MUST conform to the requirements of those standards <domain> specifications [1], [3]. For "domain" strings used in message content headers, the string MUST conform to the requirements of the relevant standards [2], [3]. Rules are rules! πŸ“œ

Note: Using "domain names" or "domain literals" is permitted in addresses in both the SMTP envelope and message header fields. πŸ’…

4. The pstn-email πŸ’Œ

The full structure used to transfer a minimal GSTN address over the Internet e-mail transport system is called "pstn-email". It's an e-mail address that conforms to the [2] and [3] "addr-spec" syntax, with some structure refinements that let the GSTN number get identified. 🧁

pstn-email =  ["""] ["/"] pstn-address ["/"] ["""] "@" mta-I-pstn

Implementors' note: The optional "/" characters can show up from translations done by other transport gateways (like some X.400 gateways) that included "/" as an optional element. Implementations MUST accept the optional slashes but SHOULD NOT generate them. Gateways are allowed to strip them off when converting to Internet mail addressing. The relevant standards [2], [3] define exactly when the optional "quotes" characters surrounding the entire local part (the part on the left of the "@" character in the pstn-email) MUST be added. 🫣

4.1 Multiple subaddresses πŸ‘―

Some GSTN applications use multiple subaddresses. In email practice, though, every recipient always gets their own separate, unique email address. Different vibes! πŸ’β€β™€οΈ

If a particular GSTN service needs multiple subaddresses (in any form the standard spec for that GSTN service defines) that are all tied to the same "pstn-mbox", then using multiple "pstn-email" elements is REQUIRED. πŸ“¬

Implementors' note: The UA may accept multiple subaddress elements for the same global-phone, but it MUST generate multiple "pstn-mbox" elements when submitting the message to the MTA. πŸ“€

4.2 Some examples of minimal "pstn-email" addresses πŸ’–

Here are some examples of minimal pstn-email addresses:

VOICE=+3940226338@worldvoice.com

FAX=+1.202.7653000/T33S=6377@faxserv.org

/SMS=+33-1-88335215/@telecom.com
Note: These examples are given as illustrations only; they do not necessarily represent valid pstn-addresses. πŸ™ˆ

5. Conclusions 🏁

This proposal makes a minimal standard encoding for GSTN addresses inside the global e-mail transport system. It also defines the standard extension mechanism for introducing new elements for GSTN addresses. Lowkey genius. πŸ‘‘

The proposal is consistent with existing e-mail standards. Each specific GSTN service that uses this proposal MUST define and register its own "service-selector" specification with IANA, and MUST define and register any other "qualif-type1" elements it needs for its specific application. An example of such an application is in reference [13]. πŸ”₯

6. Security Considerations πŸ”

This document specifies a way to encode GSTN addresses into e-mail addresses. Since e-mail routing is decided by Domain Name System (DNS) data, a successful attack on DNS could spread tampered information, which then makes e-mail messages get diverted through some MTA or Gateway whose software security has been compromised. This is serious, bestie. πŸ˜­πŸ’€

There are several ways an attacker might deliver incorrect mail routing information to a client. These include: (a) compromising a DNS server, (b) generating a counterfeit response to a client's DNS query, and (c) returning incorrect "additional information" in response to an unrelated query. Clients SHOULD ensure that mail routing is based only on authoritative answers. Once DNS Security mechanisms [5] become more widely deployed, clients SHOULD employ those mechanisms to verify the authenticity and integrity of mail routing records. Verify, verify, verify! πŸ›‘οΈπŸ¦‹

7. IANA Considerations ✨

okay bestie, IANA gets the final say on new values, so the rules are strict πŸ’… the service-selector and qualif-type1 elements are extensible, which means they MUST be registered with IANA πŸ“‹

Every new registration MUST use the registration form templates in 7.1 and 7.2. It also MUST fulfill the "Specification Required" criteria from section 2 of RFC 2434 [16]:

"Specification Required - Values and their meaning MUST be documented in an RFC or other permanent and readily available reference, in sufficient detail so that interoperability between independent implementations is possible."

IANA MUST NOT accept registrations that aren't backed up by a Specification like that and that aren't fully filled in using the 7.1 and 7.2 templates 🚫 if IANA needs more help deciding on a registration, it SHOULD refer to the Application Area Director, who will point them to the right "expert" or IETF Working Group 🀝

After a registration goes through, IANA should publish the new element on the right online IANA website and add it to the updates of the "Assigned Numbers" RFC series 🌸

And this section (including 7.1 and 7.2) updates the ones in [15] πŸŽ€

7.1 IANA Registration form template for new values of GSTN address service-selector

Here's the form for a new service-selector value πŸ’– the foo in it is just a fictional example, so swap in your own value:

To: IANA@iana.org
Subject: Registration of new values for the GSTN address
service-selector specifier "foo"
service-selector name:

   foo

Description of Use:

   foo - ("foo" is a fictional new service-selector used in this
   template as an example, it is to be replaced with the new value
   being registered.  Include a short description of the use of the
   new value here.  This MUST include reference to Standard Track
   RFCs and eventually to other Standard Bodies documents for the
   complete description; the use of the value must be defined
   completely enough for independent implementation).

Security Considerations:

  (Any additional security considerations that may be introduced by
   use of the new service-selector parameter should be defined here
   or in the reference Standards Track RFCs)

Person & email address to contact for further information:

   (fill in contact information)

INFORMATION TO THE SUBMITTER:

   The accepted registrations will be listed in the "Assigned
   Numbers" series of RFCs.  The information in the registration form
   is freely distributable.

7.2 IANA Registration form template for new values of GSTN address qualif-type1 keyword and value

And this one's for a new qualif-type1 keyword and value πŸ¦‹ bar is the placeholder here:

To: IANA@iana.org
Subject: Registration of new values for the GSTN address
qualif-type1 element "bar"

qualif-type1 "keyword" name:

   bar

qualif-type1 "value" ABNF definition:

   abnf - ("abnf" MUST define the ABNF form of the qualif-type1
   value.  The ABNF specification MUST be self-contained, using as
   basic elements the tokens given in specification [4].  To avoid
   any duplication (when appropriate), it MUST also use any already
   registered non-basic token from other qualif-type1 elements, i.e.,
   it MUST use the same non-basic token name and then repeat its
   identical ABNF definition from basic tokens.

Description of Use:

   bar - ("bar" is a fictional description for a new qualif-type1
   element used in this template as an example.  It is to be replaced
   by the real description of qualif-type1 element being registered.
   Include a short description of the use of the new qualif-type1
   here.  This MUST include reference to Standards Track RFCs and
   eventually to other Standard Bodies documents for the complete
   description; the use of the value MUST be defined completely
   enough for independent implementation.)

Use Restriction:

   (If the new qualif-type1 elements is meaningful only for a
   specific set of service-element, you MUST specify here the list of
   allowed service-element types.  If there is no restriction, then
   specify the keyword "none")

Security Considerations:

   (Any additional security considerations that may be introduced by
   use of the new service-selector parameter should be defined here
   or in the reference Standards Track RFCs)

Person & email address to contact for further information:

   (fill in contact information)

INFORMATION TO THE SUBMITTER:

   The accepted registrations will be listed in the "Assigned
   Numbers" series of RFCs.  The information in the registration form
   is freely distributable.

8. Changes from RFC 2303 specification

Good news: there are no technical or major changes from RFC 2303 ✨ but here's a quick rundown of where the updates and clarifications landed:

  • considering the case that telephony systems do not conform any more to the "single/few" Public Operator paradigm, the old definition "PSTN - Public Switched Telephone Network" was changed into the more adequate "GSTN - Global Switched Telephone Network" one. However, in order to remain consistent with the previous specification, the ABNF variables names were not changed.
  • it was made clear that "GSTN addresses" correspond, in common language, to "telephone numbers" and that the "global-phone" is a representation of E.164 numeric addresses;
  • an explicit list of "new terms" with explanations was added to section 1.1;
  • the fact that any other specification adopting the "pstn-address" definition MUST register with IANA the new "service-selector" and "qualif-type1" elements was made explicit throughout the document; the relevant mechanism to be used was added in section 7 "IANA considerations" (including the IANA Registration form templates); this is also consistent with RFC 2846;
  • in section 2.1 the use and meaning of "written-sep" was clarified;
  • in section 4., the quoting rules of the "pstn-address" and their practical use was made explicit both in the definition of pstn-email" and in the Implementors' note;
  • section 4.1 was updated to clarify how to generate "pstn-email" when more than one subaddress is used;
  • the Author's Address was updated;
  • the References list was updated to include RFC 2846 and RFC 2434.

9. Author's Address

Claudio Allocchio
INFN-GARR
c/o Sincrotrone Trieste
SS 14 Km 163.5 Basovizza
I 34012 Trieste
Italy

RFC2822: Claudio.Allocchio@garr.it
X.400:   C=it;A=garr;P=garr;S=Allocchio;G=Claudio;
Phone:   +39 040 3758523
Fax:     +39 040 3758565

10. References

[1]  Postel, J., "Simple Mail Transfer Protocol", STD 10, RFC 821,
     August 1982.

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

[3]  Braden, R., "Requirements for Internet hosts - application and
     support", STD 3, RFC 1123, October 1989.

[4]  Malamud, C. and M. Rose, "Principles of Operation for the
     TPC.INT Subdomain: Remote Printing -- Technical Procedures", RFC
     1528, October 1993.

[5]  Eastlake, D. and C. Kaufman, "Domain Name System Security
     Extensions", RFC 2065, January 1997.

[6]  Bradner, S., "Key words for use in RFCs to Indicate Requirement
     Levels", BCP 14, RFC 2119, March 1997.

[7]  Crocker, D. and P. Overell, "Augmented BNF for Syntax
     Specifications", RFC 2234, November 1997.

[8]  ITU F.401 - Message Handling Services: Naming and Addressing for
     Public Message Handling Service; recommendation F.401 (August
     1992).

[9]  ITU F.423 - Message Handling Services: Intercommunication
     Between the Interpersonal Messaging Service and the Telefax
     Service; recommendation F.423 (August 1992).

[10] ITU E.164 - The International Public Telecommunication Numbering
     Plan E.164/I.331 (May 1997).

[11] ITU T.33 - Facsimile routing utilizing the subaddress;
     recommendation T.33 (July 1996).

[12] ETSI I-ETS 300,380 - Universal Personal Telecommunication (UPT):
     Access Devices Dual Tone Multi Frequency (DTMF) sender for
     acoustical coupling to the microphone of a handset telephone
     (March 1995).

[13] Allocchio, C., "Minimal FAX address format in Internet Mail",
     RFC 3192, October 2001.

[14] Kille, S., "MIXER (Mime Internet X.400 Enhanced Relay): Mapping
     between X.400 and RFC 822/MIME", RFC 2156, January 1998.

[15] Allocchio, C. "GSTN address element extensions in e-mail
     services", RFC 2846, June 2000.

[16] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA
     Considerations Section in RFCs", BCP 26, RFC 2434, October 1998.

Copyright (C) The Internet Society (2001). All Rights Reserved. πŸ“œ

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Acknowledgement

Funding for the RFC Editor function is currently provided by the Internet Society. 🫢

πŸ“¦ where this page comes from