Notes:
Talk To The Nose - Alpha Release 2
Introduction
Talk To The Nose (TTTN) is an open source implementation of the MSN Messenger server protocol. It supports all known Unix/Linux MSN clients. The actual MSN Messenger client doesn't seem to work with TTTN right now. C'est la vie. I'll get it working ASAP.
Table of Contents
Talk To The Nose - Alpha Release 2 1
Introduction 1
Status 1
Persistent Storage 1
File-based Configuration 2
User Management 2
Known Bugs 2
External Libraries 2
Status
All the basic IM functions are working. Security is still not perfect (you can send messages to people who have blocked you). There is no admin console, so you can not easily add or remove people.
Installation
tar xvzf <filename>
Or use Winzip
Right now, there are two default accounts:
drig@localhost
drig@noses.org
Both have the password "password".
Edit src/org/noses/tttn/broker/MemoryBroker.java to add, delete or change users.
If you want to use a real database, which gives you the ability to add users and save user data, then follow these steps:
*
Install PostgreSQL. Most Linux distributions can install PostgreSQL for you. If you're using Windows, it can be done, but you're on your own. Please do not email me with problems.
*
Within the conf directory, copy the broker.properties-postgresql to broker.properties. Edit to supply a password, if you wish.
*
Run database/InitializePostgreSQL.sh. This will wipe any existing tttn database and restart.
*
Run bin/adduser to install any users you wish
*
Start the server
Persistent Storage
TTTN uses a broker pattern. This means that all persistence is handled outside the main code. Right now, TTTN uses either the MemoryBroker or the PostgreSQLBroker. The MemoryBroker is a simple example which starts with a couple hard-coded users and nevers persists the data to permanent storage. Everything is kept in memory, but all functions are supported.
Implementing a new broker is fairly simple. There are currently 2 broker types, the UserBroker and the CookieBroker. Generally, any broker implementation will support both. The interfaces are in org.noses.tttn.broker. I'd appreciate it if someone wrote a broker for MySQL. Of course, anyone can add any kind of broker. I think the broker mechanism can help in clustering...if anyone has any thoughts, email me or write on the forum.
File-based Configuration
The configuration system uses the standard Java Properties files. There is one for each subsystem. We are currently using properties for the brokers, log4j and the notification server. I will be adding more to this.
User Management
The user management functions that are defined by the protocol are in place. You can change phone numbers, add people to your lists, arrange groups (untested). But, beyond that, there is very little user management.
Right now, to add a user, you must run the adduser script in the bin directory. You are not able to delete a user. It would be nice to allow users to sign up over the web. I'm looking into embedding the Jetty web server.
Known Bugs
There are major threading issues. Basically, except for a few places, I haven't bothered with synchronization. That'll have to be cleaned up.
Very little has actually been tested. I know login in works, most of the time, adding people to lists and chatting seems to work.
Security is pretty much non-existant. You can login, but you can send messages even if not logged it. Eventually, you'll get a null pointer exception. It's pretty easy to check (getConnection()==null or getConnection.getUser()==null).
Allow and block lists are almost never checked.
Err...it's an alpha version...there are LOTS of bugs.
External Libraries
This product includes software developed by the Apache Software Foundation (http://www.apache.org/).
TTTN uses Log4J by the Apache project.
TTTN uses the excellent PostgreSQL data base management system.
POSTGRES95 Data Base Management System (formerly known as Postgres, then
as Postgres95).
Copyright (c) 1994-7 Regents of the University of California
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose, without fee, and without a written agreement
is hereby granted, provided that the above copyright notice and this
paragraph and the following two paragraphs appear in all copies.
IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING
LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO
PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
Changes:
Sept 9, 2002 - Alpha 2: Basic security, configuration and a PostgreSQL broker
Copyright © 2009 Geeknet, Inc. All rights reserved. Terms of Use