RFC 4239

Internet Voice Messaging (IVM)

πŸ“… published November 2005, from ietf

RFC 4239: Internet Voice Messaging (IVM) πŸŽ€

Okay bestie, this one is RFC 4239, called Internet Voice Messaging (IVM) ✨. It came out in November 2005 from the Network Working Group and it's on the Standards Track πŸ¦‹. The authors are S. McRae from IBM and G. Parsons from Nortel Networks πŸ’…. It doesn't list anything it obsoletes or updates, so it's standing on its own πŸ‘‘.

Status of This Memo 🌸

This is an Internet standards track protocol for the whole Internet community, and it's literally asking everyone to chat about it and send suggestions for making it better πŸ’–. To see where it stands in standardization, check the current edition of the "Internet Official Protocol Standards" (STD 1) πŸ“œ. Distribution of this memo is unlimited 🌈.

Copyright (C) The Internet Society (2005). πŸ’œ

Abstract ✨

This doc is all about carrying voicemail messages over Internet mail as part of a unified messaging setup 🎧.

The Internet Voice Messaging (IVM) concept in here is not a successor format to VPIM v2 (Voice Profile for Internet Mail Version 2). It's an alternative spec for a different application, so no mixing them up πŸ™ˆ.

1. Introduction πŸ’–

Sometimes people just want to talk instead of typing πŸ—£οΈ. If voicemail can work across Internet Mail in an interoperable way, voice messages and email stop living in their own little bubbles, and people get to pick whatever fits the moment πŸ’…. It also opens the door for keyboard-free devices to join in when someone is on the move, somewhere rough, or just can't type 🫢.

Unified messaging systems already send voicemail over the Internet using SMTP/MIME, but it's kinda chaotic because lots of the details were never standardized 😭. Voicemail systems can also follow the Voice Profile for Internet Messaging (VPIM v2 as defined in RFC 2421 [VPIMV2] and revised in RFC 3801, Draft Standard [VPIMV2R2]) when they forward messages to remote voicemail systems πŸ“¬. But VPIM v2 was built so two voicemail systems could swap messages, not so a voicemail system could talk to a desktop mail client πŸ™ˆ. So it's often not realistic to expect a VPIM v2 message to be usable by an email recipient. The result is messages the recipient can't process (because of the encoding, for example) or that look a total mess to the user πŸ’€.

So this doc proposes a standard way to represent a voicemail message inside SMTP/MIME, plus a standard encoding for the audio content. Unified messaging systems and mail clients MUST implement it so everything interoperates πŸ”₯. Because it uses a standard SMTP/MIME representation and a widely implemented audio encoding, most email clients that don't specifically support the standard can still access the voicemail πŸŽ€. The doc also describes stuff an e-mail client SHOULD implement so recipients can see voicemail in a friendlier, context-sensitive way, and so it can offer some of the extras voicemail systems usually have, like responding with a voice message instead of an email ✨. Last, it explains how a client MAY provide some level of interoperability with VPIM v2 πŸ¦‹.

It's also desirable that unified messaging mail clients can fully interoperate with voicemail servers. That's possible today, as long as the client implements VPIM v2 [VPIMV2R2] alongside this spec and uses it to build messages sent to a voicemail server πŸ’œ.

This definition is based on the IVM Requirements document [GOALS]. It references separate work on critical content [CRITICAL] and message context [HINT]. Addressing and directory issues are covered in related documents [ADDRESS], [VPIMENUM], [SCHEMA] πŸ“š.

More info on VPIM and related activities lives at http://www.vpim.org or http://www.ema.org/vpim 🌐.

2. Conventions Used in This Document πŸŽ€

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 [KEYWORDS].

3. Message Format πŸ“¨

Voice messages can be created explicitly by a user (like recording a voicemail in their mail client) or implicitly by a unified messaging system when it records a telephone message πŸŽ™οΈ.

All messages MUST conform with the Internet Mail format, as updated by the DRUMS working group [DRUMSIMF], and the MIME format [MIME1].

When a client supporting IVM creates a voice message, the message header MUST indicate a message context of voice-message (see [HINT]). But to support interoperability with clients that don't explicitly support IVM, a recipient MUST NOT require its presence in order to correctly process voice messages 🫢.

The receiving agent MUST be able to support multipart messages [MIME5]. If the receiving user agent identifies the message as a voice message (from the message context), it SHOULD present it to the user as a voice message rather than as an electronic mail message with a voice attachment (see [BEHAVIOUR]) ✨.

Any content type is permitted in a message, but the top level content type on a new, forwarded or reply voice message SHOULD be multipart/mixed πŸ’…. If the recipient is known to be VPIM v2 compliant, then multipart/voice-message MAY be used instead (in which case, all the provisions of [VPIMV2R2] MUST be implemented in constructing the message) πŸ”₯.

If the message was created as a voice message, and so is not useful if the audio content is omitted, then the appropriate audio body part MUST be indicated as critical content, via a Criticality parameter of CRITICAL on the Content-Disposition (see [CRITICAL]). Additional important body parts (such as the original audio message if a voicemail is being forwarded) MAY also be indicated via a Criticality of CRITICAL. Contents that are not essential to communicating the meaning of the message (e.g., an associated vCard for the originator) MAY be indicated via a Criticality of IGNORE 🧚.

When forwarding IVM messages, clients MUST preserve the content type of all audio body parts so the new recipient can play the forwarded messages 🎧.

The top level content type, on origination of a delivery notification message, MUST be a multipart/report πŸ“¬. This allows automatic processing of the delivery notification, for example so that text-to-speech processing can render a non-delivery notification in the appropriate language for the recipient 🌸.

4. Transport 🚚

The message MUST be transmitted in accordance with the Simple Mail Transport Protocol, as updated by the DRUMS working group [DRUMSMTP].

Delivery Status Notifications MAY be requested [DSN] if delivery of the message is important to the originator and a mechanism exists to return status indications to them (which may not be possible for voicemail originators) πŸ’Œ.

5. Addressing πŸ“

Any valid Internet Mail address may be used for a voice message πŸ’Œ.

It's desirable to be able to use an onramp/offramp for delivery of a voicemail message to a user. That leads to specific addressing requirements, based on service selectors defined in [SELECTOR]. More discussion on addressing requirements for voice messages can be found in the VPIM Addressing document [ADDRESS].

It's also desirable to permit the use of a directory service to map between the E.164 phone number of the recipient and an SMTP mailbox address. A discussion on how this may be achieved using the ENUM infrastructure is in [VPIMENUM]. The definition of the VPIM LDAP schema that a system would use is found in [SCHEMA] πŸ”.

If a message is created and stored as a result of call answering, the caller's name and number MAY be stored in the message headers in its original format per [CLID] πŸ“ž.

6. Notifications πŸ””

Delivery Status Notifications MUST be supported. All non-delivery of messages MUST result in an NDN, if requested [DSN, DSN2, DSN3, DSN4]. If the receiving system supports content criticality and is unable to process all of the critical media types within a voice message (indicated by the content criticality), then it MUST non-deliver the entire message per [CRITICAL] 😱.

Message Disposition Notifications SHOULD be supported (but according to MDN rules, the user MUST be given the option of deciding whether MDNs are returned) per [MDN] πŸ™‹.

If the recipient can't display all of the indicated critical content components, then it SHOULD give the user the option of returning an appropriate MDN (see [CRITICAL]).

7. Voice Contents 🎢

Voice messages may be contained at any location within a message and MUST always be contained in an audio/basic content-type, unless the originator knows that the recipient can handle other content πŸ’…. Specifically, Audio/32kadpcm MAY be used when the recipient is known to support VPIM v2 [VPIMV2R2].

The VOICE parameter on Content-Disposition from VPIM v2 [VPIMV2R2] SHOULD be used to identify any spoken names or spoken subjects (as distinct from voice message contents). As well, the Content-Duration header [DUR] SHOULD be used to indicate the audio length 🎧.

The originator's spoken name MAY be included with messages as separate audio contents, if known, and SHOULD be indicated by the Content-Disposition VOICE parameter as defined in VPIM v2 [VPIMV2R2]. If there is a single recipient for the message, the spoken name MAY also be included (per VPIM v2). A spoken subject MAY also be provided (per VPIM v2) ✨.

A sending implementation MAY determine the recipient capabilities before sending a message and choose a codec accordingly (e.g., using some form of content negotiation). In the absence of such recipient knowledge, sending implementations MUST use raw G.711 mu-law, which is indicated with a MIME content type of audio/basic (and SHOULD use a filename parameter that ends .au) [G711], [MIME2]. A sending implementation MAY support interoperability with VPIM v2 [VPIMV2R2], in which case, it MUST be able to record G.726 (indicated as audio/32kadpcm) [G726], [ADPCM].

Recipients MUST be able to play a raw G.711 mu-law message, and MAY be able to play G.726 (indicated as audio/32kadpcm) to provide interoperability with VPIM v2. A receiving implementation MAY also be able to play messages encoded with other codecs (either natively or via transcoding) 🎡.

These requirements may be summarized as follows:

   Codec           No VPIM v2 Support      With VPIM v2 Support
                   Record    Playback      Record      Playback
   -------------   ------    --------      ------      --------


   G.711 mu-law     MUST      MUST          MUST        MUST
   G.726            *         MAY           MUST        MUST
   Other            *         MAY           *           MAY

      * = MUST NOT, but MAY only if recipient capabilities known

8. Fax Contents πŸ“ 

Fax contents SHOULD be carried according to RFC 2532 [IFAX] πŸ’–.

9. Interoperability with VPIM v2 ✨

Okay so getting IVM and VPIM v2 systems to talk to each other can happen in a bunch of different ways πŸ’…. Full interoperability is a whole big project, and it's out of scope for this doc, but we're gonna walk through three key alternatives πŸ¦‹.

9.1. Handling VPIM v2 Messages in an IVM Client

If an IVM-conformant client can handle a multipart/voice-message content type (by treating it as multipart/mixed) and play a G.726 encoded audio message inside it (marked by a content type of audio/32kadpcm), then a VPIM v2 message that lands on that desktop will be at least usable by the recipient πŸŽ€.

This gives you a level of partial interoperability that makes end users' lives way easier πŸ₯Ή. However, care should be taken so that replying to such a message never results in an invalid VPIM v2 message being sent to a VPIM v2 system πŸ™ˆ. Replying to an e-mail user who has forwarded a VPIM v2 message to you is, however, totally acceptable πŸ’Œ.

A conformant IVM implementation MUST NOT send a non-VPIM v2 message to something it knows to be a VPIM v2 system, unless it also knows that the destination system can handle such a message (even though VPIM v2 systems are encouraged to handle non-VPIM v2 messages in a graceful manner). 🚨

In general, it must be assumed that if a system sends you a conformant VPIM v2 message, then it is a VPIM v2 system, so you may only reply with a VPIM v2 compliant message (unless you know by some other means that the system supports IVM) 🫢.

Also, it should be noted that an IVM client may not fully conform to VPIM v2, even if it supports playing a G.726 message. For example, it may not respect the handling of the Sensitivity field required by VPIM v2 😬. This is one reason why VPIM v2 systems may choose not to route messages to any system they do not know to be VPIM v2 compliant 🚫.

9.2. Dual Mode Systems and Clients

A VPIM v2 system could be extended to also support IVM compliant messages, and an IVM conformant client could be extended to implement VPIM v2 in full when corresponding with a VPIM v2 compliant system πŸ‘‘. This is simply a matter of implementing both specifications and selecting the appropriate one, depending on the received message content or the recipient's capabilities 🧚. This delivers full interoperability for the relevant systems, as long as the capabilities of the target users can be determined ⭐.

Note that the mechanism for determining if a given recipient is using a VPIM v2 system or client is outside of the scope of this specification 🌸. Various mechanisms for capabilities discovery exist that could be applied to this problem, but no standard solution has yet been defined πŸ€·β€β™€οΈ.

9.3. Gateways

It would be possible to build a gateway linking a set of VPIM v2 users with a set of IVM users πŸŒ‰. This gateway would implement the semantics of the two worlds and translate between them according to defined policies πŸ’–.

For example, VPIM v2 messages with a Sensitivity of Private might be rejected instead of forwarded to an IVM recipient, because that recipient might not implement the semantics of a Private message πŸ”’. Meanwhile, an IVM message containing content not supported in VPIM v2 (for example, a PNG image) with a Criticality of CRITICAL would be rejected in the gateway πŸ™…β€β™€οΈ.

Such a gateway MUST fully implement this specification and the VPIM v2 specification [VPIMV2R2], unless it knows somehow that the specific originators/recipients support capabilities beyond those required by these standards. πŸ“œ

10. Security Considerations πŸ”

This document presents an optional gateway between IVM and VPIM systems. Gateways are inherently lossy systems, and not all information can be accurately translated 😭. This applies to both the transcoding of the voice and the translation of features. Two examples of feature translation are given in 9.3, but the risk remains that different gateways will handle the translation differently, since it is undefined in this document. This may lead to unexpected behavior through gateways πŸ’€.

In addition, gateways present an additional point of attack for those interested in compromising a messaging system πŸ‘€. If a gateway is compromised, "monkey in the middle" attacks, conducted from the compromised gateway, may be difficult to detect or may appear to be authorized transformations. Literally the stuff of nightmares πŸ¦‡.

Aside from the gateway issue, it is anticipated that there are no new additional security issues beyond those identified in VPIM v2 [VPIMV2R2] and in the other RFCs referenced by this document. That's especially SMTP [DRUMSMTP], Internet Message Format [DRUMSIMF], MIME [MIME2], Critical Content [CRITICAL], and Message Context [HINT] πŸ›‘οΈ.

11. References πŸ“š

11.1. Normative References

  • [ADDRESS] Parsons, G., "Voice Profile for Internet Mail (VPIM) Addressing", RFC 3804, June 2004.
  • [ADPCM] Vaudreuil, G. and G. Parsons, "Toll Quality Voice - 32 kbit/s Adaptive Differential Pulse Code Modulation (ADPCM) MIME Sub-type Registration", RFC 3802, June 2004.
  • [BEHAVIOUR] Parsons, G. and J. Maruszak, "Voice Messaging Client Behaviour", RFC 4024, July 2005.
  • [CLID] Parsons, G. and J. Maruszak, "Calling Line Identification for Voice Mail Messages", RFC 3939, December 2004.
  • [CRITICAL] Burger, E., "Critical Content Multi-purpose Internet Mail Extensions (MIME) Parameter", RFC 3459, January 2003.
  • [DSN] Moore, K., "Simple Mail Transfer Protocol (SMTP) Service Extension for Delivery Status Notifications (DSNs)", RFC 3461, January 2003.
  • [DSN2] Vaudreuil, G., "The Multipart/Report Content Type for the Reporting of Mail System Administrative Messages", RFC 3462, January 2003.
  • [DSN3] Vaudreuil, G., "Enhanced Mail System Status Codes", RFC 3463, January 2003.
  • [DSN4] Moore, K. and G. Vaudreuil, "An Extensible Message Format for Delivery Status Notifications", RFC 3464, January 2003.
  • [DRUMSMTP] Klensin, J., "Simple Mail Transfer Protocol", RFC 2821, April 2001.
  • [DRUMSIMF] Resnick, P., "Internet Message Format", RFC 2822, April 2001.
  • [DUR] Vaudreuil, G. and G. Parsons, "Content Duration MIME Header Definition", RFC 3803, June 2004.
  • [HINT] Burger, E., Candell, E., Eliot, C., and G. Klyne, "Message Context for Internet Mail", RFC 3458, January 2003.
  • [IFAX] Masinter, L. and D. Wing, "Extended Facsimile Using Internet Mail", RFC 2532, March 1999.
  • [KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
  • [MDN] Hansen, T. and G. Vaudreuil, "Message Disposition Notification", RFC 3798, May 2004.
  • [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.
  • [MIME5] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part Five: Conformance Criteria and Examples", RFC 2049, November 1996.
  • [SELECTOR] Allocchio, C., "Minimal GSTN address format in Internet Mail", RFC 3191, October 2001.
  • [SCHEMA] Vaudreuil, G., "Voice Messaging Directory Service", RFC 4237, October 2005.
  • [VPIMENUM] Vaudreuil, G., "Voice Message Routing Service", RFC 4238, October 2005.
  • [VPIMV2] Vaudreuil, G. and G. Parsons, "Voice Profile for Internet Mail - version 2", RFC 2421, September 1998.
  • [VPIMV2R2] Vaudreuil, G. and G. Parsons, "Voice Profile for Internet Mail - version 2 (VPIMv2)", RFC 3801, June 2004.

11.2. Informative References

  • [GOALS] Candell, E., "High-Level Requirements for Internet Voice Mail", RFC 3773, June 2004.
  • [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).
  • [G711] ITU-T Recommendation G.711 (1993), General Aspects of Digital Transmission Systems, Terminal Equipment - Pulse Code Modulation (PCM) of Voice Frequencies.

Authors' Addresses πŸ§‘β€πŸ’»

Stuart J. McRae
IBM
Lotus Park, The Causeway
Staines, TW18 3AG
United Kingdom

Phone: +44 1784 445 112
Fax: +44 1784 499 112
EMail: stuart.mcrae@uk.ibm.com


Glenn W. Parsons
Nortel Networks
3500 Carling Avenue
Ottawa, ON K2H 8E9
Canada

Phone: +1-613-763-7582
Fax: +1-613-967-5060
EMail: gparsons@nortel.com

Copyright (C) The Internet Society (2005).

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM 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. πŸ“

Intellectual Property 🧠

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document, or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

Copies of IPR disclosures made to the IETF Secretariat 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 on-line IPR repository at http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.

Acknowledgement πŸ™

Funding for the RFC Editor function is currently provided by the Internet Society. πŸ’œ

πŸ“¦ where this page comes from