#3310 NORM First D: Groups: when you are sharing an activity in a group, there is a chat for the group

Zarro Boogs per Child bugtracker at laptop.org
Thu Sep 20 14:18:56 EDT 2007


#3310: Groups: when you are sharing an activity in a group, there is a chat for
the group
-------------------------------+--------------------------------------------
  Reporter:  kimquirk          |       Owner:  Eben                  
      Type:  task              |      Status:  new                   
  Priority:  normal            |   Milestone:  First Deployment, V1.0
 Component:  interface-design  |     Version:                        
Resolution:                    |    Keywords:                        
  Verified:  0                 |  
-------------------------------+--------------------------------------------

Comment(by smcv):

 I'll reiterate that we already have a chatroom per activity (for Tubes),
 so if you want it, per-activity text chat is very cheap (obviously the UI
 code needs to be written, but the PS and Telepathy components wouldn't
 need any changes). It sends unformatted plain-text messages, similar to
 IRC. If you decide you need per-group chat too, there'd be nothing to stop
 you having both per-group and per-activity.

 > Having persistent group chats would really amount to having something
 equivalent to an IRC channel for the group

 If you want to be able to share things (perhaps files) with a group,
 that's an argument in favour of the groups being implemented as (perhaps
 invite-only) chatrooms on the server.

 In case it helps to inform design decisions, here are the primitives that
 we have in the underlying protocols:

  * contact: an account on the server, or a _presence._tcp mDNS record on
 Salut. We map these to OLPC Buddies. Each contact can give themselves a
 limited amount of arbitrary metadata which is passed on to everyone who
 can see their presence (see below). Additionally, contacts can send each
 other arbitrary one-off messages, including text messages, Tubes and
 whatever protocol extensions we care to devise.

  * chat room: a chat room similar to an IRC channel. Gabble implements
 these as MUCs (XMPP multi-user chat) on the server, Salut implements these
 as something deliberately similar to a MUC using Sjoerd's "reliable
 multicast" protocol. We currently map all of these to OLPC Activities, but
 that could be changed. Everyone in a chat room receives all messages sent
 to the chat room; these include text messages used for chat, Tubes
 messages, or anything else we want to pass around (the protocol is
 extensible). Nobody not in the chat room receives these messages (in
 particular, contacts who have been invited to a room but have not joined
 it yet don't get the messages). Some chatrooms on Gabble are invite-only
 (enforced by the server, which relays invitations) and some can be joined
 by anyone. Chat rooms on Gabble, by default, disappear when everyone
 leaves, but they can be configured to be persistent. Chat rooms on Salut
 always disappear when everyone leaves.

  * contact list: there are two of these, 'publish' (the list of people who
 can see your presence, i.e. when you're online) and 'subscribe' (the list
 of people whose presence you want to see). On Gabble these represent the
 XMPP roster (the server has a hack to put everyone on the server on
 everyone else's roster, although you can also add people on different
 servers), on Salut these always both contain everyone you can see locally
 (and you can't change them).

  * contact group (only exists on Gabble): a user-defined group of
 contacts. Contacts can be in no groups, or in more than one group, so this
 is basically equivalent to each user being able to assign arbitrary
 Unicode tags to each contact they know about. Assuming the server isn't
 compromised, nobody can see or change the tags the user has assigned to
 others, except the user themselves. Salut does not implement this concept,
 and we don't use it on OLPC, but Gabble supports it.

 There are no others (that I can think of). Anything beyond these would
 require extensive modifications to be made to the server (ejabberd), which
 is likely to be difficult (we don't have any Erlang experts here) and
 reduces the potential for interoperability with non-OLPCs, so there's a
 strong incentive to stick to these primitives.

-- 
Ticket URL: <https://dev.laptop.org/ticket/3310#comment:4>
One Laptop Per Child <https://dev.laptop.org>
OLPC bug tracking system



More information about the Bugs mailing list