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