Share

Talk To The Nose

File Release Notes and Changelog

Release Name: tttn-alph4

Notes:
Talk To The Nose - Alpha Release 4
Introduction


Talk To The Nose (TTTN) is an open source implementation of the MSN Messenger server protocol. It supports the Microsoft MSN Messenger client and all known Unix/Linux MSN clients.


Table of Contents

Talk To The Nose - Alpha Release 3 1

Introduction 1

Status 1

Installation 1

Persistent Storage 2

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, but blocklists should be implemented properly. There is no admin console, so you can not easily remove or edit people.


Installation


    *

      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.
    *

      Create a database named "tttn". Generally, you'll want to run this command

            createdb -U tttn tttn
    *

      Unzip the tttn distribution.
    *

      Change directory into the tttn directory made by the previous step
    *

      Run bin/tttn install
    *

      Optionally, run bin/adduser to install any users you wish
    *

      Start the server with bin/tttn


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.


The PostgreSQL broker is the broker of choice. It implements all features, supports persistence across JVM instances, and is quick enough.


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.


There is one other broker type, which is sort of an aberration. An InstallBroker is able to install itself. For the PostgreSQL broker, this means creating the database tables. The Memory broker doesn't implement the InstallBroker interface now, since it doesn't need to install itself.
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 three servers.
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 or use the installer. 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 needs testing. 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).

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 17, 2002 - Alpha 4: Fixing a broken install script. Looks like I forgot to check in some code. Sept 16, 2002 - Alpha 3: Works with MSN Messenger, installation support, better security, small bug fixes Sept 9, 2002 - Alpha 2: Basic security, configuration and a PostgreSQL broker Sept 1, 2002 - Initial Release