Document avmNfax documentation

               avmNfax Program Documentation
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 AVM is Copyright - 1996 by Dr. R. Alberto Villarica (SoftWorx).
 EFax is Copyleft - 1993, 1994 by Ed Casas (edc@cce.com)

 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.

 NOTE: Most of the stuff from section 0 to section 4 should be
 correct.  Anything after that may not apply to this version of
 avmNfax.

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

0.1. What is avmNfax?

 AVM (Advanced Voice Mail) is a program that allows you to use
 your voice-capable modem (Zyxel, Dolphin, LineLink, or Rockwell
 based voice-modem) as an answering machine or as a programmable
 voice mail machine.  In addition to this, it allows you to
 send and receive faxes with the included EFax program.  If you
 already own GPFax or TrapFax, you can use the included ARexx
 scripts to integrate AVM with those two other fax programs.
 AVM can also switch to data mode after answering a call, in case
 you want to use a BBS with it.

 EFax is a class 1 and class 2 fax program written by Ed Casas.
 It is a GNU program that was ported to the Amiga by Al Villarica
 for the purpose of providing fax capabilities to AVM.  Technical
 support for EFax is being handled by Al Villarica.

0.2. Author

 Dr. R. Alberto Villarica
 4 Lone Oak Circle
 Penfield, NY 14526
 USA

 Internet email: rvillari@cat.syr.edu

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

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

0.3. How do I install it?

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

0.4. How much does it cost?

 This is SHAREWARE!  Please support it!

 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.

 The file called "Registration_Form" contains a registration
 form that you can print, fill out, and mail together with your
 payment.

0.5. How do I get support for avmNfax?

 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.

 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.  Enable the Tracer Section by going to the
    Configure menu and selecting the "UI & others" menu item.  Then,
    enable the checkbox called "Show Tracer Section".  Try to reproduce
    the problem, then click on the Save button in the Tracer Section, then
    send me the file called ram:logger.save.  The Tracer 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.6. Getting Updates

0.6.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.7. History

 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.

 Attention ZVM users!  avmNfax is a major rewrite of ZVM, which
 was 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), and Rockwell chipset based
 voice modems (I tested a Zoom VFDX, others have tried a Zoom 14.4v).

0.8. Contributions

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

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

 Here is a list of features that avmNfax provides if you have
 a voice-capable modem.

 o  A three-mailbox answering machine.  A caller has the option
      of leaving a message for two different people.  If he doesn't
      choose one, the message is placed in the "anonymous" mailbox.

 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
      touch tone keys.  Information about the message can be played
      (e.g. the time and date of the message, the 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, a data call, or have it record your convesation.  Recording
      the conversation is useful if you want to remember some
      information but don't have a pen and paper lying around.

 o  Record Conversation -- you can use this to record important
      conversations.  This is especially handy when dealing with
      mail-order firms.  But, you probably should tell the other
      party that the conversation is being recorded because that may
      be considered as an illegal phone/wire tap.

 o  Remote maintenance -- you can remotely record a personal greeting
      for each mailbox.  In addition, some of the outgoing messages
      can also be recorded from another telephone.  There are other
      "maintenance" activities that you can do remotely.

 o  Pre Conversion -- voice modems transmit voice to the Amiga in
      a compressed format.  In order to play it over the Amiga, it
      first has to be decompressed.  With this feature, you will be
      able to pre-convert voice files into IFF while your computer
      is essentially idle.  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 decompression
      process to take place, which could take a while if you have a slow
      Amiga or the decompressor is slow.  At this time, the decompressor
      for LineLink modems is quite slow, such that even with my A3000/25,
      I would use the Pre Conversion feature.

 o  Immediate playing -- if you have a fast Amiga and you use a
      compression mode that can be "uncompressed" quickly (ZyXEL & Dolphin),
      you can play the incoming voice files directly to the Amiga sound
      system without going through the intermediate decompression stage.

 o  Multiple greetings -- you can greet your callers differently
      depending on the time of day, the day of the week, randomly,
      etc.  Plus, as stated above, you can record these greetings
      remotely.

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

 o  AmigaDOS 2.04 or greater

 o  MUI 2.3 or greater (please don't try lower versions)

 o  Voice & Fax: a Zyxel, a LineLink 144e, a MTD Dolphin modem, or
    a Rockwell chipset based voice-capable modem

 o  Fax only: any class 1 or class 2 fax modem (class 2.0 is not
    supported)

 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 & fax files

 o  2 megs of RAM (the more, the merrier)

 o  a 640x400 screensize when using the AVM programmer -- it doesn't
    have to be an actual screensize...it could be a virtual screensize.
    For example, you could have an actual screensize of 640x200, but
    an auto-scrolling virtual screensize of 640x400.  On my machine,
    you would use sys:prefs/screenmode to set these parameters for
    the Workbench Screen.

3. Desirables
-------------

 o  an accelerated Amiga

 o  speakers hooked up to your Amiga (only if you have a Zyxel,
    LineLink, or MTD Dolphin)

 o  a sound digitizer (only if you have a Zyxel, LineLink, or
    MTD Dolphin)

 o  a fast serial port (e.g. IOExtender, Multiface II,
    Multiface III, etc.) -- NOTE:  I tried the A2232 with my Zyxel
    a long time ago and it didn't work, so, I make no promises
    using that card.

4. AVM Limitations for some modems
----------------------------------

 Although AVM was designed to handle multiple modems, it does not
 currently handle multiple types of modems running at the same time.
 For example, you cannot have a Zyxel and a LineLink hooked up to
 two separate serial ports on your Amiga.  You can, however, have
 two Zyxels or two LineLinks hooked up to two separate serial ports.

 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, or go out
 and download a set of voice files.

 If I have a decoder for the modem/compression you are using,
 then you can listen to voice messages on your Amiga.  Otherwise,
 you will have to use the telephone line, the local handset, or
 the modem's internal speaker.  On Rockwell-based voice-modems
 (I don't have a decoder for any of its compression modes), the
 brands I've tried had local handset support, and their internal
 speakers were quite good.

4.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.  You cannot record on your Amiga either.

   o  Here's a list of compression modes in order of preference:
      ADPCM4, ADPCM3b, ADPCM2.  Note that slower Amigas may not be
      able to handle ADPCM4 or ADPCM3b.

   o  I do not have an encoder for ADPCM2SYNC or ADPCM3SYNC, or
      ADPCM4SYNC.

   o  Zyxel Elites support Local Handset.  The older ones do not.

4.2. Dolphin

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

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

   o  Does not support Local Handset.

4.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 or the Local
      Handset.

5. AVM UserInterface
--------------------

 AVMUI is the AVM UserInterface.  It communicates via ARexx with
 the AVM Server, which is the program that manages the modem.

5.1. AVMUI Window

 The AVMUI window has three major sections:  Mailbox, Caller ID,
 and Tracer.  The Mailbox section is always shown.
 The Caller ID and the Tracer sections can be hidden from view.
 When you first install avmNfax, you will notice that neither
 the Caller ID nor the Tracer sections are shown.

5.1.1. Mailbox Section

 The Mailbox Section gives you access to incoming messages/faxes
 and outgoing messages/faxes.

5.1.1.1. Mailbox selector

 At the top of this section is a selector that allows you to
 choose to view:

  o "In" mailbox -- this is where incoming messages can be found

  o "In Arc" mailbox -- this is where incoming messages get stored
    when they are archived

  o "Out" mailbox -- this is where scheduled outgoing messages
    can be accessed

  o "Out Arc" mailbox -- this is where outgoing messages get stored
    when they are archived

5.1.1.2. Message list

 Below the selector is a list of messages.  If you double-click on
 the message in this list, it will be played or viewed, depending on
 whether it is a voice or a fax message.  You can select a message
 by clicking on its entry.  You can select multiple messages (for
 example, if you want to delete or play multiple messages) by
 clicking and dragging on their entries.

5.1.1.3. Comment gadget

 Below the list is a Comment gadget that allows you to attach
 comments to individual messages.  You should select a message from
 the list above, and then type in your comment.  After typing, you
 should press the Return key to get the comment saved.  When you
 select a message with a comment, you will see it in that gadget.

5.1.1.4. Time & Next Event information boxes

 If you are viewing the "Out" mailbox, then you will see two information
 boxes below the Comment gadget.  The left-most information gadget shows
 the current time.  The gadget to its right, which is named "Next Event",
 shows the time when the next outgoing message is scheduled to be
 delivered.

5.1.1.5. Action buttons

 Depending on which mailbox you're looking at, you will see some buttons
 and and checkboxes which apply to the selected entries in the message
 list.

 o Play/View button -- this plays or views the message that
   is selected.  If there are multiple messages selected, they are
   played/viewed in succession.  Double-clicking on a message in
   the message list is equivalent to selecting it and then pressing
   this button.

 o Select All button -- this selects all the messages in the
   message list.

 o Reply button -- this creates a new outgoing message in reply
   to the message that is currently selected.

 o Send button -- this creates a new outgoing message that contains
   the message.  This can also be called forwarding the message.

 o Delete button -- this deletes the selected messages.

 o Archive button -- this archives the selected messages.  If
   the message is an incoming message, it is placed in the "In Arc"
   mailbox.  If it is an outgoing message, it is placed in the "Out Arc"
   mailbox.

 o Quiet checkbox -- this makes the AVM UserInterface shut up.
   Normally, when there are new messages, it will tell you.  Another
   way to make it shut up is to play/view one of the messages.

 o Stop button -- this stops playing/viewing the current
   message.  If there were multiple entries selected, this will cause
   the next entry to be played/viewed.

 o Stop All button -- this stops playing/viewing the current
   message.  It also stops any new messages from being played/viewed.
   This is only useful if you selected multiple entries to be
   played/viewed and you wanted to stop listening/viewing the rest
   of them.

 o Send Now button -- this forces the scheduler to process
   the currently selected message.

 o Edit button -- this opens up an AVM Edit Scheduler Entry
   window.  This window allows you to change things like the
   telephone number where the voice or fax should be sent, when
   it should be sent, the number of retries, etc.

 o Send No Dial button -- this forces the scheduler to process
   the currently selected message, but will not make it dial.  You
   have to manually dial the destination before clicking on this
   button.  This is useful if you want to send a fax to some foreign
   country, but have to go through an operator first.  Once you have
   contacted the foreign fax number, you can click on this button.

 o New Entry button -- this creates a new scheduler entry.

 o Scheduler checkbox -- this enables or disables the
   scheduler.

5.1.1.6. Status information box

 Below the buttons is a Status line, which usually shows what the
 AVM UserInterface is doing.  For example, when you play/view a message,
 this Status line would display something like "Playing/viewing".

5.1.1.7. Server Action icons

 Below the Status line is a set of graphical icons.  These icons
 instruct the AVM Server to perform an action.

 o Stop (encircled exclamation point) -- tells the AVM Server to stop
   whatever action it is doing.

 o Answer as fax (paper with the word "fax" written below it) -- tells
   the AVM Server to answer the phone as an incoming fax.

 o Answer as data ("101" and "110" below it) -- tells the AVM Server
   to answer the phone as an incoming data call.

 o Answer as voice (mouth) -- tells the AVM Server to answer the phone
   as an incoming voice call.

 o Record conversation (cassette tape) -- tells the AVM Server to
   record the current conversation.

5.1.1.8. Server status information box

 To the right of the Server Action icons is a status information
 box that shows what the AVM Server is currently doing.  When
 the AVM Server is working properly and is not currently handling
 a call, it should say "Waiting for a call...".

5.1.2. Caller ID Section

 This section displays any caller-id information.  This is really
 only useful if you have caller-id enabled.  This is a service
 that you usually pay for and is provided to you by your local
 telephone company.

5.1.2.1. Clear button -- this clears the list of callers.

5.1.2.2. Save button -- this saves the list of callers to a file
  called ram:cidlogger.save.

5.1.2.3. Add to Phonebook button -- this enters the selected entries
  in the list into the phonebook.

5.1.3. Tracer Section

 This section displays debugging information that is sent out by
 the AVM Server, EFax, and some of the ARexx scripts that make avmNfax
 work.  This section is automatically saved to ram:logger.save after
 a certain number of lines have been displayed.  Or, you can force
 it to save what is in the list by clicking on the Save button.

 Note that this information is very important to me when you have
 problems.  I can usually track down problems in your configuration
 if you send me ram:logger.save.

5.1.3.1. Clear button -- this clears the debugging information
 stored in the list.

5.1.3.2. Save button -- this stores what is in the list into
 ram:logger.save.  It then clears the list.

5.1.4. AVMUI Menus

5.1.4.1. File

5.1.4.1.1. About...

 Opens up a window to show you information about avmNfax, such
 as the author, and where to get technical support.

5.1.4.1.2. Print High

 avmNfax includes a printer driver that allows you to print from
 your favorite word processor to generate a fax to be sent out.
 Use this menu item to create a fax in "fine" mode.  This is the
 best output supported by avmNfax.  Each page is 1728x2288 pixels.

 A window will open up called AVM FaxPrinter.  At this point, you
 can print a document from your word processor.

 After printing, a new entry in the "Out" mailbox will be created.
 You can double-click this entry to view what will be sent out.
 Alternatively, you can select it, and click on the Edit button
 to edit things like the telephone number where the fax file
 should be sent, when it should be sent, the number of retries
 before giving up, etc.

 If you want to send it immediately, you should Edit the entry,
 type in a telephone number, click on Done in the AVM Edit Scheduler
 Entry window, then click on the Send Now button in the "Out"
 mailbox section.

 If you want to send it, but manually dial a number, then dial
 your number using the telephone handset.  As soon as the fax
 on the other end answers, click on the Send No Dial button in
 the "Out" mailbox section.

5.1.4.1.3. Print Low

 This is similar to Print High, except it will prepare avmNfax's
 printer driver to generate a "standard" fax.  Each page will
 be 1728x1144 pixels.

5.1.4.1.4. Print Printer

 This turns off the fax printer driver.  Use this when you want
 the output of your word processor to go to the actual printer
 instead of the fax printer driver.

5.1.4.1.5. Quit UserInterface

 This just quits the UserInterface program.  The AVM Server
 will still be running in the background to answer your phone.

5.1.4.1.6. Quit All

 This quits all avmNfax related programs, including the AVM Server.
 Closing the close gadget of the AVM UserInterface does the same
 thing as this menu item.

5.1.4.2. Configure...

5.1.4.2.1. Play to

 o Amiga

 This option is available only if I have a decoder for the compression
 you are using with your modem.

 This option will first convert the voice file into an IFF file
 called 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 called playamiga.avm.
 You can modify this script if you would like to use a different player
 other than DSound.

 o AmigaDirect

 This option is available only if I have a decoder for the compression
 you are using with your modem.

 This option plays a voice file while it is decoding it.  This results
 in a small delay from the time you press play to the time it actually
 plays, unlike when using the Amiga option, which converts the whole
 voice file first before playing it.  Note that you can only use this
 option if you have a fast Amiga and a fast decoder. Currently, the
 decoder for the LineLink modem is too slow to use with
 this option.  Try it out on your system to see if it's fast enough.
 If it is, you should use this option over anything else.

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

 o InternalSpeaker

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

 o LocalHandset

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

 This will not work on LineLinks, the Zyxel 1496 series modems, and
 some Rockwell chipset modems.

 o IFF

 This option is available only if I have a decoder for the compression
 you are using with your modem.

 This will actually perform a conversion from the voice file to an
 iff file.  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.

5.1.4.2.2. Record from

 o Amiga

 This option is available only if I have an encoder for the compression
 you are using with your modem.

 This option will activate the rexx script recordamiga.avm.  This
 script calls AGMSRecordSoundPS3 or AGMSRecordSound, depending
 on how you installed avmNfax.  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.

 o TelephoneLine

 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.

 o ExternalMic

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

   o Rockwell

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

   o ZyXEL 1496 series modems

     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.

   o ZyXEL Elite series modems

     These modems have a jack where you can plug in an external
     microphone.

 o LocalHandset

 This only works with most Rockwell based modems and the Zyxel Elite
 series modems.

 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.

 o IFF

 This is similar to the Amiga option, except it doesn't actually call
 the digitizing software.

 If you have the rexxreqtools.library and the reqtools.library, it will
 ask you for a filename to convert.  Otherwise, it assumes the file
 is stored in avmtemp:save.iff.

5.1.4.2.3. Default server

 If you have multiple servers, the one enabled in this menu item
 is the one that will be used for the actions in the
 Server Control/Default menu.  It will also be the one used when
 playing or recording through the modem.  It will also be the one
 used by the scheduler to send out voice or fax files.

5.1.4.2.4. Servers...

 This opens up a Choose Server window.  Double-click on the server
 that you want to reconfigure.  Things that you can
 change include the fax id, the voice compression, the maximum
 record length, the serial device, the unit number, etc.

 Note:  You should use Kill Server first, then configure it, then
 use Start Server.  If you do not, then the configuration will
 not take effect until you reboot.  The reason for this is that
 the AVM Server only loads its configuration at start-up.

5.1.4.2.5. Mailboxes...

 This opens up a Choose Mailbox window.  Double-click on the mailbox
 name that you want to reconfigure.  Things that you can change
 include the mailbox's alias, whether it is visible in the "In" box,
 etc.

5.1.4.2.6. Voice prompts...

 This opens up an AVM Player window.  From this window, you can
 change what is recorded in the voice prompts.

5.1.4.2.7. Phonebook...

 This opens up an AVM PhoneBook window.  You can add, delete, and
 edit entries in AVM's phonebook from that window.

5.1.4.2.8. UI & others...

 This opens up a Configure User Interface window.  From that
 window, you can configure certain aspects of the user interface,
 such as whether to show the Tracer Section and/or the CallerID
 Section, what the Time/date format for the lists should be,
 which fields are shown in the In, In Arc, Out, and Out Arc
 mailboxes, etc.

5.1.4.2.9. Scripts...

 This runs the AVM Programmer.  This allows you to customize
 the AVM scripts.

5.1.4.3. Server Control

 This allows you to control the AVM Server.

5.1.4.3.1. Default

 All the actions here will affect the AVM Server that is
 selected as the `Default server'.

5.1.4.3.1.1. Stop Action

 Tells the AVM Server to stop whatever it is doing.

5.1.4.3.1.2. Fax Answer

 Tells the AVM Server to answer the phone as an incoming fax.

5.1.4.3.1.3. Data Answer

 Tells the AVM Server to answer the phone as an incoming data call.

5.1.4.1.4. Voice Answer

 Tells the AVM Server to answer the phone as an incoming voice call.

5.1.4.3.1.5. Record Conversation

 Tells the AVM Server to record the current conversation.

5.1.4.3.1.6. Close serial port

 Tells the AVM Server to close the serial port.  Use this when
 you want to use any program that needs exclusive use of the
 serial port.

5.1.4.3.1.7. Open serial port

 Tells the AVM Server to open the serial port and start listening
 to it.

5.1.4.3.1.8. Unlisten

 Tells the AVM Server to stop listening to the serial port.  Use
 this when you want to use a program that can use the serial port
 in "shared" mode.

5.1.4.3.1.9. Listen

 Tells the AVM Server to start listening to the serial port.  This
 instructs it to start waiting for calls.

5.1.4.3.1.10. Kill Server

 Tells the AVM Server to exit.

5.1.4.3.1.11. Start Server

 Starts up the AVM Server.

5.2. AVM FaxPrinter Window

 There are two options that affect printing to the printer driver.
 You should try out the default and see if the fax printer driver
 generates the same number of pages that you tried to print.  If
 it doesn't, then that's when you should start playing around
 with the two options described below.

5.2.1. End Page on Render Close

 This causes the fax printer drive to start a new page when it
 receives a "render close" message from your word processor.

5.2.2. End Page on FormFeed

 This causes the fax printer driver to start a new page when it
 receives a form feed from the word processor.

5.3. Choose Server Window

 This window allows you to select which AVM Server you want to
 configure.  Double-click on an entry or select one of the entries
 and click on the Configure button.

5.4. Configure Server Window

 An AVM Server can be configured through five sections selected by
 the selector at the top of the Configure Server window.

5.4.1. Common

5.4.1.1.. ARexx Port Name

 This is the name of the ARexx port of the server.  You should not
 include any spaces in the name.

5.4.1.2. Serial Port

 This is the device name of the port that the modem is hooked up to.

5.4.1.3. Unit Number

 This is the unit number of the port that the modem is hooked up to.

5.4.1.4. Rings with messages

 This is the number of rings required to be seen by the AVM
 Server before picking up the phone *when* there are messages
 in any of the "In" mailboxes.

 NOTE:  There are five cycle gadgets here.  If you have distinctive
 ringing (this is usually a service you pay your telephone company
 for), the second gadget is applicable for distinctive ringing type
 1, the third gadget is for type 2, the fourth gadget is for type 3,
 and the fifth gadget is for type 4.

5.4.1.5. Rings without messages

 This is the number of rings required to be seen by the AVM Server
 before picking up the phone when there are no messages in any
 of the "In" mailboxes.

 NOTE:  There are five cycle gadgets here.  If you have distinctive
 ringing (this is usually a service you pay your telephone company
 for), the second gadget is applicable for distinctive ringing type
 1, the third gadget is for type 2, the fourth gadget is for type 3,
 and the fifth gadget is for type 4.

5.4.1.6. Silent Answer rings

 If the phone stops ringing before the AVM Server answers the phone
 and the number of rings seen is greater than or equal to this value,
 then the Silent Answer feature is activated.  This means that the
 AVM Server will answer the phone and listen in on your conversation.

 o If you press 2 or it hears a fax CNG tone, it will receive the fax.

 o If you press 5 or it hears a data tone, it will try to connect
   in data mode.

 o If you press 1, it will record your conversation.

 o If you press *, it will stop listening in on your conversation.

5.4.1.7. Command Pause

 This is the number of tenths of seconds that the AVM Server & 
 EFax will pause before sending another AT command to the modem.

5.4.1.8. Use OwnDevUnit

 This instructs the AVM Server to use OwnDevUnit.  This allows AVM to
 coexist with other programs that use this form of serial port locking
 mechanism.

5.4.1.9. Use CallerID

 o None - use this if you don't have a modem capable of doing CallerID,
   or you don't have the CallerID service activated on your phone
   line.

 o Name - use this if you have a modem capable of doing CallerID,
   and you have the CallerID service activated, and the service
   can send you the caller's name.

 o Number - use this if you have a modem capable of doing CallerID,
   and you have the CallerID service activated, and the service
   does not send you the caller's name.

5.4.1.10. Modem Type

 There are three types of modems that are supported.  This option selects
 one of the three (ZyXEL, Dolphin, LineLink, NoVoice).  People without
 a voice capable mode who want to use EFax should select NoVoice.

5.4.1.11. Command Init

 This is the string (usually an AT command) that is sent to the modem
 prior to entering voice mode.  This is usually AT&F or ATZ to reset
 the modem.  You can also use this setup string to enable distinctive
 ring (see your modem's manual on how to accomplish that).

5.4.1.12. Tone Dial

 This is the method to be used when dialing (enable this gadget for touch
 tone or disable it for pulse) a number.

5.4.1.13. Tracer Verbosity

 Don't play with this.  It turns on various levels of debugging.
 The current settings are good.

5.4.2. Voice

5.4.2.1. Voice Init

 This is the string that is sent to the modem after entering voice mode.
 You can use this string to add or modify voice parameters that were
 not handled by the program.  For example, you can use this string to
 adjust the voice recording gain of the LineLink modem (use AT#VG=x,
 where x is the gain).  Consult your modem's manual for settings
 that aren't handled by the AVM Server.

5.4.2.2. Compression

 Your modem compresses voice data to reduce the amount of storage needed
 for the resulting voice files.  Some compressions are better than others.
 
 ZyXEL modem users should choose between ADPCM2, ADPCM3, ADPCM3b,
 ADPCM4, CELP, ADPCM2SYNC, ADPCM3SYNC, ADPCM3bSYNC, or ADPCM4SYNC.

 MTD Dolphin users have only one compression, MTDADPCM2.

 LineLink users should choose between LLCVSD7200, LLSPC8000, or
 LLSPC9600.

 Rockwell users should choose between ROCKADPCM2_7200,
 ROCKADPCM3_7200, or ROCKADPCM4_7200.

 People without a voice-capable modem who want to use EFax should
 select NOVOICE.

5.4.2.3. Max rec len (secs)

 This is the maximum number of seconds that a recording is allowed to
 be.  This timeout is there because sometimes, the modem doesn't detect
 hangups correctly.  Without this timeout, you could easily fill up
 your hard disk.

5.4.2.4. Max Wait For Answer

 This is the number of seconds AVM will wait for the phone being dialed
 to be picked up.

5.4.2.5. Silence Interval

 This is the number 10ths of seconds of silence required before the modem
 reports to AVM that it has heard silence.  The default value is 70, which
 translates to 7 seconds.

5.4.2.6. Silence threshold

 This is an adjustable parameter for telling the modem what to treat as
 silence.  Note that the LineLink modem has two settings only (16 or 17).

5.4.2.7. Ringback Goes Away

 This parameter is for voice dial-out only.

 This tells the modem how long to wait for the ring signal to go away.
 When this timeout is reached, the modem assumes that somebody has
 answered the phone.

 This parameter is expressed in tenths of seconds.

5.4.2.8. Ringback Never Appears

 This parameter is for voice dial-out only.

 This tells the modem how long to wait for a ring signal to appear
 right after dialing.  If a ring never appears before this timeout is
 reached, then the modem assumes that somebody has answered the phone.

 This parameter is expressed in tenths of seconds.

5.4.2.9. AVMTemp for Record

 Certain computer setups cannot handle receiving serial data and
 writing to the hard disk at the same time (you tend to lose characters
 or get serial port errors).  If this is the case, or if you want to
 avoid writing to the hard disk in small increments, select this option.
 This will write the voice file to AVMTemp: (which is usually RAM: )
 first.  When the recording is done, it is transferred to the hard disk.

5.4.2.10. AVMTemp for Play

 Certain setups cannot handle reading from the hard disk and writing
 to the serial port.  Check this option if you have trouble playing
 voice files directly from the hard drive.

5.4.3. Fax

5.4.3.1. Fax ID

 This is where you should enter your telephone number.

5.4.3.2. Fax Init String

 This is the string that is sent to the modem right before starting
 up fax mode.  You really shouldn't change this unless the default
 setting doesn't work for you.

5.4.3.3. FaxModem Type

 This is the type of fax modem that you have.  Select Class 2 if
 your modem supports that protocol.  Otherwise, select Class 1.

 NOTE:  You really should re-install avmNfax if you're switching
 between faxmodem types because there are other settings that
 only make sense for certain faxmodem types.

5.4.3.4. Reverse TX Bit Order

 Click on this if you want to reverse the transmitted data bit
 order.  Don't play with this unless you know what you're doing.

5.4.3.5. Reverse RX Bit Order

 Click on this if you want to reverse the received data bit
 order.  Don't play with this unless you know what you're doing.

5.4.3.6. Start RX with XON

 Check your modem manual to see if a DC1 (XON) or a DC2 is required
 to start receiving data.  Again, don't play with this unless you
 know what you're doing.

5.4.3.7. Max Page Errors

 This is the number of errors that would have to be received before
 EFax will ask for a retransmission.

5.4.3.8. Fax Capability

 The second value tells how fast your fax modem is.  Set it to 5
 if you have a 14.4K fax capable modem.  Otherwise, set it to 3.
 Don't touch the other values.

 If you have a 14.4K faxmodem, this should read: 1,5,0,2,0,0,0,0.

 Otherwise, it should read: 1,3,0,2,0,0,0,0.

5.4.3.9. Fax Hardware Handshaking

 This is the handshaking between the fax modem and your computer.
 Aside from enabling or disabling this switch, you should also 
 include the necessary command in the Fax Init String to
 enable the handshaking that your modem requires.

5.4.3.10. Inits

 These are commands that will be sent to your modem before
 the modem is told to answer or dial.

5.4.3.11. Resets

 These are commands that will be sent to your modem after
 receiving or transmitting a fax.

5.4.4. Scripts

5.4.4.1. Voice Call default

 This is the name of the ARexx script that gets called when the server
 is instructed to pick up the line and no ring was received or an
 unqualified RING was received (unqualified RING == Type 1
 distinctive ring).

 To enable distinctive ring, please consult your modem's manual.

 Note that it is possible to use the distinctive ring feature even though
 your modem doesn't support it.  Results vary with modems.  If the modem
 eats the rings if they don't occur 4 seconds apart, then you're out of
 luck.  If the modem reports double rings or triple rings within a span
 of 2 seconds, then AVM will be able to detect the distinctive ring.
 You can only use this feature *if* `Rings with messages' is greater
 than 1.

 If you have distinctive ring set up, you can put "answerfax", "answerdata",
 or "answervoice" in any of the Voice Call scripts.  So, if somebody
 calls a number causing a short-short distinctive ring to occur and you
 put "answerfax" in the `Voice Call Ring 1' field, then he will always
 receive a fax tone.

5.4.4.2. Fax Call

 This is the ARexx script that gets called to handle a fax call.  The
 default should be "handlefax".

5.4.4.3. Data Call

 This is the ARexx script that gets called to handle a data call.
 The default should be "handledata".

5.4.4.4. Silent Answer

 This is the ARexx script that gets called if the phone stops ringing
 before reaching the number of rings required for AVM to pick up the line *and*
 the number of rings received is greater than or equal to the number in
 `Silent Answer rings'.

5.4.4.5. Record Conversation (Script)

 Script to handle recording a conversation.

5.4.4.6. Voice Call Ring 1

 Script called when the modem receives a type 2 ring.

5.4.4.7. Voice Call Ring 2

 Script called when the modem receives a type 3 ring.

5.4.4.8. Voice Call Ring 3

 Script called when the modem receives a type 4 ring.

5.4.4.9. Voice Call Ring 4

 This is currently not used.

5.4.4.10. Ring Script

 This script gets called right after the modem receives a ring from
 the modem.

 This script gets called with the variables "RINGS", "DISTINCTIVERING",
 "CIDNAME", and "CIDNUMBER" set.  If you type in "AlertRing" into this
 field, the file "avmrexx:alertring.avm" gets run on each ring (except
 the last ring before AVM decides to answer the phone).  At this time,
 "AlertRing" uses DSound to play an IFF file called "avm:ring.iff".
 Note that it only plays the ring between the hours of 9am and 11pm.
 This is what I currently use so that people can call up my system
 late at night to log onto my system.  This way, I don't hear the rings
 at all.

 Another use of this Ring Script is to announce the name of the caller
 or his telephone number.  This script gets called with CIDNAME and
 CIDNUMBER for this purpose.  The type of distinctive ring is placed
 in the variable DISTINCTIVERING.  The number of rings received so
 far is placed in the variable RINGS.

 Yet another use of this script is to log information to some file
 (or another program) that a call was received at a certain time.
 This is useful if you just want to know if your phone rang while
 you were out.

5.4.5. Advanced

5.4.5.1. Advanced Flags

 These flags help to configure the AVM Server.  You really shouldn't have
 to touch these flags.  Contact me if you are considering changing any
 of the default settings.  ***they are set to the proper values***

5.4.5.2. Enable or Disable Flag

 This enables or disables a particular flag.  If a "#" symbol precedes
 the name of the flag, it is disabled.

5.5. Choose Mailbox Window

 This window allows you to select which mailbox you want to configure.
 Double-click on the name of the mailbox you want to configure,
 or select it, and click on the Configure button.

5.6. Configure Mailbox Window

 This window has the name of the mailbox directory at the top, followed
 by a selector that allows you to configure different aspects of a
 mailbox.

5.6.1. Save button

 This will save the changes you make to the mailbox configuration.

5.6.2. Cancel button

 This will cancel any changes you make to the mailbox configuration.

5.6.3. UI & Password

 This section allows you to change the password and some UI related
 options.

5.6.3.1. Visible checkbox

 Enable this one to make the mailbox visible from the AVM UI program.
 Disable it to hide the mailbox from the AVM UI program.

5.6.3.2. Alias gadget

 This is where you can type in an alias for the mailbox name.  If
 you do not type in an alias, then the AVM UI will show the mailbox
 name.  For example, if you edited the mailbox1 mailbox, and entered
 the name Al in the alias, then when a message appears in the In
 message list, it will print Al under the To column.  By default,
 it would just print mailbox1 in that column.

5.6.3.3. Password gadget

 Enter a number here.  This is the password assigned to the mailbox
 when you access it remotely.

5.6.4. Call Sysop

 This section allows you to change the parameters for how AVM will
 call you up when a caller leaves a message for your mailbox.

5.6.4.1. Enable checkbox

 Enable this checkbox if you want AVM to call you up when someone
 leaves a message in your mailbox.

5.6.4.2. Password gadget (Call Sysop)

 Enter a number here if you only want AVM to call you up when someone
 leaves a message for you in your mailbox *and* he knows this
 password.

5.6.4.3. Announce Tel. # checkbox

 Enable this gadget if you want AVM to announce the telephone number
 where you can be reached.

5.6.4.4. Tel. # gadget

 Enter the telephone number here where you can be reached.  When
 AVM is instructed to call you up, this is the number it will dial.

5.6.4.5. Script gadget

 This is the script used to call you up when AVM is instructed to
 do so.

5.6.5. Alert Sysop

 When a caller enters your mailbox, and this option is enabled,
 a script will be run.

5.6.5.1. Enable checkbox (Alert Sysop)

 Enable this checkbox to enable the Alert Sysop option.

5.6.5.2. Password gadget (Alert Sysop)

 Enter a number here if you only want AVM to run the script
 if the caller who enters your mailbox knows this password.

5.6.5.3. Script gadget (Alert Sysop)

 This is the script used to alert you that someone has entered
 your mailbox.

5.6.6. Call Pager

 When someone leaves a message for you in your mailbox, this option
 will tell AVM to call your pager.

5.6.6.1. Enable checkbox (Call Pager)

 This checkbox enables or disables the Call Pager option.

5.6.6.2. Password

 Enter a number here if you only want AVM to call your pager
 if the caller who leaves you a message knows this password.

5.6.6.3. Tel. # gadget (Call Pager)

 This is the telephone number that your pager can be reached.

5.6.6.4. Script gadget (Call Pager)

 This is the script used to call you pager.

5.6.7. Forward Faxes

 If someone sends a fax to your mailbox, this option tells AVM
 to forward your fax to another telephone number.

5.6.7.1. Enable

 This enables or disables the Forward Faxes option.

5.6.7.2. Tel. # gadget (Forward Faxes)

 This is the telephone number you want your faxes to be automatically
 forwarded to.

5.6.7.3. Script gadget (Forward Faxes)

 This is the script used to forward your fax.

5.7. Configure Voice Prompts Window

 This window allows you to configure your voice prompts.  It allows
 you to record voice prompts and to play them.  The source for
 recording is selected by the AVM UI's Record From menu item under
 the Configure menu.  The destination for playing is selected by the
 AVM UI's Play To menu item under the Configure menu.

 At the top of this window, there is a list of prompts that you have
 to record.  The first field in this list tells you whether the prompt
 has been recorded.  The second field in the list tells you the actual
 filename.

 When you select a line in the list, the filename will show up in
 the gadget below it.  Then, what you have to say in that prompt
 will show up under the line "Say something like...".

5.7.1. Filename gadget

 When you select a line in the voice prompt list, this gadget gets
 filled in with the filename.  If you want to record or play
 something other than what is on the list, you can enter it here,
 or use the file requester button on the right of this gadget.

5.7.2. FileRequester button

 If you want to play or record something else other than what is on
 the list, you can click on this button and select a filename.  The
 file that you select will show up under the Filename gadget.

5.7.3. Say something like... information box

 When you select something in the list of prompts to be recorded,
 this box will tell you what you have to record.

5.7.4. Play button

 Click on this button to play the prompt that you have selected
 or the filename that is in the Filename gadget.

5.7.5. Record button

 Click on this button to begin recording the prompt that you have
 selected or the filename that is in the Filename gadget.

5.7.6. Stop button

 Click on this button immediately after you have finished recording
 the prompt.  You really should practice hitting the Record button
 and then that Stop button to try to minimize the silence that
 comes after each prompt.  Note that there is usually a small delay
 between the time that you click on this Stop button and the time
 that the recording actually stops.  So, you may actually want to
 time it such that you press this button near the end of what you
 are saying.

5.7.7. Show All Prompts button

 Click on this button if you configured AVM as a simple answering
 machine and you want to record the full set of prompts that will
 allow you to access your messages from the outside.  If you configured
 AVM as a multi-mailbox system, then clicking on this button will
 not do anything useful.

5.7.8. Done button

 Click on this button when you are done configuring your voice
 prompts.

5.8. Configure PhoneBook Window

 This window lets you configure AVM's phone book.  At the top
 of this window is a list of names, phone numbers, and groups.
 When you select something from this list, the fields below
 it are filled in.  You can then edit the entry, delete it, or
 add a new one.

5.8.1. Name field

 This is the name of the person.

5.8.2. Number field

 This is the telephone number of the person.

5.8.3. Groups field

 Unused.

5.8.4. Comment field

 This is a comment you can attach to a person's phone book entry.

5.8.5. CID Number field

 If you have Caller ID, this number will be used to match against
 an incoming caller's Caller ID.  If it matches, then the name
 that is in the Name field is displayed in the Caller ID Section
 of the AVM User Interface Window.  This is very useful if you do
 not have Caller ID PLUS Name.  It is still quite useful if you have
 Caller ID PLUS Name, but the person who usually calls you from
 a particular number is not the name of the person that the telephone
 number is listed under.

5.8.6. Search gadget

 You can start typing the name of a person here and it will immediately
 begin searching for the name in AVM's phone book.  You will notice
 that the phone book list will start scrolling, and all the fields
 will be filled in to the correct values as you are typing.  Cool!

5.8.7. Edit button

 Click this button to begin editing the entry that you have selected.

5.8.8. Add button

 Click this button to add a new entry into the phone book.

5.8.9. Delete button

 Click this button to delete the entry that you have selected.

5.8.10. To Scheduler Entry

 If you have an "AVM Edit Scheduler Entry" window open (because you
 are currently editing an outgoing message or fax entry), this button
 would be enabled.  If you click on this button, it will send the phone
 number to the "AVM Edit Scheduler Entry" window.  Double-clicking
 on one of the entries in the phone book list will do the same thing
 as this button.

5.8.11. Done button (Configure PhoneBook)

 Click on this button when you are done configuring the phone
 book.

5.9. Edit PhoneBook Entry Window

 This window allows you to edit a phone book entry.

5.9.1. Name gadget

 Enter or edit the name here.

5.9.2. Number gadget

 Enter oredit the number here.

5.9.3. Groups gadget

 Unused.

5.9.4. Comment gadget (PhoneBook)

 Enter anything that you want to say about this entry here.

5.9.5. CID Number gadget

 You really should not have to touch this gadget.  When you click
 on the Add to Phonebook button in the Caller ID Section of the main
 AVM UserInterface Window, this field will get filled in.

5.9.6. OK button

 Click on this button to save you changes and close this window.

5.9.7. Cancel button (PhoneBook)

 Click on this button to cancel any changes and close this window.

5.10. Configure User Interface Window

 This window allows you configure certain aspects of the AVM UserInterface
 and the behavior of the Tracer.

5.10.1. Show CallerID Section checkbox

 Enable this checkbox and the CallerID Section in the AVM UserInterface
 Window will show up.

5.10.2. Show Tracer Section checkbox

 Enable this checkbox and the Tracer Section in the AVM UserInterface
 Window will show up.

5.10.3. Time/date format gadget

 This is the format for the time and date that is shown in most
 of the lists (In, Out, In Arc, Out Arc) used by the AVM UserInterface.

 Be careful with this!

 %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

 The default format is: %I:%M %p %A

5.10.4. Incoming listview format gadget

 This is the format used by the In and In Arc listviews.  There are
 seven columns that you can show in the In and In Arc listviews.
 The current format is:

 COL=0 DELTA=8, COL=1 DELTA=8, COL=5 DELTA=8, COL=3 DELTA=8,
 COL=4 DELTA=8, COL=2 DELTA=8, COL=6

 Columns    Meaning

 0          Time
 1          Type
 2          To
 3          From
 4          Tel #
 5          Secs
 6          Comment

5.10.5. Outgoing listview format gadget
 
 This is the format used by the Out and Out Arc listviews.  There are
 seven columns that you can show in the Out and Out Arc listviews.
 The current format is:

 COL=0 DELTA=8, COL=1 DELTA=8, COL=2 DELTA=8, COL=3 DELTA=8,
 COL=4 DELTA=8, COL=5 DELTA=8, COL=6

 Columns    Meaning

 0          Time
 1          Type
 2          To
 3          Retries
 4          Status
 5          From
 6          Comment

5.10.6. AutoAction cycle gadget

 This is used by the tracer to determine what to do when a certain
 number of lines is reached.  If it is AutoSave, then the tracer
 saves the lines in the file in the Filename gadget.  If it is
 AutoClear, then the tracer erases the information and starts
 from scratch.  If it is Disable, the tracer does not put even
 display anything in the Tracer Section.

5.10.7. Filename gadget (Configure UserInterface)

 When the AutoAction is AutoSave, this is the filename it will
 save the tracer information in.  The default is ram:logger.save.

5.10.8. Done button (Configure UserInterface)

 Click this button when you are done configuring the User Interface.
 It will close this window.

6. AVM Server
-------------

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

 If you wish to run the AVM server manually, its command line interface
 template is:

    avm servername/a

 where servername is the ARexx port name of the server.  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 `AVM UserInterface' program.

7. 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
 and more importantly, the caller, can figure stuff out.

7.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 programs that are supported is EFax, 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.

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

7.3. Remote Caller

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

 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...").

 If you configured AVM to run in multi-mailbox mode, the caller
 is instructed to press 1 if he has a touch-tone phone (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'.

 When entering a mailbox, the first thing that is played is
 the mailbox's Personal message.  You can record this personal
 message remotely or by using the Configure/Voice Prompts... menu.
 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 Configure/Voice Prompts... menu, you need
 to go to the Configure menu and select the Voice Prompts...
 menu item.  Then, depending on which mailbox's personal message
 you want to customize, you would enter one of the following
 things into the text field right above "Say something like...":

   avmmbox:anonymous/voices/Personal
   avmmbox:mailbox1/voices/Personal
   avmmbox:mailbox2/voices/Personal

 After typing it in, you would then click on the Record button.

 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.

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

 NOTE:  If you do not have an avm:StandardConfig file yet, you should
 open a shell and copy avm:StandardConfig.Template to avm:StandardConfig.

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

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

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

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

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

 The default for AVMDirectDDNumber is YES.  This means that you have
 to record 0 through 59 if you want to play times and dates.

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

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

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

8.9. Pre-conversion GUI

 The preconversion will 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.

8.10. Priorities

 You can set the priorities of some of the AVM programs by using
 the setenv command.

   setenv AVMSERVERPRI 0
   setenv AVMVOICE2IFFPRI -5

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

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

8.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 Configure/Voice Prompts...
 menu to record your user-defined beep.

 To enable this feature, do a:

   rxset AVMUserBeep YES

 The default is NO.

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

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

8.16. 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"

8.17. BBS Program

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

 sys:rexxc/rxset AVMBBSProgram 4D

9. Programmer
-------------

 I cannot describe everything that the Programmer can do at this
 time.  Sorry.

 Here are instructions for how to add new mailboxes.

 The first thing to do is to create a new mailbox.  To do this,
 open up a shell, and then type the following (assume that the new
 mailbox is called NEWMAILBOX):

  copy avmmbox:anonymous avmmbox:NEWMAILBOX all

 Then, run the Programmer by selecting Configure/Scripts...

 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.  Change the cycle gadget next to the number 4 from No-op
 into Call Mbox.  Then, type NEWMAILBOX into the string gadget
 beside the cycle gadget you just changed.

 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, click on Done.

 Then, click on Save to 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.

10. Faxing
----------

 EFax is now included with AVM.  It is a class 1 or class 2
 fax program.  To view received faxes, you just double-click
 on the message and a program called AVM FaxView will display
 your fax.

 To send a fax, select File/Print High or File/Print Low from
 the AVM UserInterface window.  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 AVM FaxPrinter should
 appear.  If it does not, something is wrong and any printing
 to the faxprinter device driver will not work properly.  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.  If you want to print plain
 text, you just have to do something like:

  copy text-file prt:

 When done printing, go to the AVM UserInterface window, and select
 the "Out" Mailbox Section.  You should see a new entry for the
 fax-file that just got created.  To view it, just double-click
 on the entry.  To edit the phone number that you wish to send it
 to, select the entry, and click on the Edit button.  If you wish
 to dial the remote fax manually, do so, and then click on the
 Send Now button, which sends the fax without making your modem
 dial first.

 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, select File/Print Printer.
 This will use the previous Printer and PrinterGfx preferences
 settings (which will allow you to print stuff to your printer).

 Note:  The two text fields in the AVM FaxPrinter program are
 information purposes only.  You *cannot* enter anything into
 those fields.

 The AVM FaxPrinter has 2 options.  When the "End Page on Render
 Close" 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.

 When the "End Page on FormFeed" option is enabled,
 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 avm:gnu/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 AVM FaxPrinter 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.

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

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

13. 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!

14. 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
 o  Tim Lloyd
 o  Daniel J. McCoy
 o  Ryan Bruner

15. ARexx Commands
------------------

I would rather that you use the AVM Programmer, but here are
the ARexx commands anyway:

15.1. Things to note:

 o  You must turn on "options results"!  As in:

	OPTIONS RESULTS

 o  The AVM server launches scripts with certain arguments.

15.2. Top-level ARexx commands:

 o  quit -- kills the AVM server

 o  unlisten -- puts the serial port being handled by the server in
    unlisten mode.  This means that there is no pending "read" on the
    serial port.

 o  listen -- makes the AVM server listen to the serial port

 o  closeserial -- closes the serial port

 o  openserial -- opens the serial port

 o  use -- locks the AVM server and puts it in the "use" mode.  See the
    Use-mode ARexx commands.  This is the first thing that you must do
    if you want to do stuff like playvoice, recordvoice, etc.  This
    prevents multiple scripts from fooling around with a single server.

 o  answervoice -- tells the AVM server to launch the script listed in one
    of the "voice call" scripts (if distinctive ring is on, then the
    appropriate one will be launched).

 o  answerfax -- tells the AVM server to launch the script listed in "fax
    script".

 o  answerdata -- tells the AVM server to launch the script listed in
    "data script".

 o  silentanswer -- tells the AVM server to launch the silentanswer.avm
    script.

 o  recordconversation -- tells the AVM server to launch the
    recordconversation.avm script.

15.3. Use-mode ARexx commands:

 o  unuse -- "unlocks" the AVM server and makes it wait for new calls

 o  abort -- stops operations

 o  flushphonebuffer -- AVM remembers DTMF keys when recording and playing
    voice files.  If you do a flushphonebuffer, it makes AVM forget.  This
    is useful if you want to play a voicefile, but when someone presses a
    key, you want to ignore it.

 o  flushbuffers -- Same as flushphonebuffer, but also flushes the serial
    port buffers.

 o  read1key TIMEOUT -- reads 1 DTMF key from the AVM server.  The result
    is placed in the RESULT variable.

	TIMEOUT is a number representing the number of seconds to
        wait before the operation fails

 o  readnkeys N TIMEOUT -- reads N DTMF keys from the AVM server.
    The result is placed in the RESULT variable.

	N is the number of DTMF keys to read
	TIMEOUT is a number representing the number of seconds to
        wait before the operation fails

 o  readkeysuntil KEY N TIMEOUT -- reads at most N DTMF keys from the
    AVM server, or until you get a key specified by KEY.  The result
    is placed in the RESULT variable.

	KEY can be the characters '0', '1', ... '9', '*', '#'
	N is the number of DTMF keys to read
	TIMEOUT is a number representing the number of seconds to
        wait before the operation fails

 o  waitforcharacters TIMEOUT -- waits for characters from the serial
    port until TIMEOUT is reached.  The characters read are in the
    variable RESULT.  This is not very useful.

	TIMEOUT is a number representing the number of seconds to
        wait before the operation fails

 o  writeline STRING -- writes STRING followed by a new-line to the
    serial port.

	STRING is a sequence of characters that you want to send to
        the serial port

 o  readline TIMEOUT -- reads one line from the serial port, or
    terminates if TIMEOUT is reached.  The line read is placed in RESULT.

	TIMEOUT is a number representing the number of seconds to
        wait before the operation fails

 o  dial NUMBER -- causes AVM to dial NUMBER

	NUMBER is any valid telephone number

 o  delay TIMEOUT -- lets the AVM server pause until TIMEOUT is
    reached.

	TIMEOUT is a number representing the number of seconds to
        wait.

 o  requiremode MODE -- tells the AVM server to go into a specific
    mode.

	MODE can take on any of the following values:  COMMAND, VOICE,
        CONNECTED, PLAY, and RECORD.

 o  assumemode MODE -- tells the AVM server to assume it is in a
    specific mode.

	MODE can take on any of the following values: UNKNOWN,
        COMMAND, VOICE, CONNECTED, PLAY, and RECORD.

 o  turnoffvoicemode -- tells the AVM server to turn off voice-mode
    without hanging up.

 o  setserial BPS BITS PARITY STOPBITS HANDSHAKE -- sets the serial
    port configuration

	BPS can take 1200, 2400, 4800, 9600, 19200, 38400, 57600
	BITS can be 7 or 8
	PARITY can be N, E, or O (none, even, odd)
	STOPBITS can be 1 or 2
	HANDSHAKE can be xonxoff, 7wire, or none

 o  requiredevice DEVICE -- tells the AVM server which device to use

	DEVICE can be telephoneline, externalmic, internalspeaker, or
        localhandset.  When dealing with incoming calls, you should use
        telephoneline.

 o  playvoice FILENAME -- tells the AVM server to play the voicefile
    specified by FILENAME

	This returns statuses through the variable RC such as
        KeyDetected, DataDetected, ...  you need to know what actual numbers
        correspond to those statuses.

 o  playbeep FREQUENCY1 FREQUENCY2 DURATION -- tells the AVM server
    to generate a tone (possibly a dual-tone).

	FREQUENCY1 is a number between 0 and 3300 (Hz)
	FREQUENCY2 is a number between 0 and 3300 (Hz)
	DURATION is a number between 0 and 255 (.1 seconds)

 o  recordvoice LENGTH THRESHOLD INTERVAL FILENAME -- tells the AVM
    server to record a voicefile specified by FILENAME.  Recording is
    terminated if LENGTH is reached, silence/quiet is detected (whose
    parameters are specified by THRESHOLD and INTERVAL), tones are
    detected, DTMF is detected, etc.

	LENGTH is a number that indicates the maximum recording time.
        If you put -1 here, this value will be taken from avm:servers.cfg.
	THRESHOLD is a number that indicates the threshold for what
        the modem considers is silent.  Putting a -1 here takes the
        value from avm:servers.cfg.
	INTERVAL is a number that indicates the length of time that
        silence must occur before it is really considered silent.
        Putting a -1 here takes the value from avm:servers.cfg.


-----------------------------------------------------------------------

NOTE:  ANYTHING BELOW THIS LINE IS OLD STUFF.  I HAVE NOT HAD TIME TO
REWRITE IT.  YOU MAY WANT TO LOOK IT OVER THOUGH.

-----------------------------------------------------------------------

100. 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)

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


