[MMUSIC] draft-ivov-dispatch-trickle-ice-sip/draft-ivov-mmusic-trickle-ice
Marc Petit-Huguenin <petithug@acm.org> Tue, 02 April 2013 15:45 UTC
Return-Path: <petithug@acm.org>
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 88CD321F8BBC for <mmusic@ietfa.amsl.com>; Tue, 2 Apr 2013 08:45:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.6
X-Spam-Level:
X-Spam-Status: No, score=-102.6 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, NO_RELAYS=-0.001, USER_IN_WHITELIST=-100]
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 FcuB9cBtvknY for <mmusic@ietfa.amsl.com>; Tue, 2 Apr 2013 08:45:06 -0700 (PDT)
Received: from implementers.org (implementers.org [IPv6:2604:3400:dc1:41:216:3eff:fe5b:8240]) by ietfa.amsl.com (Postfix) with ESMTP id 3B84721F8BA6 for <mmusic@ietf.org>; Tue, 2 Apr 2013 08:45:06 -0700 (PDT)
Received: from [IPv6:2601:9:4bc0:1f:3030:2e3e:5f01:6685] (unknown [IPv6:2601:9:4bc0:1f:3030:2e3e:5f01:6685]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client CN "Marc Petit-Huguenin", Issuer "implementers.org" (verified OK)) by implementers.org (Postfix) with ESMTPS id 27960202D8 for <mmusic@ietf.org>; Tue, 2 Apr 2013 17:45:05 +0200 (CEST)
Message-ID: <515AFCFE.7030608@acm.org>
Date: Tue, 02 Apr 2013 08:45:02 -0700
From: Marc Petit-Huguenin <petithug@acm.org>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.12) Gecko/20130116 Icedove/10.0.12
MIME-Version: 1.0
To: "mmusic@ietf.org" <mmusic@ietf.org>
X-Enigmail-Version: 1.4.1
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Subject: [MMUSIC] draft-ivov-dispatch-trickle-ice-sip/draft-ivov-mmusic-trickle-ice
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, 02 Apr 2013 15:45:07 -0000
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 I read draft-ivov-dispatch-trickle-ice-sip and draft-ivov-mmusic-trickle-ice during the preparation of the rfc5245bis draft and I have some suggestions that I will be presenting step by step below: 1. The 180 needs to be reliable In section 6 of trickle-ice-sip, the Answer is carried by a 180 response, which can be lost before the INFO request is received. The 180 will probably be resent later, but that still does not look right to send new candidates without be sure that the first batch of candidates have been received. PRACK seems the right solution to this issue. Also 183 seems a better fit than 180, at least until all the candidates are sent, but that's not really important. That gives us this call flow: STUN/Turn STUN/TURN Servers Alice Bob Servers | | | | |<--------------| | | | Candidate | | | | Discovery | | | |-------------->| INVITE (Offer) | | | |------------------------>| | | | 183 (Answer) |-------------->| | |<------------------------| | | | PRACK | | | |------------------------>| | | | 200 PRACK | | | |<------------------------| | | | | | | | INFO (more candidates) | Candidate | | |<------------------------| | | | Connectivity Checks | | | |<=======================>| Discovery | | | INFO (more candidates) |<--------------| | |<------------------------| | | | 180 | | | |<------------------------| | | | Connectivity Checks | | | |<=======================>| | | | | | | | 200 OK | | | |<------------------------| | | | | | | | 5245 SIP re-INVITE | | | |------------------------>| | | | 200 OK | | | |<------------------------| | | | | | | | | | | |<===== MEDIA FLOWS =====>| | | | | | 2. Use UPDATE instead of INFO UPDATE works as well as INFO, and is more SIPish. Here's the call flow: STUN/Turn STUN/TURN Servers Alice Bob Servers | | | | |<--------------| | | | Candidate | | | | Discovery | | | (1) |-------------->| INVITE (Offer) | | | |------------------------>| | (2) | | 183 (Answer) |-------------->| | |<------------------------| | | | PRACK | | | |------------------------>| | | | 200 PRACK | | | |<------------------------| | | | | | (3) | | UPDATE (more cands) | Candidate | | |<------------------------| | (4) | | 200 UPDATE | | | |------------------------>| Discovery | | | Connectivity Checks | | | |<=======================>| | (5) | | UPDATE (last cands) |<--------------| | |<------------------------| | (6) | | 200 UPDATE | | | |------------------------>| | | | 180 | | | |<------------------------| | | | Connectivity Checks | | | |<=======================>| | | | | | | | 200 INVITE | | | |<------------------------| | | | | | | | 5245 SIP re-INVITE | | | |------------------------>| | | | 200 reINVITE | | | |<------------------------| | | | | | | | | | | |<===== MEDIA FLOWS =====>| | | | | | 3. Use accumulated candidate list As far as I understand the documents, the candidates are sent as soon as they are discovered. I think that it would be better to send an accumulated list of candidates instead of the delta list of candidates. The priority calculation and the elimination of redundant candidates do not need to know the complete list of candidate to work, but sending the accumulated list instead of a delta could permit in the future to remove candidates, if we find a need to do so. This also removed the need for sdpfrag. But the most important reason is for the next step. 4. Replace end-of-candidates attribute by precandidate attributes There is currently an end-of-candidates attribute that is sent to signal the end of the candidate gathering phase. I think it is better to do it the opposite way, i.e. to send candidates as they are discovered under a different attribute name, and then to send all the candidates only when the gathering phase is done. Here's the partial SDPs exchanged in the call flow in 2) but skipping one update (examples are from RFC 5245): (1) Alice sends all the candidates after the end of the gathering phase (half-trickle). She also signals that she supports trickle. a=ice-options:trickle a=candidate:1 1 UDP 2130706431 192.0.2.1 3478 typ host (2) Bob knows that Alice supports half trickle, so he sends only the host candidates, which is all he has so far, but using the attribute precandidate instead of candidate. He sends them in a reliable 183: a=ice-options:trickle a=precandidate:1 1 UDP 2130706431 10.0.1.1 8998 typ host a=precandidate:1 1 UDP 2130706431 10.0.1.2 8998 typ host If Bob supported ICE but not trickle, he would have answered with its complete list of candidates. (3) Bob discovers some candidates, but there is more to come, so it sends a accumulated list of precandidates: a=ice-options:trickle a=precandidate:1 1 UDP 2130706431 10.0.1.1 8998 typ host a=precandidate:2 1 UDP 1694498815 192.0.2.3 45664 typ srflx raddr 10.0.1.1 rport 8998 a=precandidate:1 1 UDP 2130706431 10.0.1.2 8998 typ host (4) Alice responds with the same SDP than in (1) (5) Bob receives the last batch of candidates, so now it sends an SDP containing the all the candidates, as if it did not understand trickle.: a=ice-options:trickle a=candidate:1 1 UDP 2130706431 10.0.1.1 8998 typ host a=candidate:2 1 UDP 1694498815 192.0.2.3 45664 typ srflx raddr 10.0.1.1 rport 8998 a=candidate:1 1 UDP 2130706431 10.0.1.2 8998 typ host (6) Alice sends back the same SDP. Because Bob use candidate attributes instead of precandidate, she knows that she has all the candidates, as if end-of-candidates was received. - -- Marc Petit-Huguenin Email: marc@petit-huguenin.org Blog: http://blog.marc.petit-huguenin.org Profile: http://www.linkedin.com/in/petithug -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIcBAEBCAAGBQJRWvz6AAoJECnERZXWan7Ez6YQAIP3FzJHMD+X135/jr2ZpUYO J3Ogf/JfoOC8Wwwe+btmWG3KuLMnaqzmQnmJNpdypyaEQN6ExK+giMZ136D/R8JH MVwdL5T+NMRZSLfJwgkDK+gnZgJx8aKfIycB3RRQWgY1tXNuQhPyZsE20V5k2Rli 6vz6sJ9eN4p4e7WhKRSuc9+IhLYAkAmPTRd6JVhF6aHGED8PMNI/AYNo+SJuwaJh uDXoUPuox1W/zN9DocsTdeNo3rK0gLT59WHHmHEcMpyyjsjjcUm0RYHt0NIhaQ+0 snpKFx5akZWUMN8R+IqmXnMVIYlXxVkHxLJFbAYLRYOUFGDJJp22p13i14WvSF4r mM7mVDuWIBd9DBIB6UH4PGKcU9gPhXif+37S2gB5LNofVgOBvvt4jcHPMxgII8Wm eybWcfc1YseKhqsJq4DqJ0cc3vnxfyL0rfb22uB/E82cErLz6fyxjKJhGhuqyyKR FAWXXjxKMfQOsThMlobvDjMR2oTyjz8IZc65MdOU+bQHy2SSPVxQjX6xMVSVR4yr Z66GZsJkdg5mw0h6scS+T4dbF+/4a6tUG/0hCTvhaI3vyULmBf/YLg5VdodP1HzJ GUIDFEzR9whKt0+nkwAumLPpHmTbIF7VuWg/YZmbq5tqY2n4gpuUDfCk7pusuBRb yk3C5OOf2RWXhf6ekDuf =jzXd -----END PGP SIGNATURE-----
- [MMUSIC] draft-ivov-dispatch-trickle-ice-sip/draf… Marc Petit-Huguenin
- Re: [MMUSIC] draft-ivov-dispatch-trickle-ice-sip/… Stach, Thomas
- Re: [MMUSIC] draft-ivov-dispatch-trickle-ice-sip/… Marc Petit-Huguenin
- Re: [MMUSIC] draft-ivov-dispatch-trickle-ice-sip/… Paul Kyzivat
- Re: [MMUSIC] draft-ivov-dispatch-trickle-ice-sip/… Paul Kyzivat
- Re: [MMUSIC] draft-ivov-dispatch-trickle-ice-sip/… Marc Petit-Huguenin
- Re: [MMUSIC] draft-ivov-dispatch-trickle-ice-sip/… Emil Ivov
- Re: [MMUSIC] draft-ivov-dispatch-trickle-ice-sip/… Paul Kyzivat
- Re: [MMUSIC] draft-ivov-dispatch-trickle-ice-sip/… Marc Petit-Huguenin
- Re: [MMUSIC] draft-ivov-dispatch-trickle-ice-sip/… Emil Ivov
- Re: [MMUSIC] draft-ivov-dispatch-trickle-ice-sip/… Emil Ivov
- Re: [MMUSIC] draft-ivov-dispatch-trickle-ice-sip/… Alan Johnston
- [MMUSIC] Using connectivity check to carry additi… Marc Petit-Huguenin
- Re: [MMUSIC] draft-ivov-dispatch-trickle-ice-sip/… Stach, Thomas
- Re: [MMUSIC] draft-ivov-dispatch-trickle-ice-sip/… Emil Ivov
- Re: [MMUSIC] draft-ivov-dispatch-trickle-ice-sip/… Paul Kyzivat
- Re: [MMUSIC] Using connectivity check to carry ad… Martin Thomson
- Re: [MMUSIC] Using connectivity check to carry ad… Marc Petit-Huguenin
- Re: [MMUSIC] draft-ivov-dispatch-trickle-ice-sip/… Emil Ivov
- Re: [MMUSIC] draft-ivov-dispatch-trickle-ice-sip/… Stach, Thomas
- Re: [MMUSIC] draft-ivov-dispatch-trickle-ice-sip/… Stach, Thomas
- Re: [MMUSIC] draft-ivov-dispatch-trickle-ice-sip/… Emil Ivov
- [MMUSIC] Trickle ICE Dale R. Worley
- Re: [MMUSIC] draft-ivov-dispatch-trickle-ice-sip/… Stach, Thomas
- Re: [MMUSIC] draft-ivov-dispatch-trickle-ice-sip/… Paul Kyzivat
- Re: [MMUSIC] Trickle ICE Stach, Thomas
- Re: [MMUSIC] draft-ivov-dispatch-trickle-ice-sip/… Stach, Thomas