I see some very confused people on this list who get befuddled by
unfamiliar terms.
SDP is irrelevant. People asking for new API (me included) as well as
existing API authors (at least Cullen) are saying that SDP should not be
used to control WebRTC. Everything should be controlled via constraints. I
do not disagree. My point is, if we have constraints to control everything,
and we add ability to see what constraints are supported, and the current
values of constraints, why do we need SDP? If everything is exposed, why do
we need this blob? Why not remove this and get rid of extra standardization
burden and extra dependencies on other standard groups?
I think there is a consensus that RTP (DTLS-SRTP and potentially SDES-SRTP)
will be used for media. There is no reason to change this now. Changing it
will not make API simpler. RTP is fairly light weight and well suited for
real time media. Something better can be invented in the future but RTP
will work great for now.
Bigger issue is offer/answer. It is a really awkward API. No SIP phone or
other SIP device implements all of its functionality internally via offer
answer. Offer/answer is exposed to the network, but user interface works
through a separate API. With WebRTC we created something unique where local
interactions with the device needs to go through something which is a
network API. And this does not take into account that offer/answer has
multiple different variations on how it can be implemented and still be
compliant. Or the fact that other negotiation schemes exist which are not
offer/answer. Or that offer/answer was a dirty hack to begin with to adapt
multicast session announcements to peer connection negotiation.
Offer/answer tends to combine multiple unrelated things (transport
parameters and media parameters) into a single negotiation unit. It
introduces state machine makes things asynchronous when they should not
have to. Bottom line, we took something which was barely working and used
for a purposes it was not intended to being with. Fixing this will not make
things more complex or produce more complicated applications then current
API. Hopefully it will clean up the confusion and provides a better path
to new features such as bundle.
_____________
Roman Shpount