diff options
Diffstat (limited to 'doc/rfc/rfc5616.txt')
-rw-r--r-- | doc/rfc/rfc5616.txt | 1571 |
1 files changed, 1571 insertions, 0 deletions
diff --git a/doc/rfc/rfc5616.txt b/doc/rfc/rfc5616.txt new file mode 100644 index 0000000..4728e77 --- /dev/null +++ b/doc/rfc/rfc5616.txt @@ -0,0 +1,1571 @@ + + + + + + +Network Working Group N. Cook +Request for Comments: 5616 Cloudmark +Category: Informational August 2009 + + + Streaming Internet Messaging Attachments + +Abstract + + This document describes a method for streaming multimedia attachments + received by a resource- and/or network-constrained device from an + IMAP server. It allows such clients, which often have limits in + storage space and bandwidth, to play video and audio email content. + + The document describes a profile for making use of the URLAUTH- + authorized IMAP URLs (RFC 5092), the Network Announcement SIP Media + Service (RFC 4240), and the Media Server Control Markup Language (RFC + 5022). + +Status of This Memo + + This memo provides information for the Internet community. It does + not specify an Internet standard of any kind. Distribution of this + memo is unlimited. + +Copyright Notice + + Copyright (c) 2009 IETF Trust and the persons identified as the + document authors. All rights reserved. + + This document is subject to BCP 78 and the IETF Trust's Legal + Provisions Relating to IETF Documents in effect on the date of + publication of this document (http://trustee.ietf.org/license-info). + Please review these documents carefully, as they describe your rights + and restrictions with respect to this document. + + This document may contain material from IETF Documents or IETF + Contributions published or made publicly available before November + 10, 2008. The person(s) controlling the copyright in some of this + material may not have granted the IETF Trust the right to allow + modifications of such material outside the IETF Standards Process. + Without obtaining an adequate license from the person(s) controlling + the copyright in such materials, this document may not be modified + outside the IETF Standards Process, and derivative works of it may + not be created outside the IETF Standards Process, except to format + it for publication as an RFC or to translate it into languages other + than English. + + + + +Cook Informational [Page 1] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + +Table of Contents + + 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2 + 2. Conventions Used in This Document . . . . . . . . . . . . . . 3 + 3. Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . 3 + 3.1. Overview of Mechanism . . . . . . . . . . . . . . . . . . 3 + 3.2. Media Server Discovery . . . . . . . . . . . . . . . . . . 5 + 3.3. Client Use of GENURLAUTH Command . . . . . . . . . . . . . 7 + 3.4. Client Determination of Media Server Capabilities . . . . 9 + 3.5. Client Use of the Media Server Announcement Service . . . 10 + 3.6. Media Negotiation and Transcoding . . . . . . . . . . . . 11 + 3.7. Client Use of the Media Server MSCML IVR Service . . . . . 13 + 3.8. Media Server Use of IMAP Server . . . . . . . . . . . . . 17 + 3.9. Protocol Diagrams . . . . . . . . . . . . . . . . . . . . 18 + 3.9.1. Announcement Service Protocol Diagram . . . . . . . . 18 + 3.9.2. IVR Service Protocol Diagram . . . . . . . . . . . . . 19 + 4. Security Considerations . . . . . . . . . . . . . . . . . . . 21 + 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 + 6. Digital Rights Management (DRM) Issues . . . . . . . . . . . . 24 + 7. Deployment Considerations . . . . . . . . . . . . . . . . . . 24 + 8. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 25 + 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 26 + 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 26 + 10.1. Normative References . . . . . . . . . . . . . . . . . . . 26 + 10.2. Informative References . . . . . . . . . . . . . . . . . . 28 + +1. Introduction + + Email clients on resource- and/or network-constrained devices, such + as mobile phones, may have difficulties in retrieving and/or storing + large attachments received in a message. For example, on a poor + network link, the latency required to download the entire attachment + before displaying any of it may not be acceptable to the user. + Conversely, even on a high-speed network, the device may not have + enough storage space to secure the attachment once retrieved. + + For certain media, such as audio and video, there is a solution: the + media can be streamed to the device, using protocols such as RTP + [RTP]. Streaming can be initiated and controlled using protocols + such as SIP [SIP] and particularly the media server profiles as + specified in RFC 4240 [NETANN] or MSCML [MSCML]. Streaming the media + to the device addresses both the latency issue, since the client can + start playing the media relatively quickly, and the storage issue, + since the client does not need to store the media locally. A + tradeoff is that the media cannot be viewed/played when the device is + offline. + + + + + +Cook Informational [Page 2] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + + Examples of the types of media that would benefit from the ability to + stream to the device include: + + o Voice or video mail messages received as an attachment + + o Audio clips such as ring tones received as an attachment + + o Video clips, such as movie trailers, received as an attachment + + The client may wish to present the user with the ability to use + simple "VCR-style" controls such as pause, fast-forward, and rewind. + In consideration of this, the document presents two alternatives for + streaming media -- a simple mechanism that makes use of the + announcement service of RFC 4240, and a more complex mechanism which + allows VCR controls, based on MSCML (RFC 5022) [MSCML]. The choice + of which mechanism to use is up to the client; for example, it may be + based on limitations of the client or the configured media server. + This document presents suggestions for determining which of these + streaming services are available. + +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]. + + In examples, "C:" and "S:" indicate lines sent by the client and + server, respectively. If a single "C:" or "S:" label applies to + multiple lines, then some of the line breaks between those lines are + for editorial clarity only and may not be part of the actual protocol + exchange. + +3. Mechanism + +3.1. Overview of Mechanism + + The proposed mechanism for streaming media to messaging clients is a + profile for making use of several existing mechanisms, namely: + + o IMAP URLAUTH Extension [URLAUTH] - Providing the ability to + generate an IMAP URL that allows access by external entities to + specific message parts, e.g., an audio clip. + + o URLFETCH Binary Extension [URLFETCH_BINARY] - Providing the + ability to specify BINARY and BODYPARTSTRUCTURE arguments to the + URLFETCH command. + + + + + +Cook Informational [Page 3] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + + o Media Server Announcement Service (RFC 4240) [NETANN] - Providing + the ability for a media server to stream media using a reference + provided by the media server client in a URL. + + o Media Server Interactive Voice Response (IVR) Service (RFC 5022) + [MSCML] - Providing the ability to stream media as above, but with + VCR-style controls. + + The approach is shown in the following figure: + + +--------------+ + | | + | Email Client |^ + | | \ + +--------------+ \ + ^ ^ \ + | \ \ (5) + | (1), \ \ + | (2) \ \ + | (3),\ \ + | (6) \ \ + | \ \ + v v v + +--------------+ +----------------+ + | | (4) | | + | IMAP Server |<----->| Media Server | + | | | | + +--------------+ +----------------+ + + Figure 1: Proposed Mechanism + + The proposed mechanism has the following steps: + + (1) The client determines from MIME headers of a particular message + that a particular message part (attachment) should be streamed + to the user. Note that no assumptions are made about + how/when/if the client contacts the user of the client about + this decision. User input may be required in order to initiate + the proposed mechanism. + + (2) The client constructs an IMAP URL referencing the message part, + and uses the GENURLAUTH [URLAUTH] command to generate a URLAUTH- + authorized IMAP URL. + + (3) The client connects to a SIP Media Server using the announcement + service as specified in RFC 4240 [NETANN], or the IVR service as + specified in RFC 5022 [MSCML], and passes the URLAUTH-authorized + URL to the media server. + + + +Cook Informational [Page 4] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + + (4) The media server connects to the IMAP server specified in the + referenced URL, and uses the IMAP URLFETCH [URLAUTH] command to + retrieve the message part. + + (5) The media server streams the retrieved message part to the + client using RTP [RTP]. + + (6) The media server or the client terminates the media streaming, + or the streaming ends naturally. The SIP session is terminated + by either client or server. + + It should be noted that the proposed mechanism makes several + assumptions about the mobile device, as well as available network + services, namely: + + o The mobile device is provisioned with, or obtains via some dynamic + mechanism (see Section 3.2), the location of a media server which + supports either RFC 4240 [NETANN] and/or RFC 5022 [MSCML]. + + o The media server(s) used by the mobile device support the IMAP URL + [IMAPURL] scheme for the announcement and/or IVR services. + + o The IMAP server used by the mobile device supports generating + anonymous IMAP URLs using the URLAUTH mechanism as well as the + IMAP URLFETCH BINARY [URLFETCH_BINARY] extension. + +3.2. Media Server Discovery + + This section discusses possibilities for the automatic discovery of + suitable media servers to perform streaming operations, and provides + for such a mechanism using the IMAP METADATA [METADATA] extension. + + There are two possibilities for clients with regard to determining + the hostname and port number information of a suitable media server: + + 1. No discovery of media servers is required: clients are configured + with suitable media server information in an out-of-band manner. + + 2. Discovery of media servers is required: clients use a discovery + mechanism to determine a suitable media server that will be used + for streaming multimedia message parts. + + There are several scenarios where media server discovery would be a + requirement for streaming to be successful: + + o Client is not configured with the address of any media servers. + + + + + +Cook Informational [Page 5] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + + o Client is configured with the address of one or more media + servers, but the IMAP server is configured to only accept URLFETCH + requests from specific media servers (for security or site policy + reasons), and thus streaming would fail due to the media server + not being able to retrieve the media from the IMAP server. + + There is also a scenario where media server discovery would improve + the security of the streaming mechanism, by avoiding the use of + completely anonymous URLs. For example, the client could discover a + media server address that was an authorized user of the IMAP server + for streaming purposes, which would allow the client to generate a + URL, which was secure in that it could *only* be accessed by an + entity that is trusted by the IMAP server to retrieve content. The + issue of trust in media servers is discussed more fully in Section 4. + + This document describes using the IMAP METADATA [METADATA] extension, + via the use of a server entry that provides the contact information + for suitable media servers for use with the IMAP server. Media + Server discovery is optional: clients are free to use pre-configured + information about media servers, or to fall back to pre-configured + information if they encounter IMAP servers that do not support either + the METADATA extension or the proposed entry, or that do not provide + a value for the entry. + + A METADATA entry with the name of "/shared/mediaServers" is used to + store the locations of suitable media servers known to the IMAP + server. The entry is formatted according to the formalSyntax + specified in Section 8. This consists of a tuple of a URI and + optional "stream" string, where the URI is surrounded by <> symbols, + the URI and "stream" are separated using a colon ":", and tuples are + separated using a ";". + + The "stream" string (c.f. the "stream" access identifier from + [ACCESSID]) is used to identify media servers capable of connecting + to the IMAP server as users authorized to retrieve URLs constructed + using the "stream" access identifier. It indicates that the client + MUST create the content URI using the "stream" access identifier. + See Section 3.3 for a description of how the client should make use + of the access identifier when generating IMAP URLs.) + + Example values of the /shared/mediaServers METADATA entry (N.B. Any + line-wrapping below is for the purpose of clarity): + + "<sip:ivr@ms.example.net:5060>:stream;<sip:annc@ + ms1.example.net:5060>;<sips:ivr@ms2.example.net:5061>" + + "<sip:ivr@192.0.2.40:5060>;<sip:192.0.2.41:5060>;<sips:annc@ + 192.0.2.42:5060>:stream" + + + +Cook Informational [Page 6] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + + It should be noted that the URI specified in the ABNF (in Section 8) + is generic, i.e., not restricted to SIP URIs; however, this document + only specifies how to make use of SIP URIs. Additionally, the + "userinfo" (known as the "service indicator" in RFC 4240 and RFC + 4722) component of the URI is optional; if specified, it gives the + client additional information about the media server capabilities. + For example, a "userinfo" component of "annc" indicates that the + media server supports RFC 4240, and "ivr" indicates support for RFC + 4722. Section 3.4 further describes how clients should behave if the + "userinfo" component is not present. + + Clients SHOULD parse the value of the /shared/mediaServers entry, and + contact a media server using one of the returned URIs. The servers + are returned in order of preference as suggested by the server; + however, it is left to the client to decide if a different order is + more appropriate when selecting the media server(s) to contact, as + well as the selection of alternates under failure conditions. + + Administrators configuring the values of the /shared/mediaServers + entry, who do not know the capabilities of the media servers being + configured, SHOULD NOT include a "userinfo" component as part of the + URI. In that case, the client will determine which service to use as + specified in Section 3.4. Note that if a media server supports + multiple services, a URI with the appropriate userinfo component + SHOULD be configured for each service. + + Note that even though the media server address can be discovered + dynamically, it is assumed that the necessary security arrangements + between the client and the media server already exist. For example, + the media server could use SIP digest authentication to provide + access only to authenticated clients; in this case, it is assumed the + username and password have already been set up. Likewise, if the + client wants to authenticate the media server using, e.g., TLS and + certificates, it is assumed the necessary arrangements (trust anchors + and so on) already exist. In some deployments, the clients and media + servers may even be willing to rely on the security of the underlying + network, and omit authentication between the client and the media + server entirely. See Section 4 for more details. + +3.3. Client Use of GENURLAUTH Command + + The decision to make use of streaming services for a message part + will usually be predicated on the content type of the message part. + Using the capabilities of the IMAP FETCH command, clients determine + the MIME [MIME] Content-Type of particular message parts, and based + on local policies or heuristics, they decide whether streaming for + that message part will be attempted. + + + + +Cook Informational [Page 7] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + + Once the client has determined that a particular message part + requires streaming, the client generates an IMAP URL that refers to + the message part according to the method described in RFC 5092 + [IMAPURL]. The client then begins the process of generating an + URLAUTH URL by appending ";EXPIRE=<datetime>" and ";URLAUTH=<access>" + to the initial URL. + + The ";EXPIRE=<datetime>" parameter is optional; however, it SHOULD be + used, since the use of anonymous URLAUTH-authorized URLs is a + security risk (see Section 4), and it ensures that at some point in + the future, permission to access that URL will cease. IMAP server + implementors may choose to reject anonymous URLs that are considered + insecure (for example, with an EXPIRE date too far in the future), as + a matter of local security policy. To prevent this from causing + interoperability problems, IMAP servers that implement this profile + MUST NOT reject GENURLAUTH commands for anonymous URLs on the basis + of the EXPIRE time, if that time is equal to, or less than, 1 hour in + the future. + + The <access> portion of the URLAUTH URL MUST be 'stream' (see + [ACCESSID]) if an out-of-band mechanism or the media server discovery + mechanism discussed in Section 3.2 specifies that the media server is + an authorized user of the IMAP server for the purposes of retrieving + content via URLFETCH. Without specific prior knowledge of such a + configuration (either through the discovery mechanism described in + this document, or by an out-of-band mechanism), the client SHOULD use + the 'stream' access identifier, which will cause streaming to fail if + the media server is not an authorized user of the IMAP server for the + purposes of streaming. + + However, if the client wishes to take the risk associated with + generating a URL that can be used by any media server (see + Section 4), it MAY use 'anonymous' as the <access> portion of the + URLAUTH URL passed to the GENURLAUTH command. For example, the + client may have been pre-configured with the address of media servers + in the local administrative domain (thus implying a level of trust in + those media servers), without knowing whether those media servers + have a pre-existing trust relationship with the IMAP server to be + used (which may well be in a different administrative domain). See + Section 4 for a full discussion of the security issues. + + The client uses the URL generated as a parameter to the GENURLAUTH + command, using the INTERNAL authorization mechanism. The URL + returned by a successful response to this command will then be passed + to the media server. If no successful response to the GENURLAUTH + command is received, then no further action will be possible with + respect to streaming media to the client. + + + + +Cook Informational [Page 8] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + + Examples: + + C: a122 UID FETCH 24356 (BODYSTRUCTURE) + S: * 26 FETCH (BODYSTRUCTURE (("TEXT" "PLAIN" + S: ("CHARSET" "US-ASCII") NIL + S: NIL "7BIT" 1152 23)("VIDEO" "MPEG" + NIL NIL "BASE64" 655350)) UID 24356) + S: a122 OK FETCH completed. + C: a123 GENURLAUTH "imap://joe@example.com/INBOX/;uid=24356/; + section=1.2;expire=2006-12-19T16:39:57-08:00; + urlauth=anonymous" INTERNAL + S: * GENURLAUTH "imap://joe@example.com/INBOX/;uid=24356/; + section=1.2;expire=2006-12-19T16:39:57-08:00; + urlauth=anonymous: + internal:238234982398239898a9898998798b987s87920" + S: a123 OK GENURLAUTH completed + + + C: a122 UID FETCH 24359 (BODYSTRUCTURE) + S: * 27 FETCH (BODYSTRUCTURE (("TEXT" "PLAIN" + S: ("CHARSET" "US-ASCII") NIL + S: NIL "7BIT" 1152 23)("AUDIO" "G729" + NIL NIL "BASE64" 87256)) UID 24359) + S: a122 OK FETCH completed. + C: a123 GENURLAUTH "imap://joe@example.com/INBOX/;uid=24359/; + section=1.3;expire=2006-12-19T16:39:57-08:00; + urlauth=stream" INTERNAL + S: * GENURLAUTH "imap://joe@example.com/INBOX/;uid=24359/; + section=1.3;expire=2006-12-20T18:31:45-08:00; + urlauth=stream: + internal:098230923409284092384092840293480239482" + S: a123 OK GENURLAUTH completed + +3.4. Client Determination of Media Server Capabilities + + Once an authorized IMAP URL has been generated, it is up to the + client to pass that URL to a suitable media server that is capable of + retrieving the URL via IMAP, and streaming the content to the client + using the RTP [RTP] protocol. + + This section specifies the behavior of clients that have not + determined (either statically through configuration, or dynamically + through a discovery process as discussed in Section 3.2), the + capabilities of the media server with respect to the services (i.e., + RFC 4240 or 5022) supported by that media server. Clients that have + determined those capabilities should use the mechanisms described in + Sections 3.5 or 3.7, as appropriate. + + + + +Cook Informational [Page 9] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + + If the client supports the MSCML IVR service, then it SHOULD attempt + to contact the media server using the MSCML protocol by sending a SIP + INVITE that has the service indicator "ivr". + + Assuming the media server responds to the INVITE without error, the + client can carry on using the MSCML IVR service as specified in + Section 3.7. If the media server responds with an error indicating + that the "ivr" service is not supported, then if the client supports + it, the client SHOULD attempt to contact the media server using the + announcement service, as described in Section 3.5. + + The following example shows an example SIP INVITE using the "ivr" + service indicator: + + C: INVITE sip:ivr@ms2.example.com SIP/2.0 + < SIP Header fields omitted for reasons of brevity > + +3.5. Client Use of the Media Server Announcement Service + + Assuming the client or media server does not support use of the MSCML + protocol, the media server announcement service is used, as described + in RFC 4240 [NETANN]. This service allows the client to send a SIP + INVITE to a special username ('annc') at the media server (the + "announcement" user), supplying the URL obtained as per Section 3.3. + + The SIP INVITE is constructed as shown in the examples below; note + that as per RFC 4240, the play parameter is mandatory and specifies + the authorized IMAP URL to be played. + + Examples of valid SIP INVITE URIs sent to the media server + announcement service: + + C: sip:annc@ms2.example.net; + play=imap:%2F%2Fjoe@example.com%2FINBOX%2F%3Buid%3D24356%2F%3Bsection + %3D1.2%3Bexpire%3D2006-12-19T16:39:57-08:00%3Burlauth%3Danonymous: + internal:238234982398239898a9898998798b987s87920 + + C: sip:annc@ms1.example.net; + play=imap:%2F%2Ffred@ + example.com%2FINBOX%2F%3Buid%3D24359%2F%3Bsection + %3D1.3%3Bexpire%3D2006-12-20T18:31:45-08:00%3Burlauth%3Dstream: + internal:098230923409284092384092840293480239482 + + Notice that many of the characters that are used as parameters of the + IMAP URI are escaped, as otherwise they would change the meaning of + the enclosing SIP URI, by being regarded as SIP URI parameters + instead of IMAP URL parameters. + + + + +Cook Informational [Page 10] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + + If the client receives a 200 (OK) response, the media server has + successfully retrieved the content from the IMAP server and the + negotiated RTP stream will shortly begin. + + There are many possible response codes; however, a response code of + 404 received from the media server indicates that the content could + not be found or could not be retrieved for some reason. For example, + the media server may not support the use of IMAP URLs. At this + point, there are several options to the client, such as using + alternate media servers, or giving up in attempting to stream the + required message part. + +3.6. Media Negotiation and Transcoding + + This document uses standards and protocols from two traditionally + separate application areas: Mobile Email (primarily IMAP) and + Internet Telephony/Streaming (e.g., SIP/RTP). Since the document + primarily addresses enhancing the capabilities of mobile email, it is + felt worthwhile to give some examples of simple SIP/SDP exchanges and + to discuss capabilities such as media negotiation (using SDP) and + media transcoding. + + In the below example, the client contacts the media server using the + SIP INVITE command to contact the announcement service (see + Section 3.5), advertising support for a range of audio and video + codecs (using SDP [SDP]), and in response the media server advertises + only a set of audio codecs. This process is identical for the IVR + service, except that the IVR service does not use the SIP Request-URI + to indicate the content to be played; instead, this is carried in a + subsequent SIP INFO request. + + The client and server now know from the SDP session description + advertised by both client and server that communication must be using + the subset of audio codecs supported by both client and server (in + the example SDP session description below, it is clear that the + server does not support any video codecs). The media server may + perform transcoding (i.e., converting between codecs) on the media + received from the IMAP server in order to satisfy the codecs + supported by the client. For example, the media server may downgrade + the video retrieved from the IMAP server to the audio component only. + + For clients using the announcement service, the media server MUST + return an error to the INVITE if it cannot find a common codec + between the client, server and media, or it cannot transcode to a + suitable codec. Similarly, for clients using the MSCML IVR service, + the media server MUST return a suitable error response to the + <playcollect> request. + + + + +Cook Informational [Page 11] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + + Example SIP INVITE and SDP Media Negotiation + + C: INVITE sip:annc@ms2.example.com; + play=imap:%2F%2Fjoe@example.com%2FINBOX%2F%3Buid%3D24356%2F%3B + section%3D1.2%3Bexpire%3D2006-12-19T16:39:57-08:00%3Burlauth%3D + anonymous:internal:238234982398239898a9898998798b987s87920 SIP/2.0 + C: From: UserA <sip:UAA@example.com> + C: To: NetAnn <sip:annc@ms2.example.com> + C: Call-ID: 8204589102@example.com + C: CSeq: 1 INVITE + C: Contact: <sip:UAA@192.0.2.40> + C: Content-Type: application/sdp + C: Content-Length: 481 + C: + C: v=0 + C: o=UserA 2890844526 2890844526 IN IP4 192.0.2.40 + C: s=Session SDP + C: c=IN IP4 192.0.2.40 + C: t=3034423619 0 + C: m=audio 9224 RTP/AVP 0 8 3 98 101 + C: a=alt:1 1 : 01BB7F04 6CBC7A28 192.0.2.40 9224 + C: a=fmtp:101 0-15 + C: a=rtpmap:98 ilbc/8000 + C: a=rtpmap:101 telephone-event/8000 + C: a=recvonly + C: m=video 9226 RTP/AVP 105 34 120 + C: a=alt:1 1 : 01BCADB3 95DFFD80 192.0.2.40 9226 + C: a=fmtp:105 profile=3;level=20 + C: a=fmtp:34 CIF=2 QCIF=2 MAXBR=5120 + C: a=rtpmap:105 h263-2000/90000 + C: a=rtpmap:120 h263/90000 + C: a=recvonly + + S: SIP/2.0 200 OK + S: From: UserA <sip:UAA@example.com> + S: To: NetAnn <sip:annc@ms2.example.com> + S: Call-ID: 8204589102@example.com + S: CSeq: 1 INVITE + S: Contact: <sip:netann@192.0.2.41> + S: Content-Type: application/sdp + S: Content-Length: 317 + S: + S: v=0 + S: o=NetAnn 2890844527 2890844527 IN IP4 192.0.2.41 + S: s=Session SDP + S: c=IN IP4 192.0.2.41 + S: t=3034423619 0 + S: m=audio 17684 RTP/AVP 0 8 3 18 98 101 + + + +Cook Informational [Page 12] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + + S: a=rtpmap:0 PCMU/8000 + S: a=rtpmap:8 PCMA/8000 + S: a=rtpmap:3 GSM/8000 + S: a=rtpmap:18 G729/8000 + S: a=fmtp:18 annexb=no + S: a=rtpmap:98 iLBC/8000 + S: a=rtpmap:101 telephone-event/8000 + S: a=fmtp:101 0-16 + + C: ACK sip:netann@192.0.2.41 SIP/2.0 + C: From: UserA <sip:UAA@example.com> + C: To: NetAnn <sip:annc@ms2.example.com> + C: Call-ID: 8204589102@example.com + C: CSeq: 1 ACK + C: Content-Length: 0 + +3.7. Client Use of the Media Server MSCML IVR Service + + Once the client has determined that the media server supports the IVR + service, it is up to the client to generate a suitable MSCML request + to initiate streaming of the required media. + + When using the IVR service, the initial SIP invite is used only to + establish that the media server supports the MSCML IVR service, and + to negotiate suitable media codecs. Once the initial SIP INVITE and + response to that INVITE have been completed successfully, the client + must generate a SIP INFO request with MSCML in the body of the + request to initiate streaming. + + The <playcollect> request is used, as this allows the use of dual + tone multi-frequency (DTMF) digits to control playback of the media, + such as fast-forward or rewind. + + Since the <playcollect> request is used purely for its VCR-like + capabilities, there is no need for the media server to perform DTMF + collection. Therefore, the playcollect attributes "firstdigittimer", + "interdigittimer", and "extradigittimer" SHOULD all be set to "0ms", + which will have the effect of causing digit collection to cease + immediately after the media has finished playing. + + The "ffkey" and "rwkey" attributes of <playcollect> are used to + control fast-forward and rewind behavior, with the "skipinterval" + attribute being used to control the 'speed' of these actions. + + The <prompt> tag is used to specify the media to be played, and + SHOULD have a single <audio> tag that gives the URL of the media, as + per the Section 3.3. The audio-specific name of the tag is + historical, as the tag can be used for video as well as audio + + + +Cook Informational [Page 13] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + + content. The "stoponerror" attribute SHOULD be set to "yes", so that + meaningful error messages will be returned by the media server in the + event of problems such as retrieving the media from the IMAP server. + + An example SIP INFO request using the <playcollect> request is shown + at the end of this section. + + It should be noted that under normal (i.e., non-error) conditions, + the response to the <playcollect> request is a SIP 200 (OK) response. + The media server then streams the media, and only when the media has + finished playing (naturally or due to a user request) does the media + server send a <playcollect> response, which includes details of the + media played, such as length and any digits collected. + + The client may suspend playback of the media at any time by either + sending the DTMF escape key (specified as an attribute to the + <playcollect> request) or by sending a <stop> request to the media + server in a SIP INFO request. Upon receipt of the request, the media + server will acknowledge it, and then cease streaming of the media, + followed by a SIP INFO request containing the <playcollect> response. + + If the media server cannot play the media for any reason (for + example, if it cannot retrieve the media from the IMAP server), + streaming will not take place, and the <playcollect> response will be + sent, usually with meaningful values in the <error_info> element. + + The following gives an example dialog between a client and media + server, including a rewind request, and termination of the playback + by use of the escape key. Some elements of the SIP dialog such as + full SIP header fields and SDP are omitted for reasons of brevity. + (The protocol diagram in Section 3.9.2 shows the high-level message + flow between all the components, including the IMAP server.) + + C: INVITE sip:ivr@ms.example.com SIP/2.0 + C: From: UserA <sip:UAA@example.com> + C: To: IVR <sip:ivr@ms.example.com> + C: Call-ID: 3298420296@example.com + C: CSeq: 1 INVITE + C: Contact: <sip:UAA@192.0.2.40> + C: Content-Type: application/sdp + C: Content-Length: XXX + C: + C: <SDP Here> + + S: SIP/2.0 200 OK + S: From: UserA <sip:UAA@example.com> + S: To: IVR <sip:ivr@ms.example.com> + S: Call-ID: 3298420296@example.com + + + +Cook Informational [Page 14] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + + S: CSeq: 1 INVITE + S: Contact: <sip:ivr@192.0.2.41> + S: Content-Type: application/sdp + S: Content-Length: XXX + S: + S: <SDP Here> + + C: ACK sip:ivr@ms.example.com SIP/2.0 + C: From: UserA <sip:UAA@example.com> + C: To: IVR <sip:ivr@ms2.example.com> + C: Call-ID: 3298420296@example.com + C: CSeq: 1 ACK + C: Content-Length: 0 + + C: INFO sip:ivr@192.0.2.41 SIP/2.0 + C: From: UserA <sip:UAA@example.com> + C: To: IVR <sip:ivr@ms.example.com> + C: Call-ID: 3298420296@example.com + C: CSeq: 2 INFO + C: Content-Type: application/mediaservercontrol+xml + C: Content-Length: 423 + C: + C: <?xml version="1.0"?> + C: <MediaServerControl version="1.0"> + C: <request> + C: <playcollect id="332985001" + C: firstdigittimer="0ms" interdigittimer="0ms" extradigittimer="0ms" + C: skipinterval="6s" ffkey="6" rwkey="4" escape="*"> + C: <prompt stoponerror="yes" + C: locale="en_US" offset="0" gain="0" rate="0" + C: delay="0" duration="infinite" repeat="0"> + C: <audio url="imap://joe@example.com/INBOX/;uid=24356/;section=1.2; + expire=2006-12-19T16:39:57-08:00;urlauth=anonymous: + internal:238234982398239898a9898998798b987s87920"/> + C: </prompt> + C: </playcollect> + C: </request> + C: </MediaServerControl> + + S: SIP/2.0 200 OK + S: From: UserA <sip:UAA@example.com> + S: To: IVR <sip:ivr@ms.example.com> + S: Call-ID: 3298420296@example.com + S: CSeq: 2 INFO + S: Contact: <sip:ivr@192.0.2.41> + S: Content-Length: 0 + + + + + +Cook Informational [Page 15] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + + S: <Media server retrieves media from IMAP server and streams to + client> + + C: <Client streams 6 key> + + S: <Media Server fast forwards media by 6 seconds> + + C: <Client streams * key> + + S: <Media Server stops streaming> + + S: INFO sip:UAA@192.0.2.40 SIP/2.0 + S: From: IVR <sip:ivr@ms.example.com> + S: To: UserA <sip:UAA@example.com> + S: Call-ID: 3298420296@example.com + S: CSeq: 5 INFO + S: Contact: <sip:ivr@192.0.2.41> + S: Content-Type: application/mediaservercontrol+xml + S: Content-Length: XXX + S: + S: <?xml version="1.0"?> + S: <MediaServerControl version="1.0"> + S: <response id="332985001" request="playcollect" code="200" + S: reason="escapekey" playduration="34s" + S: playoffset="34s" digits="" /> + S: </MediaServerControl> + + C: SIP/2.0 200 OK + C: From: IVR <sip:ivr@ms.example.com> + C: To: UserA <sip:UAA@example.com> + C: Call-ID: 3298420296@example.com + C: CSeq: 5 INFO + C: Content-Length: 0 + + C: BYE sip:ivr@192.0.2.41 SIP/2.0 + C: From: UserA <sip:UAA@example.com> + C: To: IVR <sip:ivr@ms.example.com> + C: Call-ID: 3298420296@example.com + C: CSeq: 6 BYE + C: Content-Length: 0 + + S: SIP/2.0 200 OK + S: From: UserA <sip:UAA@example.com> + S: To: IVR <sip:ivr@ms.example.com> + S: Call-ID: 3298420296@example.com + S: CSeq: 6 BYE + S: Contact: <sip:ivr@192.0.2.41> + S: Content-Length: 0 + + + +Cook Informational [Page 16] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + +3.8. Media Server Use of IMAP Server + + This section describes how the media server converts the IMAP URL + received via the announcement or IVR service into suitable IMAP + commands for retrieving the content. + + The media server first connects to the IMAP server specified in the + URL. Once connected, the media server SHOULD use TLS [TLS] to + encrypt the communication path. + + If the media server has a user identity on the IMAP server, the media + server SHOULD authenticate itself to the IMAP server using the media + server's user identity. + + If the media server is not configured as an authorized user of the + IMAP server, then the behavior specified in IMAP URL [IMAPURL] MUST + be followed. That is, if the server advertises AUTH=ANONYMOUS IMAP + capability, the media server MUST use the AUTHENTICATE command with + the ANONYMOUS [ANONYMOUS] SASL mechanism. If SASL ANONYMOUS is not + available, the username "anonymous" is used with the "LOGIN" command + and the password is supplied as the Internet email address of the + administrative contact for the media server. + + Once authenticated, the media server issues the URLFETCH command, + using the URL supplied in the 'play' parameter of the SIP INVITE (or + audio tag of the MSCML). If the IMAP server does not advertise + URLAUTH=BINARY in its post-authentication capability string, then the + media server returns a suitable error code to the client. + + The additional parameters to the URLFETCH command specified in + (URLFETCH BINARY) [URLFETCH_BINARY] are used by the media server to + tell the IMAP server to remove any transfer encoding and return the + content type of the media (as content-type information is not + contained in the IMAP URL). + + A successful URLFETCH command will return the message part containing + the media to be streamed. If the URLFETCH was unsuccessful, then the + media server MUST return an appropriate error response to the client. + + Assuming the content is retrieved successfully, the media server + returns a 200 (OK) response code to the client. After an ACK is + received, an RTP stream is delivered to the client using the + parameters negotiated in the SDP. + + If appropriate, the media server MAY choose to implement connection + caching, in which case, connection and disconnection from the IMAP + server are handled according to whatever algorithm the media server + chooses. For example, the media server may know, a priori, that it + + + +Cook Informational [Page 17] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + + will always access the same IMAP server using the same login + credentials with an access pattern that would benefit from connection + caching, without unduly impacting server resources. + + Examples: + + C: a001 LOGIN anonymous null + S: a001 OK LOGIN completed. + C: a002 URLFETCH + ("imap://joe@example.com/INBOX/;uid=24356/;section=1.2; + expire=2006-12-19T16:39:57-08:00;urlauth=anonymous: + internal:238234982398239898a9898998798b987s87920" BODYPARTSTRUCTURE + BINARY) + S: * URLFETCH "imap://joe@example.com/INBOX/;uid=24356/; + section=1.2;expire=2006-12-19T16:39:57-08:00;urlauth=anonymous: + internal:238234982398239898a9898998798b987s87920" + (BODYPARTSTRUCTURE ("VIDEO" "MPEG" () NIL NIL "BINARY" 655350)) + (BINARY ~{655350} + S: [ ~655350 octets of binary data, containing NUL octets ]) + S: a002 OK URLFETCH completed. + C: a003 LOGOUT + S: a003 OK LOGOUT completed. + +3.9. Protocol Diagrams + + This section gives examples of using the mechanism described in the + document to stream media from a media server to a client, fetching + the content from an IMAP server. In all of the examples, the IMAP, + SIP, and RTP protocols use the line styles "-", "=", and "+", + respectively. + +3.9.1. Announcement Service Protocol Diagram + + The following diagram shows the protocol interactions between the + email client, the IMAP server, and the media server when the client + uses the announcement service. + + + + + + + + + + + + + + + +Cook Informational [Page 18] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + + Client IMAP Server Media Server + | FETCH (BODYSTRUCTURE) | | + |---------------------------->| | + | OK | | + |<----------------------------| | + | GENURLAUTH | | + |---------------------------->| | + | OK | | + |<----------------------------| | + | | | + | SIP INVITE | + |===========================================================>| + | | | + | | URLFETCH | + | |<-----------------------------| + | | OK | + | |----------------------------->| + | | | + | 200 OK | + |<===========================================================| + | ACK | + |===========================================================>| + | | | + | Stream Message Part (RTP) | + |<+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++| + | | | + | BYE | + |<===========================================================| + | 200 OK | + |===========================================================>| + +3.9.2. IVR Service Protocol Diagram + + The following diagram shows a simplified view of the protocol + interactions between the email client, the IMAP server, and the media + server when the client uses the MSCML IVR service. + + + + + + + + + + + + + + + +Cook Informational [Page 19] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + + Client IMAP Server Media Server + | FETCH (BODYSTRUCTURE) | | + |---------------------------->| | + | OK | | + |<----------------------------| | + | GENURLAUTH | | + |---------------------------->| | + | OK | | + |<----------------------------| | + | | | + | SIP INVITE | + |===========================================================>| + | | | + | 200 OK | + |<===========================================================| + | ACK | + |===========================================================>| + | | | + | SIP INFO (playcollect) | + |===========================================================>| + | | | + | 200 OK | + |<===========================================================| + | | | + | | URLFETCH | + | |<-----------------------------| + | | OK | + | |----------------------------->| + | | | + | Stream Message Part (RTP) | + |<+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++| + | | | + | SIP INFO (e.g., DTMF ff) | + |===========================================================>| + | 200 OK | + |<===========================================================| + | | | + | Continue streaming (RTP) | + |<+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++| + | | | + | (Streaming Ends or is terminated) | + | | | + | SIP INFO (playcollect response) | + |<===========================================================| + | BYE | + |===========================================================>| + | 200 OK | + |<===========================================================| + + + +Cook Informational [Page 20] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + +4. Security Considerations + + This document proposes the use of URLAUTH [URLAUTH] "pawn tickets", + received over IMAP [IMAP], and transmitted over SIP [SIP], possibly + within the MSCML payload of RFC 5022 [MSCML], in order to stream + media received in messages. As such, the security considerations in + all these documents apply to this specification. + + In summary, as the authorized URLs may grant access to data, + implementors of this specification need to consider the following + with respect to the security implications of using IMAP URLs: + + o Use of an anonymous pawn ticket grants access to any client of the + IMAP server without requiring any authentication credentials. The + security mechanisms referenced above (with the caveats specified + below) SHOULD be used to prevent unauthorized access to the pawn + ticket. + + o Use of pawn tickets that contain the "stream" access identifier + restricts access to the content to those entities that are + authorized users of the IMAP server for the purposes of streaming + retrieved content. Use of such pawn tickets is thus desirable and + so implementors should consult Section 3.3, which describes when + such pawn tickets should be used. + + o If the announcement service is used to set up streaming, then RFC + 4240 [NETANN] specifies that the pawn ticket is passed in the + Request-URI, and so untrusted third parties may be able to + intercept the pawn ticket. The SIP communication channel MAY be + secured by using SIPS URIs [SIP], which would provide hop-by-hop + TLS encryption. + + o If the IVR service (RFC 5022 [MSCML]) is used to set up and + control streaming, then MSCML is used to carry the pawn ticket in + the body of the request, and so untrusted third parties may be + able to intercept the pawn ticket. This MAY be secured by using + SIPS URIs [SIP], which would provide hop-by-hop TLS encryption. + + o Using SIPS URIs in the above situations protects the pawn ticket + from third parties; however, it still allows proxies access to the + pawn ticket, which could result in misuse by malicious proxies; + see note below. + + This document describes a mechanism that makes use of two separate + servers to achieve the goal of streaming the content desired by the + client. A major security implication of this is that the media + server and IMAP server may well be located in separate administrative + domains. This leads us to consider the security implications of a + + + +Cook Informational [Page 21] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + + three-way protocol exchange, and the potential trust model implicit + in that tripartite relationship. The security implications of the + individual protocols have already been referenced; therefore, this + section describes the security considerations specific to the three- + way data exchange, as follows: + + o The client grants the media server full access to the potentially + private media content specified by the IMAP URL. As a result, the + client is responsible for verifying the authenticity of the media + server to a degree it finds acceptable for the content (we can + refer to this process as determining the "trust" that the client + has in a particular media server). The security mechanisms + provided by SIP [SIP] and RTP [RTP] may be used for this purpose, + as well as out of band mechanisms such as pre-configuration. + + o However, since the media server will retrieve content from an IMAP + server on the user's behalf, the issue of security between the + IMAP server and the media server also needs to be considered. A + client has no way of determining (programatically at least) the + security of the exchanges between the media server and the IMAP + server. However, it can determine, using the "stream" token that + is part of the media server discovery mechanism described in + Section 3.2, that the media server has a pre-existing + authentication relationship with the IMAP server for the purposes + of retrieving content using IMAP URLs. The IMAP server + administrator may put prerequisites on media server administrator + before this relationship can be established, for example, to + guarantee the security of the communication between the media + server and the IMAP server. + + o The above two security considerations will influence the decision + the client makes with regards to generation of the pawn ticket + that is subsequently passed to the media server. This document + mandates the use of URLs protected with the "stream" access + identifier where the client knows in advance that the "stream" + authentication relationship between media server and IMAP server + exists. However, it does allow the use of anonymous pawn tickets + where the possibility exists that use of "stream" would cause + streaming to fail. + + o There exists the possibility of several types of attack by a + malicious media server, SIP proxy, or other network elements even + against pawn tickets protected with the "stream" access + identifier. All of these attacks allow access to the RTP stream, + if not the original content. These attacks include: + + + + + + +Cook Informational [Page 22] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + + * The client contacts a malicious media server, MS1, that then + proxies the streaming request to a second media server, MS2, + that it has determined or guessed to have "stream" + authorization credentials with the IMAP server specified in the + pawn ticket. The media server can then redirect the streamed + RTP traffic elsewhere. + + * Any proxy on the path between the client and the media server + has access to the client's message in cleartext. In this case, + a malicious proxy could perform a man-in-the-middle attack and + could change the message to redirect RTP traffic elsewhere. + + * Any network element that is able to "see" the traffic between + the client and the media server (or between any two proxies) + can capture the pawn ticket, and then reissue a request using + that pawn ticket to the same media server. Again the streamed + traffic can be redirected to any desired location. + + Media servers handling streaming requests will be making use of pawn- + ticket URLs for the period of time required to process the streaming + request, after which the URL will be forgotten. However, media + servers may log the URLs received from clients, in which case, the + private data contained in the IMAP server could be accessed by a + malicious or curious media server administrator. Even URLs protected + with EXPIRE may be accessed within the period of expiry. Therefore, + media servers SHOULD remove or anonymize the internal portion of the + IMAP URL when logging that URL. + + Additionally, many of the security considerations in the Message + Submission BURL Extension apply to this document, particularly around + the use of pawn tickets and prearranged trust relationships such as + those described above. + + Message parts that are encrypted using mechanisms such as S/MIME + [SMIME] are designed to prevent third parties from accessing the + data, thus media servers will not be able to fulfill streaming + requests for messages parts that are encrypted. + +5. IANA Considerations + + IANA has registered the following [METADATA] server entry to be used + for media server discovery, using the [METADATA] registry. + + + + + + + + + +Cook Informational [Page 23] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + + To: iana@iana.org + + Subject: IMAP METADATA Entry Registration + + Type: Server + + Name: /shared/mediaServers + + Description: Defines a set of URIs containing the locations of + suitable media servers for streaming multimedia content + + Content-type: text/plain; charset=utf-8 + + Contact: neil.cook@noware.co.uk + +6. Digital Rights Management (DRM) Issues + + This document does not specify any Digital Rights Management (DRM) + mechanisms for controlling access to and copying of the media to be + streamed. This is intentional. A reference to a piece of media + content is created using the URLAUTH [URLAUTH] command; thus, any DRM + required should be implemented within the media itself, as + implementing checks within URLAUTH could affect any use of the + URLAUTH command, such as the BURL [BURL] command for message + submission. + + The use of URLAUTH in this specification is believed to be pursuant + with, and used only for, the execution of those rights to be expected + when media is sent via traditional internet messaging, and causes no + duplication of media content that is not essentially provided by the + action of sending the message. In other words, the use of the + content for downloading and viewing *is* implicitly granted by the + sender of the message, in as much as the sender has the right to + grant such rights. + + The document author believes that if DRM is a requirement for + Internet messaging, then a suitable DRM mechanism should be created. + How such a mechanism would work is outside the scope of this + document. + +7. Deployment Considerations + + This document assumes an Internet deployment where there are no + network restrictions between the different components. Specifically, + it does not address issues that can occur when network policies + restrict the communication between different components, especially + between the media server and the IMAP server, and between the client + the media server. In particular, RFC 5022 states that "It is + + + +Cook Informational [Page 24] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + + unlikely, but not prohibited, for end-user SIP UACs to have a direct + signaling relationship with a media server". This caveat makes it + likely that firewalls and other network security mechanisms will be + configured to block direct end-user access to media servers. + + In order for either of the streaming mechanisms described in this + document to work, local administrators MUST relax firewall policies + such that appropriate SIP UACs (user agent clients) running on mobile + devices are permitted to access the media servers directly using the + SIP protocol. The detail of how the restrictions are relaxed (for + example, only allowing clients connecting from the network space + owned/maintained by the operator of the media server) is a matter of + local policy, and so is outside the scope of this document. + +8. Formal Syntax + + The following syntax specification for the mediaServers METADATA + entry value uses the Augmented Backus-Naur Form (ABNF) notation as + specified in RFC 5234 [ABNF] and the "absolute-URI" definition from + RFC 3986 [RFC3986]. + + Except as noted otherwise, all alphabetic characters are case- + insensitive. The use of upper or lower case characters to define + token strings is for editorial clarity only. Implementations MUST + accept these strings in a case-insensitive fashion. + + Copyright (c) 2009 IETF Trust and the persons identified as authors + of the code. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the + distribution. + + - Neither the name of Internet Society, IETF or IETF Trust, nor the + names of specific contributors, may be used to endorse or promote + products derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + + + +Cook Informational [Page 25] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + media-servers = ms-tuple *(";" ms-tuple) + ms-tuple = "<" absolute-URI ">" [":" "stream"] + +9. Contributors + + Eric Burger (eburger@standardstrack.com) provided the initial + inspiration for this document, along with advice and support on + aspects of the media server IVR and announcement services, as well as + help with the IETF process. + + Many people made helpful comments on the document, including Alexey + Melnikov, Dave Cridland, Martijn Koster, and a variety of folks in + the LEMONADE and SIPPING WGs. + +10. References + +10.1. Normative References + + [ABNF] Crocker, D., Ed. and P. Overell, "Augmented BNF for + Syntax Specifications: ABNF", STD 68, RFC 5234, + January 2008. + + [ACCESSID] Cook, N., "Internet Message Access Protocol (IMAP) - URL + Access Identifier Extension", RFC 5593, June 2009. + + [ANONYMOUS] Zeilenga, K., "Anonymous Simple Authentication and + Security Layer (SASL) Mechanism", RFC 4505, June 2006. + + [IMAP] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION + 4rev1", RFC 3501, March 2003. + + [IMAPURL] Melnikov, A., Ed. and C. Newman, "IMAP URL Scheme", + RFC 5092, October 2007. + + [KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, March 1997. + + [METADATA] Daboo, C., "The IMAP METADATA Extension", RFC 5464, + February 2009. + + + +Cook Informational [Page 26] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + + [MIME] Freed, N. and N. Borenstein, "Multipurpose Internet Mail + Extensions (MIME)", RFC 2045, November 1996. + + Freed, N. and N. Borenstein, "Multipurpose Internet Mail + Extensions (MIME) Part Two: Media Types", RFC 2046, + November 1996. + + Moore, K., "MIME (Multipurpose Internet Mail Extensions) + Part Three: Message Header Extensions for Non-ASCII + Text", RFC 2047, November 1996. + + Freed, N. and J. Klensin, "Media Type Specifications and + Registration Procedures", BCP 13, RFC 4288, December + 2005. + + Freed, N. and J. Klensin, "Multipurpose Internet Mail + Extensions (MIME) Part Four: Registration Procedures", + BCP 13, RFC 4289, December 2005. + + Freed, N. and N. Borenstein, "Multipurpose Internet Mail + Extensions (MIME) Part Five: Conformance Criteria and + Examples", RFC 2049, November 1996. + + [MSCML] Van Dyke, J., Burger, E., Ed., and A. Spitzer, "Media + Server Control Markup Language (MSCML) and Protocol", + RFC 5022, September 2007. + + [NETANN] Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network + Media Services with SIP", RFC 4240, December 2005. + + [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform + Resource Identifier (URI): Generic Syntax", STD 66, + RFC 3986, January 2005. + + [RTP] Schulzrinne, H., Casner, S., Frederick, R., and V. + Jacobson, "RTP: A Transport Protocol for Real-Time + Applications", STD 64, RFC 3550, July 2003. + + [SDP] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session + Description Protocol", RFC 4566, July 2006. + + [SIP] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, + A., Peterson, J., Sparks, R., Handley, M., and E. + Schooler, "SIP: Session Initiation Protocol", RFC 3261, + June 2002. + + [TLS] Dierks, T. and E. Rescorla, "The Transport Layer Security + (TLS) Protocol Version 1.2", RFC 5246, August 2008. + + + +Cook Informational [Page 27] + +RFC 5616 Streaming Internet Messaging Attachments August 2009 + + + [URLAUTH] Crispin, M., "Internet Message Access Protocol (IMAP) - + URLAUTH Extension", RFC 4467, May 2006. + + [URLFETCH_BINARY] + Cridland, D., "Extended URLFETCH for Binary and Converted + Parts", RFC 5524, May 2009. + +10.2. Informative References + + [BURL] Newman, C., "Message Submission BURL Extension", + RFC 4468, May 2006. + + [SMIME] Ramsdell, B., Ed., ""Secure/Multipurpose Internet Mail + Extensions (S/MIME) Version 3.1 Message Specification"", + RFC 3851, July 2004. + +Author's Address + + Neil L Cook + Cloudmark + + EMail: neil.cook@noware.co.uk + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Cook Informational [Page 28] + |