[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