Document AVM Release 1.33 documentation AVM Program Documentation ~~~~~~~~~~~~~~~~~~~~~~~~~ A Program by Al Villarica 1994 Note! StandardConfig has changed! I deleted startALL and startAVMAndGPFax. Now, the only way to start AVM is through startAVM. You can "configure" which programs get started by editing StandardConfig. LineLink users! I found another way to stop playing a voice file immediately after a touch tone is pressed. This new way is enabled by default. If it worked better for you the way it was before, you will have to disable this new feature. To disable it, run the ServerConfig program, click on Server Config, select the Advanced Flags group, look for the line which says UseDTMFControl, click on that, then click on the Toggle Enable/Disable Flag. This should cause a '#' to be placed in front of the flag. Close the window and click on the Save gadget. Restart AVM and things will go back to the way they used to be. Note that you should try the new way since the code to do it is much simpler than the previous one and should be more robust. 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. If you still want to use Mostra, edit avm:rexx/efaxview.avm. The default is to use my fax viewer. 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 without a Voice Modem'. 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. I have created a fax print program that I decided to make shareware. This print program will print faxes in the correct aspect ratio. I tested it and it works fine on my page printer. I am also in the process of making my own fax viewer that will also be shareware. I can already view large faxes using a SuperBitMap. I need to add support for different magnifications and for viewing the fax using less memory. Note that the AVM FaxPrint program and the AVM FaxView program are shareware and are not under the GNU License since I made them. The AVM FaxPrint without the keyfile will only print the first half of a page. Please check out avm:contrib. It contains stuff contributed by AVM users. You may like what's in there. Warning to GPFax users: as of this version, the default fax program is EFax (for obvious reasons). You will need to edit StandardConfig to change this default. If you had versions between 1.11 and 1.15, read `New Voice Files' thoroughly. Otherwise, you may find that AVM hangs up on you at odd times. Basically, I had to rename some of the voice files (aside from adding more voice files for you to record). If AVM doesn't find the right voice file, it will hang up on you. If you upgraded your ZyXEL from pre-6.12 ROMS to 6.12 ROMS, read the release notes of V1.25 in the `History' section. Read the documentation! It is important, given the complexity of the system. I have tried to make the documentation as complete as possible. However, if you find something that is out of date with the actual program, let me know so I can update the documentation. Again, it is important that you go through the documentation at least once. If you have some problems, check out the section called `Common Problems' before asking me. You may find that some of your questions have already been asked by other people and have been solved. If you press the "Help" key in any of the windows (except the window that pops open if you have an unregistered version of AVM), you will get to read this file. It is context sensitive, but not fine grained. In other words, you will be put in the section that talks about the particular program you pressed the "Help" key in. As of this version, Rockwell support is considered beta while all other modems supported are considered to be stable. 0. Important! ------------- 0.1. UNREGISTERED version AVM is Copyright - 1994 by Al Villarica (SoftWorx). The UNREGISTERED version is freely distributable, as long as it remains in the original archive as shipped by the author. You may not sell the UNREGISTERED version for profit. Only a minimal copying fee may be charged. You are legally entitled to use the UNREGISTERED version for as long as you like, as long as the programs are *not* modified in any way. For example, you are not allowed to remove the requesters, change any of the texts within the program, etc. You are *not* allowed to close the "annoying" window by using any external program. This window is meant to be a constant reminder that you are using an UNREGISTERED version of AVM. If you find it useful, I would really appreciate it if you would register the program. That would be the best way to get this program to improve. Also, please do *not* try to use an external program to resize my "reminder". I am not responsible for any crashes due to resizing, moving the window to another screen (it likes to stay on the WorkBench screen), or closing the window. I myself am using a version of the AVM server which has the annoying window. Really! So, if I can use it, then you should be able to too. I don't think that my registration fee is outrageous. You may, however, modify the ARexx scripts to your heart's content. You may *not* use these ARexx scripts or any of their derivatives for anything but AVM. Any ARexx scripts created by users (whether hand coded or generated by the AVM Programmer) can be put in the public domain. In fact, I urge you to distribute them or at least tell me about them so I may incorporate them (or some of their features) into the following releases of AVM. You may not use *any* of the binaries (the server, programmer, iff2adpcm, adpcm2iff, etc.) for anything but AVM. NOTE! I have included the Programmer, Scheduler, and SchedulerView starting with this version. They, however, have been disabled. You can look at the Programmer and play around with it, but you can't save nor compile anything you create. With the Scheduler, you can do everything with it, but it won't wake up to process scheduled events. But, if you want to see how it would call somebody up, you can press the Send gadget, which manually process the currently highlighted entry. This will at least show you that the Scheduler does work. Maybe the inclusion of these programs (they're not vaporware) will convince you to register this program :) 0.2. REGISTRATION Although the UNREGISTERED version is very usable as is, you are encouraged to register the software. At this time, there are two levels of REGISTERED users. You can register for the fax portion of AVM. This includes a fax viewer and a fax printer. Note that you can view faxes using any IFF viewer. You can also print faxes if you have an IFF printer. The advantage of getting my versions of those programs is that you'll get technical support from me. Plus, the fax print program I wrote will print out short and long faxes correctly (i.e. it won't stretch them or squash them). My fax viewer will also have different magnifications and will also be able to work under low memory conditions. If you are currently registered for AVM (i.e. you already in my database list, you can get the fax portion registered for only US$10). I want to give those people who have already registered a incentive to register the fax portion. Registration entitles you to 1 year of free updates when they become available for the programs and ARexx scripts that you are registered for. These updates will be made available for download in the form of patch files. I will not be sending out update disks (although I may send out postcards to tell you about important updates). Registration will also get you technical support. Although I will try to help new users in getting the UNREGISTERED version working on their system (what good is a demo if you can't get it working, right?), I cannot provide much more than that. I need to concentrate on supporting those who were kind enough to register. Of course, you can offer suggestions on how to improve the software (and these suggestions may even show up on later working demos of the AVM Suite). If I add those things that you want, maybe that will encourage you to register. Registration is transferrable. You have to inform me of the specifics of the transfer (i.e. to whom it was transferred to). Registration entitles you to use the AVM Suite on only one computer. Of course, you can use as many modems on that computer as you can possibly fit. You may need a high-performance computer to be able to do this, though. With the best compression, the modem to computer transfer rate is at least 9600, making it quite unlikely that a 68000 computer will be able to handle more than one modem at a time. 0.2.1. REGISTERED version Level 1 With this level, you will get: o an annoying-less version of the AVM Server, o a working AVM Scheduler for sending unattended outgoing messages and faxes - the Scheduler can call you up at work when somebody "deposits" a message in your mailbox - the Scheduler can forward faxes to another fax number automatically - the Scheduler allows you to "reply" to messages left by callers - the Scheduler allows you to "send" voice or fax messages to people Level 1f will additionally get you: o a fax print program which prints faxes in the correct aspect ratio o a fax view program which can view long faxes and can also view them under different magnifications 0.2.2. REGISTERED version Level 2 In addition to what you get from level 1, you will get: o a working AVM Programmer which makes adding mailboxes and customizing the ARexx scripts *much* easier - Use it to add mailboxes, delete mailboxes - Program unique voice menus - Allow people to hear about products you are selling - Allow people to get faxes from you about products you are selling - Allow people to hear music you have composed - With the X10 interface, you can turn your appliances on and off from the outside - Program automated surveys or questionnaires (it can call people up and collect responses from them). - Program 1-900 (pay per minute) quizzes - Anything you can do with ARexx, you can do from within the AVM Programmer, and hence from a remote telephone - Create a voice BBS Level 2f will additionally get you: o a fax print program which prints faxes in the correct aspect ratio o a fax view program which can view long faxes and can also view them under different magnifications 0.3. Payment Options Send payment to the `Author', Al Villarica. For European customers, send payment to the `European Registration' site. +---------------------------------------+ | Prices | +---------------------------------------+ |Level 1 $20.00 | |Level 1f $35.00 | |Level 2 $35.00+ | |Level 2f $50.00+ | |Upgrade from 1 to 2 $20.00 | |Registered for AVM, want fax $10.00++| |Fax Print/Viewer/Scheduler $25.00 | |Upgrade from 1->1f or 2->2f $20.00 | |Shipping/Disks $ 2.50* | +---------------------------------------+ * The shipping/disk charge is per disk. MUI takes 1 disk. AVM now takes two. Each set of voice files takes 1 disk. If you can download these things (or if I can email them to you), then you don't have to pay any shipping or disk charges. Tell me which disks you want (MUI, AVM, voice files). + If you would like to send *more* money than what I'm asking for, I would appreciate it very much. I made my prices low to get people to even think about registering. In my opinion, you get a lot for what you pay for. ++ This is *only* available to those who registered for AVM *before* June 14, 1994! I will not be recording special voice files for people (unless special arrangements are made). The voice files that I will be sending are generic voice files for a simple answering machine. Note that I may not have it for your specific modem or for your specific language -- at this time, I can only guarantee that I have voice files for ZyXELs and LineLinks in the English language. Some people have been able to send me cash (foreign currency is acceptable but please be fair when calculating the exchange rate) by wrapping it in aluminum foil. I am not sure if this is legal, and I cannot guarantee that I will receive it. Of course, you could send it to me "registered" so that I will have to sign for it and you will receive notification that I signed for it. Someone has been able to send via a postal money order from Italy. So, I know this is also another alternative. I am not sure how much this will cost you though. When doing this, please make sure that the full address is shown on the money order. Otherwise, I will have no way of knowing how to get in touch with you. When sending in payment, please include a short note to tell me enhancements you want me to include for future releases. Remember that programs evolve. This is your chance to contribute to its evolution. If you have suggestions for the program (and you don't want to register), send in your comments anyway. Let me know why you don't want to register (costs too much, it's missing a feature, etc.). Here's a form you can cut out and print out (don't forget to include the country you're in!): Name: __________________________________________________________________ Address: _______________________________________________________________ _______________________________________________________________ _______________________________________________________________ Country: _______________________________________________________________ Email (InterNet/Compuserve/America Online/Genie/Fido/etc): _____________ _________________________________________________________________ Telephone Number: _____________________________________________________ Fax Number: ___________________________________________________________ How would you like to receive the key files? ( ) Email ( ) Regular mail together with AVM disk ( ) ftp site: __________________________________________ private directory: _____________________________ ( ) IRC dcc AVM: ( ) Level 1 ( ) Level 1f ( ) Level 2 ( ) Level 2f ( ) Upgrade from 1 to 2 ( ) Upgrade from 1->1f or 2->2f ( ) I'm currently registered and want to register the fax part. ( ) Fax Print/Viewer/Scheduler (you don't have a voice-capable modem) ( ) Send AVM on 2 disks ( ) Send MUI on a disk ( ) Send voice files on disk (modem = _______, language = _______) Computer: _____________________________________ Processor: ____________________________________ Speed (MHz): __________________________________ Memory (MB): __________________________________ Modem: ________________________________________ Serial Port: ( ) standard built in ( ) custom: ______________________ Kickstart version: ____________________________ Workbench version: ____________________________ 0.4. Technical Support You may send 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 am also available for questions on IRC. I hang out on the #amiga channel and normally use "av" as my nickname. Just do a /who #amiga and look for me. I can DCC stuff to you. I will answer all questions and help you do some ARexx programming if you are using a fax or data/BBS program that you want to integrate with AVM. You can also get some technical support by calling up my Mini BBS. See `Getting Updates'. Before asking me a question, *please* look for the answer here in this document. You may find that someone asked your question and I answered it. Look at the section `Common Problems'. Also, it would be most helpful if, aside from telling me that AVM doesn't work, you provide useful information. For example, I would like to know: o Your computer type (A1000, A2000, etc.) o Your processor type (68000, 68020, 68030, 68040, 68060) o Your operating system version (2.04, 2.1, 3.0, 3.1, etc.) o Your modem type and ROM version (if you have a ZyXEL, type in ATI1 in some terminal and tell me what it says). o Your serial port (internal, GVP IOextender, Multiface II, Multiface III, etc.) o A ram:logger.save file. Run the Logger program, try to reproduce the problem, click on the Save button in the Logger window, then send me the file called ram:logger.save. The Logger program produces important information about the AVM Server process which handles the modem. It also tells me if there's a problem with one of your ARexx scripts. In other words, the file ram:logger.save allows me to do "remote" debugging. o Your avm:servers.cfg file. 0.5. Getting Updates I will try to distribute patch files on the major networks (Usenet, FidoNet -- see `Deep Thought BBS', Fred Fish, etc.). But, you can call up my Mini BBS by doing the following: Use a telephone and dial my number (See `Author'). Wait for AVM to answer. When it does, press 5 on your touch tone phone. That will activate AXsh, a non-traditional BBS that contains AVM related files. Instructions on how to use AXsh will be displayed when you log in. You can call between 10am and 5pm, Eastern Standard Time (USA), but please don't be rude: say "hello" if somebody answers. Then kindly ask them to press 5 (silent answer is active, so it should be possible to get the modem to answer in data mode even if somebody answers -- neat, huh?). NOTE: THIS IS ONLY AS A LAST RESORT! I WOULD PREFER IT IF YOU GOT AVM EITHER THROUGH YOUR LOCAL BBS, BY EMAIL OR FTP, OR THROUGH THE DEEP THOUGHT BBS. Important! I'm following the Commodore way of numbering versions. This means that AVM 1.16 would be a higher version than AVM 1.2. 0.6. European Registration If you live in Europe, you can send your registration forms and payment to: Odendahl Stefan Wickertweg 16 3902 Brig-Glis Switzerland He will handle any registrations you send to him. Of course, I will still accept your registration here, but it is probably easier to send it to him if you live in Europe. He says he prefers Swiss Francs (CHF), but other currencies are welcome. Again, be fair when making the conversion. If you wish to send Swiss Francs (by any of the methods described below), please account for the conversion from the US$ registration fee to what you send to him in Swiss Francs. Stefan has to buy a US$ Money Order using your Swiss Francs before he can transmit the money to me. If you decide to send money in any currency other than Swiss Francs, Stefan has to first convert it into Swiss Francs *before* buying a US$ Money Order. So, please allow for this double conversion. In other words, he *really* prefers Swiss Francs. If you have US$ already, it's probably better to send it directly to me. Please decide how to transfer the money: o Cash (no coins) o International postal money transfer to his "post account" No. : 19-10974-2 Check-Office : Sitten Country : Switzerland o Postal money order Checks are not accepted at this time because Stefan has determined them to be too expensive to cash at his bank. Plus, the price of cashing varies, so it's hard to pass the cost on to the registering party.M You can reach him at: odendahl@avalon.unizh.ch or sodendah@iiic.ethz.ch (Internet email) Stefan Odendahl (2:301/807.42) (FIDO mail address) Odi (IRC) 0.7. Deep Thought BBS Christian Stelter has been kind enough to carry AVM in his BBS. It is a FidoNet node. Here's information on his BBS. DEEP THOUGHT Bulletin Board System InterNet: deepthought.north.de FidoNet: 2:2426/2020.0 & 2:2426/2021.0 AmigaNet: 39:170/204.0 & 39:170/205.0 Port 1: +49-(0)441-383365, 1200-19200 bps ZyXEL Port 2: +49-(0)441-383839, 1200-16800 bps ZyXEL Magic for Fido File Requests: AVM (for the latest version) : FILES (for a list of all files) 0.8. Mailing List Christian Stelter has set up a mailing list for AVM. To join this mailing list, send email to "listserv@deepthought.north.de". On the first line of your email (not the Subject header), type in: subscribe avm Then, when I send email to this mailing list, everyone on the mailing list will get a copy. This is a good way for you to find out about new releases of AVM (whether Beta or final). Plus, I plan to distribute small fixes to ARexx scripts here and to discuss new features and bugs. 0.9. Author Users of ZVM, *please* note the address change! Al Villarica 408 Arnold Ave. Syracuse, NY 13210 USA Fax: (315) 471-4043 Voice: (315) 471-4043 Data: (315) 471-4043 1. Introduction --------------- What does AVM stand for? No, it's not Al's Voice Mail or something like that. I had planned on it being Amiga Voice Mail, but decided on Advanced Voice Mail (recommended by one of the Beta testers). With the AVM, you can use your voice-capable modem (Zyxel, Dolphin, or LineLink, Rockwell based voice modem) and GPFax, TrapFax, or the included EFax to provide: o A three-mailbox answering machine. These mailboxes currently are named (Anonymous, Al, and Dory). You can change their names. See instructions in the Call Notifier on how to accomplish this. o A simple answering machine if you don't want to have mailboxes. In this case, only the Anonymous mailbox is active. o The ability to archive messages and faxes that you receive so that you can recall them later on. o The ability to receive voice messages, faxes, and data calls all on one line. At this time, only GPFax, TrapFax, & EFax are supported. With some ARexx programming, other fax programs may be substituted. At this time, only AXsh (a non-standard, but publically available BBS) is supported for handling data calls. All you have to do is install AXsh. o The ability to retrieve messages from a remote site by using the remote site's touch tone keys. Information about the message can be played, such as the time and date of the message, any telephone number left by the caller, or the telephone number transmitted via the Caller-Id mechanism available on some phone systems. o Silent answer -- if you pick up the phone before the program does, it will eventually pick it up and listen in on your conversation. By pressing the appropriate keys on your touch- tone phone, you can instruct AVM to handle the call as a fax call or have it start recording your convesation. o Record Conversation -- you can use this to record important conversations. This is especially handy when dealing with mail-order firms. But, you need to tell the other party that the conversation lest you get accused of having an illegal phone tap. o Remote recording -- you can remotely record a personal greeting for each mailbox. In addition, some of the outgoing messages can also be recorded from another telephone. o Pre Conversion -- with this feature, you will be able to pre-convert voice files while your computer is not doing anything interesting. So, when you get home, you can click on Play to play your message, and it will be immediately played. Otherwise, you would have to wait for the conversion process to take place. o Immediate playing -- if you have a fast Amiga and you use a compression mode that can be "uncompressed" quickly, you can play the incoming voice files directly to the Amiga sound system. No intermediate conversion is necessary. With this feature, you don't have to use the Pre Conversion feature (but you still can, if you want) and you don't have to wait forever to hear your incoming messages. o Multiple greetings -- you can greet your callers depending on the time of day, the day of the week, randomly, etc. Plus, you can record these greetings remotely. The AVM Suite is a major rewrite of ZVM, my first attempt at providing answering machine capabilities to users of the Amiga and the Zyxel modem. AVM now supports the LineLink 144e modem (some restrictions apply) and the MTD Dolphin modem (a Zyxel compatible), a Rockwell chipset based voice modem (I tested a Zoom VFDX). The AVM Suite consists of a bunch of programs which all cooperate via ARexx. For example, when a call comes in and someone leaves a message, the `Call Notifier' will show that there was a new message (the Count would increase in the appropriate mailbox). If there was a `LogView' opened that was "viewing" the mailbox where the message was in, a new entry would automatically be inserted into the view. In other words, changes to the mailboxes are broadcast to all the active programs that are viewing a particular mailbox. The AVM Suite uses the server model. Each modem that you want the AVM Suite to handle incoming calls for, needs to have a server process (`AVM') running for it. The AVM server knows how many rings to wait for before answering a ringing line. When it gets the desired number of rings, it dispatches an ARexx script on itself to handle the call. I designed this server to be able to run autonomously. Therefore, it is possible to have the AVM server running to handle all calls and not have the `Call Notifier' or the `ServerMan' running. This will definitely conserve memory, but at a small cost. The AVM server will not know if there are any messages being "watched", so it will not be able to support the "Toll Saver" option. And, you will have no real way of knowing whether there were messages left on your computer, since that was the whole purpose of the `Call Notifier'. But, as I said, if you can do without those two features, you can get away with running just the AVM server. Do this in low memory situations. 2. Requirements --------------- o AmigaDOS 2.04 or greater o MUI 1.4 or greater (someone tested it with MUI 2.0 and it works). o a Zyxel, a LineLink 144e, a MTD Dolphin modem, or a Rockwell chipset based voice-capable modem. o ARexx - this is included with AmigaDOS 2.04 and up, but it may not actually be running on your system. Look in the startup-sequence or the user-startup for a line containing "rexxmast" to be sure. Alternatively, type in the following into a shell: rx "say hello world" If it prints HELLO WORLD in the shell, ARexx is running. o a hard disk to store voice messages o 1 meg of RAM (the more, the merrier) o an accelerated Amiga is desirable, but is not really a requirement o speakers hooked up to your Amiga would be nice o a sound digitizer would also be nice (you don't need one since you can record messages using the phone line) o a fast serial port is also desirable, but not a requirement. I have been told that AVM does work with the IOExtender, the Multiface II card, and the Multiface III card. o when using the AVM programmer, you need to be using at least a 640x400 screen (because of the size of the windows). o GPFax or TrapFax are alternative fax programs that you can use with AVM. AVM now includes EFax. It's really easy to send and receive faxes with AVM using EFax. 3. Setting up ------------- 0. If you have a Rockwell based modem, connect your telephone to the back of the modem. Otherwise, you will need to connect your telephone to some sort of splitter. The telephone should be connected in *parallel* with the modem. It should not be connected to the back of the modem! Another possibility is to hook it up to an extension in your house. 1. Install MUI 1.4 or greater and ensure that it works by trying out one of the MUI demos. If you cannot get one of the demos working, you can be sure that AVM won't work either. NOTE: Instructions 2 through 8 can be skipped if you double-click on the avm-install icon, which takes care of these steps for you. This assumes that you already unarchived the avm1.33.lha archive in some temporary directory. It will copy the necessary files from that temporary directory to the final directory and add the necessary ASSIGNS to your user-startup file. You will also be able to choose what type of modem you have, what type of digitizer, and the method by which you want to be informed of new calls. 2. Create a directory in which you want the AVM Suite to reside. Use the Workbench for this. a. Find a place to put the AVM Suite on the Workbench. b. Press the right-mouse-button, select the Window menu, then select the "New Drawer" option. You will then be prompted for a drawer name. Enter "AVMSuite" (without the quotation marks) in that requester. OR, if you prefer using the Shell, makedir work:AVMSuite copy work:empty.info work:AVMSuite.info Note that if you use these "Shell" instructions, you will need to go to the workbench afterwards, move the AVMSuite icon to a new location, and use the Snapshot menu item in the Icons menu of the workbench. 3. Unarchive the AVM archive while you are in the directory you just created. cd work:AVMSuite lha x ram:avm1.33.lha 4. Edit s:user-startup and add the following lines (but change the directory name if you put AVM in some place other than work:AVMSuite). assign avm: work:AVMSuite assign avmtemp: t: assign avmrexx: avm:rexx assign faxout: avm:outgoing/voices assign faxtemp: t: 5. Open up the AVMSuite drawer from the WorkBench. 6. Make a directory called "voices" in the AVMSuite drawer. From the CLI, just do a: makedir work:AVMSuite/voices 7. Open up the DefaultIcons drawer in the AVMSuite drawer. If you have a Rockwell based mode, double-click on the "useRockwell" icon. If you have a LineLink144e modem, double-click on the "useLineLink144e" icon. If you have a Dolphin modem, double-click on the "useDolphin" icon. If you have a ZyXEL, first find out what ROM version you have by typing in "ATI1" in a terminal program (like Terminus, JR-Comm, vt10029b, ATalk III, etc.). Then find the icon entitled "useZyXEL????" where the "????" are replaced by the ROM version that you have on your modem. If you have a ROM version that does not have an icon, find an icon which is closest to your ROM version. Complete these instructions and then test things out. If you find that it doesn't work, double-click on another icon and try it out. If none of the icons work, contact me. If you have a class 1 fax modem, double click on the useClass1 icon. If you have a class 2 fax modem, double click on the useClass2 icon. Only use these if your modem really doesn't do voice. If it does and is not compatible with AVM, contact the author. Next, you need to tell AVM what kind of sound digitizer you have. If you don't have one, then these instructions do not apply to you. If you have a Perfect Sound digitizer, double click on the "usePerfectSound" icon. Otherwise, double click on the "useGenericDigitizer" icon. Finally, you need to tell AVM how you want to be informed of new messages. If you want to be informed of messages via the AmigaDOS "say" command (AmigaDOS 3.0 and up users should check if they have this command), double click on the "useSayAlert" icon. If you want to be informed of messages via the Amiga's power LED (it will flash the number of messages on the power LED -- this may look like a Guru and scare you :), double click on the "useFlashAlert" icon. If you want to be informed by a prerecorded message (it plays an IFF file called avm:have1message or avm:havemessages), click on the "useSayPreRecAlert" icon. If you *don't* want to be informed of new messages, follow instructions for the `Call Notifier' on how to "unwatch" mailboxes. 8. Execute the script called "avm:renamevoicefiles". I sometimes rename voice files. For instance, in going from V1.15 or earlier to V1.17, I renamed stuff like one, two, etc. to number1, number2, etc. to facilitate in sorting stuff in the Player program. Execute the script called "avm:deletevfiles". This will delete all the obsolete voice files. Note that it won't delete voice files that are still usable. Only the minimal number of voice files will be deleted. 9. If your modem is not connected to serial.device unit 0, see `Ports Setup' for instructions on how to change the serial device and/or the unit number. 10. If you want to use the included EFax, just double click on the startAVM icon! For GPFax to run with AVM, you need to make sure that in the Environment window, the Shared flag is set. Also, edit the Answer.gpf script and remove the lines which have 'viewlast' in them (the last two ones in the version I have). If you have a ZyXEL modem, the Modem Init string should be: AATE0V1X4&K3&C1&D2S0=0 If you have a LineLink modem, the Modem Init string should be: AATE0V1X4&K3&C1&D2&R0S0=0 If you have any other modem, try the one for the ZyXEL modem first. Then try the one for the LineLink modem. NOTE: GPFax shouldn't be running before you start AVM. If you have TrapFax, just double click on the "startAVM" icon to get things running. You must also use OwnDevUnit.library. 11. Run the Player program. This will allow you to record each of the required messages. See the instructions for `Player' on how to accomplish this. If you download the optional voice files (I am distributing them in a separate archive since many people may want to record their own voice. However, some people may not have the time to fully customize AVM with their voice.), you will need to look at the instructions that come with the voice files. I would like people to make a standard set of voice messages for different languages and put them in the public domain. Here's the naming convention I would like to keep (so people don't have to download lots of stuff before finding out what's in it). The .lha file should start with AVMV followed by a three letter specifier for the language used in the voice files, then the version number of AVM that it works with. Voice files should be distributed as IFF files recorded at 9600 samples per second or greater. The program iff2adpcm is now capable of resampling IFF voice files to the required sampling rate required by the different modems/compressions. AVMVEng1.19.lha (English, 9600 samples per sec., avm1.19) AVMVFre1.19.lha (French, 9600 samples per sec., avm1.19) AVMVGer1.19.lha (German, 9600 samples per sec., avm1.19) If you're running AVM as a simple answering machine and you get pre-recorded voice files, the only messages you need to "customize" are "intro1", "intro2", "intro3", and "MailboxGreeting". The "intro" files are played first (depending on the time of day, one of the intro files will be played). After the "intro" files are played, the caller is put into the "Anonymous" mailbox, which plays "MailboxGreeting", at which point the caller can send a fax or wait for the beep to leave a message. It is entirely up to you on what message you want to tell him. Maybe you could say something like "Hi, this is Al's answering machine. Press 2 to send a fax or wait for the beep and leave your message. When you're done leaving your message, press 1.". If you are running AVM as the three mailbox system, you need to reccord the file called "level0". This file instructs a caller on who they may leave messages or faxes for. Unless your names happen to be Al and Dory, you will need to re-record this message :) Also, you really should record the messages described in the paragraph before this. 12. Test things out. Pick up your phone, wait a few minutes until the phone company gives up and makes your phone line go silent, then click on Answer Voice in the ServerMan program. This will instruct AVM to pick up the phone and process it as though you got a call. Try leaving a message. Then wait for AVM to hang up. Then click on Answer Voice again and try to retrieve your message using the touch tone keys. NOTE: On some phone systems, this will not work. It depends on the phone company. 13. To run AVM automatically when your computer reboots or is powered on, you can drag and drop the startAVM icon into your WBStartup drawer. 14. The file called StandardConfig in the AVMSuite directory should be edited to your preferences. In particular, when you first install AVM, it defaults to acting like a simple answering machine. If you want to try out the multi-mailbox system, you will need to edit this file. There are also other parameters in this file that you can change to alter the way AVM and its ARexx scripts work. See `Configuring with RXSET or SETENV' to see what the different lines in this file means. NOTE! You will need to quit all the AVM programs and restart AVM using startAVM in order for your new configuration to take effect. 4. Modem Limitations --------------------- Although AVM was designed to handle multiple modems, it does not currently handle multiple types of modems at the same time. In other words, you cannot have two different modem with different types on two different serial ports. You can, however, have two different modems on two different serial ports if they are of the same type. I will fix this limitation in a future version of AVM. The rest of this chapter describes the individual limitations for each modem type. If 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. 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. o If you have a lower ROM version than 6.10a, you should not use ADPCM3. If you have 6.10a or greater, you can use ADPCM3SYNC compression. I have personally tried using ADPCM3SYNC and found that there are still problems with the ZyXEL decoder losing sync. This means that you will occasionally hear scratchy noises. Theoretically, with ADPCM3SYNC, if the ZyXEL decoder loses sync, it should be resynced after 50 milliseconds. I do not have an encoder for ADPCM2SYNC or ADPCM3SYNC. 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. 4.4. Rockwell o The Rockwell chipset supports ADPCM2, ADPCM3, and ADPCM4. I am currently limiting AVM to using ADPCM2. There are some complications in using ADPCM3 and ADPCM4. o I don't have an encoder/decoder for any of the compressions used by Rockwell based modems. This means that you cannot play them to the Amiga or convert IFF files to a voice file. I hope to find some source code to alleviate this problem. Fortunately, you can play to the Internal Speaker and it will also play to the telephone plugged into the back of the modem. 5. Common Buttons and Options ------------------------------ This chapter describes the buttons and options common to most of the programs in the AVM Suite. This allows me to be lazy. 5.1. Play Click on this button to play the selected voice file through the device in `Play to'. You can stop the playing of a message by clicking on the `Stop' button. 5.2. Record Click on this button to record the selected voice file through the device in `Record from'. Again, click on the `Stop' button to stop the recording process. After clicking on the record button, watch the modem lights and wait for the RXD (on the Zyxels) or the IO (on the LineLinks) before speaking. Depending on the speed of your computer, there could be a slight delay before the modem actually starts recording. This is because I need to send commands to the modem to actually start recording. 5.3. Stop This stops recording, playing, or any conversion process. 5.4. Play to There are several options that you can choose from. Some of these options are not available for some of the modems. 5.4.1. Amiga This option is available only if I have a decoder for the compression you choose for the voice file. This option will first convert the voice file into an IFF file (avmtemp:temp.iff) and then play it using "DSound". Note that I cache the last played file so that you can keep playing it without going through the conversion process. The ARexx script activated by this option is playamiga.avm. You can modify this script if you would like to use a different player. 5.4.2. TelephoneLine This option allows you to play voice files through the telephone line. To use this option, you should first remove the dial tone. You can do this by pressing a few touch tone keys. Or, you can pick up the phone and wait for the telephone company to give up on you. <> 5.4.3. InternalSpeaker This will play voice files through the modem's internal speaker. The LineLink doesn't support this. 5.4.4. LocalHandset This only works with Rockwell based modems so far. This plays to the telephone hooked up to the back of the modem. 5.4.5. IFF This will actually perform a conversion from the voice file to an iff file. This option is only valid if there is a decoder available for the compression scheme that you used. In this version, the output IFF file is avmtemp:save.iff. A future version will allow you to pick the name of the IFF file. 5.4.5. AmigaDirect This option plays voice files while it is decoding them. This results in a small delay from the time you press play to the time it actually plays (unlike the `Amiga' option, which converts the whole voice file first). Note that you can only use this option if you have a fast Amiga. It works on my A3000/25. Try it out on your system to see if it's fast enough. If it is, you'll like this option. 5.5. Record from As with `Play to', there are several options to choose from. Again, some of these options may not be available for some modem types. 5.5.1. Amiga (Record) This option will activate the rexx script recordamiga.avm. This script calls AGMSRecordSoundPS3. It will call AGMSRecordSound (a version that works with most generic digitizers) if you instruct it to (by double-clicking on the useGenericDigitizer icon). It calls the digitizing software in such a way that the output is avmtemp:temp.iff. This IFF file is then converted into the appropriate voice file by a converter. 5.5.2. TelephoneLine (Record) This allows you to record your messages using the telephone line. The only way to get this to work is to pick up the phone and get rid of that dial tone somehow. As with `Play to', you can do this by entering a few touch tone keys. Unfortunately, on some systems, after a while, you'll get the annoying phone company message to put down the phone. You could wait this out until the phone company gives you just silence. What I do is to wait for this silence and record all the messages I need to in one session. 5.5.3. ExternalMic This option only works with the ZyXEL modem and the Rockwell based modem. 5.5.3.1. Rockwell (ExternalMic) Some Rockwell based modems have a jack which allows you to plug an external microphone in. Use this option to record using that. 5.5.3.2. ZyXEL (ExternalMic) Warning, DO NOT use this option if the modem is still plugged into the phone line. To record with this option, disconnect the modem from the phone line, plug in the handset (some telephones have a handset which plugs into the actual phone) into the "line" jack of the modem, and speak into the ear part of the handset (not where you usually talk into). The reason you should not plug the modem into the phone line when using this option is that the modem amplifies the signal. If the modem is plugged into the telephone line, the line signal would be amplified and could destroy your modem's internal circuitry. 5.5.4. LocalHandset (Record) This only works with Rockwell based modems so far. This option lets you record from the telephone plugged into the back of the modem. This works rather nicely. You don't have to kill any dial tones or anything. You can just start recording. 5.5.5. IFF (Record) This is similar to the Amiga option, except it doesn't actually call the digitizing software. It assumes that the software placed the IFF file in avmtemp:save.iff. A future version will give you a requester to choose the IFF file you want to convert into a voice file. 5.6. Server This is the name of the server that will be played to or recorded from. To change this, click on the popup gadget beside the name of the field. The compression mode that the server is using is displayed beside the name of the server. 5.7. Quit Hmmm...I wonder what this is for :) 6. Player --------- This program allows you to record/play all of the required outgoing messages. 6.1. Configure the player Specifically, make sure the `Play to', the `Record from' and the `Server' options are what you want them to be. 6.2. Record your outgoing messages Go through each entry that has a "No" in the "Rec?" column and `Record' a message for it. What you have to say in that entry would be displayed in the "What you should say" box. After recording, you should `Play' the message to make sure it's correct. Try to stop recording by using the `Stop' button as soon as you finish talking. AVM "glues" voice messages together for certain things. For example, when playing the date of a message, it "glues" the Month voice file with the appropriate number voice files to produce the date. On slow machines, you may actually need to stop recording before finishing speaking because there is a slight delay between the time that you press the stop button and the recording actually stops. 7. ServerMan ------------- ServerMan shows you all the servers active in a listview. It shows you the name of the server and its status. If you have several modems and serial ports, these would appear in the listview. You can select a server by clicking on the appropriate item in the listview. After selecting an item, there are several things you can do to it. There is a cycle gadget just below the listview. This cycle gadget allows you to see some of the buttons while hiding others. This is intended to make this program less cluttered by presenting you with buttons that you will most commonly use and hiding buttons which you would normally not use. 7.1. Answer Voice This makes the server answer the phone as though the appropriate number of rings was seen by the modem. In other words, the ARexx script in `Voice Call default', `Voice Call Ring 1', `Voice Call Ring 2', ... is called. If no RING was seen or an unqualified RING was seen, the default ARexx script is called. If a RING which was qualified (RING 1, RING 2, ...) was seen, the appropriate Voice Call n script would be called. 7.2. Answer Fax This makes the server answer the phone as though a fax had been detected. The ARexx script in `Fax Call' gets called. This defaults to handlefax.avm 7.3. Record Conversation This feature is really useful for getting evidence against mail-order companies :) Unfortunately, in the US, you are required by law to tell the party that the call is being recorded. Nevertheless, it'll at least keep them honest. 7.4. Answer Data This button is similar to the `Answer Fax' button. The only difference is that it calls the ARexx script in `Data Call'. 7.5. Abort Action This button aborts any actions that may be active in the currently selected server. This is a useful button especially when a call comes in and AVM answers the phone. You can make AVM shut up by clicking on this button. This button sends a general abort to the server. This general abort message would even abort an action started by a different program. For example, if you're playing/recording a voice file through the `Player', you can abort it either with the Player's Abort button or with this button. 7.6. Close Serial Instructs the server to close the serial port. This really shouldn't be necessary since the AVM Server supports the sharing of the serial port. It is better to just put the AVM Server in `Unlisten' mode. In addition to supporting the sharing of serial port, the AVM Server, with the appropriate option in the `Server Config' program set, also supports the OwnDevUnit protocol for sharing the serial port. 7.7. Open Serial This opens the serial port. Sometimes, when AVM starts up, it can't open the serial port because another program was using it in an unfriendly way. This is a good way to open the serial port in such cases (but you need to first kill the program that was unfriendly). 7.8. Unlisten This button makes AVM not listen to the serial port. It doesn't cause AVM to close the serial port. It just aborts any pending reads that AVM may have. This allows other programs to open up the serial port, change serial port parameters, etc. 7.9. Listen This button reverses the action of the `Unlisten' button. 7.10. Use Fax This calls the script avmrexx:usefax.avm. At this time, it is configured to make AVM unlisten and GPFax to listen to the serial port. 7.11. Unuse Fax This calls the script avmrexx:unusefax.avm. This currently makes GPFax unlisten and AVM listen. 7.12. Use Data This calls the script avmrexx:usedata.avm. This currently makes AVM unlisten. 7.13. Unuse Data This calls the script avmrexx:unusedata.avm. This currently makes AVM listen. 7.14. Start Server If the currently selected server isn't active, this button activates it. This button, together with the `Kill Server' button is needed if you change the server parameters in `Server Config'. A future version of AVM may instruct the servers to use any new parameters that may be set. 7.15. Kill Server This issues a quit message to the appropriate server. You can quit the server when it is waiting for a RING, has closed its serial port, or is in unlisten mode. You cannot kill a server if it is doing something else (like answering a call, playing a voice file, etc.). 7.16. Quit All (ServerMan) This quits ServerMan and kills any active servers which are not doing anything useful. It also kills all the AVM programs such as any active LogViews, Schedulers, SchedulerViews, etc. 8. Call Notifier ----------------- This program is basically a flat view of all the mailboxes. It shows you all the mailboxes, the number of messages in those mailboxes, and whether you wanted to be informed that there were new messages or not for a particular mailbox. Basically, if there is a * in the Watch field of the mailbox entry, then the program will tell you that there are new messages. It does this via the alertmessages.avm ARexx script. The default action to inform you of messages is to "say" something. If you don't like this behaviour, you can either "unwatch" all the mailboxes, change the actions within alertmessages.avm, or delete the script altogether. There is a cycle gadget just below the listview. If you click on this cycle gadget, you will gain access to some of the buttons. Normally, the cycle gadget should read "Mailbox Controls". The buttons when this cycle gadget is on the default are buttons which you normally use. However, there are circumstances when you want to access the other buttons (for example, you may wish to change the names of the mailboxes). In that case, click on this gadget to access the "Configure" buttons. 8.1. Open Mailbox Depending on the mailbox type, it could open a `LogView' or a `Scheduler' window for the mailbox that was selected. 8.2. Config Mailbox This opens a `Mailbox Config' window for the selected mailbox. 8.3. Add Mailbox This pops up a requester wherein you can type a new mailbox name. The program then creates the appropriate directories and default config files for that mailbox. For the unregistered version, this is pretty useless since you cannot add mailboxes to the Answer Voice scripts. 8.4. Delete Mailbox This deletes the mailbox. Only user-created mailboxes can be deleted. Some of the mailboxes (anonymous, outgoing, outgoingarchive, etc.) are locked and cannot be deleted. They are required for the correct operation of AVM. 8.5. Watch Mailbox This is a toggle function. This causes the mailbox to be watched by the Call Notifier program. If there are any messages in any of the "watched" mailboxes, the Call Notifier will inform you. 8.6. Rescan All Mailboxes This button goes through each mailbox and counts the number of messages in each mailbox. This button isn't really needed. Normally, when a new message is added to a mailbox, this fact is broadcast to all interested parties. This includes the Call Notifier program. This button is here just in case the Call Notifier somehow missed a broadcast (this should never happen, though) from the AVM Server that a new message has arrived in a particular mailbox. 8.7. Save (CallNotifier) This button saves the Watch configuration. You can temporarily unwatch a particular mailbox. But, when you quit the program or reset the machine, the old Watch configuration will come back up. 8.8. Shut Up This check gadget shuts the Call Notifier up. If you get annoyed with it telling you that you have messages, enable this check gadget. The Call Notifier will disable this gadget if one of the "watched" mailboxes gets a new entry. The Call Notifier enables this gadget if you Open any of the watched mailboxes. 8.9. Real Name When you select a mailbox, its name will appear in a string gadget. When you edit this string gadget, the name will be modified. You will then have to save the new configuration if you want to keep that new name the next time you start up the Call Notifier. 9. LogView ----------- This program shows you all the messages for a particular mailbox. It provides you with information on each message such as the Time/Date the message came in, its type (Voice, Fax, Unknown), and its length in seconds. When you select a particular message in the listview, additional information is displayed. This includes a Comment, CID Name, CID Number, and Return Number. You can multi-select things too by dragging the mouse or using the keyboard. 9.1. Comment For faxes, this field tells you how many pages the fax had. This field is user-modifiable. You can archive a message and type in a comment in this field so that you know what the message contained without having to listen to the message again. 9.2. Name This field displays the CID Name, if there was one. 9.3. Number This field displays the CID Number, again, if there was one. 9.4. Return Number If the caler enters a telephone number via the "poor man's caller id" feature, it will be displayed here. 9.5. Play or View You can select a message and hit this button to get it played or viewed, if it's a Voice or Fax type. Alternatively, you can just double-click on the listview entry. If the entry is a fax, GPFax or TrapFax will display the fax. 9.6. Reply This creates a log entry in the `Scheduler' and opens a `SchedulerView' for it. 9.7. Archive This puts the message or fax in the Archive mailbox. If you are already viewing the Archive mailbox, then this button doesn't do anything. 9.8. Delete This deletes the log entry and the voice or fax files associated. At this time, this action is a bit slow. The reason for this is that this button activates an ARexx script which actually deletes the log entry and its associated voice or fax files. It deletes those files using the Shell's Delete program. To speed up this action, you can make the Delete program resident. 9.9. Send This creates a new entry to be scheduled. It sets it up so that the originating mailbox is the mailbox that you are currently viewing. 9.9. Save Log If you have changed anything in a particular log entry that you want to save, click on this button. For example, if you changed the comment of a log entry, you need to click on this to get it saved. You don't need to use this option if you are archiving the log entry (that automatically saves the entry before sending it off to the archive mailbox). 9.10. Choose Mailbox At the top of the window is the name of the mailbox being viewed. You can change the mailbox being viewed by typing it in, or by clicking on the "select" popup gadget to the right of the field. Then, double click on the name of the mailbox you want to view (in the listview that pops up). 9.11. Stop All Click on this if you want to stop multiple-plays. If you press Stop, you will just stop the file being played. If there are still files left to play, they will be played. If you press this button, however, the file being played will be stopped and any files left to play will be skipped. 9.12. Print Fax This will print out a fax. Make sure the faxprinter driver isn't active or it will print a fax into another fax! 10. Mailbox Config ------------------ This program allows you to configure the options that the mailbox may have. If you don't have a scheduler, some of these options are pretty useless. The only thing of interest to UNREGISTERED users would be the `Password'. This is what you need to type in to gain access to the maintenance mode. Several of the Auto Options have "On Demand" fields. If you type in numbers here, that means that the mailbox caller can only activate that option if he/she knows your On Demand password. 10.1. Password This is the password necessary to get you into maintenance mode. From maintenance mode, you can also retrieve your messages, record a personal message, change the password, etc. All of this can be done remotely. 10.2. Forward Faxes When this option is enabled, any new faxes are automatically forwarded to the number in the Tel. # field. The default script should be DEFAULTSENDER. 10.3. Call Sysop When new messages are received and you have the Scheduler, AVM will call you up at a particular telephone number. The default script should be DEFAULTSENDER. If the Announce Tel. # checkbox is enabled, then the Tel. # will be announced to the caller right after the Personal message is played and before the Instructions on how to leave a message is played (MailboxGreeting). The caller will be instructed to press 3 to hear the telephone number again. If he doesn't, then he can still leave his message and AVM will take care of calling the mailbox owner. 10.5. Call Pager If you have a pager, this option will let AVM call your pager when a new fax or message arrives at your mailbox. The Script field contains the name of the ARexx script that is called to accomplish this paging mechanism. At this time, the only script you can use is DEFAULTSENDER. 10.6. Alert Sysop When a caller enters a mailbox, the Amiga will inform the "sysop" that a mailbox was entered. This is useful if you only want to pick up the phone when a certain mailbox was accessed. With the On Demand option enabled, the Amiga will not alert you when the mailbox is accessed unless the caller leaves a message and actually chooses the "Alert" option. If the On Demand option is disabled, the Alert mechanism is activated once the caller enters a mailbox. The Script filed contains the name of the ARexx script that is called to accomplish the alerting mechanism. The Default Script should be ALERTSYSOP. This script just plays an iff file called "pickup.iff", which is located in the mailbox you are configuring. For example, if you are configuring the Anonymous mailbox, you should put have an iff file called "avm:anonymous/pickup.iff". 10.7. Save This saves your options. 10.8. Cancel This cancels everything. 11. Server Config ----------------- The Server Config program allows you to create new servers, or configure the currently available servers. 11.1. Server Config (Button) This button opens up a window which has a bunch of options which you may set for the currently selected server. At the top of the Server Setup window is a cycle gadget. By selecting an item in the cycle gadget, the gadgets presented to you below change. 11.1.1. Ports Setup 11.1.1.2. ARexx Port Name This is the name of the ARexx port of the server. You should not include any spaces in the name. 11.1.1.3. Serial Port This is the device name of the port that the modem is hooked up to. 11.1.1.4. Unit Number This is the unit number of the port that the modem is hooked up to. 11.1.2. Scripts setup This set of gadgets allows you to change the names of the scripts that are called when certain events occur. 11.1.2.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 or CID, look at the section entitled `Caller ID and Distinctive Ring'. 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. 11.1.2.2. Fax Call This is the ARexx script that gets called to handle a fax call. The default should be "handlefax". 11.1.2.3. Data Call This is the ARexx script that gets called to handle a data call. The default should be "handledata". 11.1.2.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'. 11.1.2.5. Record Conversation (Script) Script to handle recording a conversation. 11.1.2.6. Voice Call Ring 1 Script called when the modem receives a type 2 ring. 11.1.2.7. Voice Call Ring 2 Script called when the modem receives a type 3 ring. 11.1.2.8. Voice Call Ring 3 Script called when the modem receives a type 4 ring. 11.1.2.9. Voice Call Ring 4 This is currently not used. 11.1.2.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. 11.1.3. Rings setup 11.1.3.1. Rings with messages This is the number of rings required to be seen by AVM before picking up the phone *when* there are messages in any of the "watched" mailboxes. This feature only works if the `Call Notifier' program is active. 11.1.3.2. Rings without messages This is the number of rings required to be seen by AVM before picking up the phone when there are no messages in any of the "watched" mailboxes. 11.1.3.3. Silent Answer rings If the phone stops ringing before AVM answers the phone and the number of rings seen is greater than or equal to this value, then the Silent Answer feature is activated. 11.1.4. Voice parms setup 11.1.4.1. 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. 11.1.4.2. Setup String 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 or CID options (see your modem's manual on how to accomplish that). 11.1.4.2. Voice Setup String 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. 119 is the default value). 11.1.4.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. 11.1.4.4. 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. 11.1.4.5. 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). 11.1.4.6. 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, CELP, ADPCM2SYNC, or ADPCM3SYNC. Note that ADPCM3 doesn't work for me. ADPCM3SYNC is supposed to work, but it has the same symptoms as ADPCM3 (scratchy noise). CELP only works for E+ or greater modems. MTD Dolphin users have only one compression, MTDADPCM2. LineLink users have only one compression available, LLCVSD7200. People without a voice-capable modem who want to use EFax should select NOVOICE. 11.1.4.7. Ringback Ring goes away and ring never appears. These two parameters are for dial-out only. They tell the modem how long to wait for the ring signal to go away or how long to wait if it doesn't ring. When calling out, the modem listens for ringing. If it doeesn't receive a ring before the Ringback Never Appears timer goes off, it will assume that the called party picked up the phone. On the other hand, if it got a ring, it will keep listening for rings. If it doesn't hear a ring before the timer goes off, it will assume that the called party picked up the phone. Both parameters are in 10ths of seconds. 11.1.4.8. 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. 11.1.4.9. 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. 11.1.4.10. 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. 11.1.4.11. Tone Dial This is the method to be used when dialing (enable this gadget for touch tone or disable it for pulse) a number. 11.1.4.12. Max Wait For Answer This is the number of seconds AVM will wait for the phone being dialed to be picked up. 11.1.5. Fax parms setup 11.1.5.1. Fax ID This is where you should enter your telephone number. 11.1.5.2. Modem 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. 11.1.5.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. 11.1.5.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. 11.1.5.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. 11.1.5.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. 11.1.5.7. Command Pause This is the number of tenths of seconds that EFax will pause before sending another AT command. 11.1.5.8. Max Page Errors This is the number of errors that would have to be received before EFax will ask for a retransmission. 11.1.5.9. Debug Verbosity Don't play with this. 11.1.5.10. 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. 11.1.5.11. 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 Modem Init String to enable the handshaking that your modem requires. 11.1.5.12. Inits These are commands that will be sent to your modem before the modem is told to answer or dial. 11.1.5.13. Resets These are commands that will be sent to your modem after receiving or transmitting a fax. 11.1.6. 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*** 11.1.6.1. Enable or Disable Flag This enables or disables a particular flag. If a "#" symbol precedes the name of the flag, it is disabled. 11.1.6.2. Add Flag Allows you to add a flag of your own. You really shouldn't have to do this. 11.1.6.3. Delete Flag Allows you to delete one of the flags. 11.2. Add Server Allows you to add a new server. As mentioned before, you cannot mix two different kinds of modems on the same system. This is because it is quite complicated to have two sets of voice files for each modem type. Plus, if someone leaves a message using one modem, you will not be able to retrieve the message from the other modem. Until I figure a nice way of doing this, the restriction stays. 11.3. Delete Server Deletes one of the servers. 11.4. Save (Server Config) Saves the configuration of the servers. If you change any of the parameters, you should click on this gadget to save the changes. Then, you will need to kill the server if it is active (use `Kill Server') and restart it (use `Start Server'). 12. Logger ----------- The logger is a program which prints useful debugging information from the servers and from the ARexx scripts that are run to control the servers. It is really not too useful if AVM works for you. In fact, you should, in general, not run the Logger as it slows down the system since it prints a *lot* of debugging information. 12.1. Save (Logger) The "logger" automatically writes to a file called "ram:logger.save" after every 200 lines of debugging information that it receives. If you wish to manually save what is in the buffer, click on this gadget. Every time the buffer is saved (it is appended to the above-mentioned file), the listview is cleared. 13. Scheduler ------------- This program shows you all the outgoing entries for a particular mailbox. Currently, AVM only works with one outgoing mailbox (called 'Outgoing'). It provides you with information on each outgoing message such as the Time/Date when the message is supposed to go out, the number of retries left before the scheduler starts ignoring this entry, its originating mailbox (who created this entry), the telephone number the message is going to, and the type of message (voice or fax). The AVM Scheduler wakes up every minute to process any entries in the listview. The listview is sorted so that the message that will go out next is at the top. The Next Event field tells you if and when a next event will go out. Note that it is entirely possible to have many entries in the outgoing mailbox but not have anything ready to be scheduled. This could happen if all the entries have 0 Retries left. 13.1. Edit This opens up a `SchedulerView' to edit the currently highlighted entry in the listview. You can also double-click on the entry to open up this SchedulerView. 13.2. Archive (Scheduler) This archives an entry. The log and its associated files are moved to the OutgoingArchive directory. 13.3. Create Entry This creates a new entry to be scheduled. The originating mailbox is "anonymous" if you use this method to create a new entry to be sent. A `SchedulerView' is also opened up to edit the new entry. 13.4. Delete (Scheduler) This deletes the entry in the mailbox. 13.5. Enable Scheduler Normally, you leave this check gadget on. If you disable it, the scheduler will not process outgoing events. This is useful if you don't want the scheduler to suddenly pick up the phone and start dialing when you are using the phone. 13.6. Send (Scheduler) Press this button to manually send a message or fax. You need to first highlight the message or fax that you want to send. This is useful if you want to test the Scheduler or if you scheduled a fax for a later time but wanted to give it a shot now. 13.7. Send Manual (Scheduler) Press this button to manually send a message or fax. The difference between this and the button described above is that this one will not cause the modem to actually dial a number. This is useful if you want to dial the number manually first, then click on this to start processing. Note that I cannot guarantee that this will work with any other fax program other than EFax. 14. SchedulerView ----------------- The SchedulerView allows you to edit an entry that you want to be sent out. At the top of the window is the name of the mailbox that the entry was in. Currently, AVM works with only one outgoing mailbox, called "Outgoing". Below the name of the mailbox is the actual name of the entry. This probably isn't very useful to you, but is there for your information only. There is a cycle gadget which allows you to view other control buttons that are less frequently used (to avoid user interface clutter). 14.1. Time This is the time that the message is to be delivered. You can adjust this time using the buttons to the right of this field. +m/-m increment or decrement the minutes, +h/-h increment or decrement the hours, and +d/-d increment or decrement the days. 14.2. Telephone This is the telephone number that the message is to be delivered to. 14.3. Comment (SchedulerView) This is a user-specifiable comment. Type anything into this to describe the entry. 14.4. Retries This is the number of retries to do to send this message out. 14.5. Interval This is the number of minutes to wait before we try again (assuming there are Retries left). 14.6. Filename This is the name of the file to send out. At the beginning, this field contains a unique filename that you can record into without thinking twice about overwriting some other file. Its type is set to Voice. Beside the string gadget is a button that, when you click on it, will allow you to choose another file. You can use this if you want to send a fax rather than a voice message. You could either type in the filename of the fax file directly or use the filechooser button. If you type in a filename, be sure to press . When you do, I will check the file's type and adjust the cycle button to the left to reflect the file's type. Note that if the file doesn't exist, then I assume it's a voice file that you will record. Beside this button is a cycle gadget which tells the Scheduler what type of file is being sent. If you are sending a fax, select Fax. Otherwise, select Voice. You probably don't have to use this gadget much since I detect the file type automatically. 14.7. Play or View (SchedulerView) Same as in LogView 14.8. CID Name and CID Number These are just the fields copied over if you were replying or forwarding to some message which had these fields set. 14.9. Originating Mailbox This is the name of the mailbox that the outgoing message originated from. A remote caller can only view outgoing messages from the Anonymous mailbox and his own mailbox. 14.10. ARexx Send Function This is usually DefaultSender, which knows how to send voice and fax files. Fax files are sent through GPFax or TrapFax. When a message is sent using DefaultSender, the called party can either acknowledge the receipt of the message (by pressing *), or can access the `Originating Mailbox' (by pressing 9 and entering a password), play the message agin (by pressing 1) or can simply hang up. DefaultSender can be used to call people who don't have touch tone phones since the message will be repeated up to three times even though nobody pressed a key. 14.11. Introduction File Choosing Default will play the default file, which is located in the originating mailbox's Voices directory. In other words, if the originating mailbox is "anonymous", Default would play the voice file "avm:anonymous/voices/Introduction" when a voice message is sent. If you choose Personalize, then the introduction message that will be sent will be "local" to the outgoing message. Note that at this time, the Introduction is only played when sending an outgoing voice file. If you send a fax, the Introduction is not played. 14.12. Play Intro Plays the introductory voice file. 14.13. Record Intro Records the introductory voice file. 14.14. Print Fax (SchedulerView) This will print out a fax. Make sure the faxprinter driver isn't active or it will print a fax into another fax! 15. AVM ------- AVM is the server that runs in the background. It has no user interface and can only be run from the CLI. When `ServerMan' starts, it runs all the servers it knows about. If you wish to run the AVM server manually, its CLI template is: avm servername/a where servername is the ARexx port name you gave it using the `Server Config' program. Remember that you should probably use the "run" command when running the AVM server manually, as in: run >nil: