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

Iñaki Baz Castillo <ibc@aliax.net> Thu, 20 June 2013 23:24 UTC

Return-Path: <ibc@aliax.net>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7CF4121E80AD for <rtcweb@ietfa.amsl.com>; Thu, 20 Jun 2013 16:24:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.661
X-Spam-Level:
X-Spam-Status: No, score=-1.661 tagged_above=-999 required=5 tests=[AWL=0.017, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, MIME_8BIT_HEADER=0.3, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1vKM5Zpj2yQr for <rtcweb@ietfa.amsl.com>; Thu, 20 Jun 2013 16:24:35 -0700 (PDT)
Received: from mail-qc0-x231.google.com (mail-qc0-x231.google.com [IPv6:2607:f8b0:400d:c01::231]) by ietfa.amsl.com (Postfix) with ESMTP id 8006F21E80B9 for <rtcweb@ietf.org>; Thu, 20 Jun 2013 16:24:29 -0700 (PDT)
Received: by mail-qc0-f177.google.com with SMTP id n1so4123326qcx.22 for <rtcweb@ietf.org>; Thu, 20 Jun 2013 16:24:29 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding:x-gm-message-state; bh=u/kREXIGyrA/uUnwxWew2c/M/zpwgGiIvd5MTZg7ulg=; b=bcMP26j9nQVqQvA/SJM/qlo5geZNfld6nHetiJZhlskq/rzz38ffs2p09tdy5w72t3 jGTYwGEo5c5PUChxZA4aTpyDdI1a83xzKvc9By7O9KJY1Gnw/I310626ooZsNdmhQRvu LlIu/A+PqC+/PdQPCkFSzZUYpg3x+tUHYTHPwchFRYoQwSuhpNPnQt/vXruKDdNDEBhN acMMLMGh7skoAivAmo3ofD14VGiM0QYvUyjpBrZKJ4WJYxh7LKifypXcV/83FBjTdIRn mCChkmGgESuNxjK8DNEc55FkPJ8wH0wzTs2CsZ8bbO+ahh8g6RcZw85p4uOuKGe8hYhY rhIQ==
X-Received: by 10.229.21.201 with SMTP id k9mr577733qcb.91.1371770669406; Thu, 20 Jun 2013 16:24:29 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.49.67.65 with HTTP; Thu, 20 Jun 2013 16:24:09 -0700 (PDT)
In-Reply-To: <51C38356.3020402@jitsi.org>
References: <CALiegfkajJPxWZTzjYssP91VW+StStLpxoxGCkjOLKDMUWc0rA@mail.gmail.com> <CABkgnnWfV=5xBaRqAddqUURThs9J4T4+0HK4Ux07VA51r5oC3Q@mail.gmail.com> <CAJrXDUFNGKvWHw-yqeApEdTeuqMNPTDxvdKZ2DuzANmcR2y2CQ@mail.gmail.com> <7594FB04B1934943A5C02806D1A2204B1C3AE500@ESESSMB209.ericsson.se> <CAJrXDUHCkQSLab2UuY_vWP3Gr8uh+++c9mDq5f4sCpuaK5aeLQ@mail.gmail.com> <51C1B907.8060508@hookflash.com> <CAJrXDUG06jvPvhfNwZ6Puzxj7E4XxELG_fU=S7B_c=tnC9eoNQ@mail.gmail.com> <78192824-A516-4376-8D4F-3B052ED47A0C@matthew.at> <CAJrXDUGOYc_Z_qWD7J0ZzVdfwYOacH_p5PjZEg5aP1LUetffMA@mail.gmail.com> <51C1F2E9.20405@hookflash.com> <51C1F5ED.9090308@matthew.at> <51C20FAA.4050701@hookflash.com> <CABkgnnWw9anT+h_hnF14nBChS73qpTb31hSM=p2KnGrcRPGRJA@mail.gmail.com> <51C3209B.1030501@alvestrand.no> <CALiegfkEpwxNZL8TU0ofCzRB_Gza+NoSnZpGcM=tuYBOXmHsZQ@mail.gmail.com> <51C335F9.4000900@alvestrand.no> <CALiegfk_wwvdSixFYWpBBdUNfXxmcOwCnRsjyS6J3M9WG_dJCg@mail.gmail.com> <51C38356.3020402@jitsi.org>
From: =?UTF-8?Q?I=C3=B1aki_Baz_Castillo?= <ibc@aliax.net>
Date: Fri, 21 Jun 2013 01:24:09 +0200
Message-ID: <CALiegfm1xYpAnmrg=4vx_06RZQTo_RS2nFJoidpoQtjg2kn=Vw@mail.gmail.com>
To: Emil Ivov <emcho@jitsi.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Gm-Message-State: ALoCoQl+3S0JYSO0WOCCKriLtX5RXFGcQSIQC5+Bvywgq7kLpztzXHNY9oTX65R3NNHpTeLv3jJV
Cc: "rtcweb@ietf.org" <rtcweb@ietf.org>
Subject: Re: [rtcweb] Requesting "SDP or not SDP" debate to be re-opened
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtcweb>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 20 Jun 2013 23:24:36 -0000

2013/6/21 Emil Ivov <emcho@jitsi.org>rg>:
>
> 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:
>>
>> http://www.ietf.org/mail-archive/web/rtcweb/current/msg07871.html
>>
> 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.

OK


>> * 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
<ibc@aliax.net>