Subject: RE: SDPng

From: "Tom-PT Taylor" <[email-masked]>
Date: Fri, 26 May 2000 11:13:08 -0400

I did want to say that Megaco has a great deal of interest in an improved
capability negotiation protocol.  We deliberately isolated media flow
negotiation within the Megaco protocol (to the Local and Remote descriptors)
to make it easier to move to a new protocol should a replacement for SDP
appear.  We can use SDP now, but we are threatened with a combinatorial
explosion if there are a lot of details to negotiate.

I suppose this means I should be contributing  to discussion of the topic in
MMUSIC :-)

> -----Original Message-----
> From:	Dirk Kutscher [SMTP:[email-masked]]
> Sent:	Thursday, May 25, 2000 6:51 AM
> To:	Markus Buchhorn
> Cc:	[email-masked]; [email-masked]
> Subject:	Re: SDPng
> 
> >>>>> "Markus" == Markus Buchhorn <[email-masked]> writes:
> 
>     Markus> Which group/who is looking at the next generation of SDP?
>     Markus> (I think Mark Handley mentioned "some people call it SDPv2
>     Markus> and it's not really a v2"). I haven't seen any mailing
>     Markus> lists under avt or mmusic (where it should be?)  really
>     Markus> discuss it.
> 
> Markus,
> 
> we have started a discussion about this about a year ago and submitted
> an ID called "Capability description for group cooperation". The draft
> has expired but you can grab an old copy at
> 
> ftp://ftp.tzi.uni-bremen.de/doc/internet-drafts/draft-ott-mmusic-cap-00.tx
> t
> 
> The draft does not directly propose a concrete new SDP version but
> also deals with
> 
> 	- a model for multimedia conferencing from a
>           configuration point of view: We used the notion of
>           "components" that are basically applications within a
>           multimedia conference and can be mapped to the final media
>           streams. The way components can be implemented depends on
>           the capabilities of end-systems and preferences of users,
>           what we called "potential configurations".
> 
> 	- the relation between "session description" and capability
>           negotiation: In a capability negotiation process
>           potential configurations are taken as input for a function
>           that finally yields a usable "actual configuration", that is
>           an element of a session description.
> 
> 	- algorithms for capability negotiation and mapping to/from
>           SDP: We have presented an algorithm that allows capability
>           negotiation without having to know the semantics of
>           individual descriptions, which is important for
>           extensibility.
> 
> The motivation for this was the observation that, while SDP has not
> been designed to support capability negotiation, the dynamic
> negotiation of session parameters is considered an important
> functionality for conferencing/IP-telephony and that there are usage
> scenarios where protocols like SIP actually do rely on capability
> negotiation involving SDP.
> 
> It is obvious that negotiating capabilities and describing session
> parametes are closely related and that it is probably useful to have a
> common representation for both purposes, so this is one reason why
> developing a "new" SDP has been considered. Other reasons may be the
> various proposals of extending SDP that have been presented and that
> suggest that, while SDP provides some extension mechanisms, it lacks
> the required extensiblity to support all this conveniently.
> 
> Because of the capability negotiation aspect a few more questions
> arise as it would have been the case for finding a new representation
> for session descriptions.
> 
> For example, it has been noted that capability negotiation has a
> considerable overlap to content negotiation, i.e. RFC2703 and
> RFC2533. It makes sense to build upon this work but it is also
> important to adhere to the "keep it simple" requirement, one of the
> reasons being the one you mention below:
> 
>     Markus> I'd be interested to see what is being done. One idea I
>     Markus> wanted to canvas was the use of XML in
>     Markus> session/content/transport description, with appropriate
>     Markus> DTD's being created as necessary. Nicely extensible and
>     Markus> pigeon-hole-able and container-able :-). However, it can
>     Markus> be a bit heavy and SAP puts some strong recommendations on
>     Markus> bandwidth usage and packet sizes.  OTOH XML is
>     Markus> compressible (e.g. wbxml) in special cases.
> 
> I think, before thinking of DTDs, schemata and concrete
> representations we have to address the fundamental questions of how
> the model for capability negotiation and session decription should
> look like etc. It should then be comparatively easy to find one (or
> more) appropriate representation syntaxes, maybe even an XML-based
> one.
> 
> Discussion about all this is of course welcome.
> 
> -- 
> 	Dirk
> 
>

---

From: Christoph Reichert <[email-masked]>
Date: Mon, 29 May 2000 12:13:24 +0200

[...]

> > more) appropriate representation syntaxes, maybe even an XML-based

IMHO, as the term "capability set" suggests, the basic model should be
the intersection of these sets.  From the resulting set, for each session
to be started, one capabilitiy is drawn, maybe by means of preferences
if the resulting set allows more than one. The selected capability can
than be converted into a SDP-description.

For example, an endsystem my have the capability set (I've no detailed
knowledge about codecs):

   { (audio, RTP/AVP, g711), (audio, RTP/AVP, g722), (video, RTP/AVP, h263) }

Another has the set:

   { (audio, RTP/AVP, g711), (video, RTP/AVP, h261) }

The intersection yields:

   { (audio, RTP/AVP, g711) }

Therefrom, an SDP is generated:

v=2
...
c=...
m=audio RTP/AVP 96
a=rtpmap:96 g711

(Static PTs are not considered in this example).

This also shows where the difficulties with SDP are when trying to express
capability sets: You have to deal with (multicast) IP-adresses
and port numbers, although they have nothing to do with the capabilities
themselves, and often you need two lines, the m= line and the a:rtpmap line.

Often, codecs can be operated in many modes. It can become difficult to
find a compact syntax to express all possibilities. It seems to make more
sense to clearly define the semantics of a capability name, i.e. there
should be a detailed specification which modes and which options an
implementation of a codec MUST provide to allow the capability to be
contained in such sets.

regards, chris