onepointoh

Cleaning out the Cobwebs



The intention of this is to provide some background material for a group discussion and consensus on various 1.0 subtle and obvious issues.  Some of these are functionality issues, some are common user interface issues, and some interoperability and understanding (lack of documentation) issues.

UID Handling: "common" usage formats for jids
   Normal Functionality based on UID format:
        user@host (user identity)
            message send/receive
            s10n send/receive
            vcard lookups
        user@host/res (user's connection identity)
            message send/receive
            presence receive
            time/version
            oob
        host (server/transport)
            registration
            time/version
        host/res (agent or entity, non-user, part of server/transport)
            message send/receive
            presence receive
   Naming new/unknown jids:
        if user@ do a vcard lookup
            failing lookup, use just "user (res)"
        if host* look at the list of agents, failing that do an agent query to it
            failing lookup, use just "host (res)"
        (res) is resource in paren, only included if part of the jid.
        ALWAYS hide any res data after the ? character in normal usage, show only in an advanced dialog/properties
   Matching jids:
        All resources fall under their parent user or host if known
        Username compares must be case insensitive

Transports (from transport authors POV)
   Using the roster to maintain the registration
   Building the buddy list from the users roster
   Discuss handling presence requests and <transport/>

Registration
   Fields: Locked Form
   Nickname?
   Prominent Instructions
   Key handling

Searching
   Same model as registration
   Streaming response model

Agents
   Sub-agents
   Look at flags, acceptable?
   display?
    transport @=>% and space smash

Groupchat local / public
   web-sha
   topic/topic/chat
   use sub agents for list?  for topic?
    have local public/private?

Feature:
    iq:data namespace to get/set raw xml data?
    exchange transport?
    auth error - redirect to new IP?
 

Client Issues


Common Naming/Wording guidelines of everything, two sets, one for simple, one for advanced

Roster
    s10n status display
    agent special handling
    own resource handling
    presence and resource display
Registration w/ server handling

Presence
    Setting
    auto-away
    setting offline presence

incoming s10n handling, dialogs

login screen
    +proxy
    always try digest
    if have ssl always try ssl

colorize based on delay, for presence too

icon set?

subject in chats

groupchat requirements/discussion

Messaging
    default all to user@host
    replies to sender id including resource and return thread

personal info
    register
    vcard
    jud

fneg and yxroproxy (zeroproxy)

error handling
    normal errors
    stream errors
    whitespace keepalive
    socket disconnect handling, reconnect?
 



whitespace keepalive to idle client tstreams (activity flag in tstream)
change some compiled-in configs to variables from config file
-Wall
etherx testing
jud case senstivie
API:
    add HEARTBEAT for users cleanup, irc ping, http timeouts, whitespace, etc
    add flag/phase for UNregister, send unsubscribe to roster items, disconnect session
Redirect?
xres URI encoding util
move http parser to libetherx
Docu/Proto
    Pubchat - web/topic
    agents, <groupchat/>
    reg/search
    admin
    filter
    list of client suggestions
    examples for APIs
    File xfer stuff
Modules
    admin
    filter
    announce
    groups (test sub agents)
    offline options
svc_multi and proxy?
rate limits
Seeds (provide framework or design doc)
    BOT
    RSS transport (design extension for ticker)
    talk transport
    pager
    abiword