Re: [Stox] Stox-media: Should XEP-176 translations have Require: ice?

Peter Saint-Andre - &yet <peter@andyet.net> Wed, 25 February 2015 04:38 UTC

Return-Path: <peter@andyet.net>
X-Original-To: stox@ietfa.amsl.com
Delivered-To: stox@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DB9AC1A1AB8 for <stox@ietfa.amsl.com>; Tue, 24 Feb 2015 20:38:13 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level:
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id n9u2rzwVb9Hg for <stox@ietfa.amsl.com>; Tue, 24 Feb 2015 20:38:11 -0800 (PST)
Received: from mail-ie0-f179.google.com (mail-ie0-f179.google.com [209.85.223.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D26DE1A1A7E for <stox@ietf.org>; Tue, 24 Feb 2015 20:38:10 -0800 (PST)
Received: by iecar1 with SMTP id ar1so2027612iec.0 for <stox@ietf.org>; Tue, 24 Feb 2015 20:38:10 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :cc:subject:references:in-reply-to:content-type :content-transfer-encoding; bh=7Tq1JKDTOvFlXsxpAU8/ZfkaUy+ybnkW3wcj3iUslRA=; b=bY7Rmmids8lYi4ptlHcUKa3EDJk4QFKsY70wnbSk6OF1UroWXBNoK9VyWtBI8Tt0Yz tqAi1rxpj/2Tpvy4Yb918HGE5FHCnlRStA63srx/beO7P5yg8GiOaPt7VOQBIZuP9Lf0 u+1c+hXKDpbTib9rv0mOZGXGDHjM9jFUynGj7mZwjJwvgetCdyWHrSAPgolwWye/MA7k cR1AtjvNsneqY6xypSOJreVidGWnrzUskwBwQA/85vP7AFnS3InreOJmTV9/0mMd5hSJ YtXFHo+gOuf0f9tDRtEhYi8XwCn5B4W9A9+MA7/Sep+OyipEvNnJBxSTt+EcDTAlC6Fe sPSw==
X-Gm-Message-State: ALoCoQklZVd/wCU9Vcv9hjfnHCwgi08J7aGFvgxmNP+06eEN8LAU/s50q+Izc9T9Pk6/2hNVkFck
X-Received: by 10.42.166.134 with SMTP id o6mr996885icy.79.1424839090265; Tue, 24 Feb 2015 20:38:10 -0800 (PST)
Received: from aither.local (c-73-34-202-214.hsd1.co.comcast.net. [73.34.202.214]) by mx.google.com with ESMTPSA id qs3sm9180318igb.8.2015.02.24.20.38.09 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 24 Feb 2015 20:38:09 -0800 (PST)
Message-ID: <54ED51AF.5040403@andyet.net>
Date: Tue, 24 Feb 2015 21:38:07 -0700
From: Peter Saint-Andre - &yet <peter@andyet.net>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.4.0
MIME-Version: 1.0
To: Jonathan Lennox <jonathan@vidyo.com>
References: <26E25338-948C-43FA-A0AE-880BD1CB49B0@vidyo.com> <532A645A.3080605@stpeter.im> <F3A5A36B-978D-4B50-8E24-A4D4AA77D370@ag-projects.com> <E95AAC63-26BF-48A9-A2D5-BEBB88B92567@vidyo.com> <5331BED1.3070202@jitsi.org> <CF55AE22-BC8C-41D2-ACDF-F36CB845A356@vidyo.com> <5331FF4D.8010900@stpeter.im> <E7E5D371-5B96-4D60-8C72-BF7DCA477465@vidyo.com>
In-Reply-To: <E7E5D371-5B96-4D60-8C72-BF7DCA477465@vidyo.com>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/stox/Zj69NkLNebfIida0Iocb9Ik3Rt4>
Cc: "stox@ietf.org" <stox@ietf.org>, Emil Ivov <emcho@jitsi.org>, Saúl Ibarra Corretgé <saul@ag-projects.com>
Subject: Re: [Stox] Stox-media: Should XEP-176 translations have Require: ice?
X-BeenThere: stox@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: SIP-TO-XMPP Working Group discussion list <stox.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/stox>, <mailto:stox-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/stox/>
List-Post: <mailto:stox@ietf.org>
List-Help: <mailto:stox-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/stox>, <mailto:stox-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Feb 2015 04:38:14 -0000

On 3/26/14 9:50 AM, Jonathan Lennox wrote:
>
> On Mar 25, 2014, at 6:12 PM, Peter Saint-Andre <stpeter@stpeter.im
> <mailto:stpeter@stpeter.im>> wrote:
>
>> On 3/25/14, 12:03 PM, Jonathan Lennox wrote:
>>>
>>> On Mar 25, 2014, at 1:37 PM, Emil Ivov <emcho@jitsi.org
>>> <mailto:emcho@jitsi.org>> wrote:
>>>
>>>> On 25.03.14, 15:15, Jonathan Lennox wrote:
>>>>>
>>>>> On Mar 25, 2014, at 4:55 AM, Saúl Ibarra Corretgé
>>>>> <saul@ag-projects.com <mailto:saul@ag-projects.com>> wrote:
>>>>>>>
>>>>>>>
>>>>>>>> It occurred to me that SIP has a way of saying "do ICE, or
>>>>>>>> fail the call": putting a "Require: ice" SIP option tag
>>>>>>>> (from RFC 5768) in the SIP INVITE.
>>>>>>>>
>>>>>>>> Should we recommend this?  It clearly has the right
>>>>>>>> semantics, and will prevent interop failure when a non-ICE
>>>>>>>> SIP endpoint answers a XEP-176 Jingle call.
>>>>>>>
>>>>>>> Theoretically that makes sense.
>>>>>>
>>>>>> Agreed. Maybe a gateway could do ICE on behalf of the non-ICE
>>>>>> capable endpoint, so can we say this is implementation specific
>>>>>> and thus add a MAY to it?
>>>>>
>>>>> Right, of course.  I was talking about how you’d want to handle a
>>>>> signaling-only gateway.
>>>>
>>>> There's also "XEP-0177: Jingle Raw UDP Transport Method" which is
>>>> basically equivalent to ICE-less SIP.
>>>>
>>>> That said, I don't mind mandating ICE at all.
>>>
>>> Right, but there’s no way for a Jingle client to offer a choice
>>> between XEP-176 and XEP-177, whereas RFC 5245 requires that both ICE
>>> and fallback non-ICE be supported.
>>
>> Well, an XMPP initiator would not offer the ice-udp transport method
>> if the responder didn't advertise support via XMPP service discovery
>> (i.e., only advertised support for raw-udp). So, in general, fallback
>> shouldn't really be necessary. However, we have defined a protocol
>> flow for it just in case:
>>
>> http://xmpp.org/extensions/xep-0176.html#fallback
>
> The problem with that flow is the statement "Based on capabilities
> information, the gateway knows that the SIP endpoint does not support
> ICE”.  Unfortunately, SIP doesn’t really have any workable way of
> providing capabilities information, which is why RFC 5245 (and so much
> of the rest of SIP) is single-exchange fallback.
>
> An alternative flow is possible, where you only send the
> transport-replace on the Jingle side if the SIP answer indicates no ICE
> support, and then send a SIP re-INVITE with the addresses in the
> transport-accept.  It’ll result a fairly substantial post-answer delay
> before the media will get through, though.
>
> Here’s a sketch:
>
> Romeo                    Gateway                    Juliet
>    |                         |                         |
>    |   session-initiate      |                         |
>    |   (audio definition)    |                         |
>    |------------------------>|                         |
>    |   ack                   |                         |
>    |<------------------------|   SIP INVITE (ICE)      |
>    |                         |------------------------>|
>    |   transport-replace     |   200 OK (Raw UDP)      |
>    |   (Raw UDP)             |<------------------------|
>    |<------------------------|                         |
>    |   ack                   |                         |
>    |------------------------>|                         |
>    |   transport-accept      |                         |
>    |------------------------>|                         |
>    |   ack                   |                         |
>    |<------------------------|   SIP INVITE (Raw UDP)  |
>    |                         |------------------------>|
>    |                         |   200 OK (Raw UDP)      |
>    |   session-accept        |<------------------------|
>    |<------------------------|                         |
>    |   ack                   |                         |
>    |------------------------>|                         |
>    |                    MEDIA SESSION                  |
>    |<=================================================>|
>    |                         |                         |
>

That seems reasonable but I'll give it more thought soon.

> This flow also relies on the SIP side not changing its local IP address
> and port in response to a re-INVITE with a changed address, or the XMPP
> side not changing its in response to a transport-replace maintaining raw
> UDP; otherwise, the gateway can get into an infinite
> re-INVITE/transport-replace loop.

Yes, we'll want to document those possibilities.

Peter

-- 
Peter Saint-Andre
https://andyet.com/