RFC 2421

Voice Profile for Internet Mail - version 2

๐Ÿ“… published September 1998, from ietf

RFC 2421: Voice Profile for Internet Mail - version 2 ๐Ÿ’–

Who wrote it: G. Vaudreuil (Lucent Technologies) and G. Parsons (Northern Telecom) ๐Ÿ‘ฏโ€โ™€๏ธ Category: Standards Track ๐Ÿฆ‹ Date: September 1998 ๐Ÿ“… Obsoletes: RFC 1911 ๐Ÿ”„, the version 1 of this same profile Updates: nothing listed here ๐ŸŒธ


Status of This Memo โœจ

okay so this doc is an Internet standards track protocol for the Internet community, and it's basically asking everyone for discussion and suggestions for improvements ๐Ÿซถ. For where it sits in the standardization state and status, check the current edition of the "Internet Official Protocol Standards" (STD 1) ๐Ÿ“š. Distribution of this memo is unlimited ๐ŸŒ.

Copyright (C) The Internet Society (1998). All Rights Reserved. ๐Ÿ’œ

Overview ๐ŸŽ€

this document profiles Internet mail for voice messaging ๐Ÿ“žโœจ. It obsoletes RFC 1911, which describes version 1 of the profile, and the changes from that doc are listed in Appendix F ๐Ÿ“. Appendix A also summarizes the protocol profiles of this version of VPIM ๐Ÿ’….

Send comments on this document to the EMA VPIM Work Group mailing list: <vpim-l@ema.org> ๐Ÿ’Œ

Working Group Summary ๐Ÿ‘‘

this profile is not the product of an IETF working group, though several have reviewed it ๐Ÿ‘€. It's actually the product of the VPIM Work Group of the Electronic Messaging Association (EMA) ๐ŸŽ‰. That work group has representatives from most major voice mail vendors and several email vendors, has held several interoperability demonstrations between voice messaging vendors, and is currently promoting VPIM trials and deployment ๐Ÿš€๐Ÿ”ฅ.

Table of Contents ๐Ÿ—บ๏ธ

1. ABSTRACT .........................................................3
2. SCOPE ............................................................3
  2.1 Voice Messaging System Limitations ............................3
  2.2 Design Goals ..................................................4
3. PROTOCOL RESTRICTIONS ............................................5
4. VOICE MESSAGE INTERCHANGE FORMAT .................................6
  4.1 Message Addressing Formats ....................................6
  4.2 Message Header Fields .........................................9
  4.3 Voice Message Content Types ..................................15
  4.4 Other Message Content Types ..................................21
  4.5 Forwarded Messages ...........................................23
  4.6 Reply Messages ...............................................23
  4.7 Notification Messages ........................................24
5. MESSAGE TRANSPORT PROTOCOL ......................................24
  5.1 ESMTP Commands ...............................................25
  5.2 ESMTP Keywords ...............................................27
  5.3 ESMTP Parameters - MAIL FROM .................................28
  5.4 ESMTP Parameters - RCPT TO ...................................29
  5.5 ESMTP - SMTP Downgrading .....................................29
6. DIRECTORY ADDRESS RESOLUTION ....................................30
7. IMAP ............................................................30
8. MANAGEMENT PROTOCOLS ............................................30
  8.1 Network Management ...........................................31
9. CONFORMANCE REQUIREMENTS ........................................31
10. SECURITY CONSIDERATIONS ........................................32
  10.1 General Directive ...........................................32
  10.2 Threats and Problems ........................................32
  10.3 Security Techniques .........................................33
11. REFERENCES .....................................................33
12. ACKNOWLEDGMENTS ................................................36
13. AUTHORS' ADDRESSES .............................................36
14. APPENDIX A - VPIM REQUIREMENTS SUMMARY .........................37
15. APPENDIX B - EXAMPLE VOICE MESSAGES ............................45
16. APPENDIX C - EXAMPLE ERROR VOICE PROCESSING ERROR CODES ........50
17. APPENDIX D - EXAMPLE VOICE PROCESSING DISPOSITION TYPES ........51
18. APPENDIX E - IANA REGISTRATIONS ................................52
  18.1 vCard EMAIL Type Definition for VPIM ........................52
  18.2 Voice Content-Disposition Parameter Definition ..............52
19. APPENDIX F - CHANGE HISTORY: RFC 1911 TO THIS DOCUMENT .........54
20. FULL COPYRIGHT NOTICE ..........................................56

1. Abstract ๐ŸŒŸ

okay so a class of special-purpose computers has evolved to handle voice messaging ๐Ÿ“ž๐Ÿ’…. These machines usually plug into a telephone switch and do call answering and voice messaging ๐ŸŽ™๏ธ. Traditionally, messages going to a non-local machine get shipped over analog networking protocols based on DTMF signaling, with analog voice playback ๐Ÿ“ผ. But as demand for networking grows, there's a real need for a standard high-quality digital protocol to connect these machines ๐Ÿ”ฅ. This document profiles the Internet standard MIME and ESMTP protocols so they can be a digital voice messaging networking protocol ๐Ÿฆ‹. In this doc, that profile is called VPIM (Voice Profile for Internet Mail) ๐Ÿ’œ.

This profile builds on earlier work from the Audio Message Interchange Specification (AMIS) group, which defined a voice messaging protocol based on X.400 technology ๐Ÿงš. The goal is to meet the user requirements from that earlier work using the industry standard ESMTP/MIME mail protocol infrastructure that corporate intranets already use ๐Ÿขโœจ. This second version of VPIM is based on implementation experience, and it obsoletes RFC 1911, which describes version 1 of the profile ๐Ÿ”„.

2. Scope ๐ŸŽ€

MIME is the Internet multipurpose, multimedia messaging standard ๐ŸŒˆ. This document explicitly recognizes its capabilities and provides a mechanism for exchanging various messaging technologies, mainly voice and facsimile ๐Ÿ“ ๐ŸŽถ.

This document specifies a restricted profile of the Internet multimedia messaging protocols for use between voice processing server platforms ๐Ÿ–ฅ๏ธ. Those platforms have historically been special-purpose computers, and they often don't have the facilities a normal Internet Email-capable computer would have ๐Ÿ˜ญ. So VPIM also specifies extra functionality as it's needed ๐Ÿ’…. The whole point is to specify the minimum common set of features so compliant systems can interwork ๐Ÿซถ.

2.1. Voice Messaging System Limitations ๐Ÿ™ˆ

these are the typical limitations of voice messaging platforms that were considered when creating this baseline profile ๐Ÿ“‹:

  1. Text messages are not normally received and often cannot be easily displayed or viewed. They can often be processed only via text-to-speech or text-to-fax features, which many of these machines don't currently have ๐Ÿ™ˆ.
  2. Voice mail machines usually act as an integrated Message Transfer Agent, Message Store and User Agent all in one ๐Ÿงฉ. There is no relaying of messages, and RFC 822 header fields may have limited use given the limited messaging features currently deployed ๐Ÿ˜ฌ.
  3. Voice mail message stores generally can't preserve the full semantics of an Internet message ๐Ÿ’€. So using a voice mail machine for gatewaying is not supported ๐Ÿšซ. In particular, storage of recipient lists, "Received" lines, and "Message-ID" may be limited ๐Ÿ“‰.
  4. Internet-style distribution/exploder mailing lists are not typically supported ๐Ÿ˜ค. Voice mail machines often implement only local alias lists, with error-to-sender and reply-to-sender behavior ๐Ÿ“ฎ. Reply-all capabilities using a CC list are not generally available ๐Ÿ™…โ€โ™€๏ธ.
  5. Error reports must be machine-parsable so that helpful responses can be voiced to users whose only access mechanism is a telephone ๐Ÿ“ž๐Ÿ’–.
  6. The voice mail systems generally limit address entry to 16 or fewer numeric characters, and they normally don't support alphanumeric mailbox names ๐Ÿ”ข. Alpha characters aren't generally used for mailbox identification, since they can't be easily entered from a telephone keypad ๐Ÿ˜ฉ.

2.2. Design Goals ๐ŸŒธ

it's a goal of this profile to make as few restrictions and additions to the existing Internet mail protocols as possible ๐Ÿงผโœจ, while still meeting interoperability requirements with current generation voice messaging systems ๐Ÿค. The motivation is to increase accessibility to digital messaging by letting people use proven existing networking software for rapid development ๐Ÿš€๐Ÿ’œ.

This specification is intended for use on a TCP/IP network ๐ŸŒ. It's possible to use the SMTP protocol suite over other transport protocols too, but the necessary protocol parameters for that are outside the scope of this document ๐Ÿคทโ€โ™€๏ธ.

This profile is meant to be robust enough for an environment like the global Internet, with installed-base gateways that don't understand MIME ๐ŸŒ๐Ÿฆ–. Typical use is expected to be within corporate intranets though ๐Ÿข. Full functionality, such as reliable error messages and binary transport, will require careful selection of gateways (for example, via MX records) to act as VPIM forwarding agents ๐Ÿงšโ€โ™€๏ธ. Nothing in this document precludes using general purpose MIME email packages to read and compose VPIM messages ๐Ÿ’Œ. Receiving VPIM compliant messages needs no special configuration, but originating compliant structures may need some ๐ŸŽ€.

It's expected that a VPIM messaging system will be managed by a system administrator who can do TCP/IP network configuration ๐Ÿง‘โ€๐Ÿ’ป. When using facsimile or multiple voice encodings, the system administrator is suggested to keep a list of the capabilities of the networked mail machines ๐Ÿ“‹โœจ. That helps reduce sending undeliverable messages due to lack of feature support ๐Ÿ™. Configuration, implementation and management of these directory listing capabilities are local matters ๐Ÿ .

3. Protocol Restrictions โœจ

okay so this protocol doesn't limit how many recipients a message can have ๐Ÿ’… where possible, server implementations should not restrict the number of recipients in a single message. it's recognized that no implementation supports unlimited recipients, and the number of supported recipients may be quite low ๐Ÿ’€

this protocol also doesn't limit the maximum message length ๐ŸŽ€ implementers should understand that some machines will be unable to accept excessively long messages. a mechanism is defined in the RFC 1425 SMTP service extensions to declare the maximum message size supported โœจ

the message size in the ESMTP SIZE parameter is in bytes, not minutes or seconds ๐Ÿ™ˆ the number of bytes varies by voice encoding format and includes the MIME wrapper overhead. if the length must be known before sending, you can do an approximate translation into minutes or seconds if the voice encoding is known ๐Ÿฆ‹

the following sections describe the restrictions and additions to Internet mail protocols that are required to be compliant with this VPIM v2 profile. though various SMTP, ESMTP and MIME features are described here, the implementer is referred to the relevant RFCs for complete details. it's also advisable to check for IETF drafts of various Internet Mail specifications that are later than the most recent RFCs, since, for example, MIME has yet to be published as a full IETF Standard. the table in Appendix A summarizes the protocol details of this profile ๐Ÿ“š

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [REQ].

4. Voice Message Interchange Format ๐ŸŽง

the voice message interchange format is a profile of the Internet Mail Protocol Suite. any Internet Mail message containing the format defined in this section is referred to as a VPIM Message in this document. so this document assumes you already understand the Internet Mail specifications ๐Ÿค“ specifically, VPIM references components from the message format standard for Internet messages [RFC822], the Multipurpose Internet Message Extensions [MIME], the X.400 gateway specification [X.400], delivery status and message disposition notifications [REPORT][DSN][DRPT][STATUS][MDN], and the electronic business card [MIMEDIR][VCARD] ๐Ÿ’œ

4.1 Message Addressing Formats

RFC 822 addresses are based on the domain name system. this naming system has two components: the local part, used for username or mailbox identification, and the host part, used for global machine identification ๐Ÿ—บ๏ธ

4.1.1 VPIM Addresses

the local part of the address shall be a US-ASCII string uniquely identifying a mailbox on a destination system. for voice messaging, the local part is a printable string containing the mailbox ID of the originator or recipient. alpha characters and long mailbox identifiers are permitted, BUT most voice mail networks rely on numeric mailbox identifiers to stay compatible with the limited 10 digit telephone keypad ๐Ÿ“ž so some voice messaging systems may only be able to handle a numeric local part. the reception of alphanumeric local parts on these systems may result in the address being mapped to some locally unique (but confusing to the recipient) number or, in the worst case, the address could be deleted, making the message un-replyable ๐Ÿ˜ญ it may also be hard to create messages on these systems with an alphanumeric local part without complex key sequences or some form of directory lookup (see 6).

the use of the domain naming system should be transparent to the user. it's the voice mail machine's job to look up the fully-qualified domain name (FQDN) based on the address the user enters (see 6) ๐Ÿช„

in the absence of a global directory, specification of the local part is expected to conform to international or private telephone numbering plans. private numbering plans will likely prevail, and these are left for local definition. however, it is RECOMMENDED that public telephone numbers be noted according to the international numbering plan described in [E.164]. the indication that the local part is a public telephone number is given by a preceding +. (the + would not be entered from a telephone keypad, it's added by the system as a flag ๐Ÿšฉ) since the primary information in the numeric scheme is contained by the digits, other character separators (e.g. -) may be ignored (i.e. to allow parsing of the numeric local mailbox), or may be used to recognize distinct portions of the telephone number (e.g. country code). the local part of a VPIM address can be split into the four groups described below ๐Ÿงฉ

  1. mailbox number
    • for use as a private numbering plan (any number of digits)
    • e.g. 2722@lucent.com
  2. mailbox number+extension
    • for use as a private numbering plan with extensions, any number of digits, use of + as separator
    • e.g. 2722+111@Lucent.com
  3. +international number
    • for international telephone numbers conforming to E.164, maximum of 15 digits
    • e.g. +16137637582@vm.nortel.ca
  4. for international telephone numbers conforming to E.164, maximum of 15 digits, with an extension (e.g. behind a PBX) that has a maximum of 15 digits.
    • e.g. +17035245550+230@ema.org

note that this address format is designed to be compatible with current usage within the voice messaging industry. it is not compatible with the addressing formats of RFCs 2303-2304. it's expected that as telephony services become more widespread on the Internet, these addressing formats will converge ๐ŸŒˆ

4.1.2 Special Addresses

special addresses are provided for compatibility with the conventions of Internet mail. these addresses don't use numeric local addresses, both to conform to current Internet practice and to avoid conflict with existing numeric addressing plans. two special addresses are RESERVED for use as follows ๐Ÿ”’

postmaster@domain

by convention, a special mailbox named "postmaster" MUST exist on all systems. this address is used for diagnostics and should be checked regularly by the system manager. this mailbox is particularly likely to receive text messages, which isn't normal on a voice processing platform ๐Ÿคทโ€โ™€๏ธ the specific handling of these messages is an individual implementation choice.

non-mail-user@domain

if a reply to a message is not possible, such as a telephone answering message, then the special address "non-mail-user" must be used as the originator's address. any text name such as "Telephone Answering", or the telephone number if it's available, is permitted. this special address is used as a token to indicate an unreachable originator. for compatibility with the installed base of mail user agents, implementations that generate this special address MUST send a negative delivery status notification (DSN) for reply messages sent to the undeliverable address. the status code for such NDN's is 5.1.1 "Mailbox does not exist".

Example:

From: Telephone Answering <non-mail-user@mycompany.com>

4.1.3 Distribution Lists

there are many ways to handle distribution list (DL) expansions and none are 'standard' ๐Ÿ™ƒ simple alias is the behavior closest to what most voice mail systems do today, and it's what is to be used with VPIM messages. that is:

Reply to the originator - (Address in the RFC822 Reply-to or From
                           field)
Errors to the submitter - (Address in the MAIL FROM: field of the
                           ESMTP exchange and the Return-Path:
                           RFC 822 field)

some proprietary voice messaging protocols include only the recipient of the particular copy in the envelope, and include no "header fields" except date and per-message features. most voice messaging systems don't provide for "Header Information" in their messaging queues, and only include delivery information. as a result, recipient information MAY be in either the To or CC header fields. if all recipients cannot be presented (e.g. unknown DL expansion), then the recipient header fields MUST be omitted to indicate that an accurate list of recipients (e.g. for use with a reply-all capability) is not known. ๐Ÿซ 

4.2 Message Header Fields

Internet messages contain a header information block. this header block holds the information needed to identify the sender, the list of recipients, the message send time, and other information intended for user presentation. except for specialized gateway and mailing list cases, header fields do not indicate delivery options for the transport of messages ๐Ÿ“ฌ

distribution list processors are known for modifying or adding to the header fields of messages that pass through them. VPIM systems MUST be able to accept and ignore header fields that are not defined here ๐Ÿงน

the following header lines are permitted for use with VPIM voice messages ๐Ÿ’Œ

4.2.1 From

the originator's fully-qualified domain address (a mailbox address followed by the fully-qualified domain name). the user listed in this field should be presented in the voice message envelope as the originator of the message ๐Ÿ’โ€โ™€๏ธ

systems compliant with this profile SHOULD provide the text personal name of the voice message originator in a quoted phrase, if the name is available. text names of corporate or positional mailboxes MAY be provided as a simple string. From [RFC822] โœจ

Example:

From: "Joe S. User" <12145551212@mycompany.com>

From: Technical Support <611@serviceprovider.com>

the From address SHOULD be used for replies (see 4.6). however, if the From address contains <non-mail-user@domain>, the user SHOULD NOT be offered the option to reply, nor should notifications be sent to this address. no reply button for the ghost address, bestie ๐Ÿ‘ป

voice mail machines may not be able to support separate attributes for the FROM, REPLY-TO, and SENDER header fields and the SMTP MAIL FROM command. VPIM conforming systems SHOULD set these values to the same address. using addresses different from those in the From header field address may result in unanticipated behavior ๐Ÿซฃ

4.2.2 To

the To header contains the recipient's fully-qualified domain address. there may be one or more To: fields in any message ๐Ÿซถ

Example:

To: +12145551213@mycompany.com

systems compliant to this profile SHOULD provide a list of recipients only if all recipients are provided. the To header MUST NOT be included in the message if the sending message transport agent (MTA) cannot resolve all the addresses in it, e.g. if an address is a DL alias for which the expansion is unknown (see 4.1.3). if present, the addresses in the To header MAY be used for a reply message to all recipients ๐Ÿ’–

systems compliant to this profile MAY also discard the To addresses of incoming messages because of the inability to store the information. this would, of course, make a reply-to-all capability impossible ๐Ÿฅบ

4.2.3 Cc ๐Ÿ’Œ

okay so the cc header is where the extra recipients' fully-qualified domain addresses live ๐ŸŽ€ lowkey, a lot of voice mail systems only keep the bare-minimum envelope info needed to deliver the message, so they literally can't store or hand back a full recipient list ๐Ÿ˜ญ

Systems compliant to this profile SHOULD provide a list of recipients only if all disclosed recipients can be provided. the list of disclosed recipients does not include anyone sent a blind copy ๐Ÿ™ˆ and if the full list can't be shown, systems SHOULD omit the To and Cc header fields to signal that the full list of recipients is unknown ๐Ÿงš

Example:

    Cc: +12145551213@mycompany.com

bestie, systems compliant to this profile MAY discard the Cc addresses of incoming messages as necessary ๐Ÿ’… and if a list of Cc or To addresses is present, those addresses MAY be used for a reply message to all recipients โœจ

4.2.4 Date ๐Ÿ•ฐ๏ธ

the Date header holds the date, time, and time zone the originator sent the message ๐Ÿ’– the time zone SHOULD be written as a four-digit offset, like -0500 for North American Eastern Standard Time ๐Ÿ‡บ๐Ÿ‡ธ and you can add a time zone name in parentheses on top of that, like -0900 (PDT) ๐ŸŒธ compliant implementations SHOULD be able to convert RFC 822 date and time stamps into local time ๐Ÿฆ‹

Example:

    Date: Wed, 28 Jul 96 10:08:49 -0800 (PST)

so the sending system MUST report the time the message was sent โญ and if a VPIM sender is relaying a message from a system that doesn't give a time stamp, the time of arrival at the VPIM system SHOULD be used as the date ๐Ÿซถ From [RFC822]

4.2.5 Sender ๐Ÿงš

the Sender header field holds the actual address of the originator when an agent sends the message on behalf of the author listed in the From: field ๐Ÿ‘‘ this header field MAY be sent by a VPIM conforming system ๐ŸŒˆ and if it shows up in a VPIM message, the receiving VPIM implementation may ignore it and just show the From header field ๐Ÿ’œ

4.2.6 Return Path ๐Ÿ“ฌ

the Return-path header gets added by the final delivering SMTP server ๐Ÿ’… if it's there, it has the address from the MAIL FROM parameter of the ESMTP exchange (see 5.1.2) ๐Ÿ”ฅ any error messages from a delivery failure MUST be sent to that address (see [DRPT] for additional details) ๐Ÿ’€

note that if the Return-path is null (<>), like no path, loop prevention, or confidential, a notification MUST NOT be sent ๐Ÿ™…โ€โ™€๏ธ and if the Return path address isn't available (from this header or the MAIL FROM parameter), the From address may be used to deliver notifications ๐Ÿ“

4.2.7 Message-id ๐Ÿชช

the Message-id header is a unique per-message identifier, basically its own little ID card ๐Ÿชช a unique message-id MUST be generated for each message sent from a compliant implementation โœจ

the receiving system doesn't have to store the message-id ๐Ÿซถ but this identifier MAY be used for tracking, auditing, and sending back receipt notification reports ๐Ÿฆ‹ From [RFC822]

Example:

    Message-id: <12345678@mycompany.com>

4.2.8 Reply-To ๐Ÿ’ฌ

if it's present, the reply-to header gives a preferred address where replies should go (see 4.6) ๐ŸŒท honestly, voice mail systems can usually only handle one originator per message, so this field is unlikely to be supported ๐Ÿ˜ญ a compliant system SHOULD NOT send a Reply-To header ๐Ÿ™ˆ but if a reply-to header is present, a reply-to sender message MAY be sent to the address specified (so it overwrites From) ๐Ÿ’Œ From [RFC822] and that preferred address must also show up in the originator's vCard EMAIL attribute, if there is one (see 4.3.3) ๐Ÿ“‡

4.2.9 Received ๐Ÿ“ก

the Received header is trace info that MTAs tack onto the beginning of an RFC 822 message ๐Ÿ›ค๏ธ it's the only header an MTA is allowed to add ๐ŸŽ€ and it's super handy for debugging when you're using a US-ASCII message reader or a header parsing tool ๐Ÿ”

a compliant system MUST add Received header fields when it's acting as a gateway ๐Ÿ’ช and it MUST NOT remove any Received fields when relaying messages to other MTAs or gateways ๐Ÿšซ those header fields MAY be ignored or deleted once the message reaches its final destination ๐Ÿงน From [RFC822]

4.2.10 MIME Version ๐ŸŒˆ

the MIME-Version header says the message follows the MIME message format spec ๐Ÿ“œ systems compliant with this specification SHOULD include a comment with the words (Voice 2.0) โœจ RFC 1911 defined an earlier version of this profile and used the token (Voice 1.0) ๐Ÿ•ฐ๏ธ From [MIME1][VPIM1]

Example:

    MIME-Version: 1.0 (Voice 2.0)

this identifier is just for information ๐Ÿ’โ€โ™€๏ธ so it SHOULD NOT be used to semantically identify the message as a VPIM message ๐Ÿ™…โ€โ™€๏ธ if you actually need to identify it, the presence of the content defined in [V-MSG] SHOULD be used instead ๐Ÿ”Ž

4.2.11 Content-Type ๐ŸŽ

the Content-Type header declares what kind of content is wrapped up in the message ๐ŸŽ the typical top-level content in a VPIM Message SHOULD be multipart/voice-message ๐ŸŽ€ which is basically a way to bundle several components into one identifiable voice message ๐Ÿซง the allowable contents are detailed in section 4.3 of this document ๐Ÿ“– From [MIME2]

4.2.12 Content-Transfer-Encoding ๐Ÿ”ค

okay so Internet mail was originally only built to carry 7-bit US-ASCII text ๐Ÿ˜ญ which means voice and fax data sometimes needs to be encoded into something that fits in that environment ๐Ÿซง the content-transfer-encoding header describes that transformation, if it's needed ๐Ÿช„ compliant implementations MUST recognize and decode the standard encodings: "Binary", "7bit", "8bit", "Base64", and "Quoted-Printable" ๐Ÿ’… the allowable content-transfer-encodings are specified in section 4.3 ๐Ÿ“– From [MIME1]

4.2.13 Sensitivity ๐Ÿ”’

the Sensitivity header, if present, shows the requested privacy level ๐Ÿคซ the case-insensitive values "Personal" and "Private" are specified ๐Ÿ’œ if no privacy is requested, this field is omitted โœจ

if a Sensitivity header is in the message, a compliant system MUST prohibit the recipient from forwarding the message to any other user ๐Ÿšซ a compliant system can still let the responder reply to a sensitive message, and it SHOULD allow that ๐Ÿ’ฌ but it SHOULD NOT include the original message content in the reply ๐Ÿ™ˆ the responder MAY set the sensitivity of the reply message ๐ŸŽ€

โš ๏ธ if the receiving system doesn't support privacy and the sensitivity is "Personal" or "Private", a negative delivery status notification must be sent to the originator, with the right status code showing that privacy couldn't be assured ๐Ÿ˜ฑ the message contents SHOULD be returned to the sender so the notification still has voice context ๐Ÿซถ and a non-delivery notification for a private message SHOULD NOT be tagged private, since it's going to the originator anyway ๐Ÿ’€ From: [X.400]

4.2.14 Importance โญ

this header shows the importance the receiving system should give the message ๐Ÿ“ˆ the case-insensitive values "low", "normal", and "high" are specified ๐ŸŒˆ if no special importance is requested, this header may be omitted and the value is assumed to be "normal" ๐Ÿฆ‹ compliant implementations MAY use this header to indicate a message's importance, and they may order messages in a recipient's mailbox ๐Ÿ—‚๏ธ From: [X.400]

4.2.15 Subject ๐Ÿท๏ธ

email systems often give you a subject field, but voice mail platforms don't really support it ๐Ÿ˜ญ so for compatibility with text-based mailbox interfaces, a text subject field SHOULD be generated by a compliant implementation ๐Ÿ“ but a receiving system MAY discard it if it's there ๐Ÿซ  From [RFC822]

it's recommended that voice messaging systems with no text user interface (like, access only by telephone) insert a generic subject header of VPIM Message ๐Ÿ’– that's for the benefit of text-enabled recipients ๐Ÿงก

4.2.16 Disposition-Notification-To ๐Ÿ“ฉ

this header MAY be present to show that the sender wants a receipt notification from the receiving user agent ๐Ÿ™‹โ€โ™€๏ธ this message disposition notification (MDN) is typically sent by the user agent after the user has listened to the message and agreed to an MDN being sent ๐ŸŽง

Example:

    Disposition-notification-to: +12145551213@mycompany.com

so the presence of a Disposition-notification-to header is basically just a request for an MDN, described in 4.4.5 ๐Ÿฅน the recipients' user agents are always free to silently ignore it ๐Ÿซง which means this header doesn't burden any system that doesn't support it ๐Ÿ’… From [MDN].

4.2.17 Disposition-Notification-Options ๐Ÿงฉ

this header MAY be present to define future extension parameters for an MDN that was requested by the Disposition-notification-to header in the previous section ๐Ÿ”ฎ right now, no parameters are defined by this document or by [MDN] ๐Ÿคทโ€โ™€๏ธ however, this header MUST be parsed if it's present, if MDNs are supported ๐Ÿ” and if it has an extension parameter that's required for proper MDN generation (marked with =required), then an MDN MUST NOT be sent when the parameter isn't understood ๐Ÿšซ see [MDN] for complete details ๐Ÿ“š

Example:

    Disposition-notification-options:
          whizzbang=required,foo

4.3 Voice Message Content Types ๐ŸŽ€

okay so MIME, introduced in [MIME1], is a general-purpose message body format that can be extended to carry a wide range of body parts ๐ŸŒˆ it lets you encode binary data so it can travel over the 7-bit, text-oriented SMTP protocol ๐Ÿ“จ this transport encoding (shown by the Content-Transfer-Encoding header field) is on top of the audio encoding you need to generate a binary object ๐ŸŽง

MIME defines two transport encoding mechanisms that turn binary data into a 7-bit representation ๐Ÿช„ one is for text-like data (Quoted-Printable) and the other is for arbitrary binary data (Base64) ๐Ÿซง Base64 is way more efficient for audio data, but either one works ๐Ÿ’– and where binary transport is available, no transport encoding is needed, so the data can be labeled Binary ๐Ÿ“

an implementation in compliance with this profile SHOULD send audio and/or facsimile data in binary form when binary message transport is available ๐Ÿ“ก when binary transport isn't available, implementations MUST encode the audio and/or facsimile data as Base64 ๐Ÿ” the detection and decoding of "Quoted-Printable", "7bit", and "8bit" MUST be supported ๐Ÿง  this keeps everything MIME-compliant and interoperable with the widest range of devices ๐ŸŒ but if content arrives in a transfer encoding that can't be rendered to the user, an appropriate negative delivery status notification MUST be sent ๐Ÿšจ

the content types described in this section are identified for use within the multipart/voice-message content โœจ this content is the fundamental part of a VPIM message, and in this document it's called a VPIM voice message ๐ŸŒˆ

only the contents profiled from here on can be sent within a VPIM voice message construct (that is, the multipart/voice-message content type) ๐Ÿ’… they can form a simple or more complex structure, and several examples are given in Appendix B ๐Ÿ“š having other contents inside a VPIM voice message is an error condition and SHOULD result in a negative delivery status notification ๐Ÿ’€ and when multiple contents are present within the multipart/voice-message, they SHOULD be presented to the user in the order they appear in the message ๐Ÿซถ

4.3.1 Multipart/Voice-Message โœจ

okay so this MIME multipart structure is the bestie that packs a whole voice message into ONE container and tags it as VPIM v2 compliant ๐Ÿ“ฆ๐ŸŽ€ its semantic is identical to multipart/mixed (defined in [V-MSG]) and systems that don't recognize this content-type can literally just treat it as multipart/mixed ๐Ÿซถ

The multipart/Voice-Message content-type MUST only contain the profiled media and content types from this section (so audio/*, image/*, message/rfc822 and text/directory) ๐Ÿ’… the most common stuff is spoken name, spoken subject, the message itself, an attached fax and directory info. forwarded messages are made by simply using the message/rfc822 construct ๐Ÿฆ‹

conformant implementations MUST send the multipart/voice-message in a VPIM message ๐Ÿ’– most of the time this Multipart/Voice-Message content is the top level (aka it sits in the Content-Type header). conformant implementations MUST recognize it (whether it's top level or below a multipart/mixed) and be able to separate the contents, like the spoken name or spoken subject ๐Ÿงš

4.3.2 Message/RFC822 ๐ŸŒธ

MIME requires support for the Message/RFC822 message encapsulation body part ๐ŸŽ€ this one lives inside a multipart/voice-message and is used to forward complete messages (see 4.5) or to reply with original content (see 4.6). From [MIME2]

4.3.3 Text/Directory ๐Ÿ’œ

okay this is the one that lets you include a Versit vCard [VCARD] electronic business card inside a VPIM message ๐Ÿชช it's a suitable interchange format between apps or systems and it's defined independent of how it gets transported. it's giving useful info about the originator that the receiving VPIM system (see 6) or other local apps can use

each vCard MUST be contained within a Text/Directory content type [MIMEDIR] inside a VPIM message ๐Ÿ™ˆ [MIMEDIR] requires that the character set MUST be defined as a parameter value (typically us-ascii for VPIM) and that the profile SHOULD be defined (the value MUST be vCard within VPIM messages).

each VPIM message SHOULD be created with a Text/Directory (vCard profile) content type that MUST contain the preferred email address, telephone number, and text name of the message originator, plus the vCard version ๐Ÿ’… the vCard SHOULD contain the spoken name and role of the originator, as well as the revision date. any other vCard attribute MAY also be present. the whole point is that the vCard is the source of info to contact the originator (e.g., reply, call). If the text/directory content-type is included in a VPIM message, the vCard profile [VCARD] MUST be used and MUST specify at least these attributes:

TEL  -    Public switched telephone number in international (E.164)
          format (various types, typically VOICE)

EMAIL -   email address (various types, typically INTERNET; the
          type VPIM is optionally used to denote an address that
          supports VPIM messages(see 18.1))

VERSION - Indicates the version of the vCard profile.  Version 3.0
          [VCARD] MUST be used.

the following attributes SHOULD be specified:

N   -   Family Name, Given Name, Additional Names, Honorific
        Prefixes, and Suffixes. Because it is expected that
        recipients using a telephone user interface will use the
        information in the vCard to identify the originator, and
        the GUI will see the information presented in the FROM
        line, all present components in the text name of the FROM
        header field MUST match the values provided by the Vcard.

ROLE -  The role of the person identified in `N' or `FN', but may
        also be used to distinguish when the sender is a corporate
        or positional mailbox

SOUND - spoken name sound data (various types, typically 32KADPCM)

REV  -  Revision of vCard in ISO 8601 date format

the vCard MAY use other attributes as defined in [VCARD] or extension attributes not yet defined (e.g. capabilities) โœจ

if it's present, the spoken name attribute MUST be denoted by a content ID pointing to an audio/* content elsewhere in the VPIM message ๐ŸŽง

a typical VPIM message (aka no forwarded parts) MUST only contain ONE vCard. more than one is an error condition ๐Ÿ’€ a VPIM message that contains forwarded messages, though, may contain multiple vCards. however, these vCards MUST be associated with the originator(s) of the forwarded message(s) and the originator of the forwarding message. so all forwarded vCards end up inside message/rfc822 contents, and only the vCard of the forwarding originator sits at the top level ๐Ÿฆ‹

Example:

Content-Type: text/directory; charset=us-ascii; profile=vCard
Content-Transfer-Encoding: 7bit

BEGIN:VCARD
N:Parsons;Glenn
ORG:Northern Telecom
TEL;TYPE=VOICE;MSG;WORK:+1-613-763-7582
EMAIL;TYPE=INTERNET;glenn.parsons@nortel.ca
EMAIL;TYPE=INTERNET;VPIM:6137637582@vm.nortel.ca
SOUND;TYPE=32KADPCM;ENCODING=URI: CID:<part1@VM2-4321>
REV:19960831T103310Z
VERSION: 3.0
END:VCARD

4.3.4 Audio/32KADPCM ๐ŸŽถ

an implementation compliant to this profile MUST send Audio/32KADPCM by default for voice [ADPCM] ๐Ÿ—ฃ๏ธ receivers MUST be able to accept and decode Audio/32KADPCM. typically this body holds several minutes of message content, but if it's used for spoken name or subject it should be considerably shorter (i.e. about 10 and 20 seconds respectively) โฑ๏ธ

if an implementation can only handle one voice body, then multiple voice bodies (if present) SHOULD be concatenated, and SHOULD NOT be discarded ๐Ÿ™…โ€โ™€๏ธ it is RECOMMENDED that this be done in the same order they were sent. note that if an Originator Spoken Name audio body and a vCard are both present in a VPIM message, the vCard SOUND attribute MUST point to this audio body (see 4.3.3) ๐Ÿซถ

while any valid MIME body header MAY be used, several header fields have these semantics when included with this body part:

4.3.4.1 Content-Description: ๐Ÿ“

this field MAY be present to help identify these body parts as text in simple email readers. any values may be used, though it may be useful to use values similar to those for Content-Disposition.

Example:

Content-Description: Big Telco Voice Message

4.3.4.2 Content-Disposition: ๐ŸŽ€

this field MUST be present so these body parts can be parsably identified ๐Ÿ” this is especially useful when (as is typical) more than one Audio/32KADPCM body shows up in a single level (e.g. multipart/voice-message). since a VPIM voice message is meant to be automatically played when displayed, in the order the audio contents occur, the audio contents must always be of type inline ๐Ÿ”Š it's still useful to include a filename value though, so this should be present if the info is available. From [DISP]

to tell the different audio contents apart in a VPIM voice message, there's a new disposition parameter "voice" with the values below, used as appropriate (see 18.2) ๐Ÿ’–

  • Voice-Message - the primary voice message
  • Voice-Message-Notification - a spoken delivery notification or spoken disposition notification
  • Originator-Spoken-Name - the spoken name of the originator
  • Recipient-Spoken-Name - the spoken name of the recipient if available to the originator and present if there is ONLY one recipient
  • Spoken-Subject - the spoken subject of the message, typically spoken by the originator

note that there SHOULD only be ONE instance of each of these types of audio contents per message level. additional instances of a given type (i.e., parameter value) may occur within an attached forwarded voice message ๐Ÿฆ‹

implementations that don't understand the "voice" parameter (or the Content-Disposition header) can safely ignore it, and they'll present the audio bodyparts in order (they just won't be able to tell them apart) ๐ŸŒˆ

Example:

Content-Disposition: inline; voice=spoken-subject;
                    filename="msg001.726"

4.3.4.3 Content-Duration: โณ

this field MAY be present to specify the length of the audio bodypart in seconds. how it's used on reception is a local implementation issue. From [DUR]

Example:

Content-Duration: 33

4.3.4.4 Content-Language: ๐ŸŒ

this field MAY be present to specify the spoken language of the audio bodypart. the encoding is defined in [LANG]. how this field is used on reception is a local implementation issue.

Example for UK English:

Content-Language: en-UK

4.3.5 Image/Tiff ๐Ÿ“ 

okay so a common image encoding for facsimile is TIFF-F, which is a derivative of the Tag Image File Format (TIFF) and is described in several documents ๐Ÿ—‚๏ธ for VPIM, the F Profile of TIFF for Facsimile (TIFF-F) is defined in [TIFF-F], and the image/tiff MIME content type is defined in [TIFFREG]. there are several TIFF formats but only TIFF-F is profiled for a VPIM voice message. also, since TIFF-F is used in a store-and-forward mode with VPIM, the image MUST be encoded so there is only one image strip per facsimile page ๐Ÿ“„

all VPIM implementations that support facsimile SHOULD generate TIFF-F compatible facsimile contents in the image/tiff; application=faxbw sub-type encoding by default. an implementation MAY send this fax content in VPIM voice messages and MUST be able to recognize and display it in received messages. if a fax message is received that can't be rendered to the user (e.g. the receiving VPIM system doesn't support fax), then the system MUST return the message with a negative delivery status notification with a media not supported status code ๐Ÿฅฒ

while any valid MIME body header MAY be used (e.g., Content-Disposition to indicate the filename), none are specified to have special semantics for VPIM and they MAY be ignored. note that the content type parameter application=faxbw MUST be included in outbound messages. however, inbound messages with or without this parameter MUST be rendered to the user (if the rendering software runs into an error in the file format, some form of negative delivery status notification MUST be sent to the originator) โœจ

4.3.6 Proprietary Voice or Fax Formats ๐Ÿงช

proprietary voice or fax encoding formats, or other standard formats, MAY be supported under this profile, provided a unique identifier is registered with the IANA prior to use (see [MIME4]). the voice encodings should be registered as sub-types of Audio and the fax encodings should be registered as sub-types of Image ๐ŸŽ€

using any other encoding except audio/32kadpcm or image/tiff; application=faxbw reduces interoperability in the absence of explicit manual system configuration ๐Ÿ™ˆ a compliant implementation MAY use any other encoding with explicit per-destination configuration ๐Ÿ’œ

4.4 Other Message Content Types ๐ŸŽ€

Okay so an implementation that follows this profile MAY send extra contents in a VPIM message, but they ONLY go outside of the multipart/voice-message ๐Ÿงš. The content types in this section are the ones this profile identifies for use. Any content that isn't defined in this profile MUST NOT be used without prior explicit per-destination configuration ๐Ÿ”. If a VPIM message shows up with content types this profile doesn't specify, what happens next is a local implementation issue. The unknown stuff MAY be discarded if it can't be presented to the recipient ๐Ÿ—‘๏ธ.

It works the other way too. If an implementation gets a non-VPIM message (one without a mulitpart/voice-message content type) that has any of the contents from 4.3 & 4.4, it SHOULD deliver those contents. The rest of the message handling is a local issue, though, so the unknown contents or the entire message MAY be discarded. Implementations MUST issue negative delivery status notifications to the originator whenever any form of non-delivery to the recipient happens ๐Ÿ’Œ.

The multipart contents defined below MAY be sent as the top level of a VPIM message, with other noted contents below them as required. The multipart/mixed content SHOULD be used as the top level of a VPIM message to form a more complex structure (for example, with additional content types) ๐ŸŒˆ. When there are multiple contents, they SHOULD be presented to the user in the order that they appear in the message. Several examples are given in Appendix B ๐Ÿ“š.

4.4.1 Multipart/Mixed

MIME gives you the tools to pack several body parts into a single message ๐ŸŽ. Multipart/Mixed SHOULD only be used for sending complex voice or multimedia messages. That means it's the top-level Content-Type when you're sending one of the following contents (on top of the VPIM voice message) in a VPIM message ๐ŸŽฌ. Compliant systems MUST accept multipart/mixed body parts. From [MIME2]

4.4.2 Text/Plain

MIME requires support of the basic Text/Plain content type. Honestly it has limited applicability in the voice messaging world ๐Ÿ™ƒ, but because VPIM is a MIME profile, MIME requirements should still be met. Compliant VPIM implementations SHOULD NOT send the Text/Plain content-type. Compliant implementations MUST accept Text/Plain messages, but the specific handling is left as an implementation decision ๐Ÿ’…. From [MIME2]

There are a few ways to support text (once it's accepted) on voice messaging systems, including text-to-speech and text-to-fax conversions ๐Ÿ—ฃ๏ธ. If no rendering of the text is possible (i.e., it is not possible for the recipient to determine if the text is a critical part of the message), the entire message MUST be returned to the sender with a negative delivery status notification and a media-unsupported status code ๐Ÿšจ.

4.4.3 Multipart/Report

The Multipart/Report is used for enclosing human-readable and machine-parsable notification body parts (e.g. Message/delivery-status) and any returned message content ๐Ÿ“จ. The multipart/report content-type delivers both delivery status reports, which say whether transport succeeded or failed, and message disposition notifications, which flag post-delivery events like receipt notification โœ…. Compliant implementations MUST use the Multipart/Report construct. They MUST also recognize and decode the Multipart/Report content type and its components so the report can be presented to the user ๐Ÿ‘€. From [REPORT]

Multipart/Report messages from VPIM implementations SHOULD include the human-readable description of the error as a spoken audio/* content. This speech SHOULD also be made available to the notification recipient ๐ŸŽ™๏ธ. VPIM implementations MUST be able to handle Multipart/Report messages that encode the human-readable description of the error as text (and MAY generate them too) ๐Ÿ“. Note that per [DSN] the human-readable part MUST always be present ๐Ÿ’ฏ.

4.4.4 Message/Delivery-status

This MIME body part is used for sending machine-parsable delivery status notifications ๐Ÿค–. Compliant implementations MUST use the Message/delivery-status construct when returning messages or sending warnings. They MUST also recognize and decode the Message/delivery-status content type and present the reason for failure to the sender of the message ๐Ÿ˜ฌ. From [DSN]

4.4.5 Message/Disposition-notification

This MIME body part is used for sending machine-parsable receipt notification message disposition notifications ๐Ÿ“ฌ. Conforming implementations SHOULD use the Message/Disposition-notification construct when sending post-delivery message status notifications. These MDNs, however, MUST only be sent in response to the presence of the Disposition-notification-to header in 4.2.16 ๐Ÿ””. Conforming implementations should recognize and decode the Message/Disposition-notification content type and present the notification to the user. From [MDN]

4.5 Forwarded Messages ๐Ÿ’ซ

VPIM version 2 explicitly supports forwarding voice and fax content with voice or fax annotation ๐ŸŽค. However, only the two constructs described below are acceptable in a VPIM message. Only the first one (i.e. message/rfc822) can be recognized as a forwarded message (or even multiple forwarded messages), so it is RECOMMENDED that this construct be used whenever possible ๐Ÿ†.

Forwarded VPIM messages SHOULD be sent as a multipart/voice-message. The entire original message goes inside a message/rfc822 content type, and the annotation goes in as a separate audio/* or image/* body part ๐ŸŽ€. If the RFC822 header fields aren't available for the forwarded content, simulated header fields built from the available information SHOULD be constructed. They indicate the original sending timestamp, and the original sender as shown in the "From" line ๐Ÿ•ฐ๏ธ. Still, at least one of "From", "Subject", or "Date" MUST be present. The message/rfc822 content MUST also include at least the "MIME-Version" and "Content-Type" header fields. From [MIME2]

If forwarding information gets lost when the original message and the forwarding annotation are concatenated, like it must be in a gateway between VPIM and the AMIS voice messaging protocol, the entire audio content MAY be sent as a single Audio/* segment. It can go without any forwarding semantics ๐Ÿซถ.

4.6 Reply Messages ๐Ÿ’Œ

Replies to VPIM messages (and Internet mail messages) are addressed to the address noted in the reply-to header (see 4.2.8) if it's present. Otherwise the From address (see 4.2.1) gets used ๐Ÿ“ฎ. The vCard EMAIL attribute, if present, SHOULD be the same as the reply-to address and MAY be the same as the From address. The vCard is the senders preferred address, but it SHOULD NOT be used to generate a reply. Also, the Return-path address should not be used for replies ๐Ÿ™….

Support for multiple originator header fields is often not possible on voice messaging systems. So it may be necessary to choose only one when gatewaying a VPIM message to another voice message system. Implementers should note that this may make it impossible to send error messages and replies to their proper destinations ๐Ÿ˜ต.

Sometimes a reply message isn't possible, like with a message created by telephone answering (i.e. classic voice mail) ๐Ÿ“ž. In that case, the From field MUST contain the special address non-mail-user@domain (see 4.1.2). A null ESMTP MAIL FROM address SHOULD also be used in this case (see 5.1.2). A receiving VPIM system SHOULD NOT offer the user the option to reply to this kind of message ๐Ÿšซ.

4.7 Notification Messages ๐Ÿ””

VPIM delivery status notification messages (4.4.4) MUST be sent to the originator of the message whenever any form of non-delivery of the subject message or its components occurs. These error messages must be sent to the return path (4.2.6) if it's present. Otherwise, the From (4.2.1) address may be used ๐Ÿ“ค.

VPIM Receipt Notification messages (4.4.5) should be sent to the sender named in the Disposition-Notification-To header field (4.2.16). That only happens after the message has been presented to the recipient, or if the message has somehow been disposed of without being presented to them (e.g. if it were deleted before playing it) ๐Ÿ—‘๏ธ.

VPIM Notification messages may be positive or negative, and they can indicate delivery at the server or receipt by the client. The notification MUST be contained in a multipart/report container (4.4.3), and it SHOULD contain a spoken error message ๐ŸŽง.

If a VPIM system receives a message with contents it doesn't understand (see 4.3 & 4.4), how it's handled is a local matter. A delivery status notification SHOULD be generated if the message couldn't be delivered because of unknown contents (e.g., on traditional voice processing systems) โš ๏ธ. In some cases, the message may be delivered to a mailbox before the determination of rendering can be made. When that happens, a positive DSN gets sent ๐Ÿฆ‹.

5. Message Transport Protocol ๐Ÿšš

Messages are transported between voice mail machines using the Internet Extended Simple Mail Transfer Protocol (ESMTP). All information required for proper delivery of the message is included in the ESMTP dialog. This information, including the sender and recipient addresses, is commonly called the message "envelope". It's equivalent to the message control block in many analog voice messaging protocols ๐Ÿ“.

ESMTP is a general-purpose messaging protocol, designed both to send mail and to allow terminal console messaging ๐Ÿ’ป. Simple Mail Transport Protocol (SMTP) was originally created for the exchange of US-ASCII 7-bit text messages. Binary and 8-bit text messages have traditionally been transported by encoding them into a 7-bit text-like form. [ESMTP] formalized an extension mechanism for SMTP, and later RFCs have defined 8-bit text networking, command streaming, binary networking, and extensions that let you declare message size for efficient transmission of large messages, like multi-minute voice mail ๐ŸŽ™๏ธโœจ.

The following sections list the ESMTP commands, keywords, and parameters that are required and those that are optional for conformance to this profile ๐Ÿ“‹.

5.1 ESMTP Commands ๐ŸŒธ

5.1.1 HELO

Base SMTP greeting and identification of sender ๐Ÿ‘‹. This command is not to be sent by compliant systems unless the more-capable EHLO command is not accepted. It's included for compatibility with general SMTP implementations. Compliant servers MUST implement the HELO command for backward compatibility, but clients SHOULD NOT send it unless EHLO is not supported. From [SMTP]

5.1.2. MAIL FROM (REQUIRED) ๐Ÿ“ฎ

Okay bestie, this is the originating mailbox, and it's where errors get sent back to ๐Ÿ’Œ. VPIM implementations SHOULD use the same address in the MAIL FROM command as the one in the From header field ๐Ÿซถ. This address is not necessarily the same as the message Sender listed in the header fields if the message came through a gateway or got sent to an Internet-style mailing list. From [SMTP, ESMTP]

The MAIL FROM address SHOULD be stored in the local message store so the system can make a delivery status notification for the originator ๐Ÿงพ. The address from the MAIL FROM command SHOULD also be passed as a local system parameter or placed in a Return-Path: line at the very beginning of a VPIM message ๐Ÿ›ค๏ธ. From [HOSTREQ]

Since delivery status notifications MUST be sent to the MAIL FROM address, the null address ("<>") is often used to prevent messages from looping ๐Ÿ”. This null address MAY be used to note that a particular message has no return path (e.g. a telephone answer message) ๐Ÿ“ž. From [SMTP]

5.1.3. RCPT TO ๐Ÿ“ฌ

Recipient's mailbox! This parameter holds only the address the message gets delivered to for this one transaction ๐ŸŽฏ. The set of addresses across one or more RCPT TO commands is what gets used for mail routing ๐Ÿ—บ๏ธ. From [SMTP, ESMTP]

Note: In the event that multiple transport connections to multiple destination machines are required for the same message, the set of addresses in a given transport connection may not match the list of recipients in the message header fields. ๐Ÿ‘€

5.1.4. DATA ๐ŸŒธ

This one initiates the transfer of message data ๐Ÿ“ฆ. Support for this command is required. Compliant implementations MUST implement the SMTP DATA command for backwards compatibility ๐Ÿ•ฐ๏ธ. From [SMTP]

5.1.5. TURN ๐Ÿ”„

TURN requests a change-of-roles: the client that opened the connection offers to become the server for any mail the remote machine might want to send ๐Ÿ™ƒ. Because SMTP is not an authenticated protocol, TURN opens a door to improperly fetching mail queued for another destination ๐Ÿšช๐Ÿ’€. Compliant implementations SHOULD NOT implement the TURN command. From [SMTP]

5.1.6. QUIT ๐Ÿ‘‹

QUIT requests that the connection be closed. If it's accepted, the remote machine resets and closes the connection ๐Ÿ”š. Compliant implementations MUST implement the QUIT command. From [SMTP]

5.1.7. RSET ๐Ÿงน

RSET resets the connection back to its initial state โœจ. Compliant implementations MUST implement the RSET command. From [SMTP]

5.1.8. VRFY ๐Ÿ”

VRFY requests verification that this node can reach the listed recipient ๐Ÿ•ต๏ธโ€โ™€๏ธ. While that's also included in the RCPT TO command, VRFY lets you ask without starting a mail transfer transaction ๐Ÿ’…. This command is useful for debugging and tracing problems ๐Ÿ›. Compliant implementations MAY implement the VRFY command. From [SMTP] (Note that the implementation of VRFY may simplify the guessing of a recipient's mailbox or automated sweeps for valid mailbox addresses, resulting in a possible reduction in privacy. Various implementation techniques may be used to reduce the threat, such as limiting the number of queries per session.) From [SMTP]

5.1.9. EHLO ๐ŸŽ€

EHLO is the enhanced mail greeting that lets a server announce support for extended messaging options ๐Ÿ“ฃ. The extended messaging modes get covered in later sections of this document ๐Ÿ“–. Compliant implementations MUST implement the ESMTP command and return the capabilities indicated later in this memo. From [ESMTP]

5.1.10. BDAT ๐Ÿš€

The BDAT command is a higher-efficiency alternative to the older DATA command, especially for voice ๐ŸŽ™๏ธ. It provides native binary transport of messages, which is a whole vibe ๐Ÿคฉ. Compliant implementations SHOULD support binary transport using the BDAT command [BINARY].


5.2. ESMTP Keywords ๐Ÿท๏ธ

The following ESMTP keywords indicate extended features that are useful for voice messaging ๐ŸŽง.

5.2.1. PIPELINING ๐Ÿงต

The "PIPELINING" keyword means the receiving server can accept new commands before it sends a response to the previous one โšก. Pipelining commands dramatically improves performance by cutting down on round-trip packet exchanges, and it makes it possible to validate all recipient addresses in one operation ๐Ÿ™Œ. Compliant implementations SHOULD support the command pipelining indicated by this keyword. From [PIPE]

5.2.2. SIZE ๐Ÿ“

The "SIZE" keyword is how the SMTP server tells you the maximum message size it supports ๐Ÿง. Compliant servers MUST provide size extension to indicate the maximum message size that can be accepted. Clients SHOULD NOT send messages larger than the size the server indicated ๐Ÿ™…โ€โ™€๏ธ. Clients SHOULD advertise SIZE= when sending messages to servers that indicate support for the SIZE extension. From [SIZE]

5.2.3. CHUNKING ๐Ÿงฉ

The "CHUNKING" keyword means the receiver supports the high-performance binary transport mode ๐ŸŽ๏ธ. CHUNKING can be used with any message format and does not imply support for binary encoded messages, so don't mix those up ๐Ÿซ . Compliant implementations MAY support binary transport indicated by this capability. From [BINARY]

5.2.4. BINARYMIME ๐Ÿ’พ

The "BINARYMIME" keyword means the SMTP server can accept binary encoded MIME messages ๐Ÿ–ผ๏ธ. Compliant implementations MAY support binary transport indicated by this capability. Note that support for this feature requires support of CHUNKING. From [BINARY]

5.2.5. DSN ๐Ÿ“จ

The "DSN" keyword means the SMTP server will accept explicit delivery status notification requests ๐Ÿ™‹โ€โ™€๏ธ. Compliant implementations MUST support the delivery notification extensions in [DRPT].

5.2.6. ENHANCEDSTATUSCODES ๐Ÿ”ข

The "ENHANCEDSTATUSCODES" keyword means an SMTP server adds enhanced mail system status codes [CODES] to its responses ๐Ÿง . Those codes give more informative explanations of error conditions, especially in the context of the delivery status notifications format defined in [DSN] ๐Ÿ’ก. Compliant implementations SHOULD support this capability. From [STATUS]


5.3. ESMTP Parameters - MAIL FROM ๐Ÿงพ

5.3.1. BINARYMIME ๐Ÿ’ฟ

The current message is a binary encoded MIME messages. Compliant implementations SHOULD support binary transport indicated by this parameter. From [BINARY]

5.3.2. RET ๐Ÿ”™

The RET parameter indicates whether the content of the message should be returned ๐Ÿ“ค. Compliant systems SHOULD honor a request for returned content. From [DRPT]

5.3.3. ENVID ๐Ÿชช

The ENVID keyword of the SMTP MAIL command is used to specify an "envelope identifier" ๐Ÿท๏ธ. It gets transmitted along with the message and included in any DSNs issued for any of the recipients named in this SMTP transaction ๐Ÿ“ฌ. The whole point is to let the sender identify the transaction a DSN was issued for ๐Ÿ•ต๏ธโ€โ™€๏ธ. Compliant implementations MAY use this parameter. From [DRPT]


5.4. ESMTP Parameters - RCPT TO ๐Ÿ“‡

5.4.1. NOTIFY ๐Ÿ””

The NOTIFY parameter indicates the conditions under which a delivery report should be sent ๐Ÿ“ฃ. Compliant implementations MUST honor this request. From [DRPT]

5.4.2. ORCPT ๐ŸŽฏ

The ORCPT keyword of the RCPT command specifies an "original" recipient address that matches the actual recipient the message is going to be delivered to ๐Ÿ’ซ. If the ORCPT esmtp-keyword is used, it MUST have an associated esmtp-value, which consists of the original recipient address, encoded according to the rules below ๐Ÿ”. Compliant implementations MAY use this parameter. From [DRPT]


5.5. ESMTP - SMTP Downgrading โฌ‡๏ธ

The ESMTP extensions suggested or required for VPIM conformance fall into two categories ๐Ÿ—‚๏ธ. The first category is features that make the transport system more efficient, like SIZE, BINARYMIME, and PIPELINING โšก. If there's a downgrade to a less functional transport system, these features can be dropped with no functional change to the sender or recipient ๐Ÿคทโ€โ™€๏ธ.

The second category is transport extensions that support new functions ๐Ÿ†•. DSN and EnhancedStatusCodes provide essential improvements to how delivery status notifications are handled, bringing email up to the level of reliability expected of Voice Mail ๐Ÿ“žโœจ. To keep a consistent level of service across an intranet or the global Internet, it is essential that VPIM compliant ESMTP support the ESMTP DSN extension at all hops between a VPIM originating system and the recipient system ๐Ÿ›ฐ๏ธ. When a "downgrade" is unavoidable, a relay hop may be forced (by the next hop) to forward a VPIM message without the ESMTP request for positive delivery status notification ๐Ÿ˜ค. It is RECOMMENDED that the downgrading system should continue to attempt to deliver the message, but MUST send an appropriate delivery notification to the originator, e.g. the message left an ESMTP host and was sent (unreliably) via SMTP ๐Ÿ“ฌ๐Ÿ’œ.


6. Directory Address Resolution ๐Ÿ“–

It is the responsibility of a VPIM system to provide the fully-qualified domain name (FQDN) of the recipient, based on the address entered by the user (if the entered address is not already an FQDN) ๐Ÿงญ. This is typically an issue on systems that only offered a telephone user interface ๐Ÿ“ฑ. Mapping the dialed target number to a routeable FQDN, so delivery can reach the destination system, can be done through implementation-specific means ๐Ÿ› ๏ธ.

To set up a local dial-by-name cache, an implementation might want to fill local directories with first and last names, plus the address information pulled from received messages ๐Ÿ—ƒ๏ธ. It is mandated that only address information from vCard attachments to VPIM messages be used to populate such a directory when the vCard is available ๐Ÿ“‡. Addresses or names parsed from the header fields of VPIM messages SHOULD NOT be used to populate directories, since they only provide partial data ๐Ÿ™…โ€โ™€๏ธ. Alternatively, bilateral agreements could be made to allow the bulk transfer of vCards between systems ๐Ÿค.


7. IMAP ๐Ÿ’Œ

Using client/server desktop mailbox protocols like IMAP or POP to retrieve VPIM messages from an IMAP or POP message store is possible without any special modifications to this VPIM specification ๐Ÿฅณ. Email clients (and web browsers) typically have a table that maps MIME types to displaying applications ๐Ÿ—บ๏ธ. The audio/*, image/tiff and text/directory contents can be configured so they invoke the correct player or recorder for rendering ๐ŸŽถ. With IMAP clients, the first multipart/mixed content (if present) won't appear, since it's a generic part ๐Ÿ™ˆ. Instead, the user is shown a message with (for example) audio and image contents ๐Ÿ–ผ๏ธ.


8. Management Protocols ๐Ÿ›Ž๏ธ

The Internet protocols provide a mechanism for managing messaging systems, from managing the physical network all the way through managing the message queues ๐Ÿ•ธ๏ธ. SNMP should be supported on a compliant message machine ๐Ÿ’œ.

8.1. Network Management ๐Ÿ“Š

The digital interface to the VM and the TCP/IP protocols MAY be managed ๐ŸŽ›๏ธ. MIB II MAY be implemented to provide basic statistics and reporting of TCP and IP protocol performance [MIB II] ๐Ÿ“ˆโœจ.

9. Conformance Requirements โœจ

okay so VPIM is a messaging app that has to work in SO many environments ๐Ÿ˜ญ like traditional voice processing systems, desktop voice messaging, store and forward relays, and protocol translation gateways. and it has to run on totally different devices too ๐Ÿ“ฑ

so to cover all of them, this doc sets up two conformance areas: transport and content ๐ŸŽ€

Transport conformant systems pass VPIM messages along in a store and forward way ๐Ÿ“ฌ with assured delivery notifications, and without losing any info ๐Ÿฆ‹ it's expected that most store and forward Internet mail based messaging systems will be VPIM transport compliant. slay โœจ

Content conformant systems generate and interpret VPIM messages ๐Ÿซถ generating them means honoring the restrictions of this profile. only contents from this profile, or extensions agreed to by bilateral agreement, may be sent. interpreting them means being able to receive all VPIM content types and constructs, decoding and presenting all mandatory VPIM content types to the recipient in an appropriate way, and sending the appropriate notification if any contents can't be rendered ๐Ÿ™ˆ

a summary of the compliance requirements lives in Appendix A ๐Ÿ“

VPIM end systems are expected to be both transport and content conformant. they generate conforming content, reliably send it to the next hop system, receive a message, decode it, and present it to the user ๐Ÿ’… voice messaging systems and protocol conversion gateways count as end systems ๐Ÿ’–

relay systems are expected to be transport compliant so they can receive and send conforming messages. but they must also create VPIM conforming delivery status notifications when there are delivery problems ๐Ÿšจ

desktop email clients that support VPIM are expected to be content conformant ๐Ÿ’Œ they use various protocols and APIs to exchange messages with the local message store and the message transport system. these clients may benefit from VPIM transport capabilities, but specific client-server requirements are out of scope for this document ๐ŸŒธ

10. Security Considerations

10.1 General Directive

this doc is a profile of existing Internet mail protocols ๐Ÿงš to keep interoperability with Internet mail, any security should be part of the Internet security infrastructure, rather than a new mechanism or some other mechanism outside of the Internet infrastructure. no side quests ๐Ÿ™…โ€โ™€๏ธ

10.2 Threats and Problems

both Internet mail and voice messaging come with their own threats and countermeasures ๐Ÿ•ต๏ธโ€โ™€๏ธ so this spec doesn't create any security issues that aren't already in the profiled Internet mail and voice mail protocols themselves. this section only covers the extra threats that pop up when you combine the two services ๐Ÿ˜ค

10.2.1 Spoofed sender

the actual sender of a voice message might not match what's in the Sender or From header fields of the message content headers, or the MAIL FROM address from the SMTP envelope ๐Ÿ‘€ in a tightly constrained environment, sufficient physical and software controls may be able to prevent this. also, recognizing the sender's voice may give confidence in their identity no matter what Sender or From says ๐ŸŽ™๏ธ it should be recognized that SMTP implementations don't provide inherent authentication of senders, and sites aren't obligated to provide it either. ๐Ÿ’€

10.2.2 Unsolicited voice mail

giving a voice mailbox an Internet mail address opens the door to unsolicited messages, whether text or voice ๐Ÿ“ฉ traditionally, voice mail systems ran in closed environments and weren't open to unknown senders. voice mail users expect a higher level of mailbox privacy, and they may see these messages as a security breach ๐Ÿšจ lots of Internet mail systems are now blocking all messages from unknown sources to curb this problem ๐Ÿ›ก๏ธ

10.2.3 Message disclosure

voice messaging users expect a higher level of message privacy than Internet mail gives without security enhancements ๐Ÿ”’ this privacy expectation SHOULD be preserved as much as possible. protect that vibe, bestie ๐Ÿซถ

10.3 Security Techniques

physical and software controls may be acceptable in constrained environments ๐Ÿฐ and this profile does not in any way preclude using any Internet object or channel security protocol to encrypt, authenticate, or non-repudiate the messages. security is a whole lifestyle, honestly โœจ

11. REFERENCES

   [8BIT] Klensin, J., Freed, N., Rose, M., Stefferud, E., and D.
          Crocker, "SMTP Service Extension for 8bit-MIMEtransport", RFC
          1426, February 1993.

   [ADPCM] Vaudreuil, G., and G. Parsons, "Toll Quality Voice - 32
           kbit/s ADPCM:  MIME Sub-type Registration", RFC 2422,
           September 1998.

   [AMIS-A] Audio Messaging Interchange Specifications (AMIS) - Analog
            Protocol Version 1, Issue 2, February 1992.

   [AMIS-D] Audio Messaging Interchange Specifications (AMIS) - Digital
            Protocol Version 1, Issue 3 August 1993.

   [BINARY] Vaudreuil, G., "SMTP Service Extensions for Transmission of
            Large and Binary MIME Messages", RFC 1830, October 1995.

   [CODES] Vaudreuil, G., "Enhanced Mail System Status Codes", RFC 1893,
           January 1996.

   [MIMEDIR] Howes, T., Smith, M., and F. Dawson, "A MIME Content-Type
             for Directory Information", RFC 2425, September 1998.

   [DISP] Troost, R., and S. Dorner, "Communicating Presentation
          Information in Internet Messages: The Content-Disposition
          Header", RFC 2183, August 1997.

   [DNS1] Mockapetris, P., "Domain names - implementation and
          specification", STD 13, RFC 1035, November 1987.

   [DNS2] Mockapetris, P., "Domain names - concepts and facilities", STD
          13, RFC 1034, November 1987.

   [DRPT] Moore, K., "SMTP Service Extensions for Delivery Status
          Notifications", RFC 1891, January 1996.

   [DSN] Moore, K., and G. Vaudreuil, "An Extensible Message Format for
         Delivery Status Notifications", RFC 1894, January 1996.

   [DUR] Vaudreuil, G., and G. Parsons, "Content Duration MIME Header
         Definition", RFC 2424, September 1998.

   [E164] CCITT Recommendation E.164 (1991), Telephone Network and ISDN
          Operation, Numbering, Routing and  Mobile Service - Numbering
          Plan for the ISDN Era.

   [ESMTP] Klensin, J., Freed, N., Rose, M., Stefferud, E., and D.
           Crocker, "SMTP Service Extensions", RFC 1869, November 1995.

   [G726] CCITT Recommendation G.726 (1990), General Aspects of Digital
          Transmission Systems, Terminal Equipment - 40, 32, 24,16
          kbit/s Adaptive Differential Pulse Code Modulation (ADPCM).

   [HOSTREQ] Braden, R., "Requirements for Internet Hosts -- Application
             and Support", STD 3, RFC 1123, October 1989.

   [LANG] Alvestrand, H., "Tags for the Identification of Languages",
          RFC 1766, March 1995.

   [MDN] Fajman, R., "An Extensible Message Format for Message
         Disposition Notifications", RFC 2298, March 1998.

   [MIB II] Rose, M., "Management Information Base for Network
            Management of TCP/IP-based internets: MIB-II", RFC 1158, May
            1990.

   [MIME1] Freed, N., and N. Borenstein, "Multipurpose Internet Mail
           Extensions (MIME) Part One: Format of Internet Message
           Bodies", RFC 2045, November 1996.

   [MIME2] Freed, N., and N. Borenstein,  "Multipurpose Internet Mail
           Extensions (MIME) Part Two: Media Types", RFC 2046, November
           1996.

   [MIME3] Moore, K., "Multipurpose Internet Mail Extensions (MIME) Part
           Three: Message Header Extensions for Non-ASCII Text", RFC
           2047, November 1996.

   [MIME4] Freed, N., Klensin, J., and J. Postel,  "Multipurpose
           Internet Mail Extensions (MIME) Part Four: Registration
           Procedures", RFC 2048, November 1996.

   [MIME5] Freed, N., and N. Borenstein,  "Multipurpose Internet Mail
           Extensions (MIME) Part Five: Conformance Criteria and
           Examples", RFC 2049, November 1996.

   [PIPE] Freed, N., and A. Cargille, "SMTP Service Extension for
          Command Pipelining", RFC 1854, October 1995.

   [REPORT] Vaudreuil, G., "The Multipart/Report Content Type for the
            Reporting of Mail System Administrative Messages", RFC 1892,
            January 1996.

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

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

   [SIZE] Klensin, J., Freed, N., and K. Moore, "SMTP Service Extensions
          for Message Size Declaration", RFC 1870, November 1995.

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

   [STATUS] Freed, N., "SMTP Service Extension for Returning Enhanced
            Error Codes", RFC 2034, October 1996.

   [TIFF-F] Parsons, G., and J. Rafferty, "Tag Image File Format:
            Application F", RFC 2306, March 1998.

   [TIFFREG] Parsons, G., Rafferty, J., and S. Zilles, "Tag Image File
             Format: image/tiff - MIME sub-type registraion", RFC 2302,
             March 1998.

   [V-MSG] Vaudreuil, G., and G. Parsons, "VPIM Voice Message:  MIME
           Sub-type Registration", RFC 2423, September 1998.

   [VCARD] Dawson, F., and T. Howes, "vCard MIME Directory Profile", RFC
           2426, September 1998.

   [VPIM1] Vaudreuil, G., "Voice Profile for Internet Mail", RFC 1911,
           February 1996.

   [X.400] Hardcastle-Kille, S., "Mapping between X.400(1988) / ISO
           10021 and RFC 822", RFC 1327, May 1992.

12. Acknowledgments

big thanks to the Electronic Messaging Association (EMA) ๐ŸŽ‰ especially the Voice Messaging Committee and the VPIM Work Group. they backed the VPIM spec and worked really hard to make sure it succeeded ๐Ÿ‘‘

the EMA hosts the VPIM web page at http://www.ema.org/vpim ๐ŸŒˆ

13. Authors' Addresses

   Glenn W. Parsons
   Northern Telecom
   P.O. Box 3511, Station C
   Ottawa, ON  K1Y 4H7
   Canada

   Phone: +1-613-763-7582
   Fax: +1-613-763-4461
   EMail: Glenn.Parsons@Nortel.ca


   Gregory M. Vaudreuil
   Lucent Technologies,
   Octel Messaging Division
   17080 Dallas Parkway
   Dallas, TX  75248-1905
   United States

   Phone/Fax: +1-972-733-2722
   EMail: GregV@Lucent.Com

14. Appendix A - VPIM Requirements Summary

this table is the summary of the VPIM version 2 profile detailed in this document ๐Ÿฐ in lots of cases it isn't possible to simplify the qualifications for each feature, so this appendix is informative. the reader is recommended to read the full explanation of each feature in the referenced section. if any item in the table is ambiguous, the text in the previous sections shall be deemed authoritative. the main text is the source of truth, bestie ๐Ÿ’…

the conformance table has these columns:

  • Feature - the name of a protocol feature. the indenting shows a hierarchy of conformance, so a lower feature only matters if you conform to the higher feature above it ๐Ÿชœ
  • Section - the reference section in the main text of this document ๐Ÿ“–

Okay so now we're getting to the actual checklist, bestie ๐ŸŽ€ This table is the whole VPIM v2 conformance vibe in one place, so let's see what's what ๐Ÿ’…

Area tells you which conformance area each feature applies to:

  • C - content
  • T - transport

Status tells you whether a feature is mandatory, optional, or prohibited. The key words in this table are to be interpreted as described in [REQ], but here's the quick glow-up version of each degree ๐Ÿงš

  • MUST - mandatory ๐Ÿ’–
  • SHOULD - required unless there's a compelling need to leave it out โœจ
  • MAY - optional ๐Ÿฆ‹
  • SHOULD NOT - prohibited unless there's a compelling need ๐Ÿ’€
  • MUST NOT - prohibited ๐Ÿšซ

Footnote is a special comment about conformance for one particular feature ๐Ÿ“


                        VPIM version 2 Conformance
                                                        | | | | |S| |
                                             |          | | | | |H| |F
                                             |          | | | | |O|M|o
                                             |          | | |S| |U|U|o
                                             |          | | |H| |L|S|t
                                             |          |A|M|O| |D|T|n
                                             |          |R|U|U|M| | |o
                                             |          |E|S|L|A|N|N|t
                                             |          |A|T|D|Y|O|O|t
  FEATURE                                    |SECTION   | | | | |T|T|e
  -------------------------------------------|----------|-|-|-|-|-|-|-
                                             |          | | | | | | |
  Message Addressing Formats:                |          | | | | | | |
    Use DNS host names                       |4.1       |C|x| | | | |
    Use only numbers in mailbox IDs          |4.1.1     |C| |x| | | |
    Use alpha-numeric mailbox IDs            |4.1.1     |C| | |x| | |
    Support of postmaster@domain             |4.1.2     |C|x| | | | |
    Support of non-mail-user@domain          |4.1.2     |C| |x| | | |
    Support of distribution lists            |4.1.3     |C| |x| | | |
                                             |          | | | | | | |
  Message Header Fields:                     |          | | | | | | |
    Encoding outbound messages               |          | | | | | | |
      From                                   |4.2.1     |C|x| | | | |
        Addition of text name                |4.2.1     |C| |x| | | |
      To                                     |4.2.2     |C|x| | | | |1
      cc                                     |4.2.3     |C| |x| | | |1
      Date                                   |4.2.4     |C|x| | | | |
      Sender                                 |4.2.5     |C| | |x| | |
      Return-Path                            |4.2.6     |C| | |x| | |
      Message-id                             |4.2.7     |C|x| | | | |
      Reply-To                               |4.2.8     |C| | | |x| |
      Received                               |4.2.9     |C|x| | | | |
      MIME Version: 1.0 (Voice 2.0)          |4.2.10    |C| |x| | | |
      Content-Type                           |4.2.11    |C|x| | | | |
      Content-Transfer-Encoding              |4.2.12    |C|x| | | | |
      Sensitivity                            |4.2.13    |C| | |x| | |
      Importance                             |4.2.14    |C| | |x| | |
      Subject                                |4.2.15    |C| |x| | | |
      Disposition-notification-to            |4.2.16    |C| | |x| | |
      Disposition-notification-options       |4.2.17    |C| | |x| | |
      Other Headers                          |4.2       |C| | |x| | |
                                             |          | | | | | | |

                                                        | | | | |S| |
                                             |          | | | | |H| |F
                                             |          | | | | |O|M|o
                                             |          | | |S| |U|U|o
                                             |          | | |H| |L|S|t
                                             |          |A|M|O| |D|T|n
                                             |          |R|U|U|M| | |o
                                             |          |E|S|L|A|N|N|t
                                             |          |A|T|D|Y|O|O|t
  FEATURE                                    |SECTION   | | | | |T|T|e
  -------------------------------------------|----------|-|-|-|-|-|-|-
    Detection & Decoding inbound messages    |          | | | | | | |
      From                                   |4.2.1     |C|x| | | | |
        Present text personal name           |4.2.1     |C| | |x| | |
      To                                     |4.2.2     |C|x| | | | |
      cc                                     |4.2.3     |C| | |x| | |
      Date                                   |4.2.4     |C|x| | | | |
        Conversion of Date to local time     |4.2.4     |C| |x| | | |
      Sender                                 |4.2.5     |C| | |x| | |
      Return-Path                            |4.2.6     |C| | |x| | |
      Message ID                             |4.2.7     |C|x| | | | |
      Reply-To                               |4.2.8     |C| |x| | | |
      Received                               |4.2.9     |C| | |x| | |
      MIME Version: 1.0 (Voice 2.0)          |4.2.10    |C| |x| | | |
      Content Type                           |4.2.11    |C|x| | | | |
      Content-Transfer-Encoding              |4.2.12    |C|x| | | | |
      Sensitivity                            |4.2.13    |C|x| | | | |2
      Importance                             |4.2.14    |C| | |x| | |
      Subject                                |4.2.15    |C| | |x| | |
      Disposition-notification-to            |4.2.16    |C| | |x| | |
      Disposition-notification-options       |4.2.17    |C| | |x| | |
      Other Headers                          |4.2       |C|x| | | | |3
                                             |          | | | | | | |
  Message Content Encoding:                  |          | | | | | | |
    Encoding outbound audio/fax contents     |          | | | | | | |
      7BIT                                   |4.3       |C| | | | |x|
      8BIT                                   |4.3       |C| | | | |x|
      Quoted Printable                       |4.3       |C| | | | |x|
      Base64                                 |4.3       |C|x| | | | |4
      Binary                                 |4.3       |C| |x| | | |5
    Detection & decoding inbound messages    |          | | | | | | |
      7BIT                                   |4.3       |C|x| | | | |
      8BIT                                   |4.3       |C|x| | | | |
      Quoted Printable                       |4.3       |C|x| | | | |
      Base64                                 |4.3       |C|x| | | | |
      Binary                                 |4.3       |C|x| | | | |5
                                             |          | | | | | | |

                                                        | | | | |S| |
                                             |          | | | | |H| |F
                                             |          | | | | |O|M|o
                                             |          | | |S| |U|U|o
                                             |          | | |H| |L|S|t
                                             |          |A|M|O| |D|T|n
                                             |          |R|U|U|M| | |o
                                             |          |E|S|L|A|N|N|t
                                             |          |A|T|D|Y|O|O|t
  FEATURE                                    |SECTION   | | | | |T|T|e
  -------------------------------------------|----------|-|-|-|-|-|-|-
  Message Content Types:                     |          | | | | | | |
    Inclusion in outbound messages           |          | | | | | | |
      Multipart/Voice-Message                |4.3.1     |C|x| | | | |
        Message/RFC822                       |4.3.2     |C| | |x| | |
        Text/Directory                       |4.3.3     |C| |x| | | |
          include TEL, EMAIL, VERSION        |4.3.3     |C|x| | | | |
          include ROLE, SOUND, N, REV        |4.3.3     |C| |x| | | |
          only one voice type per level      |4.3.3     |C|x| | | | |
        Audio/32KADPCM                       |4.3.4     |C|x| | | | |
          Content-Description                |4.3.4.1   |C| | |x| | |
          Content-Disposition                |4.3.4.2   |C|x| | | | |
          Content-Duration                   |4.3.4.3   |C| | |x| | |
          Content-Langauge                   |4.3.4.4   |C| | |x| | |
        Image/tiff; application=faxbw        |4.3.5     |C| | |x| | |
        Audio/* or Image/* (other encodings) |4.3.6     |C| | |x| | |
      Multipart/Mixed                        |4.4.1     |C| | |x| | |
      Text/plain                             |4.4.2     |C| | | |x| |
      Multipart/Report                       |4.4.3     |C|x| | | | |
         human-readable part is voice        |4.4.3     |C| |x| | | |
         human-readable part is text         |4.4.3     |C| | |x| | |
      Message/delivery-status                |4.4.4     |C|x| | | | |
      Message/disposition-notification       |4.4.5     |C| |x| | | |
      Other contents                         |4.4       |C| | | |x| |6
                                             |          | | | | | | |
    Detection & decoding in inbound messages |          | | | | | | |
      Multipart/Voice-Message                |4.3.1     |C|x| | | | |
        Message/RFC822                       |4.3.2     |C|x| | | | |
        Text/Directory                       |4.3.3     |C| |x| | | |
          recognize TEL, EMAIL, VERSION      |4.3.3     |C|x| | | | |
          recognize ROLE, SOUND, N, REV      |4.3.3     |C| |x| | | |
        Audio/32KADPCM                       |4.3.4     |C|x| | | | |
          Content-Description                |4.3.4.1   |C| | |x| | |
          Content-Disposition                |4.3.4.2   |C| |x| | | |
          Content-Duration                   |4.3.4.3   |C| | |x| | |
          Content-Langauge                   |4.3.4.4   |C| | |x| | |
        Image/tiff; application=faxbw        |4.3.5     |C| |x| | | |
          send NDN if unable to render       |4.3.5     |C|x| | | | |7

        Audio/* or Image/* (other encodings) |4.3.6     |C| | |x| | |
      Multipart/Mixed                        |4.4.1     |C|x| | | | |
      Text/plain                             |4.4.2     |C|x| | | | |
        send NDN if unable to render         |4.4.2     |C|x| | | | |

okay the feature matrix is back, and it's giving spreadsheet energy ๐Ÿงš๐Ÿ’…

                                            |           | | | | |S| |
                                            |           | | | | |H| |F
                                            |           | | | | |O|M|o
                                            |           | | |S| |U|U|o
                                            |           | | |H| |L|S|t
                                            |           |A|M|O| |D|T|n
                                            |           |R|U|U|M| | |o
                                            |           |E|S|L|A|N|N|t
                                            |           |A|T|D|Y|O|O|t
  FEATURE                                   |SECTION    | | | | |T|T|e
  ------------------------------------------|-----------|-|-|-|-|-|-|-
                                            |           | | | | | | |
     Multipart/Report                       |4.4.3      |C|x| | | | |
       human-readable part is voice         |4.4.3      |C| |x| | | |
       human-readable part is text          |4.4.3      |C|x| | | | |
      Message/delivery-status               |4.4.4      |C|x| | | | |
      Message/disposition-notification      |4.4.5      |C| |x| | | |
      Other contents                        |4.4        |C| | | |x| |6
        send NDN if unable to render        |4.4        |C| |x| | | |
                                            |           | | | | | | |
    Forwarded Messages                      |           | | | | | | |
      use Message/RFC822 construct          |4.5        |C| |x| | | |
      simulate headers if none available    |4.5        |C| |x| | | |
                                            |           | | | | | | |
    Reply Messages                          |           | | | | | | |
      send to Reply-to, else From address   |4.6        |C|x| | | | |
      do not send to non-mail-user          |4.6        |C|x| | | | |
                                            |           | | | | | | |
    Notifications                           |           | | | | | | |
      use multipart/report format           |4.7        |C|x| | | | |
      always send error on non-delivery     |4.7        |C| |x| | | |
                                            |           | | | | | | |
  Message Transport Protocol:               |           | | | | | | |
    ESMTP Commands                          |           | | | | | | |
      HELO                                  |5.1.1      |T|x| | | | |
      MAIL FROM                             |5.1.2      |T|x| | | | |
        support null address                |5.1.2      |T|x| | | | |
      RCPT TO                               |5.1.3      |T|x| | | | |
      DATA                                  |5.1.4      |T|x| | | | |
      TURN                                  |5.1.5      |T| | | | |x|
      QUIT                                  |5.1.6      |T|x| | | | |
      RSET                                  |5.1.7      |T|x| | | | |
      VRFY                                  |5.1.8      |T| | |x| | |
      EHLO                                  |5.1.9      |T|x| | | | |
      BDAT                                  |5.1.10     |T| | |x| | |5

the next bit is the same table with the headers repeated, and it's where the ESMTP keywords and parameters live ๐Ÿฆ‹

                                                        | | | | |S| |
                                             |          | | | | |H| |F
                                             |          | | | | |O|M|o
                                             |          | | |S| |U|U|o
                                             |          | | |H| |L|S|t
                                             |          |A|M|O| |D|T|n
                                             |          |R|U|U|M| | |o
                                             |          |E|S|L|A|N|N|t
                                             |          |A|T|D|Y|O|O|t
  FEATURE                                    |SECTION   | | | | |T|T|e
  -------------------------------------------|----------|-|-|-|-|-|-|-
                                             |          | | | | | | |
    ESMTP Keywords & Parameters             |           | | | | | | |
      PIPELINING                            |5.2.1      |T| |x| | | |
      SIZE                                  |5.2.2      |T|x| | | | |
      CHUNKING                              |5.2.3      |T| | |x| | |
      BINARYMIME                            |5.2.4,5.3.1|T| | |x| | |
      DSN                                   |5.2.5      |T|x| | | | |
      ENHANCEDSTATUSCODES                   |5.2.6      |T| |x| | | |
      RET                                   |5.3.2      |T| |x| | | |
      ENVID                                 |5.3.3      |T| | |x| | |
      NOTIFY                                |5.4.1      |T|x| | | | |
      ORCPT                                 |5.4.2      |T| | |x| | |
                                            |           | | | | | | |
    ESMTP-SMTP Downgrading                   |          | | | | | | |
      send delivery report upon downgrade    |
                                             |          | | | | | | |
  Directory Address Resolution               |          | | | | | | |
    provide facility to resolve addresses    |6         |C| |x| | | |
    use vCards to populate local directory   |6         |C| |x| | | |8
    use headers to populate local directory  |6         |C| | | |x| |
                                             |          | | | | | | |
  Management Protocols:                      |          | | | | | | |
    Network management                       |8.1       |T| ||x| | |
  -------------------------------------------|----------|-|-|-|-|-|-|-

Footnotes:

  1. MUST NOT include if all recipients are not known or resolvable.
  2. If a sensitive message is received by a system that does not support sensitivity, then it MUST be returned to the originator with an appropriate error notification. Also, a received sensitive message MUST NOT be forwarded to anyone.
  3. If the additional header fields are not understood they MAY be ignored.
  4. When binary transport is not available.
  5. When binary transport is available.
  6. Other un-profiled contents must only be sent by bilateral agreement.
  7. If the content cannot be presented in some form, the entire message MUST be returned with a negative delivery status notification.
  8. When the vCard is present in a message.

15. Appendix B - Example Voice Messages ๐ŸŽ€

okay so this is the glow-up section ๐Ÿ’… Appendix B is basically a pile of example voice messages so you can see exactly what the thing looks like on the wire. the first one is the full-featured version: two recipients, the sender's spoken name, and a short speech segment. it's marked Private and High importance ๐Ÿ”ฅ

To: +19725551212@vm1.mycompany.com
To: +16135551234@VM1.mycompany.com
From: "Parsons, Glenn" <12145551234@VM2.mycompany.com>
Date: Mon, 26 Aug 93 10:20:20 -0700 (CDT)
MIME-Version: 1.0  (Voice 2.0)
Content-type: Multipart/Voice-Message; Version=2.0;
  Boundary="MessageBoundary"
Content-Transfer-Encoding: 7bit
Message-ID: 123456789@VM2.mycompany.com
Sensitivity: Private
Importance: High

--MessageBoundary
Content-type: Audio/32KADPCM
Content-Transfer-Encoding: Base64
Content-Disposition: inline; voice=Originator-Spoken-Name
Content-Language: en-US
Content-ID: part1@VM2-4321

glslfdslsertiflkTfpgkTportrpkTpfgTpoiTpdadasssdasddasdasd
(This is a sample of the base-64 Spoken Name data)
fgdhgddlkgpokpeowrit09==

--MessageBoundary
Content-type: Audio/32KADPCM
Content-Transfer-Encoding: Base64
Content-Description: Brand X Voice Message
Content-Disposition: inline; voice=Voice-Message; filename=msg1.726
Content-Duration: 25

iIiIiIjMzN3czdze3s7d7fwfHhcvESJVe/4yEhLz8/FOQjVFRERCESL/zqrq
(This is a sample of the base64 message data) zb8tFdLTQt1PXj
u7wjOyRhws+krdns7Rju0t4tLF7cE0K0MxOTOnRW/Pn30c8uHi9==

--MessageBoundary
Content-type: text/directory; charset=us-ascii; profile=vCard
Content-Transfer-Encoding: 7bit

BEGIN:VCARD
N:Parsons;Glenn;;Mr.;
EMAIL;TYPE=INTERNET:+12145551234@VM2.mycompany.com
TEL:+1-217-555-1234
SOUND;TYPE=32KADPCM;ENCODING=URI: CID:<part1@VM2-4321>
REV:19951031T222710Z
VERSION: 3.0
END:VCARD

--MessageBoundary_

next up is a forwarded single-segment voice ๐Ÿฆ‹ the forwarded message AND the forwarding message both have VCARDs with spoken names, so it's giving double the names, double the vibes โœจ

 To: +12145551212@vm1.mycompany.com
 From: "Vaudreuil, Greg" <+19725552345@VM2.mycompany.com>
 Date: Mon, 26 Aug 93 10:20:20 -0700 (CDT)
 MIME-Version: 1.0  (Voice 2.0)
 Content-type: Multipart/Voice-Message; Version=2.0;
   Boundary="MessageBoundary"
 Content-Transfer-Encoding: 7bit
 Message-ID: ABCD-123456789@VM2.mycompany.com

 --MessageBoundary
 Content-type: Audio/32KADPCM
 Content-Transfer-Encoding: Base64
 Content-Disposition: inline; voice=Originator-Spoken-Name
 Content-Language: en-US
 Content-ID: part3@VM2-4321

 glslfdslsertiflkTfpgkTportrpkTpfgTpoiTpdadasssdasddasdasd
 (This is a sample of the base-64 Spoken Name data)
 fgdhgd dlkgpokpeowrit09==

 --MessageBoundary
 Content-type: Audio/32KADPCM
 Content-Description: Forwarded Message Annotation
 Content-Disposition: inline; voice=Voice-Message
 Content-Transfer-Encoding: Base64

 glslfdslsertiflkTfpgkTportrpkTpfgTpoiTpdadasssdasddasdasd
 (This is the voiced introductory remarks encoded in base64)
 jrgoij3o45itj09fiuvdkjgWlakgQ93ijkpokfpgokQ90gQ5tkjpokfgW
 dlkgpokpeowrit09==

 --MessageBoundary
 Content-type: Message/RFC822
 Content-Transfer-Encoding: 7bit

 To: +19725552345@VM2.mycompany.com
 From: "Parsons, Glenn, W." <+16135551234@VM1.mycompany.com>
 Date: Mon, 26 Aug 93 8:23:10 -0500 (EST)
 Content-type: Multipart/Voice-Message; Version=2.0;
   Boundary="MessageBoundary2"
 Content-Transfer-Encoding: 7bit
 MIME-Version: 1.0  (Voice 2.0)

 --MessageBoundary2
 Content-type: Audio/32KADPCM
 Content-Transfer-Encoding: Base64
 Content-Disposition: inline; voice=Originator-Spoken-Name
 Content-Language: en-US
 Content-ID: part6@VM2-4321

 glslfdslsertiflkTfpgkTportrpkTpfgTpoiTpdadasssdasddasdasd
 (This is a sample of the base-64 Spoken Name data) fgdhgd
  dlkgpokpeowrit09==

 --MessageBoundary2
 Content-type: Audio/32KADPCM
 Content-Disposition: inline; voice=Voice-Message
 Content-Transfer-Encoding: Base64

 glslfdslsertiflkTfpgkTportrpkTpfgTpoiTpdadasssdasddasdasd
 (This is the original message audio data) fgwersdfmniwrjj
 jrgoij3o45itj09fiuvdkjgWlakgQ93ijkpokfpgokQ90gQ5tkjpokfgW
 dlkgpokpeowrit09==

 --MessageBoundary2
 Content-type: text/directory; charset=us-ascii
 Content-Transfer-Encoding: 7bit

 BEGIN:VCARD
 N:Parsons;Glenn;W;Mr.;
 EMAIL;TYPE=INTERNET:+16135551234@VM2.mycompany.com
 TEL:+1-613-555-1234
 SOUND;TYPE=32KADPCM;ENCODING=URI: CID:<part6@VM2-4321>
 REV:19951031T222710Z
 END:VCARD

 --MessageBoundary2--

 --MessageBoundary
 Content-type: text/directory; charset=us-ascii
 Content-Transfer-Encoding: 7bit

 BEGIN:VCARD
 N:Vaudreuil;Greg;;Mr.;
 SOUND;TYPE=32KADPCM;ENCODING=URI: CID:<part3@VM2-4321>
 EMAIL;TYPE=INTERNET,VPIM:+19725552345@VM2.mycompany.com
 TEL:+1-972-555-2345
 REV:19951031T222710Z
 VERSION: 3.0
 END:VCARD

 --MessageBoundary--

the next one is a bounce ๐Ÿ™ˆ it's a message returned to the sender by a VPIM gateway at VM1.company.com because the mailbox doesn't exist. rip to that mailbox ๐Ÿ’€

Date: Thu, 7 Jul 1994 17:16:05 -0400
From: Mail Delivery Subsystem <MAILER-DAEMON@vm.company.com>
Message-Id: <199407072116.RAA14128@vm1.company.com>
Subject: Returned voice message
To: 2175552345@VM2.mycompany.com
MIME-Version: 1.0 (Voice 2.0)
Content-Type: multipart/report; report-type=delivery-status;
  boundary="RAA14128.773615765/VM1.COMPANY.COM"

--RAA14128.773615765/VM1.COMPANY.COM
Content-type: Audio/32KADPCM
Content-Description: Spoken Delivery Status Notification
Content-Disposition: inline; voice= Voice-Message-Notification
Content-Transfer-Encoding: Base64

glslfdslsertiflkTfpgkTportrpkTpfgTpoiTpdadadffsssddasdasd
(This is a voiced description of the error in base64)
jrgoij3o45itj09fiuvdkjgWlakgQ93ijkpokfpgokQ90gdffkjpokfgW
dlkgpokpeowrit09==

--RAA14128.773615765/VM1.COMPANY.COM
Content-type: message/delivery-status

Reporting-MTA: dns; vm1.company.com

Original-Recipient: rfc822; 2145551234@VM1.mycompany.com
Final-Recipient: rfc822; 2145551234@VM1.mycompany.com
Action: failed
Status: 5.1.1 (User does not exist)
Diagnostic-Code: smtp; 550 Mailbox not found
Last-Attempt-Date: Thu, 7 Jul 1994 17:15:49 -0400

--RAA14128.773615765/VM1.COMPANY.COM
content-type: message/rfc822

[original VPIM message goes here]
--RAA14128.773615765/VM1.COMPANY.COM--

and last but not least, a receipt notification for a message that's been played ๐ŸŽง this one was received by a corporate gateway and relayed to a unified mailbox, so it's a whole journey, no cap โœจ

Date: Thu, 7 Jul 1994 17:16:05 -0400
From: "Greg Vaudreuil" <22722@vm.company.com>
Message-Id: <199407072116.RAA14128@exchange.company.com>
Subject: Voice message played
To: 2175552345@VM2.mycompany.com
MIME-Version: 1.0 (Voice 2.0)
Content-Type: multipart/report;
  Report-type=disposition-notification;
  Boundary="RAA14128.773615765/EXCHANGE.COMPANY.COM"

--RAA14128.773615765/EXCHANGE.COMPANY.COM
Content-type: Audio/32KADPCM
Content-Description: Spoken Disposition Notification
Content-Disposition: inline; voice= Voice-Message-Notification
Content-Transfer-Encoding: Base64

glslfdslsertiflkTfpgkTportrpkTpfgTpoiTpdadadffsssddasdasd
(Voiced description of the disposition action in base64)
jrgoij3o45itj09fiuvdkjgWlakgQ93ijkpokfpgokQ90gdffkjpokfgW
dlkgpokpeowrit09==

--RAA14128.773615765/EXCHANGE.COMPANY.COM
Content-type: message/disposition-notification

Reporting-UA: gregs-laptop.dallas.company.com (Unified FooMail 3.0)

Original-Recipient: rfc822;22722@vm.company.com
Final-Recipient: rfc822;Greg.Vaudreuil@foomail.company.com
Original-Message-ID: <199509192301.12345@vm2.mycompany.com >
Disposition: manual-action/MDN-sent-automatically; displayed

--RAA14128.773615765/EXCHANGE.COMPANY.COM
Content-type: message/rfc822

[original VPIM message goes here]

--RAA14128.773615765/EXCHANGE.COMPANY.COM--

16. Appendix C - Example Error Voice Processing Error Codes ๐Ÿšจ

okay, this one's the error cheat sheet ๐Ÿ“‹ it lists some common voice processing errors and the status codes that go with them. the text after each error code is just there to describe it for you. the big tip is that implementations should put their own implementation-specific informative comments after the error code, not just copy the text below ๐Ÿ’…

Error condition                 RFC 1893 Error codes
-----------------------------   --------------------------------

Analog delivery failed          4.4.0 Persistent connection error
because remote system is busy         - other

Analog delivery failed          4.4.1 Persistent protocol error
because remote system is              - no answer from host
ring-no-answer

Remote system did not answer    5.5.5 Permanent protocol error
AMIS-Analog handshake ("D" in         - wrong version
response to "C" at connect
time)

Mailbox does not exist          5.1.1 Permanent mailbox error
                                      - does not exist

Mailbox full or over quota      4.2.2 Persistent mailbox error
                                      - full

Disk full                       4.3.1 Persistent system error
                                      - full

Command out of sequence         5.5.1 Permanent protocol error
                                      - invalid command

Frame Error                     5.5.2 Permanent protocol error
                                      - syntax error

Mailbox does not support FAX    5.6.1 Permanent media error
                                      - not supported

Mailbox does not support TEXT   5.6.1 Permanent media error
                                      - not supported

Sender is not authorized        5.7.1 Permanent security error
                                      - sender not authorized

Message marked private, but     5.3.3 Permanent system error
system is not private capable         - not feature capable

17. Appendix D - Example Voice Processing Disposition Types ๐Ÿฆ‹

this one maps common voice processing disposition conditions to their MDN Disposition, which is the disposition mode, type and modifier (when there's one). these are examples, not the full list. if you want the whole format of message disposition notifications, go check [MDN] because it has all the details ๐Ÿค“

Notification event               MDN Disposition mode, type & modifier
------------------------------   -------------------------------------

Message played by recipient,    manual-action/MDN-sent-automatically;
receipt automatically returned  displayed

Message deleted from mailbox    manual-action/MDN-sent-automatically;
by user without listening       deleted

Message cleared when mailbox    manual-action/MDN-sent-automatically;
deleted by admin                deleted/mailbox-terminated

Message automatically deleted   automatic-action/
when older than administrator   MDN-sent-automatically; deleted/
set threshold                   expired

Message processed, however      manual-action/MDN-sent-automatically;
audio encoding unknown -        processed/error
unable to play to user          Error: unknown audio encoding

18. Appendix E - IANA Registrations โœจ

this heading is the start of Appendix E, and the IANA registrations are where things pick up next, so stay tuned ๐Ÿงš๐Ÿ’œ

18.1 vCard EMAIL Type Definition for VPIM ๐Ÿ“‡

okay so this is the registration form for the EMAIL property in vCard, and it is giving very official ๐Ÿ’… here's the header first:

To: ietf-mime-directory@imc.org

Subject: Registration of new parameter for text/directory MIME type
EMAIL

The type name is EMAIL ๐Ÿ’– and the encoding is 8bit โœจ. The type value is a single text value.

The type purpose is to specify the electronic mail address for communicating with the object the vCard represents (defined in [VCARD]) ๐Ÿ“ฌ

Now the special notes, which are lowkey the juicy part ๐Ÿซถ The type can include the TYPE parameter to specify the format or preference of the address. The TYPE values already defined are:

  • internet, for an Internet addressing type
  • x400, for an X.400 addressing type
  • pref, for a preferred-use email address when more than one is specified
  • vpim, which means the address supports VPIM messages ๐ŸŽ€

Other IANA registered address types can show up too. The default email type is internet, and a non-standard value is allowed as well ๐ŸŒˆ

Here's the example, iykyk:

EMAIL;TYPE=internet,vpim:jqpublic@xyz.dom1.com

18.2 Voice Content-Disposition Parameter Definition ๐ŸŽง

This one is for the IANA folks, so the header goes like this:

To: IANA@IANA.ORG

Subject: Registration of new Content-Disposition parameter

The parameter name is voice ๐Ÿฆ‹ and these are the allowable values:

  • Voice-Message: the primary voice message
  • Voice-Message-Notification: a spoken delivery notification or spoken disposition notification
  • Originator-Spoken-Name: the spoken name of the originator
  • Recipient-Spoken-Name: the spoken name of the recipient, if it's available to the originator and there is ONLY one recipient
  • Spoken-Subject: the spoken subject of the message, typically spoken by the originator ๐Ÿ“

The point of all this is to tell apart the different kinds of audio in a VPIM voice message. So the voice disposition parameter gets these values, used as appropriate โœจ There SHOULD only be one instance of each type of audio content per message level. Extra instances of a given type (meaning the same parameter value) can show up inside an attached forwarded voice message ๐Ÿ”


19. Appendix F - Change History: RFC 1911 to this Document ๐Ÿงพ

this version is built on what we learned from a proof of concept demo of VPIM at EMA'96 in April 1996, plus a follow-up product demo at EMA'97 in April 1997. honestly it's a super different profile from the one in [VPIM1] ๐Ÿ”ฅ The changes are sorted into four buckets: general, content, transport, and compliance. Here's the tea:

  1. General
    • All definitions now live in separate documents that this profile references. The new ones are:
      • a refined multipart/voice-message definition
      • a refined audio/32KADPCM definition, with nibble order added
      • the definitions of TIFF-F and image/tiff for fax images
      • the Content-Duration definition
    • Changed the Voice version to 2.0
    • Added a Table of Contents and more examples
    • Various editorial updates to make it more readable
    • Added more security considerations
  2. Content
    • Modified the multipart/voice-message content type. It dropped the positional dependence of its contents and now restricts them to voice-message-specific content types
    • Explicitly listed the other contents that may be present in a multipart/mixed content type
    • Explicitly defined the forwarding model using message/RFC822
    • Explained how reply-to and from header fields are used for addressing replies
    • Deprecated the special "loopback" address because of security concerns, and it's only for testing now
    • Defined the non-mail-user reserved address, for when replies to the originator aren't possible
    • Eliminated text names in the "To" and "CC" header fields, and deprecated text name ordering in the "From" header
    • Added facsimile support using TIFF-F in an image/tiff; application=faxbw content type
    • Profiled vCard in the text/directory body part, for transporting directory info about the originator
    • Loosened the text restriction
    • Added more details on delivery and receipt notifications
    • Added support for message disposition notifications, also known as receipt notifications
    • Added suggested addressing formats
    • Described how private messages are handled
    • Described how non-profiled contents in VPIM messages are handled
    • Described using Content-Disposition to semantically identify audio contents
  3. Transport
    • Moved binary support to optional
    • Added optional ESMTP keywords for return of content, enhanced status codes, original recipient, and envelope ID
    • Described the use of a null MAIL FROM address
  4. Compliance
    • Added an explicit conformance section that specifies conformance to content or transport
    • Improved the conformance table in Appendix A ๐ŸŽ€

Copyright (C) The Internet Society (1998). 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. ๐ŸŒธ

๐Ÿ“ฆ where this page comes from