Re: [Stox] I-D Action: draft-ietf-stox-media-02.txt

Philipp Hancke <> Tue, 17 December 2013 18:55 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 35E7A1AE2BC for <>; Tue, 17 Dec 2013 10:55:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -0.701
X-Spam-Status: No, score=-0.701 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, J_CHICKENPOX_18=0.6, J_CHICKENPOX_54=0.6, SPF_PASS=-0.001] autolearn=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id cYxkVSYIV2X1 for <>; Tue, 17 Dec 2013 10:55:52 -0800 (PST)
Received: from ( []) by (Postfix) with ESMTP id 6329A1AE25C for <>; Tue, 17 Dec 2013 10:55:27 -0800 (PST)
Received: from [] ( []) (authenticated bits=0) by (8.14.3/8.14.3/Debian-9.4) with ESMTP id rBHItOpF026929 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for <>; Tue, 17 Dec 2013 19:55:25 +0100
Message-ID: <>
Date: Tue, 17 Dec 2013 19:55:19 +0100
From: Philipp Hancke <>
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Thunderbird/24.2.0
MIME-Version: 1.0
References: <>
In-Reply-To: <>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Subject: Re: [Stox] I-D Action: draft-ietf-stox-media-02.txt
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: SIP-TO-XMPP Working Group discussion list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 17 Dec 2013 18:55:54 -0000

> Abstract:
>     This document defines a bi-directional protocol mapping for use by
>     gateways that enable the exchange of media signalling messages
>     between systems that implement the Jingle extensions to the
>     Extensible Messaging and Presence Protocol (XMPP) and those that
>     implement the Session Initiation Protocol (SIP).

A couple of comments, I just had some time (90 minutes :-)) to review this:

Section 5.1:
	the syntax and semantics of <description/> element are defined
	in [XEP-0167]

nit: 0167 defines the semantics of <description/> elements in the 
urn:xmpp:...:rtp:1 namespace. Giving 0167 again as an example for other 
description types in the next sentence is somewhat odd.

	<content/> 'name'
maps to a=mid: from RFC 5888 -- not sure if that is required for the 
basic usecase.
	<content/> 'profile'
0167 does (in it's current version) not have a profile. This was removed 
in Version 0.23 (2008-07-31).

	the 'action'  attribute [...] nine allowable values
No, it's 15. The missing ones are content-reject, description-info, 
security-info, transport-reject, transport-replace, transport-accept.

All the transport- are unused. description-info is for suggested 
application parameters (width, height), so we dont need it either. 
security-info is only used for xtls, so unused, too. I am not sure about 

Section 6:
senders can also have a value of "none" which maps to a=inactive. That 
is only in XEP-0166 and not in 0167.
Actually, Jingle has a cool message for hold which is content-modify 
(which only modifies senders). Why bother with two hold mechanisms when 
you can have three :-)

Section 9:

XEP-0177 doesn't define <format/>. 0167 defines <parameter/> which is 
what you describe (and it does so in a wrong way, spec bug).

I think DTMF is the relevant example for bullet #3 (example from RFC 4733)
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
Saul : I think I disagree with your comment about name being required by 
the xep's schema (which isn't normative anyway), both are required.
My take (after some discussions in jingle@) is that 'name' should be 
left empty and you should put the stuff to 'value'.

Section 10:
This section actually concerns me. Jingle is based on full jids 
typically. So in order to forward a call from a SIP entity to an xmpp 
entity, the gateway needs to determine which full jid to send to.
So it either has to have a presence subscription or can use presence 
decloaking (XEP-0276; deferred because of inactivity but works nicely).
If there are multiple possible resources, the gateway needs to decide, 
where to route the call.
As Emil mentioned, some people (i.e. me) are considering using 
<message/> for the session-initiate which would allow an xmppish way of 
forking (Jonathan: want to help out? :-)), but that is not ready yet.

Section 11.1:
the candidate in the example should probably have an id (at least where 
the 0177 schema is concerned which is not normative).
It might be worth noting (elsewhere?) that Jingle and SIP do ice 
restarts differently WRT to the generation parameter.

The last example contains a reasoncode='no-error'. I am not sure what 
old version of jingle this comes from, these days it's done with

other issues:
routing of <iq/> (for the jingle->sip call-a-telephone-number usecase) 
that was raised at the end of the meeting:
this should go to the bare JID. Semantically, this means "don't route it 
to a client, server handles it". Here, the 'server' is handling it.

Peter: during the call I made a note "more disco#info examples", I think 
this was based on a comment by Markus about capability negotiation. I 
hope I remember the actual context when seeing the minutes.