[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [JDEV] Contact Methods



> btw, brilliant design work done on this project.  if everything is done
> well, we may be able to kiss all of the proprietary internet messaging
> protocols bye-bye.

The selfish(and cool) part of Jabber is that they can all live locked in
their little worlds, and we can live in all of them :)  Even if Jabber
would never meet mass-appeal, as long as it works for us that's all that
matters, *g*.

> > There is no "multiple ways" to contact a Jabber user, there is only Jabber
> > :)
> > 
> 
> well then, perhaps the idea of a tree view would be in order listing the
> alternate transports available for that user:
> 
>    +---------------------------------------+
>    | Contact List                          |
>    |  + Joe Doe (Joe Doe@jabberhost.com)   |
>    |  - John Doe (John Doe@jabberhost.com) |
>    |     |- ICQ (Offline)                  |
>    |     |- Unix Talk (Offline)            |
>    |     `- Pager (Online)                 |
>    |  + Jane Doe (Jane Doe@jabberhost.com) |
>    +---------------------------------------+

Cool, we are VERY close here, let me explain a bit more :)

The tree structure is exactly right, and is what most clients will
probably want to do.  BUT, the only things in the branch under the user
would be that users sessions.  Now that I'm throwing sessions into the mud
puddle here, I'll try to define: a session is a Jabber user connected to a
Jabber server using a Jabber client, obviously Jabber is the key here, ;-)
(note: you can be logged into a Jabber server with your account as many
times simultaneously as you want, each one is a session)

Now, let's say that John Doe is a Jabber user, and talks to his old
friends via ICQ.  John is not running an ICQ client, so there is no "path" 
to him via ICQ unless you are an ICQ user.  Your(assuming that you are a
Jabber user as well) only path to him is via Jabber to his Jabber client.
So if you were looking at his entry on your roster you'd never see an
entry for his ICQ transport, or for any of his transports, you'd only see
his sessions.

If he was using a windows Jabber client, logged into a Jabber enabled unix
host, and had a Jabber<->Pager gateway set up, the roster might look like:

    +---------------------------------------+
    | Contact List                          |
    |  + Joe Doe (Joe Doe@jabberhost.com)   |
    |  - John Doe (John Doe@jabberhost.com) |
    |     |- WinJab (busy)                  |
    |     |- Unix Server (idle)             |
    |     `- Pager                          |
    |  + Jane Doe (Jane Doe@jabberhost.com) |
    +---------------------------------------+

So, the tree under a user in a roster is based on their sessions.  Any
"transports" that user is making use of is that users business, nothing we
will care about.

Does this make sense?  I know it can all be very confusing, but once we
get it working it will be easier to understand :)

Feel free to discuss further and keep asking questions, its a good way to
get some of this stuff documented and help everyone understand.

Jer