

[1mAmTALK[0m
******

Welcome to [3mAmTALK II[0m, the AmigaOS Talk client.

Amtalk II - v2.2 (24.05.2000)

Copyright
*********

AmTALK has been designed, developed and written by

         [3mOliver Wagner[0m
     [3mE-Mail: (owagner@vapor.com)[0m
     
     and
     
     [3mMarcin Orlowski[0m
     [3mE-Mail: (carlos@amiga.com.pl)[0m
     
     All Rights Reserved.
     
     This document compiled by Adam Hough <adamh@spots.ab.ca>
     © 1996-2000 Oliver Wagner
     © 1999-2000 Marcin Orlowski
     All Rights Reserved
     
     Installer Script
     © 1996-2000 Robert Reiswig
     All Rights Reserved
     Brought together in a heavy overnight operation
     
     Textinput class
     © 1998-2000 Oliver Wagner
     All Rights Reserved
     
     Popplaceholder class
     © 1999-2000 Marcin Orlowski
     All Rights Reserved
     
     The sampled sexy voice belongs to
     © 1998-2000 Allan 'Drool' Versaevel

License
=======

AmTALK Registered Software License Agreement
-------------------------------------------
AmTALK-2 is Copyright © 1996-2000 by Oliver Wagner, Marcin Orlowski,
All Rights Reserved.  The producer of this software will grant the
Licensee a limited, non-exclusive right to use the program AmTALK-2 and
it's associated files on a single machine.  The producer will hand out
a special identification file called the key file to the Licensee.
This key file will enable the Licensee to fully use the AmTALK-2
package according to the terms of this license.

The key file is stricly for personal use by the Licensee only.  Any
disclosure of they key file will invalidate the license and the key file
itself.  The Licensee will be held liable of any damage arising out of
the disclosure of the key file.

No warranty expressed or implied. You use this software at your own
risk and discretion. Any damage to you, your machine, house, universe
or reality is completely your own problem. Vaporware and its related
authors are not responsible for anything whatsoever that happens to
you, even if the software destroys everything you hold dear. Using this
software is considered to be acceptance of these terms. Ignorance is no
excuse.

The product is provided as is without warranty of any kind, either
express or implied, statutory or otherwise, including without
limitation any implied warranties of non-infringement, merchantability
and fitness for a particular purpose. The entire risk as to use,
results and performance of the product is assumed by you and should the
product prove to be defective, you assume the entire cost of all
necessary servicing, repair or other remediation.  In no event shall
the producer of this product or its resellers be liable for any
property damage, personal injury, loss of use or other indirect,
incidental or consequential damages, including without limitation, any
damages for lost profits, business interruption or data which may be
lost or rendered inaccurate, even if we have been advised of the
possibility of such damages.

This agreement shall exclusively be governed by the laws of the Federal
Republic of Germany.

Support
=======

There is a support mailing list to discuss AmTALK related issues; write
to <AmTALK-request@vapor.com> and put "SUBSCRIBE" in the mail body.
Please join the list if you want to report bugs or have suggestions.

About Authors
=============

Olli Wagner is a sausage munching German who writes really good Amiga
software like AmIRC and Voyager (along with several others.) This is
shareware so if you like it, send Olli a large slice of bratwurst to
the address in the registration info in the about window. Also send him
email asking what happened to Knabber and if VNG will ever ship.

Marcin Orlowski is the outter space invader and leave him alone, unless
you want you machine to become M$ compatible. If you wish to nuke
someone for system crash, problems with your children or a dog, better
nuke Olli, as you used before ;)) <runs>

Description
***********

AmTALK is an enhanced version of the UNIX talk program. This program
was the precursor of IRC in that it permitted remote users to chat with
one another in real time. While IRC extends the basic functionality
such that many people can talk to each other simultaneously, the basic
need for a direct one on one method of communication is still there.
However, using talk is rather like using the phone in that people
aren't always available so wouldn't it be nice to have an answering
machine.

Vaporware introduces... AmTALK.

AmTALK has the following features:

   * fully multithreaded for several talk sessions at once.

   * Auto answer facility to accept talk requests and store incoming
     messages. Can be triggered manually or by a user-definable
     timeout. Optional auto answer information icon on workbench
     displaying number of new and unread messages.

   * "Locate" function to locate a user on a dynamic IP address even if
     you don't know which IP he is using right now.

   * History of last used talk addresses for easy access.

   * user configurable sounds for notifying of incoming talk requests
     and successfully established talk links.

   * Userlist to store frequently used talk partners, with aliasing for
     easy talk start and specificable access privilleges (override auto
     answer, refuse/ignore always, locate always etc.)

   * Can be started from inetd, or reside resident in the background,
     activated by hotkey.

   * Supports clipboard Cut & Paste from talk windows.

   * Keeps a full log of incoming talk requests.

   * nice and friendly GUI to start talks, control operation and
     configuration.

   * handles incoming talk requests with "wrong" usernames gracefully.

   * works with Miami, AmiTCP and as225r2-derived TCP/IP stacks.

Installation
************

The easiest way of installation is of course using the provided
Installer script.  Note that the provided Installer script doesn't work
with the old OS 1.3 1.24/1.25 versions of Installer.  Please get
Installer-43_3.lha from AmiNet (/util/misc) or from ftp.vapor.com,
/pub/misc/Installer-43_3.lha.

You may also want to add this to your startnet or startup.miami script:

     IF  SHOW('P','AmTALK')  THEN DO   /* Already there */
         DELAY(5)
     END
     ELSE DO
             ADDRESS COMMAND 'run >nil: AmTALK '
     END

This means that the program will be run automatically when you start up
your TCP/IP stack so the ability to handle incoming chat requests will
be there automatically.

AmTALK can also be started from inetd "on demand". Add the following
line to your [1minetd.conf[0m file:

    [1mntalk           dgram   udp wait  root    <path>AmTALK
<path>AmTALK inetd=1[0m

Note that you have to specify the full path to the AmTALK executable,
and it's right that you have to specify it [3mtwice[0m.

Your inetd will then start AmTALK when a talk requests comes in.

Running the program
*******************

In order to talk with someone, you can start AmTALK from a shell window
by typing

    [1mamtalk user@host[0m

This requires that the AmTALK executable is somewhere in your path.

Also, when started manually, you will be presented with the Talk
window, which is thoroughly explained in the next section. When AmTALK
is lurking in the background, you can open it everytime with the
specified hotkey. This defaults to [1mlamiga t[0m

The GUI
*******

The default window opened up gives you access to the address of the user
you'd like to speak to, a drop down window (an arrow pointing to a line)
which is a history of people you've talked to in the past so you don't
have to type their addresses in again by hand but double click the
selected person on the list.

Underneath that are three buttons:

         [1mTalk[0m This opens up a direct chat to the person specified in
     the address field above.

         [1mLocate and Talk[0m This allows you to 'find' a person on a
     dynamic link such as those provided by most ISPs. It also needs a
     full address but will search through all the addresses in that
     level of addressing until it finds the person you'd like to talk
     to. It can take a little bit more time though.

         [1mUserlist[0m This brings up another menu that allows you to
     enter aliases for addresses - similar in style to the way Mail
     programs do it. This means that you can type in "Olli" rather than
     "olli@hurz.wupper.de" at the address line.

     Once you've chosen to talk another window comes up which is the
     chat window itself. This is dominated by two sections - the top
     one which contains what your chatee has to say to you and the
     lower one which is what you're saying to them.  Scroll bars on
     both allow you to look at what's moved off the top of the screen.
     In the dragbar at the top is the address of the person you're
     talking to.

The Talk Received Window:
=========================

     This pops up when someone else tries to start a Talk session with
     you.

         [1mIgnore[0m Press this if you don't want to talk to the person.
     He will get a message stating that you're not available.

         [1mIgnore Always[0m Press this if you never want to talk to the
     person ever again. He will get a message stating that you're never
     available.

         [1mRefuse[0m Press this if you don't want to talk to the person.
     He will get a message stating you're ignoring incoming requests.

         [1mRefuse Always[0m Press this if you never want to talk to the
     person ever again. He will get a message stating you're ignoring
     incoming requests.

         [1mAnswering Machine[0m Route the call to the answering machine.

         [1mAA Always[0m Always route this person's calls to the answering
     machine.

         [1mAccept[0m Start the talk session.

Program Menu
************

Project Menu
============

[1mStart Talk[0m This brings up the window mentioned earlier on and allows you
     to have multiple talk sessions going on with other people at the
     same time.

[1mReview AA Messages[0m This is a list of all messages that have been sent to
     you while you've been away from your computer. It tells you the
     address of the talkee, when the chat attempt happened, how long
     the message was and whether you've read it or not. The window to
     the bottom contains the text of the message. The three buttons at
     the bottom allow you to start a talk session with the person who
     left the message. If you double click on the name that two will
     start a chat session with the person who left the message.

[1mReview Log[0m This is a list of all the chat sessions that have been started
     recently and list the time, date, addressee and what happened to
     the session. The three buttons at the bottom allow you to delete
     the list that's stored, or talk to the originator again.

[1mAbout AmTalk[0m Displays detailed information about the version of
     AmTalk you are currently using, copyrights and credits. Take a
     look at least once.

[1mAbout MUI[0m Opens MUI related "About" window.
[1mQuit[0m Terminates AmTalk. You may be asked for confirmation
     (depends on the state of the "Settins/Quick Quit" switch)

Windows Menu
============

Here you find all the options related to the currently active talk
window.  When there's no talk session, all the items won't be available.

[1mCopy to Clipboard[0m Copy selected contents of the current window to
     the clipboard.

[1mPaste From Clipboard[0m Copy the contents of the clipboard to the talk
     session. The contents must be ascii format.

[1mSave plain text as[0m Saves the contents the talk session to the file.
     The contents will be saved as plain text, with all ANSI codes
     (bold etc) stripped.

[1mSave with styles as[0m Saves the contents the talk session to the file.
     The contents will be saved as is, with all ANSI codes (bold etc).

[1mTerminate connection[0m Terminates you current talk session, as window's
     Close gadget does, but keeps your talk window opened. This shall
     be helpful for all of you wanting to save the log of the session
     when you finished talking.

[1m[1] xxxxxx[0m This is a list of all the current talk sessions in progress.
     To just to the appropriate one, just choose the option.

Settings
========

Settings menu splits into few sub parts. Grouped into subwindows:

and standalone switches:

[1mShow AA Infowindow[0m This is a tiny little window that displays
     messages left for you to read in the format "read messages/unread
     messages" - double clicking on it brings up the AutoAnswer message
     window documented earlier.

[1mSnapshot AutoAnswer Window[0m This ensures the program remembers
     where you left the window.

[1mAuto Answer All[0m This means that the Answering Machine handles
     all incoming calls rather than bringing up the Talk requester so
     you aren't bothered by them.  The default is off so you get the
     option of answering people's chat requests.

[1mPop screen to front on Beep[0m Since release 2.1, AmTalk
     intercepts CTRL-G (BELL code) code sent by your party and
     according to your current settings does DisplayBeep() or plays
     sample to wake you up and to remind your party is getting nervous
     ;-) When this option is activated, AmTalk will automatically pop
     its window (and screen) to front, helping you to understand what
     was the cause of all the sounds you hear.  That feature is useful
     when you no sample attached to "Beep" event (which force AmTalk to
     do DisplayBeep(), which is unfortunately non-customizable).

[1mEcho Beep's[0m If you want to see "beeps" in you talk window
     while your party is sending them, turn this option on.  When
     CTRL-G will be pressed on remote side, you will see "<BEEP>" text
     in your talk window (and, depending on your configuration, you
     will hear the sound/sample).

[1mQuick Quit[0m When turned on, AmTalk won't ask you for
     confirmation when "Project/Quit" menu item will be choosen.

[1mSingle file session save[0m Since v2, AmTalk lets you save the
     log of your talk session.  You may want to have separate files
     (".1" and ".2" will be automatically appended to the file name)
     for each speaker, or write all the texts in one file.  If you
     prefer the first way, turn this option off.  If second, check that
     menu item.

[1mIgnore empty messages[0m AmTalk 2 is now smart enough to filter
     out all empty messages your parties left on your Auto Answering
     Machine.  When you don't want your AA to keep empty messages, just
     keep this option active.

General
*******

[1mHotkey[0m Set the keyboard option that you want to call up
     AmTALK.  This defaults to [1mlamiga t[0m.  Click on the button next to
     the string gadget, to open PopHotkey panel, which simplifies the
     whole process (requires installed PopHotkey.mcc class)

[1mHost history buffer[0m Specify how many host entries you want
     AmTalk to remember in host history buffer.

[1mUnread messages notification[0m Specify the way you want be
     notified about unread messages remaining in your Auto Answering
     Machine

[1mColors[0m Here you can set the colour of your text and
     background.  Click on the line to bring up the options for
     changing them.

Sound
*****

    [1mSounds[0m AmTALK can play samples for when a connection is attempted
and for when it succeeds.  Type the location of the sound files or use
the document button to bring up a file requester.  The number refers to
the replay volume and typically changes to an appropriate value
automatically.  Test allows you to try out the sample.  As AmTalk uses
Datatypes for playing sounds (OS3+), you can use any sound type as long
as you got the proper datatype installed that can handle that sound
type.

Announce Window
***************

In this window you can determine the behaviour of AmTalk's announce
window (which pop ups everytime you got incomming talk request).  You
can specify which gadget you want to become default one (accepted by
hitting ENTER key), specify exact shortcuts for all the buttons in that
window and determine the sample which you want to hear whenever you
press the given button.

I strongly advice to not use the "Default Button" (Prefs/Announce
Window) feature (just set it to NONE). It's better to set set up own
shortcuts instead for every separate action, mostly because it offten
happen that you are doing something different (on other screen maybe
etc) while the incoming talk request appears (e.g.  you write email
etc), and when announce window suddenly pop up, it may happen you was
just about to hit the ENTER key. As you will mostly be unable to stop
your hand you accidentaly perform the action you sat as "Default
Button". And voila.  You made blind decision ;-(  Using hotkeys prevent
you from rejecting requests from your friends or accepting talks from
people you can't stand.  Complex hotkeys (e.g.  with extra qualifiers
like Control or Shift) are harder to be typed by accident, and
therefore are much safer.

Auto Answer
***********

    [1mAutoAnswer[0m In the text window to the top, you can type in the
message that people will get when they try to reach you if you're not
paying attention, don't want to talk to them and so on.  The two sliders
set how long their message can be and how long it'll take the answering
machine to kick in.

User List
*********

    [1mUserList[0m See the section about this earlier on.

MUI
***

    [1mMUI[0m Set your preferences for all MUI related gagetry in this
program.  Read the MUIPrefs documentation for further details.

AREXX
*****

In addition to the standard MUI Arexx commands, AmTALK provides the
following two commands:

    [1mtalk[0m

Template: [1mRemoteUser/A,RemoteHost/A,RemoteTTY,Locate/S[0m

    [1mfindalias[0m

Template: [1mAliasName/A[0m

Locate
******

Many people seem to have problems understanding how the "Locate and
Talk" facility in AmTALK works, so I try to give a more thorough
explanation.

One of the reasons that the talk protocol went out of fashion recently
is tied to the more and more advancing usage of dynamic IP addresses.

Since you must know the exact host name of a party you want to "talk"
to, it's nearly impossible to talk to someone which normally uses a
dynamic IP address without a means of finding out the address he
currently uses.

You can, for example, find this out if you meet in IRC, but it's pretty
pointless to use talk if you could use the more efficient DCC CHAT
anyway.

AmTALK tried to provide a solution to this problem, the so-called
"Locate facility".  How does it work?

Let's assume you want to talk to MrFitz, which ISP's has the domain
"ifx.net".  ifx.net provides dynamic IP addresses to it's users, so
everytime MrFitz logs on, he gets a different host name -
"ip69.ifx.net", "ip42.ifx.net" etc.

So, when you want to talk to MrFitz, you don't know which address he's
currently using.  Locate, however, does the trick of asking all of the
potential IPs he may be on for a user with the name of "MrFitz", and if
you're lucky, the correct AmTALK at the remote end will respond with
"Here I am!" and voilá, you know where to talk to.

Actually, in order for "Locate" to work, you must know at least one of
the IP addresses that MrFitz normally has - you might have gotten it
from the last time you saw him on IRC, or when he "talk"ed to you etc.
You can't use "*.ifx.net" or just "ifx.net" as a anchor address to
Locate, btw - it must be a valid hostname which results in a IP address
record.

Also, you must know the exact username that he uses at his end, because
this is the anchor at which the identification takes place.  If you try
to locate "mike@ip42.ifx.net", you will fail, because his AmTALK will
only responds to queries for the username "Mike".  The local username is
normally equivalent to the email name of the person, or the username in
his IRC userhost address.  If you are unsure, just ask.

Technically, "Locate" works by assuming that the ISP gives out all his
Dynamic IP addresses from within a single Class-C network.  It takes the
host name you feed to it, masks out the network part and then queries
all 254 IP addresses of this net with a short UDP packet bearing the
username.  If the correct site is hit, it will respond with a
acknowledge packet.  This is a very brute force approach to the
problem, but has the advantage of not relying to any global or
ISP-local "talk hostname servers".  The bandwidth waste caused by the
packet flood is comparable to WWW or usenet comp.sys.*.advocacy
hierarchies, and therefore "Locate" should not be used lightly.

Index
*****



 Announce Window settins                Announce Window
 ARexx commands                         AREXX
 Auto Answering machine settins         Auto Answer
 Contents, Table of                     Top
 Copyright Information                  Copyright
 Description                            Description
 Features                               Description
 General settings                       General
 GUI                                    The GUI
 Installation                           Installation
 MUI settings                           MUI
 Progrm Menu                            Program Menu
 Settings                               The GUI
 Sound settings                         Sound
 Support                                Copyright
 TALK protocol                          Description
 The Locate function                    Locate
 User List settings                     User List

