[Pidgin] #7738: Centralized Server

Pidgin trac at pidgin.im
Tue Dec 9 15:15:28 EST 2008


#7738: Centralized Server
-------------------------------------------------------+--------------------
 Reporter:  Chaso                                      |     Owner:  lschiere
     Type:  enhancement                                |    Status:  new     
Component:  unclassified                               |   Version:  2.5.2   
 Keywords:  centericq quassel imap pop server central  |  
-------------------------------------------------------+--------------------
 Hi there!

 My thoughts about the future of instant messaging...

 = Pidgin Server =
 libpurple is a great library to connect '''one''' CLIENT to '''many'''
 (instant messaging) NETWORKs.

 For some people this is sufficient, because they have only '''one'''
 computer (''<=> '''one''' client'') on which they use instant messaging.

 But for most of the peole this is (or will be) not enough! Because they
 use '''many''' CLIENTs (a ''Mac'' at home, a ''PC'' at work, a
 ''(cell)Phone'', ...).

 === At this point the following problems emerge: ===
 The '''User'''...
 {{{
 1) only can be logged in once (You can't get messages on your Phone
    while you're logged in on your PC)
 2) have distributed histories on different clients (which makes
    searching for messages difficult)
 }}}
 Another way to discribe the problem is: It's like "POP vs IMAP" email
 messaging combined with a bunch of different protocols.

 So why not implementing a '''SERVER Deamon''' which solves these problems?

 == Scenario ==
 {{{
 +---------+                          +--------+               +----------+
 | CONTACT | <--[ICQ,IRC,XMPP,...]--> | SERVER | <--{XMPP*}--> | CLIENT 1 |
 +---------+                          |        |               +----------+
                                      |        |               +----------+
                                      |        | <--{XMPP*}--> | CLIENT 2 |
                                      +--------+               +----------+
 Legend:
 SERVER - Daemon on a 24/7 machine (description see below)
 CLIENT - Clients like PC, Mac, Phone, ...
 CONTACT - User to chat with
 [ICQ...] - Protocol and Network
 {XMPP*} - XMPP Protocol with extension (described below)
 }}}

 The SERVER (Deamon) has to do following things:
 {{{
 1) use libpurple to connect to the different networks
 2) translate incoming (CONTACT) messages to XMPP (from formats
    other than XMPP; XMPP should be forwarded)
 3) store messages (SERVERSIDE history)
 4) pass incoming messages (both CONTACT and CLIENT) to ALL
    connected CLIENTs (using XMPP)
 5) use a XMPP extension that supports
    5a) change of connection status (on connected networks and
        other CLIENTs, when one CLIENT changes his status)
    5b) searching the (serverside) history
    5c) adding and removing networks and contacts to the daemon
        configuration
 }}}

 = Quassel =
 There is a project, called quassel (http://quassel-irc.org) aiming towards
 this, but with a slightly different approach, which has several drawbacks.

 Quassel...
 {{{
 - only supports IRC
 - uses QT-Objects to communicate with it's CLIENTs
 - (therefore) needs QT on Client side (so no shell CLIENTs like finch)
 - (therefore) has it's own CLIENT (most people don't like to switch)
 }}}

 These '''drawbacks could be eliminated''' using '''libpurple on the
 network side''' (for connecting to multiple networks) and '''XMPP on the
 client side''' (Which is well supported by many clients, so many people
 don't need to switch, because their CLIENT could be used, even when the
 XMPP extension for administration, searching and status is not yet
 supported)

 = Roadmap =
 This could be done in three major steps:
 {{{
 1) creating a SERVER daemon which supports 1) 2) and partially 5a),
    configuration has to be done local on the machine which runs the
    daemon (a first implementation of 3) and 5b) could be message
    forwarding to an imap email account)
 2) writing an XMPP extension supporting history search(5b), (SERVER
    to) CLIENT status change(5a), and daemon configuration(5c)
 3) adding support for this XMPP extension to libpurple so that any
    libpurple based client can connect to this daemon.
 }}}
 I know '''this is the holy grail''' of instant messaging, but it would
 bring PIDGIN/libpurple to a whole new level!

 Kind Regards,[[BR]]
 Flo

-- 
Ticket URL: <http://developer.pidgin.im/ticket/7738>
Pidgin <http://pidgin.im>
Pidgin


More information about the Tracker mailing list