Re: [MMUSIC] BUNDLE and DATA CHANNEL - Paul's example

Christer Holmberg <christer.holmberg@ericsson.com> Mon, 29 April 2013 14:41 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 C627521F9E02 for <mmusic@ietfa.amsl.com>; Mon, 29 Apr 2013 07:41:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.349
X-Spam-Level:
X-Spam-Status: No, score=-5.349 tagged_above=-999 required=5 tests=[AWL=-0.900, BAYES_00=-2.599, HELO_EQ_SE=0.35, J_CHICKENPOX_111=0.6, J_CHICKENPOX_12=0.6, J_CHICKENPOX_15=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 j27TLdsKNv7E for <mmusic@ietfa.amsl.com>; Mon, 29 Apr 2013 07:41:46 -0700 (PDT)
Received: from mailgw1.ericsson.se (mailgw1.ericsson.se [193.180.251.45]) by ietfa.amsl.com (Postfix) with ESMTP id 8375121F9E01 for <mmusic@ietf.org>; Mon, 29 Apr 2013 07:41:45 -0700 (PDT)
X-AuditID: c1b4fb2d-b7f316d0000028db-08-517e86a89ea1
Received: from ESESSHC010.ericsson.se (Unknown_Domain [153.88.253.125]) by mailgw1.ericsson.se (Symantec Mail Security) with SMTP id 21.BD.10459.8A68E715; Mon, 29 Apr 2013 16:41:44 +0200 (CEST)
Received: from ESESSMB209.ericsson.se ([169.254.9.167]) by ESESSHC010.ericsson.se ([153.88.183.48]) with mapi id 14.02.0328.009; Mon, 29 Apr 2013 16:41:44 +0200
From: Christer Holmberg <christer.holmberg@ericsson.com>
To: Paul Kyzivat <pkyzivat@alum.mit.edu>
Thread-Topic: [MMUSIC] BUNDLE and DATA CHANNEL - Paul's example
Thread-Index: AQHOROerK6zVj1eHRk6swZvbxIJomw==
Date: Mon, 29 Apr 2013 14:41:43 +0000
Message-ID: <7594FB04B1934943A5C02806D1A2204B1C3682C9@ESESSMB209.ericsson.se>
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+NgFlrHLMWRmVeSWpSXmKPExsUyM+Jvre6KtrpAg/YTWhZTlz9msVix4QCr A5PH3/cfmDyWLPnJFMAUxWWTkpqTWZZapG+XwJUxo4OrYLt4xcM37awNjM2CXYycHBICJhJf zv5mhLDFJC7cW8/WxcjFISRwmFHizsod7BDOEkaJE/tmsXQxcnCwCVhIdP/TBjFFBDQkJm1V AzGZBdQlri4OAjGFBewknnz2BJkoImAvseL+f0aIYj2JiTvCQcIsAqoSd+eeYgKxeQV8JZZ9 +AVmMwId8P3UGjCbWUBc4taT+UwQhwlILNlznhnCFpV4+fgfK8hICQFFieX9chDlOhILdn9i g7C1JZYtfM0MMV5Q4uTMJywTGEVmIZk6C0nLLCQts5C0LGBkWcXInpuYmZNebriJERjmB7f8 1t3BeOqcyCFGaQ4WJXHe6VKVgUIC6YklqdmpqQWpRfFFpTmpxYcYmTg4pRoYPZTkDRfZOTZK znqhyrv+3001u+bLL6fMfPTNbdqHhxmMm1z/beJLLG24nx/M0XFZr9twtdvXuPhb030WF5tP NrBnviPAsFWh40dYxpQeyae1nx59uat994p8o8MklonFG6Z/KCzZyb2B6eDSLQkxyhaLHvNE 3t67ok7wBZvoBP9HVz3muR19pMRSnJFoqMVcVJwIAE9YBFFBAgAA
Cc: "mmusic@ietf.org" <mmusic@ietf.org>
Subject: Re: [MMUSIC] BUNDLE and DATA CHANNEL - Paul's example
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: Mon, 29 Apr 2013 14:41:47 -0000

Hi,

> For instance, consider the following:
>
>        ...
>        c=IN IP4 host.biloxi.com
>        a=group:BUNDLE m1 m2 m3 m4
>        m=audio 20000 RTP/SAVPF 0
>        a=mid:m1
>        a=ssrc:12345 cname:user@example.com
>        a=max-send-ssrc:{*:1}
>        a=max-recv-ssrc:{*:1}
>        ...
>        m=video 20000 RTP/SAVPF 96 98
>        a=mid:m2
>        a=ssrc:5678 cname:user@example.com
>        a=max-send-ssrc:{*:1}
>        a=max-recv-ssrc:{*:1}
>        ...
>        m=video 20000 RTP/SAVPF 96 98
>        a=mid:m3
>        a=max-send-ssrc:{*:4}
>        a=max-recv-ssrc:{*:4}
>        ...
>        m=application 20000 DTLS/SCTP ...
>        a=mid:m4
>        ...
>
> We have four bundled m-lines. We have one proto (RTP/SAVPF) in three
> m-lines, and another (DTLS/SCTP) in the other m-line. From a protocol
> layering perspective we have:
>
>    m1      m2      m3      m4
>    =====   =====   =====   ====
>    SAVPF   SAVPF   SAVPF   SCTP
>    RTP     RTP     RTP     DTLS
>    UDP     UDP     UDP     UDP
>    IP      IP      IP      IP
>
> So, the first demux that must be done is to distinguish RTP from DTLS.
> DTLS has been designed to have a field that distinguishes it from
> RTP/RTCP/ICE, so that can perhaps be considered a default demux
> algorithm for that.

Correct.

> Because there is only one SCTP m-line, that is enough to identify those
> packets that should be bound to m4.

In your example there is only one SCTP m- line, and in WebRTC I guess it will also be the case, but SDP doesn't prevent you from using multiple SCTP m- lines - unless BUNDLE explicitly forbids it, that is.

> But we need to use something else to sort out the RTP.
>
> In this example, payload type can be used to distinguish audio from
> video. But there may be cases where that isn't possible. If we want to
> allow this mechanism, then perhaps we need some way to signal that it
> should be used. Or *maybe* we could count on it being inferred. Assuming
> that is used, then it is sufficient to identify those packets that
> belong to m1.
>
> Or, because m1 is marked as having at most one ssrc, and the ssrc value
> (1234) is specified, that could be used to bind packets to m1.
>
> Similarly, RTP packets having ssrc=5678 can be bound to m2.
>
> m3 supports multiple unspecified SSRCs. Since there is only one m-line
> that does, all the packets with pt 96 or 98 and with an ssrc other than
> 1234 or 5678 can be bound to m3.
>
> I'm undecided if we can count on inferring this decision logic from
> existing signaling options, or if we ought to signal the choices more
> explicitly.

At least I think that, based on e-mail discussions, we most likely cannot rely on unique payload type values for each RTP flow. 

(Nothing of course forbids users from using unique payload type values.)

Regards,

Christer