Share

Talk To The Nose

File Release Notes and Changelog

Release Name: tttn-alpha2

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