One document matched: draft-burger-sipping-dir-transcode-00.txt



SIPPING                                                        E. Burger
Internet-Draft                                  SnowShore Networks, Inc.
Expires: August 25, 2003                               February 24, 2003


                          Directed Transcoding
                 draft-burger-sipping-dir-transcode-00

Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   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 25, 2003.

Copyright Notice

   Copyright (C) The Internet Society (2003).  All Rights Reserved.

Abstract

   This document describes a mechanism for invoking transcoding services
   in a SIP network.  A user, proxy server, or other agent can
   transparently request these services, without modification to the
   existing network.

Conventions used in this document

   This document refers generically to the calling party (caller) in the
   masculine (he/him/his) and the called party in the feminine (she/her/
   hers).  This convention is purely for convenience and makes no
   assumption about the gender of either party.




Burger                  Expires August 25, 2003                 [Page 1]

Internet-Draft          SIP Directed Transcoding           February 2003


   RFC2119 [1] provides the interpretations for the key words "MUST",
   "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT",
   "RECOMMENDED", "MAY", and "OPTIONAL" found in this document.

Table of Contents

   1.  Overview . . . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Service Examples . . . . . . . . . . . . . . . . . . . . . . .  4
   2.1 Inbound SIP Proxy  . . . . . . . . . . . . . . . . . . . . . .  4
   2.2 On Demand Transcoding: Individual User . . . . . . . . . . . .  5
   3.  Sample Implementation  . . . . . . . . . . . . . . . . . . . .  6
   3.1 Using Source-Sink SDP  . . . . . . . . . . . . . . . . . . . .  6
   3.2 Using Conference Bridge  . . . . . . . . . . . . . . . . . . .  8
   4.  Security Considerations  . . . . . . . . . . . . . . . . . . . 11
       Normative References . . . . . . . . . . . . . . . . . . . . . 12
       Informative References . . . . . . . . . . . . . . . . . . . . 13
       Author's Address . . . . . . . . . . . . . . . . . . . . . . . 14
   A.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 15
       Intellectual Property and Copyright Statements . . . . . . . . 16
































Burger                  Expires August 25, 2003                 [Page 2]

Internet-Draft          SIP Directed Transcoding           February 2003


1. Overview

   There is often a need for transcoding services in a communications
   network.  Common scenarios include transcoding audio real-time data
   and services for the speech and hearing impaired.

   Companion papers sip-deaf [9] and source-sink [2] describe the
   mechanics for transcoding aware devices to request transcoding
   services from a media server.

   This document describes a mechanism for creating a pass-through
   transcoding session.  The mechanism described here alleviates the
   endpoints from needing to understand and execute complex call flows.
   Moreover, this mechanism is simple for SIP Proxies to implement.

   The essence of the mechanism is to use a special Request-URI to
   identify the transcoding service and the target SIP UAS.  This is
   similar to the concept described in netann [10].  The user part
   (left-hand side) of the Request-URI begins with "xcod=", followed by
   the target SIP Request-URI, with special characters, like colon (:)
   and at-sign (@) escaped.  The system part (right-hand side) of the
   Request-URI identifies the transcoding server.

   Codec negotiation between the UAS, UAC, and transcoding server
   proceed following standard RFC3261 [3] offer/answer.  Optionally, the
   SDP may contain the source and sink attributes specified in
   source-sink [2] if the UAC desires multiple simultaneous
   translations.























Burger                  Expires August 25, 2003                 [Page 3]

Internet-Draft          SIP Directed Transcoding           February 2003


2. Service Examples

2.1 Inbound SIP Proxy

   In this example, a user wishes to have transcoding service performed
   on her behalf on her inbound sessions.  Perhaps they are speech
   impaired and wish to have the caller hear synthesized speech offered
   by a transcoding server.

   To establish the request for the transcoding service, the user
   registers a special SIP URI for their address.  Rather than register
   the actual address of her UAS, she registers the address of a
   transcoding server, with her UAS' URI encoded in the registered URI.
   Figure Figure 1 describes the network components, their relationship,
   and the SIP Request-URI's formed for each INVITE.

                                              +-----------+
     +-----+  INVITE sip:target@example.com   | target's  |
     | UAC |--------------------------------->| in-bound  |
     +-----+                                  | SIP Proxy |
                                              +-----------+
                                                    |
     INVITE sip:xcod=sip%3areal-target%40example.com@ms.example.com
                                                    |
                                                    V
                                             +--------------+
                                             | Transcoding  |
                                             |    Server    |
                                             +--------------+
                                                     |
     +-----+   INVITE real-target@example.com        |
     | UAS |<----------------------------------------+
     +-----+

                                Figure 1

   Note the beauty of using opaque SIP Request-URIs.  The in-bound SIP
   Proxy does not need to be aware of the function of the transcoding
   server.  All the in-bound SIP Proxy need do is do a standard lookup
   for a given SIP Request-URI.  In the example above, the SIP
   Request-URI

   sip:target@example.com ,

   rather than having the translation

   sip:real-target@example.com ,




Burger                  Expires August 25, 2003                 [Page 4]

Internet-Draft          SIP Directed Transcoding           February 2003


   has the translation

   sip:xcod=sip%3areal-target%40example.com@ms.example.com .

   Said differently, there are absolutely no modifications needed to the
   SIP Proxy.

   Considering the use of this method for the subscriber, her callers
   need never know that she has a transcoding service.  For example, the
   transcoding could be a human reading the subscriber's text.  As far
   as the calling party is concerned, he never knows that he is not
   speaking with the called party.

2.2 On Demand Transcoding: Individual User

   In this example, a user wishes to have transcoding service performed
   on his behalf on a session he initiates.  Perhaps they are hearing
   impaired, he knows that the called party wishes to speak, and he
   wants to keep his impairment a secret.

   To establish the request for the transcoding service, the user enters
   a special SIP URI for the called party's address.  Rather than enter
   the SIP URI of the called party, he enters the address of a
   transcoding server, with the called party's UAS URI encoded in the
   SIP Request-URI.  Figure bar describes the network components, their
   relationship, and the SIP Request-URI formed for each INVITE.

     +-----+ INVITE sip:xcod=sip%3atarget%40example.com@ms.example.com
     | UAC |---------\                     +--------------+
     +-----+          \------------------->| Transcoding  |
                                           |    Server    |
                                           +--------------+
                                                  |
     +-----+           INVITE target@example.com  |
     | UAS |<-------------------------------------+
     +-----+

   Note again the benefit of using opaque SIP Request-URIs.  Not one
   piece of infrastructure needs modification to support this service.
   Granted, user's may prefer a smart UAC that automatically generates
   the transcoding URI from a target URI.  However, nothing requires
   this.  On the other hand, this is why it is critically important to
   standardize the usage of the Request-URI.  The standardization
   enables manufacturers of UAC's and transcoding servers to
   interoperate.






Burger                  Expires August 25, 2003                 [Page 5]

Internet-Draft          SIP Directed Transcoding           February 2003


3. Sample Implementation

   This section is informative.  Any deviations with the preceding
   sections are unintentional.  In the event of deviations, the
   normative descriptions above are correct.

3.1 Using Source-Sink SDP

   One can construct a transcoding server from a transcoding application
   server and media server.

   o  Take the transcoding Request URI and extract the target Request
      URI

   o  Invite a classical media server to the dialog

   o  Invite the target Request URI, using mechanisms described in
      sip-deaf [9]

   Here is a typical network topology.

   +--------+ INVITE sip:xcod=sip%3atarget%40example.com@t.example.com
   | UAC or |-------\                     +-------------+
   | Proxy  |        \------------------->| Transcoding |
   +--------+                             | App. Server |
                                          +-------------+
                INVITE target@example.com  /      | INVITE
       +-----+       /--------------------/       | xcod@example.com
       | UAS |<-----/                             V
       +-----+            RTP             +--------------+
           \==============================| Media Server |
                                          +--------------+

   Following the example laid out in sip-deaf [9], here is a sample call
   flow.
















Burger                  Expires August 25, 2003                 [Page 6]

Internet-Draft          SIP Directed Transcoding           February 2003


    C             T               M              S
    |             |               |              |
    | INVITE sip:xcod=sip%3atarget%40example.com@t.example.com
    |------------>|               |              |     (1)
    |  SDP C      |               |              |
    |             |               |              |
    | 100 Trying  |               |              |
    |<------------|               |              |     (2)
    |             | INVITE sip:target@example.com|
    |             |----------------------------->|     (3)
    |             | no SDP        |              |
    |             |               |    200 OK    |
    |             |<-----------------------------|     (4)
    |             |               |    SDP S     |
    |             |               |              |
    |             | INVITE sip:xcode@ms.example.net
    |             |-------------->|              |     (5)
    |             | SDP C+S       |              |
    |             |               |              |
    |             |     200 OK    |              |
    |             |<--------------|              |     (6)
    |             |  SDP MC+MS    |              |
    |             |               |              |
    |  200 OK     |               |              |
    |<------------|               |              |     (7)
    |  SDP MS     |               |              |
    |             |               |              |
    |  ACK        |               |              |
    |------------>|  ACK          |              |     (8)
    |             |-------------->|              |     (9)
    |             |  ACK          |              |
    |             |----------------------------->|    (10)
    |             |  SDP MC       |              |
    |             |               |              |
    |             |   RTP         |    RTP       |
    |<===========================>|<============>|    (11)
    |             |               |              |

   Here is a detailed description of the operation of the mechanism.

   First, the UAC or Proxy C issues an INVITE to the transcoding
   application server T with C's SDP in message (1).  The transcoding
   application server T responds with a 100 Trying (2), as it may take
   some time to coordinate the media server and UAS.

   The transcoding application server T then invites the UAS S with no
   SDP in message (3).  The UAS S responds with a 200 OK with S's SDP in
   message (4).



Burger                  Expires August 25, 2003                 [Page 7]

Internet-Draft          SIP Directed Transcoding           February 2003


   With C's and S's SDP, the transcoding application server T then
   invites the media server M with the SDP with the appropriate plumbing
   as specified in [I-D.camarillo-mmusic-source-sink].  The media server
   M responds with the appropriate media server sinks for S to C (MC)
   and C to S (MS) in message (6).

   The transcoding application server T sends the media server sink for
   S to C (7) and C acknowledges the connection (8).  The transcoding
   application server acknowledges the connection to the media server M
   (9).

   Finally, the transcoding application server T sends the media server
   sink for C to S in the acknowledgement (10).  At this point we have a
   transcoding stream (11).

3.2 Using Conference Bridge

   An alternative method of constructing a transcoding server from a
   transcoding application server and media server is to create a
   conference.

   o  Take the transcoding Request URI and extract the target Request
      URI

   o  Invite a classical media server to the dialog

   o  Invite the target Request URI, using mechanisms described in
      sip-deaf [9]

   Here is a typical network topology.

   +--------+ INVITE sip:xcod=sip%3atarget%40example.com@ms.example.com
   | UAC or |-------\                     +-------------+
   | Proxy  |        \------------------->| Transcoding |
   +--------+                             | App. Server |
                                          +-------------+
                INVITE target@example.com  /      | INVITE
       +-----+       /--------------------/       | xcod@example.com
       | UAS |<-----/                             V
       +-----+            RTP             +--------------+
           \==============================| Media Server |
                                          +--------------+

   Following the example laid out in sip-deaf [9], here is a sample call
   flow.


    C             T               M              S



Burger                  Expires August 25, 2003                 [Page 8]

Internet-Draft          SIP Directed Transcoding           February 2003


    |             |               |              |
    | INVITE sip:xcod=sip%3atarget%40example.com@t.example.com
    |------------>|               |              |     (1)
    |  SDP C      |               |              |
    |             |               |              |
    | 100 Trying  |               |              |
    |<------------|               |              |     (2)
    |             |               |              |
    |             | INVITE sip:conf=id@ms.example.net
    |             |-------------->|              |     (3)
    |             |  SDP C        |              |
    |             |               |              |
    |             | 200 OK        |              |
    |             |<--------------|              |     (4)
    |             |  SDP MS       |              |
    |             |               |              |
    |             | INVITE target@example.com    |
    |             |----------------------------->|     (5)
    |             | no SDP        |              |
    |             |               |    200 OK    |
    |             |<-----------------------------|     (6)
    |             |               |    SDP S     |
    |             |               |              |
    |             | INVITE sip:conf=id@ms.example.net
    |             |-------------->|              |     (7)
    |             | SDP S         |              |
    |             |               |              |
    |             |     200 OK    |              |
    |             |<--------------|              |     (8)
    |             |  SDP MC       |              |
    |             |               |              |
    |  200 OK     |               |              |
    |<------------|               |              |     (9)
    |  SDP MS     |               |              |
    |             |               |              |
    |  ACK        |               |              |
    |------------>|  ACK          |              |    (10)
    |             |-------------->|              |    (11)
    |             |  ACK          |              |
    |             |----------------------------->|    (12)
    |             |  SDP MC       |              |
    |             |               |              |
    |             |   RTP         |    RTP       |
    |<===========================>|<============>|    (13)
    |             |               |              |

   Here is a detailed description of the operation of the mechanism.




Burger                  Expires August 25, 2003                 [Page 9]

Internet-Draft          SIP Directed Transcoding           February 2003


   First, the UAC or Proxy C issues an INVITE to the transcoding
   application server T with C's SDP in message (1).  The transcoding
   application server T responds with a 100 Trying (2), as it may take
   some time to coordinate the media server and UAS.

   The transcoding application server T then invites the media server M
   to a conference with the ID id with the SDP for C (3).  The media
   server M responds with a 200 OK with what will be the transcoded
   version of S's SDP in message (4).  Note the user of the conference
   SIP Request-URI as specified by netann [10].

   The transcoding application server T then invites the UAS S with no
   SDP in message (5).  The UAS S responds with its SDP in message (6).
   With the UAS' SDP, the transcoding application server invites the
   media server M to the same conference in (3) in message (7).  The
   media server responds to the request with a 200 OK with what will be
   the transcoded version of C's SDP in message (8).

   The transcoding application server T sends the transcoded version of
   S' SDP in message (9).  The UAC C acknowledges the request in message
   (10), which T relays to the media server M (11).

   The transcoding application server T then sends the transcoded
   version of C's SDP to the UAS S in message (12).

   At this point, we have the transcoded RTP stream (13).

























Burger                  Expires August 25, 2003                [Page 10]

Internet-Draft          SIP Directed Transcoding           February 2003


4. Security Considerations

   Yes, there definitely will be a -01!
















































Burger                  Expires August 25, 2003                [Page 11]

Internet-Draft          SIP Directed Transcoding           February 2003


Normative References

   [1]  Bradner, S., "Key words for use in RFCs to Indicate Requirement
        Levels", BCP 14, RFC 2119, March 1997.

   [2]  Schulzrinne, H., Camarillo, G. and E. Burger, "The source and
        sink attributes for the Session Description Protocol",
        draft-camarillo-mmusic-source-sink-00 (work in progress),
        September 2002.

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

   [4]  ISO, "Codes for the representation of names of languages -- Part
        1: Alpha-2 code", ISO 639-1, July 2002.

   [5]  ISO, "Codes for the representation of names of countries and
        their subdivisions -- Part 1: Country codes", ISO 3166-1,
        October 1997.

   [6]  Crocker, D. and P. Overell, "Augmented BNF for Syntax
        Specifications: ABNF", RFC 2234, November 1997.

   [7]  Berners-Lee, T., Fielding, R. and L. Masinter, "Uniform Resource
        Identifiers (URI): Generic Syntax", RFC 2396, August 1998.

   [8]  Borenstein, N. and N. Freed, "MIME (Multipurpose Internet Mail
        Extensions) Part One: Mechanisms for Specifying and Describing
        the Format of Internet Message Bodies", RFC 1521, September
        1993.




















Burger                  Expires August 25, 2003                [Page 12]

Internet-Draft          SIP Directed Transcoding           February 2003


Informative References

   [9]   Camarillo, G., "Transcoding Services Invocation in the Session
         Initiation Protocol", draft-camarillo-sip-deaf-01 (work in
         progress), November 2002.

   [10]  Burger, E., Van Dyke, J., O'Connor, W. and A. Spitzer, "Basic
         Network Media Services with SIP",
         draft-burger-sipping-netann-04 (work in progress), January
         2003.

   [11]  Schulzrinne, H., Casner, S., Frederick, R. and V. Jacobson,
         "RTP: A Transport Protocol for Real-Time Applications", RFC
         1889, January 1996.

   [12]  Charlton, N., Gasson, M., Gybels, G., Spanner, M. and A. van
         Wijk, "User Requirements for the Session Initiation Protocol
         (SIP) in Support of Deaf, Hard of Hearing and Speech-impaired
         Individuals", RFC 3351, August 2002.

   [13]  Burger, E., Van Dyke, J. and A. Spitzer, "SnowShore Media
         Server Control Markup Language and Protocol",
         draft-vandyke-mscml-00 (work in progress), November 2002.

   [14]  World Wide Web Consortium, "Voice Extensible Markup Language
         (VoiceXML) Version 2.0", W3C Working Draft , April 2002,
         <http://www.w3.org/TR/voicexml20/>.

   [15]  Callaghan, B., "NFS URL Scheme", RFC 2224, October 1997.

   [16]  Shepler, S., Callaghan, B., Robinson, D., Thurlow, R., Beame,
         C., Eisler, M. and D. Noveck, "NFS version 4 Protocol", RFC
         3010, December 2000.

   [17]  Klensin, J., "Simple Mail Transfer Protocol", RFC 2821, April
         2001.

   [18]  Campbell, B. and R. Sparks, "Control of Service Context using
         SIP Request-URI", RFC 3087, April 2001.












Burger                  Expires August 25, 2003                [Page 13]

Internet-Draft          SIP Directed Transcoding           February 2003


Author's Address

   Eric Burger
   SnowShore Networks, Inc.
   285 Billerica Rd.
   Chelmsford, MA  01824-4120
   USA

   EMail: e.burger@ieee.org










































Burger                  Expires August 25, 2003                [Page 14]

Internet-Draft          SIP Directed Transcoding           February 2003


Appendix A. Acknowledgements

   The transcoding design team includes Gonzalo Camarillo, Henning
   Schulzrinne, and Arnoud van Wijk.















































Burger                  Expires August 25, 2003                [Page 15]

Internet-Draft          SIP Directed Transcoding           February 2003


Intellectual Property Statement

   The IETF takes no position regarding the validity or scope of any
   intellectual property 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; neither does it represent that it
   has made any effort to identify any such rights.  Information on the
   IETF's procedures with respect to rights in standards-track and
   standards-related documentation can be found in BCP-11.  Copies of
   claims of rights made available for publication 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 implementors or users of this specification can
   be obtained from the IETF Secretariat.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights which may cover technology that may be required to practice
   this standard.  Please address the information to the IETF Executive
   Director.


Full Copyright Statement

   Copyright (C) The Internet Society (2003).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assignees.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION



Burger                  Expires August 25, 2003                [Page 16]

Internet-Draft          SIP Directed Transcoding           February 2003


   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Acknowledgement

   Funding for the RFC Editor function is currently provided by the
   Internet Society.











































Burger                  Expires August 25, 2003                [Page 17]


PAFTECH AB 2003-20262026-04-23 02:58:16