| < draft-ietf-vpim-cc-07.txt | draft-ietf-vpim-cc-08.txt > | |||
|---|---|---|---|---|
| A new Request for Comments is now available in online RFC libraries. | ||||
| Network Working Group E. Burger | RFC 3459 | |||
| Internet Draft SnowShore Networks | ||||
| Document: draft-ietf-vpim-cc-07.txt | ||||
| Category: Standards Track | ||||
| Updates: RFC 3204 | ||||
| Expires December 2002 June 1, 2002 | ||||
| Critical Content MIME Parameter | ||||
| Status of this Memo | ||||
| This document is an Internet-Draft and is in full conformance with | ||||
| all provisions of Section 10 of RFC 2026 [1]. | ||||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF), its areas, and its working groups. Note that | ||||
| other groups may also distribute working documents as Internet- | ||||
| Drafts. Internet-Drafts are draft documents valid for a maximum of | ||||
| six months and may be updated, replaced, and other documents may | ||||
| obsolete this one at any time. It is inappropriate to use Internet- | ||||
| Drafts as reference material or to cite them other than as "work in | ||||
| progress." | ||||
| One can access the list of current Internet-Drafts at | ||||
| http://www.ietf.org/ietf/1id-abstracts.txt | ||||
| One can access the list of Internet-Draft Shadow Directories at | ||||
| http://www.ietf.org/shadow.html. | ||||
| This document is a work product of the IETF Voice Profile for | ||||
| Internet Mail (VPIM) Work Group. | ||||
| 1. Abstract | ||||
| This document describes the use of a mechanism for identifying body | ||||
| parts that a sender deems critical in a multi-part Internet mail | ||||
| message. The mechanism described is a parameter to Content- | ||||
| Disposition, as described by RFC 3204. | ||||
| By knowing what parts of a message the sender deems critical, a | ||||
| content gateway can intelligently handle multi-part messages when | ||||
| providing gateway services to systems of lesser capability. | ||||
| Critical content can help a content gateway to decide what parts to | ||||
| forward. It can indicate how hard a gateway should try to deliver a | ||||
| body part. It can help the gateway to pick body parts that are safe | ||||
| to silently delete when a system of lesser capability receives a | ||||
| message. In addition, critical content can help the gateway chose | ||||
| the notification strategy for the receiving system. Likewise, if | ||||
| the sender expects the destination to do some processing on a body | ||||
| part, critical content allows the sender to mark body parts that the | ||||
| receiver must process. | ||||
| Table of Contents | ||||
| 1. Abstract...........................................................1 | ||||
| 2. Conventions used in this document..................................2 | ||||
| 3. Introduction.......................................................3 | ||||
| 4. Handling Parameter.................................................3 | ||||
| 4.1. REQUIRED.........................................................4 | ||||
| 4.2. OPTIONAL.........................................................4 | ||||
| 4.3. Default Values...................................................4 | ||||
| 4.4. Other Values.....................................................5 | ||||
| 5. Collected Syntax...................................................5 | ||||
| 6. Notification.......................................................5 | ||||
| 6.1. DSN vs. MDN Generation...........................................6 | ||||
| 6.2. Summary..........................................................6 | ||||
| 7. Status Code........................................................7 | ||||
| 8. Requirements for Critical Content..................................8 | ||||
| 8.1. Needs............................................................8 | ||||
| 8.2. Current Approaches...............................................9 | ||||
| 9. The Content Gateway...............................................10 | ||||
| 9.1. Integrated Content Gateway......................................10 | ||||
| 9.2. Disaggregated Delivery Network..................................11 | ||||
| 10. Backward Compatibility Considerations............................11 | ||||
| 11. MIME Interactions................................................11 | ||||
| 11.1. multipart/alternative..........................................11 | ||||
| 11.2. multipart/related..............................................12 | ||||
| 11.3. message/rfc822.................................................12 | ||||
| 12. Implementation Examples..........................................12 | ||||
| 12.1. Content Gateways...............................................12 | ||||
| 12.2. Disaggregated Content Gateway..................................13 | ||||
| 13. Security Considerations..........................................14 | ||||
| 14. IANA Considerations..............................................14 | ||||
| 15. References.......................................................15 | ||||
| 16. Acknowledgments..................................................16 | ||||
| 17. Author's Address.................................................16 | ||||
| 2. Conventions used in this document | ||||
| This document refers generically to the sender of a message in the | ||||
| masculine (he/him/his) and the recipient of the message in the | ||||
| feminine (she/her/hers). This convention is purely for convenience | ||||
| and makes no assumption about the gender of a message sender or | ||||
| recipient. | ||||
| 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 RFC 2119 [2]. | ||||
| NOTE: Notes, such as this one, provide additional nonessential | ||||
| information that the reader may skip without missing anything | ||||
| essential. The primary purpose of these non-essential notes is to | ||||
| convey information about the rationale of this document, or to place | ||||
| this document in the proper historical or evolutionary context. | ||||
| Readers whose sole purpose is to construct a conformant | ||||
| implementation may skip such information. However, it may be of use | ||||
| to those who wish to understand why we made certain design choices. | ||||
| 3. Introduction | ||||
| The specification of Critical Content is small and compact. For the | ||||
| benefit of developers, the specification comes first, the rationale | ||||
| after. | ||||
| One concept that an implementer must understand is the content | ||||
| gateway. Section 9 describes the content gateway. In brief, a | ||||
| content gateway has knowledge of the receiving system's | ||||
| capabilities. The content gateway passes messages the receiving | ||||
| system can process, render or store. The content gateway can modify | ||||
| a message, for example by deleting unrenderable or storable body | ||||
| parts, for delivery to the receiving system. Finally, the content | ||||
| gateway can reject a message that the receiving system cannot | ||||
| handle. | ||||
| In this document, the "sending agent" is the originator of the | ||||
| message. It could be a mail user agent (MUA) for an Internet | ||||
| message, or a SIP User Agent Client (UAC) for a SIP [3] message. | ||||
| NOTE: This document updates RFC 3204 to separate the Handling | ||||
| parameter from the ISUP/QSIG transport mechanism. The protocol | ||||
| described here is identical in functionality to RFC 3204 with | ||||
| respect to SIP. Future versions of RFC 3204 should reference this | ||||
| document for the Handling parameter, as it is orthogonal to the | ||||
| tunneling of signaling. | ||||
| 4. Handling Parameter | ||||
| The Handling parameter is a Content-Disposition [5] parameter | ||||
| inserted by the sending agent to indicate to the content gateway | ||||
| whether to consider the marked body part critical. | ||||
| A REQUIRED body part is one the sender requires the receiving system | ||||
| to deliver for him to consider the message delivered. | ||||
| An OPTIONAL body part is one the sender doesn't care whether the | ||||
| receiving system delivers it or not. A content gateway can silently | ||||
| delete such body parts if the receiving system cannot deliver the | ||||
| part. | ||||
| The terms "entity" and "body part" have the meanings defined in [5]. | ||||
| 4.1. REQUIRED | ||||
| "Handling=REQUIRED" signifies that this body part is critical to the | ||||
| sender. | ||||
| If the content gateway cannot pass a body part marked REQUIRED, then | ||||
| the entire message has failed. In this case, the content gateway | ||||
| MUST take the appropriate failure action. | ||||
| NOTE: We say "appropriate action", because the sender may have | ||||
| suppressed all notifications. In this case, the appropriate action | ||||
| is to silently discard the message. In addition, as a general MIME | ||||
| parameter, the MIME body part may not be in an Internet Mail | ||||
| message. Moreover, in the SIP case, the appropriate notification is | ||||
| a status return code, not a delivery notification. | ||||
| 4.2. OPTIONAL | ||||
| "Handling=OPTIONAL" signifies that the sender does not care about | ||||
| notification reports for this body part. | ||||
| If the content gateway cannot pass a body part marked OPTIONAL, the | ||||
| receiving system may silently delete the body part. The receiving | ||||
| system MUST NOT return a delivery failure, unless parts marked | ||||
| REQUIRED have also failed. | ||||
| 4.3. Default Values | ||||
| The default value for Handling for a given body part is REQUIRED. | ||||
| This enables the existing notification mechanisms to work for | ||||
| sending agents that do not know about the content notification | ||||
| entity. All body parts are critical, because they have the default | ||||
| marking of REQUIRED. | ||||
| NOTE: In the case of Internet mail, critical content processing is a | ||||
| function of the content gateway and not the mail transfer agent | ||||
| (MTA) or user agent (UA). Often, the entity performing content | ||||
| gateway processing is the receiving UA. However, in this case the | ||||
| UA is acting as a content gateway. Thus the default action for any | ||||
| Content-Disposition [5]-compliant user agent to ignore unrecognized | ||||
| disposition parameters ensures that this mechanism is compatible | ||||
| with the Internet architecture. | ||||
| NOTE: This parameter is fully backwards compatible and works as | ||||
| expected for Internet mail and SIP. | ||||
| NOTE: Some VPIMv2 implementations can receive arbitrary e-mail from | ||||
| the Internet. However, these systems are really acting in the | ||||
| capacity of an Internet Voice Mail system. In this case, one would | ||||
| expect the implementation to provide Internet Voice Mail semantics | ||||
| to Internet Voice Mail messages. | ||||
| 4.4. Other Values | ||||
| The content gateway MUST treat unrecognized values as REQUIRED. | ||||
| This is to provide backward compatibility with future uses of the | ||||
| Content-Criticality entity. | ||||
| NOTE: A possible new value is IMPORTANT. An IMPORTANT body part is | ||||
| something the sender wants the receiver to get, but would not want | ||||
| the message rejected outright if the IMPORTANT body part fails, but | ||||
| they do want notification of the failure. However, as no | ||||
| implementations do IMPORTANT, it is not important to this version of | ||||
| this document. | ||||
| 5. Collected Syntax | ||||
| The format of the collected syntax is in accordance with the ABNF of | ||||
| [6]. Note that per RFC 2183 [5], the HANDLING Content-Disposition | ||||
| parameter is not case sensitive. In addition, the notification-type | ||||
| is not case sensitive. | ||||
| "handling" "=" notification-type CRLF | ||||
| notification-type = "REQUIRED" / "OPTIONAL" / | ||||
| other-handling / generic-param | ||||
| other-handling = token | ||||
| 6. Notification | ||||
| One obvious application of critical content is generating a | ||||
| (non-)delivery notification in the Internet mail environment. If | ||||
| the value of the field is OPTIONAL, the content gateway MUST NOT | ||||
| generate a notification. If the value of the field is REQUIRED, the | ||||
| content gateway MAY generate a notification, based on the normal | ||||
| notification request mechanisms. Normal notification request | ||||
| mechanisms include the SMTP RCPT NOTIFY command [7] and the | ||||
| Disposition-Notification-To header [8]. | ||||
| In SIP, all requests have responses. These responses provide | ||||
| notification in the status code of the response. For the RFC 3204 | ||||
| case, a content gateway generates a 415 (Unsupported Media Type) | ||||
| response if the field is REQURED. | ||||
| If the sending system requests a notification, and a REQUIRED part | ||||
| fails, the content gateway will generate a notification for the | ||||
| whole message. Conversely, if the gateway cannot pass on a body | ||||
| part marked OPTIONAL, the gateway will not generate a notification. | ||||
| NOTE: This implies that the content gateway must examine the entire | ||||
| message to determine whether it needs to generate a notification. | ||||
| However, the content gateway need not examine the message if it | ||||
| knows it can store and forward all media types. Said differently, | ||||
| Internet e-mail MTAs or gateways can, by default, handle any | ||||
| arbitrary MIME-encapsulated type. Some voice mail systems, on the | ||||
| other hand, cannot store binary attachments at all, such as | ||||
| application/ms-word. The voice mail content gateway, in this | ||||
| example, would be scanning for non-renderable body parts in any | ||||
| event. | ||||
| 6.1. DSN vs. MDN Generation | ||||
| The content gateway generates a delivery status notification (DSN) | ||||
| [8] if it operates as a gateway. The content gateway generates a | ||||
| Message Disposition Notification (MDN) [9] if it operates as a mail | ||||
| user agent. Section 7 describes the operating modes of a content | ||||
| gateway. In short, if there is a MTA that "delivers" the message to | ||||
| the content gateway for processing, the MTA takes responsibility for | ||||
| DSN processing. In this case, the only option available to the | ||||
| content gateway is to generate MDNs. If the content gateway | ||||
| operates as a MTA, then it generates DSNs. DSN generation is the | ||||
| preferred option. | ||||
| If the content gateway is part of a SIP endpoint, then it generates | ||||
| the appropriate success or error response code. | ||||
| 6.2. Summary | ||||
| The following table summarizes the actions expected of a conforming | ||||
| content gateway. | ||||
| NOTE: This section is normative: it suggests what to put into the | ||||
| DSN or MDN. | ||||
| NOTE: In the case of SIP, this section is informative. See RFC 3204 | ||||
| for the normative set of actions on failure. | ||||
| +--------------------------------------+ | ||||
| | Sending UA Has Marked Body Part | | ||||
| |---------------------+----------------| | ||||
| | REQUIRED | OPTIONAL | | ||||
| +--------------------+---------------------+----------------+ | ||||
| | Body Part is | | | | ||||
| | Deliverable | Appropriate Action | ignore | | ||||
| +--------------------+---------------------+----------------+ | ||||
| | Body Part is | | | | ||||
| | Undeliverable | Fail Entire Message | ignore | | ||||
| +--------------------+--------------------------------------+ | ||||
| The "Appropriate Action" is the action the content gateway would | ||||
| take given the context of execution. For example, if a sender | ||||
| requests return receipt and the receiver reads a HANDLING body part, | ||||
| the receiving UA must generate the appropriate MDN (following the | ||||
| rules for MDN). Likewise, if the content gateway cannot deliver the | ||||
| body part and the body part is critical, the content gateway | ||||
| generates the appropriate DSN or MDN. | ||||
| "Optional" means the content gateway ignores the disposition of the | ||||
| body part. The content gateway treats the message as if the body | ||||
| part was not present in the message. | ||||
| 7. Status Code | ||||
| The critical content indication, in itself, does not guarantee any | ||||
| notification. Notification follows the rules described in [3], [7], | ||||
| and [8]. | ||||
| NOTE: The content of actual DSNs or MDNs are beyond the scope of | ||||
| this document. This document only specifies how to mark a critical | ||||
| body part. On the other hand, we do envision sensible DSN and MDN | ||||
| contents. For example, DSNs should include the appropriate failure | ||||
| code as enumerated in [10]. Likewise, MDNs should include the | ||||
| failure code in the MDN "Failure:" field. | ||||
| If the receiving system is to generate a notification based on its | ||||
| inability to render or store the media type, the notification should | ||||
| use the status code 5.6.1, "Media not supported", from [9]. | ||||
| For the SIP case, all requests have notification provided by the | ||||
| status response message. Per RFC 3204, a content gateway generates | ||||
| a 415 (Unsupported Media Type) response. | ||||
| 8. Requirements for Critical Content | ||||
| 8.1. Needs | ||||
| The need for a critical content identification mechanism comes about | ||||
| because of the internetworking of Internet mail systems with | ||||
| messaging systems that do not fulfill all of the semantics of | ||||
| Internet mail. Such legacy systems have a limited ability to render | ||||
| or store all parts of a given message. This document will use the | ||||
| case of an Internet mail system exchanging electronic messages with | ||||
| a legacy voice messaging system for illustrative purposes. | ||||
| Electronic mail has historically been text-centric. Extensions such | ||||
| as MIME [11] enable the user agents to send and receive multi-part, | ||||
| multimedia messages. Popular multimedia data types include binary | ||||
| word processing documents, binary business presentation graphics, | ||||
| voice, and video. | ||||
| Voice mail has historically been audio-centric. Many voice- | ||||
| messaging systems only render voice. Extensions such as fax enable | ||||
| the voice mail system to send and receive fax images as well as | ||||
| create multi-part voice and fax messages. A few voice mail systems | ||||
| can render text using text-to-speech or text-to-fax technology. | ||||
| Although theoretically possible, none can today render video. | ||||
| An important aspect of the interchange between voice messaging | ||||
| services and desktop e-mail client applications is that the | ||||
| rendering capability of the voice-messaging platform is often much | ||||
| less than the rendering capability of a desktop e-mail client. In | ||||
| the e-mail case, the sender has the expectation that the recipient | ||||
| receives all components of a multimedia message. This is so even if | ||||
| the recipient cannot render all body parts. In most cases, the | ||||
| recipient can either find the appropriate rendering tool or tell the | ||||
| sender that she cannot read the particular attachment. | ||||
| This is an important issue. By definition, a MIME-enabled user | ||||
| agent, conforming to [12], will present or make available all of the | ||||
| body parts to the recipient. However, a voice mail system may not | ||||
| be capable of storing non-voice objects. Moreover, the voice mail | ||||
| system may not be capable of notifying the recipient that there were | ||||
| undeliverable message parts. | ||||
| The inability of the receiving system to render a body part is | ||||
| usually a permanent failure. Retransmission of the message will not | ||||
| improve the likelihood of a future successful delivery. Contrast | ||||
| this with the case with normal data delivery. Traditional message | ||||
| failures, such as a garbled message or disabled link will benefit | ||||
| from retransmission. | ||||
| This situation is fundamentally different from normal Internet mail. | ||||
| In the Internet mail case, either the system delivered the message, | ||||
| or it didn't. There is no concept of a system partially delivering | ||||
| a message. | ||||
| In addition, there are many situations where the sender would not | ||||
| mind if the system did not deliver non-critical parts of a message. | ||||
| For example, the sender's user agent may add body parts to a message | ||||
| unbeknownst to the sender. If the receiving system rejected the | ||||
| message because it could not render a hidden body part, the sender | ||||
| would be understandably confused and upset. | ||||
| Thus, there is a need for a method of indicating to a Mail Transfer | ||||
| Agent (MTA) or User Agent (UA) that the sender considers parts of a | ||||
| message to be critical. From the sender's perspective, he would not | ||||
| consider the message delivered if the system did not deliver the | ||||
| critical parts. | ||||
| 8.2. Current Approaches | ||||
| One method of indicating critical content of a message is to define | ||||
| a profile. The profile defines rules for silently deleting mail | ||||
| body parts based on knowledge of the UA capabilities. Citing the | ||||
| example above, a voice profile can easily declare that MTAs or UAs | ||||
| can silently delete TNEF data and yet consider the message | ||||
| successfully delivered. This is, in fact, the approach taken by | ||||
| VPIMv2 [13]. | ||||
| Since one aspect of the issue is deciding when to notify the sender | ||||
| that the system cannot deliver part of a message, one could use a | ||||
| partial non-delivery notification mechanism to indicate a problem | ||||
| with delivering a given body part. However, this requires the user | ||||
| request a delivery notification. In addition, the sender may not be | ||||
| aware of parts added by the sending user agent. In this case, a | ||||
| failure notice would mystify the sender. | ||||
| A straightforward alternative implementation method for marking a | ||||
| body part critical is to use a Critical-Content MIME entity. This | ||||
| has the benefit that criticality is meta information for the body | ||||
| part. However, IMAP servers in particular would need to either put | ||||
| Critical-Content into the BODYSTRUCTURE method or create a new | ||||
| method to retrieve arbitrary MIME entities. Given the experience of | ||||
| trying to get Content-Location accepted by IMAP vendors, we chose | ||||
| not to go that route. | ||||
| What we need is a way of letting the sender indicate what body-parts | ||||
| he considers to be critical. The mechanism must not burden the | ||||
| sender with failure notifications for non-critical body parts. The | ||||
| mechanism must conform to the general notification status request | ||||
| mechanism for positive or negative notification. When requested, | ||||
| the mechanism must indicate to the sender when a receiving system | ||||
| cannot deliver a critical body part. | ||||
| 9. The Content Gateway | ||||
| In this section, we use the definition of [14] for the term | ||||
| "gateway." | ||||
| A content gateway is a gateway that connects a first network to a | ||||
| second network. The second network often has lesser capability than | ||||
| the first network. The canonical topology follows. "[MTA]", with | ||||
| square brackets, signifies an optional component. | ||||
| +---------+ | ||||
| +---------+ +-----+ | | +-------+ +-----------+ | ||||
| | Sending |=...=|[MTA]|===| Content |=...=| [MTA] |===| Receiving | | ||||
| | UA | +-----+ | Gateway | +-------+ | UA | | ||||
| +---------+ | | +-----------+ | ||||
| +---------+ | ||||
| First Network Second Network | ||||
| The content gateway can be the last hop before the receiving MTA. | ||||
| The content gateway can be between networks, and thus not the last | ||||
| hop before the receiving MTA. The content gateway can be the first | ||||
| MTA the sending UA contacts. Finally, the content gateway can be an | ||||
| integrated component of the receiving MTA. | ||||
| For the SIP case, consider each MTA as a SIP Proxy, the Sending UA | ||||
| as a SIP User Agent Client, and the Receiving UA as a SIP User Agent | ||||
| Server. | ||||
| 9.1. Integrated Content Gateway | ||||
| In this situation, the receiving user agent is integrated with the | ||||
| content gateway. The integrated content gateway knows the | ||||
| capabilities of the user agent. The topology is as follows. | ||||
| +---------------------+ | ||||
| +---------+ +-----+ | : | | ||||
| | Sending |=...=|[MTA]|===| Content : Receiving | | ||||
| | UA | +-----+ | Gateway : UA | | ||||
| +---------+ | : | | ||||
| +---------------------+ | ||||
| First Network Second Network | ||||
| The processing of ISUP and QSIG objects, as described in [4], is an | ||||
| example of an integrated gateway. | ||||
| 9.2. Disaggregated Delivery Network | ||||
| A degenerate case, although one that does occur, is where the | ||||
| content gateway sits behind the final MTA. This happens when one | ||||
| implements the content gateway as a post-processing step to a normal | ||||
| delivery. For example, one could configure a mail handling system | ||||
| to deliver the message to a queue or directory, where the content | ||||
| gateway process picks up the message. If there were any directives | ||||
| for DSN processing, the delivering MTA would execute them. For | ||||
| example, the message could have requested notification on successful | ||||
| delivery. The delivering MTA, having delivered the message to the | ||||
| queue, would consider the message delivered and thus notify the | ||||
| sender of such. However, the content gateway process could then | ||||
| discover that the receiving UA cannot render the message. In this | ||||
| case, the content gateway generates a NDN, as it is the only option | ||||
| available. | ||||
| Delivered | ||||
| | +---------+ | ||||
| +---------+ +-----+ v | | +-----------+ | ||||
| | Sending |=...=| MTA |--> File -->| Content |=...=| Receiving | | ||||
| | UA | +-----+ | Gateway | | UA | | ||||
| +---------+ | | +-----------+ | ||||
| +---------+ | ||||
| First Network Second Network | ||||
| 10. Backward Compatibility Considerations | ||||
| DSN requires ESMTP. If MTAs in the path from the sending UA to the | ||||
| receiving UA do not support ESMTP, then that MTA will reject the DSN | ||||
| request. In addition, the message will default to notification on | ||||
| delay or failure. While not ideal, the sender will know that DSN is | ||||
| not available, and that critical content that fails will get | ||||
| notification. | ||||
| 11. MIME Interactions | ||||
| 11.1. multipart/alternative | ||||
| As is true for all Content-Disposition parameters, handling is only | ||||
| in effect for the selected alternative. If the selected alternative | ||||
| has the critical content indicator, then the entire alternative | ||||
| takes on the criticality indicated. That is, if the alternative | ||||
| selected has HANDLING=OPTIONAL, then the content gateway MUST NOT | ||||
| generate any delivery notifications. | ||||
| NOTE: This statement explicitly shows that HANDLING overrides the | ||||
| DSN and MDN request mechanisms. | ||||
| It is unlikely for a selected alternative to fail, as the content | ||||
| gateway presumably picks the alternative specifically because it can | ||||
| render it. | ||||
| If the selected alternative is a message/rfc822 that encloses a | ||||
| multipart MIME message or the selected alternative is itself a | ||||
| multipart MIME type, the individual top-level body parts follow the | ||||
| HANDLING mechanism described in this document. | ||||
| NOTE: This means that a forwarded message's criticality will not | ||||
| affect the forwarding agent's intentions. | ||||
| 11.2. multipart/related | ||||
| Criticality fits in rather well with the multipart/related | ||||
| construction. For example, consider a multipart/related message | ||||
| consisting of a Macintosh data fork and a Macintosh resource fork. | ||||
| For a Microsoft Word document, the data fork is likely to be | ||||
| critical. The receiving system can safely ignore the resource fork. | ||||
| 11.3. message/rfc822 | ||||
| Criticality only affects the outermost level of the message or, in | ||||
| the case of multipart/alternative, the outermost level of the | ||||
| selected alternative. Specifically, the receiving system ignores | ||||
| criticality indicators in embedded body parts. This avoids the | ||||
| situation of a forwarded message triggering or suppressing undesired | ||||
| reporting. This simply implements the procedures described in [5]. | ||||
| 12. Implementation Examples | ||||
| This section is not a normative part of the definition of | ||||
| Criticality. However, we hope it helps implementers to understand | ||||
| the mechanics of the Handling mechanism. | ||||
| We will examine two cases. They are how a content gateway processes | ||||
| a message and how a disaggregated content gateway processes a | ||||
| message. | ||||
| 12.1. Content Gateways | ||||
| Content gateways examine the contents of a message from a first | ||||
| network before the gateway forwards the message to a second network. | ||||
| For the purposes of this example, we assume the second network has | ||||
| less capability than the first network. In particular, we expect | ||||
| there will be certain message body types that the gateway cannot | ||||
| pass onto the second network. | ||||
| Consider a gateway between the Internet and a text-only short | ||||
| message service. A message comes through the gateway containing a | ||||
| text part and a tnef part. The sender marks the text part REQUIRED. | ||||
| The gateway, knowing the capability of the short message service, | ||||
| silently deletes the non-critical, tnef part, passing the critical | ||||
| content to the short message service network. Any subsequent | ||||
| notifications, such as failure notices or delivery notices, follow | ||||
| the normal rules for notification. | ||||
| Note the gateway, by silently deleting non-critical content, may | ||||
| affect proprietary message correlation schemes. One can envision | ||||
| the sending UA inserting a body part for tracking purposes. By | ||||
| deleting non-critical content, the content gateway will break such a | ||||
| scheme. If a sending UA understands how to mark critical content, | ||||
| it should use Internet standard mechanisms for tracking messages, | ||||
| such as Message-ID [15]. | ||||
| What if no body parts have critical content indicators? In this | ||||
| case, the entire message is critical. Thus, when the gateway sees | ||||
| the tnef part, it will reject the entire message, generating a DSN | ||||
| with a status code 5.6.1, "Media not supported". | ||||
| Likewise, consider a three part message with a text annotation (part | ||||
| 1) to a voice message (part 2) with a vCard [16] (part 3). The | ||||
| sender marks the first two parts REQUIRED. Now, let us assume the | ||||
| receiving MTA (gateway) is a voice mail only system, without even | ||||
| the capability to store text. In this case, the gateway, acting as | ||||
| the receiving MTA, will reject the message, generating a DSN with | ||||
| the status code 5.6.1, "Media not supported". | ||||
| 12.2. Disaggregated Content Gateway | ||||
| For this example, we will examine the processing of a three-part | ||||
| message. The first part is a text annotation of the second part, an | ||||
| audio message. The third part is the sender's vCard. The sender | ||||
| marks the first and second parts REQUIRED. In addition, the sender | ||||
| marks the message for read receipt. | ||||
| For the purposes of example, the telephone user interface (TUI) does | ||||
| not perform text-to-speech conversion. A TUI is a mail user agent | ||||
| (UA) that uses DTMF touch-tone digits for input and audio for output | ||||
| (display). | ||||
| The TUI is unable to render the first part of the message, the text | ||||
| part. In addition, it is unable to render the third part of the | ||||
| message, the vCard part. Since the sender did not mark the third | ||||
| part of the message REQUIRED, the system ignores the failure of the | ||||
| TUI to render the third part of the message. However, since the | ||||
| sender did mark the first part REQUIRED, and the TUI is unable to | ||||
| render text, the message fails. | ||||
| What happens next is implementation dependent. If the TUI is part | ||||
| of a unified messaging system, a reasonable action is to hold the | ||||
| message for the user. The user can access the message at a later | ||||
| time from a terminal that can render all of the critical body parts. | ||||
| It would be reasonable for the TUI to notify the user about the | ||||
| undeliverable body part. | ||||
| If the TUI is part of a voice messaging system, or if the user does | ||||
| not subscribe to a text-to-speech service, a reasonable action is | ||||
| for the TUI to return a MDN with the disposition "failed" and the | ||||
| failure modifier "5.6.1 (Media not supported)". | ||||
| 13. Security Considerations | ||||
| Receiving systems and users should not place any authentication | ||||
| value on the Handling parameter. | ||||
| Note that by design, and under the sending user's request, a content | ||||
| gateway will silently delete unimportant body parts. Critical | ||||
| content gives the sender the ability to determine the acceptable | ||||
| level integrity of the delivered message. That is, the message as | ||||
| the content gateway actually passes it on is, in fact, | ||||
| representative of the sender's intentions. | ||||
| 14. IANA Considerations | ||||
| RFC 3204 already registered the Handling parameter. It is collected | ||||
| here only for reference and as a placeholder for use both for | ||||
| further expansion in the future and as the normative reference for | ||||
| other documents that need to reference the Handling parameter. | ||||
| Per section 9 of [5] here is the IANA registration for Handling. | ||||
| To: IANA@IANA.ORG | ||||
| Subject: Registration of new Content-Disposition parameter | ||||
| Content-Disposition parameter name: | ||||
| HANDLING | ||||
| Allowable values for this parameter: | ||||
| REQUIRED | ||||
| OPTIONAL | ||||
| Description: | ||||
| Marks the body part as required for delivery (REQUIRED) or can be | ||||
| silently discarded (OPTIONAL). See RFC <this document> and RFC 3204. | ||||
| Per RFC 2183, the Content-Disposition parameter name is not case | ||||
| sensitive. Per RFC <this document>, the values of the parameter are | ||||
| also not case sensitive. | ||||
| 15. References | ||||
| 1 Bradner, S., "The Internet Standards Process -- Revision 3", BCP | ||||
| 9, RFC 2026, October 1996. | ||||
| 2 Bradner, S., "Key words for use in RFCs to Indicate Requirement | ||||
| Levels", BCP 14, RFC 2119, March 1997. | ||||
| 3 Handley, M., Schulzrinne, H., Schooler, E., and Rosenberg, J., | ||||
| "SIP: Session Initiation Protocol", RFC 2543, March 1999. | ||||
| 4 Zimmerer, E., et. al., "MIME media types for ISUP and QSIG | ||||
| Objects", RFC 3204, December 2001. | ||||
| 5 Troost, R., Dorner, S., Moore, K. (ed), "Communicating | ||||
| Presentation Information in Internet Messages: The Content- | ||||
| Disposition Header Field", RFC 2183, August 1997. | ||||
| 6 Crocker, D. and Overell, P.(Editors), "Augmented BNF for Syntax | ||||
| Specifications: ABNF", RFC 2234, November 1997. | ||||
| 7 Moore, K., "SMTP Service Extension for Delivery Status | ||||
| Notifications", RFC 1981, January 1996. | ||||
| 8 Moore, K. and Vaudreuil, G., "An Extensible Message Format for | ||||
| Delivery Status Notifications", RFC 1894, January 1996. | ||||
| 9 Fajman, R., "An Extensible Message Format for Message Disposition | ||||
| Notifications", RFC 2298, March 1998. | ||||
| 10 Vaudreuil, G., "Enhanced Mail System Status Codes", RFC 1893, | ||||
| January 1996. | ||||
| 11 Freed, N. and Borenstein, N., "Multipurpose Internet Mail | ||||
| Extensions (MIME) Part One: Format of Internet Message Bodies", | ||||
| RFC 2045, November 1996. | ||||
| 12 Freed, N. and Borenstein, N., "Multipurpose Internet Mail | ||||
| Extensions (MIME) Part Two: Media Types", RFC 2046, November | ||||
| 1996. | ||||
| 13 Vaudreuil, G. and Parsons, G., "Voice Profile for Internet Mail - | ||||
| version 2", RFC 2421, September 1998. | ||||
| 14 Kille, S. "MIXER (Mime Internet X.400 Enhanced Relay): Mapping | ||||
| between X.400 and RFC 822/MIME", RFC 2156, January 1998. | ||||
| 15 Crocker, D., "Standard for the Format of ARPA Internet Text | ||||
| Messages", RFC 822, August 1982. | ||||
| 16 Dawson, F. and Howes, T., "vCard MIME Directory Profile", RFC | ||||
| 2426, September 1998. | ||||
| 16. Acknowledgments | ||||
| Emily Candell of Comverse Network Systems was instrumental in | ||||
| helping work out the base issues in the û00 draft in Adelaide. | ||||
| Ned Freed pointed out that this mechanism was about criticality, not | ||||
| notification. That insight made the concept and descriptions | ||||
| infinitely more straightforward. If it's still confusing, it's my | ||||
| fault! | ||||
| Keith Moore for helped tighten-up the explanations, and he approved | ||||
| of the use of Content-Disposition. | ||||
| Dropping the IMPORTANT critical content type took away one of the | ||||
| reasons for partial non-delivery notification. That makes Jutta | ||||
| Degener very happy! | ||||
| Harald Alvestrand and Chris Newman suggested some implementation | ||||
| examples. | ||||
| Greg White asked THE key question that let us realize that critical | Title: Critical Content Multi-purpose Internet Mail | |||
| content processing was a gateway function, and not a MTA or UA | Extensions (MIME) Parameter | |||
| function. | Author(s): E. Burger | |||
| Status: Standards Track | ||||
| Date: January 2003 | ||||
| Mailbox: e.burger@ieee.org | ||||
| Pages: 24 | ||||
| Characters: 54282 | ||||
| Updates: 3204 | ||||
| Jon Peterson cleared up how handling actually does work in the SIP | I-D Tag: draft-ietf-vpim-cc-08.txt | |||
| environment. | ||||
| An enormous thank you to Michelle S. Cotton at IANA for helping me | URL: ftp://ftp.rfc-editor.org/in-notes/rfc3459.txt | |||
| craft the original IANA Considerations section in 2000, and for | ||||
| catching the functional overlap with RFC 3204 in January 2002. | ||||
| Any errors, omissions, or silliness are my fault. | This document describes the use of a mechanism for identifying body | |||
| parts that a sender deems critical in a multi-part Internet mail | ||||
| message. The mechanism described is a parameter to | ||||
| Content-Disposition, as described by RFC 3204. | ||||
| 17. Author's Address | By knowing what parts of a message the sender deems critical, a | |||
| content gateway can intelligently handle multi-part messages when | ||||
| providing gateway services to systems of lesser | ||||
| capability. Critical content can help a content gateway to decide | ||||
| what parts to forward. It can indicate how hard a gateway should try | ||||
| to deliver a body part. It can help the gateway to pick body parts | ||||
| that are safe to silently delete when a system of lesser | ||||
| capability receives a message. In addition, critical content can | ||||
| help the gateway chose the notification strategy for the receiving | ||||
| system. Likewise, if the sender expects the destination to do | ||||
| some processing on a body part, critical content allows the sender | ||||
| to mark body parts that the receiver must process. | ||||
| Eric Burger | This document is a product of the Voice Profile for Internet Mail | |||
| SnowShore Networks, Inc. | Working Group of the IETF. | |||
| 285 Billerica Rd. | ||||
| Chelmsford, MA 01824-4120 | ||||
| USA | ||||
| Phone: +1 978 367 8400 | This is now a Proposed Standard Protocol. | |||
| Fax: +1 603 457 5944 | ||||
| Email: e.burger@ieee.org | ||||
| Full Copyright Statement | ||||
| The IETF takes no position regarding the validity or scope of any | This document specifies an Internet standards track protocol for | |||
| intellectual property or other rights that might be claimed to | the Internet community, and requests discussion and suggestions | |||
| pertain to the implementation or use of the technology described in | for improvements. Please refer to the current edition of the | |||
| this document or the extent to which any license under such rights | "Internet Official Protocol Standards" (STD 1) for the | |||
| might or might not be available; neither does it represent that it | standardization state and status of this protocol. Distribution | |||
| has made any effort to identify any such rights. Information on the | of this memo is unlimited. | |||
| IETF's procedures with respect to rights in standards-track and | ||||
| standards-related documentation can be found in BCP-11. Copies of | ||||
| claims of rights made available for publication and any assurances | ||||
| of licenses to be made available, or the result of an attempt made | ||||
| to obtain a general license or permission for the use of such | ||||
| proprietary rights by implementers or users of this specification | ||||
| can be obtained from the IETF Secretariat. | ||||
| The IETF invites any interested party to bring to its attention any | This announcement is sent to the IETF list and the RFC-DIST list. | |||
| copyrights, patents or patent applications, or other proprietary | Requests to be added to or deleted from the IETF distribution list | |||
| rights that may cover technology that may be required to practice | should be sent to IETF-REQUEST@IETF.ORG. Requests to be | |||
| this standard. Please address the information to the IETF Executive | added to or deleted from the RFC-DIST distribution list should | |||
| Director. | be sent to RFC-DIST-REQUEST@RFC-EDITOR.ORG. | |||
| Copyright (C) 2000, 2001, 2002, The Internet Society. All Rights | Details on obtaining RFCs via FTP or EMAIL may be obtained by sending | |||
| Reserved. | an EMAIL message to rfc-info@RFC-EDITOR.ORG with the message body | |||
| help: ways_to_get_rfcs. For example: | ||||
| This document and translations of it may be copied and furnished to | To: rfc-info@RFC-EDITOR.ORG | |||
| others, and derivative works that comment on or otherwise explain it | Subject: getting rfcs | |||
| 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 | help: ways_to_get_rfcs | |||
| revoked by the Internet Society or its successors or assigns. | ||||
| This document and the information contained herein is provided on an | Requests for special distribution should be addressed to either the | |||
| "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING | author of the RFC in question, or to RFC-Manager@RFC-EDITOR.ORG. Unless | |||
| TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING | specifically noted otherwise on the RFC itself, all RFCs are for | |||
| BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION | unlimited distribution.echo | |||
| HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF | Submissions for Requests for Comments should be sent to | |||
| MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | RFC-EDITOR@RFC-EDITOR.ORG. Please consult RFC 2223, Instructions to RFC | |||
| Authors, for further information. | ||||
| End of changes. 15 change blocks. | ||||
| 807 lines changed or deleted | 49 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||