Re: [rtcweb] Requesting "SDP or not SDP" debate to be re-opened

"Matthew Kaufman (SKYPE)" <> Fri, 21 June 2013 20:20 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 41E9021F9C45 for <>; Fri, 21 Jun 2013 13:20:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.515
X-Spam-Status: No, score=-2.515 tagged_above=-999 required=5 tests=[AWL=0.083, BAYES_00=-2.599, HTML_MESSAGE=0.001]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id enba+fF6fonN for <>; Fri, 21 Jun 2013 13:20:09 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id C4C5821F9C21 for <>; Fri, 21 Jun 2013 13:20:07 -0700 (PDT)
Received: from ( by ( with Microsoft SMTP Server (TLS) id 15.0.707.0; Fri, 21 Jun 2013 20:20:05 +0000
Received: from ( by ( with Microsoft SMTP Server (TLS) id 15.0.707.0 via Frontend Transport; Fri, 21 Jun 2013 20:20:05 +0000
Received: from ([]) by ([]) with mapi id 14.03.0136.001; Fri, 21 Jun 2013 20:19:51 +0000
From: "Matthew Kaufman (SKYPE)" <>
To: Bossiel thioriguel <>, "" <>
Thread-Topic: [rtcweb] Requesting "SDP or not SDP" debate to be re-opened
Date: Fri, 21 Jun 2013 20:19:50 +0000
Message-ID: <>
References: <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
x-originating-ip: []
Content-Type: multipart/alternative; boundary="_000_AE1A6B5FD507DC4FB3C5166F3A05A4841A2E3F53TK5EX14MBXC273r_"
MIME-Version: 1.0
X-Forefront-Antispam-Report: CIP:; CTRY:US; IPV:CAL; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(51704005)(189002)(199002)(24454002)(479174003)(377454003)(63696002)(47736001)(51856001)(47976001)(33656001)(55846006)(44976004)(54316002)(81542001)(74876001)(49866001)(81342001)(56776001)(4396001)(74366001)(20776003)(71186001)(16297215004)(50986001)(80022001)(46102001)(76786001)(69226001)(65816001)(53806001)(66066001)(76482001)(15202345003)(76796001)(74706001)(54356001)(56816003)(31966008)(77096001)(16236675002)(59766001)(16406001)(79102001)(74662001)(47446002)(74502001)(6806003)(512934002)(77982001); DIR:OUT; SFP:; SCL:1; SRVR:BY2FFO11HUB038;; CLIP:; RD:InfoDomainNonexistent; MX:1; A:1; LANG:en;
X-O365ENT-EOP-Header: Message processed by - O365_ENT: Allow from ranges (Engineering ONLY)
X-Forefront-PRVS: 0884AAA693
Cc: "" <>
Subject: Re: [rtcweb] Requesting "SDP or not SDP" debate to be re-opened
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 21 Jun 2013 20:20:19 -0000

Bossiel thioriguel : "I don't really understand the issue with the O/A model. SDP or not SDP you'll always offer something and answer something. I'm I missing?"

What you are missing is that you *don't* "always offer something and answer something. There is a completely different programming model where the server or program executing on the client is entirely in control of what happens.

As an example, if I say "draw a box that is 10 pixels wide and 10 pixels high" that's me telling the browser what to do. With offer/answer, I would say "I would like a box, what size boxes can you draw?" and the browser would respond with a list, and I would pick one of those.

RTCWEB is the *only* case where someone is seriously proposing an API that doesn't allow the programmer to directly control the behavior of the browser.

Matthew Kaufman

From: [] On Behalf Of Bossiel thioriguel
Sent: Friday, June 21, 2013 2:40 AM
Subject: Re: [rtcweb] Requesting "SDP or not SDP" debate to be re-opened


I'm registered on this group since the beginning but this is my first post on this thread. So, I presente myself: Mamadou DIOP and I'm working for Doubango Telecom where we're building SIP endpoints, gateways, TelePresence/Telemedicine systems... all focused on SIP/IMS/LTE/RCS-e and open source.

What I'm talking about is not just feeling but something I've experienced.

Using the current WebRTC we have managed to *easily* build almost all kind of applications: click-to-call, SIP/IMS clients, gateways to PSTN, MCUs, Telemedicine systems...and haven't seen any major issue. It's true that it's not natural to "hack" a blob SDP to implement features like hold/resume, media update, early media ... but it works and there are demo applications showing it. If there is something more beautiful we just want to see it in action and test it.

Many participants here have said that what they want is something close to CU-RTC-WEB. Don't really know if they tried to build applications using it or not but in my case I have.
My reference:
First on Windows 8 but haven't gone far as there is no documentation to get started. Then, OSX and luckily there was a readme with two links for testing (only one work). You need to open 3 pages (1 master, 2 slaves) and check "send audio" on both slaves to header sound. Many javascript files and no documentation. It's said on these blogs that interop with SIP networks is easy but it's not my feeling ...I just want to see one :)

I don't really understand the issue with the O/A model. SDP or not SDP you'll always offer something and answer something. I'm I missing?

For the current WebRTC, Google open sourced their engine, produced drafts, a working implementation in chrome, a mailing-list to help developers, demo applications, documentation... we just want to see the same from any company asking to rewrite everything.

I'm not saying the current WebRTC implementation is perfect but I have seen my 14 year old nephew developing an audio/video chat for his homework :)


De : Iñaki Baz Castillo <<>>
À : Emil Ivov <<>>
Cc : "<>" <<>>
Envoyé le : Vendredi 21 juin 2013 1h24
Objet : Re: [rtcweb] Requesting "SDP or not SDP" debate to be re-opened

2013/6/21 Emil Ivov <<>>:
> On 20.06.13, 23:49, Iñaki Baz Castillo wrote:
>> In JsSIP we are getting frustrated trying to implement the "hold" /
>> "unhold" feature because it requires SDP parsing and mangling. Sending
>> a re-INVITE with a modified SDP (now with a video track enabled) seems
>> to work (after lot of pain) but we still miss a reliable API to know
>> what the new SDP means. Instead we need to parse the SDP to detect
>> global (or per m=) line attributes like "a=inactive" or "a=sendonly"
>> etc etc. It's really painful.
> I am having a problem following what you are trying to achieve here. In
> JsSIP you seem to be going for a full SIP implementation in the browser. If
> this is true and if this WG decides to remove SDP from the API surface, then
> you would need to completely parse SDP in the JS and then convert it into
> API calls. Similarly, when creating offers and answers you would need to
> construct SDP all by yourself.

And we will do it very happily because then we will know what
*exactly* we are sending on-the-wire.

> So I am not sure why the SDP parsing in the current situation is so much of
> a blocker for your use case.

Because regardless I am a SIP-guy, I understand that the main mission
of WebRTC is to provide realtime communications *for* the WWW, and not
to enable a new interface for like-telephony-bussines.

Today I'm doing SIP. Tomorrow I may be doing
[[put_here_a_future_RTC_protocol_not_based_on_SDP]] and then I don't
want to be constrained by decisions made today that force any future
RTC protocol to deal with SDP O/A model.


>> BTW I don't know wheter you support PlanA, PlanB or NoPlan, but I did
>> a question (in this case about NoPlan) for which I got no response,
>> and honestly I would like to see it replied regardless the solution
>> uses PlanA, PlanB or NoPlan model:
> The other option would be indeed to do the same thing in JS. I believe this
> is JsSIP's use case. In that case however, regardless of whether you choose
> Plan A, Plan B, No Plan or CU-RTC-Web, you will inevitably be exposed to a
> fair amount of complexity, parsing and JS magic.
> You are, after all, building a SIP stack.

Yes, but JsSIP creates its own SIP messages to be sent in the wire, so
we have full control over *what* we create and send. Those SIP
messages are not provided by the WebRTC API. But for the SDP
component, JsSIP retreives a SDP blob string from the PC.

> In the above mail you also say:
>> Another example:
>> * I am a powerful SIP conference server which properly implements
>> WebRTC. I initiate a call to 5 users (running JS SIP app in their
>> browsers). The initial INVITE has SSRC/MSID fields in the SDP
>> identifying all the participants, am I right?
> No, with No Plan there are no SSRCs and MSIDs in the SDP that comes from the
> browser.


>> * Later, during the conference, I call to another 6th participant and
>> enter him into the conference, so I need to send a re-INVITE to every
>> participant with a modified version of the SDP (note that this is SIP
>> protocol, so I need to use SIP messages to carry the new info about
>> SSRC/MSID and so on).
> That's the thing. You don't need that. In Jitsi we do exactly this operation
> with no Offer/Answer signalling. RTP carries enough information to process
> streams and we use upper layer signalling (4575) for things such as mapping
> SSRCs to users and announcing current participant list.

That is much better than Plan A and Plan B.

BTW: What would happen in NoPlan if the remote (i.e. a SIP
gateway/endpoing) sends you a re-INVITE for "hold" purposes and you
pass the SDP to your PC? or you should not pass the SDP to your PC?
and if so, what about if the SDP contains updated ICE candidates due
to remote peer network mobility?

Thanks a lot for your response.

Iñaki Baz Castillo
rtcweb mailing list<>