"Talk" messages are sent and recieved and relayed beteen objects with the "talkative" type. (E.g. your avatar in terangreal is "talkative". A world root sector object can also be talkative or be associated with a special talkative object, in which case it relays messages to other talkatives inside the sector.)
Chat GUI
Currently built in to Terangreal; ougth to be separated into a library for other apps (including a dedicated chat-only client).
- Option to toggle display of message replies as nested threads
- Options to save transcripts
If enabled, either publish, or subscribe to (at users option) avatar presence info using Galago (http://www.galago-project.org/about.php), to synchronize with other IM clients and other software in general.
Could also use Galago's notification system (there is an independent implementation at http://www.gnomefiles.org/app.php?soft_id=1085.
Incorporate OTR encryption: http://www.cypherpunks.ca/otr/#docs
- Incorporate SSL-style certification??
- Incorporate "avatar" stuff -- image(s), text. Also, an explicit graphic that is part of the authenticated user identity, and displays as a logo or handwritten signature -- a "chop". Maybe required to be a vector image (for precision).
* sort contacts into groups, and provide option to choose to which groups you're visible to. (or select a different presence status to provide to each group)
* This is still pretty nebulous, but the idea is to control IM interruption. Either (a) you tell certain other talkatives that you are willing to recieve messages from them (use access control to this -- but the other talkative needs to recieve a message indicating that your access control has changed -- do we have access control policy listeners?) (b) entirely on the client/UI side, you queue incoming private messages like ICQ used to or (c) like b. but on the server/remote talkative side, instead of just sending a talk message (maybe it was rejected by an access control policy or the target talktive has its "don't bother me" flag on), outgoing messages are queued and the target can look at them whenever it feels like it.
* Way to send little signals to other people that aren't full text, and aren't meant to be so disruptive to them, just wave a little flag or bubble that says "hey, i'm here and you can talk to me if you want".
* Log talkative messages in a nice interchange format. For example, see
* Improve Chat GUI: display chat as threads with a tree control, more tools
- to edit your avatar "profile": add "info" pages. (pictures, urls, url-to-content-with-typechain, FOAF form, misc. things like "mood"); locate other avatars on LAN; create chat rooms (and advertise as service); some way to work with other IM services/ clients?
* idea for talkative: instead of a special talk message, store "last
- message" as a property that senders can set and multiple talkatives can share. needs a special format to include the diff. components of a talk message, though. Probably this idea will not be implemented.
* Message forwarding:
- filter messages, include max-hops and hop count fields, etc, or forward only on some condition.
* New object type: friendly
- list of friends, each with:
- GUID (FOAF email hash)
- URL to static FOAF file
- URL to static HTML info (generated from FOAF/this object)
- avatar object
- directory object to search if friend is offline (avatar object
- missing)
- anything from FOAF etc. missing from avatar type
- diary/blog entries or URL of
- comments to others' blog entries or URLs of
- other properties, like interests, etc. (queryable)
- identities
- utility functions to initiate queries of your friend network
- local UI (with talk interface included). integrate into terangreal? how?
- Display graph visually (3D?)
- shared library (libvosfriendgui)? plugins for chatgui, friendgui, other
- future applibs?
option to run speech synthesis: http://www.cstr.ed.ac.uk/projects/festival/ Festival has compiled and run on Suns (SunOS and Solaris), FreeBSD, Linux, SGIs, HPs and DEC Alphas but should be portable to any standard Unix machine. Festival will also compile on MS Windows platforms given a little work and patience
- automatically send sounds with a message based on message text: length of text, capitalization, keywords, punctuation. (Or, on the receiving side, play sounds based on those factors, from different sound effect sets for different people)
- try to detect bluetooth devices to modify presence info, or to login/logout users in a client that's managing multiple people's chat/presence/messaging (i.e. a shared computer in a room)
When having an IM or group conversation, provide option to publish this fact (and list of participants) as part of your presence information given to your friends, and allow them to join the conversation. This idea is from Lion Kimbro, at http://www.communitywiki.org/en/OverHear .
Not just the fact of the conversation, but the actual messages in the conversation, as well- to be "overheard." Supply logs on request. -- LionKimbro
With the 'talkative' Vobject, you can easily start listening to the conversation (i.e. stream of talk messages) once you find the objects; this is how you recieve any talk message, by registering your talkative object as a listener with the talkative object you're intetrested in. -- ReedHedges
Talk object protocol
- Message field that requests a specific meeting time and place (URL). The recipients of this message can then include a field in his reply that accepts this time and place, or requests a different one. A meeting that's been accepted by a recipient can then be stored in the UI and a reminder given.
- Bridge to Jabber. Thence it can be relayed to different transports such as AIM, Yahoo, SMS.
- Emote-description field
- Ability to embed or include in multiple message fields data of different types, such as images and sounds.
Messaging Services
Message storing service linked to an Identity. World talk relays could route messages there if you're offline.