One document matched: draft-rosenberg-sip-info-litmus-01.xml


<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc='yes'?>
<?rfc tocdepth='5'?>
<?rfc symrefs='yes'?>

<?rfc compact='yes'?>
<?rfc subcompact='no'?>

<rfc ipr="full3978" category="info">


    <front>
        <title abbrev="INFO Litmus">
Litmus Tests for Usage of the Session Initiation Protocol (SIP) 
INFO Method</title>
    
        <author initials="J.R." surname="Rosenberg"
                fullname="Jonathan Rosenberg">
            <organization>Cisco</organization>
    
            <address>
                <postal>
                    <city>Edison</city> <region>NJ</region>
                    <country>US</country>
                </postal>
    
                <phone>+1 973 952-5000</phone>
                <email>jdrosen@cisco.com</email>
                <uri>http://www.jdrosen.net</uri>
            </address>
        </author>
    
        <date month="July" year="2008" />
    
        <area>RAI</area>
        <workgroup>SIP</workgroup>
        <keyword>SIP</keyword>
        <keyword>INFO</keyword>
        <abstract>
            <t>The Session Initiation Protocol (SIP) Working Group is
            considering the standardization of a framework for
            conveying application data through the INFO
            method. However, the INFO method is just one of several
            techniques available in SIP for the transfer of
            application data. Others include through the SIP events
            framework and through a media session. This document
            provides guidelines and litmus tests for determining
            which is the right technique to use.</t>
        </abstract>
    </front>

<middle>

<section title="Introduction">


<t>
The Session Initiation Protocol (SIP) <xref target="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).
</t>

<t>
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:
</t>

<list style="hanging">
<t hangText="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. 
</t>

<t hangText="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. 
</t>

<t hangText="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.
</t>

</list>

<t>
SIP provides three general purpose mechanisms that allow a pair of
agents to communicate data during a session. These are:
</t>

<list style="hanging">

<t hangText="SIP Events Framework:"> 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
  <xref target="I-D.ietf-sipping-app-interaction-framework"/>.
</t>

<t hangText="Media:"> A user agent can use SIP to set up another media
  session whose purpose is to carry the application specific
  data. This  can be done using the TOTE protocol proposed in
  <xref target="I-D.rosenberg-sip-tote"/>.
</t>

<t hangText="INFO Framework:"> A user agent can send the data in a SIP INFO
  message along the existing SIP dialog. This technique is described
  in <xref target="I-D.kaplan-sip-info-events"/>.
</t>

</list>

<t>
Each of these mechanisms are different in important ways. The events
framework and the INFO framework utilize the signaling plane, while
TOTE utilizes the media plane. The INFO framework always follows the
path of an INVITE dialog, while the events framework allows arbitrary
connections and can be independent of any dialog. These differences
result in differing scopes of applicability. As a consequence, there
cannot be just ONE solution for application signaling. All three are
needed and serve different purposes.
</t>

<t>
<xref target="I-D.kaplan-sip-info-use-cases"/> defines different use
cases for application transfer in SIP, and suggests whether INFO or
other mechanisms are appropriate. However, it doesn't propose any
specific metrics which could be used to evaluate the options. This
draft proposes metrics which can be considered in deciding which of
the three techniques to apply.
</t>

</section>

<section title="Applicability of a Media Plane Solution">

<t>
The following litmus tests can be employed to help determine if an
application should be based on a media plane solution:
</t>

<list style="symbols">

<t>The application is trying to deliver data that has low latency
  requirements. Since a media plane solution takes the most direct
  path between user agents, it is the ideal choice in these
  cases. Examples would be far end camera controls and active speaker
  indications in a conference. </t>

<t>The data consists of a large number of messages that are likely to
  be sent during the duration of the session. In the signaling plane
  solutions, these messages would pass through proxies and other
  servers, increasing their load without any value. Keeping them on
  the media plane allows them to go direct. Examples of applications
  in this category are game moves in a multiplayer game and active
  speaker indications in a conference.
</t>

<t>The data is potentially very large in size. SIP is a poor data
  transfer mechanism for many reasons. Large messages can clog
  connections between servers and worsen call setup delays. Many
  servers were not built to handle large messages. For this reason,
  the media plane is a better choice. Examples of applications meeting
  this test are picture sharing and file transfer.
</t>

<t>
  The data is something that intermediaries do not typically need to
  see. The signaling plane is a better choice in such cases. Note
  that, it is possible for intermediaries to observe media-plane
  information by acting as a B2BUA; this is common practice for
  multimedia over RTP. However, if application data will need to be
  seen by an intermediary, it is more efficient to use the 
  signaling plan.
</t>

</list>

</section>

<section title="Applicability of the SIP Events Framework">

<t>
The SIP events framework is the ideal choice when:
</t>

<list style="symbols">

<t>
  The data is not associated with a communications session. In cases
  where the data is associated with a session, it is better to use
  either a media plane solution or the INFO events framework. Presence
  <xref target="RFC3856"/> is a classic example, as is the
  registration event package <xref target="RFC3680"/>. 
</t>

<t>The entity that wants to receive the data knows with high
  probability that the peer is capable of sending a notification
  with the data, and the entity knows what type of data it needs
  to receive. In other words, the event framework is ideal where an
  agent needs to ask a question to a source that always knows the
  answer. 
</t>

<t>
  The information will need to be communicated between the entities
  for a long period of time, possibly continuously. The event
  framework is a better choice for these cases; it provides features
  to support long lived associations.
</t>

<t>
  The information exchanged may need to be seen by
  intermediaries. This would argue for a sinaling path solution, which
  the event framework is. 
</t>

</list>

</section>

<section title="Applicability of the SIP INFO Framework">

<t>The INFO framework is a good solution when:
</t>

<list style="symbols">

<t>The information that is exchanged is associated with a
  communications session. This is almost the definitional property of
  the INFO events framework. 
</t>

<t>The information that is exchanged may need to be seen by
  intermediaries. 
</t>

<t>The recipient of the data has no idea if the sender will ever
  generate the data; the recipient is just saying that it knows how to
  handle it, should the sender have something to send. This is an
  important differentiator with the events framework, which assumes
  that the recipient wants the data. Examples of this include
  receiving a picture or a vCard during a session. The receiver
  doesn't explicitly want or need the data; but if the sender has it,
  the receiver is willing to take it.
</t>

<t>The recipient could potentially handle many different types of data
  with the above characteristic. In other words, there are lots of
  things that the receiver could process if the sender were to send
  it. If the application data is just one more, it is likely a fit for
  the INFO framework.
</t>

<t>The size of the data that is to be sent is small and infrequent, at
  most a few times during the session. This is in contrast to the
  media solutions, which are also session-oriented but are better for
  larger and more frequent data.
</t>

<t>The data needs to be sent reliably and latency is not much of an
  issue. If latency were an issue, the media plane solution would be
  better.
</t>

<t>The data has no impact on SIP dialog state, transaction state,
  media session states or intermediate proxy or b2bua states.
</t>

</list>

</section>

<section title="Discussion">

<t>
The litmus tests do not provide a black and white answer to the
question of which mechanism to use. There is overlap between them, and
certain applications could arguably use multiple techniques. The
media-plane solution is the most inclusive, in that it could arguably
be used for any application. Though optimized for large and frequently
sent data, it can handle small and infrequent data too. Though
optimized for end-to-end communications it can be seen by
intermediaries too. Though optimized for usage during media sessions,
one could set up a session just for application data. Indeed, one
could go as far as to argue that the media plane solution could
replace the SIP events framework and the INFO framework
entirely. Perhaps, had SIP been earlier in its evolutionary cycle,
this might make sense. However, the event framework in particular is
in wide usage and mature, and signaling-based channels remain the most
reliable and frequently used. Consequently, this document recommends a
pragmatic approach whereby all the mechanisms co-exist, and IETF
chooses the ideal one for each task.
</t>

</section>

<section title="Security Considerations">

<t>
There are no security considerations associated with this
specification.
</t>

</section>

<section title="IANA Considerations">

<t>
None.
</t>

</section>

</middle>

<back>
<references title="Informative References">
<?rfc include="reference.RFC.3261"?>
<?rfc include="reference.I-D.ietf-sipping-app-interaction-framework"?>
<?rfc include="reference.I-D.rosenberg-sip-tote"?>
<?rfc include="reference.I-D.kaplan-sip-info-events"?>
<?rfc include="reference.I-D.kaplan-sip-info-use-cases"?>
<?rfc include="reference.RFC.3856"?>
<?rfc include="reference.RFC.3680"?>
</references>

</back>
</rfc>


PAFTECH AB 2003-20262026-04-24 01:24:53