[Stox] chat states <-> isComposing

Peter Saint-Andre <stpeter@stpeter.im> Wed, 18 September 2013 15:10 UTC

Return-Path: <stpeter@stpeter.im>
X-Original-To: stox@ietfa.amsl.com
Delivered-To: stox@ietfa.amsl.com
Received: from localhost (localhost []) by ietfa.amsl.com (Postfix) with ESMTP id 2935E11E826B for <stox@ietfa.amsl.com>; Wed, 18 Sep 2013 08:10:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.543
X-Spam-Status: No, score=-102.543 tagged_above=-999 required=5 tests=[AWL=0.056, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id ZjTEvLEsfjhE for <stox@ietfa.amsl.com>; Wed, 18 Sep 2013 08:10:48 -0700 (PDT)
Received: from stpeter.im (mailhost.stpeter.im []) by ietfa.amsl.com (Postfix) with ESMTP id BEE4911E811E for <stox@ietf.org>; Wed, 18 Sep 2013 08:10:48 -0700 (PDT)
Received: from sjc-vpn6-917.cisco.com (unknown []) (Authenticated sender: stpeter) by stpeter.im (Postfix) with ESMTPSA id 9F8EA4163C; Wed, 18 Sep 2013 09:15:37 -0600 (MDT)
Message-ID: <5239C275.9080402@stpeter.im>
Date: Wed, 18 Sep 2013 09:10:45 -0600
From: Peter Saint-Andre <stpeter@stpeter.im>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:17.0) Gecko/20130801 Thunderbird/17.0.8
MIME-Version: 1.0
To: "stox@ietf.org" <stox@ietf.org>
X-Enigmail-Version: 1.5.2
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Subject: [Stox] chat states <-> isComposing
X-BeenThere: stox@ietf.org
X-Mailman-Version: 2.1.12
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, 18 Sep 2013 15:10:53 -0000

Hash: SHA1

I've taken a look at the mapping between XMPP chat states (XEP-0085)
and the isComposing event (RFC 3994).

RFC 3994 has two states: idle and active. RFC 3994 has only two states
because it's really just about composing (in messaging, whether or not
the sender is actively typing or otherwise creating text for sending
to the recipient -- simply toggling between the two, changing to
active if the user is composing a message and changing to idle when
not composing a message).

XEP-0085 has five states: active, inactive, gone, composing, and
paused. XEP-0085 has more states than RFC 3994 because it's not just
about composing, but about the sender's involvement with the chat
session. Thus in XEP-0085, "active" means "paying attention to the
conversation", which ironically maps best to RFC 3994 "idle", I think.

It might be best if we don't map XEP-0085 chat states other than
composing and paused to RFC 3994 isComposing events, since RFC 3994 is
just about composing. However, in XEP-0085 it is possible to have
state transitions such as composing to active (not paused).

Thus the safest mapping might be

isComposing => chat states
  idle => active
  active => composing

chat states => isComposing
  active => idle
  inactive => idle
  gone => ???
  composing => active
  paused => idle

This mapping loses some of the granularity on the XMPP side (i.e., the
paused and inactive states), but that might be fine in this context.

I know Saúl has looked at this mapping, so I would appreciate his
feedback (and input from other folks, too).


- -- 
Peter Saint-Andre

Version: GnuPG/MacGPG2 v2.0.19 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/