RFC 4483
A Mechanism for Content Indirection in Session Initiation Protocol (SIP) Messages
RFC 4483: A Mechanism for Content Indirection in Session Initiation Protocol (SIP) Messages ๐ Part 1 of 3
Okay bestie, this one comes from the Network Working Group ๐. The editor is E. Burger, Ed., from Cantata Technolgy, Inc. It's a Standards Track doc dated May 2006 โจ. The title block doesn't list anything it obsoletes or updates, so it stands on its own ๐ฆ.
Status of This Memo ๐
This document specifies an Internet standards track protocol for the Internet community, and it's basically asking for discussion and suggestions for improvements ๐ฌ. If you want the current standardization state and status of this protocol, check the current edition of the "Internet Official Protocol Standards" (STD 1) ๐. Distribution of this memo is unlimited ๐.
Copyright Notice ยฉ๏ธ
Copyright (C) The Internet Society (2006).
Abstract โจ
This document defines an extension to the URL MIME External-Body Access-Type to satisfy the content indirection requirements for the Session Initiation Protocol (SIP) ๐ฅ. The whole point is letting any MIME part in a SIP message be referred to indirectly via a URI ๐ฆ.
Table of Contents ๐๏ธ
1. Introduction ....................................................2
2. Terminology .....................................................3
3. Use Case Examples ...............................................3
3.1. Presence Notification ......................................4
3.2. Document Sharing ...........................................4
4. Requirements ....................................................5
5. Application of RFC 2017 to the Content Indirection Problem ......6
5.1. Specifying Support for Content Indirection .................6
5.2. Mandatory support for HTTP URI .............................7
5.3. Rejecting Content Indirection ..............................7
5.4. Specifying the Location of the Content via a URI ...........7
5.5. Marking Indirect Content Optional ..........................7
5.6. Specifying Versioning Information for the URI ..............8
5.7. Specifying the URI Lifetime ................................8
5.8. Specifying the type of the Indirect Content ................8
5.9. Specifying the Size of the Indirect Content ................9
5.10. Specifying the Purpose of the Indirect Content ............9
5.11. Specifying Multiple URIs for Content Indirection .........10
5.12. Specifying a Hash Value for the Indirect Content .........10
5.13. Supplying Additional Comments about the Indirect
Content ..................................................11
5.14. Relationship to Call-Info, Error-Info, and
Alert-Info Headers .......................................11
6. Examples .......................................................12
6.1. Single Content Indirection ................................12
6.2. Multipart MIME with Content Indirection ...................12
7. Security Considerations ........................................13
8. Contributions ..................................................15
9. Acknowledgements ...............................................15
10. References ....................................................15
10.1. Normative References .....................................15
10.2. Informative Reference ....................................16
1. Introduction ๐ธ
Okay so SIP, the Session Initiation Protocol [9], is all about creating, modifying, or terminating sessions with one or more participants ๐. SIP messages are kinda like HTTP messages in shape: they're built from a start line, one or more headers, and an optional body ๐งฉ. The big difference is that SIP is not designed to be a general-purpose data transport protocol ๐ โโ๏ธ.
There are lots of reasons you might want the SIP message body to be specified indirectly ๐. On bandwidth-limited stuff like cellular wireless, indirection lets you attach metadata to the indirect content, so the recipient can decide whether it's worth pulling the content over a resource-limited link ๐ฑ.
It's also possible that the content is too big and would overwhelm intermediate signaling proxies, which unnecessarily adds network latency ๐ฉ. For time-sensitive SIP apps, that's a no-go ๐ โโ๏ธ. Indirect content fixes this by moving the transfer out of the SIP signaling network and into a potentially separate data transfer channel ๐.
Another scenario: the session-related data (body) you need to send doesn't actually live on the endpoint or User Agent ๐บ๏ธ. In that case, it's really useful for the SIP message to carry an indirect reference to the content, so the receiver can grab it over a non-SIP transfer channel like HTTP, FTP, or LDAP ๐.
Here's the key vibe: content indirection exists purely to give SIP MIME body parts an alternative transport mechanism ๐ . Apart from the transport mechanism, indirect body parts are equivalent to, and should have the same treatment as, in-line body parts ๐ซถ.
Previous attempts at this problem used the text/uri-list [6] MIME type ๐. It's super simple (a list of URIs separated by end-of-line markers), but it failed to meet a bunch of the requirements for a more general-purpose content indirection mechanism in SIP ๐ญ. The biggest miss is that you couldn't attach attributes on a per-URI basis, like version information or the MIME type of the referenced content ๐.
RFC 2017 is a strong candidate to replace text/uri-list ๐ฅ. RFC 2017 [1] extends the message/external-body MIME type that was originally defined in RFC2046 [3]. The extension lets a generic URI specify where the content is, instead of the protocol-specific parameters for FTP and so on that RFC2046 originally used ๐. It covers most of what a SIP content indirection mechanism needs, but RFC 2017 by itself isn't a complete solution ๐ง. This document specifies how to use RFC 2017 to meet the content indirection requirements โจ.
The requirements apply either to the URI that indirectly references the desired content, or to the content itself ๐ฏ. Where possible, existing MIME parameters and entity headers get reused ๐. MIME (Content-Type) parameters are the preferred way to describe the URI, and entity headers are the preferred way to describe the (indirect) content ๐โโ๏ธ. For a description of most of these entity headers and MIME parameters, see RFC 2045 [2] ๐.
2. Terminology ๐ค
RFC 2119 [5] defines the keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL". ๐ง
3. Use Case Examples ๐ก
There are several examples of the content indirection mechanism in action ๐ฌ. These are just examples, though, and they're not meant to limit the scope or applicability of the mechanism ๐.
3.1. Presence Notification ๐
The info in a presence document could go over the recommended size for a SIP (NOTIFY) request, especially if the document aggregates info from multiple endpoints ๐. In that situation, it would be nice to send the NOTIFY request with an indirect pointer to the presence document, which the watcher could then fetch with something like HTTP ๐.
Watcher Presence Server
| |
| SUBSCRIBE |
|-------------------------->|
| 200 OK |
|<--------------------------|
| |
| NOTIFY |
|<--------------------------|
| 200 OK |
|-------------------------->|
| |
| NOTIFY (w/URI) |
|<--------------------------|
| 200 |
|-------------------------->|
| |
| HTTP GET |
|-------------------------->|
| |
| application/cpim-pidf+xml |
|<--------------------------|
| |
In this example, the presence server returns an HTTP URI pointing to a presence document on the presence server ๐ช. The watcher then fetches it with an HTTP GET ๐ซง.
3.2. Document Sharing ๐
During an instant messaging conversation, a handy service is document sharing ๐ฌ. One party sends an IM (MESSAGE request) with an indirect pointer to a document that the remote party is meant to render ๐ผ๏ธ. Stuffing that document right into the MESSAGE request isn't a good use of the signaling channel ๐ โโ๏ธ. Plus, the document might live on a completely independent server from the originating party's server ๐ .
UAC UAS Web Server
(User Agent (User Agent |
Client) Server) |
| | |
| MESSAGE w/URI | |
|------------------->| |
| 200 | |
|<-------------------| |
| | |
| | HTTP GET |
| |--------------->|
| | image/jpeg |
| |<---------------|
| | |
In this example, user UAC wants to share a JPEG image she has stored on her web server with user UAS, who she's chatting with over IM ๐ธ. She wants the JPEG to render inline in the conversation ๐ฅฐ. The recipient of the MESSAGE request launches an HTTP GET request to the web server to grab the JPEG image ๐ฆโจ.
4. Requirements ๐
okay bestie, this is the wishlist section ๐ซถ every bullet is something the mechanism has to be able to do. let's go ๐
- Location: it MUST be possible to point at the content with a URI, and those URIs MUST conform with RFC2396 [7].
- Length: it MUST be possible to say how long the indirect content is.
- Type: it MUST be possible to say what type the indirect content is.
- Disposition: it MUST be possible to set the disposition of each URI independently ๐ธ
- Labels: it MUST be possible to label each URI so you can tell if and when the content behind it has changed ๐ฆ applications may send the same URI more than once. the whole point is that the receiver can check if the content changed without fetching it. labels could be a sequence number, a timestamp, or a version number. with HTTP, the entity-tag (ETAG) mechanism from RFC2068 [4] may be a good fit. and note that we're labeling the content, not the URI itself, so the label is basically metadata of the content ๐ง
- Time span: it MUST be possible to say how long a given URI is valid. that might or might not match how long the content itself lives โณ
- Support signalling: it MUST be possible for the UAC and the UAS to show they support this content indirection mechanism. a fallback mechanism SHOULD be specified for when one side can't do indirection ๐ซถ
- Type negotiation: it MUST be possible for the UAC and UAS to negotiate the type of the indirect content ๐
- Scheme negotiation: it MUST be possible for the UAC and UAS to negotiate support for any URI scheme used in the mechanism. that's on top of negotiating content type ๐
- Integrity and confidentiality: it SHOULD be possible to make sure the URI keeps its integrity and confidentiality when the remote party gets it ๐
- No humans: it MUST be possible to process the content indirection without human intervention ๐ค
- Any SIP message: it MUST allow indirect transference of content in any SIP message that would otherwise carry that content as a body โจ
5. Application of RFC 2017 to the Content Indirection Problem ๐ฆ
this section is where the rules get real. it's how RFC 2017 gets applied to the content indirection problem.
The following text describes the application of RFC 2017 to the requirements for content indirection.
5.1. Specifying Support for Content Indirection ๐
a UAC or UAS says it can do content indirection by putting message/external-body in its Accept header. it MAY add more values to the Accept header to list other content types it's willing to take, either directly or through indirection. and User-Agents that support content indirection MUST support content indirection of the application/sdp MIME type. no skipping SDP, bestie ๐ โโ๏ธ
For example:
Accept: message/external-body, image/*, application/sdp
5.2. Mandatory support for HTTP URI ๐
apps using this mechanism MUST support the HTTP URI scheme. other URI schemes MAY be used too, but a UAC/UAS MUST support receiving an HTTP URI for indirect content if it advertises support for content indirection. HTTP is the baseline, it's giving "always there for you" ๐
the UAS MAY advertise alternate access schemes in the schemes parameter of the Contact header. that goes in its response to the UAC's session establishment request (like an INVITE or a SUBSCRIBE), as described in RFC 3840 [11] ๐
5.3. Rejecting Content Indirection ๐ โโ๏ธ
if a UAS gets a SIP request with a content indirection payload and it can't or doesn't want to support that content type, it MUST reject the request with a 415 Unsupported Media Type response, as defined in section 21.4.13 of SIP [9]. the UAC should notice that message/external-body is missing from the Accept header of that response, which tells it the UAS doesn't do content indirection. or if the specific MIME type of the requested comment is missing, the UAS just doesn't support that particular media type ๐ซ
5.4. Specifying the Location of the Content via a URI ๐
the URI for the indirect content goes in a "URI" parameter of the message/external-body MIME type. an access-type parameter says the external content is referenced by a URI. and HTTP URI specifications MUST conform to RFC 2396 [7] ๐
For example:
Content-Type: message/external-body; access-type="URL";
URL="http://www.example.com/the-indirect-content"
5.5. Marking Indirect Content Optional ๐คทโโ๏ธ
some content isn't critical to the vibe of the communication, so if the fetch or conversion fails, that's fine. the content indirection mechanism uses the Critical-Content mechanism from RFC 3459 [10]. basically, if the UAS can't fetch or render an optional body part, then it MUST NOT return an error to the UAC. no drama, no 500s over optional stuff ๐
5.6. Specifying Versioning Information for the URI ๐ท๏ธ
so the receiver can tell if the content behind a URI has changed, a Content-ID entity header gets used. its syntax is defined in RFC 2045 [2]. any change in the underlying content MUST result in a change in the Content-ID tied to that URI. SIP messages that carry URIs pointing at the same content SHOULD reuse the same Content-ID, so the receiver can cache it and skip pointless retrievals ๐ง the Content-ID is meant to be globally unique, and it SHOULD be temporally unique across SIP dialogs too. so smart ๐ง
For example:
Content-ID: <4232423424@www.example.com>
5.7. Specifying the URI Lifetime โณ
the URI from the Content-Type header doesn't have to be reachable or valid forever. the supplier of the URI MUST specify the time period during which the URI is valid and accessible. that goes in an "EXPIRATION" parameter of the Content-Type. the format is an RFC 1123 [12] date-time value, and this application only allows GMT, to match the Date: header in SIP. this one's a mandatory parameter, no cap. the date-time can be minutes, days, or even years away ๐ฐ๏ธ
For example:
Content-Type: message/external-body;
expiration="Mon, 24 June 2002 09:00:00 GMT"
5.8. Specifying the type of the Indirect Content ๐จ
to play nicely with SIP's existing content type negotiation, a Content-Type entity header SHOULD be present in the entity (payload) itself. if the URI's scheme has its own content negotiation (like HTTP), this header may be left out. but the sender MUST, however, be ready for the receiver to reject content indirection if it can't negotiate an appropriate MIME type through the underlying protocol for that URI scheme. be prepared, bestie ๐ญ
For example:
Content-Type: message/external-body; access-type="URL";
expiration="Mon, 24 June 2002 09:00:00 GMT";
URL="http://www.example.com/the-indirect-content"
<CRLF>
Content-Type: application/sdp
Content-Disposition: session
<CRLF>
5.9. Specifying the Size of the Indirect Content ๐
when the size is known ahead of time, the size of the indirect content in bytes SHOULD be given in a size parameter on the Content-Type header. this extends RFC 2017, but it matches the other access types defined for message/external-body in RFC 2046 โจ the receiver uses the size to decide whether it even wants to fetch the content. just like with directly supplied content, a UAS may send back a 513 error response if the content is too large. size is an optional parameter ๐
For example:
Content-Type: message/external-body; access-type="URL";
expiration="Mon, 24 June 2002 09:00:00 GMT";
URL="http://www.example.com/the-indirect-content";
size=4123
5.10. Specifying the Purpose of the Indirect Content ๐ฏ
a Content-Disposition entity header MUST be present for all indirect content. no exceptions, it's the purpose tag ๐ท๏ธ
For example:
Content-Type: message/external-body; access-type="URL";
expiration="Mon, 24 June 2002 09:00:00 GMT";
URL="http://www.example.com/the-indirect-content"
<CRLF>
Content-Type: image/jpeg
Content-Disposition: render
5.11. Specifying Multiple URIs for Content Indirection ๐ฆ
if you need to send several URIs for content indirection, an appropriate multipart MIME type [3] should be used. each URI MUST be contained in a single entity. indirect content can be mixed with directly-supplied content too, which is especially handy with multipart/alternative ๐ธ
NOTE: This specification does not change the meanings of the various multipart flavors, particularly multipart/related, as described in RFC 2387 [13].
For example:
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=boundary42
--boundary42
Content-Type: text/plain; charset=us-ascii
The company announcement for June, 2002 follows:
--boundary42
Content-Type: message/external-body;
access-type="URL";
expiration="Mon, 24 June 2002 09:00:00 GMT";
URL="http://www.example.com/announcements/07242002";
size=4123
Content-Type: text/html
Content-Disposition: render
--boundary42--
5.12. Specifying a Hash Value for the Indirect Content ๐
if the sender knows exactly which content is being referenced, and wants the recipient to be able to check that nothing was changed from what the sender intended, the sender includes a SHA-1 [8] hash of the content. when it's included, the hash is encoded by extending the MIME syntax [3] with a "hash" parameter for the content type "message/external-body", whose value is a hexadecimal encoding of the hash. integrity check energy ๐ก๏ธ
For example:
Content-Type: message/external-body;
access-type="URL";
expiration="Mon, 24 June 2002 09:00:00 GMT";
URL="http://www.example.com/the-indirect-content.au";
size=52723;
hash=10AB568E91245681AC1B
<CRLF>
Content-Disposition: render
5.13. Supplying Additional Comments about the Indirect Content ๐ฌ
One MAY use the Content-Description entity header to add optional, freeform text commenting on the indirect content. that text MAY be shown to the end user, but it MUST NOT used by other elements to determine the disposition of the body. so it's for the humans, not the machines ๐
For example:
Content-Type: message/external-body;
access-type="URL";
expiration="Mon, 24 June 2002 09:00:00 GMT";
URL="http://www.example.com/the-indirect-content";
size=52723
<CRLF>
Content-Description: Multicast gaming session
Content-Disposition: render
5.14. Relationship to Call-Info, Error-Info, and Alert-Info Headers โจ
okay so SIP [9] has three headers that carry extra info about a session, a particular error response, or alerting ๐ all three let the UAC or UAS point at extra info through a URI ๐ bestie, that's basically a form of content indirection ๐ฆ BUT this document's mechanism is NOT meant to replace them ๐ โโ๏ธ the headers defined in SIP MUST be used in preference to this mechanism, where applicable, because they have well-defined semantics ๐ main character energy goes to the SIP headers here, periodt ๐
6. Examples ๐ง
6.1. Single Content Indirection ๐ธ
INVITE sip:boromir@example.com SIP/2.0
From: <sip:gandalf@example.net>;tag=347242
To: <sip:boromir@example.com>
Call-ID: 3573853342923422@example.net
CSeq: 2131 INVITE
Accept: message/external-body application/sdp
Content-Type: message/external-body;
ACCESS-TYPE=URL;
URL="http://www.example.net/party/06/2002/announcement";
EXPIRATION="Sat, 20 Jun 2002 12:00:00 GMT";
size=231
Content-Length: 105
Content-Type: application/sdp
Content-Disposition: session
Content-ID: <4e5562cd1214427d@example.net>
6.2. Multipart MIME with Content Indirection ๐
MESSAGE sip:boromir@example.com SIP/2.0
From: <sip:gandalf@example.net>;tag=34589882
To: <sip:boromir@example.com>
Call-ID: 9242892442211117@example.net
CSeq: 388 MESSAGE
Accept: message/external-body, text/html, text/plain,
image/*, text/x-emoticon
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=zz993453
--zz993453
Content-Type: message/external-body;
access-type="URL";
expiration="Mon, 24 June 2002 09:00:00 GMT";
URL="http://www.example.net/company_picnic/image1.png";
size=234422
Content-Type: image/png
Content-ID: <9535035333@example.net>
Content-Disposition: render
Content-Description: Kevin getting dunked in the wading pool
--zz993453
Content-Type: message/external-body;
access-type="URL";
expiration="Mon, 24 June 2002 09:00:00 GMT";
URL="http://www.example.net/company_picnic/image2.png";
size=233811
Content-Type: image/png
Content-ID: <1134299224244@example.net>
Content-Disposition: render
Content-Description: Peter on his tricycle
--zz993453--
7. Security Considerations ๐จ
okay bestie, listen up because this section is SERIOUS ๐ญ any content indirection mechanism adds extra security concerns ๐ it needs an extra processing step and extra info transfer, and there are a bunch of potential abuses:
- Content indirection lets the initiator pick a different protocol with weaker security or known vulnerabilities for the content transfer (for example, asking the recipient to make an HTTP request that gets a Basic authentication challenge) ๐
- Content indirection lets the initiator make the recipient burn extra resources during the information transfer and content processing, which could open a door to denial-of-service attacks (for example, an active FTP URL eating 2 connections for every indirect content message) ๐ฅ
- Content indirection could be used as a port-scanning attack, where the indirect content URL is actually a bogus URL pointing at an internal resource of the recipient ๐ต๏ธโโ๏ธ the response to the content indirection request could reveal info about open (and vulnerable) ports on those internal resources ๐ฑ
- A content indirection URL can disclose sensitive info about the initiator, like an internal user name (as part of an HTTP URL) or possibly geolocation info ๐
ngl the good news is all of these threats can be mitigated through careful screening of both the indirect content URIs that are received and those that are sent ๐ซถ integrity and confidentiality protection of the indirect content URI can prevent extra attacks too โจ
for confidentiality, integrity, and authentication, this mechanism relies on the security mechanisms outlined in RFC 3261 ๐ specifically, the usage of S/MIME as defined in section 23 of RFC 3261 gives the necessary mechanism to ensure integrity, protection, and confidentiality of the indirect content URI and associated parameters ๐
securing the transfer of the indirect content is the responsibility of the underlying protocol used for this transfer ๐ if HTTP is used, applications implementing this method SHOULD support the HTTPS URI scheme for secure transfer of content and MUST support upgrading connections to TLS, by using starttls ๐ > heads up: a failure to complete HTTPS or starttls (for example, due to certificate or encryption mismatch) after accepting the indirect content in the SIP request is NOT the same as rejecting the SIP request, and it may need extra user-user communication to fix ๐
note that this document does NOT advocate transitive trust ๐ซ just because the UAS gets a URI from a UAC that it trusts, the UAS SHOULD NOT implicitly trust the object the URI refers to without establishing its own trust relationship with the URI provider ๐
access control to the content referenced by the URI is NOT defined by this specification ๐ access control mechanisms may be defined by the protocol for the scheme of the indirect content URI ๐ง
if the UAC knows the content in advance, the UAC SHOULD include a hash parameter in the content indirection ๐ the hash parameter is a hexadecimal-encoded SHA-1 [8] hash of the indirect content ๐ if a hash value is included, the recipient MUST check the indirect content against that hash and indicate any mismatch to the user ๐ซถ
in addition, if the hash parameter is included and the target URI involves setting up a security context using certificates, the UAS MUST ignore the results of the certificate validation procedure, and instead verify that the hash of the (canonicalized) content received matches the hash presented in the content-indirection hash parameter ๐ธ yes, that's a lot of MUSTs, iykyk ๐ญ
if the hash parameter is NOT included, the sender SHOULD use only schemes that offer message integrity (such as https:) ๐ when the hash parameter is not included and security using certificates is used, the UAS MUST verify any server certificates, using the UAS's list of trusted top-level certificate authorities ๐
if hashing of indirect content is not used, the content returned to the recipient by exercise of the indirection might have been altered from what the sender intended ๐ yikes, hash it, bestie ๐ฆ
8. Contributions ๐
Sean Olson, seanol@microsoft.com, provided the vast majority of the content of this document, including editorship through the first IESG review ๐ Dean Willis touched it next ๐ซถ
Eric Burger edited the document and addressed IESG comments, including the access protocol negotiation mechanism ๐
9. Acknowledgements ๐ท
Cullen Jennings and Nancy Greene provided a through review and valuable comments and suggestions ๐
10. References ๐
10.1. Normative References ๐
[1] Freed, N. and K. Moore, "Definition of the URL MIME External-
Body Access-Type", RFC 2017, October 1996.
[2] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
Extensions (MIME) Part One: Format of Internet Message Bodies",
RFC 2045, November 1996.
[3] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
Extensions (MIME) Part Two: Media Types", RFC 2046, November
1996.
[4] Fielding, R., Gettys, J., Mogul, J., Nielsen, H., and T.
Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC
2068, January 1997.
[5] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.
[6] Daniel, R., "A Trivial Convention for using HTTP in URN
Resolution", RFC 2169, June 1997.
[7] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifiers (URI): Generic Syntax", STD 66, RFC 3986,
January 2005.
[8] Eastlake, D. and P. Jones, "US Secure Hash Algorithm 1 (SHA1)",
RFC 3174, September 2001.
[9] 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.
[10] Burger, E., "Critical Content Multi-purpose Internet Mail
Extensions (MIME) Parameter", RFC 3459, January 2003.
[11] Rosenberg, J., Schulzrinne, H., and P. Kyzivat, "Indicating
User Agent Capabilities in the Session Initiation Protocol
(SIP)", RFC 3840, August 2004.
[12] Braden, R., "Requirements for Internet Hosts - Application and
Support", STD 3, RFC 1123, October 1989.
10.2. Informative Reference ๐งธ
[13] Levinson, E., "The MIME Multipart/Related Content-type", RFC
2387, August 1998.
Author's Address ๐ฎ
Eric Burger (editor)
Cantata Technolgy, Inc.
EMail: eburger@cantata.com
URI: http://www.cantata.com
Full Copyright Statement โ๏ธ
Copyright (C) The Internet Society (2006).
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 provided by the IETF Administrative Support Activity (IASA).
๐ฆ where this page comes from
- ietf: rfc4483 2006-05
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms