SIP J. Rosenberg
Internet-Draft Cisco
Intended status: Standards Track February 15, 2008
Expires: August 18, 2008
Session Based Trivial Object Transfer and Exchange (TOTE)
draft-rosenberg-sip-tote-00
Status of this Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on August 18, 2008.
Copyright Notice
Copyright (C) The IETF Trust (2008).
Abstract
This document defines a simple protocol - Trivial Object Transfer and
Exchange (TOTE) - that provides bidirectional exchange of MIME
objects over a TCP connection. It is used in conjunction with
protocols based on the offer/answer model, such as the Session
Initiation Protocol (SIP). TOTE can be used for any application
requiring direct agent-to-agent data communication, such as picture
exchange or camera controls.
Rosenberg Expires August 18, 2008 [Page 1]
Internet-Draft TOTE February 2008
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Overview of Operation . . . . . . . . . . . . . . . . . . . . 4
3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5
4. Purpose Tokens . . . . . . . . . . . . . . . . . . . . . . . . 5
5. Offer-Answer Procedures . . . . . . . . . . . . . . . . . . . 6
5.1. Offerer Procedures . . . . . . . . . . . . . . . . . . . . 7
5.2. Answerer Procedures . . . . . . . . . . . . . . . . . . . 7
6. Session Management . . . . . . . . . . . . . . . . . . . . . . 8
7. Sending and Receiving Messages . . . . . . . . . . . . . . . . 8
8. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 9
8.1. SDP Extensions . . . . . . . . . . . . . . . . . . . . . . 9
8.2. TOTE Message Syntax . . . . . . . . . . . . . . . . . . . 10
9. Possible Purposes . . . . . . . . . . . . . . . . . . . . . . 11
9.1. Session Mode IM . . . . . . . . . . . . . . . . . . . . . 11
9.2. Shared Browsing . . . . . . . . . . . . . . . . . . . . . 11
9.3. Forms and Application Interaction . . . . . . . . . . . . 11
9.4. Conference Controls . . . . . . . . . . . . . . . . . . . 12
9.5. Picture Sharing . . . . . . . . . . . . . . . . . . . . . 12
10. Security Considerations . . . . . . . . . . . . . . . . . . . 13
11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13
11.1. TOTE Purpose Registry . . . . . . . . . . . . . . . . . . 13
11.2. SDP Transport Protocol . . . . . . . . . . . . . . . . . . 14
11.3. SDP Attribute Names . . . . . . . . . . . . . . . . . . . 14
11.3.1. Send Purposes . . . . . . . . . . . . . . . . . . . . 14
11.3.2. Receive Purposes . . . . . . . . . . . . . . . . . . 14
12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 15
13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 15
13.1. Normative References . . . . . . . . . . . . . . . . . . . 15
13.2. Informative References . . . . . . . . . . . . . . . . . . 16
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 16
Intellectual Property and Copyright Statements . . . . . . . . . . 17
Rosenberg Expires August 18, 2008 [Page 2]
Internet-Draft TOTE February 2008
1. Introduction
The Session Initiation Protocol (SIP) [RFC3261] allows for the
establishment, management, and termination of interactive sessions
between user agents. These sessions are often used for the exchange
of real time media, such as voice, video or text, using protocols
such as the Real Time Transport Protocol (RTP).
Oftentimes, there is a need for agents to exchange non-real time
application data as part of a communications session. Examples of
such data include:
Camera Controls: Video conferencing systems often allow a
participant in the session to control the camera on the far end of
the call. This allows them to pan, tilt and zoom in order to see
the person or people they are talking to.
Pictures: During a voice call, a user can snap a picture and send it
to the other participant in the call. This requires a mechanism
to transfer the picture from one end to the other.
Game Moves: Users engaging in a real time game may need to exchange
game moves in addition to having a voice/video chat in concert
with the game.
SIP provides three general purpose mechanisms that allow a pair of
agents to communicate data during a session. These are:
Subscription: One user agent can send a SUBCRIBE request to the
other, using an event package specific to the application data
that is desired. This subscription is ideally done as part of a
separate dialog. This technique is recommended for application
interaction, and is described in
[I-D.ietf-sipping-app-interaction-framework].
Media: A user agent can use SIP to set up another media session
whose purpose is to carry the application specific data.
INFO: A user agent can send the data in a SIP INFO message along the
existing SIP dialog. This technique is described in
[I-D.kaplan-sip-info-events].
Currently, there is no general purpose protocol that allows agents to
set up a media session for the exchange of application data. This
specification fills that need. It defines a protocol called Trivial
Object Transfer and Exchange (TOTE). TOTE is a TCP-based protocol
that provides framing and content-typing. This specification also
defines parameters for the Session Description Protocol (SDP)
Rosenberg Expires August 18, 2008 [Page 3]
Internet-Draft TOTE February 2008
[RFC4566] so that TOTE sessions can be established using protocols
based on the offer/answer model [RFC3264], such as SIP. These SDP
extensions allow agents to negotiate the "purpose" of TOTE session,
along with supported MIME types. The "purpose" is a parameter that
operates similarly to the INFO events defined in
[I-D.kaplan-sip-info-events].
2. Overview of Operation
An agent wishing to establish a TOTE session includes a "message"
media line in an SDP offer. This m-line indicates that the messaging
session uses TOTE over TCP or TLS over TCP (TOTE is defined only for
TCP or TLS/TCP). The m-line also includes a list of "purpose"
parameters that the agent wishes to receive or wishes to send. TOTE
sessions can be established before there is a need to actually send
or receive data, or on-demand at the time the exchange is desired.
Typically the agent that wishes to send will initiate the offer for
the session.
The answerer includes the list of "purpose" parameters it wishes to
send or receive. These need not be the inverse of those in the
offer; the agent can indicate that it can receive with "purpose"
values for which there was no corresponding send value in the offer,
and vice-a-versa. This allows easy usage with third-party call
control.
TOTE itself involves a direct TCP connection established between
agents. All TOTE implementations support at least the lite version
of Interactive Connectivity Establishment (ICE) for TCP
[I-D.ietf-mmusic-ice-tcp]. ICE-tcp negotiates the directionality of
connection establishment and provides firewall and NAT traversal.
Secure TOTE is provided using [RFC4572].
The TOTE message itself is lightweight. It consists of a length, a
purpose token, a MIME content type, a CRLF, and then the actual
content. An example TOTE message is:
l:7655
p:pic
t:image/jpg
BINARY-IMAGE-DATA
Figure 1: Example TOTE Message
Rosenberg Expires August 18, 2008 [Page 4]
Internet-Draft TOTE February 2008
This message indicates that it is 7655 bytes long. Its purpose is
"pic", which is used to exchange pictures for the purposes of image
sharing in a communications session. Purpose tokens can either be
global, using values registered through an IANA process, or can be
vendor proprietary using vendor tags, like com.example.vendortag2.
The content type is image/jpg, and the message contents are the
binary image data. TOTE messages look similar to MIME and SIP and
can be parsed using their parsers, but the syntax is a subset
designed for low overhead.
3. Terminology
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 [RFC2119].
4. Purpose Tokens
The purpose token plays an important role in TOTE. It conveys the
context in which the exchange content is to be interpreted. If the
content-type answers the question, "what", the purpose token answers
the question "why". The purpose value tells a sender or recipient
what it needs to do with the content it receives - how and if to
render it, process it, store it, and so on.
As an example, the "bizcard" purpose token signifies that the content
is being exchanged in order to convey contact information for the
user. This knowledge allows a receiver to know that it should prompt
the user and ask if the data should be imported, to render it to the
user, and to allow a user to edit it. A particular purpose can be
supported by a multiplicity of content types, and more importantly, a
single content type could be used for many purposes. HTML is a good
example of this. When it contains the hCard attributes in its
elements, it can be used in conjunction with the "bizcard" purpose.
It could also be used for a "form-entry" purpose, which could be used
to push forms to a user for entry, rather than DTMF.
A purpose token can also be used to signal communication that goes
beyond just object passing, but represents a full-blown protocol
running between agents. For example, imagine that SOAP methods are
developed to implement a shared whiteboard function. A purpose token
called "whiteboard" could be used in conjunction with the content-
type "application/soap". The agents can then run the SOAP-based
protocol over TOTE in order to implement the whiteboard.
Purpose tokens exist in one of two namespaces. The global namespace
Rosenberg Expires August 18, 2008 [Page 5]
Internet-Draft TOTE February 2008
is a flat namespace, managed by IANA. New purpose tokens are added
to this namespace based on IETF consensus [RFC2434]. These tokens
are meant for common applications for which formal standardization is
desired. The other namespace is the vendor namespace. This
namespace is unmanaged. Vendors or other organizations can define
tokens by taking their domain name, reversing the order, and
appending additional tokens that signify the purpose. For example,
the example.com domain has complete control over the com.example
namespace, and can utilize purpose tokens like com.example.foo at its
discretion.
It is possible that purpose values that are defined initially in the
vendor namespace become sufficiently common and successful that there
is a desire to formalize the value and standardize it. In that case,
based on IETF consensus, the vendor token can be registered in the
global namespace.
Whether in the global namespace or the vendor namespace, each purpose
has to specify the following:
Baseline content type: Each purpose MUST specify a mandatory-to-
implement content type for use with that purpose. This ensures a
basic level of interoperability. Depending on the content type,
the purpose may also need to specify details on format of that
object, or usage of it, if the object is actually a protocol.
Additional content types: Each purpose MUST specify whether there
are additional content types that can be utilized for this
purpose, and if so, what they are. A purpose can be extended at a
later time by simply declaring support for additional types. Note
that, within a purpose token, the content-type has to uniquely
define what is to be sent and received. If two objects can be
exchanged for a particular purpose but would otherwise have
identical content types (for example, differently formatted text/
plain messages), a new content type MUST be defined for one of
them.
Semantics: Each purpose MUST clearly define what its used for. The
definition must be sufficiently clear to allow an implementation
to decide whether to render the object, what kind of UI to apply,
how and where to store the object, how to process it, and so on.
5. Offer-Answer Procedures
Rosenberg Expires August 18, 2008 [Page 6]
Internet-Draft TOTE February 2008
5.1. Offerer Procedures
An agent MAY send an offer at any time to add a tote session, remove
a tote session, or modify a tote session. Removing a tote session is
done by setting the port in the SDP m-line to zero, as is done for
other media types as defined in [RFC3264].
A tote offer MUST utilize the "message" media type in the m-line, as
defined in [RFC4566]. The port MUST be set as defined in
[I-D.ietf-mmusic-ice-tcp], and the protocol MUST be "TOTE" for TOTE
over TCP, or "TOTES" for TOTE over TCP/TLS. All agents MUST
implement both TOTE and TOTES. However, the offerer MAY elect to use
either. The format list MUST be "*".
A single TOTE session corresponds to a single connection (possibly
through a relay) between agents. A single TOTE session can support a
multiplicity of purposes. However, if a purpose represents a
significant amount of data, such that head-of-line blocking might
occur between purposes, an agent SHOULD utilize a separate TOTE
session for that purpose.
The offerer MUST include one or more send-purp attributes and MUST
include one or more recv-purp attributes. Each attribute contains a
single purpose name, followed by a list of MIME content types that
the agent supports for sending or receiving with that purpose
parameter. This list MUST include the baseline mandatory content
type for that purpose. For example:
a=send-purp:pic image/jpg image/tiff
a=recv-purp:pic image/jpg
a=recv-purp:bizcard text/x-vcard text/html
This indicates that the agent supports the "pic" purpose, to both
send and receive, and the "bizcard" purpose, receiving only. For
"bizcard", used to exchange contact information in a session, the
agent supports the classic vcard format as well as the HTML
microformat, also known as hCard.
5.2. Answerer Procedures
An agent receiving an offer with an m=message line including the
protocol "TOTE" or "TOTES" is being offered the opportunity to set up
a TOTE session for one or more purposes. If the agent is capable of
receiving objects using at least one of the purpose tokens associated
with the tote session, the agent SHOULD accept the session. If it
can receive none of them, it MUST reject the session (by setting the
port to zero).
Rosenberg Expires August 18, 2008 [Page 7]
Internet-Draft TOTE February 2008
Construction of the answer follows the same rules for construction of
the offer. Note that the values of send-purp and recv-purp do not
need to be in response to the values of recv-purp and send-purp in
the offer. An agent MAY include send-purp values in the answer for
which there was no corresponding recv-purp in the offer. Similarly,
an agent MAY include recv-purp values in the answer for which there
was no corresponding send-purp in the offer. The same applies for
content types. Of course, since all agents have to support the
baseline content type for a particular purpose, there will always be
at least one type overlapping for each purpose between the offerer
and answerer. In addition, if a particular purpose isn't listed as a
valid send purpose in one direction and receive in the other, it
won't end up being utilized for the TOTE session.
6. Session Management
A TOTE session persists for the duration that the offer/answer
exchanges have signaled an active TOTE session. The actual TCP
connection for the TOTE session is managed as defined in ICE-tcp
[I-D.ietf-mmusic-ice-tcp]. This includes establishment, re-
establishment, and termination of the TCP connection.
The usage of ICE-tcp implies that connections can be established end-
to-end through firewalls and NATs, possibly with the aid of a TURN
relay. ICE-tcp also allows for connections to be re-established mid-
session without requiring additional signaling.
7. Sending and Receiving Messages
Once the TOTE session has been established, messages can be
exchanged. Either agent can send a message at any time, with the
following constraints:
o An agent MUST only send objects whose purpose was listed in a
send-purp attribute placed by that agent in an SDP, and for which
there was a recv-purp attribute in the SDP generated by its peer.
o An agent MUST only send objects whose content type was listed in a
send-purp attribute placed by that agent in an SDP or the selected
purpose, and for which there was a recv-purp attribute in the SDP
generated by its peer for the selected purpose.
o The object is permitted to be sent at this time based on any
constraints defined by the semantics of the purpose itself.
Sending an object via TOTE is easy. The purpose, length and content-
Rosenberg Expires August 18, 2008 [Page 8]
Internet-Draft TOTE February 2008
types are filled into the message. The length value represents the
length of the entire TOTE message, in bytes, starting at the the
first TOTE header after the length itself, and ending at the end of
the body. Consequently, the length of the body is equal to the
remaining length of the message after the headers.
For example, consider the following TOTE message:
l:37
p:name
t:text/plain
Jonathan Rosenberg
This TOTE message has a body containing a text/plain object,
"Jonathan Rosenberg". The length field has a value of 37, which
includes the 24 bytes of TOTE headers starting with the "p" and
ending with, and including, the CRLF that terminates the headers, and
then 18 bytes of body.
Note that the length value needs to be present and is used, even when
TOTE is run in conjunction with ICE over TCP. ICE over TCP includes
a shim layer, utilizing [RFC4571]. That shim defines a length field
as well. However, that length is used only to separate the
application data from the STUN messages. An actual TOTE message can
span several RFC4571 frames; this is analagous in general to reads
off of a TCP connection - the amount of data read at a time has no
bearing on the length of the actual message. As a consequence of
this, even though RFC4571 has a limit of 64k, there is no constraint
on the length of a TOTE message.
When an agent receives an object, it processes it based on its
purpose and content types.
8. Formal Syntax
8.1. SDP Extensions
This specification defines two new proto values for the m-line in
SDP. These are "TOTE" and "TOTES". It also defines two new SDP
attributes, send-purp and recv-purp:
Rosenberg Expires August 18, 2008 [Page 9]
Internet-Draft TOTE February 2008
send-purp = "send-purp" ":" purpose 1*(SP content-type)
recv-purp = "recv-purp" ":" purpose 1*(SP content-type)
purpose = global-purp / vendor-purp
global-purp = 1*purp-char
vendor-purp = rev-hostname "." global-purp
rev-hostname = toplabel *( "." domainlabel )
domainlabel = alphanum
/ alphanum *( alphanum / "-" ) alphanum
toplabel = ALPHA / ALPHA *( alphanum / "-" ) alphanum
purp-char = purp-unreserved / pct-encoded / sub-delims
/ ":" / "@"
;pct-encoded from RFC 3986
;sub-delims from RFC 3986
alphanum = ALPHA / DIGIT
;DIGIT from RFC 4234
;ALPHA from RFC 4234
purp-unreserved = ALPHA / DIGIT / "-" / "_" / "~"
content-type = media-type
;media-type from RFC 3261
The purpose value, whether global or vendor, MUST be less than 256
characters.
8.2. TOTE Message Syntax
A TOTE message looks similar to a SIP message, but has a more
restricted and constrained grammar:
tote-message = tote-header CRLF tote-body
tote-header = len-hdr CRLF
purp-hdr CRLF
type-hdr CRLF
*(ext-hdr CRLF)
len-hdr = "l" ":" 1*50DIGIT
purp-hdr = "p" ":" purpose
type-hdr = "t" ":" media-type
ext-hdr = hdr-name ":" hdr-value
hdr-name = token
;token from RFC3261
hdr-value = *(TEXT-UTF8char / UTF8-CONT)
;TEXT-UTF8char from RFC3261
;UTF8-CONT from RFC3261
tote-body = *OCTET
In particular, it eliminates the gratuitous usage of whitespace that
is used in SIP, and defines a fixed order for the mandatory headers.
Rosenberg Expires August 18, 2008 [Page 10]
Internet-Draft TOTE February 2008
It also defines a length that is always in a fixed position in the
TOTE message (starting at the third byte). The length is in ASCII
and can contain up to a 50 digit number.
9. Possible Purposes
This specification itself doesn't define any TOTE purposes. However,
there are a few interesting possibilities that are worth mentioning.
9.1. Session Mode IM
It is possible to use TOTE as a mechanism for session mode IM. This
would make it an alternative to MSRP [RFC4975]. The principle
difference is that, in TOTE, message relays would be through TURN,
rather than using an IM-specific relay (the MSRP relay).
Furthermore, in sessions between different domains, there will always
be a unique TCP connection per session that runs between the domains,
rather than a shared connection, which is normally the case for MSRP.
However, it is the use of a TCP connection per session which allows
TOTE to work without much of the transport type of functionality
present in MSRP (chunking, interruption, etc.).
The author is not, at this time, proposing to formally define a TOTE
purpose for IM, but rather, is mentioning it for purposes of
discussion.
9.2. Shared Browsing
Another possible application is shared web browsing. User A could
connect to user B, and establish a TOTE session for shared browsing.
Whenever user A goes to a website, the retrieved HTML file is sent to
user B over TOTE. User B can then render the HTML. Whenever user A
clicks on a hyperlink, or otherwise attempts an http query (for
example as a result of some AJAX operations), instead of retrieving
the URL, the actual URL is passed back to user A, and then user A
actually performs the fetch.
9.3. Forms and Application Interaction
The application interaction framework
[I-D.ietf-sipping-app-interaction-framework] defines a model where
applications that wish to interact with users can REFER them to HTTP
URLs, and then use traditional HTTP techniques to provide stimulus-
based user interaction.
However, the app interaction framework has the problem that it
doesn't work effectively for applications which are behind firewalls
Rosenberg Expires August 18, 2008 [Page 11]
Internet-Draft TOTE February 2008
and NATs; this is because of the difficulties in extending HTTP
connections to servers behind firewalls and NAT. Another practical
drawback, is that it requires support for GRUU in endpoints,
something that is not yet widely used.
An alternative solution is to use TOTE. This solution would only
work when the application is the other participant in the session.
The app-interaction framework is more general in this regard,
allowing multiple applications to interact with the user, not just
the one that is on the terminating side of the dialog.
With TOTE, the application would send to the user an HTML page to
render. When the user enters form data or clicks on a hyperlink,
instead of causing an HTTP post or GET to a URL, the actual URL is
sent as an object to the application via TOTE. This is similar to
the shared web browsing approach above. When the URL is received by
the application, it is processed just as if it had been clicked by
the user, and a new page is pushed to the client.
A significant benefit of this architecture is that the application
can asynchronously push new web content to the user at any time; TOTE
is a bidirectional channel, unlike HTTP which is client-server only.
9.4. Conference Controls
TOTE could be utilized as a control channel for conferences. For
example, instead of using a separate conference event package
subscription [RFC4575], a TOTE session can be used. The same XML
object defined in [RFC4575] can be sent over TOTE. This would avoid
the need to have a separate SIP exchange and SIP dialog. The tote
session could be setup along with the media for the conference
itself.
In addition, the client can send TOTE messages to invoke conference
commands - requests to add or remove users, requests to mute or
unmute, and so on. In essence, TOTE could be used as the transport
for the conference control operations defined in
[I-D.ietf-xcon-common-data-model].
9.5. Picture Sharing
A less controversial usage would be picture sharing. During a call,
a user could send a picture to the person on the other end of the
call, for purposes of rendering.
Rosenberg Expires August 18, 2008 [Page 12]
Internet-Draft TOTE February 2008
10. Security Considerations
TOTE could be used to exchange all kinds of data for different
purposes. It is reasonable that many of these purposes will have
requirements for authenticity, encryption, and message integrity.
TOTE requires endpoints to support end-to-end TLS utilizing
[RFC4572]. This provides all of those services. Furthermore, the
end-to-end TLS works even in the presence of packet intermediaries
(namely TURN servers) for the purposes of firewall and NAT traversal.
11. IANA Considerations
This specification has several IANA considerations.
11.1. TOTE Purpose Registry
This specification instructs IANA to create a new registry for TOTE
purpose tokens. This registry is defined as a table that contains
three colums:
Purpose Token: This will be a string provided in the IANA
registrations into the registry.
Description: This is text that is supplied by the IANA registration
into the registry.
Document: This is a reference to the RFC containing the
registration.
This specification instructs IANA to create this table with no
initial entries. The resulting table would look like:
TOTE Purpose Description Document
Token
-----------------------------------------------------------
[[NOTE TO IANA/RFC-EDITOR: Please replace XXXX with the RFC number of
this specification.]]
TOTE tokens are registered by the IANA when they are published in an
RFC. The IANA Considerations section of the RFC must include the
following information, which appears in the IANA registry along with
the RFC number of the publication.
Rosenberg Expires August 18, 2008 [Page 13]
Internet-Draft TOTE February 2008
o Name of the TOTE Token. The name MAY be of any length, but SHOULD
be no more than twenty characters long. The name MUST consist of
alphanum and mark [RFC3261] characters only.
o Descriptive text that describes the purpose.
11.2. SDP Transport Protocol
TOTE defines the new SDP protocol field values "TOTE" and "TOTES",
which should be registered in the sdp-parameters registry under
"proto". This first value indicates the TOTE protocol when TCP is
used as an underlying transport. The second indicates that TLS over
TCP is used.
Specifications defining new protocol values must define the rules for
the associated media format namespace. The "TOTE" and "TOTES"
protocol values allow only one value in the format field (fmt), which
is a single occurrence of "*". Actual format determination is made
using the "send-purp" and "recv-purp" attributes.
11.3. SDP Attribute Names
This document registers the following SDP attribute parameter names
in the sdp-parameters registry. These names are to be used in the
SDP att-name field.
11.3.1. Send Purposes
Contact Information: Jonathan Rosenberg, jdrosen@jdrosen.net
Attribute-name: send-purp
Long-form Attribute Name: TOTE Send Purposes
Type: Media level
Subject to Charset Attribute: No
Purpose and Appropriate Values: The "send-purp" attribute contains a
list of media types that the endpoint is willing to send for a
particular purpose. It contains one or more registered media-
types.
11.3.2. Receive Purposes
Rosenberg Expires August 18, 2008 [Page 14]
Internet-Draft TOTE February 2008
Contact Information: Jonathan Rosenberg, jdrosen@jdrosen.net
Attribute-name: recv-purp
Long-form Attribute Name: TOTE Receive Purposes
Type: Media level
Subject to Charset Attribute: No
Purpose and Appropriate Values: The "recv-purp" attribute contains a
list of media types that the endpoint is willing to receive for a
particular purpose. It contains one or more registered media-
types.
12. Acknowledgements
I'd like to thank Jonathan Lennox for his comments and support.
13. References
13.1. Normative References
[RFC3261] 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.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
Description Protocol", RFC 4566, July 2006.
[RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
with Session Description Protocol (SDP)", RFC 3264,
June 2002.
[I-D.ietf-mmusic-ice-tcp]
Rosenberg, J., "TCP Candidates with Interactive
Connectivity Establishment (ICE)",
draft-ietf-mmusic-ice-tcp-05 (work in progress),
November 2007.
[RFC4572] Lennox, J., "Connection-Oriented Media Transport over the
Transport Layer Security (TLS) Protocol in the Session
Rosenberg Expires August 18, 2008 [Page 15]
Internet-Draft TOTE February 2008
Description Protocol (SDP)", RFC 4572, July 2006.
[RFC4571] Lazzaro, J., "Framing Real-time Transport Protocol (RTP)
and RTP Control Protocol (RTCP) Packets over Connection-
Oriented Transport", RFC 4571, July 2006.
13.2. Informative References
[I-D.ietf-sipping-app-interaction-framework]
Rosenberg, J., "A Framework for Application Interaction in
the Session Initiation Protocol (SIP)",
draft-ietf-sipping-app-interaction-framework-05 (work in
progress), July 2005.
[I-D.kaplan-sip-info-events]
Kaplan, H., Holmberg, C., and I. Property, "SIP INFO Event
Framework", draft-kaplan-sip-info-events-00 (work in
progress), November 2007.
[RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 2434,
October 1998.
[RFC4975] Campbell, B., Mahy, R., and C. Jennings, "The Message
Session Relay Protocol (MSRP)", RFC 4975, September 2007.
[RFC4575] Rosenberg, J., Schulzrinne, H., and O. Levin, "A Session
Initiation Protocol (SIP) Event Package for Conference
State", RFC 4575, August 2006.
[I-D.ietf-xcon-common-data-model]
Novo, O., Camarillo, G., Morgan, D., and R. Even,
"Conference Information Data Model for Centralized
Conferencing (XCON)", draft-ietf-xcon-common-data-model-08
(work in progress), December 2007.
Author's Address
Jonathan Rosenberg
Cisco
Edison, NJ
US
Phone: +1 973 952-5000
Email: jdrosen@cisco.com
URI: http://www.jdrosen.net
Rosenberg Expires August 18, 2008 [Page 16]
Internet-Draft TOTE February 2008
Full Copyright Statement
Copyright (C) The IETF Trust (2008).
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, THE IETF TRUST 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.
Acknowledgment
Funding for the RFC Editor function is provided by the IETF
Administrative Support Activity (IASA).
Rosenberg Expires August 18, 2008 [Page 17]