Jabber is an "architecture", and therefore consists of many different components and projects. The 1.0 release is only for the core server, which involves libjabber, jserver, and etherx. The numerous other projects and teams will likely reach a 1.0 status around the same time, but this document is not making any statements about those efforts.
(a + means the assigned person is looking for help with the task)
Item | Description | Assigned | Status |
---|---|---|---|
|
|||
Build | Overhaul the autoconf/automake build system, better tests/xp checks | temas | |
dlopen | XP issues with dlopen and family, use libtdl and allow for static builds | jer | |
logging | Improve the logging data for etherxd and jserver, document and have sample log formatters/stats. | jer | |
API | Complete API overhaul. | jer, + | Three API types: svc[Services], mod[Modules], and xdb[XML Data storage]. |
Data Models | Look at using hashes and adjusting other data models internally | jer | user data references tracked and freed when not used. Hash for main user and resource lookup. |
Keepalive | Implementing a protocol-level keepalive function to check for broken sockets | jer | plan is to send whitespace at timed intervals between the main elements |
Error | better error checks/handling, testing for validity of data, etc | jer | |
Resource Types | Allow for different types of resources, hidden, shadow, etc | jer | Server will no have this built in, but modules can implement this using agents. |
I18n | Internationalization issues. | jer, temas | Use gettext for error messages and other strings. |
Etherx | Protect the secret from the wire | jer | Use hashes (MD5) |
|
|||
File Xfer | And Family (any data stream), negotiating location, starting, etc. SOCKS? | jer, temas, + | Full doc being written, but get started by looking at the jabber:x:oob namespace. |
Feature Negotiation | Between any entity, clients, servers, transports, etc. NOT for negotiating aspects of a feature, just the yes/no existance of it. | jer, + | jabber:iq:fneg proposal |
Transport | Agent/Transport/Service handling, type: issue (icq:123454), server listing available transports, etc. | jer, + | all URI's in jabber are "jabber:" for now, and jabber:iq:agents for listing transports/etc on a server |
JUD | Jabber Universal Data: jabster, user searching, master server list, etc. | temas, jer, + | started |
CTCP | Typical Client2Client stuff, ping, traces, version, but could be between any jabber entity | jer, + | |
Registration | Maturation of the jabber:iq:register IQ | jer | updated jabber:iq:register |
User Info | Standard user info, setting and fetching. | jer | Uses the vCard XML IETF proposal. |
Group Chat | How is the presence/messages handled for group chats, or chatrooms, joining, nicks, etc. | temas, jer | basics implemented (participants level), no administration yet |
Redirects | XML Stream level redirection. | jer | Upon connecting, if the stream root greeting has a redirect="12.34.56.78" attribute, the connector should use that IP and attempt to connect again. |
Valid Chars | List the exact valid characters for the Jabber ID. | jer, temas | The username is under the same restrictions as SMTP, the host is normal DNS name restrictions, and the resource has no restrictions. |
Transports | |||
ICQ | Basic ICQ transport | quad | partially implemented (libicq) |
AIM | Basic AIM transport | temas | partially implemented (libfaim, oscar) |
Yahoo! | Basic Yahoo Pager transport | tcharron | partially implemented (yahoolib.c) |
MSN | Basic MSN transport | + | MSN Messenger lib in Java was mentioned? |
SMTP | Receiving Email immediately in Jabber using a special email address(userid@jabber.host.net), and replies being delivered via email. | jer, + | concept |
Group Chat | Simple chatrooms, bundled with jserver | temas | implemented |
Unix | Talk/Finger/R* services that query a jabber server directly. | + | |
File Xfer | A special transport to assist in file transfers, bridge between two clients via the server, optionally allow offline file xfers. | jer, + | Two main types of features needed here: SOCKS type (stream through a 3rd party) and HTTP storage type (offline file exchanges). |
POP Checker | Check any POP box for new messages and send alert. | jer | Plan to do w/ perl. |
Modules | |||
Basic | stores user data in simple files | jer | implemented |
MySQL | stores user data in mysql | + | |
Unix | uses standard unix data (/etc/passwd) | + | |
Radius | auth against a radius DB | + | |
LDAP | uses a LDAP server for user data | + | |
Groups | Allow shared roster groups | jer | |
Announce | Broadcast messages to everyone (for admins) | jer | |
Admin | Query server status and change variables on the fly, active user list, etc | jer | |
MD5 | Secure Authentication | jer, temas | |
SHA1 | Secure Authentication | jer, temas | |
Services | |||
Multi | Allow multiple authenticated users/resources via one socket, for proxies or advanced clients. | jer | |
IRC | Any IRC client can connect directly to jserver and log in as a jabber client | jer, + | concept |
Telnet | a simple text-based interface built into jserver, similiar to a moo/mud | jer, + | concept |
HTTP | For web based clients, allow HTTP access, for clients behind firewalls/proxies also. | jer | planning |
Misc Projects | |||
josh | Shell tools, other lightweight UNIX environment jabber apps | quest, jer | concept |
mozilla | XUL based client/libs, full Jabber integration with Mozilla | eric, jer, + | partially implemented |
HTML | pure HTML/Javascript based clients, presence buttons, message forms, chatrooms, etc. | jer | uses HTTP service |