We have forked that project to understand how it works. Then we'll write the same from scratch.
This is jabber.el 0.8.92, an XMPP client for Emacs. XMPP (also known as 'Jabber') is an instant messaging system; see http://xmpp.org for more information.
Home page: http://emacs-jabber.sourceforge.net Project page: http://sourceforge.net/projects/emacs-jabber Wiki page: http://www.emacswiki.org/cgi-bin/wiki/JabberEl Mailing list: http://lists.sourceforge.net/lists/listinfo/emacs-jabber-general and: http://dir.gmane.org/gmane.emacs.jabber.general MUC room: [email protected] and [email protected] (Russian, English)
jabber.el runs on GNU Emacs 23.1 or later.
The file hexrgb.el (http://www.emacswiki.org/emacs/hexrgb.el) is needed for MUC nick coloring feature. A copy is located in the compat directory, and used if the configure script doesn't find another copy already installed.
You need an XEmacs with Mule support, and recent versions of the gnus, net-utils and mule-ucs packages. jabber.el basically works on XEmacs, but some features are missing (in particular mouse support). Testing and patches are very welcome.
Many Jabber servers require encrypted connections, and even if yours doesn't it may be good idea. To get an encrypted connection, the most convenient option is to use GNU Emacs 24 with GnuTLS support compiled in. You can check whether you have that by typing:
M-: (gnutls-available-p)
If that commands shows t' in the echo area, then you have working GnuTLS support. If it shows
nil' or signals an error, then you
don't.
Failing that, jabber.el will use the starttls.el library, which requires that the GnuTLS command line tool "gnutls-cli" is installed. In Debian-based distributions, "gnutls-cli" is in the "gnutls-bin" package.
The above applies to STARTTLS connections, the most common way to encrypt a Jabber connection and the only one specified in the standards. STARTTLS connections start out unencrypted, but switch to encrypted after negotiation. jabber.el also supports connections that are encrypted from start. For this it uses the tls.el library, which requires either "gnutls-cli" or the OpenSSL command line tool "openssl" to be installed.
To use the latter form of encryption, customize jabber-account-list.
Note that only the connection from you to the server is encrypted; there is no guarantee of connections from your server to your contacts' server being encrypted.
jabber.el can be installed using the commands: ./configure make make install
You can specify which emacs you want to use: ./configure EMACS=emacs-or-xemacs-21.4
You can also install jabber.el by hand. Put all .el files somewhere in your load-path, or have your load-path include the directory they're in. To install the Info documentation, copy jabber.info to /usr/local/info and run "install-info /usr/local/info/jabber.info".
After installation by either method, add (load "jabber-autoloads") to your .emacs file. (If you got the code from GIT, you still need the makefile to generate jabber-autoloads.el.)
If you are upgrading from 0.7-0.7.x, you need to update your configuration. See the section "Account settings" in the manual.
If you are running jabber.el from GIT, you need to generate the jabber-autoloads.el file yourself. The simplest way to do this is by using the "./configure && make" process.
To generate the configure script, make sure that autoconf and automake are installed and run "autoreconf -i".
To connect to a Jabber server, type C-x C-j C-c (or equivalently M-x jabber-connect-all) and enter your JID. With prefix argument, register a new account. You can set your JID permanently with M-x jabber-customize.
Your roster is displayed in a buffer called -jabber-. To disconnect, type C-x C-j C-d or M-x jabber-disconnect.
You may want to use the menu bar to execute Jabber commands. To enable the Jabber menu, type M-x jabber-menu.
For a less terse description, read the enclosed manual.
For bug reports, help requests and other feedback, use the trackers and forums at the project page mentioned above.
All available configuration options are described in the manual. This section only serves to point out the most important ones.
To change how you are notified about incoming events, type M-x customize-group RET jabber-alerts.
To activate logging of all chats, set jabber-history-enabled to t. By default, history will be saved in ~/.jabber_global_message_log; make sure that this file has appropriate permissions. Type M-x customize-group RET jabber-history for more options.
By default, jabber.el will send a confirmation when messages sent to you are delivered and displayed, and also send "contact is typing" notifications. To change this, type M-x customize-group RET jabber-events, and set the three jabber-events-confirm-* variables to nil.
This release of jabber.el contains support for file transfer. You may need to configure some variables to make it work; see the manual for details.
It is possible to make various web browsers pass links starting with "xmpp:" to jabber.el. In the ideal case, this works right after running "make install". Otherwise, see the manual, section "XMPP URIs".