Re: [MMUSIC] [rtcweb] Translating Plan A into No Plan (Was: No Plan)

Christer Holmberg <christer.holmberg@ericsson.com> Tue, 04 June 2013 13:25 UTC

Return-Path: <christer.holmberg@ericsson.com>
X-Original-To: mmusic@ietfa.amsl.com
Delivered-To: mmusic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2392721F9CB2 for <mmusic@ietfa.amsl.com>; Tue, 4 Jun 2013 06:25:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.08
X-Spam-Level:
X-Spam-Status: No, score=-5.08 tagged_above=-999 required=5 tests=[AWL=-0.631, BAYES_00=-2.599, HELO_EQ_SE=0.35, J_CHICKENPOX_12=0.6, J_CHICKENPOX_15=0.6, J_CHICKENPOX_18=0.6, RCVD_IN_DNSWL_MED=-4]
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 jDtLWGcNawbl for <mmusic@ietfa.amsl.com>; Tue, 4 Jun 2013 06:24:54 -0700 (PDT)
Received: from mailgw1.ericsson.se (mailgw1.ericsson.se [193.180.251.45]) by ietfa.amsl.com (Postfix) with ESMTP id A1A1D21F9C4A for <mmusic@ietf.org>; Tue, 4 Jun 2013 04:53:04 -0700 (PDT)
X-AuditID: c1b4fb2d-b7f5d6d000003d54-d6-51add51e79fb
Received: from ESESSHC001.ericsson.se (Unknown_Domain [153.88.253.125]) by mailgw1.ericsson.se (Symantec Mail Security) with SMTP id 76.D3.15700.E15DDA15; Tue, 4 Jun 2013 13:53:02 +0200 (CEST)
Received: from ESESSMB209.ericsson.se ([169.254.9.167]) by ESESSHC001.ericsson.se ([153.88.183.21]) with mapi id 14.02.0328.009; Tue, 4 Jun 2013 13:53:02 +0200
From: Christer Holmberg <christer.holmberg@ericsson.com>
To: Paul Kyzivat <pkyzivat@alum.mit.edu>, Emil Ivov <emcho@jitsi.org>
Thread-Topic: [rtcweb] Translating Plan A into No Plan (Was: No Plan)
Thread-Index: AQHOYKCLf/LJiFWy5UGn9OZbviAeCZkkYgWAgAAChQCAAQ10MA==
Date: Tue, 4 Jun 2013 11:53:02 +0000
Message-ID: <7594FB04B1934943A5C02806D1A2204B1C3826F4@ESESSMB209.ericsson.se>
References: <51A65017.4090502@jitsi.org> <51A65DB8.9060702@alum.mit.edu> <51A880A7.7010908@jitsi.org> <C5E08FE080ACFD4DAE31E4BDBF944EB113528171@xmb-aln-x02.cisco.com> <51A8EAB7.8080206@jitsi.org> <C5E08FE080ACFD4DAE31E4BDBF944EB11352940B@xmb-aln-x02.cisco.com> <51ACD224.8080100@jitsi.org> <51AD07B4.3070702@alum.mit.edu> <51AD0C5B.6080508@jitsi.org> <51AD0E78.8050100@alum.mit.edu>
In-Reply-To: <51AD0E78.8050100@alum.mit.edu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [153.88.183.17]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrNLMWRmVeSWpSXmKPExsUyM+Jvra7c1bWBBl2nLS3W7JzAYtExmc1i 6vLHLBYrNhxgdWDx+Pv+A5PHlN8bWT2WLPnJ5PH/TWAASxSXTUpqTmZZapG+XQJXxr+NFxkL XlhWPL+4hrGB8b92FyMnh4SAicTJq5+ZIGwxiQv31rN1MXJxCAkcZpQ4f3QLM4SzmFHi59St QFUcHGwCFhLd/7RBTBEBV4l5zxRBepkFIiTm797KDhIWFnCR2DcdbCRIxe6Px6BsJ4l1T34z gpSwCKhIfFnrChLmFfCVmHj5NNTWLmaJI/t62EESnAI6EruftLOB2IxAp30/tYYJYpW4xK0n 86FOFpBYsuc8M4QtKvHy8T9WkPkSAooSy/vlIMp1JBbs/sQGYWtLLFv4mhlir6DEyZlPWCYw is1CMnUWkpZZSFpmIWlZwMiyipE9NzEzJ73ccBMjMIIObvmtu4Px1DmRQ4zSHCxK4rx6vIsD hQTSE0tSs1NTC1KL4otKc1KLDzEycXBKNTBGqO3fqn+hfltkTOHeCb4xe09zpJrZO1VZ/qms rBfgWrdPJbRLhVc0g8VaTNSV5Yh2Str2ldXckgsP+2l/e8LZePFQ7qEZvbvrX7244WV1tWve I+0K8c+L+xtzvwTn3mKwm1wYoXJs3tx1wXsmbe67rT3bYVPS0XSGG/dkl29VltQpqt22KFOJ pTgj0VCLuag4EQC6M6kebgIAAA==
Cc: "Cullen Jennings \(fluffy\)" <fluffy@cisco.com>, "mmusic@ietf.org" <mmusic@ietf.org>
Subject: Re: [MMUSIC] [rtcweb] Translating Plan A into No Plan (Was: No Plan)
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Multiparty Multimedia Session Control Working Group <mmusic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mmusic>, <mailto:mmusic-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/mmusic>
List-Post: <mailto:mmusic@ietf.org>
List-Help: <mailto:mmusic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mmusic>, <mailto:mmusic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 04 Jun 2013 13:25:10 -0000

Hi,

>>> I don't understand why we would be talking about translating from one 
>>> of these plans to another. AFAIK they are *alternatives*, and that we 
>>> will at some point agree on one, and that will be the only one implemented.
>>
>> It has been pointed out that some existing non-WebRTC endpoints expect 
>> to get SDP "the Plan A way". Cullen asked how such devices could be 
>> made to communicate with "No Plan" browsers. This was my answer.
>>
>> Personally I haven't come across such devices so I can only speculate 
>> about the reasons why they work the way they work. Still I don't see 
>> why they shouldn't be able to talk to WebRTC browsers ... hence my answer.
>
> They clearly *don'* expect to get it the Plan A way (bundled).
> >
> I accept that there must be a variety of things that employ multiple
> (unbundled) m-lines, each on its own 5-tuple with one RTP stream.

I asked about that in a separate thread, but nobody replied, so I'll ask again :)

If the JS app receives multiple unbundled m- lines on the wire, does the JS app have to "convert" it into whatever Plan/Format supported by the API?

Regards,

Christer



>> On 6/3/13 1:28 PM, Emil Ivov wrote:
>>> Hey Cullen, Paul, all
>>>
>>> On 31.05.13, 22:19, Cullen Jennings (fluffy) wrote:
>>>> On 31.05.2013, at 12:23 PM, Emil Ivov <emcho@jitsi.org> wrote:
>>>>
>>>>> Certainly. Could you please post the SDP that you would like to 
>>>>> see translated in a way that's compatible with "No Plan"?
>>>>>
>>>>> Emil
>>>>
>>>> We can start with the SDP in plan A
>>>
>>> The example in "7.3. Many Videos" looks like a good start:
>>>
>>> http://tools.ietf.org/html/draft-roach-rtcweb-plan-a-00#section-7.3
>>>
>>> Here it is:
>>>
>>>      v=0
>>>      o=- 20518 0 IN IP4 198.51.100.1
>>>      s=
>>>      t=0 0
>>>      c=IN IP4 203.0.113.1
>>>      a=ice-ufrag:F7gI
>>>      a=ice-pwd:x9cml/YzichV2+XlhiMu8g
>>>      a=fingerprint:sha-1 42:89:c5:c6:55:9d:39:f9:b6:eb:e7
>>>      a=group:BUNDLE m0 m1 m2 m3
>>>
>>>      m=audio 56600 RTP/SAVPF 0 96
>>>      a=mid:m0
>>>      a=rtpmap:0 PCMU/8000
>>>      a=rtpmap:96 opus/48000
>>>      a=ptime:20
>>>      a=sendrecv
>>>      a=rtcp-mux
>>>      [ICE Candidates]
>>>
>>>      m=video 0 RTP/SAVPF 97 98
>>>      a=mid:m1
>>>      a=rtpmap:97 H264/90000
>>>      a=fmtp:97 profile-level-id=4d0028;packetization-mode=1
>>>      a=rtpmap:98 VP8/90000
>>>      a=sendrecv
>>>      a=rtcp-mux
>>>      a=bundle-only
>>>      a=ssrc:11111 cname:45:5f:fe:cb:81:e9
>>>
>>>      m=video 0 RTP/SAVPF 97 98
>>>      a=mid:m2
>>>      a=rtpmap:97 H264/90000
>>>      a=fmtp:97 profile-level-id=4d0028;packetization-mode=1
>>>      a=rtpmap:98 VP8/90000
>>>      a=sendrecv
>>>      a=rtcp-mux
>>>      a=bundle-only
>>>      a=ssrc:22222 cname:45:5f:fe:cb:81:e9
>>>
>>>      m=video 0 RTP/SAVPF 97 98
>>>      a=mid:m3
>>>      a=rtpmap:97 H264/90000
>>>      a=fmtp:97 profile-level-id=4d0028;packetization-mode=1
>>>      a=rtpmap:98 VP8/90000
>>>      a=sendrecv
>>>      a=rtcp-mux
>>>      a=bundle-only
>>>      a=ssrc:333333 cname:45:5f:fe:cb:81:e9
>>>
>>>
>>> An offer generated by a "No Plan" browser in this case would look 
>>> something like this:
>>>
>>>      v=0
>>>      o=- 20518 0 IN IP4 198.51.100.1
>>>      s=
>>>      t=0 0
>>>      c=IN IP4 203.0.113.1
>>>      a=ice-ufrag:F7gI
>>>      a=ice-pwd:x9cml/YzichV2+XlhiMu8g
>>>      a=fingerprint:sha-1 42:89:c5:c6:55:9d:39:f9:b6:eb:e7
>>>      a=group:BUNDLE m0 m1
>>>
>>>      m=audio 56600 RTP/SAVPF 96 0
>>>      a=mid:m0
>>>      a=rtpmap:96 opus/48000
>>>      a=rtpmap:0 PCMU/8000
>>>      a=ptime:20
>>>      a=sendrecv
>>>      a=rtcp-mux
>>>      [ICE candidates]
>>>
>>>      m=video 56602 RTP/SAVPF 97 98
>>>      a=mid:m1
>>>      a=rtpmap:97 H264/90000
>>>      a=fmtp:97 profile-level-id=4d0028;packetization-mode=1
>>>      a=rtpmap:98 VP8/90000
>>>      a=sendrecv
>>>      a=rtcp-mux
>>>      [ICE candidates]
>>>
>>> I. Talking to legacy
>>>
>>> In case you need to talk to an actual legacy (as in widely deployed 
>>> SIP) endpoint, the above would translate into a regular two-stream 
>>> call. Both Plan A and No Plan would lead to essentially the same 
>>> result (if we accept that older endpoints won't throw an exception 
>>> at the sight of 4 m= lines) so not much to discuss here.
>>>
>>> II. Talking to Plan A style endpoints
>>>
>>> If you need to talk to a Plan A endpoint you basically have the 
>>> following options:
>>>
>>> 1. You use JavaScript to prettify the "No Plan" SDP and turn it into 
>>> something that looks like "Plan A". Not my favourite option, but I 
>>> am sure some would like to use it. Maybe vendors of Plan A equipment 
>>> would even distribute JS libs that do this. It would basically all 
>>> come down to generating one ssrc attribute and two additional 
>>> m=lines and appending this to the existing SDP string.
>>>
>>> 2. The application retrieves SSRCs from the browser, adds additional 
>>> application-specific signalling to it and then sends the whole thing 
>>> to a signalling gateway. The gateway (which you would also have with 
>>> Plan
>>> A) would convert the SDP into what it needs it to be.
>>>
>>> The application specific signalling can look like this:
>>>
>>> {
>>>       "firstStream":
>>>       {
>>>           "SSRC": "11111",
>>>           "CNAME": "45:5f:fe:cb:81:e9"
>>>       },
>>>       "secondStream":
>>>       {
>>>           "SSRC": "22222",
>>>           "CNAME": "45:5f:fe:cb:81:e9"
>>>       },
>>>       "thirdStream":
>>>       {
>>>           "SSRC": "333333",
>>>           "CNAME": "45:5f:fe:cb:81:e9"
>>>       },
>>> }
>>>
>>> 3. In Plan B, section 3.1 talks about generating "Plan A" style SDP 
>>> with the help of .content properties. If browser vendors are willing 
>>> to implement support for this then I suppose it would be a third option.
>>>
>>> III. Talking to other WebRTC applications
>>>
>>> This is the fun case and the one we should be most concerned with. 
>>> Let's imagine that the answerer needs to add a fourth video stream. 
>>> To make this work endpoints would need to do the following:
>>>
>>> a) with Plan A and draft-roach-rtcweb-glareless-add:
>>>      - send application specific signalling to the offerer
>>>      - have a new O/A exchange
>>>
>>> b) with Plan A:
>>>      - have a new O/A exchange
>>>      - potentially risk glare with some impact on user experience
>>>
>>> c) with No Plan:
>>>      ... nothing
>>>
>>> I am intentionally not going into how all plans would require 
>>> additional metadata that would place SSRC 1 left and 2 right as I 
>>> don't think this conveys any meaningful differences.
>>>
>>> Comments on the above are welcome. We could also move to another 
>>> scenario from the Plan A draft, if you believe that 7.3 is not 
>>> representative enough.
>>>
>>> Emil
>>>
>>>
>>
>>
>

_______________________________________________
rtcweb mailing list
rtcweb@ietf.org
https://www.ietf.org/mailman/listinfo/rtcweb