I'm sponsoring this fast-track request for Girish Moodalbail.  The
timer is set to 10/08/2007.

Note that this IETF-defined standards-track protocol is called
"Session Description Protocol."  The abbreviation is SDP which
unfortunately overlaps with the so-called "sockets direct protocol," a
non-IETF protocol defined by the InfiniBand Trade Association.

The "details.txt" file is in the case directory.  The protocol
currently exists as a Java API, but not C.



Project Name
  SDP (Session Description Protocol) library - RFC 4566

Release Binding
  "patch/micro"

Dependencies

  This library does not depend on any other library except for libc
  and libm.

  No other libraries depend on this library.  Particularly, for now,
  libsip.so.1 does not use any of the interfaces exported by this
  library.

  To use the interfaces exported by this library, SIP application
  developers and other developers who need SDP will link to this
  library.

Project Description
----------------------

  Session Description Protocol (SDP), as the name suggests, is
  intended for describing multimedia sessions for the purposes of
  session announcement, session invitation, and other forms of
  multimedia session initiation. SDP conveys media details like type
  (audio, video, etc.) and encoding (MPEG video, DivX video, etc),
  transport protocol (RTP/UDP/IP, H.320, etc.), addresses and ports,
  session name, purpose and owner and other session description
  metadata to the participants.

  SDP is used to convey session information in Session Initiation
  Protocol (SIP), Streaming Media (Real Time Streaming Protocol,
  RTSP), Email and World Wide Web and Multicast Session Announcement.

  In this project we provide public interfaces that parse the SDP
  description and check for syntax conformance (as defined in Section
  9 [SDP Grammar] of RFC 4566).  Interfaces to generate SDP messages
  and convert it to byte-string will also be provided.

  SDP is used predominately by SIP.  Solaris has a SIP stack but this
  stack lacks SDP functionality.  With this library Solaris SIP
  developers can leverage these interfaces in developing SIP
  applications.  This would also expedite the acceptance of our SIP
  stack in the community as other competing stack already provides
  such functionality, and has been requested by customers.

  An SDP session description consists of number of lines of text of
  the form, <type>=<value>, where <type> MUST be exactly one
  case-significant character and <value> is a structured text whose
  format depends on <type>.  An example SDP description is:

      v=0
      o=jdoe 2890844526 2890842807 IN IP4 10.47.16.5
      s=SDP Seminar
      i=A Seminar on the session description protocol
      u=http://www.example.com/seminars/sdp.pdf
      e=j.doe at example.com (Jane Doe)
      c=IN IP4 224.2.17.12/127
      t=2873397496 2873404696
      r=604800 3600 0 90000
      a=recvonly
      m=audio 49170 RTP/AVP 0
      m=video 51372 RTP/AVP 99
      a=rtpmap:99 h263-1998/90000

Interfaces
-------------

  ----------------------------------------------------------------------------
  Name                          Stability          Comments
  ----------------------------------------------------------------------------
  libcommputil                  Committed           library [see note]
  sdp_origin_t                  Committed           Refer "details.txt"
  sdp_conn_t                    Committed
  sdp_bandwidth_t               Committed
  sdp_time_t                    Committed
  sdp_repeat_t                  Committed
  sdp_zone_t                    Committed
  sdp_key_t                     Committed
  sdp_attr_t                    Committed
  sdp_media_t                   Committed
  sdp_session_t                 Committed
  sdp_list_t                    Committed
  sdp_parse()                   Committed           Refer "details.txt"
  sdp_find_media()              Committed
  sdp_find_attribute()          Committed
  sdp_find_media_rtpmap()       Committed
  sdp_clone_session()           Committed
  sdp_new_session()             Committed               
  sdp_add_origin()              Committed
  sdp_add_name()                Committed
  sdp_add_information()         Committed
  sdp_add_uri()                 Committed
  sdp_add_email()               Committed
  sdp_add_phone()               Committed
  sdp_add_connection()          Committed
  sdp_add_bandwidth()           Committed
  sdp_add_repeat()              Committed
  sdp_add_time()                Committed
  sdp_add_zone()                Committed
  sdp_add_key()                 Committed
  sdp_add_attribute()           Committed
  sdp_add_media()               Committed
  sdp_session_to_str()          Committed
  sdp_delete_all_field()        Committed
  sdp_delete_all_media_field()  Committed
  sdp_delete_media()            Committed
  sdp_delete_attribute()        Committed
  sdp_free_session()            Committed
  ------------------------------------------------------------------------

  (*) note: libcommputil - communication protocol parser utilities.
  We foresee several other parsers that will fit into this library in
  the future.


Reference Documents:
--------------------

(1) details.txt (can be found in case materials)
  This file provides more information on
  
  (a) individual structures and their members.
  (b) intended contract of each function, arguments it takes and its
      return values.
  (c) "libcommputil" interface usage by application developers.

(2) SDP Parser design document (non-normative)

  http://www.opensolaris.org/os/project/network-sip/files/SDP_Parser_Design.pdf

Reply via email to