Document AVM documentation

NOTE:  THIS DOCUMENTATION IS REALLY OUT OF SYNC!

               AVM Program Documentation
               ~~~~~~~~~~~~~~~~~~~~~~~~~

           A Program by Dr. R. Alberto Villarica

 AVM is Copyright - 1995 by Al Villarica (SoftWorx).

 Please read this documentation!  It is *very* important!
 I have tried to make the documentation as complete as possible.
 However, if you find something that is out of date or if a feature
 is undocumented, let me know so I can update the documentation.
 Again, it is important that you go through the documentation at
 least once. If you have some problems, check out the section called
 `Common Problems' before asking me.  You may find that some of
 your questions have already been asked by other people and have
 been solved.

 If you press the "Help" key in any of the windows (except the
 window that pops open if you have an unregistered version of AVM),
 you will get to read this file.  It is context sensitive, but not
 fine grained.  In other words, you will be put in the section
 that talks about the particular program you pressed the "Help"
 key in.  In a future version, pressing the "Help" key will bring
 up help on the most specific button or region the cursor was
 on top of.

 Please check out avm:contrib.  It contains stuff contributed
 by AVM users.  You may like what's in there.

0. Important!
-------------

0.1. Author

 Al Villarica
 4 Lone Oak Circle
 Penfield, NY 14526
 USA

 Internet email: rvillari@cat.syr.edu

 Fax:   (716) 387-0724 (press 2)
 Voice: (315) 387-0724

 Call at "nice" hours please -- my time zone is called Eastern
 Standard Time, so make the necessary time conversions.

0.2. Installation

 Read the file called "Installation".  It contains the steps
 needed to get you started.

0.3. This is SHAREWARE!

 Read the file called "Registration".  It contains information
 on what the Unregistered version can do.  It also tells you
 how to register the software to make full use of your
 voice-capable or fax modem.

0.4. Technical Support

 Join our `Mailing List'!

 You can call me up at my number (see the `Author').  If you do
 leave a message and want me to call you back, expect that I will
 call COLLECT.  You can refuse my Collect call and call me back to
 save yourself some money.

 You may also send regular mail to the `Author'.  I will try to answer
 your questions as soon as I can.  However, if you have access to a
 system that can send email to an Internet site, my address is:

 rvillari@cat.syr.edu

 If you send email to this address and I do not respond within 1 week,
 you can be sure that I did not receive your email or my reply didn't
 reach you.  I am usually very good about replying to email, even if you
 don't ask a question.  So, if you don't get any response from me, try to
 find other ways of reaching me.

 I will answer all questions and help you do some ARexx programming
 if you are using a fax or data/BBS program that you want to integrate
 with AVM.

 You can also get some technical support by calling up my Mini BBS.
 See `Getting Updates'.

 Before asking me a question, *please* look for the answer here in
 this document.  You may find that someone asked your question
 and I answered it.  Look at the section `Common Problems'.  Also,
 it would be most helpful if, aside from telling me that AVM doesn't
 work, you provide useful information.  For example, I would like to
 know:

 o  Your computer type (A1000, A2000, etc.)
 o  Your processor type (68000, 68020, 68030, 68040, 68060)
 o  Your operating system version (2.04, 2.1, 3.0, 3.1, etc.)
 o  Your modem type and ROM version (if you have a ZyXEL, type in
    ATI1 in some terminal and tell me what it says).
 o  Your serial port (internal, GVP IOextender, Multiface II, Multiface III,
    etc.)
 o  A ram:logger.save file.  Run the Logger program, try to reproduce
    the problem, click on the Save button in the Logger window, then
    send me the file called ram:logger.save.  The Logger program produces
    important information about the AVM Server process which handles
    the modem.  It also tells me if there's a problem with one of your
    ARexx scripts.  In other words, the file ram:logger.save allows me
    to do "remote" debugging.
 o  Your avm:servers.cfg file.

0.5. Getting Updates

0.5.1. Networks and BBSes

 I will try to distribute the latest public versions on the major
 networks (Internet, FidoNet, Fred Fish, CompuServe, America Online,
 Delphi, etc.).

0.5.2. Deep Thought BBS

 Christian Stelter has been kind enough to carry AVM in his BBS.  It is
 a FidoNet node.  Here's some information on his BBS.

 DEEP THOUGHT Bulletin Board System
 InterNet: deepthought.north.de
 FidoNet: 2:2426/2020.0 & 2:2426/2021.0
 AmigaNet: 39:170/204.0 & 39:170/205.0

 Port 1: +49-(0)441-383365, 1200-21600 bps HST 16.8, v.32bis
 Port 2: +49-(0)441-383839, 1200-16800 bps ZyXEL
 Magic for Fido File Requests:    AVM (for the latest version)
                             :    FILES (for a list of all files)

0.5.3. Mini-BBS

 Use a telephone and dial my number (See `Author').  Wait for AVM
 to answer.  When it does, press 5 on your touch tone phone.  That will
 activate AXsh, a non-traditional BBS that contains AVM related files.
 Instructions on how to use AXsh will be displayed when you log in.

 You can call between 10am and 5pm, Eastern Standard Time (USA),
 but please don't be rude: say "hello" if somebody answers.  Then
 kindly ask them to press 5 (silent answer is active, so it should
 be possible to get the modem to answer in data mode even if somebody
 answers -- neat, huh?).

 NOTE:  THIS IS ONLY AS A LAST RESORT!  I WOULD PREFER IT IF YOU GOT
 AVM EITHER THROUGH YOUR LOCAL BBS, BY EMAIL OR FTP, OR THROUGH
 THE DEEP THOUGHT BBS.

0.6. Mailing List

 Christian Stelter has set up a mailing list for AVM.  To join
 this mailing list, send email to "listserv@deepthought.north.de".
 On the first line of your email (not the Subject header), type
 in:

  subscribe avm

 Then, when I send email to this mailing list, everyone on
 the mailing list will get a copy.  This is a good way for you
 to find out about new releases of AVM (whether Beta or final).
 Plus, I plan to distribute small fixes to ARexx scripts here
 and to discuss new features and bugs.

0.7. Versions

 If you want to find out what's different between this version
 and the previous versions, browse through the file called
 "History".

 Note that I follow the Commodore way of numbering versions.
 In particular, the number after the decimal point is a revision
 number.  Version 1.20 is not the same as 1.2.  Version
 1.20 is 18 revisions later than 1.2.

1. Introduction
---------------

 What does AVM stand for?  No, it's not Al's Voice Mail or something
 like that.  I had planned on it being Amiga Voice Mail, but decided
 on Advanced Voice Mail (recommended by one of the Beta testers).

 With the AVM, you can use your voice-capable modem (Zyxel, Dolphin,
 or LineLink, Rockwell based voice modem) and GPFax, TrapFax, or the
 included EFax to provide:

 o  A three-mailbox answering machine.  These mailboxes currently
      are named (Anonymous, Al, and Dory).  You can change
      their names.  See instructions in the `Call Notifier' on how
      to accomplish this.
 o  A simple answering machine if you don't want to have mailboxes.
      In this case, only the Anonymous mailbox is active.
 o  The ability to archive messages and faxes that you receive so
      that you can recall them later on.
 o  The ability to receive voice messages, faxes, and data calls
      all on one line.  At this time, only GPFax, TrapFax, & EFax are
      supported.  With some ARexx programming, other fax programs
      may be substituted.  There are a number of BBSes that are
      currently supported (4D BBS, AXsh, CNet, Excelsior, etc.).
 o  The ability to retrieve messages from a remote site by using
      the remote site's touch tone keys.  Information about the
      message can be played, such as the time and date of the message,
      any telephone number left by the caller, or the telephone
      number transmitted via the Caller-Id mechanism available
      on some phone systems.
 o  Silent answer -- if you pick up the phone before the program
      does, it will eventually pick it up and listen in on your
      conversation.  By pressing the appropriate keys on your touch-
      tone phone, you can instruct AVM to handle the call as a fax
      call or have it start recording your convesation.
 o  Record Conversation -- you can use this to record important
      conversations.  This is especially handy when dealing with
      mail-order firms.  But, you need probably should tell the other
      party that the conversation is being 'taped' becuase that may
      be considered as an illegal phone/wire tap.
 o  Remote recording -- you can remotely record a personal greeting
      for each mailbox.  In addition, some of the outgoing messages
      can also be recorded from another telephone.
 o  Pre Conversion -- with this feature, you will be able to
      pre-convert voice files while your computer is not doing
      anything interesting.  So, when you get home, you can click
      on Play to play your message, and it will be immediately
      played.  Otherwise, you would have to wait for the conversion
      process to take place.
 o  Immediate playing -- if you have a fast Amiga and you use a
      compression mode that can be "uncompressed" quickly, you
      can play the incoming voice files directly to the Amiga sound
      system.  No intermediate conversion is necessary.  With this
      feature, you don't have to use the Pre Conversion feature
      (but you still can, if you want) and you don't have to wait
      forever to hear your incoming messages.
 o  Multiple greetings -- you can greet your callers depending on
      the time of day, the day of the week, randomly, etc.  Plus,
      you can record these greetings remotely.

 The AVM Suite is a major rewrite of ZVM, my first attempt at providing
 answering machine capabilities to users of the Amiga and the Zyxel modem.
 AVM now supports the LineLink 144e modem (some restrictions apply),
 the MTD Dolphin modem (a Zyxel compatible), a Rockwell chipset based
 voice modem (I tested a Zoom VFDX, others have tried a Zoom 14.4v).

 The AVM Suite consists of a bunch of programs which all cooperate via
 ARexx.  For example, when a call comes in and someone leaves a message,
 the `Call Notifier' will show that there was a new message (the Count
 would increase in the appropriate mailbox).  If there was a `LogView'
 opened that was "viewing" the mailbox where the message was in, a new
 entry would automatically be inserted into the view.  In other words,
 changes to the mailboxes are broadcast to all the active programs
 that are viewing a particular mailbox.

 The AVM Suite uses the server model.  Each modem that you want the AVM
 Suite to handle incoming calls needs to have a server process (`AVM')
 running for it.  The AVM server knows how many rings to wait for before
 answering a ringing line.  When it gets the desired number of rings, it
 dispatches an ARexx script on itself to handle the call.  I designed this
 server to be able to run autonomously.  Therefore, it is possible to have
 the AVM server running to handle all calls and not have the `Call Notifier'
 or the `ServerMan' running.  This will definitely conserve memory, but at
 a small cost.  The AVM server will not know if there are any messages being
 "watched", so it will not be able to support the "Toll Saver" option.
 And, you will have no real way of knowing whether there were messages left
 on your computer, since that was the whole purpose of the `Call Notifier'.
 But, as I said, if you can do without those two features, you can get away
 with running just the AVM server.  Do this under low memory situations.

2. Requirements
---------------

 o  AmigaDOS 2.04 or greater
 o  MUI 2.3 or greater (1.4 is no longer supported!)
 o  a Zyxel, a LineLink 144e, a MTD Dolphin modem, or a Rockwell
      chipset based voice-capable modem.
 o  ARexx - this is included with AmigaDOS 2.04 and up, but it may not
      actually be running on your system.  Look in the startup-sequence
      or the user-startup for a line containing "rexxmast" to be sure.
      Alternatively, type in the following into a shell:

      rx "say hello world"

      If it prints HELLO WORLD in the shell, ARexx is running.

 o  a hard disk to store voice messages
 o  2 megs of RAM (the more, the merrier)
 o  an accelerated Amiga is desirable
 o  speakers hooked up to your Amiga would be nice
 o  a sound digitizer would also be nice (you don't need one since
    you can record messages using the phone line)
 o  a fast serial port is also desirable, but not a requirement.
      I have been told that AVM does work with the IOExtender,
      the Multiface II card, and the Multiface III card.
 o  when using the AVM programmer, you need to be using at least a
    640x400 screen (because of the size of the windows).  You can use
    a "virtual" WorkBench to get the desired screen size.  It could,
    for example, be a 640x200 screen but with a virtual WB of 640x400.
 o  GPFax or TrapFax are alternative fax programs that you can use
    with AVM.  However, AVM now includes EFax.  It's really easy to send
    and receive faxes with AVM using EFax.

3. Modem Limitations
---------------------

 Although AVM was designed to handle multiple modems, it does not
 currently handle multiple types of modems at the same time.  In other
 words, you cannot have two different modem with different types on two
 different serial ports.  You can, however, have two different modems
 on two different serial ports if they are of the same type.

 I will fix this limitation in a future version of AVM.  The rest of
 this chapter describes the individual limitations for each modem
 type.  If you're interested in knowing why this isn't possible,
 it's because of the voice files.  Each type of modem normally uses
 a different compression.  This means that I need to find a way of
 playing different voice files depending on which modem is being
 used.  Also, when someone calls in to listen to a message and the
 message was recorded using the other line, we need to convert it.
 This gets tricky because some modems don't have decoders/encoders
 for their compressions.

 If I have an encoder for the modem/compression you are using,
 then you can use the pre-recorded voice files.  Otherwise, you
 pretty much have to record the voice files yourself.

3.1. ZyXEL

   o  If you have an E+ or greater, you can use the CELP compression.
      However, there is no CELP decoder/encoder, which means that
      you cannot play out these voice files through the Amiga's
      sound system.

   o  If you have a lower ROM version than 6.10a, you should not use
      ADPCM3.  If you have 6.10a or greater, you can use ADPCM3SYNC
      compression.  I have personally tried using ADPCM3SYNC and
      found that there are still problems with the ZyXEL decoder
      losing sync.  This means that you will occasionally hear
      scratchy noises.  Theoretically, with ADPCM3SYNC, if the ZyXEL
      decoder loses sync, it should be resynced after 50 milliseconds.
      I do not have an encoder for ADPCM2SYNC or ADPCM3SYNC.

3.2. Dolphin

   o  As far as I know, the only available compression mode is ADPCM2.

3.3. LineLink 14.4e

   o  The LineLink can use a compression called SPC.  But, the decoder
      I wrote for it is not in tip-top shape.  Try it to see if you like
      it.  Be aware, however, that SPC uses more serial bandwidth and
      more diskspace.  It is, however, fast to decode.

      I do not have an encoder for SPC.

   o  The LineLink cannot detect a calling fax automatically.  You will
      need to tell your fax callers that they need to follow instructions
      on how to activate your fax.

      I have implemented something that may enable you to receive faxes
      automatically.  This only works when you use the two-mailbox
      system I developed.  Normally, when a caller calls, he is instructed
      to press 1 to start the mailbox system.  If he doesn't press 1, the
      default goes into a mailbox called "anonymous".  See `Answer Priority'
      to change this default to go into fax mode or data mode.

3.4. Rockwell

   o  I don't have an encoder/decoder for any of the compressions
      used by Rockwell based modems.  This means that you cannot
      play them to the Amiga or convert IFF files to a voice file.
      I hope to find some source code to alleviate this problem.
      Fortunately, you can play to the Internal Speaker and it will
      also play to the telephone plugged into the back of the modem.

4. Common Buttons and Options
------------------------------

 This chapter describes the buttons and options common to most of
 the programs in the AVM Suite.  This allows me to be lazy.

4.1. Play

 Click on this button to play the selected voice file through the
 device in `Play to'.  You can stop the playing of a message by clicking
 on the `Stop' button.

4.2. Record

 Click on this button to record the selected voice file through the
 device in `Record from'.  Again, click on the `Stop' button to stop
 the recording process.

 After clicking on the record button, watch the modem lights and
 wait for the RXD (on the Zyxels) or the IO (on the LineLinks) before
 speaking.  Depending on the speed of your computer, there could
 be a slight delay before the modem actually starts recording.  This
 is because I need to send commands to the modem to actually start
 recording.

4.3. Stop

 This stops recording, playing, or any conversion process.

4.4. Play to

 There are several options that you can choose from.  Some of these
 options are not available for some of the modems.

4.4.1. Amiga

 This option is available only if I have a decoder for the compression
 you choose for the voice file.  This option will first convert
 the voice file into an IFF file (avmtemp:temp.iff) and then play
 it using "DSound".  Note that I cache the last played file so that you
 can keep playing it without going through the conversion process.

 The ARexx script activated by this option is playamiga.avm.  You can
 modify this script if you would like to use a different player.

4.4.2. TelephoneLine

 This option allows you to play voice files through the telephone line.

 To use this option, you should first remove the dial tone.  You can do
 this by pressing a few touch tone keys.  Or, you can pick up the phone
 and wait for the telephone company to give up on you. <<need to check
 if it plays even if you disconnect the phone line from the modem>>

4.4.3. InternalSpeaker

 This will play voice files through the modem's internal speaker.  The
 LineLink doesn't support this.

4.4.4. LocalHandset

 This only works with Rockwell based modems so far.

 This plays to the telephone hooked up to the back of the modem.

4.4.5. IFF

 This will actually perform a conversion from the voice file to an
 iff file.  This option is only valid if there is a decoder available
 for the compression scheme that you used.  In this version, the
 output IFF file is avmtemp:save.iff.  A future version will allow you
 to pick the name of the IFF file.

4.4.6. AmigaDirect

 This option plays voice files while it is decoding them.  This results
 in a small delay from the time you press play to the time it actually
 plays (unlike the `Amiga' option, which converts the whole voice file
 first).  Note that you can only use this option if you have a fast
 Amiga.  It works on my A3000/25.  Try it out on your system to see if
 it's fast enough.  If it is, you'll like this option.

4.5. Record from

 As with `Play to', there are several options to choose from.  Again,
 some of these options may not be available for some modem types.

4.5.1. Amiga (Record)

 This option will activate the rexx script recordamiga.avm.  This
 script calls AGMSRecordSoundPS3.  It will call AGMSRecordSound (a
 version that works with most generic digitizers) if you instruct
 it to (by double-clicking on the useGenericDigitizer icon).
 It calls the digitizing software in such a way that the output is
 avmtemp:temp.iff.  This IFF file is then converted into the
 appropriate voice file by a converter.

4.5.2. TelephoneLine (Record)

 This allows you to record your messages using the telephone line.
 The only way to get this to work is to pick up the phone and get
 rid of that dial tone somehow.  As with `Play to', you can do this
 by entering a few touch tone keys.  Unfortunately, on some systems,
 after a while, you'll get the annoying phone company message to 
 put down the phone.  You could wait this out until the phone company
 gives you just silence.

 What I do is to wait for this silence and record all the messages
 I need to in one session.

4.5.3. ExternalMic

 This option only works with the ZyXEL modem and the Rockwell based
 modem.

4.5.3.1. Rockwell (ExternalMic)

 Some Rockwell based modems have a jack which allows you to plug
 an external microphone in.  Use this option to record using that.

4.5.3.2. ZyXEL (ExternalMic)

 Warning, DO NOT use this option if the modem is still plugged into
 the phone line.

 To record with this option, disconnect the modem from the phone line,
 plug in the handset (some telephones have a handset which plugs
 into the actual phone) into the "line" jack of the modem, and speak
 into the ear part of the handset (not where you usually talk into).

 The reason you should not plug the modem into the phone line when
 using this option is that the modem amplifies the signal.  If the
 modem is plugged into the telephone line, the line signal would be
 amplified and could destroy your modem's internal circuitry.

4.5.4. LocalHandset (Record)

 This only works with Rockwell based modems so far.

 This option lets you record from the telephone plugged into the
 back of the modem.  This works rather nicely.  You don't have
 to kill any dial tones or anything.  You can just start recording.

4.5.5. IFF (Record)

 This is similar to the Amiga option, except it doesn't actually call
 the digitizing software.  It assumes that the software placed the
 IFF file in avmtemp:save.iff.  A future version will
 give you a requester to choose the IFF file you want to convert
 into a voice file.

5. AVMUI
--------

 I USE MENUS NOW!

14. AVM
-------

 AVM is the server that runs in the background.  It has no user interface
 and can only be run from the CLI.  When `ServerMan' starts, it runs
 all the servers it knows about.

 If you wish to run the AVM server manually, its CLI template is:
    avm servername/a
 where servername is the ARexx port name you gave it using the `Server Config'
 program.  Remember that you should probably use the "run" command when
 running the AVM server manually, as in:
    run >nil: <nil: avm Server.lin

 The only way to tell that the AVM server is running is through
 the `ServerMan' program.

15. VoiceMail Instructions
--------------------------
 
 This chapter describes the "user interface" presented to a caller
 of this system.  I will not document everything that you can do,
 but will try to give you a general idea of what AVM is capable
 of.  Hopefully, the voice prompts are friendly enough that you
 can figure out stuff for yourself.

15.1. Fax and Data tones

 At any time, when AVM is recording, playing a message, or
 waiting for the remote caller to press some telephone key,
 if a fax tone is received, then the fax program is automatically
 started.  If a data tone is received (some newer modems emit
 modem calling tones), the data program (BBS) is started.  At
 this time, the only fax program that is supported is GPFax and
 TrapFax and the only BBS supported is AXsh.  I think it should
 be easy to support other types of BBSes, but would require more
 thought to support other FAX programs.  avmrexx:startbbs.avm is the
 script that actually runs AXsh.  Note that certain modems
 cannot detect Fax tones or Data tones.  So, what I just described
 may not be true for your setup.

15.2. Standard User Interface

 I tried to make the menu system as standard as possible.  Pressing the
 '*' symbol at any menu should hang up the system.  This is good to know
 because you may be late in getting to the phone.  Pressing '#' usually
 brings you back to the previous menu.  Pressing '0' usually replays
 the menu's voice prompt.

15.3. Remote Caller

 When somebody calls, an initial greeting is played over the telephone
 line to the caller.  This varies depending on whether you have set
 AVM up for TIMEOFDAY, RANDOM, etc. (see `Introduction Messages')

 If you configured AVM to run in multi-mailbox mode, the caller
 is then instructed to press 1 to start voicemail (at this time,
 he can also press 2 to send a fax or 5 to start a BBS).  If he
 does not press any key in the time allowed, then the caller is
 either placed in the Anonymous mailbox (where he can record
 a message), or AVM can start Fax or Data mode.  See the section
 `Answer Priority'.

 If you decided to use AVM as a simple answering machine, then
 AVM will automatically put you into the Anonymous mailbox
 after the initial greeting.  Note that you can still press
 2 to start the Fax program or 5 to start the BBS program
 even while AVM is playing the instructions on how what
 to do ("...wait for the beep, leave your message...").

 When entering a mailbox, the first thing that is played is
 the mailbox's Personal message.  You can record this personal
 message remotely or using the Player program.  To record it
 remotely, you first need to get into maintenance mode and choose
 "Record a Personal Message".  If you want to record it using
 the Player, you need to run the Player, then type in

   avm:anonymous/voices/Personal

 into the string gadget below the listview containing a list
 of filenames.  Note that you need to replace "anonymous"
 be the directory name of the mailbox (i.e. mailbox1, mailbox2,
 etc.) if you want to record personal messages for mailboxes
 other than the Anonymous mailbox.

 After the personal message is played, then the telephone
 number of the mailbox owner is played (assuming you set
 the Announce flag in the MailboxConfig program for this
 mailbox *and* there is a telephone number to announce).

 After the telephone number is announced, then the instructions
 for leaving a message ("...wait for the beep, leave your
 message...") are played.  Then, a beep is played (or a user
 defined voice file containing some form of beep), then
 AVM starts recording.  If the caller presses 1 during any of
 the messages described above, he will be taken directly to
 the beep, where he can leave a message.  This is useful for
 people who already know how to use your system and want to
 skip all those messages.

 After the caller leaves a message, he can press 1.  This will get him
 into another menu which allows him to leave another message (in case
 he got cut off because he exceeded the timeout for recording), leave
 his telephone number, send a fax, get into data mode, start
 maintenance mode, etc.

 To get into maintenance mode, you need to first access a particular
 mailbox.  Then press 9 while it's playing the Personal message,
 the mailbox owner's telephone number, or the instructions for
 how to leave a message.  You can also enter maintenance mode
 after recording a message.

16. Configuring with RXSET or SETENV
------------------------------------

 There is a file called avm:StandardConfig.Template.  This file will
 always be overwritten whenever you install new versions of avmNfax.
 This file provides the default values for the things you can configure.
 In order to override these values, edit avm:StandardConfig since that
 file gets executed *after* avm:StandardConfig.Template gets executed.

 You can configure this voicemail system to a certain extent.  Look in the
 file "avm:StandardConfig".  This file contains default values
 for all of the "environment" settings you can adjust.  Note that
 "avm:StandardConfig" is executed by startAVM.  These "environment"
 settings are described in this section.

16.1. Introduction Messages

 When AVM answers the phone, it plays 1 of 7 files (these files are called
 avm:voices/intro1, avm:voices/intro2, etc.), depending on certain
 options you set.  You can choose any of the seven files to be played,
 or you can have one played for each day of the week, or you can have
 one played depending on the time of day (morning, afternoon, evening),
 or you can have it pick one at random.

 To play a particular file (choose 1 to 7), you would do the following:

   rxset AVMIntroductionType 1

 To play something based on the day of the week (1=Monday, 2=Tuesday, etc.)

   rxset AVMIntroductionType DAYOFWEEK

 To play something based on the time of day (1=morning, 2=afternoon, 3=evening)

   rxset AVMIntroductionType TIMEOFDAY

 To play one of the seven files randomly

   rxset AVMIntroductionType RANDOM

16.2. Time Format

 You can control what is said when playing a time.

   rxset AVMTimeFormat "%hours12 %minutes %pm"

 The line above will cause AVM to play the hours (1-12), followed by
 the minutes, then am or pm, depending on whether it's before 12pm
 or after 12pm respectively.

 To play the time in 24 hour format,

  rxset AVMTimeFormat "%hours24 %minutes"

 will do it.  You can play any voice file in between any of the time
 specifications by typing a filename (its full path).  For example,

 rxset AVMTimeFormat "avm:voices/TheTimeIs %hours12 %minutes %pm"

 will cause AVM to play the message in avm:voices/TheTimeIs, then
 the time in the 12 hour format.

 Note that the voice files should not have any spaces in their names.

16.3. Date Format

 You can control the order and voicefiles that are played when playing
 a date.  To do this, do a:

   rxset AVMDateFormat "%month %day"

 This will play the month first, followed by the day of the month.  If you
 want to play a particular voice file anywhere in between, you only have
 to specify the name of the filename in the AVMDateFormat string.

 For example, you can do this:

   rxset AVMDateFormat "avm:voices/TheDateIs %month %day"

 This will play the file in avm:voices/TheDateIs, followed by the month,
 then by the day of the month.  Note that the voice files should not
 have any spaces in their names.

16.4. Simple or MultiMailbox

 You can make this system be a simple answering machine, where the caller
 will not have to press any keys to get to leave a message.  To do a simple
 answering machine, do the following before running any of the programs in
 the AVM Suite.

   rxset AVMSimpleAnsweringMachine YES

 To use the two mailbox system, do the following:

   rxset AVMSimpleAnsweringMachine NO

 Note that the default is to use a simple answering machine.

16.5. Playing Numbers

 Normally, AVM concatenates two numbers when it plays a 2 digit number.
 This reduces disk storage in having to store the all the possible
 numbers.  However, I have been told that the concatenation is language
 specific.  So, you have the option of recording all 59 numbers (I can
 only play 0 through 59 at this time).  To tell AVM to use the
 non-concatenating method, you do:

   rxset AVMDirectDDNumber YES

 To use the concatenating method, you do:

   rxset AVMDirectDDNumber NO

16.6. Time and Date Specification

 LogView, Scheduler, and SchedulerView all show times and dates.  You can
 change the format of the time and date that is displayed.  To do this,
 you need to set an environment variable called AVMTIMEDATEFORMAT.

 Be careful with this!

 In the environment variable, special character sequences get replaced by
 the appropriate time or date information.  See below for an example:

 %a = abbreviated weekday name
 %A = full weekday name
 %b = abbreviated month name
 %B = full month name
 %c = locale's appropriate date and time representation
 %d = day of month (1-31)
 %H = hour (00-23) in 24 hour clock
 %I = hour (00-12) in 12 hour clock
 %j = the day of the year (001-366)
 %m = month (01-12)
 %M = minute (00-59)
 %p = equivalent of AM & PM
 %S = second (00-61)
 %U = week number of year (00-53) (the first sunday as the first day of week 1)
 %w = weekday (0-6)
 %W = week number of year (00-53) (the first monday as the first day of week 1)
 %x = locale's appropriate date representation
 %X = locale's appropriate time representation
 %y = year without century (00-99)
 %Y = the year with the century
 %Z = time zone name or abbreviation
 %% = percent sign

 setenv AVMTIMEDATEFORMAT "%H:%M %b %d"

 If you don't set AVMTIMEDATEFORMAT, the default is "%H:%M %b %d", which
 would display something like "15:59 Dec 5".

16.7. Answer Priority

 When AVM is setup as a multi-mailbox machine (not a simple answering machine),
 you have a choice of what to do if the person calling doesn't press 1 to start
 voicemail.  Normally, you would put him automatically into the anonymous
 mailbox.  However, some people would rather put the caller into fax mode
 or data mode.  This is useful especially if your modem doesn't support
 fax CNG detection (which simply means that the modem can't detect the special
 tone that a fax normally emits when it is sending).  If you would like to
 automatically receive faxes, then you will set the answer priority to fax.
 So, if your caller doesn't press 1, he will get a fax tone.

 To set fax priority, you would do:
   rxset AVMAnswerPriority FAX
 For data priority, you would do:
   rxset AVMAnswerPriority DATA
 And for voice priority (the default), you would do:
   rxset AVMAnswerPriority VOICE

 Edit avm:standardconfig to change the default permanently.

16.8. VOICE2IFF Converter

 The VOICE2IFF converter (actually, this converter handles all of the
 compressions) can now use a double rate version of the CVSD to IFF
 converter that is more accurate.  To do this,

   setenv AVMDOUBLERATE YES

 The default for this option is NO.

 Note that this option produces IFF files that are twice as big as
 normal.

16.9. Pre-Converting

 When someone calls and leaves a message, AVM can be instructed to
 preconvert the voice file into an IFF file.  So, when you get home,
 and you press the play button, you will immediately hear the voice
 message.  This is useful if AmigaDirect doesn't work for you (either
 because the decompression routines are too slow or because you have
 an unaccelerated Amiga).  By default, the pre-convert feature is
 turned off.  To turn it on, you do a:

   rxset AVMPreConvert YES

 The default for this option is NO.

 Note that the VOICE2IFF program will be run without a GUI when
 preconverting files.  It will also be run at a lower priority
 (specified by the AVMVOICE2IFFPRI environment variable).

 If you do not want the GUI to show while pre-converting, you do:

   rxset AVMShowPreConvertGUI NO

 The default for this option is YES.

16.10. Priorities

 You can set the priorities of some of the AVM programs by using
 the setenv command.  To set the priority of the AVM Player, the
 environment variable is called "AVMPLAYERPRI".  For the AVM ServerMan,
 the environment variable is "AVMSERVERMANPRI".  For the actual AVM
 servers, the environment variable is "AVMSERVERPRI".

   setenv AVMPLAYERPRI 0
   setenv AVMSERVERPRI 0
   setenv AVMSERVERMANPRI 0
   setenv AVMVOICE2IFFPRI -5

16.11. Playing while converting

 You can preview a voice file (if you have a slow amiga and don't
 use the PreConvert feature or the AmigaDirect feature) by:

   rxset AVMPlayWhileConverting YES

 The default is NO.

16.12. ZyXEL Conversion settings

 If you have pre-6.10 ZyXEL roms, you should set this to YES.

   setenv AVMOLDZYXEL YES

 The default is NO.

 If you have 6.12 ZyXEL roms or greater, you should set
 AVMZYXEL612 to YES, as in:

   setenv AVMZYXEL612 YES

16.13. User Beep

 You can replace the beep that is played right before AVM
 starts recording a new message into a mailbox.  You can use
 this feature to get fancy -- for example, you can tell your
 caller to leave a message after the explosion.  When using
 this feature, make sure there is as little silence as possible
 at the end of the beep voice file (since the caller may start
 speaking right after the voice file gets played).  You do 
 not want him to start speaking when you're still playing
 the voice file -- he won't get recorded.

 The file that gets played instead of a beep is
 avm:voices/userbeep.  You can use the AVM Player to
 record your user-defined beep.

 To enable this feature, do a:

   rxset AVMUserBeep YES

 The default is NO.

16.14. Fax Program

 You can tell AVM what fax program you are using.  Currently,
 I only support GPFax, TrapFax, and EFax.

   rxset AVMFaxProgram GPFax

 or

   rxset AVMFaxProgram TrapFax

 or

   rxset AVMFaxProgram EFax

 EFax is the default.

16.15. Data After Silence

 When a mailbox is entered and a voice file is recorded, if no one
 speaks, then the modem returns with a 'Silence' result.  This is
 different from 'Quiet', which means that someone spoke and then kept
 quiet.  Anyway, if 'Silence' is returned, then you could start
 the BBS.  To do this,

   rxset AVMDataAfterSilence YES

 The default is YES.

16.16. Monitor with Speaker

 This only works on Rockwell based modems.

 This turns on the speaker when a call is handled.  This allows you
 to hear what is going on when somebody is calling up your system.

16.17. LogFile

 The Logger program normally writes its output to "ram:logger.save".
 You can override this by:

 setenv AVMLOGFILE "rad:logger.save"

16.18. Server Debugging

 You can tell the AVM server which debugging messages you are interested
 in via the AVMDEBUGFLAGS.  The following command turns on all the messages.

 setenv AVMDEBUGFLAGS "excir"

 e=errors, x=extra debug, c=commands/responses, i=information, r=rexx

16.19. Controlling which programs are started by StartAVM

 You can control which programs get automatically started by StartAVM.

 sys:rexxc/rxset AVMStartLogger YES
 sys:rexxc/rxset AVMStartScheduler YES
 sys:rexxc/rxset AVMStartCIDLogger YES
 sys:rexxc/rxset AVMStartCallNotifier YES
 sys:rexxc/rxset AVMStartServerMan YES

 Set any of the above to NO to turn them off.

16.20. Fax font and font size

 You can tell the FaxPrinterD program which font and font size
 to use.  You must tell it before it actually starts up.  At this
 time, you cannot change the font or font size while it is running.

  setenv AVMFAXFONT "courier.font"
  setenv AVMFAXFONTSIZE "30"

16.21. Fax viewer adjustments

 You can tell the viewer where it should open its window,
 what size it should be, and what the default reduction should
 be.

  ;choices are 1, 2, 3, or 4.  1==normal size, 2==1/2, 3==1/3,
  ;  and 4==1/4.

  setenv AVMFaxViewMag 1

  ;leftedge topedge width height
  setenv AVMFaxViewWindow "0 0 640 200"

16.22. BBS Program

 You can tell which BBS program to run by setting the AVMBBSProgram
 variable.

 sys:rexxc/rxset AVMBBSProgram 4D

17. Wish List
-------------

 5/26/94
-  o Add Send Manual to Scheduler, which should cause it to send
    the file using ATD (no telephone number).  This is usual for
    doing faxes where you have to manually call them up before
    clicking on Send.

 4/18/94
-  o Make iff2adpcm load stuff a chunk at a time.

 4/17/94
  o Reduce memory requirements for programmer
  o Add forward to logview
  o In schedulerview, if the user selects an iff file, we should
    go ahead and convert it for him.

 4/15/94
-  o In schedulerview, we should probably have another type (Unknown
    or Unrecorded) to alert the user that the file that has been
    selected is not a valid thing to send.  After recording, then
    we can adjust the type accordingly.
-  o  In the scheduler, when you click on the file gadget or hit return
     on the string gadget specifying a file, try to find out if it's
     a fax file or not and automatically set the 'type'.  If it's not
     a fax file, then assume it's a voice file that's to be recorded.
  o  Print out the compression type that's being decoded or encoded in
     adpcm2iff or iff2adpcm
  o  Multiple delete/play/archive in logview
-  o  Quit All in ServerMan to kill every avm program that's running

 3/23/94
  o  Add a restart servers to serverconfig.  Better yet, add a way to
     tell the AVM server to re-read the config file.

 2/26/94
  o  At certain times, the rings to be expected may change.  Need to add an
     ARexx command in the servers to change the number of rings.
-  o  When playing to Amiga (not AmigaDirect), add an option to play the
     file while it's being converted.  Although it won't be real time (the
     voice file will not be continuous), at least you will get to hear
     parts of it to see if it's worth the wait.

 2/25/94
  o  Maybe blink the power led when the answering machine is on.  But,
     we need to blink it differently than our flashpower program does.

 2/24/94
-  o  If port is in use, try every 5 minutes to get the port.  Maybe try
     different things to get the port to listen.
-  o  Add Quit & Kill Servers to serverman to quit serverman and to kill
     all the active servers.
-  o  Add a name field for mailboxes (in mailbox config) and use that
     to show what's in the call notifier (not just the directory name).
-  o  Pre-convert voice files while machine is idle (in other words,
     do a low priority conversion routine when voice files are created).

 2/21/94
  o  Add play all to the logview
  o  Add delete all to the logview
  o  Add "serverconfig" to the server manager (opens up a serverconfig
     program).

 2/10/94
- o  Make a special answervoice to do simple answering machine stuff
- o  Clean up ServerMan to hide the Close, Open, Unlisten, Listen,
    Start, and Kill server gadgets.

 2/9/94
 o  Allow disabling of busy detect for ROM versions which are faulty
 o  Use user-defined filenames for saveiff or loadiff
- o  Allow Player/Recorder to play/record user defined files
 o  Phonebook that's integrated with the logview (so you can show the names
    of the people with a particular phone number)
 o  Add better error reporting (like when audio.device is being used)

 2/8/94
- o  Make the anonymous mailbox accessible from the other mailboxes
- o  Finish the Scheduler and SchedulerView scripts
- o  Document Scheduler/SchedulerView
 o  Document Programmer
 o  Make a "copy" template for each of the Programmer constructs so that,
    when a construct is instantiated, the new construct copies stuff from
    this template.  Template should be persistent.
 o  Secretary feature for calling people (integrated with the phonebook --
    click on somebody to dial out until connected, play some file,
    and beep)
 o  Localize the program (binaries and ARexx scripts -- this includes
    localizing the concatenations of numbers)
- o  Add a button to the Call Notifier to shut up until the next call comes
    in.
- o  Support Rockwell chipset voice modems
 o  Pre-load most of the shorter ARexx scripts (such as delete, broadcast, 
    etc.).  This should speed things up quite a bit
- o  Add options so that we can easily customize the ARexx scripts without
    having to maintain several versions for different users.  Probably do
    this through the getclip and setclip ARexx functions.  Can't do this
    with environment variables since they are not easily accessible from
    ARexx.
- o  Use MUI better -- make everything controllable from the keyboard
- o  Have multiple (random, day, or time driven) greetings
 o  Fix up string gadgets which accept input to *not* allow spaces to be
    typed in
 o  Add some flags to the AVM server to filter out debugging information
    (so we don't have to see it all)

18. Acknowledgements
--------------------

 o  Stefan Odendahl for helping me find lots of bugs and problems
    in the documentation.
 o  Mike Sinz for SimpleRexx and Enforcer
 o  Dr. Greg Perry of GPSoft for GPFax
 o  SAS for SAS/C
 o  David Gay for Emacs port
 o  ZyXEL for their modem and the conversion routines from ADPCM2/3 to
    something
 o  Sierra Semi for being helpful w/r to the LineLink modem
 o  Commodore Amiga for their iff routines
 o  David Junod for FindLine
 o  Alex G. M. Smith for AGMSRecordSound and AGMSRecordSoundPS3.
    He was helpful in adding the ARexx commands
    necessary to make these program work seamlessly with AVM.
 o  Dave Schreiber for DSound 1.31.  I included a modified
    executable as well as his original DSound.doc.  According
    to his docs, there's no mention of not being allowed to
    do what I did.  If there's a problem, Dave, send me email.
    I will send the source modifications to anyone who asks.
 o  Kasper Peeters for helping me add support for the dolphin
    modem.
 o  Carl Wernhart - TrapFax support is (c) by him -- thanks!
 o  Thomas Lewandowski - New Icons are (c) by him -- thanks!

19. Beta Testers
----------------

 o  Stefan Odendahl
 o  Dirk Sieber
 o  Michael Breger
 o  James Atwill - thanks for the asl code!
 o  Christian Stelter
 o  Pjotr Sjostrom
 o  Frank Geider
 o  Fred Pienkos
 o  Cogrossi Fulvio - please send me email!
 o  Tim Lloyd
 o  Daniel J. McCoy
 o  Ryan Bruner

20. Common Problems
-------------------

 o  AVM doesn't seem to play a file that I selected using the
    file requester.

    AVM *cannot* play filenames with spaces in
    them.  For example, the file "Ram Disk:dialtone" cannot be
    played.  You need to use "ram:dialtone".  Sorry, but I just don't
    have the time to go through all the ARexx scripts and fix
    this.  This was one of those "compromises" I made when I started
    this project.  I didn't want to have to muck around with quoting
    conventions.

 o  AVM reports that the serial device either couldn't be opened when
    working with GPFax.

    You should make sure that the shared mode flag in GPFax is enabled.

 o  When answering a fax call, the modem picks the line up, drops it,
    then picks it up again.

    This is caused by an "&F" in the Modem Init string of GPFax.  You
    should remove this.

 o  I have trouble receiving and sending faxes with the LineLink
    modem.

    You need to make sure the Modem Init string is the
    same as the init string mentioned in the file "Installation".
    Also, the LineLink modem cannot detect a fax automatically.
    You will need to instruct people who may send faxes to you
    that they have to follow instructions (like pressing 2) on how
    to start up fax reception.

 o  AVM doesn't handle data calls properly.  Why?

    You need to make sure that AXsh is set up properly.  Here is
    what I needed to do in my s:user-startup

      ;BEGIN AXSH
      assign axsh: pd:axsh.installed
      path axsh:bin
      mount axaux: from axsh:etc/mountlist.axsh
      ;END AXSH

    If you have AXsh 1.31, use the following instead:

      ;BEGIN AXSH
      assign axsh: pd:axsh.installed
      path axsh:bin
      mount newaux: from axsh:etc/mountlist.axsh
      ;END AXSH

    In addition to making sure that AXsh is set up properly, you
    need to make sure that "handledata" is in the `Data Call' 
    field.  The ARexx script "handledata.avm" sets up the modem,
    performs an ATA, then calls the script "startbbs.avm" if
    there is a modem connection.  If you are not using AXsh, the script
    "startbbs.avm" is where you should start tinkering.

    Finally, edit StandardConfig.template and add:

      sys:rexxc/rxset AVMBBSProram AXsh
        or
      sys:rexxc/rxset AVMBBSProgram AXsh1.31

    depending on which version of AXsh you have.

 o  I get very short files when recording;  sometimes, they're
    truncated.  Sometimes, there's too much silence.

    When you press `Record', there is a short delay before
    the modem actually starts recording.  This is due to two things:
    First, I need to send commands to the modem to actually start
    recording.  This takes a finite amount of time.  Second, I need to
    tell the server to tell the modem to start recording.  To do this,
    I use ARexx to communicate between the user interface and the AVM
    Server.  Again, this takes some processing time.  So, to be sure
    that what you say gets recorded, you should press `Record', then watch
    the modem until some light starts flashing continuously (this
    indicates a recording process).  Then you can start speaking.

    When stopping the recording, there is also a short delay between
    the time you press `Stop' and the time the recording actually stops.

    These short delays will take some getting used to, but when you're
    used to them, they will turn into a minor annoyance.  These delays
    may decrease in future versions.

 o  How do I save window positions and sizes and icon positions?

    Go to a CLI, cd to env:mui, look for the names of the AVM programs
    (AVMLOGVIEW, AVMCALLNOTIFIER, AVMLOGGER, AVMPLAYREC, etc.), and copy
    their .wini files to envarc:mui.  For icon positions, you need to use
    the MUI Prefs program.  Then copy over the .prefs files to envarc:mui.

 o  How do I put all the windows on a different screen?

    Use the MUI Prefs program to create a public screen and tell MUI
    to open up the windows on that public screen.

 o  How do I make the windows open up in iconified form?

    Use the MUI Prefs program.

 o  Do I need a registered version of MUI? 

    No, you do not.  But, you will be able to customize all the AVM
    programs if you do register MUI.  I really encourage you to do so.
    Stefan Stuntz has done a very good job with MUI, so please support
    him.

 o  When I try to edit something in the programmer, no window opens and the
    programmer hangs.

    You need to have a screen size of at least 640x400.
    MUI will not open a window if it is too large to fit in the screen.

 o  When using the programmer, sometimes it just exits.

    You probably don't have enough memory.  The Programmer uses a lot
    of memory because of the large windows it uses and the fact that
    it loads an entire file into memory.  Try closing other
    applications when using the Programmer.

 o  Sometimes, AVM misses keys pressed by a caller.

    This is not AVM's  fault.  It is the fault of the modem.
    I have nothing to do with detection of DTMF keys.  It just
    reports them to me.  If you have a ZyXEL with a ROM less
    than 6.11a, I really recommend that you upgrade your ROMS.

 o  After 10 minutes, the AVM server dies for some unknown reason.

    The UNREGISTERED version will not work properly unless its "annoying"
    window opens up on the WorkBench.  Therefore, do not use a public
    screen manager to "shanghai" its window to another screen.  Also,
    do *not* use an external program to close the window or resize the
    window.  Your computer may crash.  I am not responsible for crashes
    due to tampering with the "annoying" window.

 o  AVM doesn't want to record anything.

    Perhaps you didn't set things up correctly.  You need to make
    sure that the Drawer "AVM:voices" exists.  From the WB, create
    a drawer called "voices" in the AVMSuite Drawer.  Or, from the
    CLI, type in "makedir avm:voices".

 o  AVM only records silence or a dial tone when I'm using the
    TelephoneLine option.

    For all modems *not* based on the Rockwell chipset,
    the telephone should *not* be hooked up to the back of the modem.
    You should hook up the telephone and modem using a splitter of
    some sort.

 o  AVM hangs up while you are accessing some of the voice menus (when
    calling).  Or, it just hangs up on you.

    Make sure that you record all the messages in the Player program.
    If you did record all the messages, then run the Logger program,
    play around with the system until it hangs up unexpectedly.  Then,
    click on the Save button in the Logger window, and send me the
    file called "avm:logger.save".  That will help me tremendously
    in finding out what is wrong.

 o  Recording doesn't seem to work too well.  It seems to terminate early.

    Try running the program called Logger.  When recording, if it says there's
    a serial port error, then your machine cannot handle the speed at
    which the modem is transmitting data at.  Maybe you have a program
    running in the background that's taking up so much CPU time that
    it takes too long to process the serial port interrupt.  The first
    thing to try is to enable the "Use AVMTemp: for Recording" button
    in the Server Config program and restart the AVM Suite.  If that
    still doesn't work, try opening up a public screen with a low
    resolution.  Then, switch to that screen and try AVM again.  If that
    still doesn't work, you may need one of those high speed serial
    ports which handle high speeds more easily.

 o  On the LineLink modem, AVM seems to hang up when playing to the modem.

    Maybe you enabled the "UsesHardwareHandshaking" flag in the
    Advanced Flags section.  Disable that and try it again.  Please don't
    play with things that aren't documented.

 o  How can I speed up playback of my incoming messages through the
    Amiga?

    You can turn on the PreConvert feature.  See `Pre-Converting'.

 o  I'm using a LineLink modem and playback through the Amiga is very
    soft.

    Try adjusting the AVMSCALEADJUST environment variable.  See
    `Scaling output'.

 o  Why does AVM not release the serial device when I quit all the AVM
    programs?

    Remember that there is a "server" that's running in the background.
    If you have an unregistered version of AVM, you would see the
    window.  If you have a registered version, you probably wouldn't
    even know it was running.

    As of V1.17, you now have a Quit button and a Quit No Kill button.
    If you Quit, you take all the servers with you.  With the other
    button, you don't.

 o  Do I need a digitizer to make my own messages?

    No, you can use the TelephoneLine option to record any outgoing
    messages.

 o  How can I customize the way dates and times are played back
    through the modem?  It seems like it's too "American".

    Read the manual.  See `Date Format' and `Time Format'.

 o  How can I customize the way AVM displays dates in the Scheduler,
    LogView, SchedulerView, etc.?

    Read the manual.  See `Time and Date Specification'.

 o  Can I distribute keyfiles?

    Absolutely not.  You can only distribute AVM as it comes in
    its .lha form.  You cannot create a new archive or add to
    the archive that's available for download.

 o  Why should I register?

    Because it would encourage me to keep supporting AVM.  I don't
    think I charge too much for what this software is capable of.

    Even if you do not register, I would appreciate a postcard
    from you saying that you use AVM.

 o  On a ZyXEL, when sending out voice files using the scheduler,
    it seems to be playing the voice files even though the called
    party hasn't picked up the phone.  Why?

    The ZyXELs cannot seem to determine reliably when the called
    party has actually picked up the phone.  I can't figure out
    what the problem is.  Probably a bug in the ROMs.  Don't
    worry, outgoing messages are repeated multiple times.

 o  How do I change the icons when the program is iconified?

    Use some icon editor and edit the icons in avm:icons.

 o  Why does AVM only print the first half of the first page
    of a fax?

    Register the fax part of AVM to enable full printing.


21. New Voice Files
-------------------

 Execute the script called "avm:renamevoicefiles".  I renamed stuff
 like one, two, ... to number1, number2, ... to facilitate in sorting
 stuff in the Player program.  Note that this script is executed
 automatically if you used the Install script.

 Execute the script called "avm:deletevfiles".  This will delete
 all the obsolete voice files.  Note that it won't delete voice files
 that are still usable.  Only the minimal number of voice files will
 be deleted.  If you run the installer script, I ask before doing this.
 However, I highly recommend that you do this and just re-record
 everything that the Player program tells you to record.

22. Caller ID and Distinctive Ring
----------------------------------

 If you have a ZyXEL, the way to activate Caller ID is to put an
 S40.2=1 in your Voice Setup String.  LineLink owners cannot make
 use of the Caller ID feature.  I have it on good authority that
 the hardware cannot physically support Caller ID.  Remember that
 although the ROMS say they support Caller ID, if the modem
 doesn't have enough "stuff" in it to pick up Caller ID information,
 then the modem cannot support Caller ID.

 To activate the Distinctive Ring feature in your ZyXEL, you need
 to put an S40.3=1S40.4=1S40.5=1S40.6=1 in your Voice Setup String.
 If you have any other modem, you don't need to do anything.  Try
 it out and see if AVM can distinguish between the different
 distinctive rings that you have subscribed to your phone company
 for.

23. Programmer
--------------

 I cannot describe everything that the Programmer can do at this
 time.  Sorry.  But, I will tell you how to add new mailboxes.

 The first thing to do is to add a mailbox using the Call Notifier
 program.  When you add a mailbox, don't include spaces in the
 mailbox name.  Note that I distinguish between a mailbox name
 and a mailbox alias.  The mailbox alias is what you see in
 the Call Notifier listview.  Sometimes, the alias is the same
 as the name.

 Anyway, the next thing to do is to run the Programmer.  Double-
 click on the file called startup.avmsrc.  Double-click on the
 line which says level0.  This is a menu to which you can add
 mailboxes.  Look at how mailbox1 and mailbox2 are done.  You
 will see how easy it is to use the Programmer.  Really!

 Once you're done editing stuff, Save your changes, then click
 on Compile.  Then, test out your new system.  If it fails
 for some unknown reason, try Compiling again.  This has
 something to do with "include" dependencies that I'd rather
 not get into.  Note that I've never needed to Compile
 twice -- I just thought I should mention it just in case.

24. Faxing
----------

 EFax is now included with AVM.  It is a class 1 or class 2
 fax program.  To view received faxes, you just use the LogView
 program.  It will convert the fax into an iff file and will
 then invoke AVMFaxView which allows you to view it.

 To send a fax, double click on printHigh or printLow.
 Alternatively, you can, from a Shell:

   execute avm:printHigh
     or,
   execute avm:printLow

 printHigh should be used if you want to use Fine mode when
 creating your fax file.  printLow should be used when Standard
 mode is used.

 Once you do the above, a program called FaxPrinterD should
 appear.  If it does not, something is wrong and any printing
 to the faxprinter device driver will not work properly.  Try
 running FaxPrinterD from a Shell to see why it failed to
 run.  Most likely, it couldn't find a font used to render
 text printouts.  You should edit StandardConfig to use a
 font that you have.

 Then, print using any Amiga program.  When done printing,
 a SchedulerView will open up to allow you to enter the telephone
 number.  After entering it, click on Done.  Then, press the
 Send button in the Scheduler.  This will send it now.  If you
 scheduled it for a later time, it will go out at that time
 (assuming you registered the AVM Scheduler).

 Note that when printing out to a fax file, you should ensure
 that there is an adequate margin on the left and right sides.
 When printing from a word processor, try to make sure that there
 is at least 1 inch on both sides of the page.  When printing
 in text mode, try to make sure that there are 10 spaces to the
 left and right of all your text.  If you don't ensure these
 margin settings, your fax may not be completely readable at the
 other end (the left and/or right part of the fax may be chopped
 off a little -- that's why you should ensure that those parts
 don't contain anything useful).

 After printing using your Amiga program, double click or execute
 printPrinter.  This will use the previous Printer and PrinterGfx
 preferences settings (which will allow you to print stuff to
 your printer).

 The FaxPrinterD (printer daemon) has only 1 option.  When this
 option is enabled, the printer daemon will start a new page if
 the program sends a "Close Render" message to the printer
 driver.  When it is disabled, even if the program sends a "Close
 Render" message, it will continue to print to the same page.  Only
 a FormFeed will cause the printer daemon to start a new page.
 In general, I think you should have this option enabled.  But,
 for ProWrite users, you should disable this.  For some reason,
 ProWrite prints in small strips.  Therefore, if you had this
 option enabled, you would get lots of little pages.

 If you use GhostScript, you should enable this option.  Otherwise,
 you will get one very long page even if you are printing multiple
 pages.

 You can also use the asc2fax program to convert ascii files into
 fax files.  I added an extra option (-l) which selects low
 resolution (Standard resolution in fax terminology).  Basically,
 when you enable low resolution, asc2fax will render the font
 of the height you selected and will then read every other line
 and convert it into the fax compression (note that this is the
 same thing that the FaxPrinterD does when you select low
 resolution).  The side effect of this is that if your font
 has horizontal lines of 1 pixel, they may disappear completely
 from the fax file.  You should always choose a font that has
 horizontal lines that are greater than 1 pixel.  Just to be sure,
 you should create a document with all the characters you will use,
 convert it into a fax file, and view it to make sure that all the
 characters look ok.  Another strategy (not implemented) would have
 been to render the font with half the size that you chose.  This
 may be added at a later time.  If you don't want to bother with this
 problem, use Fine mode instead (or use the printer driver and print
 in graphics mode).

 Note that you cannot schedule faxes for a later time if you do
 not register for the Scheduler.  Also note that with the Scheduler,
 you will be able to automatically forward faxes received to
 another number.

25. About EFax and other GNU Programs
-------------------------------------

 Starting with 1.26, I am including EFax, a class 1 and class
 2 fax program.  EFax is Copyright 1994 by Ed Casas.  It is
 covered by the GNU General Public License.  See file called
 avm:gnu/COPYING.  Therefore, with this release, you can
 get fax capability with a nice user interface even if you
 *don't* have a voice-capable modem.  If you don't have a
 voice capable modem, see the section entitled
 `Faxing'.  Look in avm:gnu/EFax.man to see what fax modems
 are known to work with EFax.

 I also include a fax2iff program (for converting
 received faxes into IFF for viewing using some IFF viewer),
 asc2fax for converting ascii files into fax format,
 and a printer driver.  fax2iff is a slightly modified
 version (it reads non-raw fax files) of the executable in
 ElCheapoFax.  My printer driver is a modified version
 of the HP Printer driver found in the RKM plus some
 code found in the ElCheapoFax faxprinter driver.  My printer
 driver also includes the code found in the asc2fax program
 of ElCheapoFax.  My printer driver, since it's a derived
 work of a GPL'ed program, is also covered by that
 License.  ElCheapoFax is Copyright (C) 1993 by Olaf
 'Rhialto' Seibert.

 Only the programs covered by the GNU General Public
 License are "free software".  I cannot and will not charge
 for you to use them.  Note, however, that the
 GNU License allows me to accept donations for supporting this
 software.  Send what you like so that I will be inclined to
 maintain the fax program and the corresponding fax
 related programs.  I would be more likely to help you if you
 decide to donate :)

 BTW -- the GNU programs are in avm:gnu.

26. Unclassified
----------------

 There's a file called playall.rexx in the main directory.
 This file is an example ARexx script which opens up a
 LogView for any mailbox, selects all the contents, then plays
 them out.  All of this is done from the script.  This means
 that you can automate playing different mailboxes without the
 use of the Call Notifier and without actually touching the
 LogView gadgets.

